/* Shared responsive/accessibility safeguards; retain each page's art direction. */
main, section, article, aside, form, .contact-form-shell { min-width:0; }
img { max-width:100%; }
.policy-content { overflow-wrap:anywhere; }
:is(button,a,summary,input,select,textarea):focus-visible { outline:2px solid #846536; outline-offset:4px; }
@media(max-width:1100px) {
  .policy-body { grid-template-columns:minmax(0,1fr); gap:40px; }
  .policy-aside { position:static; max-width:680px; }
  footer { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; }
  .footer-note { grid-column:1/-1; align-items:flex-start; text-align:left; }
}
@media(max-width:820px) {
  .menu-button { min-width:44px; min-height:44px; }
  .mobile-nav { max-height:calc(100dvh - 76px); overflow-y:auto; overscroll-behavior:contain; }
  .mobile-nav a,.footer-links a { display:flex; align-items:center; min-height:44px; }
  .footer-links div { gap:2px; }
  .policy-back { min-height:44px; font-size:.75rem; }
  .policy-hero-copy h1 { font-size:clamp(2.5rem,10vw,4rem); overflow-wrap:normal; }
  .policy-contact-card { padding:28px 20px; }
  .policy-contact-card .button { min-width:0; max-width:100%; white-space:normal; }
  .contact-form input,.contact-form select,.contact-form textarea { font-size:1rem; }
  .home-page .hero { min-height:560px; }
}
@media(max-width:590px) {
  footer,.home-page footer { grid-template-columns:minmax(0,1fr); }
  .footer-note,.home-page .footer-note { grid-column:1; }
  .footer-links { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; }
}
@media(max-width:360px) {
  .home-page .hero-content { padding-inline:20px; }
  .home-page .hero-actions { gap:8px; }
  .home-page .hero-actions .button { padding-inline:12px; }
  .home-page .hero-actions .text-link { font-size:.8125rem; }
  .contact-page .contact-form { padding:22px 16px; }
}
