/* Final visitor typography and controls; the full-screen intro keeps its own scale. */
body { line-height: 1.65; }
main :is(h1,h2,h3) { text-wrap: balance; }
main :is(p,li,dd) { text-wrap: pretty; }
.button,.text-link { font-size: 14px; }
.button { gap: 16px; }
.breadcrumb { font-size: 13px; line-height: 1.7; }
.section-navigation a { font-size: 13px; min-height: 48px; }
.announcement-inner { height: auto; min-height: 32px; padding-block: 6px; }
.announcement,.announcement a { font-size: 11px; line-height: 1.6; }
.product-author,.product-subtitle,.product-purchase span { font-size: 13px; }
.product-body h3 { font-size: 17px; line-height: 1.5; }
.product-body { gap: 4px; }
.event-card>p,.shop-guide p,.feature-tags,.collection-note { font-size: 14px; }
.event-meta,.event-meta>span:first-child,.event-meta>span:last-child { font-size: 12px; line-height: 1.6; }
.event-meta { flex-wrap: wrap; row-gap: 6px; }
.library-feature p,.intro-copy p { font-size: 16px; }
.editorial-note,.demo-note,.form-note,.inquiry-note,.program-note { font-size: 14px; line-height: 1.8; }
.footer-tree section>a,.footer-discover a { font-size: 14px; line-height: 1.7; }
.footer-tree h3 { font-size: 15px; line-height: 1.6; }
.footer-bottom { font-size: 12px; line-height: 1.7; }
.footer-tree section>a { display: block; padding-block: 4px; }
.shop-filter-panel { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.shop-filter-panel>* { min-width: 0; }
.shop-filter-panel .shop-search { grid-column: span 2; }
.shop-filter-panel>label:not(.shop-search) { font-size: 13px; }
.shop-filter-panel select,.shop-filter-panel .shop-search input,.sort-label select,
.contact-form :is(input,select,textarea) { font-size: 16px; min-width: 0; }
.shop-filter-panel select { min-height: 48px; }
.shop-filter-panel input[type=number] { max-width: none; }
.shop-filter-panel>.text-link { grid-column: 3 / -1; grid-row: 2; min-height: 44px; font-size: 14px; justify-self: end; }
.shop-filter-panel>label:has(#shop-min) { grid-column: 1; grid-row: 2; }
.shop-filter-panel>label:has(#shop-max) { grid-column: 2; grid-row: 2; }
.form-actions { gap: 16px 24px; }
.form-consent { flex-wrap: wrap; }
.form-consent>span:not(.field-error) { flex: 1; min-width: 0; }
.form-consent>.field-error { margin: 0 0 0 34px; }
.contact-form label { line-height: 1.7; }
.search-dialog,.detail-dialog { max-height: calc(100dvh - 32px); }
.cart-dialog { max-height: 100dvh; }
.cart-item-copy,.cart-row>div,.order-lines>div>span { min-width: 0; }
.order-lines>div { gap: 16px; }
.order-lines strong { flex-shrink: 0; }
.tree-header .mobile-nav { max-height: calc(100dvh - 110px); overscroll-behavior: contain; }
@media (min-width: 1200px) {
  .tree-header .desktop-nav .nav-parent { font-size: 14px; }
}
@media (max-width: 999px) {
  .shop-filter-panel { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .shop-filter-panel .shop-search { grid-column: 1 / -1; }
  .shop-filter-panel>label:has(#shop-min),.shop-filter-panel>label:has(#shop-max) { grid-column: auto; grid-row: auto; }
  .shop-filter-panel>.text-link { grid-column: 1 / -1; grid-row: auto; justify-self: start; order: 1; }
}
@media (max-width: 600px) {
  .tree-header .brand-copy>span { display: none; }
  .tree-header .header-actions .icon-button { width: 44px; height: 44px; }
  .tree-header .header-inner { gap: 4px; }
  .tree-header .brand { gap: 5px; }
  .tree-header .brand-copy>strong { font-size: 19px; }
  .shop-filter-panel>label:has(select) { grid-column: 1 / -1; }
  .shop-results-top { flex-wrap: wrap; gap: 12px; }
  .sort-label { display: flex; align-items: center; gap: 12px; min-width: 0; }
  .sort-label select { min-height: 44px; max-width: 100%; }
  .product-grid { gap: 24px 18px; }
  .product-body h3 { font-size: 16px; }
  .footer-tree { gap: 30px 24px; }
  .checkout-steps li { font-size: 12px; line-height: 1.6; flex-direction: column; gap: 8px; }
  .checkout-heading h1 { font-size: clamp(34px,9vw,44px); }
  .checkout-form-panel { padding: 24px 18px; }
  .detail-tabs { flex-wrap: wrap; }
  .detail-tabs [role=tab] { min-height: 44px; font-size: 14px; }
  .collection-note { align-items: flex-start; flex-wrap: wrap; }
}
@media (max-width: 360px) {
  .tree-header .header-inner { width: calc(100% - 24px); }
  .tree-header .brand img { width: 34px; height: 40px; }
  .tree-header .brand-copy>strong { font-size: 18px; }
  .product-grid { grid-template-columns: minmax(0,1fr); }
  .footer-tree { grid-template-columns: minmax(0,1fr); }
}
