/* Editorial layer: framing, section rhythm, and WooCommerce QA surfaces. */
:root { --zb-editorial-width: 1280px; --zb-paper-line: #dddddd; }
.inside-header.grid-container { min-height: 72px; }
.main-navigation .main-nav ul li a { text-transform: none; letter-spacing: 0; font-size: 14px; }
.home .inside-article .entry-header { display: none; }
.home .inside-article .entry-content { margin-top: 0; }
.zb-home { padding-bottom: clamp(32px, 5vw, 72px); }
.zb-home, .zb-preview, .zb-editorial-footer { color: #181818; }
.zb-home p, .zb-preview p, .zb-editorial-footer p { margin: 0; }
.zb-home-hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); min-height: 520px; align-items: stretch; }
.zb-hero-copy { align-self: center; padding: clamp(24px, 5vw, 76px) clamp(24px, 5vw, 72px) clamp(32px, 6vw, 80px) 0; }
.zb-home h1 { margin: 0 0 24px; max-width: 12ch; font-size: clamp(48px, 6.6vw, 94px); font-weight: 500; letter-spacing: -.055em; line-height: .99; }
.zb-hero-lead { max-width: 37ch; font-size: clamp(15px, 1.4vw, 18px); color: #515151; line-height: 1.65; }
.zb-home-actions { margin-top: 32px; display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
a.zb-primary { background: #171717; color: #fff; padding: 12px 18px; display: inline-flex; min-height: 48px; align-items: center; gap: 24px; font-weight: 500; line-height: 1.35; text-decoration: none; }
a.zb-primary:hover { background: #333333; color: #fff; }
.zb-hero-plate { margin: 0; border: 1px solid var(--zb-paper-line); display: grid; grid-template-rows: 1fr auto; background: #ececec; overflow: hidden; }
.zb-hero-plate figcaption { display: flex; justify-content: space-between; gap: 12px; color: #444444; font-size: 12px; padding: 12px 18px; border-top: 1px solid #d1d1d1; }
.zb-art { background: var(--zb-paper, #ececec); color: #222222; aspect-ratio: 4 / 5; display: grid; place-items: center; overflow: hidden; }
.zb-art svg { display: block; width: 87%; height: auto; }
.zb-art--hero { aspect-ratio: auto; min-height: 320px; max-height: 550px; background: radial-gradient(ellipse at 41% 33%, #f4f4f4 4%, #e6e6e6 63%, #dedede 100%); }
.zb-art--hero svg { width: 81%; max-width: 560px; transform: rotate(-10deg); }
.zb-editorial-footer { padding: 36px 20px; background: #f1f1f1; border-top: 1px solid var(--zb-paper-line); }
.zb-editorial-footer-inner { max-width: 1200px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px; align-items: center; }
.zb-editorial-footer nav { display: flex; gap: 12px 24px; flex-wrap: wrap; font-size: 14px; }
.zb-editorial-footer .zb-footer-mark { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; font-size: 24px; }
.zb-editorial-footer p { font-size: 13px; margin-top: 4px; }
.zb-editorial-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
.zb-preview-notice, .zb-catalog-empty { padding: 20px; border: 1px solid var(--zb-paper-line); background: #f3f3f3; }
.zb-catalog-empty { padding: clamp(24px, 5vw, 64px); }
.zb-catalog-empty p { max-width: 48ch; }
.zb-preview-tabs { display: flex; gap: 8px; flex-wrap: wrap; padding: 24px 0 12px; }
.zb-preview-tabs a { padding: 8px 12px; border: 1px solid var(--zb-paper-line); }
.zb-preview-tabs [aria-current] { background: #171717; color: #fff; }
.zb-preview p.zb-preview-count { margin-bottom: 16px; }
.woocommerce .zb-sample-grid.products { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; padding: 0; }
.woocommerce .zb-sample-grid.products::before, .woocommerce .zb-sample-grid.products::after { display: none; }
.woocommerce .zb-sample-grid.products li.product { min-width: 0; width: auto; float: none; margin: 0; display: flex; flex-direction: column; }
.zb-sample-grid .zb-art { margin-bottom: 12px; }
.woocommerce .zb-sample-grid.products li.product .woocommerce-loop-product__title { font-size: clamp(16px, 1.6vw, 21px); line-height: 1.3; padding: 0 0 8px; }
.woocommerce .zb-sample-grid.products li.product .button { margin-top: auto; align-self: flex-start; text-transform: none; letter-spacing: 0; }
.zb-sample-grid .price { display: block; margin-bottom: 12px; font-variant-numeric: tabular-nums; }
.zb-product-note { font-size: 14px; color: #515151; }
.woocommerce div.product .woocommerce-tabs ul.tabs { list-style: none; }
.page:not(.home) .entry-content > :is(p,h2,h3,ol,ul) { max-width: 67ch; }
.page:not(.home) .entry-content > h2:not(:first-child) { margin-top: 32px; }
a:focus-visible, button:focus-visible { outline: 2px solid #222222; outline-offset: 4px; }
@media (max-width: 760px) {
  .inside-header.grid-container { min-height: 64px; }
  .zb-home-hero { grid-template-columns: minmax(0, 1fr); }
  .zb-home h1 { margin-block: 16px; font-size: clamp(41px, 10.6vw, 65px); }
  .zb-hero-copy { padding: 24px 0 28px; }
  .zb-home-actions { margin-top: 20px; gap: 12px 16px; }
  .zb-art--hero { min-height: 0; aspect-ratio: 1.15; }
  .zb-art--hero svg { width: 70%; }
  .woocommerce .zb-sample-grid.products { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 12px; }
  .zb-editorial-footer-inner { align-items: flex-start; flex-direction: column; }
  .woocommerce .zb-sample-grid.products li.product .button { font-size: 12px; padding-inline: 8px; }
}

/* Boutique homepage: editorial image, shop entry points, then practical guidance. */
.zb-boutique { --zb-section-space: clamp(56px, 8vw, 112px); }
.zb-boutique .zb-home-hero { grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr); min-height: 0; }
.zb-boutique .zb-home h1, .zb-boutique .zb-hero-copy h1 { margin-top: 12px; }
.zb-boutique .zb-hero-plate { background: #ededed; }
.zb-hero-photo { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; aspect-ratio: 3 / 2; }
.zb-overline { font-size: 13px; line-height: 1.4; font-weight: 500; color: #525252; }
.zb-text-link { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; font-size: 14px; }
.zb-boutique-section { margin-top: var(--zb-section-space); }
.zb-section-heading { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 24px; }
.zb-boutique h2 { margin: 8px 0 0; font-size: clamp(34px, 5vw, 62px); line-height: 1.05; letter-spacing: -.035em; font-weight: 500; }
.zb-boutique h3 { font-size: clamp(19px, 2.2vw, 29px); line-height: 1.2; margin: 0; font-weight: 500; }
.zb-boutique-categories { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.zb-boutique-category { display: flex; flex-direction: column; border: 1px solid #ddd; text-decoration: none; }
.zb-boutique-category .zb-art { aspect-ratio: 2 / 1; }
.zb-boutique-category svg { width: 48%; max-width: 260px; max-height: 100%; }
.zb-category-copy { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 20px; }
.zb-category-copy p { color: #525252; margin-top: 6px; font-size: 14px; }
.zb-boutique-category:hover h3 { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.zb-boutique p.zb-demo-caption, .woocommerce p.zb-demo-caption { font-size: 13px; color: #555; margin: 0 0 16px; }
.zb-shop-sections { padding: 0 0 8px; }
.zb-shop-sections a { font-size: 14px; }
.zb-home-products { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; list-style: none; padding: 0; margin: 0; }
.zb-home-products a { display: block; text-decoration: none; }
.zb-home-products h3 { margin-top: 12px; font-size: clamp(16px, 1.7vw, 22px); }
.zb-home-products a:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
.zb-home-products .price { display: block; margin-top: 8px; font-size: 14px; font-variant-numeric: tabular-nums; }
.zb-home-products del { color: #585858; margin-inline-end: 5px; }
.zb-home-products ins { text-decoration: none; background: none; }
.zb-fit-panel { scroll-margin-top: 88px; display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: clamp(24px,5vw,64px); background: #efefef; padding: clamp(24px,5vw,64px); }
.zb-fit-intro > p:last-child { margin-top: 16px; max-width: 39ch; }
.zb-fit-list { margin: 0; padding: 0; list-style: none; }
.zb-fit-list li { display: grid; grid-template-columns: 32px 1fr; gap: 12px; padding: 16px 0; border-top: 1px solid #ccc; }
.zb-fit-list li:first-child { padding-top: 0; border-top: 0; }
.zb-fit-list li:last-child { padding-bottom: 0; }
.zb-fit-list li > span { font-size: 12px; font-variant-numeric: tabular-nums; color: #555; padding-top: 3px; }
.zb-fit-list p, .zb-materials p { margin-top: 6px; color: #454545; }
.zb-materials { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.zb-materials article { min-width: 0; }
.zb-material-swatch { display: block; aspect-ratio: 3 / 1; background-color: #e5e5e5; margin-bottom: 16px; }
.zb-material-swatch--cotton { background-image: repeating-linear-gradient(45deg, #0000 0 3px,#0001 3px 4px), repeating-linear-gradient(-45deg,#0000 0 3px,#fff8 3px 4px); }
.zb-material-swatch--micro { background: linear-gradient(155deg,#d8d8d8,#f1f1f1 52%,#d2d2d2); }
.zb-material-swatch--mesh { background-image: radial-gradient(#a8a8a8 1px,transparent 1.5px); background-size: 6px 6px; }
.zb-home-faq { display: grid; grid-template-columns: minmax(0,.76fr) minmax(0,1.24fr); gap: 32px; }
.zb-faq-list details { border-top: 1px solid #ddd; }
.zb-faq-list details:last-child { border-bottom: 1px solid #ddd; }
.zb-faq-list summary { padding: 16px 30px 16px 0; position: relative; cursor: pointer; list-style: none; font-weight: 500; }
.zb-faq-list summary::-webkit-details-marker { display: none; }
.zb-faq-list summary::after { content: '+'; position: absolute; right: 4px; }
.zb-faq-list details[open] summary::after { content: '−'; }
.zb-faq-list summary:focus-visible { outline: 2px solid #222; outline-offset: 2px; }
.zb-faq-list details p { padding-bottom: 16px; max-width: 61ch; color: #4c4c4c; }
.woocommerce ul.products li.product .zb-art { margin-bottom: 12px; }
@media (max-width: 760px) {
  .zb-boutique .zb-home-hero, .zb-home-faq, .zb-fit-panel { grid-template-columns: minmax(0,1fr); }
  .zb-boutique .zb-home-hero .zb-hero-copy { padding-top: 12px; }
  .zb-boutique .zb-home-hero .zb-hero-photo { height: auto; }
  .zb-boutique-categories, .zb-home-products { gap: 16px 10px; }
  .zb-category-copy { padding: 12px; align-items: flex-start; gap: 4px; }
  .zb-category-copy h3 { font-size: clamp(16px, 4.4vw, 23px); }
  .zb-category-copy p { font-size: 12px; line-height: 1.4; }
  .zb-boutique-category .zb-art { aspect-ratio: 4 / 3; }
  .zb-boutique-category svg { width: 64%; }
  .zb-home-products { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .zb-materials { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .zb-materials article { display: grid; grid-template-columns: 58px minmax(0,1fr); gap: 4px 12px; }
  .zb-material-swatch { grid-row: span 2; aspect-ratio: 1; margin-bottom: 0; }
  .zb-materials p { margin-top: 0; }
  .zb-home-faq { gap: 20px; }
}
