/* Shared, fluid text sizes. rem floors respect browser text preferences. */
:root {
  --text-label: clamp(.8125rem, .43rem + .5vw, 1.375rem);
  --text-caption: clamp(.875rem, .5rem + .48vw, 1.5rem);
  --text-ui: clamp(.9375rem, .55rem + .54vw, 1.625rem);
  --text-body: clamp(1rem, .65rem + .56vw, 1.75rem);
}

@media (min-width: 761px) {
  :root {
    --announcement-height: clamp(32px, 1.65vw, 52px);
    --nav-top: calc(var(--announcement-height) + 24px);
    --page-top: clamp(156px, 8.5vw, 240px);
  }
  body { font-size: var(--text-body); }
  .announcement {
    height: var(--announcement-height); min-height: var(--announcement-height);
    font-size: var(--text-label); line-height: 1.4;
  }
  .home-editorial { padding-top: var(--announcement-height); }
  .campaign-anchor { top: var(--announcement-height); height: calc(100svh - var(--announcement-height)); }
  .campaign-feature { height: calc(100svh - var(--announcement-height)); }
  body .site-header .brand { --logo-width: clamp(174px, 9vw, 300px); }
  .site-header { align-items: center; }
  .navigation-island { gap: clamp(18px, 1.4vw, 44px); padding: .55em 1em .55em 1.5em; font-size: var(--text-ui); }
  .desktop-nav { font-size: var(--text-ui); gap: clamp(20px, 1.4vw, 45px); }
  .header-actions .icon-button { width: clamp(40px, 2.2vw, 66px); height: clamp(44px, 2.4vw, 72px); }
  .header-actions .icon-button svg { width: clamp(20px, 1.05vw, 32px); height: clamp(20px, 1.05vw, 32px); }
  .header-actions .cart-count { font-size: clamp(10px, .55vw, 17px); min-width: 1.7em; height: 1.7em; padding-inline: .3em; top: 0; right: 0; }

  .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
  .campaign-actions .button, .photo-banner-copy .button, .filter-form .button {
    font-size: var(--text-ui); line-height: 1.4; min-height: 3.1em; padding: .85em 1.6em;
  }
  .button svg, .text-link svg, .campaign-link svg { width: 1.25em; height: 1.25em; }
  .eyebrow, .feature-title .eyebrow, .photo-banner-copy .eyebrow,
  .wallet-copy .eyebrow, .flow-story .eyebrow, .flow-stores .eyebrow,
  .catalog-heading .eyebrow, .page-hero .eyebrow, .journal-heading .eyebrow {
    font-size: var(--text-label); line-height: 1.5; letter-spacing: .14em;
  }
  .text-link, .campaign-link, .flow-heading > a, .wallet-copy .text-link,
  .flow-story .text-link, .flow-stores .text-link, .journal-heading .text-link {
    font-size: var(--text-ui); line-height: 1.5;
  }
  .campaign-link { padding-block: .65em; }
  .campaign-copy h1 { font-size: clamp(36px, 2.5vw, 80px); }
  .feature-title h2 { font-size: clamp(32px, 2.3vw, 72px); }
  .flow-heading h2 { font-size: clamp(20px, 1.2vw, 40px); line-height: 1.35; }
  .flow-heading { gap: 24px; margin-bottom: 1.5em; }
  .photo-banner-copy h2 { font-size: clamp(38px, 3.1vw, 88px); max-width: 15ch; }
  .photo-banner-copy > p:not(.eyebrow), .flow-story p:not(.eyebrow) {
    font-size: var(--text-body); line-height: 1.65; max-width: 35ch; margin-block: 1em 1.4em;
  }
  .photo-banner-copy { bottom: clamp(48px, 3.5vw, 100px); }
  .category-number, .category-shop { font-size: var(--text-label); }
  .category-shop { padding-block: .65em; }
  .category-shop svg { width: 1.3em; height: 1.3em; }
  .category-tile h2 { font-size: clamp(20px, 1.45vw, 44px); }
  .journal-frame > span { font-size: var(--text-ui); }
  .journal-heading h2 { font-size: clamp(36px, 3vw, 88px); }

  .product-card__info { padding-top: 1em; }
  .product-card__info h3, .product-card__info > span { font-size: var(--text-ui); line-height: 1.5; }
  .product-card__meta, .product-card__info .pending-price { font-size: var(--text-caption); line-height: 1.6; }
  .product-card__info .woocommerce-price-suffix, .product-tag { font-size: var(--text-label); }
  .product-tag { padding: .3em .55em; }
  .product-card__quick { font-size: var(--text-ui); padding: .85em 1em; }
  .product-card__quick svg { width: 1.25em; height: 1.25em; }
  .carousel-buttons .icon-button { width: clamp(40px, 2.3vw, 64px); height: clamp(40px, 2.3vw, 64px); }
  .carousel-buttons svg { width: 45%; height: 45%; }

  .menu-secondary { font-size: var(--text-ui); gap: 1.6em; margin-top: 1.8em; }
  .menu-secondary a { padding-block: .35em; }
  .menu-content nav > a { font-size: clamp(34px, 3.5vw, 106px); padding-block: .45em; }
  .menu-content nav > a > span { font-size: var(--text-label); }
  .menu-editorial p { font-size: clamp(24px, 1.6vw, 44px); }
  .search-dialog { width: min(1100px, 90vw); }
  .search-dialog > p, .search-form input, .toast { font-size: var(--text-ui); }

  .catalog-heading h1, .page-hero h1 { font-size: clamp(42px, 4vw, 110px); }
  .catalog-heading > p, .page-hero > p:last-child { font-size: var(--text-body); max-width: 45ch; }
  .category-pills a, .woocommerce-result-count, .woocommerce-ordering select,
  .catalog-filters summary, .filter-form select, .price-input input, .active-filters > a {
    font-size: var(--text-ui);
  }
  .filter-count, .filter-form > label, .price-input > span { font-size: var(--text-label); }
  .filter-form { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 1.25em; }
  .filter-form input, .filter-form select, .price-input { min-height: 3.1em; }
  .woocommerce-breadcrumb, .single-product .woocommerce-breadcrumb { font-size: var(--text-label); }
  .single-product .woocommerce-breadcrumb { top: clamp(114px, 5.8vw, 205px); }
  .woocommerce .product-layout > div.summary { padding-top: clamp(165px, 8.5vw, 280px); max-width: 1000px; }
  .woocommerce div.product .product_title { font-size: clamp(32px, 2vw, 62px); max-width: 20ch; }
  .woocommerce div.product p.price { font-size: clamp(22px, 1.4vw, 42px); }
  .woocommerce div.product .woocommerce-product-details__short-description,
  .product-detail-copy, .pending-product-note { font-size: var(--text-body); max-width: 42ch; }
  .product-details-accordion summary, .product-assurance { font-size: var(--text-ui); }
  .product-assurance svg { width: 1em; height: 1em; }
  .product_meta, .demo-product-note, .product-detail-copy td, .product-detail-copy th,
  .woocommerce div.product p.price .woocommerce-price-suffix { font-size: var(--text-caption); }
  .gallery-count, .gallery-zoom-label, .gallery-open-label > span { font-size: var(--text-label); }
  .woocommerce .quantity input.qty { height: 3.1em; font-size: var(--text-ui); }
  .woocommerce .quantity label { font-size: var(--text-label); }

  .footer-topline, .footer-directory h2, .footer-colophon, .footer-colophon > span:last-child { font-size: var(--text-label); }
  .footer-back-top, .footer-shop-link, .footer-directory a { font-size: var(--text-ui); }
  .footer-contact p { font-size: var(--text-caption); max-width: 25ch; }
  .footer-directory .footer-phone { font-size: clamp(22px, 1.4vw, 40px); }
  .footer-invitation h2 { font-size: clamp(38px, 3.2vw, 96px); }
  .footer-directory { gap: clamp(25px, 2vw, 65px); }
  .footer-colophon { flex-wrap: wrap; line-height: 1.6; }
  .footer-colophon nav { gap: .75em 1.3em; }

  label, .store-card address, .store-card p, .contact-company, .company-details,
  .faq-list details p, .payment_box, .woocommerce-privacy-policy-text,
  .woocommerce-password-strength, .woocommerce-message, .woocommerce-info, .woocommerce-error,
  .shop_table th, .shop_table td { font-size: var(--text-caption); }
  input:not([type=checkbox]):not([type=radio]):not([type=submit]), select, textarea { font-size: var(--text-ui); }
  .store-card .text-link { font-size: var(--text-ui); }
  .prose { max-width: 62ch; }
}

/* Fold the main navigation before its labels could crowd the logo. */
@media (min-width: 761px) and (max-width: 1100px) {
  .home .desktop-nav, .desktop-nav { display: none; }
  .navigation-island { padding: 6px 10px; }
  .flow-heading { flex-wrap: wrap; gap: 10px; }
  .flow-heading > a { margin-left: auto; }
}

/* A quiet ivory backing keeps the mobile wordmark readable over every photo. */
@media (max-width: 760px) {
  body .site-header .brand { background: var(--ivory); box-shadow: 0 0 0 8px var(--ivory); }
  body .site-header .brand img { filter: none; }
  .menu-secondary { font-size: 15px; }
}
