/* Shared responsive layout; overrides legacy inline dimensions. */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; width: 100%; max-width: 100%; }
img, svg { max-width: 100%; }
input, textarea, select { max-width: 100%; min-width: 0; font: inherit; }
button { max-width: 100%; min-height: 44px; touch-action: manipulation; }
a, button, input, textarea, select { outline-offset: 4px; }
:focus-visible { outline: 3px solid #c49a6c; }
p, li, .result-item, #resultadosEdicion, #resultadosTramiteBox { overflow-wrap: anywhere; }
.sat-header, .sat-header-top-bar, .sat-main-menu-bar { width: 100% !important; }
.sat-header-top-bar { height: auto !important; min-height: 80px; padding: 16px clamp(16px, 4vw, 60px) !important; gap: 20px !important; }
.sat-header-logos { min-width: 0; flex-wrap: wrap; gap: 16px !important; }
.sat-header-logos img { height: auto !important; max-height: 60px !important; width: auto !important; max-width: 30%; object-fit: contain; }
.sat-header-nav { margin-left: auto !important; gap: 20px !important; flex-shrink: 0; }
.sat-header-nav a { margin-left: 0 !important; }
.sat-header-searchicon { margin-left: 0 !important; flex-shrink: 0; }
.sat-main-menu-bar { position: relative; height: auto !important; min-height: 64px; flex-wrap: wrap; gap: 12px; padding: 0 16px !important; }
.sat-main-menu-bar .sat-main-menu a { padding: 14px 22px; min-height: 44px; }
.sat-main-menu-bar .sat-header-icons, .sat-main-menu-bar .sat-header-searchbar, .sat-main-menu-bar .sat-header-modes { margin-left: 0; }
main > .portal-content, .adeudos-container { width: 100%; max-width: 1200px; padding: 32px clamp(16px, 4vw, 48px) !important; margin: auto; }
main { padding-inline: clamp(16px, 4vw, 48px); }
main > .portal-content { padding-inline: 0 !important; }
main h1 { overflow-wrap: anywhere; }
main > div[style*="font-size:2.2rem"] { font-size: clamp(24px, 4vw, 35px) !important; }
.welcome-title { font-size: clamp(28px, 4.5vw, 56px) !important; line-height: 1.2; }
.welcome-cards { gap: clamp(24px, 5vw, 80px) !important; }
.welcome-divider { margin: 0 !important; flex-shrink: 0; }
.card-btn { max-width: 100% !important; }
.tramites-grid { grid-template-columns: repeat(5, minmax(0, 160px)) !important; gap: 12px !important; }
.tramite-btn { width: 100% !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; aspect-ratio: 1; }
.minisitios-section { height: auto !important; padding: 24px 0 !important; margin-bottom: 32px !important; background: #f4ecdf !important; }
#minisitios-btns { position: relative !important; top: auto !important; gap: 24px !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.minisitio-btn { width: 100% !important; height: auto !important; aspect-ratio: 1; max-width: 220px; }
.minisitio-btn img { width: 75% !important; height: auto !important; }
.resource-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 24px !important; }
#sat-carrusel { width: 100% !important; height: clamp(150px, 20vw, 320px) !important; }
#sat-carrusel-slides { width: 100% !important; height: 100% !important; }
#sat-carrusel-slides img { width: 100% !important; max-width: none; height: 100% !important; flex: 0 0 100%; object-fit: contain !important; }
#sat-carrusel-prev, #sat-carrusel-next { font-size: 32px !important; padding: 0 !important; width: 44px; height: 44px; }
#sat-carrusel-prev { left: 4px !important; }
#sat-carrusel-next { right: 4px !important; }
.tramites-sat-grid { display: block !important; }
.tramites-sat-grid > div { width: 100%; }
#sat-tabs-horizontal { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); padding-left: 0 !important; gap: 8px !important; }
.sat-tab { min-width: 0 !important; width: 100%; height: auto !important; min-height: 72px; margin: 0 !important; padding: 12px 8px !important; overflow-wrap: anywhere; }
#sat-tab-content { padding: 24px 20px !important; }
.sat-accordion-plus { flex-shrink: 0; }
.sat-accordion-content, .sat-tab-panel { overflow-wrap: anywhere; }
.sat-accordion-content > div, .sat-tab-panel > div { min-width: 0; }
.sat-accordion-content > div > div, .sat-tab-panel > div > div { min-width: 0; }
.sat-footer > div, .sat-footer img[alt="Final"] { width: 100% !important; }
.sat-footer-top-custom { grid-template-columns: 1.7fr 1.1fr 1.1fr !important; padding: 32px 16px !important; }
.sat-footer-top-custom > div { min-width: 0; padding: 0 24px !important; overflow-wrap: anywhere; }
.sat-footer-top-custom > div > div[style*="display:flex"] { flex-wrap: wrap; }
.centered, .edit-container { width: calc(100% - 32px); margin: 32px auto !important; padding: 24px !important; }
.form-box, .login-box, .results-box, .search-box { min-width: 0; max-width: 100%; }
.form-box input, .form-box textarea, #resultadosEdicion input { width: 100% !important; }
.search-box, #buscarForm, #busquedaTramiteBox { flex-wrap: wrap; }
#buscarForm input { flex: 1 1 180px !important; }
#busquedaTramiteBox input { flex: 1 1 180px; margin-right: 0 !important; }
@media (max-width: 1100px) {
  .sat-header-top-bar { flex-wrap: wrap; }
  .sat-header-logos { flex: 1 1 100%; justify-content: center; }
  .sat-header-nav { margin: 0 auto !important; }
  .sat-main-menu-bar { justify-content: space-between; }
  #sat-burger { display: block !important; background: transparent; color: white; border: 0; font-size: 28px; width: 48px !important; height: 48px !important; margin: 0 !important; cursor: pointer; position: static !important; }
  #sat-main-menu { display: none !important; position: absolute !important; top: 100% !important; left: 0 !important; width: 100% !important; margin: 0; flex-direction: column !important; align-items: stretch !important; background: #611232; z-index: 20; box-shadow: 0 6px 12px #0003; }
  #sat-main-menu.sat-menu-open { display: flex !important; }
  .sat-main-menu-bar #sat-main-menu a { width: 100% !important; justify-content: flex-start; text-align: left !important; padding: 14px 20px !important; }
  .sat-footer-top-custom { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 24px !important; }
  #minisitios-btns, .resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 600px) {
  .sat-header-top-bar { flex-direction: row !important; padding: 12px 16px !important; gap: 12px !important; }
  .sat-header-logos { gap: 12px !important; }
  .sat-header-logos img { max-height: 36px !important; }
  .sat-header-nav { font-size: 14px !important; gap: 20px !important; margin: 0 !important; }
  .sat-header-searchicon { font-size: 20px !important; margin-left: auto !important; }
  .sat-main-menu-bar { flex-direction: row !important; min-height: 56px !important; padding: 4px 16px !important; }
  .sat-header-icons, .sat-header-searchbar, .sat-header-modes { display: none !important; }
  .welcome-cards { flex-direction: column; }
  .welcome-divider { width: 80px !important; height: 2px !important; }
  .tramites-grid { grid-template-columns: repeat(2, minmax(0, 160px)) !important; }
  #minisitios-btns, .resource-grid { gap: 16px !important; }
  #sat-tabs-horizontal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #sat-tab-content { padding: 16px 12px !important; }
  .sat-accordion-header { gap: 10px; padding-top: 20px; }
  .sat-accordion-header span:not(.sat-accordion-plus) { font-size: 1.1rem !important; }
  .sat-accordion-content { padding: 16px 0 !important; }
  .sat-accordion-content > div[style*="display:flex"], .sat-tab-panel > div[style*="display:flex"] { flex-direction: column !important; gap: 16px !important; padding: 16px 0 !important; }
  .sat-tab-panel div[style*="font-size:1.45rem"], .sat-tab-panel a[style*="font-size:1.45rem"] { font-size: 1.1rem !important; }
  .adeudos-container > div > span[style*="font-size:"] { font-size: 1.6rem !important; }
  .adeudos-accordion-header > span { font-size: 1.5rem !important; }
  .sat-footer-top-custom { grid-template-columns: minmax(0, 1fr) !important; }
  .sat-footer-top-custom > div { padding: 0 8px !important; border-left: 0 !important; margin: 0 !important; }
  .sat-footer > div > div[style*="flex-wrap:wrap"] { gap: 24px; }
  .sat-footer > div > div > div[style*="min-width:"] { min-width: 0 !important; flex-basis: 100% !important; }
  .centered, .edit-container { margin: 16px auto !important; padding: 16px !important; }
  .form-box, .login-box, .results-box, #busquedaTramiteBox { padding: 20px 16px !important; border-radius: 12px !important; }
  input, textarea, select { font-size: 16px !important; }
  .login-box input { width: 100% !important; }
  #buscarForm { align-items: stretch !important; }
  #buscarForm input { flex-basis: 100% !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
