/* Readable type sizes shared by the shop and Our Promise page. */
body { font-size:16px; }
.announcement { font-size:13px; line-height:1.5; letter-spacing:.08em; }
.desktop-nav { font-size:16px; gap:20px; }
.eyebrow, .product-meta .maker { font-size:13px; letter-spacing:.12em; line-height:1.5; }
.text-link, .brand-strip button, .filter-group h4 { font-size:14px; letter-spacing:.08em; line-height:1.5; }
.hero-copy>p:not(.eyebrow), .section-heading>p, .promise p, footer p { font-size:16px; }
.filter-button, .sort-label, .sort-label select, .filter-group label, .outline-button { font-size:15px; }
.filter-group label { line-height:1.5; }
.filter-group label.condition-disabled { opacity:.45; cursor:not-allowed; }
.condition-disabled input { cursor:not-allowed; }
.filter-group small { font-size:14px; color:var(--muted); }
.toolbar>p, .load-more-wrap p, .product-condition { font-size:14px; line-height:1.5; }
.product-meta h3 { font-size:16px; line-height:1.5; overflow-wrap:anywhere; }
.status-tag { font-size:12px; letter-spacing:.04em; padding:5px 6px; max-width:calc(100% - 58px); }
.quick-view { font-size:13px; letter-spacing:.08em; }
.primary-button { font-size:14px; letter-spacing:.06em; height:auto; min-height:48px; padding:14px 20px; line-height:1.5; }
.quick-ref, .specs dt { font-size:14px; line-height:1.5; }
.quick-title, .specs dd { font-size:16px; line-height:1.6; overflow-wrap:anywhere; }
footer nav { font-size:16px; }
footer small { font-size:14px; line-height:1.5; }
.hero { display:block; min-height:0; background:linear-gradient(110deg,#eeeae1,#f8f7f3); }
.hero-copy { max-width:1100px; margin:auto; padding:64px 24px; text-align:center; }
.hero h1 { font-size:clamp(46px,5.5vw,76px); }
.hero-copy>p:not(.eyebrow) { margin:24px auto 28px; max-width:620px; }
.shop-layout { grid-template-columns:minmax(0,1fr); }
dialog.filters { position:fixed; inset:0 auto 0 0; margin:0; width:min(390px,90vw); height:100dvh; max-height:100dvh; padding:28px; border:0; background:var(--paper); overflow-y:auto; transform:none; transition:none; }
dialog.filters:not([open]) { display:none; }
dialog.filters[open] { display:block; }
dialog.filters::backdrop { background:rgba(10,15,12,.4); backdrop-filter:blur(3px); }
.filter-title button { display:block; border:0; background:transparent; font-size:28px; }
body:has(dialog:modal) { overflow:hidden; }
#loadSentinel { height:2px; }
.load-more-wrap { min-height:35px; }
.search-bar { grid-template-columns:auto minmax(0,1fr) auto auto; padding:12px clamp(20px,5vw,70px); gap:16px; min-height:74px; }
.search-bar label, .search-bar button { font-size:14px; }
.search-bar input { border:1px solid var(--line); border-radius:4px; padding:12px 14px; font-size:16px; background:var(--paper); min-width:0; }
.search-bar input:focus { outline:2px solid var(--green); outline-offset:2px; }
.search-bar .search-submit { background:var(--green); color:white; padding:13px 20px; border-radius:4px; }
.site-header { height:104px; }
.search-bar { top:104px; }
body { --inventory-offset:124px; }
body:has(#searchBar:not([hidden])) { --inventory-offset:198px; }
#collection, #brands, #productGrid { scroll-margin-top:var(--inventory-offset); }
.mobile-menu { position:relative; }
.product-stock { font-size:14px; color:var(--muted); margin:8px 0 12px; line-height:1.5; }
.status-tag.status-unavailable { background:#eee1cb; color:#634315; }
button:disabled { cursor:not-allowed; opacity:.55; }
.inquiry-fields { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.inquiry-panel input { display:block; width:100%; margin-top:8px; padding:12px; font:16px var(--sans); border:1px solid var(--line); background:white; }
.inquiry-panel input:focus, .inquiry-panel textarea:focus { outline:2px solid var(--green); outline-offset:2px; }
.inquiry-panel #submitInquiry { width:100%; margin-top:12px; }
@media(max-width:540px) { .inquiry-fields { grid-template-columns:1fr; } }
.inquiry-panel { max-width:680px; margin:auto; padding:44px 28px 28px; }
.inquiry-panel h2 { font:36px var(--serif); margin:12px 0; }
.inquiry-panel p { font-size:16px; line-height:1.6; overflow-wrap:anywhere; }
.inquiry-panel label { display:block; font-size:15px; margin:22px 0 8px; }
.inquiry-panel textarea { width:100%; padding:14px; font:16px/1.6 var(--sans); border:1px solid var(--line); resize:vertical; background:white; }
.inquiry-panel .inquiry-email { display:block; margin:18px 0 10px; text-align:center; text-decoration:none; }
.inquiry-panel .outline-button { width:100%; }
.inquiry-panel .inquiry-note { color:var(--muted); font-size:14px; }
.inquiry-panel .text-link { background:none; border:0; padding:10px 0; }
.mobile-menu summary { cursor:pointer; list-style:none; font-size:23px; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.mobile-menu nav { position:absolute; top:38px; left:0; width:210px; padding:12px; background:var(--paper); border:1px solid var(--line); box-shadow:0 12px 25px #0002; }
.mobile-menu nav a { display:block; padding:12px; text-decoration:none; font-size:16px; }
.promise-page .site-header { grid-template-columns:auto 1fr; gap:30px; }
.promise-page .page-nav { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:24px; font-size:16px; }
.page-nav a { text-decoration:none; }
.page-nav [aria-current] { border-bottom:1px solid var(--green); }
.promise-intro { max-width:850px; margin:auto; text-align:center; padding:80px 24px; }
.promise-intro h1 { font:clamp(48px,7vw,76px) var(--serif); margin:12px 0; }
.promise-intro p:not(.eyebrow) { color:var(--muted); line-height:1.8; max-width:560px; margin:20px auto 30px; }
@media(max-width:540px) { .promise-page .site-header { height:auto; min-height:100px; gap:12px; padding-block:10px; } .promise-page .page-nav { gap:12px; } }
@media(max-width:820px) {
  .search-bar { grid-template-columns:minmax(0,1fr) auto auto; gap:8px; padding:12px 16px; }
  .search-bar label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); display:block; }
  .search-bar .search-submit { padding:13px 12px; }
}
@media(max-width:540px) { .hero-copy { padding:44px 20px; } }
@media(min-width:821px) {
  .shop-layout { grid-template-columns:220px minmax(0,1fr); }
  dialog.filters, dialog.filters:not([open]) {
    display:block; position:sticky; inset:auto; top:var(--inventory-offset); align-self:start;
    width:100%; max-width:none; height:auto; max-height:calc(100dvh - var(--inventory-offset) - 20px);
    padding:0 25px 12px 0; border-right:1px solid var(--line); box-shadow:none;
  }
  .filter-title button { display:none; }
}
