/* Base styles — replaces the platform stylesheet (components.css) from the old export.
   Only the defaults this site relies on. Load order: normalize → base → one-strategic-consulting. */

*, *::before, *::after { box-sizing: border-box; }
html { height: 100%; }
body { margin: 0; min-height: 100%; background-color: #fff; color: #333; font-size: 14px; line-height: 20px; }
img { max-width: 100%; vertical-align: middle; display: inline-block; }
svg { overflow: hidden; }

h1, h2, h3, h4, h5, h6 { font-weight: bold; margin-bottom: 10px; }
h1 { font-size: 38px; line-height: 44px; margin-top: 20px; }
h2 { font-size: 32px; line-height: 36px; margin-top: 20px; }
h3 { font-size: 24px; line-height: 30px; margin-top: 20px; }
p { margin-top: 0; margin-bottom: 10px; }
ul, ol { margin-top: 0; margin-bottom: 10px; padding-left: 40px; }
label { display: block; margin-bottom: 5px; font-weight: bold; }

/* buttons */
.button, .submit-button {
  display: inline-block; padding: 9px 15px; color: #fff; border: 0; line-height: inherit;
  text-decoration: none; cursor: pointer; border-radius: 0; font: inherit;
}
input.submit-button { -webkit-appearance: button; }

/* form fields */
.text-field {
  display: block; width: 100%; height: 38px; padding: 8px 12px; margin-bottom: 10px;
  font-size: 14px; line-height: 1.42857143; color: #333; vertical-align: middle;
  background-color: #fff; border: 1px solid #ccc;
}
.text-field:focus { border-color: #3898ec; outline: 0; }
.text-field::placeholder { color: #999; }
.form-block { margin: 0 0 15px; }
.form-done { display: none; padding: 20px; text-align: center; background-color: #dddddd; }
.form-fail { display: none; margin-top: 10px; padding: 10px; background-color: #ffdede; }
.form-block.is-done form { display: none; }
.form-block.is-done .form-done, .form-block.is-fail .form-fail { display: block; }

/* background video */
.background-video { position: relative; overflow: hidden; height: 500px; color: #fff; }
.background-video > video {
  background-size: cover; background-position: 50% 50%; position: absolute; margin: auto;
  width: 100%; height: 100%; inset: -100%; object-fit: cover; z-index: -100;
}
.background-video > video::-webkit-media-controls-start-playback-button { display: none !important; -webkit-appearance: none; }

/* inline SVG logos */
.hero-logo svg, .image-100 svg { display: block; width: 100%; height: auto; }

/* contact modal states (driven by js/site.js) */
.contact-us-modal { transition: transform .8s cubic-bezier(.23, 1, .32, 1); }
.contact-us-modal.is-open { display: flex; transform: none; }
.contact-us-modal .form-wrapper { opacity: 0; transition: opacity .6s ease .35s; }
.contact-us-modal.is-open .form-wrapper { opacity: 1; }
.form-wrapper .field-label { color: #ece6db; }
.form-status { color: #ece6db; font-size: 14px; margin-top: 12px; min-height: 20px; }

/* scroll progress bar */
.progress-bar { transform: scaleX(var(--progress, 0)); }

/* hero entrance */
@media (prefers-reduced-motion: no-preference) {
  .hero-heading-wrapper, .nac-icon-wrapper { animation: osc-rise 1.4s cubic-bezier(.23, 1, .32, 1) both; }
  .nac-icon-wrapper { animation-delay: .2s; }
}
@keyframes osc-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

:focus-visible { outline: 2px solid #ece6db; outline-offset: 3px; }

/* close control is a real button now */
button.close-button-wrapper { background: none; border: 0; color: #ece6db; font: inherit; z-index: 2; }
.align-start { align-self: start; }
.text-link { text-decoration: underline; }

/* utility pages (thank-you, 404) */
.utility-page-wrap { background-color: #2c2a2a; color: #ece6db; }
.utility-page-content h1, .utility-page-content h2 { color: #ece6db; }
.utility-page-content .button { margin-top: 1.5rem; }

/* small hero mark: pinned top-left so it never sits on the heading */
.nac-icon-wrapper { top: 2.5rem; left: 2.5rem; }
