/* Shared reading sizes, loaded after component and responsive layout styles. */
:root {
  --type-body: 1rem;
  --type-secondary: .875rem;
  --type-caption: .8125rem;
  --type-control: .9375rem;
  --type-card: 1rem;
}

body {font-size:var(--type-body);line-height:1.6}
.eyebrow,.hero .eyebrow,.section-heading .eyebrow,.catalog-heading .eyebrow,
.product-info .eyebrow,.product-technology .eyebrow,.material-copy .eyebrow,
.editorial .eyebrow,.dialog .eyebrow,.store-contact .eyebrow {
  font-size:var(--type-caption);line-height:1.5;letter-spacing:1.25px;
}
.small,.preview-bar,.category-links small,.store-num,.product-code,
.size-help,.payment-note,.product-technology>.small,.cart-summary>.small,
.cart-row .row-brand,.city-choice span>span,.video-sub,.photo-caption,
.hero-bottom,.footer-bottom,.store-photo-credit {
  font-size:var(--type-caption);line-height:1.6;
}
.breadcrumbs {font-size:var(--type-caption);line-height:1.6;gap:8px 10px}
.breadcrumbs>span {min-width:0;overflow-wrap:anywhere}

/* Navigation and actions. Logo lettering keeps its own proportions. */
.city-button,.header-left .city-button {font-size:var(--type-secondary);line-height:1.4}
.main-nav,.main-nav a {font-size:var(--type-control);line-height:1.5}
.bag-link span {font-size:var(--type-caption)}
.wordmark small {font-size:.6875rem;letter-spacing:.65px;line-height:1.4}
.footer-top .wordmark small {font-size:.6875rem;letter-spacing:.5px}
.button,.hero .button,.purchase-actions .button,.regional-store .store-map {
  font-size:var(--type-control);line-height:1.5;
}
.text-link,.talisman-page .section-heading .text-link,
.cart-page>.section-heading>.text-link,.underline-link,.video-link,
.card-quick,.underlined,.filter-submit,.zoom-navigation button,
.local-store-copy .store-visit,.store-map-panel>a {
  font-size:var(--type-secondary);line-height:1.5;
}
.zoom-navigation button {min-height:44px}
.section-heading>.muted,.service-strip,.service-strip>span {
  font-size:var(--type-secondary);line-height:1.5;
}

/* Reading copy: home, category guides, products, stores and dialogs. */
.hero-subtitle,.material-copy>p:not(.eyebrow),.catalog-heading .catalog-intro,
.catalog-note p,.intro,.store-detail>p,.store-lead,.store-section-intro,
.store-directions-copy>p:not(.eyebrow),.store-visit-details dd,
.store-benefits p,.store-answers details>p,.store-yandex p,
.guide-sections p,.regional-selection p,.home-local>p:not(.eyebrow),
.pickup-steps li,.pickup-steps li p,.dialog>p:not(.eyebrow),
.success-message p,.empty-state p {
  font-size:var(--type-body);line-height:1.7;
}
.catalog-heading .catalog-intro {max-width:790px}
.dialog>p.small {font-size:var(--type-secondary)}
.selection-facts ul,.guide-related ul {font-size:var(--type-control);line-height:1.7}
.store-visit-details dt,.store-fact h2,.store-answers summary {
  font-size:var(--type-body);line-height:1.5;
}
.store-fact address,.store-contact address {font-size:var(--type-body);line-height:1.7}
.store-fact p,.local-store-tile p,.local-store-tile span,
.store-tile p,.store-tile span:not(.store-num),.store-services,
.regional-store .store-services {font-size:var(--type-secondary);line-height:1.6}
.local-store-tile .store-visit {font-size:var(--type-secondary)}

/* Stretch cards within each grid row and anchor prices below the longest name. */
.product-card {min-width:0;display:flex;flex-direction:column}
.product-card .card-photo {flex:none;width:100%}
.product-card h3 {font-size:var(--type-card);line-height:1.5;font-weight:450;overflow-wrap:anywhere}
.price {font-size:1.125rem;line-height:1.4;margin-top:10px}
.product-card>.price {margin-top:auto;padding-top:10px}
.card-meta {font-size:var(--type-caption);line-height:1.5;letter-spacing:.2px;gap:8px;flex-wrap:wrap}
.card-season {font-size:var(--type-caption);line-height:1.4;padding:4px 7px}
.category-chips a {font-size:var(--type-control);line-height:1.5}
.category-tiles.compact h3,.talisman-page .category-tiles h3 {font-size:1.125rem;line-height:1.4}
.catalog-count {font-size:var(--type-secondary);line-height:1.5;flex-shrink:0}
.no-photo {font-size:var(--type-secondary);line-height:1.6;text-align:center}
.color-option .no-photo {font-size:0}

/* Product detail and its factual information. */
.product-info .product-code {font-size:var(--type-caption)}
.product-price {font-size:1.75rem;line-height:1.4}
.color-heading,.size-heading,.pickup-title {font-size:var(--type-body);line-height:1.5;flex-wrap:wrap}
.size-button {font-size:var(--type-body);line-height:1.4;min-width:48px;min-height:46px}
.size-error {font-size:var(--type-secondary);line-height:1.5}
.pickup-box p,.pickup-box .stock-note {font-size:var(--type-secondary);line-height:1.65}
.product-info details {font-size:var(--type-body);line-height:1.7}
.product-info summary {font-size:var(--type-body);line-height:1.5;min-height:56px}
.description,.care,.specs {font-size:var(--type-body);line-height:1.7}
.specs dt,.specs dd {min-width:0;overflow-wrap:anywhere}
.availability-table {font-size:var(--type-control);line-height:1.6}
.metrics p {font-size:var(--type-secondary);line-height:1.5;overflow-wrap:anywhere}

