:root { --ink:#252728; --paper:#fbfaf7; --soft:#f1eee8; --line:#d9d4cb; --water:#166d83; --water-soft:#dfeef0; --orange:#f36b21; --dark:#27292c; --muted:#6e706e; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; font-size:16px; line-height:1.45; }
a { color:inherit; text-decoration:none; }
button, input, select { font:inherit; }
button { cursor:pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline:3px solid var(--orange); outline-offset:3px; }
.skip-link { position:fixed; z-index:100; top:8px; left:8px; transform:translateY(-200%); background:var(--ink); color:#fff; padding:10px 14px; }
.skip-link:focus { transform:translateY(0); }
.announcement { min-height:31px; background:var(--orange); color:#211e1a; display:flex; align-items:center; justify-content:center; gap:22px; padding:7px 24px; font-size:10px; letter-spacing:.075em; text-transform:uppercase; }
.announcement a { text-decoration:underline; text-underline-offset:3px; font-weight:700; }
.site-header { position:relative; z-index:20; height:76px; max-width:1320px; margin:auto; display:grid; grid-template-columns:176px 1fr auto; align-items:center; gap:24px; padding:0 24px; background:var(--paper); }
.brand { font-family:Arial, Helvetica, sans-serif; font-size:24px; font-weight:800; letter-spacing:-.075em; white-space:nowrap; }
.brand span { color:var(--water); }
.primary-nav { display:flex; align-items:center; justify-content:center; gap:23px; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.primary-nav a { padding:8px 0; border-bottom:1px solid transparent; }
.primary-nav a:hover { border-color:var(--orange); }
.header-actions { display:flex; align-items:center; gap:18px; font-size:11px; font-weight:700; }
.header-phone { white-space:nowrap; }
.cart-link { display:flex; gap:7px; align-items:center; text-transform:uppercase; letter-spacing:.06em; }
.cart-link span { width:19px; height:19px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:10px; }
.menu-toggle { display:none; border:0; background:none; color:var(--ink); font-size:10px; text-transform:uppercase; letter-spacing:.08em; align-items:center; gap:5px; }
.menu-toggle span { width:14px; height:1px; background:currentColor; display:block; }
.hero { min-height:652px; height:calc(100vh - 107px); max-height:780px; position:relative; overflow:hidden; isolation:isolate; }
.hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:-2; }
.hero-overlay { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(10,13,13,.82) 0%,rgba(10,13,13,.58) 35%,rgba(10,13,13,.04) 70%); }
.hero-copy { max-width:1320px; height:100%; margin:auto; padding:0 24px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; color:#fff; }
.eyebrow { font-size:10px; line-height:1.2; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--water); margin:0 0 16px; }
.eyebrow.light { color:#f6bd96; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Georgia, 'Times New Roman', serif; font-weight:400; letter-spacing:-.055em; line-height:.98; }
h1 { max-width:630px; font-size:clamp(48px,6vw,93px); margin-bottom:23px; }
h2 { font-size:clamp(37px,4.3vw,64px); margin-bottom:0; }
.hero-copy>p:not(.eyebrow) { width:min(440px, 100%); color:#f2f0eb; font-size:17px; line-height:1.55; margin-bottom:30px; }
.hero-actions { display:flex; gap:25px; align-items:center; }
.button { min-height:46px; display:inline-flex; align-items:center; justify-content:center; padding:13px 20px; border:1px solid transparent; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; transition:background .2s,color .2s,border .2s; }
.button-primary { background:var(--orange); color:#fff; }
.button-primary:hover { background:#d8510b; }
.button-secondary { border-color:var(--ink); }
.button-secondary:hover { background:var(--ink); color:#fff; }
.button-light { color:var(--dark); background:#fff; }
.button-light:hover { background:#f4d7c5; }
.wide { width:100%; }
.hero-text-link,.text-link { display:inline-flex; gap:8px; align-items:center; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; border-bottom:1px solid currentColor; padding-bottom:3px; }
.hero-text-link { color:#fff; }
.trust-rail { min-height:92px; display:grid; grid-template-columns:repeat(4,1fr); align-items:stretch; border-bottom:1px solid var(--line); max-width:1320px; margin:auto; padding:0 24px; }
.trust-rail>div { display:flex; align-items:center; gap:12px; padding:18px 22px; border-right:1px solid var(--line); font-size:10px; line-height:1.35; text-transform:uppercase; letter-spacing:.06em; }
.trust-rail>div:first-child { border-left:1px solid var(--line); }
.trust-rail b { color:var(--orange); font-size:10px; }
.section { max-width:1240px; margin:auto; padding:125px 24px; }
.intro { text-align:center; max-width:850px; }
.intro h2 { margin-bottom:22px; }
.intro-copy { width:min(550px,100%); margin:0 auto; color:var(--muted); font-size:15px; }
.products-section { padding-top:10px; }
.section-title-row { display:flex; justify-content:space-between; gap:30px; align-items:flex-end; margin-bottom:47px; }
.section-title-row .text-link { margin-bottom:10px; }
.product-grid,.catalog-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 18px; }
.product-card { min-width:0; }
.product-image { position:relative; display:block; height:340px; overflow:hidden; background:#ebe5db; }
.product-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.87); transition:transform .45s ease; }
.product-card:hover .product-image img { transform:scale(1.025); }
.product-badge { position:absolute; top:12px; left:12px; background:var(--orange); color:#fff; padding:6px 8px; font-size:9px; letter-spacing:.07em; text-transform:uppercase; }
.product-copy { padding:17px 2px 0; }
.product-copy .eyebrow { margin-bottom:8px; font-size:10px; }
.product-copy h3 { min-height:44px; font-size:15px; line-height:1.3; margin-bottom:8px; font-weight:500; }
.product-copy h3 a:hover { text-decoration:underline; text-underline-offset:3px; }
.product-meta { color:var(--muted); font-size:12px; margin-bottom:15px; }
.product-bottom { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.product-bottom strong { font-size:14px; }
.text-button { background:none; border:0; border-bottom:1px solid var(--ink); padding:0 0 3px; color:var(--ink); font-size:9px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.text-button:hover { color:var(--orange); }
.delivery-band { background:var(--water); color:#fff; display:grid; grid-template-columns:1fr 1fr; gap:60px; padding:100px max(24px,calc((100vw - 1192px)/2)); align-items:end; }
.delivery-band .eyebrow { color:#bfe5ec; }
.delivery-band h2 { color:#fff; }
.delivery-band>div:last-child { max-width:410px; color:#e5f2f3; }
.delivery-band .button { margin-top:14px; }
.story { display:grid; grid-template-columns:1.08fr .92fr; gap:9%; align-items:center; }
.story-media { height:570px; overflow:hidden; }
.story-media img { width:100%; height:100%; object-fit:cover; object-position:52% center; }
.story-copy h2 { margin-bottom:29px; }
.story-copy>p:not(.eyebrow) { color:var(--muted); margin-bottom:17px; max-width:420px; }
.story-copy .text-link { margin-top:18px; }
.editorial-quote { background:var(--dark); color:#fff; padding:90px 24px; }
.editorial-quote>div { max-width:680px; margin:0 auto; }
.editorial-quote p { font-family:Georgia, 'Times New Roman', serif; font-size:clamp(32px,4vw,56px); line-height:1.03; letter-spacing:-.05em; margin-bottom:27px; }
.editorial-quote span { color:#aeb0b2; text-transform:uppercase; font-size:9px; letter-spacing:.09em; }
.faq-preview { display:grid; grid-template-columns:.7fr 1.3fr; gap:11%; }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); padding:19px 0; }
.faq-list summary { list-style:none; cursor:pointer; font-size:15px; font-weight:700; padding-right:30px; position:relative; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; position:absolute; right:0; top:-4px; color:var(--orange); font-size:23px; font-weight:400; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list p { color:var(--muted); font-size:14px; max-width:610px; padding-top:15px; margin-bottom:0; }
.site-footer { background:var(--dark); color:#e8e7e3; padding:78px max(24px,calc((100vw - 1192px)/2)) 27px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:48px; padding-bottom:60px; }
.footer-brand { color:#fff; display:inline-block; margin-bottom:17px; }
.site-footer p,.site-footer span,.site-footer a { color:#b7b9ba; font-size:12px; }
.site-footer a { display:block; margin-bottom:10px; }
.site-footer a:hover { color:#fff; }
.site-footer .footer-title { color:#fff; margin-bottom:16px; text-transform:uppercase; font-size:9px; letter-spacing:.1em; }
.footer-bottom { border-top:1px solid #505255; padding-top:20px; display:flex; justify-content:space-between; gap:20px; }
.page-shell { max-width:1240px; min-height:560px; margin:auto; padding:30px 24px 124px; }
.breadcrumb { display:flex; gap:9px; align-items:center; color:#8b8d8c; font-size:11px; margin:10px 0 63px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.breadcrumb a:hover { color:var(--ink); }
.catalog-header { max-width:640px; margin-bottom:45px; }
.catalog-header h1 { color:var(--ink); font-size:clamp(49px,5vw,76px); margin-bottom:19px; }
.catalog-header>p:last-child { color:var(--muted); max-width:520px; }
.catalog-filter { display:flex; gap:9px; border-bottom:1px solid var(--line); padding-bottom:16px; margin-bottom:30px; }
.catalog-filter a { padding:8px 12px; border:1px solid var(--line); font-size:10px; letter-spacing:.07em; text-transform:uppercase; }
.catalog-filter a.active,.catalog-filter a:hover { border-color:var(--ink); background:var(--ink); color:#fff; }
.catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px 23px; }
.catalog-grid .product-image { height:410px; }
.catalog-state { grid-column:1/-1; padding:80px 0; text-align:center; color:var(--muted); }
.catalog-state.error { color:#b42e18; }
.product-detail { display:grid; grid-template-columns:1.05fr .95fr; gap:9%; align-items:start; }
.detail-image { height:680px; background:var(--soft); overflow:hidden; }
.detail-image img { width:100%; height:100%; object-fit:cover; }
.detail-copy { padding-top:32px; }
.detail-copy h1 { color:var(--ink); font-size:clamp(43px,4.7vw,71px); margin-bottom:15px; }
.detail-volume { color:var(--muted); margin-bottom:28px; }
.detail-price { color:var(--ink); font-size:23px; font-weight:700; margin-bottom:25px; }
.detail-copy>p:not(.eyebrow):not(.detail-volume):not(.detail-price) { max-width:440px; color:var(--muted); margin-bottom:29px; }
.detail-notes { border-top:1px solid var(--line); margin-top:32px; padding-top:21px; display:flex; flex-direction:column; gap:12px; color:var(--muted); font-size:12px; }
.detail-notes span::before { content:'—'; color:var(--orange); margin-right:8px; }
.cart-page { display:grid; grid-template-columns:1.6fr .6fr; gap:9%; align-items:start; }
.cart-page h1,.checkout-page h1,.confirmation h1 { color:var(--ink); font-size:clamp(48px,5.2vw,76px); margin-bottom:35px; }
.cart-list { padding:0; margin:0; list-style:none; border-top:1px solid var(--line); }
.cart-row { display:grid; grid-template-columns:88px minmax(0,1fr) auto auto; gap:20px; align-items:center; padding:18px 0; border-bottom:1px solid var(--line); }
.cart-row img { width:88px; height:88px; object-fit:cover; background:var(--soft); }
.cart-row .eyebrow { margin-bottom:4px; font-size:8px; }
.cart-row h2 { font-family:Arial, Helvetica, sans-serif; font-size:15px; line-height:1.25; letter-spacing:0; margin-bottom:4px; }
.cart-row p:not(.eyebrow) { color:var(--muted); font-size:12px; margin-bottom:0; }
.cart-row>strong { min-width:96px; text-align:right; font-size:14px; }
.quantity { display:flex; align-items:center; gap:9px; border:1px solid var(--line); }
.quantity button { width:26px; height:28px; border:0; background:var(--soft); font-size:17px; }
.quantity span { min-width:14px; text-align:center; font-size:12px; }
.empty-cart { color:var(--muted); padding:38px 0; }
.empty-cart a { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.cart-summary,.checkout-order { background:var(--soft); padding:29px; }
.cart-summary .eyebrow,.checkout-order .eyebrow { margin-bottom:24px; }
.cart-summary>strong { display:block; font-family:Georgia, 'Times New Roman', serif; font-size:36px; font-weight:400; letter-spacing:-.04em; margin-bottom:14px; }
.cart-summary>p { color:var(--muted); font-size:13px; margin-bottom:25px; }
.checkout-page { display:grid; grid-template-columns:1.1fr .7fr; gap:10%; align-items:start; }
.form-lead { color:var(--muted); max-width:550px; margin-bottom:31px; }
.form-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:20px; }
label { display:flex; flex-direction:column; gap:8px; font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
label.full { grid-column:1/-1; }
input,select { width:100%; min-height:48px; background:#fff; border:1px solid var(--line); border-radius:0; padding:12px; color:var(--ink); font-size:14px; font-weight:400; letter-spacing:0; text-transform:none; }
input::placeholder { color:#9a9b98; }
.form-error { color:#b42e18; font-size:13px; margin:4px 0 17px; }
.consent { margin:14px 0 0; color:var(--muted); font-size:11px; }
.checkout-order ul { list-style:none; padding:0; margin:0 0 18px; }
.checkout-order li { display:flex; justify-content:space-between; gap:13px; padding:12px 0; border-bottom:1px solid #d5d1cb; font-size:13px; }
.checkout-order li strong { white-space:nowrap; }
.checkout-order>div { display:flex; justify-content:space-between; align-items:center; font-size:13px; }
.checkout-order>div strong { font-family:Georgia, 'Times New Roman', serif; font-size:25px; font-weight:400; }
.confirmation { max-width:760px; padding-top:62px; }
.confirmation>p:not(.eyebrow) { color:var(--muted); max-width:570px; font-size:16px; }
.confirmation code { display:inline-block; background:var(--soft); padding:14px 17px; font-size:15px; margin:4px 0 24px; color:var(--ink); }
.confirmation-note { border-left:2px solid var(--orange); padding-left:16px; margin:28px 0; }

@media (max-width:900px) {
  .site-header { grid-template-columns:1fr auto auto; height:64px; }
  .menu-toggle { display:flex; grid-column:2; }
  .primary-nav { display:none; position:absolute; top:64px; left:0; right:0; padding:16px 24px 22px; background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); flex-direction:column; align-items:flex-start; }
  .primary-nav.is-open { display:flex; }
  .header-actions { grid-column:3; gap:0; }
  .header-phone { display:none; }
  .hero { min-height:620px; height:auto; }
  .hero-copy { min-height:620px; }
  .trust-rail { grid-template-columns:repeat(2,1fr); }
  .trust-rail>div:nth-child(3) { border-left:1px solid var(--line); }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .delivery-band { padding:72px 24px; gap:35px; }
  .story { gap:6%; }
  .story-media { height:480px; }
  .product-detail { gap:5%; }
  .detail-image { height:560px; }
  .cart-page,.checkout-page { gap:5%; }
}
@media (max-width:620px) {
  body { font-size:15px; }
  .announcement { justify-content:flex-start; font-size:9px; gap:8px; padding:7px 16px; }
  .announcement a { display:none; }
  .site-header { padding:0 16px; grid-template-columns:1fr auto auto; gap:14px; }
  .brand { font-size:23px; }
  .cart-link { font-size:0; }
  .cart-link span { font-size:10px; }
  .hero { min-height:590px; }
  .hero>img { object-position:62% center; }
  .hero-overlay { background:linear-gradient(180deg,rgba(9,12,13,.52) 0%,rgba(9,12,13,.8) 64%,rgba(9,12,13,.83) 100%); }
  .hero-copy { min-height:590px; padding:122px 23px 38px; justify-content:flex-end; }
  .hero-copy>p:not(.eyebrow) { font-size:15px; margin-bottom:24px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:18px; }
  .trust-rail { padding:0; }
  .trust-rail>div { padding:14px 15px; font-size:10px; gap:8px; }
  .section { padding:72px 20px; }
  .intro { padding-bottom:64px; }
  .section-title-row { align-items:flex-start; flex-direction:column; gap:20px; margin-bottom:29px; }
  .product-grid,.catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:29px 12px; }
  .product-image,.catalog-grid .product-image { height:230px; }
  .product-copy { padding-top:12px; }
  .product-copy h3 { min-height:auto; font-size:13px; margin-bottom:6px; }
  .product-meta { font-size:11px; margin-bottom:10px; }
  .product-bottom { flex-direction:column; align-items:flex-start; }
  .delivery-band { grid-template-columns:1fr; padding:64px 20px; }
  .story { grid-template-columns:1fr; gap:30px; }
  .story-media { height:345px; }
  .editorial-quote { padding:64px 20px; }
  .faq-preview { grid-template-columns:1fr; gap:33px; }
  .site-footer { padding:55px 20px 22px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:35px 21px; padding-bottom:43px; }
  .footer-grid>div:first-child { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; gap:8px; }
  .page-shell { padding:22px 20px 75px; }
  .breadcrumb { margin:7px 0 42px; }
  .catalog-header { margin-bottom:29px; }
  .catalog-filter { overflow-x:auto; padding-bottom:14px; }
  .catalog-filter a { white-space:nowrap; }
  .product-detail { grid-template-columns:1fr; }
  .detail-image { height:410px; }
  .detail-copy { padding-top:12px; }
  .cart-page,.checkout-page { grid-template-columns:1fr; gap:32px; }
  .cart-row { grid-template-columns:62px minmax(0,1fr) auto; gap:10px; }
  .cart-row img { width:62px; height:62px; }
  .cart-row>strong { grid-column:2; min-width:0; text-align:left; }
  .quantity { grid-column:3; grid-row:1/3; }
  .form-fields { grid-template-columns:1fr; gap:15px; }
  label.full { grid-column:auto; }
  .checkout-order { order:-1; }
}
