.btn { border-radius: 8px; font-weight: 800; letter-spacing: 0; }
.btn-gold { background: var(--gold); border-color: var(--gold); color: var(--dark); }
.btn-gold:hover { background: var(--gold-light); border-color: var(--gold-light); color: var(--dark); }
.btn-green { background: var(--green-main); border-color: var(--green-main); color: white; }
.btn-green:hover { background: var(--green-mid); border-color: var(--green-mid); color: white; }
.btn-outline-green { border: 1px solid var(--green-main); color: var(--green-main); }
.btn-outline-green:hover { background: var(--green-main); color: white; }
.btn-whatsapp { background: #25d366; color: #082d16; border-color: #25d366; }

.call-modal .modal-content {
  border: 1px solid var(--green-border);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 24px 70px rgba(13,61,36,.22);
}
.call-modal .modal-header {
  background: var(--green-dark);
  color: white;
  border-bottom: 3px solid var(--gold);
}
.call-modal .modal-kicker {
  color: var(--gold-light);
  display: block;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.call-modal .modal-title {
  font-family: var(--font-body);
  font-size: 1.9rem;
  font-weight: 900;
  margin: 0;
}
.call-modal .btn-close { filter: invert(1); opacity: .85; }
.call-number-box {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--green-light);
  border: 1px solid var(--green-border);
  border-radius: 8px;
  color: var(--green-dark);
  padding: 14px 16px;
  font-size: 1.15rem;
}
.call-number-box i { color: var(--gold); }

.info-card, .product-card, .testimonial-card, .catalogue-card, .form-panel, .filter-panel, .success-card {
  background: white;
  border: 1px solid var(--green-border);
  border-radius: 8px;
  padding: 24px;
  box-shadow: 0 18px 40px rgba(13,61,36,.08);
}
.info-card.light { box-shadow: none; }
.info-card i { color: var(--gold); font-size: 1.8rem; margin-bottom: 16px; }
.product-card { display: flex; flex-direction: column; gap: 10px; }
.home-extra-product { display: none; }
.product-card h3 { margin-bottom: 0; }
.product-card p { color: var(--text-sub); flex: 1; }
.product-thumb, .catalogue-cover {
  min-height: 180px;
  border-radius: 8px;
  background: var(--green-light);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.product-thumb i, .catalogue-cover i { font-size: 4rem; color: var(--green-main); }
.product-thumb img, .catalogue-cover img { width: 100%; height: 100%; object-fit: cover; }
.badge-soft {
  align-self: flex-start;
  display: inline-flex;
  border-radius: 999px;
  background: var(--green-light);
  color: var(--green-dark);
  padding: 6px 12px;
  font-size: .82rem;
  font-weight: 800;
}
.tag-row, .availability-row { display: flex; flex-wrap: wrap; gap: 8px; }
.tag-row span, .availability-row span {
  background: var(--cream);
  border: 1px solid var(--green-border);
  border-radius: 999px;
  padding: 5px 10px;
  font-size: .83rem;
  font-weight: 700;
  color: var(--green-dark);
}

.filter-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 30px; }
.filter-tabs button {
  border: 1px solid var(--green-border);
  background: white;
  color: var(--green-dark);
  border-radius: 999px;
  padding: 9px 16px;
  font-weight: 800;
}
.filter-tabs button.active { background: var(--green-main); color: white; }
.product-hero-actions {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.testimonial-card .stars { color: var(--gold); letter-spacing: 2px; }
.testimonial-card p { color: var(--text-sub); }
.testimonial-card span { color: var(--text-sub); display: block; }
.google-testimonial-card { gap: 12px; }
.google-review-top {
  display: flex;
  align-items: center;
  gap: 12px;
}
.google-avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--green-main);
  color: white;
  font-weight: 900;
  font-size: 1.25rem;
}
.testimonial-card .stars small {
  color: var(--text-sub);
  font-size: .9rem;
  letter-spacing: 0;
  margin-left: 8px;
  font-weight: 600;
}
.google-testimonial-card .text-link {
  margin-top: auto;
}
.google-review-link {
  display: grid;
  justify-items: end;
  gap: 10px;
  color: var(--text-sub);
}
.google-review-link span {
  font-weight: 800;
  color: var(--green-dark);
}
.google-review-link i { color: var(--gold); }

