/* Shared narrow-screen rules for every Fixoo shell. Desktop composition stays in its template. */
@media (max-width: 860px) {
  body.fixoo-site .dir-controls { position: static; }
  body.fixoo-site .dir-controls-inner { align-items: stretch; }
  body.fixoo-site .dir-filters { order: 3; }
  body.fixoo-site .dir-filters:not(.open) { display: none; }
  body.fixoo-site .dir-filters.open { display: flex; max-height: none; overflow: visible; }
}
@media (max-width: 768px) {
  body:is(.fixoo-site,.fixoo-app,.fixoo-auth) { overflow-wrap: anywhere; }
  body:is(.fixoo-site,.fixoo-app,.fixoo-auth) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=hidden]),select,textarea) {
    font-size: 16px !important;
    min-height: 44px;
    max-width: 100%;
    min-width: 0;
  }
  body:is(.fixoo-site,.fixoo-app,.fixoo-auth) :is(input[type=checkbox],input[type=radio]) { flex-shrink: 0; }
  body:is(.fixoo-site,.fixoo-app,.fixoo-auth) :is(button,summary,a):focus-visible { outline: 3px solid #ff6500; outline-offset: 3px; }
  body.fixoo-site :is(.w,.container) { padding-inline: 16px; }
  body.fixoo-site :is(.btn-orange,.btn-outline,.btn-white,.btn-navy,.btn-dark) {
    min-height: 44px; max-width: 100%; white-space: normal; text-align: center; line-height: 1.4;
  }
  body.fixoo-site :is(.bd-layout,.ch-inner,.hiw-inner,.faq-layout,.dir-body-inner,.contact-layout) > * { min-width: 0; }
  body.fixoo-site [class*="grid"] > * { min-width: 0; }
  body.fixoo-site :is(.listing-card-top,.fsp-item,.ti) { white-space: normal; flex-wrap: wrap; }
  body.fixoo-site :is(.prose,.bd-content,.dir-card-info,.listing-card,.listing-detail,.listing-form-wrap) { min-width: 0; }
  body.fixoo-site :is(.prose pre,.prose .table-wrap,.cmp-table-wrap) { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
  body.fixoo-site #site-footer .ft-legal { flex-wrap: wrap; gap: 12px 18px; }
  body.fixoo-site .dir-card-name { flex-wrap: wrap; align-items: flex-start; }
  body.fixoo-site .dir-card-actions-top { flex-wrap: wrap; }
  body.fixoo-site :is(.dir-card-contact-btn,.dir-card-call-btn,.dir-card-wa-btn,.dir-card-tg-btn,.dir-toggle-filters,.dir-reset,.dir-modal-close,.dir-modal-submit,.dir-modal-ok) { min-height: 44px; }
  body.fixoo-site :is(.dir-card-call-btn,.dir-card-wa-btn,.dir-card-tg-btn,.dir-modal-close) { min-width: 44px; }
  body.fixoo-site .dir-card-contact-btn { white-space: normal; }
  body.fixoo-site .cc-card { max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; }
  body.fixoo-site .cc-btn { min-height: 44px; white-space: normal; }
  body.fixoo-site .pwa-banner { padding-bottom: calc(14px + env(safe-area-inset-bottom)); }
  body.fixoo-site :is(.fixoo-ai-header-btn,.fixoo-ai-tool-btn,.fixoo-ai-send) { min-width: 44px; min-height: 44px; }
  body.fixoo-site .dir-modal { width: 100%; max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; }
  body.fixoo-site .dir-modal-overlay { padding: 16px; }
  body.fixoo-pro header .relative { min-width: 0; max-width: 100%; }
  body.fixoo-pro header .relative > button { max-width: 100%; }
  body.fixoo-app :is(.flex-1,.grid > *) { min-width: 0; }
  body.fixoo-app .overflow-x-auto { max-width: 100%; overscroll-behavior-x: contain; }
  body.fixoo-app .overflow-x-auto:focus-visible { outline: 3px solid #ff6500; outline-offset: 2px; }
  body.fixoo-app button:not(.rounded-full) { min-height: 44px; }
  body:is(.fixoo-site,.fixoo-app) .contact-request-dialog { max-height: calc(100dvh - 16px); padding-bottom: env(safe-area-inset-bottom); }
  body.fixoo-app :is(.agenda-week-scroll,.agenda-month-scroll) { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
  body.fixoo-app .agenda-week-scroll > * { min-width: 640px; }
  body.fixoo-app .agenda-month-scroll > * { min-width: 420px; }
  body.fixoo-app .client-chat-panel { height: 70dvh !important; min-height: 320px !important; }
  body.fixoo-app .quote-item-row { padding: 12px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; }
  body.fixoo-app .quote-item-row > :first-child { grid-column: span 12; }
  body.fixoo-app .quote-item-row > :nth-child(2),
  body.fixoo-app .quote-item-row > :nth-child(3) { grid-column: span 6; }
  body.fixoo-app .quote-item-row > :nth-child(4) { grid-column: span 9; }
  body.fixoo-app .quote-item-row > :nth-child(5) { grid-column: span 3; min-width: 44px; }
  body.fixoo-app .fixed.inset-0 > .bg-white { max-height: calc(100dvh - 32px); overflow-y: auto; }
  body.fixoo-auth .right-panel { min-width: 0; padding: 24px 16px; }
  body.fixoo-auth .auth-card { min-width: 0; }
}
@media (max-width: 600px) {
  body.fixoo-site h1 { font-size: clamp(28px, 7.5vw, 36px) !important; line-height: 1.18; }
  body.fixoo-site .dir-controls-inner { padding: 16px; }
  body.fixoo-site .dir-search-wrap { flex-basis: 100%; min-width: 0; }
  body.fixoo-site .dir-toggle-filters { flex: 1; justify-content: center; }
  body.fixoo-site .dir-body-inner { padding-inline: 16px; }
  body.fixoo-site .dir-card { padding: 18px; }
  body.fixoo-site :is(.listing-form-wrap,.listing-detail) { padding: 20px 16px; }
  body.fixoo-site :is(.dir-card-desc,.listing-card-desc,.bl-card-excerpt,.hp-blog-excerpt) { font-size: 15px; line-height: 1.65; }
  body.fixoo-site .prose { font-size: 16px; line-height: 1.75; }
  body.fixoo-site .prose :is(h2,h3) { scroll-margin-top: 90px; }
  body.fixoo-site .prose :is(ul,ol) { padding-left: 1.2em; }
}
@media (max-width: 480px) {
  body.fixoo-site .dir-services-grid { grid-template-columns: minmax(0,1fr); }
  body.fixoo-site .dir-modal-row { grid-template-columns: minmax(0,1fr); }
  body.fixoo-site .dir-card-contact-btn { flex-basis: 100%; }
}
