/* AGNUS shared responsive foundation · MOB-02
   Structural primitives only. Page-family layout belongs to MOB-03–MOB-09. */

:root {
  --agnus-mobile-gutter: clamp(1rem, 4vw, 2rem);
  --agnus-mobile-section: clamp(3.5rem, 9vw, 7rem);
  --agnus-mobile-readable: 72rem;
  --agnus-safe-top: env(safe-area-inset-top, 0px);
  --agnus-safe-right: env(safe-area-inset-right, 0px);
  --agnus-safe-bottom: env(safe-area-inset-bottom, 0px);
  --agnus-safe-left: env(safe-area-inset-left, 0px);
  --agnus-touch-target: 44px;
  --agnus-text-sm: clamp(.875rem, .85rem + .12vw, .9375rem);
  --agnus-text-base: clamp(1rem, .96rem + .2vw, 1.125rem);
  --agnus-text-lg: clamp(1.125rem, 1.05rem + .4vw, 1.375rem);
  --agnus-text-xl: clamp(1.375rem, 1.2rem + .9vw, 2rem);
  --agnus-text-2xl: clamp(1.75rem, 1.35rem + 2vw, 3.25rem);
}

.agnus-text-sm { font-size: var(--agnus-text-sm); }
.agnus-text-base { font-size: var(--agnus-text-base); }
.agnus-text-lg { font-size: var(--agnus-text-lg); }
.agnus-text-xl { font-size: var(--agnus-text-xl); line-height: 1.2; }
.agnus-text-2xl { font-size: var(--agnus-text-2xl); line-height: 1.1; }

*, *::before, *::after { box-sizing: border-box; }

html {
  min-width: 0;
  max-width: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body { min-width: 0; max-width: 100%; }

:where(main, header, footer, nav, section, article, aside, form, fieldset, dialog),
:where(.container, .wrap, .shell, .content, .main, .stage, .grid, .row, .columns, .layout) {
  min-width: 0;
}

@media (max-width: 767px) {
  :where(.foot-brand, .foot-col, .fsearch) { min-width: 0; }
  :where(.fsearch input) { inline-size: 100%; }
}

:where(img, picture, video, canvas, svg, iframe) {
  max-inline-size: 100%;
}

:where(img, video) { block-size: auto; }

@media (max-width: 767px) {
  :where(p, li, dd, dt, blockquote, figcaption, label, legend, h1, h2, h3, h4, h5, h6) {
    overflow-wrap: anywhere;
  }
}

:where(input, select, textarea, button) {
  max-inline-size: 100%;
  min-inline-size: 0;
}

@media (max-width: 767px), (pointer: coarse) {
  :where(input, select, textarea, button) { font: inherit; }
}

@media (max-width: 767px), (pointer: coarse) {
  :where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"]) {
    min-block-size: var(--agnus-touch-target);
  }
}

:where(textarea) { resize: vertical; }

:where(pre, .prompt-box, .code-block, .agnus-scroll-x) {
  max-inline-size: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

:where(pre) {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

:where(table) {
  max-inline-size: 100%;
}

.agnus-container {
  inline-size: min(100%, var(--agnus-mobile-readable));
  margin-inline: auto;
  padding-inline: max(var(--agnus-mobile-gutter), var(--agnus-safe-left)) max(var(--agnus-mobile-gutter), var(--agnus-safe-right));
}

.agnus-stack { display: flex; flex-direction: column; gap: var(--agnus-stack-gap, 1rem); min-width: 0; }
.agnus-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--agnus-cluster-gap, .75rem); min-width: 0; }
.agnus-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--agnus-grid-min, 16rem)), 1fr)); gap: var(--agnus-grid-gap, 1rem); min-width: 0; }
.agnus-scroll-x { scrollbar-gutter: stable; }
.agnus-safe-bottom { padding-bottom: max(var(--agnus-safe-bottom), 1rem); }

@media (max-width: 767px) {
  :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    font-size: 16px !important;
  }

  :where(table) {
    display: block;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