/* Inputs remain at least 16px so mobile Safari does not zoom on focus. */
.filter-fields>label,.price-filter legend,.form-grid label,
#catalog-filter-panel .filter-fields>label,#catalog-filter-panel .price-filter legend {
  font-size:var(--type-secondary);line-height:1.5;
}
.filter-fields select,.filter-fields input,.filter-sort select,
.form-grid input,.form-grid textarea,.search-form input,
#catalog-filter-panel select,#catalog-filter-panel input {
  font-size:var(--type-body);line-height:1.5;
}
.extra-filters summary,#catalog-filter-panel .extra-filters summary,
.filter-reset,.filter-actions .filter-reset,#catalog-filter-panel .filter-reset,
.active-filters a {font-size:var(--type-secondary);line-height:1.5}
.filter-sort {width:240px}
.mobile-filter-toggle,.mobile-cart-shortcut {font-size:var(--type-control);line-height:1.5}
.filter-count,.mobile-cart-count {font-size:var(--type-caption)}

/* Cart, checkout and footer are part of the main reading experience. */
.cart-row h2 {font-size:var(--type-body);line-height:1.5;overflow-wrap:anywhere}
.cart-row .row-variant,.row-remove,.checkout-note,.cart-store {
  font-size:var(--type-secondary);line-height:1.6;
}
.row-total {font-size:1.125rem;line-height:1.5}
.summary-line {font-size:var(--type-body);line-height:1.5}
.summary-total {font-size:1.375rem}
.qty {width:128px;height:44px;font-size:var(--type-body);flex-shrink:0}
.qty button {width:42px;height:42px}
.footer-top h2 {font-size:var(--type-body);line-height:1.5;font-weight:600}
.footer-top>div a,.footer-top>div button,.footer-top>div p {font-size:var(--type-control);line-height:1.6}
.toast {font-size:var(--type-secondary);line-height:1.5}
.video-dialog>p {font-size:var(--type-secondary);line-height:1.5}

@media(max-width:1100px) and (min-width:761px) {
  .main-nav {gap:24px}
  .footer-top {grid-template-columns:1fr 1fr;gap:36px}
}

@media(max-width:760px) {
  :root {--type-card:.9375rem}
  .masthead {grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-height:86px;height:auto;padding-block:16px;column-gap:10px}
  .header-left {min-width:0;gap:4px}
  .header-left .city-button {font-size:var(--type-caption)}
  .header-actions {min-width:0}
  .wordmark small {font-size:.625rem;letter-spacing:.35px;margin-top:8px}
  .footer-top .wordmark small {font-size:.6875rem;letter-spacing:.5px}
  .main-nav a {font-size:var(--type-control)}
  .hero .button {gap:18px}
  .service-strip {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-block:22px;align-items:start}
  .service-strip>span {font-size:var(--type-caption);max-width:none;min-width:0}
  .section-heading {flex-wrap:wrap;row-gap:16px}
  .section-heading>.text-link {white-space:normal;max-width:100%}
  .talisman-page .section-heading .text-link {margin-top:0}
  .catalog-heading {display:block;padding-bottom:25px}
  .catalog-heading .catalog-intro {max-width:none}
  .catalog-count {display:block;text-align:left;margin:16px 0 0;padding:0}
  .category-chips a {font-size:var(--type-control)}
  .category-tiles h3,.category-tiles.compact h3,.talisman-page .category-tiles h3 {font-size:1.125rem;line-height:1.4}
  .card-meta {margin-top:12px}
  .card-season {top:8px;left:8px}
  .filter-sort {width:100%}
  .extra-filters summary {max-width:100%}
  .metrics {grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}
  .metrics>div+div {border-left:0;padding-left:0}
  .metrics span {font-size:1.75rem;letter-spacing:-.7px;white-space:normal;overflow-wrap:anywhere}
  .metrics p {font-size:var(--type-secondary)}
  .specs>div {grid-template-columns:1fr 1.2fr;gap:12px}
  .cart-page>.section-heading,.favorites-page>.section-heading {flex-direction:column;align-items:flex-start;gap:14px}
  .cart-row {grid-template-columns:80px minmax(0,1fr);gap:14px 16px}
  .cart-row>img {grid-row:span 2;width:80px;height:120px}
  .cart-row>div {min-width:0}
  .cart-row h2 {max-width:none}
  .row-total {grid-column:2;flex-direction:row;align-items:center;height:auto;gap:8px;white-space:normal}
  .row-remove {padding:8px 0}
  .store-services {flex-wrap:wrap}
  .store-phone {font-size:1.4375rem}
  .footer-top {gap:32px 22px}
  .footer-bottom {font-size:var(--type-caption)}
}

@media(max-width:360px) {
  .masthead {column-gap:6px}
  .masthead .wordmark {font-size:30px}
  .masthead .wordmark small {max-width:130px;white-space:normal}
  .header-left {gap:1px}
  .mobile-menu {width:26px}
  .header-actions .icon-button {width:26px}
  .header-actions .bag-link {width:34px}
  .editorial-pair {grid-template-columns:1fr;gap:18px}
  .specs>div {grid-template-columns:1fr;gap:4px}
  .store-facts {padding-inline:18px}
}
