/* Shopping navigation, shared by catalog, product and checkout pages. */
.catalog .section-heading { flex-wrap: wrap; align-items: center; }
.product-visual img.category-cover-image { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; padding: 0; }
.category-explore { color: var(--red); font-size: 12px; font-weight: 600; }
.product-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px; color: var(--red); }
.package-prices { display: grid; gap: 5px; }
.package-price { gap: 2px 7px; font-variant-numeric: tabular-nums; }
.package-price-number { display: inline-flex; align-items: flex-start; font-size: 32px; line-height: 1.1; font-weight: 700; letter-spacing: -.7px; }
.package-price-number sup { position: static; margin: 2px 0 0 2px; font-size: .53em; line-height: 1; letter-spacing: 0; }
.package-price-suffix { font-size: 13px; font-weight: 600; white-space: nowrap; }
.package-unit-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 5px; color: var(--ink, #292c26); font-size: 14px; line-height: 1.4; font-variant-numeric: tabular-nums; }
.package-unit-price .package-price-number { font-size: inherit; letter-spacing: 0; }
.package-unit-price .package-price-number sup { font-size: .72em; margin-top: 1px; }
.package-unit-price .package-price-suffix { font-size: inherit; font-weight: 400; }
.package-volume { color: #67705e; font-size: 11px; line-height: 1.5; font-weight: 400; }
.detail-price .package-price-number { font-size: 42px; }
.detail-price .package-price-suffix { font-size: 17px; }
.detail-price .package-unit-price { font-size: 17px; }
.detail-price .package-volume { font-size: 13px; }
@media (max-width:700px) {
  .package-price-number { font-size: 30px; }
  .package-price-suffix { font-size: 12px; }
  .detail-price .package-price-number { font-size: 36px; }
  .detail-price .package-price-suffix { font-size: 15px; }
}
.product-purchase-card { display: flex; flex-direction: column; height: 100%; }
.product-purchase-card > .product-card-link { display: flex; flex-direction: column; flex: 1; height: auto; }
/* One responsive frame for existing and future product cards in every listing. */
.product-card > .product-card-link > .product-visual {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 4 / 3;
  flex: none;
}
.product-card > .product-card-link > .product-visual > img,
.product-gallery .product-photo-open > img {
  position: absolute;
  inset: 0;
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  padding: 0;
  object-fit: cover;
  object-position: center;
  image-orientation: from-image;
}
.product-card > .product-card-link > .product-visual > svg {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
}
/* Keep the complete product in the card. scale-down also avoids magnifying
   small source photos, which makes compression and blur more noticeable.
   Collection artwork and the full-size zoom gallery retain their own layout. */
.product-purchase-card > .product-card-link > .product-visual {
  background: #fff;
}
.product-purchase-card > .product-card-link > .product-visual > img {
  object-fit: scale-down;
  padding: clamp(12px, 6%, 22px);
  image-rendering: auto;
}
.product-detail-visual.product-gallery { background: #fff; }
.product-gallery .product-photo-open > img {
  object-fit: scale-down;
  padding: 16px;
  image-rendering: auto;
}
.image-viewer-stage[data-zoom-available="false"] { cursor: default; }
.image-viewer-loading { position:absolute; inset:0; display:grid; place-items:center; margin:0; padding:24px; color:#68716e; font-size:14px; text-align:center; }
.product-purchase-card .product-info { display: flex; flex-direction: column; flex: 1; }
/* Manufacturer marks sit above the title, separate from the product photo. */
.product-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: none;
  width: fit-content;
  max-width: 100%;
  min-height: 28px;
  margin: 0 0 10px;
  color: #4e5c42;
}
.product-brand .product-brand-logo {
  display: block;
  position: static;
  width: 112px;
  height: 28px;
  max-width: 100%;
  padding: 0;
  object-fit: contain;
  object-position: left center;
  transform: none;
  filter: none;
}
.product-brand-name { font-size: 12px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.product-brand--detail { min-height: 46px; margin-bottom: 16px; border-radius: 3px; }
.product-brand--detail .product-brand-logo { width: 148px; height: 46px; }
.product-brand--detail .product-brand-name { font-size: 15px; }
.product-brand--named .product-brand-logo { width: 36px; }
.product-brand--detail.product-brand--named .product-brand-logo { width: 60px; }
.product-brand--detail:focus-visible { outline: 2px solid var(--red); outline-offset: 5px; }
.product-brand--detail:hover { opacity: .8; }
.product-brand .product-brand-logo--light { background:#303a39; padding:5px 8px; border-radius:4px; }
.project-product-info .product-brand { margin-bottom: 6px; }
@media (max-width:700px) {
  .product-brand--detail { min-height: 40px; margin-bottom: 12px; }
  .product-brand--detail .product-brand-logo { width: 132px; height: 40px; }
}
.product-purchase-card .product-bottom { border: 0; padding-top: 8px; margin-top: auto; }
.card-cart-actions { padding: 0 20px 18px; }
.card-add-cart { width: 100%; min-height: 44px; gap: 9px; padding-inline: 10px; }
.card-add-cart svg { width: 19px; height: 19px; flex-shrink: 0; }
.card-cart-feedback { margin: 9px 0 0; font-size: 11px; line-height: 1.6; color: #435d35; }
.card-cart-feedback:empty { display: none; }
.card-cart-feedback a { color: var(--red); text-decoration: underline; }
.complementary-grid .product-card-link { display: flex; flex-direction: column; }
.complementary-grid .product-visual { height: 180px; }
.complementary-grid .product-description { min-height: 0; }
@media (max-width:700px) { .card-cart-actions { padding: 0 12px 14px; } }
.header-inner { gap: 24px; }
.main-nav { gap: 24px; }
.header-customer { display: flex; align-items: center; gap: 23px; }
.header-customer a { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; min-height: 48px; font-size: 11px; color: #4e5c42; white-space: nowrap; }
.header-customer a:hover { color: var(--red); }
.header-customer svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.header-customer .cart-count { position: absolute; right: -7px; top: -3px; min-width: 18px; height: 18px; padding: 2px 4px; display: grid; place-items: center; background: var(--red); color: #fff; border-radius: 20px; font-size: 10px; }
.button.button-secondary { background: #fff; color: var(--red); }
.button.button-secondary:hover { background: #fff4f3; }
button:disabled { cursor: default; opacity: .5; }
.detail-help a, .customer-status a { color: var(--red); text-decoration: underline; }
/* Product gallery mirrors the manual homepage photo controls. */
.product-photo-slide { position: absolute; inset: 0; display: grid; place-items: center; }
.product-media { min-width: 0; }
.product-detail-visual.product-gallery { min-height: 0; max-height: none; height: auto; aspect-ratio: 5 / 4; }
.product-photo-slide > svg { width: 100%; height: auto; max-height: 400px; padding: 38px; }
.product-gallery .gallery-arrows { position: absolute; inset: 50% 14px auto; display: flex; justify-content: space-between; transform: translateY(-50%); pointer-events: none; z-index: 2; }
.gallery-arrows button { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid #e1e3d9; border-radius: 50%; background: #fffffff0; color: #3e4d32; font-size: 21px; pointer-events: auto; box-shadow: 0 2px 8px #303c2112; }
.gallery-arrows button:hover:not(:disabled) { color: var(--red); border-color: var(--red); }
.product-gallery figcaption { bottom: 59px; }
.product-gallery .slide-indicators { width: max-content; max-width: calc(100% - 28px); flex-wrap: wrap; justify-content: center; }
.product-gallery .slide-indicator > span { border-color: #9ea58f; background: #fff9; }
.product-gallery .slide-indicator[aria-pressed="true"] > span { border-color: var(--red); background: var(--red); }
.product-gallery .slide-indicator:focus-visible { outline-color: var(--red); }
.related-controls { display: flex; align-items: center; justify-content: flex-end; gap: 17px; margin-top: 20px; }
.related-controls button { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #dfe5d5; background: white; border-radius: 4px; color: var(--red); font-size: 22px; }
.related-controls button:hover:not(:disabled) { border-color: var(--red); }
.related-controls span { font-size: 12px; color: #7c886e; }
/* Cart and customer profile. */
.customer-page { padding-block: 42px 70px; min-height: 60vh; }
.customer-card { border: 1px solid #e1e6d8; border-radius: 7px; padding: 28px; background: #fff; }
.customer-card h2 { font-size: 24px; margin: 0 0 18px; }
.customer-card > p { color: #7a856e; font-size: 13px; line-height: 1.8; }
.customer-muted { font-size: 12px; line-height: 1.8; color: #7a856e; }
.customer-status { font-size: 13px; line-height: 1.7; color: #5b6c4d; margin: 18px 0; overflow-wrap: anywhere; }
#cart-message:empty { display: none; }
.account-page > .order-heading, .account-page > .customer-status, .account-layout { max-width: 680px; margin-inline: auto; }
.account-layout { display: grid; grid-template-columns: minmax(0, 1fr); }
.customer-card.account-profile { padding: 0; border: 1px solid #e5e5df; border-radius: 16px; background: #fff; box-shadow: 0 8px 28px #25272306; }
.account-profile-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 25px 30px; border-bottom: 1px solid #e8e8e1; background: #fafaf7; border-radius: 16px 16px 0 0; }
.account-profile-identity { display: flex; align-items: center; gap: 14px; min-width: 0; flex: 1 1 230px; }
.account-profile-identity > div { min-width: 0; }
.account-profile-avatar { display: grid; place-items: center; flex: 0 0 48px; height: 48px; color: var(--red); background: #fff; border: 1px solid #e9e3dc; border-radius: 50%; }
.account-profile-avatar svg { width: 27px; height: 27px; }
.account-profile-heading h2 { margin: 0 0 5px; color: #252723; font-size: 21px; line-height: 1.3; }
.account-profile #account-email { margin: 0; color: #707468; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.account-signout { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 10px 12px; font-size: 12px; color: #62685b; border: 1px solid #e1e3da; border-radius: 8px; background: #fff; }
.account-signout svg { width: 17px; height: 17px; flex-shrink: 0; }
.account-signout:hover { color: var(--red); border-color: #d5aaa5; }
.account-signout:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.account-profile-fields { display: grid; grid-template-columns: minmax(0, 1fr); padding: 30px; }
.account-field-group { min-width: 0; padding: 0; margin: 0; border: 0; }
.account-field-group legend { width: 100%; margin: 0 0 23px; padding: 0; color: #333a2e; font-size: 15px; font-weight: 600; line-height: 1.5; }
.account-profile .form-field { margin: 0 0 19px; }
.account-profile .form-field:last-child { margin-bottom: 0; }
.account-profile .form-field label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 500; line-height: 1.4; color: #4e5646; }
.account-profile .form-field label span { color: var(--red); }
.account-profile .form-field input { box-sizing: border-box; min-width: 0; width: 100%; min-height: 50px; padding: 13px 14px; border: 1px solid #dedfd6; border-radius: 8px; background: #fff; color: #252723; font-size: 15px; line-height: 1.4; transition: border-color .15s, box-shadow .15s; }
.account-profile .form-field input::placeholder { color: #979c91; opacity: 1; }
.account-profile .form-field input:hover { border-color: #b4bbab; }
.account-profile .form-field input:focus { border-color: #77886b; outline: 2px solid #77886b33; outline-offset: 1px; box-shadow: 0 0 0 3px #77886b0a; }
.account-profile-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px 20px; padding: 22px 30px; border-top: 1px solid #e8e8e1; }
.account-profile-note { margin: 0; color: #72796a; font-size: 12px; line-height: 1.7; }
.account-profile-note span { display: block; margin-top: 4px; font-size: 11px; color: #8b9083; }
.account-profile-actions .button { min-height: 48px; border-radius: 8px; padding: 13px 22px; font-size: 13px; }
.account-profile-actions .customer-status { grid-column: 1 / -1; margin: 0; color: #166534; font-size: 13px; }
.account-profile-actions .customer-status.is-error { color: #a12822; }
.account-profile-actions .customer-status:empty { display: none; }
@media(max-width:640px) {
  .account-profile-heading { padding: 20px; gap: 12px; }
  .account-profile-identity { flex-basis: 190px; }
  .account-profile-heading h2 { font-size: 20px; }
  .account-profile-fields { grid-template-columns: minmax(0,1fr); padding: 24px 20px; gap: 25px; }
  .account-field-group legend { margin-bottom: 19px; }
  .account-profile .form-field input { font-size: 16px; }
  .account-profile-actions { grid-template-columns: minmax(0,1fr); padding: 20px; gap: 16px; }
  .account-profile-actions .button { width: 100%; }
}
.cart-layout { display: grid; grid-template-columns: 1.65fr 1fr; gap: 32px; align-items: start; }
.cart-items { display: grid; gap: 18px; }
.cart-item { display: grid; grid-template-columns: 140px 1fr; align-items: start; gap: 20px; border: 1px solid #e1e6d8; border-radius: 7px; padding: 22px; }
.cart-item-image { width: 140px; height: 130px; display: grid; place-items: center; background: #f4f4ef; border-radius: 4px; }
.cart-item-image img, .cart-item-image svg { width: 100%; height: 120px; object-fit: contain; }
.cart-item-details { min-width: 0; }
.cart-item h2 { font-size: 18px; line-height: 1.4; margin-bottom: 9px; }
.cart-item-details > p { margin: 0 0 18px; font-size: 12px; color: #7e896f; }
.cart-item .form-row { grid-template-columns: 95px 1fr; }
.cart-item .form-field { margin-bottom: 12px; }
.cart-item-actions { display: flex; gap: 20px; flex-wrap: wrap; }
.cart-item-actions button { min-height: 34px; border: 0; border-bottom: 1px solid #dfe4d6; background: transparent; color: #596b4a; font-size: 12px; padding: 5px 0; }
.cart-item-actions button:last-child { color: var(--red); }
.cart-item-purchase { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.cart-item-purchase .form-field { width: 112px; margin: 0; }
.cart-item-purchase input { min-height: 44px; font-size: 16px; }
.cart-line-price { display: grid; gap: 6px; padding-bottom: 5px; }
.cart-line-price > span { font-size: 11px; color: #68745e; }
.cart-line-price strong { font-size: 20px; color: var(--red); font-variant-numeric: tabular-nums; }
.cart-item .cart-save-state { min-height: 18px; margin: 12px 0 3px; color: #536b43; font-size: 11px; line-height: 1.6; }
.cart-item .cart-save-state.error { color: #a12822; }
.cart-item input[aria-invalid="true"] { border-color: #a12822; }
.cart-summary { background: #fafaf6; }
.cart-summary > div { display: flex; justify-content: space-between; gap: 20px; font-size: 13px; padding: 16px 0; border-top: 1px solid var(--line); }
.cart-summary > div span { color: #7e896f; }
.cart-summary .button { width: 100%; margin: 13px 0 20px; }
.cart-summary .back-catalog { display: inline-block; }
.cart-grand-total strong { color: var(--red); font-size: 21px; font-variant-numeric: tabular-nums; }
.shopping-help { padding-top: 16px; border-top: 1px solid var(--line); font-size: 12px; line-height: 1.7; color: #657257; }
.shopping-help a { display: block; width: fit-content; min-height: 44px; padding-block: 10px; color: var(--red); font-weight: 600; }
.required-fields-note { margin: 0 0 23px; color: #657257; font-size: 12px; line-height: 1.6; }
.header-customer a[aria-current="page"], .category-menu a[aria-current="page"] { color: var(--red); font-weight: 700; }
.checkout-line a:hover { text-decoration: underline; }
@media (min-width: 901px) { .cart-summary { position: sticky; top: 24px; } }
.cart-empty { max-width: 650px; padding-block: 45px; }
.cart-empty .button { margin-top: 15px; }
.checkout-line { display: grid; gap: 7px; padding-block: 18px; border-bottom: 1px solid var(--line); font-size: 12px; line-height: 1.6; }
.checkout-line strong { color: #455438; font-size: 14px; }
.checkout-line span { color: #7c886e; }
.payment-fieldset { border-top: 1px solid var(--line); }
@media (max-width: 1150px) { .header-phone { display: none; } .header-customer { margin-left: auto; } .main-nav { margin-left: auto; } }
@media (max-width: 900px) { .cart-layout { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .header-inner { display: grid; grid-template-columns: 1fr auto; gap: 0 16px; }
  .header-inner .brand { grid-row: 1; grid-column: 1; }
  .header-customer { grid-row: 1; grid-column: 2; gap: 18px; margin-right: 7px; }
  .header-customer a { font-size: 10px; }
  .main-nav { grid-row: 2; grid-column: 1 / -1; margin: 0; }
  .header-phone { display: none; }
  .customer-page { padding-block: 28px 40px; }
  .account-layout { grid-template-columns: 1fr; }
  .customer-card { padding: 24px 20px; }
  .customer-card .form-row { grid-template-columns: 1fr; gap: 0; }
  .customer-page input { font-size: 16px; }
  .cart-item { padding: 17px; grid-template-columns: 70px 1fr; gap: 14px; }
  .cart-item-image { width: 70px; height: 80px; }
  .cart-item-image svg, .cart-item-image img { height: 80px; }
  .cart-item h2 { font-size: 16px; }
  .cart-item .form-row { grid-template-columns: 1fr; gap: 0; }
  .cart-item-actions { gap: 17px; }
  .cart-summary .button { font-size: 12px; }
  .product-gallery .gallery-arrows { inset-inline: 10px; }
  .gallery-arrows button { width: 36px; height: 36px; }
  .related-controls { justify-content: space-between; }
}
@media (max-width: 360px) { .header-inner .brand, .header-inner .brand img { width: 130px; } .header-customer { gap: 13px; } }
/* Matching outline icons above all primary navigation labels. */
.main-nav > a, .categories-toggle { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 7px; min-height: 52px; padding-block: 5px; font-size: 11px; font-weight: 400; }
.main-nav .nav-icon { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.6; transform: none; flex-shrink: 0; }
.main-nav .nav-label { display: inline-flex; align-items: center; gap: 6px; }
.main-nav .category-chevron { width: 9px; height: 6px; }
.main-nav .active:after { bottom: -5px; }
.auth-card { width: min(100%,560px); margin-inline: auto; padding: 36px; }
.auth-card h2 { font-size: 29px; }
.auth-provider-list { display: grid; gap: 11px; margin-top: 23px; }
.auth-mode-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 5px; margin: 24px 0; border: 1px solid #e7e8e0; border-radius: 10px; background: #f5f6f1; }
.auth-mode-tabs button { min-height: 44px; padding: 10px; border: 0; border-radius: 7px; background: transparent; color: #69735e; font-size: 13px; font-weight: 600; }
.auth-mode-tabs button[aria-pressed="true"] { background: #fff; color: var(--red); box-shadow: 0 1px 5px #25321614; }
.auth-mode-tabs button:focus-visible, .auth-password-input button:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.auth-password-input { position: relative; }
.auth-card .auth-password-input input { padding-right: 54px; min-height: 48px; }
.auth-password-input button { position: absolute; top: 50%; right: 3px; transform: translateY(-50%); display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 5px; color: #65705b; background: transparent; }
.auth-password-input svg { width: 21px; height: 21px; }
.auth-password-input button[aria-pressed="true"] { color: var(--red); background: #f8eeeb; }
.account-other-login { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: 16px; color: #72796a; font-size: 12px; }
.account-other-login button { min-height: 44px; padding: 8px 4px; background: none; border: 0; color: var(--red); font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.auth-provider { display: flex; align-items: center; gap: 14px; min-height: 49px; width: 100%; background: #fff; border: 1px solid #dce2d3; border-radius: 5px; padding: 11px 15px; color: #3e4d32; text-align: left; font-size: 13px; }
.auth-provider:disabled { cursor: not-allowed; color: #68705f; }
.auth-provider small { margin-left: auto; color: #65715b; font-size: 10px; }
.auth-provider-icon { width: 21px; height: 21px; display: grid; place-items: center; object-fit: contain; color: #252723; flex-shrink: 0; }
.auth-provider-icon-apple { position: relative; height: 24px; overflow: hidden; }
.auth-provider-icon-apple img { position: absolute; top: calc(50% + 2.75px); left: 50%; width: 48px; height: 48px; max-width: none; transform: translate(-50%, -50%); }
.auth-divider { display: flex; align-items: center; gap: 15px; color: #7b856e; font-size: 11px; margin-block: 24px; }
.auth-divider:before, .auth-divider:after { content: ''; flex: 1; height: 1px; background: var(--line); }
.auth-card fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.company-fields { border-left: 2px solid #d8ded0; padding-left: 16px; margin: 8px 0 22px; }
.business-account-fields [hidden] { display: none !important; }
.business-account-fields select { width: 100%; min-height: 46px; border: 1px solid #dce2d3; border-radius: 4px; background: #fff; padding: 10px 12px; color: #3e4d32; font: inherit; font-size: 13px; }
.customer-orders-page { max-width: 1000px; }
.customer-orders-page .customer-card > .button { margin-top: 18px; }
.customer-order { margin: 0 0 22px; }
.customer-order header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.customer-order header h2 { font-size: 19px; margin: 0 0 8px; }
.customer-order time { font-size: 12px; color: #747d6a; }
.customer-order-state { padding: 8px 12px; border-radius: 20px; background: #f0f4ec; color: #4b633c; font-size: 11px; }
.customer-order ul { list-style: none; padding: 0; margin: 24px 0 16px; }
.customer-order li { display: flex; justify-content: space-between; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); padding: 14px 0; font-size: 13px; }
.customer-order li small { display: block; margin-top: 5px; color: #737b69; }
.customer-order li strong { white-space: nowrap; }
.customer-order-total { display: flex; justify-content: space-between; gap: 16px; font-size: 14px; margin-bottom: 22px; }
.customer-order p { overflow-wrap: anywhere; }
.auth-card input:disabled { cursor: not-allowed; background: #f6f7f2; }
.auth-email-button { width: 100%; }
.auth-card .auth-availability { padding: 14px; background: #f7f5ef; color: #766c52; border-radius: 4px; font-size: 11px; line-height: 1.7; margin-block: 18px; }
.auth-existing { display: flex; justify-content: center; align-items: center; gap: 9px; font-size: 12px; color: #7b856e; margin-block: 23px 14px; flex-wrap: wrap; }
.auth-switch { min-height: 34px; padding: 7px 11px; border: 1px solid #ddb9b6; border-radius: 4px; font-size: 11px; background: #fff; color: var(--red); }
.auth-switch:hover { background: #fff2f0; }
.auth-back { display: block; border: 0; background: transparent; color: var(--red); font-size: 12px; line-height: 1.7; text-align: left; min-height: 40px; padding: 10px 0; }
.auth-back { margin: 12px auto 0; }
@media (max-width: 700px) {
  .main-nav > a, .categories-toggle { min-height: 57px; padding-block: 7px; font-size: 11px; }
  .main-nav .active:after { bottom: 0; }
  .auth-card { padding: 26px 21px; }
  .auth-card h2 { font-size: 26px; }
}
/* Compact delivery check, directly between the hero and catalog. */
.delivery-banner { background: #fafbf7; border-bottom: 1px solid var(--line); scroll-margin-top: 20px; }
.delivery-inner { display: grid; grid-template-columns: 1fr minmax(280px, 450px); align-items: center; gap: 36px; padding-block: 22px; }
.delivery-intro { display: flex; align-items: center; gap: 18px; min-width: 0; }
.delivery-icon { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 48px; border-radius: 50%; background: #eef1e7; color: var(--red); }
.delivery-icon svg { width: 27px; height: 27px; }
.delivery-intro h2 { margin: 0; font-size: 22px; line-height: 1.3; letter-spacing: -.4px; font-weight: 600; }
.delivery-intro p { margin: 6px 0 0; color: #67705d; font-size: 13px; line-height: 1.6; }
.delivery-contact { display: inline-block; color: var(--red); font-size: 11px; padding-block: 8px; }
.delivery-contact:hover { text-decoration: underline; }
.delivery-checker { min-width: 0; }
.delivery-checker label { display: block; font-size: 12px; font-weight: 600; color: #435336; margin-bottom: 8px; }
.delivery-checker select { width: 100%; min-height: 44px; padding: 10px 13px; border: 1px solid #cfd8c4; border-radius: 4px; background: #fff; color: #3e4d32; font-size: 14px; }
.delivery-checker select:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.delivery-checker [data-delivery-result] { margin: 8px 0 0; min-height: 38px; font-size: 12px; line-height: 1.6; color: #67705d; }
.delivery-checker [data-delivery-result][data-status="pending"] { color: #795d1f; }
.delivery-checker [data-delivery-result][data-status="eligible"] { color: #15803d; font-weight: 600; }
.delivery-checker [data-delivery-result][data-status="unavailable"] { color: #962d24; }
.delivery-checker noscript p { font-size: 12px; line-height: 1.6; }
@media (max-width:1000px) { .delivery-inner { grid-template-columns: 1fr 1fr; gap: 28px; } .delivery-intro { gap: 13px; } .delivery-intro h2 { font-size: 20px; } }
@media (max-width:700px) { .delivery-inner { grid-template-columns: 1fr; gap: 12px; padding-block: 20px; } .delivery-icon { width: 42px; height: 42px; flex-basis: 42px; } .delivery-intro h2 { font-size: 20px; } .delivery-checker select { font-size: 16px; } }

/* Long category names stay readable in the shared catalog filter. */
.catalog-toolbar .select-wrap select { width: 290px; max-width: 100%; }
@media (max-width:700px) {
  .catalog-toolbar .select-wrap { width: 100%; margin-left: 0; }
  .catalog-toolbar .select-wrap select { width: 100%; max-width: none; }
}

/* Real heating products: clear gallery photographs and concise product facts. */
.product-media { min-width: 0; }
.product-gallery-note { margin: 10px 0 0; color: #74756e; font-size: 11px; line-height: 1.65; }
.product-photo-slide .photo-label { max-width: calc(100% - 38px); }
.product-features { padding-left: 19px; margin: 17px 0 0; }
.product-features li { padding-left: 3px; margin-block: 7px; }
.specification-list + .usage-note { margin-top: 18px; }
@media(max-width:700px) {
  .product-gallery-note { font-size: 10px; }
}

/* Click-to-enlarge product photographs, with a native accessible modal. */
.product-photo-open { position: absolute; inset: 0; display: block; cursor: zoom-in; border-radius: inherit; }
.product-photo-open:focus-visible { outline-offset: -4px; }
.product-photo-slide .photo-label { pointer-events: none; }
.photo-zoom-icon { position: absolute; right: 14px; bottom: 12px; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #e0e2da; border-radius: 50%; background: #fffffff0; color: #4e5c42; }
.photo-zoom-icon svg { width: 18px; height: 18px; }
.product-image-viewer { width: min(1320px, calc(100vw - 40px)); height: calc(100vh - 40px); height: calc(100dvh - 40px); max-width: none; max-height: none; margin: auto; padding: 0; border: 1px solid #e6e5df; border-radius: 8px; background: #faf9f6; color: var(--ink); box-shadow: 0 18px 80px #0005; }
.product-image-viewer::backdrop { background: #171916c9; }
.product-image-viewer:not([open]) { display: none; }
.image-viewer-content { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; height: 100%; }
.image-viewer-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 20px; border-bottom: 1px solid var(--line); background: #fff; }
.image-viewer-header p { margin: 0; font-size: 14px; line-height: 1.5; font-weight: 600; }
.image-viewer-close, .image-viewer-controls button { flex-shrink: 0; width: 44px; height: 44px; display: grid; place-items: center; background: #fff; border: 1px solid #dfe1d9; border-radius: 50%; color: var(--ink); font-size: 24px; line-height: 1; }
.image-viewer-close:hover, .image-viewer-controls button:hover:not(:disabled) { color: var(--red); border-color: var(--red); }
.image-viewer-stage { position: relative; min-width: 0; min-height: 0; overflow: hidden; touch-action: none; cursor: zoom-in; user-select: none; }
.image-viewer-stage img { position: absolute; top: 50%; left: 50%; display: block; width: 100%; height: 100%; max-width: none; min-height: 0; object-fit: contain; transform: translate(-50%, -50%); transform-origin: center; pointer-events: none; user-select: none; }
.image-viewer-stage[data-zoomed="true"] { cursor: grab; }
.image-viewer-stage[data-zoomed="true"].is-dragging { cursor: grabbing; }
.image-viewer-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 18px; padding: 10px 20px; background: #fff; border-top: 1px solid var(--line); }
.image-zoom-controls { display: flex; align-items: center; gap: 6px; }
.image-zoom-controls button { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px; border: 1px solid #dfe1d9; border-radius: 5px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; cursor: pointer; }
.image-zoom-controls button:hover:not(:disabled) { color: var(--red); border-color: var(--red); }
.image-zoom-controls button:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; }
.image-zoom-controls button svg { width: 20px; height: 20px; }
.image-zoom-controls output { min-width: 48px; text-align: center; font-size: 12px; font-variant-numeric: tabular-nums; }
.image-zoom-hint { flex-basis: 100%; order: 3; margin: 0; font-size: 11px; line-height: 1.5; color: #666d60; text-align: center; }
.image-viewer-footer .image-viewer-controls { gap: 10px; padding: 0; border: 0; }
.image-viewer-controls { display: flex; align-items: center; justify-content: center; gap: 22px; padding: 10px 20px; background: #fff; border-top: 1px solid var(--line); }
.image-viewer-controls span { min-width: 120px; text-align: center; font-size: 12px; color: #666d60; }
@media (max-width: 700px) {
  .product-image-viewer { width: 100vw; height: 100vh; height: 100dvh; border: 0; border-radius: 0; }
  .image-viewer-header { padding: max(10px, env(safe-area-inset-top)) 12px 10px; gap: 12px; }
  .image-viewer-header p { font-size: 12px; }
  .image-viewer-footer { justify-content: center; padding: 10px 12px max(12px, env(safe-area-inset-bottom)); }
}

/* Customer authentication keeps the store's compact, quiet visual style. */
.auth-provider:not(:disabled) { cursor: pointer; transition: border-color .18s, background .18s; }
.auth-provider:not(:disabled):hover { border-color: #afbd9e; background: #fafbf7; }
.auth-provider:focus-visible, .auth-switch:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.auth-forgot { display: inline-flex; align-items: center; min-height: 44px; margin-top: 12px; }
.auth-forgot[aria-disabled="true"] { opacity: .6; }
.recovery-page > .order-heading { max-width: 560px; }
.recovery-help { color: #707866; font-size: 12px; line-height: 1.7; margin: 0 0 22px; }
.recovery-back { width: fit-content; text-align: center; text-decoration: underline; text-underline-offset: 3px; min-height: 44px; }
.recovery-success { padding: 14px 16px; background: #edf7ee; border-radius: 6px; color: #166534; }
.auth-error { color: #a12828; }
#auth-message { margin-top: 18px; line-height: 1.6; }
#password-recovery-form { margin-top: 20px; }
.auth-card [hidden] { display: none !important; }
/* The server validates administrator privileges before this shortcut is shown. */
.header-customer [data-admin-dashboard][hidden]{display:none!important}
.header-customer .admin-dashboard-link{color:var(--red);font-weight:600}
.header-customer .admin-dashboard-link:hover{color:#8d201b}
@media(max-width:700px){.header-customer{flex-wrap:wrap;justify-content:flex-end}.header-customer .admin-dashboard-link{min-width:48px}}

.promotion-reference{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;margin:0 0 7px;color:#675d54;font-size:12px;line-height:1.35}
.promotion-reference del{font-variant-numeric:tabular-nums;text-decoration-thickness:1px}
.promotion-tag{display:inline-block;padding:3px 7px;border-radius:5px;background:#a52229;color:#fff;font-size:11px;font-weight:750}
