@font-face{font-family:"Oswald";font-display:swap;src:url("assets/fonts/heading.woff2") format("woff2");}
@font-face{font-family:"Inter";font-display:swap;src:url("assets/fonts/body.woff2") format("woff2");}
:root {
  --color-bg: #f8f5fc;
  --color-surface: #ffffff;
  --color-text: #2a2338;
  --color-muted: #7c7786;
  --color-border: #e8e0f2;
  --color-accent: #7c5cbf;
  --font-heading: "Oswald", Georgia, serif;
  --font-body: "Inter", ui-sans-serif, system-ui, sans-serif;
  --space-page: clamp(1rem, 5vw, 5rem);
  --radius: 0.75rem;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--color-bg); color: var(--color-text); font: 1rem/1.6 var(--font-body); }
a { color: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: 1rem; transform: translateY(-200%); background: var(--color-text); color: var(--color-bg); padding: .75rem 1rem; z-index: 20; }
.skip-link:focus { transform: none; }
.site-header { min-height: 4.5rem; padding: 1rem var(--space-page); display: flex; align-items: center; gap: 2rem; border-bottom: 1px solid var(--color-border); }
.site-header > a { font: 700 1.25rem var(--font-heading); text-decoration: none; }
.site-header nav { margin-left: auto; display: flex; flex-wrap: wrap; gap: 1.25rem; }
.site-header nav a { min-height: 2.75rem; display: inline-flex; align-items: center; font-size: .875rem; text-decoration: none; }
.site-header nav a.is-current { text-decoration: underline; text-underline-offset: .3em; text-decoration-thickness: 2px; font-weight: 700; }
.site-header .site-logo { height: 28px; width: auto; display: block; }
.container { width: min(70rem, 100%); margin-inline: auto; }
.section { padding: clamp(4rem, 9vw, 8rem) var(--space-page); }
.section:nth-child(even) { background: var(--color-surface); }
.section-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.variant-split .section-grid, .layout-split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.emphasis-subtle { background: color-mix(in srgb, var(--color-surface) 75%, var(--color-bg)); }
.emphasis-strong { background: var(--color-text); color: var(--color-bg); }
.emphasis-strong p { color: color-mix(in srgb, var(--color-bg) 76%, transparent); }
.section-hero { min-height: 70vh; display: grid; align-items: center; }
.eyebrow { color: var(--color-accent); font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
h1, h2 { max-width: 18ch; font-family: var(--font-heading); line-height: 1.05; letter-spacing: -.025em; }
h1 { font-size: clamp(2.75rem, 7vw, 6.5rem); }
h2 { font-size: clamp(2rem, 5vw, 4.5rem); }
.section p { max-width: 65ch; color: var(--color-muted); }
.media { margin: 0; min-width: 0; }
.media img { display: block; width: 100%; max-height: 42rem; object-fit: cover; border-radius: var(--radius); }
.media-fit-contain img { object-fit: contain; }
.media-fit-fill img { object-fit: fill; }
.media-fit-none img { object-fit: none; }
.media-fit-scale-down img { object-fit: scale-down; }
.media-position-top img { object-position: top; }
.media-position-bottom img { object-position: bottom; }
.media-position-left img { object-position: left; }
.media-position-right img { object-position: right; }
.items { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr)); gap: 1rem; }
.item { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-surface); color: var(--color-text); }
.item h3 { margin-top: 0; font-family: var(--font-heading); }
.button { display: inline-flex; margin-top: 1rem; padding: .8rem 1rem; border-radius: var(--radius); background: var(--color-accent); color: white; text-decoration: none; font-weight: 700; }
.contact-form { grid-column: 1 / -1; display: grid; gap: 1.25rem; max-width: 40rem; }
.contact-form .field { display: grid; gap: .35rem; }
.contact-form label { font-weight: 700; font-size: .9rem; }
.contact-form label .req { color: var(--color-accent); font-weight: 700; }
.contact-form label .opt { color: var(--color-muted); font-weight: 400; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; min-height: 2.75rem; padding: .7rem .8rem; border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-surface); color: var(--color-text); font: inherit; }
.contact-form textarea { min-height: 8rem; resize: vertical; }
.contact-form .field-hint { margin: 0; font-size: .8rem; color: var(--color-muted); max-width: none; }
.contact-form .form-inert { margin: 0; padding: .75rem 1rem; border: 1px dashed var(--color-accent); border-radius: var(--radius); background: color-mix(in srgb, var(--color-accent) 8%, transparent); color: var(--color-text); font-weight: 600; max-width: none; }
.contact-form .form-sensitive { margin: 0; padding: .75rem 1rem; border-left: 3px solid var(--color-accent); background: var(--color-surface); color: var(--color-text); font-size: .85rem; max-width: none; }
.contact-form button[type="submit"] { justify-self: start; min-height: 2.75rem; padding: .8rem 1.4rem; border: 0; border-radius: var(--radius); background: var(--color-accent); color: #fff; font-weight: 700; cursor: pointer; }
.contact-form .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
footer { padding: 3rem var(--space-page); background: var(--color-text); color: var(--color-bg); }
:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
@media (max-width: 48rem) { .site-header { align-items: flex-start; } .site-header nav { gap: .6rem 1rem; } .variant-split .section-grid, .layout-split { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }
@media print {
  /* rank 24 / S-09: a restrained print pass — black on white, no site chrome or
     interactive controls, link URLs revealed after in-content anchors, and
     page-breaks that keep headings with their content and cards intact. */
  html { scroll-behavior: auto; }
  body { background: #fff; color: #000; }
  .skip-link, .site-header nav, .button, .contact-form button[type="submit"] { display: none !important; }
  .site-header { border-bottom: 1px solid #000; }
  .section, .section:nth-child(even), .emphasis-subtle, .emphasis-strong { background: #fff !important; color: #000 !important; padding: 1.25rem 0; min-height: auto; }
  .emphasis-strong p, .section p { color: #000 !important; }
  .eyebrow { color: #000; }
  a { color: #000; text-decoration: underline; }
  main a[href^="http"]::after, main a[href^="mailto:"]::after, main a[href^="tel:"]::after { content: " (" attr(href) ")"; font-size: .85em; word-break: break-all; }
  h1, h2, h3 { break-after: avoid; }
  .item, figure, .contact-form { break-inside: avoid; }
  .item { border-color: #000; background: #fff; }
  .media img { max-height: none; }
  footer { background: #fff !important; color: #000 !important; border-top: 1px solid #000; }
}
