/* Steward Foundry — craft layer.
   Holds only what inline styles cannot express: pseudo-elements, hover/focus
   choreography, paper grain, header condensation and mid-width breakpoints.
   Loaded after site.css on every page. */

/* ---------------------------------------------------------------- paper */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: .055;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}

::selection { background: #b89a5a; color: #0f2d24; }
html { scroll-behavior: smooth; }

/* --------------------------------------------------------------- typography */
h1, h2, h3, blockquote, [style*="Playfair"] {
  font-kerning: normal;
  font-variant-ligatures: common-ligatures contextual;
  -webkit-font-smoothing: antialiased;
}
a { text-underline-offset: 3px; }

/* Section eyebrow — hairline rule before the label, one signature everywhere.
   Hooked on [data-eyebrow] in the markup: the client runtime re-serializes style
   attributes, so substring selectors on inline styles cannot be relied on. */
[data-eyebrow]::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 30px;
  height: 1px;
  margin: -2px 14px 0 0;
  background: currentColor;
  opacity: .5;
}

/* Full-bleed pull quotes get a gold rule above the first line */
blockquote::before {
  content: "";
  display: block;
  width: 54px;
  height: 2px;
  background: #b89a5a;
  margin: 0 0 30px;
}

/* ------------------------------------------------------------------- links */
a[data-mono] {
  position: relative;
  padding-bottom: 5px;
  transition: color .28s ease;
}
a[data-mono]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: currentColor;
  opacity: .3;
  transform-origin: left;
  transition: opacity .28s ease;
}
a[data-mono]:hover::after { opacity: 1; }

/* ----------------------------------------------------------------- buttons */
a[data-btn] {
  transition: background-color .3s ease, border-color .3s ease, color .3s ease,
              transform .32s cubic-bezier(.2,.7,.2,1), box-shadow .32s ease !important;
}
a[data-btn="primary"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px -16px rgba(9,28,22,.65);
}
a[data-btn="ghost"]:hover { transform: translateY(-2px); }
a[data-btn] > span { transition: transform .34s cubic-bezier(.2,.7,.2,1); }
a[data-btn]:hover > span { transform: translateX(5px); }

/* the header CTA sits on a fixed bar — it should not lift */
header a[data-btn]:hover { transform: none; box-shadow: none; }

/* ------------------------------------------------------------------ header */
header { transition: background-color .4s ease, box-shadow .4s ease; }
header > div {
  transition: height .34s cubic-bezier(.2,.7,.2,1);
}
header[data-condensed] {
  background: rgba(11,33,26,.97) !important;
  box-shadow: 0 16px 38px -26px rgba(4,16,12,.9);
}
header[data-condensed] > div { height: 60px !important; }
header img { transition: width .34s cubic-bezier(.2,.7,.2,1), height .34s cubic-bezier(.2,.7,.2,1); }
header[data-condensed] img { width: 32px !important; height: 32px !important; }

header nav a {
  position: relative;
  padding-bottom: 4px;
  transition: color .26s ease;
}
header nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: #c9ad6e;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .38s cubic-bezier(.2,.7,.2,1);
}
header nav a:hover::after { transform: scaleX(1); }
header a[href*="contact"] { white-space: nowrap; }
header nav a[aria-current="page"] { color: #f5f1e6 !important; }
header nav a[aria-current="page"]::after { transform: scaleX(1); background: #b89a5a; }

/* ------------------------------------------------------- hairline cell grids */
[data-principle],
[data-cell-hover] {
  transition: background-color .35s ease;
}
[data-principle]:hover { background: rgba(184,154,90,.06) !important; }

/* ------------------------------------------------------------------- footer */
footer a { transition: color .24s ease, opacity .24s ease; }

/* -------------------------------------------------------------- contact form */
#wasl-form-container-form-1785151342882 .captcha-group {
  border-radius: 0 !important;
  background: #fff !important;
  border-color: rgba(15,45,36,.16) !important;
  padding: 20px 22px !important;
}
#wasl-form-container-form-1785151342882 .captcha-group > label {
  display: block;
  margin-bottom: 14px;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(28,28,28,.55);
}
#wasl-form-container-form-1785151342882 .mcaptcha-container {
  min-height: 84px;
  height: 84px;
  overflow: hidden;
}
#wasl-form-container-form-1785151342882 .mcaptcha-container iframe {
  display: block;
  height: 84px !important;
}
#wasl-form-container-form-1785151342882 .captcha-hint {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: .06em;
}
form.wasl-form input,
form.wasl-form textarea {
  font-family: inherit;
  font-size: 16px;
  transition: border-color .25s ease, background-color .25s ease;
}
form.wasl-form input:focus,
form.wasl-form textarea:focus {
  border-bottom-color: #b89a5a !important;
  background: rgba(184,154,90,.08) !important;
}
form.wasl-form input:focus-visible,
form.wasl-form textarea:focus-visible { outline: none !important; }
form.wasl-form input::placeholder,
form.wasl-form textarea::placeholder { color: rgba(28,28,28,.34); }
form.wasl-form input:user-invalid,
form.wasl-form textarea:user-invalid { border-bottom-color: #9b2c2c !important; }

[role="tab"] { transition: background-color .3s ease, color .3s ease !important; }
[role="tab"][aria-selected="false"]:hover { background: rgba(184,154,90,.14) !important; }

#wasl-form-container-form-1785151342882 .success-message,
#wasl-form-container-form-1785151342882 .error-message {
  border: 1px solid rgba(15,45,36,.16);
  background: #fff;
  padding: 46px 32px !important;
}

/* -------------------------------------------------------------- mid widths */
@media (min-width: 901px) and (max-width: 1140px) {
  header > div { padding: 0 26px !important; gap: 12px !important; }
  header nav { margin-left: 16px !important; gap: 13px !important; font-size: 10.5px !important; letter-spacing: .06em !important; }
  header > div > a:first-of-type { gap: 12px !important; }
  header > div > a:first-of-type img,
  header > div > img { width: 32px !important; height: 32px !important; }
  header > div > a:first-of-type span,
  header > div > span { font-size: 18px !important; }
  header > div > a[href*="contact"] { padding: 11px 15px !important; font-size: 9.5px !important; letter-spacing: .09em !important; gap: 8px !important; }
  header > div > a[href*="contact"] > span { display: none !important; }
}

@media (min-width: 1480px) {
  div[style*="max-width: 1240px"] { max-width: 1320px !important; }
}

/* --------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}