.product-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 30px; align-items: start; }
.products-main { min-width: 0; }
.filter-panel { position: sticky; top: 96px; }
.filter-panel label { font-weight: 800; margin-top: 14px; margin-bottom: 6px; display: block; }

.breadcrumb-line { margin-bottom: 24px; color: var(--text-sub); }
.breadcrumb-line a { color: var(--green-main); font-weight: 700; }
.main-product-image {
  min-height: 460px;
  background: var(--green-light);
  border-radius: 8px;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.main-product-image i { font-size: 8rem; color: var(--green-main); }
.main-product-image img { width: 100%; height: 100%; object-fit: cover; }
.thumb-row { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; }
.thumb-row button { width: 82px; height: 72px; padding: 0; border: 2px solid var(--green-border); border-radius: 8px; overflow: hidden; background: white; }
.thumb-row img { width: 100%; height: 100%; object-fit: cover; }
.detail-copy .lead { color: var(--text-sub); font-size: 1.2rem; }
.selected-design-panel {
  display: grid;
  gap: 3px;
  background: var(--green-light);
  border: 1px solid var(--green-border);
  border-radius: 8px;
  padding: 12px 14px;
  margin: 12px 0;
}
.selected-design-panel span {
  color: var(--gold);
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.selected-design-panel strong {
  color: var(--green-dark);
  font-size: 1.05rem;
}
.selected-design-panel small {
  color: var(--text-sub);
  font-weight: 800;
}
/* Warranty form: button-style years avoid oversized native mobile dropdowns. */
.warranty-badge { display: inline-flex; gap: 8px; align-items: center; color: var(--green-dark); background: var(--green-light); border: 1px solid var(--green-border); border-radius: 8px; padding: 10px 14px; font-weight: 800; margin: 10px 0; }
.warranty-year-options {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.warranty-year-options li,
.warranty-year-options > div { margin: 0; }
.warranty-year-options label {
  display: grid;
  place-items: center;
  min-height: 44px;
  border: 1px solid var(--green-border);
  border-radius: 8px;
  background: #fff;
  color: var(--green-dark);
  font-weight: 900;
  cursor: pointer;
  transition: .2s ease;
}
.warranty-year-options input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.warranty-year-options label:has(input:checked),
.warranty-year-options label.is-selected {
  background: var(--green-main);
  border-color: var(--green-main);
  color: #fff;
  box-shadow: 0 12px 24px rgba(13,61,36,.15);
}
.check-list { padding-left: 0; list-style: none; }
.check-list li::before { content: "✓"; color: var(--green-main); font-weight: 900; margin-right: 10px; }
.detail-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.related-block { margin-top: 60px; }
.designs-section { margin-top: 70px; }
.designs-section .section-head p { max-width: 520px; color: var(--text-sub); margin: 0; }
.design-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.design-gallery-page {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.design-card {
  background: white;
  border: 1px solid var(--green-border);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(13,61,36,.08);
}
.design-preview {
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 0;
  padding: 0;
  background: var(--green-light);
  overflow: hidden;
  cursor: zoom-in;
}
.design-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease;
}
.design-preview:hover img { transform: scale(1.05); }
.design-card-body {
  display: grid;
  gap: 10px;
  padding: 14px;
}
.design-card-body h3 {
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 1rem;
  margin: 0;
}
.design-card-body p {
  color: var(--text-sub);
  font-size: .92rem;
  margin: 0;
}
.design-feature-list {
  list-style: none;
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 0;
  color: var(--text-sub);
  font-size: .88rem;
}
.design-feature-list li::before {
  content: "✓";
  color: var(--green-main);
  font-weight: 900;
  margin-right: 7px;
}
.design-number {
  display: inline-flex;
  align-self: flex-start;
  background: var(--green-dark);
  color: var(--gold-light);
  border-radius: 999px;
  padding: 5px 10px;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .04em;
}
.design-card-body .btn {
  width: 100%;
  justify-content: center;
  font-size: .9rem;
  padding: 9px 10px;
}
.empty-designs {
  background: white;
  border: 1px solid var(--green-border);
  border-radius: 8px;
  padding: 34px;
  text-align: center;
  box-shadow: 0 18px 40px rgba(13,61,36,.08);
}
.empty-designs i {
  color: var(--green-main);
  font-size: 3rem;
  margin-bottom: 12px;
}
.empty-designs p {
  color: var(--text-sub);
  max-width: 620px;
  margin: 0 auto 18px;
}

.contact-side { display: grid; gap: 14px; }
.contact-card { display: flex; gap: 14px; align-items: flex-start; background: white; border: 1px solid var(--green-border); border-radius: 8px; padding: 18px; }
.contact-card i { color: var(--gold); font-size: 1.4rem; width: 28px; }
.contact-card span, .contact-card a { display: block; color: var(--text-sub); }
.map-embed { width: 100%; min-height: 280px; border: 0; border-radius: 8px; }

.process-list { list-style: none; padding: 0; display: grid; gap: 14px; }
.process-list li { background: white; border: 1px solid var(--green-border); border-radius: 8px; padding: 18px; }
.process-list span { display: block; color: var(--text-sub); }
.success-section { min-height: 80vh; display: grid; place-items: center; }
.success-card { text-align: center; max-width: 780px; margin: 0 auto; }
.success-icon { width: 84px; height: 84px; margin: 0 auto 18px; border-radius: 50%; background: var(--green-main); color: white; display: grid; place-items: center; font-size: 2.3rem; animation: popIn .5s ease both; }
.warranty-id { font-size: clamp(2rem, 5vw, 4rem); font-weight: 900; color: var(--green-dark); border: 2px solid var(--green-border); border-radius: 8px; padding: 10px; margin: 16px 0; }
.warranty-results { display: grid; gap: 16px; }
.warranty-result-card { display: grid; gap: 8px; }
.status-note { border-radius: 8px; padding: 12px 14px; margin: 4px 0 8px; font-weight: 700; }
.status-note.approved { background: var(--green-light); color: var(--green-dark); border: 1px solid var(--green-border); }
.status-note.pending { background: #fff7df; color: #755b0a; border: 1px solid #ead28a; }
.status-note.rejected { background: #fff0f0; color: #8b1f1f; border: 1px solid #f0b4b4; }

.gallery-proof-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 34px;
}
.gallery-proof-card {
  display: grid;
  gap: 8px;
  background: white;
  border: 1px solid var(--green-border);
  border-radius: 8px;
  padding: 18px;
  box-shadow: 0 18px 40px rgba(13,61,36,.08);
}
.gallery-proof-card i { color: var(--gold); font-size: 1.7rem; }
.gallery-proof-card strong { color: var(--green-dark); }
.gallery-proof-card span { color: var(--text-sub); font-size: .95rem; }
.featured-gallery {
  display: grid;
  grid-template-columns: 1.2fr .9fr .9fr;
  gap: 18px;
  margin: 20px 0 54px;
}
.featured-gallery-item {
  min-height: 300px;
  position: relative;
  display: grid;
  align-content: end;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid var(--green-border);
  color: white;
  padding: 22px;
  isolation: isolate;
}
.featured-gallery-item:first-child { min-height: 390px; }
.featured-gallery-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
}
.featured-gallery-item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 25%, rgba(14,31,20,.86));
  z-index: -1;
}
.featured-gallery-item span {
  color: var(--gold-light);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .75rem;
}
.featured-gallery-item strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 2rem;
  line-height: 1;
}
.gallery-section-head p {
  max-width: 520px;
  color: var(--text-sub);
  margin: 0;
}
.gallery-tabs small {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  margin-left: 6px;
  border-radius: 999px;
  background: var(--green-light);
  color: var(--green-dark);
}
.gallery-tabs button.active small {
  background: rgba(255,255,255,.2);
  color: white;
}
.gallery-grid { columns: 3 260px; column-gap: 18px; }
.gallery-item { display: inline-grid; width: 100%; min-height: 190px; margin: 0 0 18px; background: white; border: 1px solid var(--green-border); border-radius: 8px; overflow: hidden; position: relative; place-items: center; break-inside: avoid; color: var(--green-main); }
.gallery-item img { width: 100%; height: auto; }
.gallery-item i { font-size: 3rem; padding: 60px; }
.gallery-item span { position: absolute; inset-inline: 0; bottom: 0; background: linear-gradient(transparent, rgba(0,0,0,.72)); color: white; padding: 34px 14px 12px; font-weight: 800; }
.enhanced-gallery-item span {
  display: grid;
  gap: 2px;
  background: linear-gradient(transparent, rgba(14,31,20,.88));
}
.enhanced-gallery-item small {
  color: var(--gold-light);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .7rem;
}
.enhanced-gallery-item strong { font-size: 1rem; }
.enhanced-gallery-item em {
  color: rgba(255,255,255,.78);
  font-style: normal;
  font-weight: 500;
  font-size: .86rem;
}
.lightbox { display: none; position: fixed; inset: 0; background: rgba(14,31,20,.92); z-index: 3000; place-items: center; padding: 30px; color: white; }
.lightbox:target { display: grid; }
.lightbox img { max-height: 78vh; border-radius: 8px; }
.lightbox .close { position: absolute; right: 24px; top: 16px; color: white; font-size: 2.4rem; }
.lightbox-caption {
  max-width: 760px;
  text-align: center;
}
.lightbox-caption strong {
  font-size: 1.35rem;
  color: var(--gold-light);
}
.lightbox-caption p { margin: 6px 0 0; }
.gallery-empty-state {
  display: grid;
  justify-items: center;
  gap: 14px;
  text-align: center;
  background: white;
  border: 1px solid var(--green-border);
  border-radius: 8px;
  padding: clamp(34px, 6vw, 64px);
  box-shadow: 0 18px 40px rgba(13,61,36,.08);
}
.gallery-empty-state i {
  width: 78px;
  height: 78px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--green-light);
  color: var(--green-main);
  font-size: 2rem;
}
.gallery-empty-state p {
  max-width: 760px;
  color: var(--text-sub);
}
.gallery-empty-checklist {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.gallery-empty-checklist span {
  border: 1px solid var(--green-border);
  border-radius: 999px;
  padding: 7px 12px;
  color: var(--green-dark);
  font-weight: 800;
}

.social-fab-stack {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 2000;
  display: grid;
  gap: 12px;
}
.social-fab {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  color: white;
  display: grid;
  place-items: center;
  font-size: 1.8rem;
  box-shadow: 0 14px 30px rgba(0,0,0,.22);
  transition: transform .2s ease, box-shadow .2s ease;
}
.social-fab:hover {
  color: white;
  transform: translateY(-2px);
  box-shadow: 0 18px 38px rgba(0,0,0,.28);
}
.whatsapp-fab {
  background: #25d366;
  box-shadow: 0 14px 30px rgba(37,211,102,.35);
  animation: whatsappPulse 2s infinite;
}
.instagram-fab {
  background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 12%, #fd5949 38%, #d6249f 62%, #285aeb 100%);
}
.facebook-fab {
  background: #1877f2;
  font-family: Arial, sans-serif;
  font-weight: 900;
}
.facebook-fab .facebook-letter {
  display: block;
  color: white;
  font-size: 2.35rem;
  font-family: Arial, sans-serif;
  font-weight: 900;
  line-height: 1;
  margin-top: 4px;
}
.back-top {
  position: fixed;
  right: 24px;
  bottom: 220px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 0;
  background: var(--green-dark);
  color: white;
  display: none;
  z-index: 1999;
}
.back-top.show { display: grid; place-items: center; }
.message-wrap { position: fixed; top: 86px; left: 0; right: 0; z-index: 2100; }

.promo-slider {
  position: relative;
  height: clamp(430px, 58vw, 690px);
  min-height: 430px;
  overflow: hidden;
  background: var(--dark);
}
.promo-slider-track,
.promo-slide {
  position: absolute;
  inset: 0;
}
.promo-slide {
  opacity: 0;
  pointer-events: none;
  transition: opacity .7s ease;
}
.promo-slide.active {
  opacity: 1;
  pointer-events: auto;
}
.promo-slide-image,
.promo-slide-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.promo-slide-image {
  object-fit: contain;
  background: var(--dark);
}
.promo-slide-fallback {
  display: grid;
  place-items: center end;
  padding-right: 12vw;
  background:
    linear-gradient(90deg, rgba(14,31,20,.94), rgba(14,31,20,.55), rgba(14,31,20,.15)),
    linear-gradient(135deg, #d6c29a, #8e6d3d 45%, #1a5c38);
}
.promo-slide-fallback i {
  font-size: clamp(8rem, 18vw, 16rem);
  color: rgba(255,255,255,.3);
  filter: drop-shadow(0 20px 60px rgba(0,0,0,.28));
}
.promo-slide-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(14,31,20,.92), rgba(14,31,20,.58) 48%, rgba(14,31,20,.16));
}
.promo-slide-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  color: white;
  padding-block: 70px;
}
.promo-badge {
  display: inline-flex;
  background: rgba(201,168,76,.18);
  border: 1px solid rgba(201,168,76,.55);
  color: var(--gold-light);
  border-radius: 999px;
  padding: 8px 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .76rem;
  margin-bottom: 16px;
}
.promo-slide-content h2 {
  max-width: 760px;
  font-family: "Outfit", system-ui, sans-serif;
  font-size: clamp(2.1rem, 5.5vw, 5rem);
  line-height: 1.04;
  font-weight: 900;
  text-transform: uppercase;
  color: white;
}
.promo-slide-content p {
  max-width: 620px;
  color: rgba(255,255,255,.82);
  font-size: clamp(1rem, 2vw, 1.25rem);
}
.promo-slide-content strong {
  color: var(--gold-light);
  font-size: 1.05rem;
  margin-bottom: 18px;
}
.promo-btn {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  background: var(--gold);
  color: var(--dark);
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 999px;
  padding: 12px 16px 12px 24px;
  font-weight: 900;
  box-shadow: 0 16px 35px rgba(0,0,0,.18);
}
.promo-btn i {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--green-main);
  color: var(--gold-light);
}
.promo-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  background: rgba(14,31,20,.55);
  color: white;
}
.promo-prev { left: 22px; }
.promo-next { right: 22px; }
.promo-dots {
  position: absolute;
  left: 50%;
  bottom: 30px;
  transform: translateX(-50%);
  z-index: 4;
  display: flex;
  gap: 10px;
}
.promo-dots button {
  width: 11px;
  height: 11px;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.7);
  padding: 0;
}
.promo-dots button.active {
  background: var(--gold-light);
}

