body{margin:0;min-height:100vh;overflow-x:hidden;color:#2B2320;font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:16px;line-height:1.5;color-scheme:light;background:radial-gradient(1100px 520px at 12% -10%,rgba(43,164,108,.10),transparent 60%),radial-gradient(900px 460px at 95% -6%,rgba(201,169,126,.12),transparent 55%),#FAF7F2;background-attachment:fixed}
input,select,textarea,button{font-family:inherit}
*{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
input:focus,select:focus{border-color:#2BA46C !important;outline:none;box-shadow:0 0 0 3px rgba(43,164,108,.18)}
input:disabled{color:#9C9186}

/* Form grids. Column counts live here (not inline) so the media query below
   can collapse them on a phone/tablet — inline styles would outrank it. */
.g3{display:grid;grid-template-columns:1.2fr 1fr 1fr}
.g2{display:grid;grid-template-columns:1fr 1fr}
.g21{display:grid;grid-template-columns:2fr 1fr}
.span{grid-column:1 / -1}

/* Wide tracking reads well on desktop but forces ugly wraps on a phone. */
.sect-title{letter-spacing:.14em}

@media (max-width:760px){
  .g3,.g2,.g21{grid-template-columns:1fr}
  .hide-sm{display:none !important}
  .wrap-sm{white-space:normal !important}
  .sect-title{letter-spacing:.04em}
}
