[hidden] { display: none !important; }
:root { scroll-padding-top: 155px; }
body { overflow-wrap: anywhere; }
button, input, select, textarea, .btn, summary { font: inherit; }
button, summary { cursor: pointer; }
.btn, .basket, summary, input, select { min-height: 44px; }
.btn { display: inline-flex; justify-content: center; align-items: center; text-align: center; }
.basket { min-width: 44px; }
header.nav { z-index: 30; }
header.nav .site-header {
  display: grid;
  grid-template-columns: max-content minmax(108px, 1fr) max-content max-content max-content;
  gap: 10px;
  align-items: center;
  min-height: 64px;
  padding-block: 8px;
}
.site-header .logo { display: flex; align-items: center; flex-wrap: wrap; min-height: 44px; }
.site-header .srch { width: 100%; min-width: 0; margin: 0; }
.site-header .main-nav { display: flex; align-items: center; gap: 12px; width: auto; margin: 0; order: initial; }
.main-nav > a, .footer-links > a { display: inline-flex; align-items: center; min-height: 44px; }
.header-pop { position: relative; min-width: 0; }
.header-pop summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  list-style: none;
  padding: 5px 10px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: var(--card);
  white-space: nowrap;
}
.header-pop summary::-webkit-details-marker { display: none; }
.header-pop .pop-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  min-width: max(100%, 145px);
  width: max-content;
  max-width: min(80vw, 350px);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  box-shadow: var(--sh);
  overflow: hidden;
  z-index: 2;
}
.header-pop .pop-menu a {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  padding: 6px 14px;
  text-decoration: none;
}
.header-pop .pop-menu a:hover, .header-pop a[aria-current] { background: var(--terra-soft); }
.basket-icon, .mobile-menu { display: none; }
.bk { white-space: nowrap; }
.sres a { min-height: 44px; }

.content-page, .product-page { padding-block: clamp(24px,5vw,58px); }
.content-page { max-width: 860px; }
#catalogue-grid { margin-top: 16px; }
.content-page:has(#catalogue-grid) { max-width: 1120px; }
.content-page h1, .product-summary h1 { font-size: clamp(2rem, 4.6vw, 3.4rem); }
.listing-tools { display: flex; gap: 12px; flex-wrap: wrap; }
.listing-tools label { flex: 1 1 145px; }
.listing-tools select { width: 100%; display: block; margin-top: 4px; }
.listing-tools select, .site-dialog textarea {
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  color: var(--ink);
  background: var(--card);
}
.pc small { display: block; }
.card-price { font-weight: 600; }
.text-section, .faq-item { padding-block: 20px; border-bottom: 1px solid var(--line); }
.text-section p:last-child { margin-bottom: 0; }
.faq-item { padding: 0; }
.faq-item summary { display: list-item; padding: 10px 0; }
.content-page .f { max-width: none; grid-template-columns: repeat(2, minmax(0,1fr)); }
.content-page .full { grid-column: 1 / -1; }
.error-code, .brand-slogan { color: var(--wood); font: 400 1.5rem var(--serif); }

.product-page .crumb { display: flex; align-items: center; flex-wrap: wrap; gap: 0 7px; padding-top: 0; }
.crumb a { display: inline-flex; align-items: center; min-height: 44px; }
.product-page .pd { grid-template-columns: repeat(2, minmax(0,1fr)); align-items: start; gap: clamp(20px,4vw,42px); padding-block: 12px 32px; }
.product-summary, .gallery { min-width: 0; }
.gallery-figure { margin: 0; }
.gallery-stage { position: relative; background: var(--card); border-radius: var(--r-sm); touch-action: pan-y; }
#gallery-zoom { display: block; width: 100%; aspect-ratio: 1; border: 0; padding: 0; background: none; cursor: zoom-in; }
#product-image { width: 100%; height: 100%; aspect-ratio: 1; object-fit: contain; }
.gallery-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--card);
  color: var(--ink);
  font-size: 1.6rem;
}
.gallery-arrow[data-slide="-1"] { left: 8px; }
.gallery-arrow[data-slide="1"] { right: 8px; }
#gallery-caption { margin: 8px 0; font-weight: 500; }
.gallery-strip {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding: 4px 3px 10px;
  scrollbar-width: thin;
}
.gallery-thumb {
  flex: 0 0 64px;
  height: 64px;
  padding: 2px;
  overflow: hidden;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
}
.gallery-thumb[aria-pressed="true"] { outline: 2px solid var(--wood); outline-offset: -2px; }
.gallery-thumb img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 6px; }
.product-price { margin: 0 0 12px; font: 400 1.55rem var(--serif); color: var(--wood); }
.variant-picker { margin: 12px 0; }
.stepper { display: inline-flex; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--card); }
.stepper button { min-width: 44px; min-height: 44px; background: transparent; border: 0; color: var(--wood); }
.stepper input { min-width: 0; width: 64px; text-align: center; border: 0; border-inline: 1px solid var(--line); border-radius: 0; padding: 4px; }
.stepper input::-webkit-inner-spin-button { appearance: none; }
.trust-row { margin: 12px 0; color: var(--muted); }
.trust-row a { display: inline-flex; align-items: center; min-height: 44px; }
.spec-table { width: 100%; border-collapse: collapse; text-align: start; }
.spec-table th, .spec-table td { text-align: start; padding: 7px 4px; border-bottom: 1px solid var(--line); }
.spec-table th { width: 39%; font-weight: 500; }
.product-references { margin-block: 12px 32px; }
.reference-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.reference-item { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 12px; }
.reference-item h3 { font-size: 1.15rem; }
.reference-photo { padding: 0; border: 0; background: none; cursor: zoom-in; width: 100%; }
.reference-photo img { display: block; width: 100%; aspect-ratio: 1; height: auto; object-fit: contain; border-radius: 8px; }
.image-placeholder { min-height: 74px; margin: 0; display: flex; align-items: center; color: var(--muted); }
.wholesale-banner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; border-block: 1px solid var(--line); padding: 12px 0; margin-bottom: 32px; }
.wholesale-banner p { margin: 0; }

