/* about.css: About ImageEvent pages (about.jsp). Loaded after site.css and reuses its tokens, type, nav (.fx-nav) and
   buttons. Scoped to .ab (the page wrapper), classes prefixed ab-.
   Look: a calm company introduction. Typography, hairline dividers and white space only: no icons, shapes or photos.
   Old-browser care (iOS Safari 12+, Chrome 80+, Firefox ESR): no flex gap, grid-gap before gap, fixed values before clamp(),
   no aspect-ratio, inset or :where(). */

/* site.css sets spacing and type with clamp() inside custom properties; give engines without clamp() fixed values. */
@supports not (width: clamp(1px, 2px, 3px)) {
  :root { --gutter: 32px; --sec: 96px; --fs-lead: 1.1875rem; --fs-h2: 2.25rem; --fs-h1: 3.25rem; }
}

.ab-wrap { max-width: 920px; }

/* hero: left-aligned, quiet */
.ab .ab-hero { padding-bottom: 8px; }
.ab .ab-hero .h1 { max-width: 13em; }
.ab .ab-hero .lead { margin-top: 20px; max-width: 34em; }
.ab .sec { padding-top: 72px; padding-top: clamp(56px, 7vw, 96px); }

/* section: heading on the left, text on the right, a hairline above */
.ab-split { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); grid-gap: 16px 48px; gap: 16px 48px; padding-top: 28px; border-top: 1px solid var(--line); }
.ab-h2 { font-size: 1.375rem; font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); line-height: 1.25; letter-spacing: -0.015em; font-weight: 650; color: var(--ink); }
.ab-split-body p { color: var(--ink-2); max-width: 36em; }
.ab-split-body p + p, .ab-split-body p + .ab-rows, .ab-split-body p + .ab-links { margin-top: 16px; }
.ab .ab-lead { font-size: 1.1875rem; line-height: 1.55; color: var(--ink); }

/* term + description rows, separated by hairlines */
.ab-rows { margin: 0; }
.ab-row-i { display: grid; grid-template-columns: minmax(0, 13em) minmax(0, 1fr); grid-gap: 4px 24px; gap: 4px 24px; padding: 16px 0; border-top: 1px solid var(--line); }
.ab-row-i:first-child { border-top: 0; padding-top: 2px; }
.ab-split-body .ab-row-i:first-child { border-top: 1px solid var(--line); padding-top: 16px; }
.ab-row-i dt { font-weight: 600; color: var(--ink); }
.ab-row-i dd { margin: 0; color: var(--ink-2); }

/* plain link list */
.ab-links { margin: 0; padding: 0; list-style: none; }
.ab-links li { border-top: 1px solid var(--line); }
.ab-links li:last-child { border-bottom: 1px solid var(--line); }
.ab-links a { display: block; padding: 14px 0; font-weight: 500; }
.ab-links a::after { content: " \203A"; }

/* closing note: one quiet link */
.ab .ab-close { padding-top: 28px; margin-top: 72px; margin-top: clamp(56px, 7vw, 96px); border-top: 1px solid var(--line); }
.ab-close p { margin-top: 8px; color: var(--ink-2); }

/* contact */
.ab .ab-contact-sec { padding-top: 48px; }
.ab-contact { display: grid; grid-template-columns: minmax(0, 1fr) 260px; grid-gap: 32px 56px; gap: 32px 56px; align-items: start; }
.ab-form { padding: 32px; border: 1px solid var(--line); border-radius: var(--r-lg); background: #fff; }
.ab-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-gap: 0 18px; gap: 0 18px; }
.ab-field { margin-bottom: 20px; }
.ab-field label, .ab-label { display: block; margin-bottom: 7px; font-size: 0.9375rem; font-weight: 600; color: var(--ink); }
.ab-form input[type="text"], .ab-form select, .ab-form textarea {
  display: block; width: 100%; max-width: none; margin: 0;
  padding: 11px 14px; border: 1px solid #d0d5dd; border-radius: 10px; background: #fff;
  font: inherit; font-size: 1rem; line-height: 1.4; color: var(--ink);
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.ab-form textarea { min-height: 150px; resize: vertical; }
.ab-form input[type="text"]:focus, .ab-form select:focus, .ab-form textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(51, 102, 153, 0.16); }
.ab-select { position: relative; }
.ab-select select { padding-right: 40px; cursor: pointer; }
.ab-select::after { content: ""; position: absolute; right: 16px; top: 50%; width: 7px; height: 7px; margin-top: -5px; border-right: 1.5px solid var(--ink-3); border-bottom: 1.5px solid var(--ink-3); transform: rotate(45deg); pointer-events: none; }
.ab-hint { font-weight: 400; font-size: 0.875rem; color: var(--ink-3); }
.ab-req { color: #b42318; font-weight: 700; }
.ab-field.is-err input[type="text"], .ab-field.is-err textarea { border-color: #d92d20; }
.ab-errors { margin-bottom: 22px; padding: 12px 0 12px 14px; border-left: 2px solid #d92d20; color: #b42318; font-size: 0.9375rem; line-height: 1.5; }
.ab-errors .smallerrortext { color: inherit; font-size: inherit; }
.ab-turnstile { display: block; max-width: 100%; min-height: 65px; }
.ab-turnstile .cf-turnstile { display: inline-block; max-width: 100%; }
.ab-submit { margin-top: 6px; }
.ab-submit .btn { border: 0; cursor: pointer; padding: 11px 30px; font: inherit; font-weight: 600; font-size: 1rem; -webkit-appearance: none; appearance: none; }
.ab-aside-card { padding-top: 20px; border-top: 1px solid var(--line); }
.ab-aside-h { font-size: 1.0625rem; font-weight: 650; color: var(--ink); }
.ab-aside-card p { margin-top: 8px; color: var(--ink-2); font-size: 0.9875rem; }
.ab-aside-card a { font-weight: 500; word-break: break-word; }
.ab .ab-note { font-size: 0.8125rem; line-height: 1.5; color: var(--ink-3); }
.ab-thanks { max-width: 560px; padding: 32px 0 8px; border-top: 1px solid var(--line); }
.ab-thanks .h2 { font-size: 1.75rem; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.ab-thanks .lead { margin-top: 10px; }

/* ---------- responsive ---------- */
@media (max-width: 1040px) {
  .ab-contact { grid-template-columns: 1fr; }
  .ab-aside { max-width: 560px; }
}
@media (max-width: 900px) {
  .ab-split { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .ab-row-i { grid-template-columns: 1fr; padding: 14px 0; }
  .ab-row { grid-template-columns: 1fr; }
  .ab-form { padding: 22px 18px; border-radius: var(--r); }
  .ab .ab-contact-sec { padding-top: 36px; }
  .ab-submit .btn { width: 100%; justify-content: center; }
  .ab .ab-lead { font-size: 1.0625rem; }
}
