/* ============================================================
   RESET — modern minimal reset
   ============================================================ */

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

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--color-text);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Remove list styles on ul/ol with list role */
ul[role='list'],
ol[role='list'] {
  list-style: none;
}

/* Sensible media defaults */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

/* Inherit fonts for inputs */
input, button, textarea, select {
  font: inherit;
  color: inherit;
}

/* iOS form zoom prevention — ALWAYS 16px minimum */
input, select, textarea, button {
  font-size: 1rem;
}

/* Avoid text overflows */
h1, h2, h3, h4, h5, h6, p {
  overflow-wrap: break-word;
}

/* Remove button defaults */
button {
  background: none;
  border: none;
  cursor: pointer;
  line-height: inherit;
}

/* Anchor defaults */
a {
  color: inherit;
  text-decoration: none;
}

/* Touch targets — Apple standard */
.btn, a, button, input[type="submit"],
input[type="button"], input[type="reset"] {
  min-height: 44px;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

/* WordPress core classes */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: var(--color-bg);
  border-radius: var(--radius-sm);
  clip: auto !important;
  clip-path: none;
  color: var(--primary);
  font-size: var(--text-base);
  font-weight: var(--font-bold);
  height: auto;
  left: var(--space-md);
  padding: var(--space-sm) var(--space-md);
  position: fixed;
  top: var(--space-md);
  width: auto;
  word-wrap: normal !important;
  z-index: var(--z-toast);
}

/* WordPress alignment classes */
.alignleft  { float: left; margin-right: var(--space-md); }
.alignright { float: right; margin-left: var(--space-md); }
.aligncenter { display: block; margin: 0 auto; }
.alignwide  { max-width: calc(var(--container) + var(--space-2xl) * 2); margin-left: auto; margin-right: auto; }
.alignfull  { width: 100%; max-width: none; }

/* WP captions */
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: var(--text-sm); color: var(--color-text-muted); margin-top: var(--space-xs); }

/* CF7 */
.wpcf7-not-valid-tip { font-size: var(--text-sm); color: var(--color-error); margin-top: 4px; display: block; }
.wpcf7-response-output { margin-top: var(--space-md) !important; padding: var(--space-sm) var(--space-md) !important; border-radius: var(--radius-md) !important; border: none !important; }
.wpcf7-mail-sent-ok { background: var(--primary-light) !important; color: var(--color-success) !important; }
.wpcf7-mail-sent-ng, .wpcf7-validation-errors { background: #fee2e2 !important; color: var(--color-error) !important; }
