/* Public catalogue and contact controls; product photographs stay unaltered. */
body { padding-bottom: calc(104px + env(safe-area-inset-bottom, 0px)); }
.brand-logo, .footer-logo {
  display: block;
  width: 56px;
  height: 56px;
  object-fit: contain;
  flex: 0 0 56px;
}
.footer-logo { margin-bottom: 16px; }
nav.social-links, .social-links {
  display: flex;
  position: static;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  padding: 0;
  margin: 18px 0 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  font-size: 11px;
}
.social-links a, footer .social-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-height: 38px;
  margin: 0;
  padding: 8px 13px;
  border: 1px solid var(--line, #d5dbcf);
  border-radius: 3px;
  background: var(--paper, #fffefa);
  color: var(--pine, #173e32);
  text-decoration: none;
  line-height: 1.4;
}
.social-links a:hover { border-color: var(--pine, #173e32); background: #e8ecdf; }
.catalog-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 30px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line, #d5dbcf);
}
.catalog-toolbar button[data-product-filter] {
  min-height: 43px;
  padding: 10px 20px;
  border: 1px solid #becabc;
  border-radius: 24px;
  background: transparent;
  color: var(--pine, #173e32);
  font-size: 13px;
  line-height: 1.4;
}
.catalog-toolbar button[data-product-filter]:hover { background: #e6ebdf; }
.catalog-toolbar button[data-product-filter][aria-pressed="true"],
.catalog-toolbar button[data-product-filter].active {
  border-color: var(--pine, #173e32);
  background: var(--pine, #173e32);
  color: var(--paper, #fffefa);
}
#catalog-count { margin-left: auto; font-size: 12px; color: var(--muted, #65736a); }
.catalog-grid, .product-preview-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}
.catalog-grid > article[hidden], article[data-product-category][hidden] { display: none !important; }
.product-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line, #d5dbcf);
  border-radius: var(--radius, 3px);
  background: var(--paper, #fffefa);
}
.product-card > a:first-child { display: block; text-decoration: none; }
.product-card img {
  display: block;
  width: 100%;
  height: 260px;
  object-fit: contain;
  padding: 18px;
  background: #edece5;
  border-bottom: 1px solid var(--line, #d5dbcf);
}
.product-card > div, .product-card > section, .product-card > .product-card-body,
.product-card > .product-info, .product-card > .product-copy { padding: 24px; }
.product-card > h2, .product-card > h3 { margin: 24px 24px 14px; }
.product-card > p { margin: 0 24px 22px; }
.product-card h2, .product-card h3 { font-size: 25px; line-height: 1.2; letter-spacing: -.025em; }
.product-card p { font-size: 13px; line-height: 1.75; color: var(--muted, #65736a); }
.product-card .eyebrow { margin-bottom: 13px; font-size: 9px; }
.product-card dl { margin: 20px 0; font-size: 12px; }
.product-card dl > div { display: flex; justify-content: space-between; gap: 15px; padding: 8px 0; border-bottom: 1px solid #e5e8df; }
.product-card dt { color: var(--muted, #65736a); }
.product-card dd { margin: 0; text-align: right; }
.product-card .text-link { font-size: 12px; }
.product-card .button { margin-top: 7px; }
.product-mini {
  display: flex;
  min-width: 0;
  flex-direction: column;
  border: 1px solid var(--line, #d5dbcf);
  border-radius: var(--radius, 3px);
  background: var(--paper, #fffefa);
  text-decoration: none;
}
.product-mini img { width: 100%; height: 220px; object-fit: contain; padding: 16px; background: #edece5; }
.product-mini > div, .product-mini > span, .product-mini > strong { padding: 18px 20px; }
.product-mini h3 { margin-bottom: 10px; font-size: 22px; }
.product-mini p { margin-bottom: 0; font-size: 12px; color: var(--muted, #65736a); }
.product-mini:hover { border-color: #718976; }
.contact-channels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 25px 0; }
.contact-channels > a, .contact-channels > button {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 5px;
  min-width: 0;
  padding: 19px;
  border: 1px solid var(--line, #d5dbcf);
  border-radius: var(--radius, 3px);
  background: var(--paper, #fffefa);
  color: var(--pine, #173e32);
  text-align: left;
  text-decoration: none;
  overflow-wrap: anywhere;
  font-size: 13px;
}
.contact-channels > a:hover, .contact-channels > button:hover { border-color: #718976; background: #edf0e7; }
.contact-channels small { font-size: 11px; color: var(--muted, #65736a); }
.contact-dock {
  position: fixed;
  z-index: 80;
  left: 50%;
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  display: flex;
  align-items: stretch;
  gap: 7px;
  width: min(650px, calc(100% - 32px));
  padding: 8px;
  border: 1px solid #bdcabb;
  border-radius: 7px;
  background: var(--paper, #fffefa);
  box-shadow: 0 5px 28px #0c2d2426;
}
.contact-dock > a, .contact-dock > button {
  display: inline-flex;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
  min-height: 49px;
  padding: 10px 14px;
  border: 1px solid var(--line, #d5dbcf);
  border-radius: 3px;
  background: var(--cream, #f6f3eb);
  color: var(--pine, #173e32);
  text-align: center;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}
.contact-dock > a[href*="wa.me"], .contact-dock > a[href*="whatsapp.com"] { border-color: #236b40; background: #236b40; color: #fff; }
.contact-dock > a:hover, .contact-dock > button:hover { filter: brightness(.94); }
.contact-dock svg { width: 19px; height: 19px; flex: 0 0 19px; }
#wechat-dialog {
  width: min(460px, calc(100% - 32px));
  max-height: calc(100dvh - 48px);
  padding: 34px;
  border: 1px solid #bdcabb;
  border-radius: 6px;
  background: var(--paper, #fffefa);
  color: var(--ink, #19392f);
  box-shadow: 0 20px 90px #0c2d2440;
  overflow: auto;
}
#wechat-dialog::backdrop { background: #09271fd1; }
#wechat-dialog h2 { font-size: 31px; margin: 0 0 17px; }
#wechat-dialog p { font-size: 14px; color: var(--muted, #65736a); }
#wechat-dialog .wechat-number, #wechat-dialog [data-wechat-number] {
  display: block;
  margin: 19px 0;
  padding: 17px;
  border: 1px solid var(--line, #d5dbcf);
  background: var(--cream, #f6f3eb);
  color: var(--pine, #173e32);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 26px;
  letter-spacing: .05em;
  user-select: text;
  -webkit-user-select: text;
}
#wechat-dialog [data-copy-wechat] { min-height: 44px; padding: 11px 20px; border: 1px solid var(--pine, #173e32); border-radius: 3px; background: var(--pine, #173e32); color: #fff; font-size: 13px; }
#wechat-dialog [data-close-wechat] { min-height: 44px; margin-left: 9px; padding: 11px 18px; border: 1px solid var(--line, #d5dbcf); border-radius: 3px; background: transparent; color: var(--pine, #173e32); font-size: 13px; }
#wechat-copy-status { min-height: 2.8em; margin: 18px 0 0; font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; user-select: text; -webkit-user-select: text; }
@media (max-width: 1000px) {
  .catalog-grid, .product-preview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 800px) {
  nav.social-links, .social-links { display: flex !important; position: static; flex-direction: row; width: auto; border: 0; padding: 0; box-shadow: none; }
  nav.social-links > a:not(.button) { padding: 8px 13px; }
  footer > div:last-child:has(.social-links) { display: block; }
}
@media (max-width: 620px) {
  .catalog-grid, .product-preview-grid { grid-template-columns: minmax(0, 1fr); gap: 23px; }
  .catalog-toolbar { gap: 8px; margin-bottom: 24px; }
  .catalog-toolbar button[data-product-filter] { padding: 9px 16px; font-size: 12px; }
  #catalog-count { width: 100%; margin: 7px 0 0; }
  .product-card > div, .product-card > section, .product-card > .product-card-body,
  .product-card > .product-info, .product-card > .product-copy { padding: 22px; }
  .contact-channels { grid-template-columns: minmax(0, 1fr); }
  .contact-dock { bottom: 0; left: 0; width: 100%; transform: none; border-radius: 0; border-right: 0; border-left: 0; border-bottom: 0; padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px)); gap: 6px; }
  .contact-dock > a, .contact-dock > button { min-height: 48px; padding: 9px 6px; font-size: 11px; gap: 5px; }
  .contact-dock svg { width: 17px; height: 17px; flex-basis: 17px; }
  #wechat-dialog { padding: 27px 23px; }
  #wechat-dialog h2 { font-size: 28px; }
  .social-links a, footer .social-links a { min-height: 40px; }
}

/* Orientation is display-only: original photograph bytes remain intact. */
img.rotate-180, .photo-zoom img.rotate-180, .lightbox img.rotate-180 { transform: rotate(180deg); }
.product-list .note { margin-top: 36px; }
footer button.text-link { display:block; border:0; background:none; padding:0; text-align:left; font:inherit; color:var(--pine); cursor:pointer; }
.contact-section { border-top:1px solid var(--line); }
.product-mini .eyebrow { margin:14px 0 9px; }
.product-mini > div { display:flex; flex-direction:column; gap:12px; }
.product-mini strong { font-size:18px; line-height:1.55; color:var(--pine); }
.product-mini small { display:block; font-size:12px; line-height:1.8; color:var(--muted); }
.product-card > .product-card-body { flex:1; display:flex; flex-direction:column; align-items:flex-start; }
.product-card .product-card-body dl { width:100%; }
.product-card .product-card-body .button { margin-top:auto; }
.contact-channels { grid-template-columns:repeat(3,minmax(0,1fr)); }
.product-list { padding-top:24px; }
@media(min-width:801px) { .page-intro:has(+ .product-list) { padding-top:55px; padding-bottom:28px; } }
@media(max-width:620px) { .contact-channels { grid-template-columns:1fr; } }
/* Keep the desktop quick-contact tray clear of the main left-hand call to action. */
@media(min-width:621px) {
 .contact-dock { left:auto; right:24px; width:390px; transform:none; }
 .contact-dock > a, .contact-dock > button { min-height:44px; padding:9px 7px; font-size:11px; }
}