@media (max-width: 991px) {
  .product-layout { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .filter-panel { position: static; }
  .main-product-image {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
  .thumb-row button {
    flex: 0 0 72px;
    width: 72px;
    height: 62px;
  }
  .promo-arrow { display: none; }
  .promo-slide-content { padding-inline: 18px; }
  .design-grid, .design-gallery-page { grid-template-columns: repeat(2, 1fr); }
  .gallery-proof-grid, .featured-gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .info-card, .product-card, .testimonial-card, .catalogue-card, .form-panel, .filter-panel, .success-card {
    padding: 16px;
  }
  .breadcrumb-line {
    overflow-wrap: anywhere;
    line-height: 1.45;
  }
  .product-detail .container,
  .gallery-panel,
  .detail-copy,
  .designs-section,
  .related-block,
  .design-grid {
    max-width: 100%;
    overflow: hidden;
  }
  .product-layout {
    display: block;
  }
  .filter-panel {
    position: static;
    margin-bottom: 22px;
  }
  .products-main .card-grid.three,
  #productGrid {
    grid-template-columns: 1fr;
  }
  .product-thumb, .catalogue-cover {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
  .main-product-image {
    min-height: 0;
    aspect-ratio: 4 / 3;
    width: 100%;
  }
  .thumb-row {
    max-width: 100%;
    padding-bottom: 6px;
    scrollbar-width: thin;
  }
  .thumb-row button {
    flex: 0 0 58px;
    width: 58px;
    height: 50px;
  }
  .detail-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .detail-actions .btn {
    width: 100%;
    justify-content: center;
  }
  .designs-section {
    margin-top: 56px;
  }
  .designs-section .section-head,
  .gallery-section-head {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .designs-section .section-head p,
  .gallery-section-head p {
    max-width: 100%;
  }
  .warranty-year-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .social-fab-stack {
    right: 12px;
    bottom: 12px;
    gap: 8px;
  }
  .social-fab {
    width: 46px;
    height: 46px;
    font-size: 1.35rem;
  }
  .facebook-fab .facebook-letter {
    font-size: 1.85rem;
  }
  .back-top {
    right: 12px;
    bottom: 166px;
    width: 38px;
    height: 38px;
  }
  .promo-slider {
    height: 420px;
    min-height: 420px;
  }
  .promo-slide-image {
    object-fit: cover;
    object-position: center center;
  }
  .promo-slide-content {
    justify-content: flex-start;
    max-width: calc(100% - 132px);
    width: calc(100% - 132px);
    margin-left: 0;
    margin-right: auto;
    padding-top: 88px;
    padding-bottom: 54px;
    padding-inline: 18px 8px;
  }
  .promo-badge {
    padding: 6px 10px;
    font-size: .58rem;
    letter-spacing: .06em;
    margin-bottom: 9px;
  }
  .promo-slide-content h2 {
    max-width: 100%;
    font-size: clamp(1rem, 5.4vw, 1.32rem);
    line-height: 1.03;
    margin-bottom: 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-shadow: 0 3px 18px rgba(0,0,0,.68);
  }
  .promo-slide-content p {
    max-width: 100%;
    font-size: .7rem;
    line-height: 1.28;
    margin-bottom: 7px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-shadow: 0 2px 14px rgba(0,0,0,.68);
  }
  .promo-slide-content strong {
    max-width: 100%;
    font-size: .72rem;
    line-height: 1.3;
    margin-bottom: 10px;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-shadow: 0 2px 12px rgba(0,0,0,.72);
  }
  .promo-btn {
    gap: 8px;
    padding: 6px 8px 6px 12px;
    font-size: .72rem;
  }
  .promo-btn i {
    width: 24px;
    height: 24px;
  }
  .promo-dots {
    bottom: 20px;
  }
  .promo-slide-shade {
    background:
      linear-gradient(90deg, rgba(14,31,20,.78), rgba(14,31,20,.46) 58%, rgba(14,31,20,.18)),
      linear-gradient(180deg, rgba(14,31,20,.18), rgba(14,31,20,.38));
  }
  .design-grid, .design-gallery-page { grid-template-columns: 1fr; }
  .gallery-proof-grid, .featured-gallery { grid-template-columns: 1fr; }
  .featured-gallery-item, .featured-gallery-item:first-child { min-height: 260px; }
}

@media (max-width: 420px) {
  .product-card h3,
  .catalogue-card h3 {
    font-size: 1.25rem;
  }
  .selected-design-panel {
    padding: 10px 12px;
  }
  .social-fab-stack {
    right: 8px;
  }
  .social-fab {
    width: 42px;
    height: 42px;
  }
  .back-top {
    right: 10px;
    bottom: 150px;
  }
}