footer { padding-bottom: calc(30px + env(safe-area-inset-bottom)); }
footer .footer-columns { grid-template-columns: 1.25fr 1fr 1fr 1.25fr; }
.footer-columns h2 { font-size: 1.2rem; }
.footer-links { display: grid; justify-items: start; }
.footer-columns .btn.ghost { color: var(--line); border-color: currentColor; }
.footer-columns .contact-actions { gap: 6px; }
.footer-columns .contact-actions .btn { padding-inline: 12px; }
.social-slots { display: flex; gap: 12px; }
.copyright { margin-bottom: 0; }
.contact-address { overflow-wrap: anywhere; }

.wa { bottom: max(12px, env(safe-area-inset-bottom)); min-height: 44px; }
.wa-obscured, body:has(.drawer.on) .wa { visibility: hidden; }
.drawer { max-height: 100dvh; padding-bottom: max(18px, env(safe-area-inset-bottom)); }
.drawer-header, .dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.drawer-header h2, .dialog-header h2 { margin: 0; }
.drawer .items { min-height: 0; }
.drawer .act { flex: 0 0 auto; }
.drawer .act .btn { min-height: 44px; }
.drawer button:disabled { opacity: .55; cursor: default; }
.site-dialog {
  max-height: min(90dvh,760px);
  width: min(calc(100% - 28px),630px);
  padding: clamp(14px,3vw,24px);
  background: var(--bg);
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--sh-lg);
}
.site-dialog::backdrop { background: rgb(31 23 15 / 60%); }
.site-dialog textarea { display: block; width: 100%; margin: 6px 0; resize: vertical; }
.copy-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
#copy-status:empty { display: none; }
.photo-dialog { width: min(calc(100% - 24px),920px); }
.photo-dialog form { display: flex; justify-content: end; margin-bottom: 8px; }
.photo-dialog img { width: 100%; max-height: 69dvh; display: block; object-fit: contain; }
.consent { position: fixed; z-index: 54; inset: auto 12px max(12px,env(safe-area-inset-bottom)); max-width: 670px; margin-inline: auto; padding: 14px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh); }
.consent p { margin: 0 0 8px; }

@media (max-width: 940px) {
  header.nav .site-header { grid-template-columns: minmax(105px,1fr) max-content max-content max-content; gap: 6px; }
  .site-header .main-nav { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu summary { min-width: 44px; font-size: 1.15rem; }
  .site-header .srch { grid-column: 1 / -1; grid-row: 2; max-width: none; }
  .basket-label { display: none; }
  .basket-icon { display: inline; }
  footer .footer-columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  header.nav .site-header { padding-inline: 10px; width: 100%; }
  .site-header .logo { display: flex; align-items: start; flex-direction: column; justify-content: center; font-size: clamp(1.14rem,5vw,1.45rem); line-height: 1; }
  .site-header .logo small { display: block; margin-left: 0; margin-top: 4px; }
  .site-header .bk { padding-inline: 7px; }
  .site-header .bk b { padding-inline: 5px; margin: 0; }
  .languages summary { gap: 4px; padding-inline: 7px; }
  .product-page .pd { grid-template-columns: minmax(0,1fr); }
  .pd .btn { display: inline-flex; }
  .pd .contact-actions > * { flex: 1 1 120px; }
  .reference-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .content-page .f { grid-template-columns: minmax(0,1fr); }
  .content-page .grid, .related .grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .pc .b { padding: 9px; }
  .drawer { width: min(100%,400px); }
}
@media (max-width: 380px) {
  footer .footer-columns { grid-template-columns: minmax(0,1fr); gap: 20px; }
}


.footer-links a, .main-nav > a, .crumb a, .trust-row a, .drawer .item-detail a,
.faq-item p a, .text-section a, .consent a, .btn {
  min-width: 44px;
  min-height: 44px;
}
.faq-item p a, .text-section a, .consent a {
  display: inline-flex;
  align-items: center;
}
