/* Shared public-site refinements. Keep desktop geometry and existing colors. */
.gec-ft-footer .gec-ft-offices { display: contents; }
.gec-ft-footer .gec-ft-offices > summary { display: none; }
/* Modern browsers wrap details children in this generated box. */
@media (min-width: 800px) {
  .gec-ft-footer .gec-ft-offices::details-content { display: contents; }
}

@media (max-width: 799px) {
  .gec-ft-footer { padding: 28px 0 20px; }
  .gec-ft-footer .gec-ft-container { padding-inline: 20px; }
  .gec-ft-footer .gec-ft-head { gap: 10px; padding-bottom: 16px; }
  .gec-ft-footer .gec-ft-logo img { max-width: 100%; height: auto; max-height: 23px; }
  .gec-ft-footer .gec-ft-meta { font-size: 12px; overflow-wrap: anywhere; }
  .gec-ft-footer .gec-ft-meta .sep { margin-inline: 5px; }
  .gec-ft-footer .gec-ft-locations { gap: 12px; padding: 16px 0; }
  .gec-ft-footer .gec-ft-loc { min-width: 0; padding: 4px 0 4px 12px; }
  .gec-ft-footer .gec-ft-loc-name { font-size: 13px; margin-bottom: 4px; }
  .gec-ft-footer .gec-ft-loc-addr { font-size: 12px; overflow-wrap: anywhere; }
  .gec-ft-footer .gec-ft-loc-tel { font-size: 12px; letter-spacing: 0; }
  .gec-ft-footer .gec-ft-offices { display: block; min-width: 0; }
  .gec-ft-footer .gec-ft-offices > summary {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-height: 44px; padding: 10px 0; cursor: pointer; list-style: none;
    color: var(--ft-navy-900); font-size: 12px; font-weight: 600;
    border-top: 1px solid var(--ft-line);
  }
  .gec-ft-offices > summary::-webkit-details-marker { display: none; }
  .gec-ft-offices > summary::after { content: '+'; flex: none; color: var(--ft-accent); font-size: 20px; }
  .gec-ft-offices[open] > summary::after { content: '\2212'; }
  .gec-ft-footer .gec-ft-offices > .gec-ft-loc { margin-top: 14px; }
  .gec-ft-footer .gec-ft-bottom { gap: 8px; padding-top: 12px; font-size: 11px; }
  .gec-ft-footer .gec-ft-bottom .gec-ft-links { gap: 0 16px; }
  .gec-ft-footer .gec-ft-bottom .gec-ft-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; }
  .gec-ft-footer summary:focus-visible { outline: 2px solid var(--ft-accent); outline-offset: 3px; }
}

@media (max-width: 768px) {
  /* Shrinking grid children keeps wide specification tables inside their scroller. */
  body .product-grid > *, body .pd-overview > *, body .pd-section,
  body .pd-download-list > *, body .pd-feature-grid > * { min-width: 0; }
  body .breadcrumb-nav { flex-wrap: wrap; row-gap: 6px; overflow-wrap: anywhere; }
  body .product-content, body .pd-download-text, body .pd-pager-title { overflow-wrap: anywhere; min-width: 0; }
  body .pd-table-wrap, body .dr-table-wrap { max-width: 100%; overscroll-behavior-x: contain; }
  body .pd-anchor-nav a { flex-shrink: 0; min-height: 44px; display: inline-flex; align-items: center; }
  body .page-header-content { padding: 40px 20px; }
  body .page-header h1 { font-size: clamp(28px, 7vw, 34px); overflow-wrap: anywhere; }
  body .page-header p { white-space: normal; }
  body:has(.gm-tabs) { padding-bottom: calc(82px + env(safe-area-inset-bottom, 0px)); }
  body .gm-subtabs a { min-height: 44px; }
  body .gm input:not([type="checkbox"]):not([type="radio"]),
  body .gm select, body .gm textarea { font-size: 16px; }
  body .gm-tabs a { min-width: 0; }
  body .gm-tabs span { white-space: normal; text-align: center; line-height: 1.25; }
}

@media (max-width: 380px) {
  body .product-grid { gap: 10px; }
  body .product-content { padding: 12px; }
  .gec-ft-footer .gec-ft-meta .sep { display: block; height: 0; visibility: hidden; }
}

@media print {
  .gec-ft-footer .gec-ft-offices { display: contents; }
  .gec-ft-footer .gec-ft-offices::details-content { display: contents; }
  .gec-ft-footer .gec-ft-offices > summary { display: none; }
}
