/* Readable type and touch targets without disabling browser zoom. */
:root { --muted: #4d6575; }
body { font-size: 16px; line-height: 1.8; }
.header-inner { gap: 20px; }
.desktop-nav { font-size: 16px; gap: 22px; }
.desktop-nav > a, .desktop-nav > a:not(.button) { font-size: 16px; min-height: 48px; }
.desktop-nav .button { min-height: 52px; font-size: 16px; }
.brand-caption, footer .brand-caption { font-size: 12px; letter-spacing: .5px; color: #4d6575; }
.footer-main img.wordmark { width: 140px; height: auto; object-fit: contain; }
.section-intro { align-items: center; }
.section-description { font-size: 17px; color: #4d6575; }
.eyebrow, .section-intro .eyebrow, .selection-card .eyebrow, .consultation-box .eyebrow { font-size: 13px; }
.filter { font-size: 16px; min-height: 48px; color: #4d6575; padding: 10px 14px; }
.filter span, .result-count { font-size: 13px; }
.result-count { color: #526a7b; }
.product-tag { font-size: 13px; color: #325d73; }
.product-number { font-size: 12px; color: #587184; }
.model-code { font-size: 13px; color: #326f86; }
.model-code .type { font-size: 11px; color: #617786; }
.product-body h3 { font-size: 23px; }
.indication { font-size: 17px; line-height: 1.7; color: #365f76; }
.indication svg { width: 18px; height: 18px; }
.product-description { font-size: 16px; line-height: 1.85; color: #425c6e; }
.feature-chip { font-size: 13px; line-height: 1.7; color: #425f71; }
.product-details { font-size: 16px; color: #355e75; }
.product-details summary { width: 100%; min-height: 48px; justify-content: space-between; gap: 12px; font-weight: 500; }
.product-details summary .icon { width: 20px; height: 20px; }
.product-details p { font-size: 16px; line-height: 1.85; color: #425c6e; }
.button, .product-actions .button, .product-contact .contact-link, .booking-controls .button { min-height: 52px; font-size: 16px; line-height: 1.5; padding: 12px 14px; }
.product-actions .button { min-width: 0; }
.product-actions .button svg, .product-contact .contact-link svg { width: 17px; height: 17px; }
.product-bottom-note { font-size: 15px; color: #506a7c; }
.selection-card p { font-size: 17px; color: #496779; }
.selection-card small { font-size: 14px; color: #496779; }
.consultation-box p { font-size: 17px; color: #d8e5ee; }
.booking-form label { font-size: 17px; }
.select-wrap select { font-size: 16px; min-height: 54px; line-height: 1.6; }
.select-wrap svg { top: 20px; }
.booking-help { font-size: 14px !important; color: #d3e1eb !important; align-items: flex-start; }
.booking-help .icon { width: 16px; height: 16px; margin-top: 5px; }
.medical-notice strong { font-size: 16px; }
.medical-notice p { font-size: 15px; color: #4d6575; }
.footer-links { font-size: 16px; color: #4d6575; flex-wrap: wrap; }
.footer-links a { min-height: 44px; display: inline-flex; align-items: center; }
.footer-bottom { font-size: 13px; color: #526b7c; }

/* Expanded product diagrams must not stretch the neighbouring cards. */
.product-grid:has(.media-details[open]) { align-items: start; }
.media-details summary { padding: 10px 0; }
.media-details summary small { display: block; font-size: 14px; line-height: 1.7; font-weight: 400; color: #526b7d; margin-top: 3px; }
.details-media { padding-top: 16px; min-width: 0; }
.detail-figure { margin: 0 0 22px; }
.detail-image-link { display: block; border: 1px solid #cfdee7; border-radius: 6px; overflow: hidden; background: #f1f7fa; }
.detail-image-link img { width: 100%; height: auto; object-fit: contain; }
.image-zoom { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; font-size: 16px; padding: 10px 12px; color: #234e67; font-weight: 600; }
.image-zoom .icon { width: 18px; height: 18px; }
.detail-figure figcaption { font-size: 15px; color: #4b6577; line-height: 1.7; margin-top: 7px; }
.media-details .details-media p { padding: 0; border: 0; background: transparent; margin: 12px 0; font-size: 16px; color: #425c6e; }
.testimonials { margin-top: 24px; padding-top: 20px; border-top: 1px solid #cfdee7; }
.testimonials h4 { font-size: 22px; line-height: 1.5; color: #183348; margin: 0 0 12px; }
.testimonials h5 { font-size: 18px; line-height: 1.6; color: #183348; margin: 18px 0 10px; }
.playlist-player { width: 100%; background: #102a3d; border-radius: 6px; overflow: hidden; margin: 18px 0; }
.playlist-player iframe { display: block; width: 100%; height: auto; aspect-ratio: 9 / 16; border: 0; }
.testimonial-list { list-style: none; padding: 0; margin: 0 0 16px; }
.testimonial-list li + li { margin-top: 10px; }
.testimonial-list a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 12px 14px; border: 1px solid #c9dce6; border-radius: 5px; color: #244e67; background: #f0f7fa; font-size: 16px; }
.testimonial-list a:hover { background: #dcecf3; }
.testimonial-list .icon { width: 18px; height: 18px; }
.playlist-link { width: 100%; gap: 8px; }

@media (max-width: 1100px) {
  .product-actions { flex-direction: column; gap: 10px; }
  .desktop-nav { gap: 16px; }
  .footer-main { flex-wrap: wrap; }
}

@media (max-width: 860px) {
  .desktop-nav > a { font-size: 16px; }
  .desktop-nav .button { min-height: 52px; font-size: 16px; }
  .section-intro { flex-direction: column; align-items: flex-start; gap: 16px; }
  .section-description { font-size: 18px; max-width: none; }
  .filter-toolbar { flex-wrap: wrap; }
  .footer-links { font-size: 16px; }
}

@media (max-width: 600px) {
  body { font-size: 18px; }
  .site-header { height: auto; min-height: 94px; }
  .header-inner { min-height: 94px; gap: 16px; }
  .brand-caption { font-size: 12px; letter-spacing: .5px; }
  .menu-toggle { width: 52px; height: 52px; }
  .desktop-nav { top: 100%; }
  .desktop-nav > a { font-size: 18px; min-height: 48px; }
  .desktop-nav .button { font-size: 18px; }
  h1#products-title { font-size: 32px; line-height: 1.5; }
  .section-description { margin-top: 18px; }
  .filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 8px; }
  .filter { justify-content: center; font-size: 16px; min-height: 54px; padding: 10px 8px; }
  .filter span { font-size: 13px; }
  .filter-toolbar { margin-bottom: 24px; }
  .product-body { padding: 22px 20px; }
  .product-body h3 { font-size: 25px; line-height: 1.65; }
  .product-description, .indication, .product-details, .product-details p { font-size: 18px; line-height: 1.85; }
  .feature-chip { font-size: 15px; }
  .product-details summary { min-height: 52px; }
  .media-details summary small { font-size: 16px; }
  .media-details .details-media p { font-size: 18px; line-height: 1.8; }
  .detail-figure figcaption { font-size: 16px; }
  .product-actions .button, .product-contact .contact-link, .playlist-link { min-height: 54px; font-size: 18px; }
  .testimonial-list a { font-size: 18px; min-height: 54px; }
  .selection-card p, .consultation-box p, .booking-form label { font-size: 18px; }
  .selection-card .button { width: 100%; font-size: 17px; }
  .select-wrap select { font-size: 17px; min-height: 58px; }
  .booking-controls .button { font-size: 18px; min-height: 54px; }
  .booking-help { font-size: 18px !important; }
  .medical-notice p, .product-bottom-note { font-size: 18px; }
  .footer-links { font-size: 17px; gap: 12px 20px; }
  .footer-bottom { font-size: 14px; line-height: 1.9; }
}

@media (max-width: 360px) {
  h1#products-title { font-size: 28px; }
  .model-code { letter-spacing: .5px; }
  .model-code .type { font-size: 10px; }
}
