/* Additive catalog styles. Keep the existing homepage and product design systems. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.catalog-nav {
  display: flex;
  justify-content: center;
  gap: clamp(.6rem, 3vw, 2rem);
  padding: .5rem 1rem;
  background: #fff;
  border-bottom: 1px solid #e2e8f0;
  font-family: 'Poppins', Arial, sans-serif;
}
.catalog-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: #0f252c;
  font-size: .88rem;
  font-weight: 600;
  text-decoration: none;
}
.catalog-nav a:hover { color: #095f74; text-decoration: underline; }
.catalog-nav a:focus-visible, .catalog-jump a:focus-visible,
.catalog-compare:focus-visible, .catalog-faq summary:focus-visible,
.catalog-action:focus-visible, .catalog-solutions a:focus-visible {
  outline: 3px solid #0e7490;
  outline-offset: 4px;
}
.catalog-solutions { background: #f1f5f9; color: #0f252c; }
.catalog-solutions .section-lead { max-width: 53rem; }
.catalog-solutions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.catalog-solution { background: #fff; border: 1px solid #e2e8f0; border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; }
.catalog-solution-media { background: #f8fafc; height: 19rem; overflow: hidden; }
.catalog-solution-media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.catalog-solution-media .installation-photo { object-fit: cover; object-position: center 77%; }
.catalog-solution-body { padding: clamp(1.25rem, 3vw, 2rem); display: flex; flex-direction: column; flex: 1; align-items: flex-start; }
.catalog-solution-body h3 { font: 700 clamp(1.25rem, 2.5vw, 1.6rem)/1.3 'Poppins', Arial, sans-serif; color: #0f252c; margin-bottom: .8rem; }
.catalog-solution-body p { color: #475569; line-height: 1.7; margin-bottom: 1.5rem; }
.catalog-solution-body a { margin-top: auto; }
.catalog-jump { display: flex; flex-wrap: wrap; justify-content: center; gap: .65rem; padding: 1.5rem 0; }
.catalog-jump a { padding: .55rem 1rem; min-height: 2.75rem; border: 1px solid #cadce2; border-radius: 999px; text-decoration: none; color: #095f74; font-size: .9rem; font-weight: 600; background: #fff; }
.catalog-jump a:hover { background: #e0f5fe; }
.catalog-section { padding: clamp(3rem, 6vw, 4.5rem) 0; background: #fff; }
.catalog-section.catalog-alt { background: #f4f8fa; }
.catalog-section, .catalog-feature, #compare-systems { scroll-margin-top: 6rem; }
.catalog-category-heading { max-width: 48rem; margin-bottom: 2rem; }
.catalog-category-heading h2 { font: 800 clamp(1.65rem, 3.2vw, 2.4rem)/1.2 'Poppins', Arial, sans-serif; margin-bottom: 1rem; color: #0f252c; }
.catalog-category-heading p { color: #3c5660; }
.catalog-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.catalog-single { grid-template-columns: 1fr; max-width: 48rem; }
.catalog-single .hw-system-card { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.catalog-single .hw-card-media { aspect-ratio: auto; }
.catalog-single .hw-card-media img { max-height: 22rem; }
.catalog-single .hw-card-body { border-top: 0; border-left: 1px solid #dce7eb; }
.catalog-feature { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); overflow: hidden; border-radius: 24px; border: 1px solid #c7dfe6; background: #fff; }
.catalog-feature-photo { margin: 0; background: #e9f2f5; }
.catalog-feature-photo img { width: 100%; height: 100%; max-height: 43rem; object-fit: cover; object-position: center 70%; display: block; }
.catalog-feature-copy { padding: clamp(1.5rem, 4vw, 3rem); align-self: center; }
.catalog-feature-copy h3 { font: 800 clamp(1.6rem, 3vw, 2.2rem)/1.18 'Poppins', Arial, sans-serif; color: #0f252c; margin-bottom: 1rem; }
.catalog-feature-copy p { color: #3c5660; margin: .85rem 0; }
.catalog-list { padding-left: 1.25rem; margin: 1rem 0; color: #3c5660; }
.catalog-list li + li { margin-top: .55rem; }
.catalog-price { font-size: 1.2rem; font-weight: 700; color: #095f74 !important; }
.catalog-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1.25rem; }
.catalog-action { position: relative; z-index: 2; display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 600; color: #095f74; }
.catalog-card-price { font-weight: 700; color: #095f74; margin-top: 1rem; }
.catalog-section .hw-system-card .hw-card-link::after { content: none; }
.catalog-section .hw-card-link { margin-top: 0; }
.catalog-section .hw-system-card:focus-within { outline: 2px solid #0e7490; outline-offset: 3px; }
.catalog-detail-photo { padding: 0; aspect-ratio: 3 / 4; overflow: hidden; }
.catalog-detail-photo img { object-fit: cover; }
.catalog-detail-grid .hw-detail-info { align-self: start; }
.catalog-detail-note { margin-top: 1rem; color: #3c5660; font-size: .9rem; }
.catalog-stage-list { list-style: none; counter-reset: stages; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2rem; }
.catalog-stage-list li { counter-increment: stages; border-top: 1px solid #cadce2; padding: 1.5rem 0 1rem; display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: .75rem; }
.catalog-stage-list li::before { content: '0' counter(stages); color: #095f74; font-size: 1.3rem; font-weight: 700; }
.catalog-stage-list h3 { font: 700 1.15rem/1.4 'Poppins', Arial, sans-serif; color: #0f252c; }
.catalog-stage-list p { color: #3c5660; }
.catalog-note { margin-top: 1.5rem; border-left: 3px solid #0e7c96; padding: .8rem 1.2rem; background: #eaf5f8; color: #3c5660; }
.catalog-compare-help { margin-bottom: 1rem; color: #3c5660; font-size: .95rem; }
.catalog-compare { overflow-x: auto; border: 1px solid #cadce2; border-radius: 16px; -webkit-overflow-scrolling: touch; }
.catalog-compare table { border-collapse: collapse; width: 100%; min-width: 720px; font-size: .95rem; }
.catalog-compare caption { text-align: left; padding: 1.25rem; font-weight: 600; color: #0f252c; background: #f4f8fa; }
.catalog-compare th, .catalog-compare td { padding: 1rem; vertical-align: top; text-align: left; border-top: 1px solid #dce7eb; color: #3c5660; }
.catalog-compare thead th { background: #0c1f2c; color: #fff; width: 26%; }
.catalog-compare thead th:first-child { width: 22%; }
.catalog-compare tbody th { font-weight: 600; color: #0f252c; background: #f4f8fa; }
.catalog-compare tr > :first-child { position: sticky; left: 0; z-index: 1; }
.catalog-compare tbody tr:nth-child(even) td { background: #f8fbfc; }
.catalog-consult { margin-top: 2rem; background: #f4f8fa; border: 1px solid #dce7eb; border-radius: 16px; padding: clamp(1.25rem, 4vw, 2rem); }
.catalog-consult h3 { font: 700 clamp(1.25rem, 3vw, 1.65rem)/1.35 'Poppins', Arial, sans-serif; }
.catalog-consult p { color: #3c5660; margin-bottom: 1.2rem; }
.catalog-packages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.catalog-package { background: #fff; border: 1px solid #cadce2; border-radius: 16px; padding: 1.5rem; display: flex; flex-direction: column; }
.catalog-package h3 { font: 700 1.15rem/1.4 'Poppins', Arial, sans-serif; }
.catalog-package .catalog-price { font-size: 2rem; margin: .65rem 0; }
.catalog-package p { color: #3c5660; margin-bottom: 1rem; }
.catalog-package a { margin-top: auto; }
.catalog-faq { max-width: 54rem; }
.catalog-faq details { padding: 1.25rem 0; border-bottom: 1px solid #cadce2; }
.catalog-faq summary { cursor: pointer; color: #0f252c; font-weight: 600; min-height: 2.75rem; }
.catalog-faq details p { margin-top: .75rem; color: #3c5660; }
.catalog-related { margin: 2rem auto; padding: 1.25rem 1.5rem; background: #eaf5f8; border-radius: 16px; max-width: 72rem; color: #0f252c; }
.catalog-related a { color: #095f74; font-weight: 600; }
.catalog-related p { margin: .5rem 0; }
.field select { width: 100%; min-height: 3rem; font: inherit; padding: .75rem; border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; color: #0f252c; }
.field select:focus-visible { outline: 3px solid #0e7490; outline-offset: 2px; }
@media (max-width: 980px) {
  .catalog-detail-grid .hw-detail-info { order: -1; }
  .catalog-feature { grid-template-columns: 1fr; }
  .catalog-feature-photo img { max-height: 29rem; object-position: center 75%; }
  .catalog-packages { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .site-header .contact-info { gap: .75rem !important; }
  .site-header .contact-info .btn-primary { white-space: nowrap; }
  .catalog-nav { gap: .8rem; padding-inline: .5rem; }
  .catalog-nav a { font-size: .78rem; }
  .catalog-pair, .catalog-solutions-grid, .catalog-stage-list { grid-template-columns: 1fr; }
  .catalog-single .hw-system-card { grid-template-columns: 1fr; }
  .catalog-single .hw-card-media { aspect-ratio: 4 / 3; }
  .catalog-single .hw-card-body { border-top: 1px solid #dce7eb; border-left: 0; }
  .catalog-solution-media { height: 17rem; }
  .catalog-feature-photo img { max-height: 26rem; }
  .catalog-feature-copy { padding: 1.4rem; }
  .catalog-jump { justify-content: flex-start; }
  .catalog-actions { align-items: stretch; flex-direction: column; }
  .catalog-actions a { justify-content: center; }
  .catalog-section .hw-container { padding-inline: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .catalog-section .hw-system-card, .catalog-section .hw-system-card img,
  .catalog-actions a { transition: none; }
  .catalog-section .hw-system-card:hover { transform: none; }
}
