/* Shared Akvilon layout layer. CMS content and brand colours stay untouched. */
html { scroll-padding-top: 100px; }
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid #55b7ff; outline-offset: 4px;
}
.header-inner, .product-top-inner { gap: 20px; }
.main-nav, .catalog-nav { gap: 18px; }
.main-nav a, .catalog-nav a {
  font-size: 15px; line-height: 1.4; min-height: 44px;
  display: inline-flex; align-items: center; white-space: nowrap;
}
.main-nav a:after { bottom: 4px; }
.header-contact small { font-size: 12px; }
.call-btn, .product-call, .menu-button, .catalog-mobile-menu summary {
  font-size: 15px; min-height: 44px;
}
.catalog-mobile-menu nav a { font-size: 16px; min-height: 44px; }
.product-top-inner { min-height: 82px; padding-block: 0; }
.section-head h2, .content-page > h2, .product-content h2 { line-height: 1.18; }
.section-head > a, .product-section-head > a { font-size: 15px; white-space: nowrap; }
.category-card p, .scenario-grid p, .series-info p, .brand-card p,
.steps span, .product-note, .series-tags span { font-size: 14px; }
.category-image { display: flex; align-items: center; justify-content: center; }
.category-image img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.hero-benefits strong { font-size: 14px; }
.hero-benefits small { font-size: 12px; }
.catalog-landing h1, .catalog-title h1, .content-hero h1 { line-height: 1.08; }
.catalog-landing > .crumb, .catalog-title > .crumb, .content-hero > .crumb { color: #42678d; }
.product-hero { grid-template-columns: minmax(0,1fr) minmax(0,.85fr); }
.product-hero > *, .detail-layout > *, .series-card > *, .filter-grid > *,
.request-section > *, .footer-top > * { min-width: 0; }
.product-hero h1 { line-height: 1.06; overflow-wrap: anywhere; }
.product-visual img { width: 100%; height: 285px; object-fit: contain; }
.product-actions { gap: 12px; }
.catalog-btn { font-size: 15px; min-height: 46px; align-items: center; text-align: center; }
.filter-grid label, .variant-label, .spec-grid span, .lead-modal-form label,
.request-section label { font-size: 14px; }
.filter-grid input, .filter-grid select, .variant-label select,
.lead-modal-form input, .lead-modal-form textarea,
.request-section input, .request-section select, .request-section textarea {
  font-size: 16px; min-height: 46px; max-width: 100%;
}
.filter-actions button { min-height: 46px; }
.filter-count, .price-table em, .price-panel > p { font-size: 14px; }
.price-table > div { grid-template-columns: minmax(0,1fr) auto; }
.price-table b { white-space: nowrap; }
.contact-cards { grid-template-columns: repeat(3,minmax(0,1fr)); }
.contact-cards article { overflow-wrap: anywhere; }
.contact-cards a[href^="tel:"] { white-space: nowrap; }
.lead-dialog { max-height: calc(100dvh - 36px); }
.lead-dialog h2 { padding-right: 38px; line-height: 1.2; }
.lead-close { width: 44px; height: 44px; }
.lead-status { font-size: 14px; }
.site-footer { padding-top: 44px; padding-bottom: 26px; }
.footer-top { grid-template-columns: minmax(190px,1.2fr) repeat(3,minmax(0,1fr)) minmax(190px,auto); gap: 28px; }
.footer-top > div b { font-size: 16px; margin-bottom: 12px; }
.footer-top > div a { font-size: 15px; line-height: 1.55; margin: 0; padding: 5px 0; }
.footer-phone > a:first-child { font-size: 20px; white-space: nowrap; }
.footer-phone .call-btn { display: inline-flex; align-items: center; justify-content: center; padding: 12px 18px; color: #fff; }
.footer-bottom { font-size: 13px; line-height: 1.7; margin-top: 32px; padding-top: 20px; gap: 16px; }
.footer-bottom > div { max-width: 760px; }
.footer-bottom > a { min-height: 44px; display: flex; align-items: center; }
.catalog-footer { padding-block: 32px; gap: 28px; align-items: flex-start; }
.catalog-footer div { gap: 10px; }
.catalog-footer span, .catalog-footer a { font-size: 14px; line-height: 1.6; }
.catalog-footer a[href^="tel:"] { font-size: 20px; font-weight: 700; white-space: nowrap; }
.catalog-footer a { min-height: 36px; display: inline-flex; align-items: center; }
/* Inner pages share the actual homepage footer, including current CMS contacts. */
.rs-shared-footer { margin: 0; max-width: none; width: 100%; border: 0; }
.rs-custom-block[data-rs-block-id^="seo-"] { margin-block: 0; padding-block: 24px; }
.rs-custom-block[data-rs-block-id^="seo-"] h2 { margin: 0 0 12px; line-height: 1.25; }
.rs-custom-block[data-rs-block-id^="seo-"] p { margin: 0; line-height: 1.65; }
.rs-custom-block[data-rs-block-id^="seo-"] p + p { margin-top: 12px; }
.faq-panel, .contact-panel, .contact-content > * { min-width: 0; }
.faq-list summary { gap: 16px; align-items: center; }
.faq-list summary b { flex: 0 0 auto; transition: transform 160ms ease; }
.faq-list details[open] summary b { transform: rotate(180deg); }
.faq-list details[open] p { animation: faq-answer-in 160ms ease-out; }
@keyframes faq-answer-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.contact-panel .map-card { display: flex; flex-direction: column; min-height: 0; }
.contact-panel .map-card iframe { display: block; border: 0; width: 100%; height: 230px; }
.contact-panel .map-link { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px; color: var(--blue); background: #eef4fa; font-size: 14px; font-weight: 700; }
/* Never leave valid content blank if reveal observation arrives late. */
.reveal { opacity: 1; transform: none; }
@media (min-width:721px) and (max-width:1100px) {
  /* Overlay preserves the hero image selected in CMS, including inline backgrounds. */
  .hero.hero-generated::before { content: ''; position: absolute; inset: 0; background: rgba(3,25,58,.66); z-index: 1; pointer-events: none; }
  .hero-generated .hero-benefits { background: rgba(4,31,68,.6); }
}
@media (max-width:1200px) {
  .header-inner { gap: 14px; }
  .main-nav { gap: 14px; }
  .header-contact { gap: 10px; }
  .header-contact > div { display: none; }
}
@media (max-width:1100px) {
  .catalog-nav { display: none; }
  .catalog-mobile-menu { display: block; }
  .footer-top { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .footer-top > .rs-brand-link { grid-column: 1 / -1; }
  .footer-phone { grid-column: 1 / -1; display: flex; align-items: center; gap: 24px; }
  .footer-phone .call-btn { margin-top: 0; }
  .series-grid { grid-template-columns: minmax(0,1fr); }
  .contact-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .product-hero { grid-template-columns: minmax(0,1fr); padding: 40px 24px 30px; gap: 28px; }
  .product-hero h1 { font-size: clamp(38px,6vw,56px); }
  .product-visual { min-height: 260px; }
  .product-visual img { height: 240px; }
  .brand-card-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width:720px) {
  .header-inner, .product-top-inner { min-height: 74px; gap: 12px; padding-inline: 16px; }
  .main-nav.open { top: 74px; left: 16px; right: 16px; gap: 4px; padding: 12px; }
  .main-nav.open a { font-size: 16px; padding-inline: 10px; }
  .hero.hero-generated { min-height: 0; }
  .hero-generated .hero-benefits { margin-top: 36px; padding: 8px; }
  .hero-generated .hero-copy { padding-bottom: 0; }
  .hero h1 { font-size: clamp(34px,9.5vw,42px); line-height: 1.1; }
  .hero-kicker { font-size: 11px; letter-spacing: .03em; }
  .section, .services-band { padding-block: 36px; }
  .section-head { align-items: flex-start; flex-direction: column; gap: 12px; }
  .section-head > a { align-self: flex-start; min-height: 36px; }
  .product-hero { padding: 32px 16px 26px; }
  .product-hero h1 { font-size: clamp(34px,9vw,42px); }
  .catalog-landing h1, .catalog-title h1, .content-hero h1 { font-size: clamp(32px,8.5vw,40px); }
  .product-section-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .product-section-head h2 { margin-bottom: 0; }
  .product-section-head > a { min-height: 36px; display: flex; align-items: center; }
  .product-actions .catalog-btn, .product-cta > a { width: 100%; max-width: 100%; white-space: normal; }
  .product-cta > a { display: inline-flex; justify-content: center; }
  .product-actions { flex-direction: column; }
  .contact-cards { grid-template-columns: minmax(0,1fr); }
  .site-footer { padding: 36px 24px 24px; }
  .footer-top { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px 20px; }
  .footer-top > .rs-brand-link { grid-column: 1 / -1; margin-bottom: 4px; }
  .footer-top > div a { min-height: 40px; padding-block: 8px; }
  .footer-top > div:nth-of-type(3) { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 20px; }
  .footer-top > div:nth-of-type(3) > b { grid-column: 1 / -1; }
  .footer-phone { flex-direction: column; align-items: flex-start; gap: 10px; }
  .footer-phone .call-btn { min-width: 200px; }
  .footer-bottom { gap: 12px; }
  .catalog-footer { margin-top: 28px; gap: 24px; padding-inline: 16px; flex-direction: column; }
  .catalog-footer > div { width: 100%; }
  .catalog-footer a { min-height: 44px; }
  .lead-dialog { padding: 26px 18px 20px; }
  .lead-dialog h2 { font-size: 26px; }
}
@media (max-width:360px) {
  .footer-top { column-gap: 16px; }
  .footer-top > div a { font-size: 14px; }
  .site-footer { padding-inline: 18px; }
  .product-hero h1, .catalog-title h1, .content-hero h1 { font-size: 32px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  .reveal { transition: none; }
  .faq-list summary b { transition: none; }
  .faq-list details[open] p { animation: none; }
}
