.catalog-page {
  --catalog-surface: #fcfcf8;
  --catalog-border: #d8ded5;
  padding-block: clamp(1.2rem, 3vw, 2.8rem) clamp(4rem, 8vw, 7rem);
}
.catalog-stage {
  display: grid;
  position: relative;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr);
  min-height: 190px;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid #dce5da;
  border-radius: 22px;
  background: linear-gradient(112deg, #f5f6ef, #e0ebdf);
}
.catalog-stage:not(:has(.catalog-stage-media)) { grid-template-columns: 1fr; }
.catalog-stage-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  position: relative; z-index: 1; min-width: 0;
  padding: clamp(1.25rem, 3.1vw, 2.7rem);
}
.catalog-page .catalog-stage h1 {
  max-width: none;
  font-size: clamp(2.45rem, 5.5vw, 5.2rem);
}
.catalog-stage-copy h1 + p {
  max-width: 53ch;
  margin: .55rem 0 0;
  font-size: clamp(.94rem, 1.4vw, 1.09rem);
  color: #3f5045;
}
.catalog-custom {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  margin-top: 1.15rem;
  min-height: 44px;
  padding: .55rem .95rem;
  background: #263b31;
  border-radius: 99px;
  color: #fff;
  font-size: .85rem;
  font-weight: 750;
  text-decoration: none;
}
.catalog-custom:hover { background: #14281e; }
.catalog-stage-media { position: relative; min-height: 205px; isolation: isolate; }
.catalog-stage-media img { position: absolute; inset: 0; object-position: center 54%; }
.catalog-stage-ornament {
  position: absolute; inset: 50% clamp(-1.4rem, 1vw, .65rem) auto auto;
  width: clamp(190px, 38%, 380px); height: auto; transform: translateY(-50%);
  color: #4e7963; opacity: .55; pointer-events: none;
}
.catalog-crumbs { margin-bottom: .85rem; }
.catalog-crumbs ol {
  display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .55rem;
  list-style: none; padding: 0; margin: 0;
}
.catalog-crumbs li { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.catalog-crumbs li + li::before {
  content: ""; flex: none; width: .28rem; height: .28rem;
  transform: rotate(45deg); border: solid #6d8577; border-width: 1px 1px 0 0;
}
.catalog-crumbs a {
  color: #435d50; font-size: .77rem; font-weight: 700; text-underline-offset: .2em;
}
.catalog-crumbs a[aria-current] { color: #294639; font-weight: 800; }
.catalog-controls {
  display: grid; gap: .55rem; margin-top: 1rem; padding: .65rem;
  border: 1px solid var(--catalog-border); border-radius: 17px; background: var(--catalog-surface);
}
.catalog-tabs {
  display: flex; align-items: center; gap: .18rem;
  max-width: 100%; min-width: 0;
}
.catalog-tabs a {
  display: flex; align-items: center; justify-content: center; gap: .33rem;
  min-height: 44px; padding: .45rem .62rem; border-radius: 9px;
  font-weight: 750; font-size: .84rem; text-decoration: none; white-space: nowrap;
}
.catalog-tabs small { color: #506657; font-size: .7rem; font-variant-numeric: tabular-nums; }
.catalog-tabs a:focus-visible { outline-offset: -3px; }
.catalog-tabs a:hover { background: #f0f3ec; }
.catalog-tabs a[aria-current] { background: #e4ede1; color: #254739; }
.catalog-tabs a[aria-current] small { color: inherit; }
.catalog-filters { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .45rem; }
.catalog-search {
  display: flex; align-items: center; gap: .15rem;
  border: 1px solid #d7dfd4; border-radius: 10px; background: #f5f6f0;
}
.catalog-search label {
  display: flex; align-items: center; gap: .5rem; padding-left: .65rem;
  flex: 1; min-width: 0; color: #4f6659;
}
.catalog-search input[type="search"] {
  min-width: 0; min-height: 42px; padding: .35rem .1rem; border: 0;
  border-radius: 0; background: transparent; font-size: .86rem; font-weight: 550;
}
.catalog-search button {
  align-self: stretch; border: 0; border-left: 1px solid #dce2d8;
  padding: 0 .6rem; background: transparent; color: #2a4839; border-radius: 0 9px 9px 0;
  font-size: .79rem; font-weight: 800;
}
.catalog-search button:hover { background: #e8efe4; }
.catalog-search :focus-visible { outline-offset: -2px; }
.catalog-advanced summary {
  display: flex; align-items: center; gap: .4rem; height: 100%; min-height: 44px;
  padding: .35rem .65rem; border: 1px solid #d7dfd4; border-radius: 10px;
  color: #304d3e; font-size: .82rem; font-weight: 800; list-style: none;
}
.catalog-advanced summary::-webkit-details-marker { display: none; }
.catalog-advanced summary:hover, .catalog-advanced[open] summary { background: #e8efe4; border-color: #b4c4b5; }
.catalog-advanced summary small {
  display: grid; place-items: center; min-width: 1.22rem; height: 1.22rem; padding-inline: .14rem;
  border-radius: 50%; background: #dbe7d9; color: #2d5140; font-size: .67rem;
}
.catalog-filter-extra {
  position: absolute; z-index: 4; inset: calc(100% + .45rem) 0 auto;
  display: grid; gap: .65rem;
  padding: .85rem; background: var(--catalog-surface); border: 1px solid #d5dfd3;
  border-radius: 14px; box-shadow: 0 12px 30px #24392d1f;
}
.catalog-filter-fields {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr)); align-items: end; gap: .65rem;
}
.catalog-filter-extra label { min-width: 0; font-size: .8rem; color: #384f42; }
.catalog-filter-extra select {
  border-radius: 8px; border-color: #d5dfd3; min-height: 44px; background: #fff; font-size: .86rem;
}
.catalog-filter-extra .button { justify-self: end; min-height: 44px; border-radius: 9px; }
.catalog-active { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.catalog-active a {
  display: inline-flex; align-items: center; gap: .42rem; max-width: 100%;
  min-height: 34px; padding: .25rem .62rem; border-radius: 8px;
  font-size: .75rem; font-weight: 750; color: #315343; text-decoration: none; overflow-wrap: anywhere;
  background: #eaf0e7;
}
.catalog-active a:hover { background: #dae8d9; }
.catalog-active .catalog-reset { background: transparent; text-decoration: underline; text-underline-offset: .18em; }
.catalog-result-head, .catalog-group-head {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: .5rem 1.25rem;
}
.catalog-result-head { scroll-margin-top: .8rem; margin-block: 1.3rem .8rem; color: var(--muted); font-size: .88rem; }
.catalog-result-head p { margin: 0; font-weight: 750; }
.catalog-view {
  display: inline-flex; gap: .16rem; padding: .19rem;
  border: 1px solid #d6dfd4; border-radius: 11px; background: var(--catalog-surface);
}
.catalog-view a {
  display: inline-flex; align-items: center; gap: .36rem; min-height: 42px; padding: .22rem .56rem;
  color: #425e50; border-radius: 8px; text-decoration: none; font-size: .78rem; font-weight: 750;
}
.catalog-view a:hover { background: #edf3eb; }
.catalog-view a[aria-current] { background: #dfeade; color: #274638; }
.catalog-group { margin-top: 2.5rem; }
.catalog-result-head + .catalog-group { margin-top: 0; }
.catalog-group-head { margin-bottom: .9rem; }
.catalog-group-head h2 {
  margin: 0;
  font-size: clamp(1.75rem, 3vw, 2.7rem);
  line-height: 1.04;
}
.catalog-group-head a {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .86rem;
  font-weight: 800;
}
.catalog-group-head a span { font-weight: 600; }
.catalog-grid { gap: 1rem; }
.catalog-card {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid #dce1d7;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 3px 12px #24352907;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.catalog-card:hover, .catalog-card:focus-within {
  border-color: #a9b9ab;
  box-shadow: 0 9px 25px #233a2a13;
}
.catalog-card .product-media { aspect-ratio: 4 / 3; }
.catalog-card--accessory .product-media, .detail--accessory .detail-photo { background: #fbfbf8; }
.catalog-card--accessory .product-media img, .detail--accessory .detail-photo img {
  object-fit: contain;
  padding: clamp(.8rem, 1.65vw, 1.55rem);
  mix-blend-mode: multiply;
}
.catalog-card:hover .product-media img { transform: scale(1.035); }
.catalog-card .card-info { padding: clamp(.95rem, 2vw, 1.45rem); }
.catalog-card .card-meta {
  justify-content: flex-start;
  flex-wrap: wrap;
  margin: 0 0 .5rem;
  font-size: .75rem;
  font-weight: 750;
}
.catalog-card .card-meta span + span::before { content: "·"; margin-right: .5rem; }
.catalog-card h3 {
  font-size: clamp(1.12rem, 1.6vw, 1.42rem);
  line-height: 1.17;
}
.catalog-card-link::after { position: absolute; inset: 0; content: ""; z-index: 1; }
.catalog-card .card-info p { line-height: 1.5; }
.catalog-card .card-bottom { align-items: end; }
.catalog-card .card-bottom strong { display: block; font-size: 1.05rem; }
.catalog-restriction { display: block; color: #41594b; margin-top: .25rem; font-size: .73rem; font-weight: 750; }
.catalog-card-arrow {
  display: grid;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 50%;
  background: #e8eee7;
  color: #2f4b3b;
}
.catalog-card:hover .catalog-card-arrow { background: #dce8dc; }
.product-grid.catalog-list { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
.catalog-list .catalog-card {
  display: grid; grid-template-columns: clamp(92px, 19vw, 194px) minmax(0, 1fr); border-radius: 14px;
}
.catalog-list .product-media { aspect-ratio: auto; min-height: 124px; }
.catalog-list .product-media img { height: 100%; }
.catalog-list .catalog-card--accessory .product-media img { padding: clamp(.4rem, 1vw, .9rem); }
.catalog-list .card-info { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .2rem 1rem; }
.catalog-list .card-meta, .catalog-list h3, .catalog-list .card-info p { grid-column: 1; margin: 0; }
.catalog-list .card-info p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.catalog-list .card-bottom {
  grid-column: 2; grid-row: 1 / span 3; justify-self: end; align-self: center;
  gap: .6rem; text-align: right;
}
.catalog-empty {
  padding: clamp(1.3rem, 4vw, 2.8rem);
  border: 1px dashed #aebcaf;
  border-radius: 18px;
  background: var(--catalog-surface);
}
.detail--accessory .detail-photo { border-radius: 20px; border: 1px solid #dce1d7; }
.detail--accessory .product-gallery a { background: #fbfbf8; }
.detail--accessory .product-gallery img { object-fit: contain; }
@media (min-width: 1050px) {
  .catalog-controls { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
  .catalog-tabs { padding-right: .45rem; border-right: 1px solid #e3e8df; }
}
@media (max-width: 720px) {
  .catalog-stage { border-radius: 18px; }
  .catalog-stage-media { min-height: 155px; }
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .catalog-list .card-info { display: flex; gap: .35rem; }
  .catalog-list .card-bottom { align-self: stretch; margin-top: auto; text-align: left; }
}
@media (max-width: 590px) {
  .catalog-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .catalog-tabs a { padding: .25rem .1rem; text-align: center; white-space: normal; overflow-wrap: anywhere; line-height: 1.15; font-size: .76rem; }
  .catalog-tabs small { display: none; }
  .catalog-stage { grid-template-columns: minmax(0, 1fr); }
  .catalog-stage-media { display: none; }
  .catalog-stage-ornament { opacity: .27; right: -2.15rem; }
}
@media (max-width: 490px) {
  .catalog-page { width: calc(100% - 32px); }
  .catalog-grid { grid-template-columns: minmax(0, 1fr); }
  .catalog-stage-copy { padding: 1.15rem; }
  .catalog-search label { padding-left: .38rem; gap: .3rem; }
  .catalog-search button { padding-inline: .38rem; }
  .catalog-advanced summary { padding-inline: .42rem; gap: .25rem; }
  .catalog-list .card-info p { font-size: .78rem; }
  .catalog-list .catalog-card-arrow { width: 32px; height: 32px; flex-basis: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .catalog-card, .catalog-card .product-media img { transition: none; }
}
.detail{row-gap:clamp(1.3rem,2.2vw,2rem)}
.detail>.catalog-crumbs{grid-column:1/-1;margin:0;padding:.15rem 0 .65rem;border-bottom:1px solid #d7dfd4}
.detail>.catalog-crumbs ol{column-gap:.8rem;row-gap:.24rem;align-items:baseline}
.detail>.catalog-crumbs li{gap:.65rem}
.detail>.catalog-crumbs a{display:block;min-width:0;padding:.32rem 0;overflow-wrap:anywhere}
.detail>.catalog-crumbs a[aria-current]{text-decoration-thickness:1px;text-underline-offset:4px}
.product-request{align-self:start;min-width:0;scroll-margin-top:1rem}
.product-request>.configure-form{border:1px solid #d6dfd2;border-radius:18px;background:#fbfbf5;padding:clamp(1rem,2.3vw,1.85rem);box-shadow:0 12px 30px #23392e0b}
.product-request .price-box{border-radius:12px;margin:0 0 1.55rem;padding:clamp(1rem,2vw,1.4rem)}
.product-request .price-box>span{font-size:.9rem;font-weight:800;color:#354d41}
.product-request .price-box>strong{font-size:clamp(2.55rem,5vw,3.7rem);margin:.34rem 0 .65rem}
.product-request .price-box p{max-width:50ch;line-height:1.6}
.product-request h2{font-size:clamp(2rem,3.5vw,2.95rem);margin-bottom:1rem}
.product-request .contact-grid{gap:.85rem;margin-bottom:.85rem}
.product-request :is(input:not([type=checkbox],[type=radio]),textarea,select){border-radius:8px;background:#fff;min-height:46px}
.product-request .check{font-weight:620;font-size:.82rem;line-height:1.45;margin:.9rem 0}
.product-request .check+button[type=submit]{margin-top:.4rem}
.product-request button[type=submit]{width:100%;border-radius:8px}
.product-request .catalog-alt{margin-bottom:0}
.product-request .catalog-alt a{min-height:44px}
@media(max-width:880px){
  .detail{grid-template-columns:minmax(0,1fr)}
  .product-request{width:100%;max-width:45rem}
}
@media(max-width:480px){.product-request .contact-grid{grid-template-columns:minmax(0,1fr)}}
