/* ==========================================================================
   Aryan Sarparast MD LLC — site stylesheet
   Every class is prefixed "as-" so it will not collide with WordPress theme
   styles. In WordPress, paste this whole file into Appearance > Editor >
   Styles > Additional CSS. The fonts (Newsreader and Figtree, from Google
   Fonts) load from link tags in the page head, or in WordPress from the
   header snippet, because WordPress places this CSS after other styles,
   where an @import line would be ignored. Keep this file free of angle
   brackets: WordPress refuses CSS that looks like it contains HTML.
   ========================================================================== */

:root {
  /* Color */
  --as-abyss: #0F1B2D;        /* deep navy: header, hero, footer */
  --as-navy: #18293F;         /* raised navy: inputs, menus */
  --as-navy-line: #2C3E56;    /* hairlines on navy */
  --as-lapis: #2B5784;        /* links and buttons on light */
  --as-lapis-deep: #1E4166;   /* hover */
  --as-sand: #D6C4A3;         /* ornament, accents on navy */
  --as-sand-light: #E6DAC4;   /* sand hover */
  --as-stone: #E9E6E0;        /* page background */
  --as-stone-deep: #DFDBD3;   /* alternate band */
  --as-surface: #F4F2EE;      /* boxes and tiles */
  --as-line: #CBC4B8;         /* hairlines on light */
  --as-ink: #1B2230;          /* body text */
  --as-river: #545F5D;        /* secondary text on light */
  --as-mist: #B8C1CB;         /* secondary text on navy */
  --as-pearl: #F2EDE3;        /* headings on navy */
  --as-sand-dot: #A98E62;     /* sand bullets on light */

  /* Type */
  --as-serif: "Newsreader", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --as-sans: "Figtree", "Segoe UI", system-ui, -apple-system, sans-serif;
  --as-step--1: 0.875rem;
  --as-step-0: 1.125rem;
  --as-step-1: 1.3125rem;
  --as-step-2: clamp(1.5rem, 1.3rem + 0.8vw, 1.875rem);
  --as-step-3: clamp(1.875rem, 1.5rem + 1.6vw, 2.625rem);
  --as-step-4: clamp(2.375rem, 1.7rem + 3vw, 3.75rem);
  --as-step-5: clamp(2.5rem, 1.6rem + 3.9vw, 4.25rem);

  /* Space and layout */
  --as-gutter: clamp(1rem, 4vw, 2.5rem);
  --as-max: 72rem;
  --as-measure: 36em;
  --as-section: clamp(4rem, 8vw, 7rem);
  --as-header-h: 4.75rem;
  --as-radius: 3px;
  --as-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--as-stone);
  color: var(--as-ink);
  font-family: var(--as-serif);
  font-size: var(--as-step-0);
  font-weight: 400;
  letter-spacing: normal;
  line-height: 1.65;
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 {
  font-family: var(--as-serif);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.012em;
  margin: 0 0 0.6em;
  text-wrap: balance;
}
h1 { font-size: var(--as-step-4); font-weight: 300; }
h2 { font-size: var(--as-step-3); font-weight: 350; }
h3 { font-size: var(--as-step-2); }
h4 { font-size: var(--as-step-1); }
p { margin: 0 0 1.1em; text-wrap: pretty; }
ul, ol { margin: 0 0 1.2em; }
a {
  color: var(--as-lapis);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
  transition: color 180ms var(--as-ease), text-decoration-color 180ms var(--as-ease);
}
a:hover { color: var(--as-lapis-deep); text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--as-lapis); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--as-sand); color: var(--as-abyss); }

.as-sr {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.as-skip {
  position: absolute; left: 1rem; top: -4rem; z-index: 100;
  background: var(--as-sand); color: var(--as-abyss);
  font-family: var(--as-sans); font-weight: 600; padding: .75rem 1rem; border-radius: var(--as-radius);
}
.as-skip:focus { top: 1rem; }

/* WordPress: inside this design's blocks, spacing comes from this stylesheet,
   not from the theme's automatic gap between blocks. Kept at low specificity
   so the component rules below still apply. */
.is-layout-flow:where([class*="as-"]) > * { margin-block: 0; }
.wp-site-blocks > * { margin-block: 0; }

.as-container { width: min(100% - 2 * var(--as-gutter), var(--as-max)); margin-inline: auto; }
.as-section { padding-block: var(--as-section); }
.as-section--tight { padding-block: calc(var(--as-section) * .7); }
.as-section--alt { background: var(--as-stone-deep); }
.as-section--flush-top { padding-top: 0; }
.as-prose > * { max-width: var(--as-measure); }
.as-anchor { scroll-margin-top: calc(var(--as-header-h) + 1.5rem); }

/* Spacing helpers */
.as-gap-top { margin-top: 1rem; }
.as-gap-top-lg { margin-top: clamp(2.5rem, 6vw, 4rem); }

/* Small sans text used for facts, dates, captions */
.as-meta { font-family: var(--as-sans); font-size: var(--as-step--1); color: var(--as-river); line-height: 1.5; }

/* ---------- Buttons and links ---------- */
.as-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 3rem; padding: .8rem 1.4rem;
  font-family: var(--as-sans); font-size: 1rem; font-weight: 600; line-height: 1.2;
  border: 1px solid transparent; border-radius: var(--as-radius);
  text-decoration: none; cursor: pointer;
  transition: background-color 200ms var(--as-ease), color 200ms var(--as-ease), transform 200ms var(--as-ease);
}
.as-btn:active { transform: translateY(1px); }
.as-btn--sand { background: var(--as-sand); color: var(--as-abyss); }
.as-btn--sand:hover { background: var(--as-sand-light); color: var(--as-abyss); text-decoration: none; }
.as-btn--lapis { background: var(--as-lapis); color: #fff; }
.as-btn--outline-light { background: transparent; color: var(--as-sand); border-color: var(--as-sand); }
.as-btn--outline-light:hover { background: rgba(214, 196, 163, .12); color: var(--as-sand-light); text-decoration: none; }
.as-btn--lapis:hover { background: var(--as-lapis-deep); color: #fff; text-decoration: none; }
.as-on-dark :focus-visible { outline-color: var(--as-sand); }

.as-more {
  font-family: var(--as-sans); font-weight: 600; font-size: 1rem;
  color: var(--as-lapis); text-decoration: underline; text-decoration-color: rgba(43, 87, 132, .35);
}
.as-more:hover { text-decoration-color: currentColor; }
.as-more--light { color: var(--as-sand); text-decoration-color: rgba(214, 196, 163, .45); }
.as-more--light:hover { color: var(--as-sand-light); }

/* ---------- Header ---------- */
.as-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--as-abyss); color: var(--as-pearl);
  border-bottom: 1px solid transparent;
  transition: border-color 250ms var(--as-ease);
}
.as-header.is-scrolled { border-bottom-color: var(--as-navy-line); }
.as-header__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  min-height: var(--as-header-h);
}
.as-brand {
  display: inline-flex; align-items: center; gap: .65rem;
  color: var(--as-pearl); text-decoration: none;
}
.as-brand:hover { color: #fff; text-decoration: none; }
.as-mark { width: 2rem; height: 2rem; color: var(--as-sand); flex: none; }
.as-brand__name { font-family: var(--as-serif); font-size: 1.3rem; font-weight: 400; letter-spacing: .005em; white-space: nowrap; }
.as-brand__llc { font-size: .68em; color: var(--as-sand); margin-left: .2em; letter-spacing: .04em; }

.as-menu-toggle {
  display: none; align-items: center; gap: .5rem;
  min-height: 2.75rem; padding: .5rem .85rem;
  background: transparent; color: var(--as-pearl);
  border: 1px solid var(--as-navy-line); border-radius: var(--as-radius);
  font-family: var(--as-sans); font-size: .95rem; font-weight: 500; cursor: pointer;
}
.as-menu-toggle svg { width: 1.1rem; height: 1.1rem; }

.as-nav__list { display: flex; align-items: center; gap: clamp(.9rem, 1.5vw, 1.6rem); list-style: none; margin: 0; padding: 0; }
.as-nav__item { position: relative; display: flex; align-items: center; }
.as-nav__link {
  position: relative; display: inline-block; padding: .55rem 0;
  font-family: var(--as-sans); font-size: .95rem; font-weight: 500;
  color: #DCE2E8; text-decoration: none; white-space: nowrap;
}
.as-nav__link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: .2rem; height: 1px;
  background: var(--as-sand); transform: scaleX(0); transform-origin: left;
  transition: transform 260ms var(--as-ease);
}
.as-nav__link:hover, .as-nav__link[aria-current="page"] { color: #fff; text-decoration: none; }
.as-nav__link:hover::after, .as-nav__link[aria-current="page"]::after { transform: scaleX(1); }
.as-nav :focus-visible { outline-color: var(--as-sand); }
.as-nav__cta {
  display: inline-flex; align-items: center; min-height: 2.5rem; padding: .45rem 1rem;
  font-family: var(--as-sans); font-size: .95rem; font-weight: 600; white-space: nowrap;
  color: var(--as-abyss); background: var(--as-sand); text-decoration: none;
  border: 1px solid var(--as-sand); border-radius: var(--as-radius);
  transition: background-color 200ms var(--as-ease), border-color 200ms var(--as-ease);
}
.as-nav__cta:hover { background: var(--as-sand-light); border-color: var(--as-sand-light); color: var(--as-abyss); text-decoration: none; }

.as-nav__sub-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.75rem; height: 2.75rem; margin-left: .1rem; padding: 0;
  background: none; border: 0; color: var(--as-sand); cursor: pointer;
}
.as-nav__sub-toggle svg { width: .8rem; height: .8rem; transition: transform 220ms var(--as-ease); }
.as-nav__item.is-open .as-nav__sub-toggle svg { transform: rotate(180deg); }
.as-nav__sub {
  position: absolute; top: 100%; left: -1.25rem; min-width: 14.5rem;
  margin: 0; padding: .5rem 0; list-style: none;
  background: var(--as-abyss); border-top: 1px solid var(--as-sand);
  box-shadow: 0 18px 30px -18px rgba(5, 10, 20, .7);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity 200ms var(--as-ease), transform 200ms var(--as-ease), visibility 0s linear 200ms;
}
.as-nav__sub a {
  display: block; padding: .6rem 1.25rem;
  font-family: var(--as-sans); font-size: .95rem; color: #DCE2E8; text-decoration: none;
}
.as-nav__sub a:hover { background: var(--as-navy); color: #fff; }
.as-nav__item.is-open .as-nav__sub {
  opacity: 1; visibility: visible; transform: none;
  transition: opacity 200ms var(--as-ease), transform 200ms var(--as-ease), visibility 0s;
}
@media (hover: hover) and (min-width: 75em) {
  .as-nav__item--has-sub:hover .as-nav__sub {
    opacity: 1; visibility: visible; transform: none;
    transition: opacity 200ms var(--as-ease), transform 200ms var(--as-ease), visibility 0s;
  }
}

@media (max-width: 74.99em) {
  .as-menu-toggle { display: inline-flex; }
  .as-nav {
    position: absolute; top: 100%; left: 0; right: 0;
    background: var(--as-abyss); border-top: 1px solid var(--as-navy-line);
    padding: .5rem var(--as-gutter) 1.5rem;
    display: none;
  }
  .as-nav.is-open { display: block; }
  .as-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .as-nav__item { flex-wrap: wrap; border-bottom: 1px solid var(--as-navy-line); }
  .as-nav__link { padding: .9rem 0; font-size: 1.05rem; }
  .as-nav__link::after { display: none; }
  .as-nav__link[aria-current="page"] { color: var(--as-sand); }
  .as-nav__item--cta { border-bottom: 0; padding-top: 1rem; }
  .as-nav__sub-toggle { display: none; }
  .as-nav__sub {
    position: static; flex-basis: 100%; min-width: 0; padding: 0 0 .75rem;
    border-top: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none;
  }
  .as-nav__sub a { padding: .5rem 0 .5rem 1rem; border-left: 1px solid var(--as-navy-line); }
}
/* Small phones: keep the name and the Menu button on one line */
@media (max-width: 26em) {
  .as-header__inner { gap: .75rem; }
  .as-brand { gap: .5rem; }
  .as-mark { width: 1.75rem; height: 1.75rem; }
  .as-brand__name { font-size: 1.1rem; }
  .as-menu-toggle { padding-inline: .7rem; }
}
@media (max-width: 21.25em) {
  .as-menu-toggle { padding-inline: .6rem; }
  .as-menu-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* ---------- Waves (section edges) ---------- */
.as-wave { display: block; width: 100%; height: clamp(26px, 4vw, 54px); }
.as-wave--bottom { position: absolute; left: 0; right: 0; bottom: -1px; color: var(--as-stone); }
.as-wave--top { color: var(--as-abyss); margin-bottom: -1px; }

/* ---------- Lattice pattern (Shiraz-inspired star lattice) ---------- */
.as-lattice { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.as-lattice__lines { stroke: var(--as-sand); stroke-width: .65; fill: none; }

/* ---------- Home hero ---------- */
.as-hero {
  position: relative; overflow: hidden;
  background: var(--as-abyss); color: var(--as-pearl);
  padding-block: clamp(3rem, 7vw, 6rem) clamp(5.5rem, 10vw, 8.5rem);
}
.as-hero .as-lattice { opacity: .42; animation: as-fade 2.2s var(--as-ease) both; }
.as-hero__inner {
  position: relative; display: grid; gap: clamp(2rem, 4vw, 3.5rem); align-items: center;
}
.as-hero__title { font-size: var(--as-step-5); font-weight: 300; line-height: 1.06; color: var(--as-pearl); max-width: 12.5em; margin-bottom: .45em; }
.as-hero__lede { font-size: var(--as-step-1); line-height: 1.55; color: var(--as-mist); max-width: 31em; margin-bottom: 2rem; }
.as-hero__hook { color: var(--as-pearl); margin-bottom: 1rem; }
/* Hidden verse: clicking the sphere reveals it (site.js). The sphere only becomes
   clickable once the verse text is filled in. */
.as-hero__art { position: relative; }
.as-hero__orb {
  position: absolute; left: 68.5%; top: 50.5%; width: 26%; aspect-ratio: 1; z-index: 2;
  transform: translate(-50%, -50%); padding: 0; border: 0; border-radius: 50%;
  background: transparent; cursor: pointer;
  transition: box-shadow 500ms var(--as-ease);
}
.as-hero__orb[hidden] { display: none; }
.as-hero__orb:hover { box-shadow: 0 0 0 1px rgba(214, 196, 163, .3), 0 0 46px rgba(110, 170, 255, .35); }
.as-hero__orb:focus-visible { outline: 2px solid var(--as-sand); outline-offset: 4px; }
.as-hero__verse {
  position: absolute; left: 68.5%; top: 50.5%; z-index: 1; width: min(19rem, 64%);
  margin: 0; padding: 1.25rem .75rem; text-align: center; pointer-events: none;
  opacity: 0; visibility: hidden; transform: translate(-50%, -50%) scale(.96);
  transition: opacity 800ms var(--as-ease), transform 800ms var(--as-ease), visibility 0s linear 800ms;
}
.as-hero__verse::before {
  content: ""; position: absolute; inset: -28% -16%; z-index: -1; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(15, 27, 45, .74), rgba(15, 27, 45, .5) 58%, rgba(15, 27, 45, 0));
}
.as-hero__art.is-revealed .as-hero__verse,
.as-hero__orb:not([hidden]):focus-visible ~ .as-hero__verse { opacity: 1; visibility: visible; transform: translate(-50%, -50%); transition-delay: 0s; }
@media (hover: hover) { .as-hero__orb:not([hidden]):hover ~ .as-hero__verse { opacity: 1; visibility: visible; transform: translate(-50%, -50%); transition-delay: 0s; } }  /* hovering the sphere also reveals it */
.as-hero__verse-text { margin: 0; font-family: var(--as-serif); font-style: italic; font-size: 1.15rem; line-height: 1.5; color: var(--as-pearl); text-shadow: 0 1px 14px rgba(0, 0, 0, .7); text-wrap: balance; }
.as-hero__verse-by { margin: .75rem 0 0; font-family: var(--as-sans); font-size: .72rem; letter-spacing: .09em; text-transform: uppercase; color: var(--as-sand); }
@media (max-width: 55.99em) {
  .as-hero__verse { left: 50%; width: min(16rem, 100%); }
  .as-hero__verse-text { font-size: 1rem; }
}
.as-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; }
.as-hero__art { margin: 0; justify-self: center; width: min(100%, 30rem); animation: as-rise 1.6s var(--as-ease) .1s both; }
.as-hero__art img {
  width: 100%; aspect-ratio: 1; object-fit: cover;
  /* Circle sized to the nearest edge, so the glow fades out evenly on every side */
  -webkit-mask-image: radial-gradient(circle closest-side at 56% 50%, #000 58%, transparent 100%);
          mask-image: radial-gradient(circle closest-side at 56% 50%, #000 58%, transparent 100%);
}
@media (min-width: 56em) {
  .as-hero__inner { grid-template-columns: 1.08fr .92fr; }
  .as-hero__art { justify-self: end; }
}
@media (max-width: 55.99em) {
  .as-hero__art { order: -1; width: min(70%, 19rem); justify-self: end; margin-bottom: -1.5rem; }
}
@keyframes as-rise { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }
@keyframes as-fade { from { opacity: 0; } }

/* ---------- Inner page header band ---------- */
.as-band {
  position: relative; overflow: hidden;
  background: var(--as-abyss); color: var(--as-pearl);
  padding-block: clamp(3rem, 6vw, 5rem) clamp(4.5rem, 8vw, 6.5rem);
}
.as-band .as-lattice { opacity: .38; }
.as-band__inner { position: relative; }
.as-band__title { color: var(--as-pearl); margin-bottom: .3em; }
.as-band__lede { font-size: var(--as-step-1); color: var(--as-mist); max-width: 32em; margin: 0; }

/* ---------- Home: two paths ---------- */
.as-paths { display: grid; gap: 3rem; }
.as-path h2 { font-size: var(--as-step-3); }
.as-path p { max-width: 30em; }
.as-path__sub { font-size: var(--as-step-1); font-weight: 500; margin: 1.75rem 0 .85rem; }
.as-path__list { max-width: 30em; margin-bottom: 1.5rem; }
.as-path__list strong { font-weight: 600; }
.as-facts { list-style: none; padding: 0; margin: 1.25rem 0 1.5rem; display: grid; gap: .45rem; }
.as-facts li { position: relative; padding-left: 1.25rem; }
.as-facts li::before, .as-list li::before {
  content: ""; position: absolute; left: 0; top: .62em;
  width: .42rem; height: .42rem; background: var(--as-sand-dot); transform: rotate(45deg);
}
@media (min-width: 52em) {
  .as-paths { grid-template-columns: 1fr 1fr; gap: 0; }
  .as-path { padding-right: clamp(2rem, 5vw, 4.5rem); }
  .as-path + .as-path { padding-right: 0; padding-left: clamp(2rem, 5vw, 4.5rem); border-left: 1px solid var(--as-line); }
}

.as-path__media { margin: 0 0 1.75rem; }
.as-links-row { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.as-path__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--as-radius); }

/* ---------- Attorneys page ---------- */
.as-questions { display: grid; gap: 2.5rem; }
.as-question-group { padding-top: 1.5rem; border-top: 2px solid var(--as-abyss); }
.as-question-group h3 { font-size: var(--as-step-2); margin-bottom: 1rem; }
.as-qlist { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.as-qlist li { position: relative; padding-left: 1.6rem; font-style: italic; line-height: 1.5; }
.as-qlist li::before {
  content: "?"; position: absolute; left: 0; top: .05em;
  font-family: var(--as-serif); font-style: normal; font-weight: 500; color: #8A7148;
}
@media (min-width: 60em) { .as-questions { grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 4vw, 3.5rem); } }
.as-creds { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem 2.5rem; }
.as-creds li { padding-left: 1rem; border-left: 2px solid var(--as-sand-dot); }
.as-creds strong { display: block; font-weight: 500; font-size: var(--as-step-1); line-height: 1.3; }
.as-creds span { display: block; margin-top: .2rem; font-family: var(--as-sans); font-size: var(--as-step--1); line-height: 1.45; color: var(--as-river); }
@media (min-width: 46em) { .as-creds { grid-template-columns: 1fr 1fr; } }
.as-cta-band { position: relative; overflow: hidden; background: var(--as-abyss); color: var(--as-pearl); border-radius: var(--as-radius); padding: clamp(2rem, 5vw, 3.5rem); }
.as-cta-band .as-lattice { opacity: .3; }
.as-cta-band > :not(.as-lattice) { position: relative; }
.as-cta-band h2 { color: var(--as-pearl); margin-bottom: .4rem; }
.as-cta-band p { color: var(--as-mist); max-width: 34em; }

/* ---------- Home: approach ---------- */
.as-approach { display: grid; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.as-approach__media { margin: 0; }
.as-approach__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--as-radius); }
.as-quote {
  margin: 0 0 1.5rem; font-size: var(--as-step-3); font-weight: 300; line-height: 1.22;
  font-style: italic; color: var(--as-ink); max-width: 16em;
}
.as-star { width: 2rem; height: 2rem; color: #A98E62; margin-bottom: 1.25rem; }
@media (min-width: 56em) { .as-approach { grid-template-columns: 1.1fr .9fr; } }

/* ---------- Home: about teaser ---------- */
.as-intro { display: grid; gap: 2rem; align-items: center; }
.as-intro__photo { margin: 0; width: min(100%, 17rem); }
.as-intro__photo img { aspect-ratio: 1; object-fit: cover; border-radius: var(--as-radius); }
@media (min-width: 46em) { .as-intro { grid-template-columns: 17rem 1fr; gap: clamp(2rem, 5vw, 4rem); } }

/* ---------- Section heading row ---------- */
.as-heading-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 2rem; margin-bottom: 1.5rem; }
.as-heading-row h2 { margin: 0; }

/* ---------- Blog list ---------- */
.as-posts { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--as-line); }
.as-post {
  display: grid; grid-template-columns: 7.5rem 1fr; gap: 1.25rem; align-items: center;
  padding-block: 1.4rem; border-top: 1px solid var(--as-line);
}
.as-post__thumb { display: block; overflow: hidden; border-radius: var(--as-radius); }
.as-post__thumb img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 500ms var(--as-ease); }
.as-post:hover .as-post__thumb img { transform: scale(1.035); }
.as-post__title { font-size: var(--as-step-1); line-height: 1.3; margin: 0 0 .3rem; }
.as-post__title a { color: var(--as-ink); text-decoration: none; }
.as-post__title a:hover { color: var(--as-lapis); text-decoration: underline; text-decoration-thickness: 1px; }
@media (min-width: 40em) { .as-post { grid-template-columns: 13rem 1fr; gap: 2rem; } .as-post__title { font-size: var(--as-step-2); } }

/* ---------- Blog post ----------
   Works for the static post pages and, in WordPress, for the Single Posts
   template in wordpress-snippets/16-single-post-template.html. Post text keeps
   WordPress's own block classes, so a few rules use !important to win over
   WordPress's preset font sizes. */
.as-band--post .as-band__title { font-size: var(--as-step-3); font-weight: 300; line-height: 1.14; max-width: 22em; margin-bottom: .45em; }
.as-article__crumb { margin: 0 0 1rem; font-family: var(--as-sans); font-size: var(--as-step--1); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.as-article__crumb a { color: var(--as-sand); text-decoration: none; }
.as-article__crumb a:hover { color: var(--as-sand-light); text-decoration: underline; }
.as-article__meta { margin: 0; font-family: var(--as-sans); font-size: var(--as-step--1); color: var(--as-mist); }

.as-article { max-width: 46rem; padding-block: clamp(2.5rem, 6vw, 4rem) var(--as-section); }
.as-article__hero { margin: 0 0 clamp(2rem, 5vw, 3rem); }
.as-article__hero img { width: 100%; border-radius: var(--as-radius); }
.as-article__hero--natural img { width: auto; margin-inline: auto; border: 1px solid var(--as-line); }

.as-article__body { line-height: 1.7; overflow-wrap: break-word; }
.as-article__body > * { max-width: none; margin-top: 0; }
.as-article__body p, .as-article__body ul, .as-article__body ol { margin-bottom: 1.15em; }
.as-article__body h2,
.as-article__body .has-large-font-size,
.as-article__body .has-x-large-font-size {
  font-family: var(--as-serif); font-size: var(--as-step-2) !important; font-weight: 400; line-height: 1.25;
  letter-spacing: -0.01em; color: var(--as-ink); margin: 2em 0 .6em; text-wrap: balance;
}
.as-article__body > :first-child { margin-top: 0; }
.as-article__body .has-medium-font-size { font-size: var(--as-step-1) !important; line-height: 1.6; }
.as-article__body .has-text-align-right { text-align: right; }
.as-article__body ul, .as-article__body ol { padding-left: 1.35em; }
.as-article__body li { margin-bottom: .45em; padding-left: .2em; }
.as-article__body li > ul, .as-article__body li > ol { margin: .45em 0 0; }
.as-article__body ul li::marker { color: var(--as-sand-dot); }
.as-article__body ol li::marker { font-family: var(--as-sans); font-size: .85em; font-weight: 600; color: var(--as-river); }
.as-article__body hr { height: 0; margin: 2.2em 0; border: 0; border-top: 1px solid var(--as-line); opacity: 1; }
.as-article__body blockquote { margin: 2em 0; padding: .1em 0 .1em 1.4em; border-left: 2px solid var(--as-sand-dot); color: var(--as-river); }
.as-article__body blockquote.has-medium-font-size { font-size: inherit !important; }
.as-article__body blockquote > :last-child { margin-bottom: 0; }
.as-article__body figure { margin: 2.2em 0; }
.as-article__body figure img { margin-inline: auto; border-radius: var(--as-radius); }
.as-article__body figure.is-resized img { max-width: min(100%, 22rem); }
.as-article__body figcaption { margin-top: .6em; font-family: var(--as-sans); font-size: var(--as-step--1); color: var(--as-river); text-align: center; }
.as-article__body .wp-block-columns { display: grid; gap: 1.25rem; margin: 0 0 2.2em; }
.as-article__body .wp-block-column { min-width: 0; }
.as-article__body .wp-block-column > figure { margin: 0; }
.as-article__body .wp-block-columns img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
@media (min-width: 36em) { .as-article__body .wp-block-columns { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); } }
.as-article__body .twitter-tweet {
  margin: 0; padding: 1.1rem 1.3rem; border: 1px solid var(--as-line); border-radius: var(--as-radius);
  background: var(--as-surface); color: var(--as-ink); font-family: var(--as-sans); font-size: 1rem; line-height: 1.6;
}
.as-article__body .twitter-tweet p { margin-bottom: .6em; }

.as-article__note { margin: 3rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--as-line); font-family: var(--as-sans); font-size: var(--as-step--1); color: var(--as-river); }

.as-article__nav, .as-article__wpnav { display: grid; gap: 1rem; margin-top: 2.5rem; }
.as-article__nav-link, .as-article__wpnav a {
  display: block; height: 100%; padding: 1.1rem 1.25rem; text-decoration: none; color: var(--as-ink);
  background: var(--as-surface); border: 1px solid var(--as-line); border-radius: var(--as-radius);
  transition: border-color 200ms var(--as-ease), color 200ms var(--as-ease), transform 200ms var(--as-ease);
}
.as-article__nav-link:hover, .as-article__wpnav a:hover { color: var(--as-lapis); border-color: var(--as-lapis); text-decoration: none; transform: translateY(-1px); }
.as-article__nav-label, .as-article__wpnav .post-navigation-link__label {
  display: block; margin-bottom: .3rem; font-family: var(--as-sans); font-size: var(--as-step--1);
  font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--as-river);
}
.as-article__nav-title, .as-article__wpnav .post-navigation-link__title { display: block; font-family: var(--as-serif); font-size: var(--as-step-1); line-height: 1.3; }
@media (min-width: 40em) {
  .as-article__nav, .as-article__wpnav { grid-template-columns: 1fr 1fr; }
  .as-article__nav-link--older, .as-article__wpnav .post-navigation-link-previous { grid-column: 2; text-align: right; }
}

.as-subscribe {
  display: grid; gap: 1.5rem; align-items: center;
  margin-top: clamp(3rem, 6vw, 4.5rem); padding: clamp(1.5rem, 4vw, 2.5rem);
  background: var(--as-surface); border: 1px solid var(--as-line); border-radius: var(--as-radius);
}
.as-subscribe__img { width: 6.5rem; height: 6.5rem; border-radius: 50%; object-fit: cover; }
.as-subscribe h2 { font-size: var(--as-step-2); margin-bottom: .3rem; }
.as-subscribe p { margin: 0; }
.as-inline-form { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.as-inline-form .as-input { flex: 1 1 14rem; }
.as-inline-form__status { flex-basis: 100%; margin: 0; }
.as-inline-form__status:empty { display: none; }
@media (min-width: 46em) { .as-subscribe { grid-template-columns: auto 1fr; gap: 2rem; } }

/* ---------- Lists ---------- */
.as-list { list-style: none; padding: 0; margin: 0 0 1.5rem; display: grid; gap: .6rem; }
.as-list li { position: relative; padding-left: 1.35rem; }
.as-list--cols { gap: .6rem 2.5rem; }
.as-list--nested { margin: .6rem 0 0; gap: .45rem; font-size: .96em; }
@media (min-width: 46em) { .as-list--cols { grid-template-columns: 1fr 1fr; } }

/* ---------- About page ---------- */
.as-about { display: grid; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.as-about__photo { margin: 0; }
.as-about__photo img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; object-position: 50% 30%; border-radius: var(--as-radius); }
.as-about__body > p { max-width: var(--as-measure); }
.as-about__group { margin-top: 2.75rem; padding-top: 1.5rem; border-top: 1px solid var(--as-line); }
.as-about__group h2 { font-size: var(--as-step-2); margin-bottom: 1rem; }
@media (min-width: 52em) {
  .as-about { grid-template-columns: minmax(16rem, .8fr) 1.2fr; }
  .as-about__photo { position: sticky; top: calc(var(--as-header-h) + 2rem); }
}
@media (max-width: 51.99em) { .as-about__photo { width: min(100%, 24rem); } }

/* ---------- Patient services ---------- */
/* Video card: a still from the recording, linking out to its host (MAPS does not allow embedding) */
.as-video { margin: clamp(2.5rem, 5vw, 3.5rem) 0 0; max-width: 48rem; }
.as-video__link {
  position: relative; overflow: hidden; isolation: isolate;
  display: grid; grid-template-rows: auto 1fr auto; gap: .75rem;
  min-height: 20rem; padding: clamp(1rem, 3vw, 1.6rem);
  background: var(--as-abyss); color: var(--as-pearl); text-decoration: none;
  border-radius: var(--as-radius);
}
.as-video__img {
  position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%;
  object-fit: cover; object-position: 46% 35%;
  transition: transform 700ms var(--as-ease);
}
.as-video__link::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to top, rgba(15, 27, 45, .94) 0%, rgba(15, 27, 45, .55) 38%, rgba(15, 27, 45, .08) 62%, rgba(15, 27, 45, .45) 100%);
}
.as-video__eyebrow { font-family: var(--as-sans); font-size: var(--as-step--1); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--as-sand); text-shadow: 0 1px 8px rgba(0, 0, 0, .5); }
.as-video__bottom { grid-row: 3; display: flex; align-items: center; gap: clamp(.85rem, 2.5vw, 1.25rem); }
.as-video__play {
  flex: none; display: grid; place-items: center;
  width: 3.75rem; height: 3.75rem; border-radius: 50%; background: var(--as-sand); color: var(--as-abyss);
  box-shadow: 0 0 0 .5rem rgba(214, 196, 163, .18);
  transition: transform 250ms var(--as-ease), background-color 250ms var(--as-ease), box-shadow 250ms var(--as-ease);
}
.as-video__play svg { width: 1.5rem; height: 1.5rem; margin-left: .2rem; }
.as-video__text { display: grid; gap: .3rem; }
.as-video__title { font-family: var(--as-serif); font-size: var(--as-step-1); line-height: 1.25; }
.as-video__cta { font-family: var(--as-sans); font-size: var(--as-step--1); color: var(--as-mist); }
.as-video__link:hover { color: var(--as-pearl); text-decoration: none; }
.as-video__link:hover .as-video__img { transform: scale(1.03); }
.as-video__link:hover .as-video__play { transform: scale(1.06); background: var(--as-sand-light); box-shadow: 0 0 0 .7rem rgba(214, 196, 163, .24); }
.as-video figcaption { margin-top: .75rem; }
@media (min-width: 40em) { .as-video__link { aspect-ratio: 16 / 9; min-height: 0; } .as-video__title { font-size: var(--as-step-2); } }
@media (prefers-reduced-motion: reduce) { .as-video__link:hover .as-video__img { transform: none; } }

/* When a page ends on a shaded section, carry that shade behind the footer wave */
main:has(> .as-section--alt:last-child) + .as-wave--top { background: var(--as-stone-deep); }

.as-split { display: grid; gap: 2.5rem; }
@media (min-width: 52em) { .as-split { grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 6vw, 5rem); } }
.as-split h2 { font-size: var(--as-step-2); }

.as-photo-band { margin: 0; }
.as-photo-band img { width: 100%; aspect-ratio: 5 / 2; object-fit: cover; border-radius: var(--as-radius); }
@media (max-width: 40em) { .as-photo-band img { aspect-ratio: 4 / 3; } }
.as-caption { margin-top: .6rem; }

.as-steps { list-style: none; counter-reset: as-step; padding: 0; margin: 2rem 0; display: grid; gap: 1.5rem; }
.as-steps li { counter-increment: as-step; display: grid; grid-template-columns: 2.75rem 1fr; gap: 1rem; align-items: baseline; align-content: start; }
.as-steps li::before {
  content: counter(as-step); font-family: var(--as-serif); font-size: 2rem; font-weight: 300; line-height: 1; color: #8A7148;
}
@media (min-width: 52em) { .as-steps { grid-template-columns: repeat(2, 1fr); gap: 2rem 2.5rem; } .as-steps li { grid-template-columns: 1fr; gap: .5rem; } }
@media (min-width: 72em) { .as-steps { grid-template-columns: repeat(4, 1fr); gap: 2rem; } }

.as-approach-text { max-width: var(--as-measure); }
.as-approach--top { align-items: start; }
@media (min-width: 56em) { .as-approach--top .as-approach__media { position: sticky; top: calc(var(--as-header-h) + 2rem); } }
.as-approach-text p:first-of-type { font-size: var(--as-step-1); line-height: 1.55; }

.as-pay { display: grid; gap: 2rem; margin-bottom: 2.5rem; }
@media (min-width: 46em) { .as-pay { grid-template-columns: 1fr 1fr; } }
.as-pay h3, .as-gfe h3 { font-size: var(--as-step-1); font-weight: 500; margin-bottom: .4rem; }
.as-pay p { margin: 0; }
.as-gfe {
  max-width: 46rem; padding: clamp(1.5rem, 4vw, 2.25rem);
  background: var(--as-surface); border: 1px solid var(--as-line); border-left: 3px solid var(--as-lapis); border-radius: var(--as-radius);
}
.as-gfe ul { padding-left: 1.2rem; margin-bottom: 1rem; }
.as-gfe li { margin-bottom: .4rem; }
.as-gfe p:last-child { margin-bottom: 0; }

.as-policies { margin: 0; border-top: 1px solid var(--as-line); }
.as-policy { display: grid; gap: .4rem 2.5rem; padding-block: 1.5rem; border-bottom: 1px solid var(--as-line); }
.as-policy dt { font-family: var(--as-serif); font-size: var(--as-step-1); font-weight: 500; line-height: 1.3; }
.as-policy dd { margin: 0; max-width: var(--as-measure); }
.as-policy dd p:last-child { margin-bottom: 0; }
@media (min-width: 52em) { .as-policy { grid-template-columns: 15rem 1fr; } }

/* ---------- Expert consultation ---------- */
.as-consult-intro { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.as-consult-intro__photo { margin: 0; width: min(100%, 22rem); }
.as-consult-intro__photo img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--as-radius); }
.as-lede-dark { font-size: var(--as-step-1); line-height: 1.55; }
@media (min-width: 52em) { .as-consult-intro { grid-template-columns: 1.2fr .8fr; } .as-consult-intro__photo { justify-self: end; } }

.as-audiences { display: grid; gap: 2.5rem; }
.as-audience { padding-top: 1.5rem; border-top: 2px solid var(--as-abyss); }
.as-audience h3 { font-size: var(--as-step-2); margin-bottom: .5rem; }
.as-audience > p { color: var(--as-river); }
@media (min-width: 60em) { .as-audiences { grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 4vw, 3.5rem); } }

.as-cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; margin-top: 2.5rem; }
.as-cta-row p { margin: 0; }

/* ---------- Affiliations ---------- */
.as-affiliations { text-align: center; }
.as-affiliations h2 { font-size: var(--as-step-2); margin-bottom: 2.25rem; }
.as-aff-list {
  list-style: none; margin: 0 auto; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 12.5rem)); justify-content: center;
  gap: 2rem clamp(1rem, 4vw, 3rem);
}
@media (min-width: 60em) { .as-aff-list { grid-template-columns: repeat(4, minmax(0, 12.5rem)); } }
.as-aff { display: flex; flex-direction: column; align-items: center; gap: .35rem; color: var(--as-ink); text-decoration: none; }
.as-aff:hover { color: var(--as-ink); text-decoration: none; }
.as-aff__logo {
  display: grid; place-items: center; width: 100%; height: clamp(5.5rem, 22vw, 7.25rem); margin-bottom: .6rem;
  background: #fff; border: 1px solid var(--as-line); border-radius: var(--as-radius);
  transition: border-color 250ms var(--as-ease);
}
.as-aff__logo img {
  max-height: 5.5rem; max-width: 84%; width: auto; object-fit: contain;
  filter: grayscale(1) contrast(1.05); opacity: .78;
  transition: filter 300ms var(--as-ease), opacity 300ms var(--as-ease);
}
.as-aff:hover .as-aff__logo, .as-aff:focus-visible .as-aff__logo { border-color: var(--as-lapis); }
.as-aff:hover .as-aff__logo img, .as-aff:focus-visible .as-aff__logo img { filter: none; opacity: 1; }
.as-aff__org { font-family: var(--as-sans); font-size: .95rem; font-weight: 600; line-height: 1.35; }
.as-aff__role { font-family: var(--as-sans); font-size: var(--as-step--1); color: var(--as-river); line-height: 1.4; }
.as-aff-item { display: flex; flex-direction: column; align-items: center; gap: .2rem; }
.as-aff__role-link { text-decoration: underline; text-decoration-color: rgba(84, 95, 93, .4); text-underline-offset: .2em; }
.as-aff__role-link:hover { color: var(--as-lapis); text-decoration-color: currentColor; }

/* ---------- Footer and contact form ---------- */
.as-footer { background: var(--as-abyss); color: var(--as-mist); }
.as-footer__main { display: grid; gap: 2.5rem; padding-block: clamp(3rem, 6vw, 5rem) clamp(2.5rem, 5vw, 4rem); }
.as-footer h2 { color: var(--as-pearl); font-size: var(--as-step-3); }
.as-footer__intro p { max-width: 28em; }
.as-footer__note {
  margin-top: 1.5rem; padding: 1rem 1.15rem;
  border: 1px solid var(--as-navy-line); border-left: 3px solid var(--as-sand); border-radius: var(--as-radius);
  font-family: var(--as-sans); font-size: .95rem; line-height: 1.55; color: #D5DBE2;
}
.as-footer__note strong { color: var(--as-pearl); }
.as-footer a { color: var(--as-sand); }
.as-footer a:hover { color: var(--as-sand-light); }
@media (min-width: 56em) { .as-footer__main { grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 7vw, 6rem); } }

.as-form { display: grid; gap: 1.25rem; }
.as-field { display: grid; gap: .4rem; }
.as-label { font-family: var(--as-sans); font-size: .95rem; font-weight: 500; color: var(--as-pearl); }
.as-req { color: var(--as-sand); }
.as-input, .as-select {
  width: 100%; min-height: 3rem; padding: .7rem .9rem;
  font-family: var(--as-sans); font-size: 1rem; color: var(--as-pearl);
  background: var(--as-navy); border: 1px solid var(--as-navy-line); border-radius: var(--as-radius);
  transition: border-color 180ms var(--as-ease), background-color 180ms var(--as-ease);
}
.as-input::placeholder { color: #8592A1; }
.as-label__opt { font-weight: 400; color: var(--as-mist); }
.as-input:hover, .as-select:hover { border-color: #46597A; }
.as-input:focus, .as-select:focus { outline: none; border-color: var(--as-sand); background: #1C2F48; box-shadow: 0 0 0 1px var(--as-sand); }
.as-select {
  appearance: none; -webkit-appearance: none; padding-right: 2.5rem; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23D6C4A3' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .9rem center; background-size: .75rem;
}
.as-select option { color: var(--as-ink); background: #fff; }
.as-field__hint { margin: 0; font-family: var(--as-sans); font-size: .875rem; color: var(--as-mist); }
.as-textarea { min-height: 7.5rem; resize: vertical; line-height: 1.5; }
.as-field__count { margin: 0; font-family: var(--as-sans); font-size: .875rem; color: var(--as-mist); text-align: right; font-variant-numeric: tabular-nums; }
.as-field__count.is-near { color: var(--as-sand); }
.as-field__error { margin: 0; font-family: var(--as-sans); font-size: .875rem; color: #F2B8A0; }
.as-field__error:empty { display: none; }
.as-field.has-error .as-input, .as-field.has-error .as-select { border-color: #E39A7C; }
.as-form__status { font-family: var(--as-sans); font-size: .95rem; color: var(--as-pearl); }
.as-form__status { margin: 0; }
.as-form__status:not(:empty) { padding: .85rem 1rem; border: 1px solid var(--as-navy-line); border-radius: var(--as-radius); }
.as-form .as-btn { justify-self: start; }

/* Light-background version of inputs (blog subscribe box) */
.as-input--light { color: var(--as-ink); background: #fff; border-color: var(--as-line); }
.as-input--light::placeholder { color: #7A817F; }
.as-input--light:focus { border-color: var(--as-lapis); background: #fff; box-shadow: 0 0 0 1px var(--as-lapis); }

.as-footer__base {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem;
  padding-block: 1.5rem 2rem; border-top: 1px solid var(--as-navy-line);
  font-family: var(--as-sans); font-size: var(--as-step--1); line-height: 1.5;
}
.as-footer__links { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; list-style: none; margin: 0; padding: 0; }
.as-footer__links a { color: var(--as-mist); text-decoration: none; }
.as-footer__links a:hover { color: var(--as-pearl); text-decoration: underline; }
.as-footer__legal { margin: 0; }
.as-footer__disclaimer { flex-basis: 100%; max-width: 62em; margin: 0; font-size: .8125rem; line-height: 1.6; color: var(--as-mist); }

/* ---------- WordPress bridges ----------
   Used only on the WordPress site; they do nothing in the static preview.
   Snippets 01-17 already carry these class names. */

/* The header template part wraps the header, so it is the part that stays pinned
   (below the admin toolbar when you are logged in; on phones that toolbar scrolls away) */
.wp-site-blocks > .wp-block-template-part:has(> .as-header) { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
@media (max-width: 600px) { .wp-site-blocks > .wp-block-template-part:has(> .as-header) { top: 0; } }

/* When a page ends on a shaded section, carry that shade behind the footer wave */
body:has(.as-page-content > .as-section--alt:last-child) .as-wave--top { background: var(--as-stone-deep); }

/* The theme outlines anything clicked; keep outlines for keyboard focus only */
.wp-site-blocks :focus:not(:focus-visible) { outline: none; }

/* The theme thins and tightens link underlines; restore this design's */
body a { text-underline-offset: 0.2em; }
body a:not([class]):hover { text-decoration-thickness: 2px !important; }

/* Theme block styles that would otherwise win over the post template's classes */
.as-band .as-article__meta { color: var(--as-mist); font-size: var(--as-step--1); }
.as-article__wpnav .wp-block-post-navigation-link { font-size: inherit; }

/* Contact form plugin (WPForms, Jetpack Forms, Contact Form 7), placed in the "as-form-plugin" group */
.as-form-plugin label, .as-form-plugin legend { font-family: var(--as-sans); font-size: .95rem; font-weight: 500; color: var(--as-pearl); }
.as-form-plugin input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.as-form-plugin select, .as-form-plugin textarea {
  width: 100%; min-height: 3rem; padding: .7rem .9rem;
  font-family: var(--as-sans); font-size: 1rem; color: var(--as-pearl);
  background: var(--as-navy); border: 1px solid var(--as-navy-line); border-radius: var(--as-radius);
}
.as-form-plugin input:focus, .as-form-plugin select:focus, .as-form-plugin textarea:focus { outline: none; border-color: var(--as-sand); box-shadow: 0 0 0 1px var(--as-sand); }
.as-form-plugin button[type="submit"], .as-form-plugin input[type="submit"] {
  min-height: 3rem; padding: .8rem 1.4rem; border: 0; border-radius: var(--as-radius); cursor: pointer;
  font-family: var(--as-sans); font-size: 1rem; font-weight: 600; background: var(--as-sand); color: var(--as-abyss);
}
.as-form-plugin button[type="submit"]:hover, .as-form-plugin input[type="submit"]:hover { background: var(--as-sand-light); }
.as-form-plugin button[type="submit"] { width: auto; max-width: 100%; }
.as-form-plugin ::placeholder, .wp-site-blocks .as-form-plugin input::placeholder, .wp-site-blocks .as-form-plugin textarea::placeholder { color: #8592A1; }
.as-form-plugin .wpforms-field-limit-text, .as-form-plugin .as-field__count { margin: .35rem 0 0; font-family: var(--as-sans); font-size: .875rem; color: var(--as-mist); text-align: right; }

/* Blog subscribe box: the Subscribe block, placed in the "as-subscribe__body" group */
.as-subscribe__body form { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; margin-top: 1rem; }
.as-subscribe__body form > * { margin: 0; }
.as-subscribe__body form > :has(input[type="email"]) { flex: 1 1 14rem; }
.as-subscribe__body input[type="email"] {
  width: 100%; min-height: 3rem; padding: .7rem .9rem !important; font-family: var(--as-sans); font-size: 1rem !important; color: var(--as-ink);
  background: #fff; border: 1px solid var(--as-line) !important; border-radius: var(--as-radius) !important;
}
.as-subscribe__body input[type="email"]:focus { outline: none; border-color: var(--as-lapis) !important; box-shadow: 0 0 0 1px var(--as-lapis); }
.as-subscribe__body button[type="submit"] {
  min-height: 3rem; padding: .8rem 1.4rem !important; border: 0 !important; border-radius: var(--as-radius) !important; cursor: pointer;
  font-family: var(--as-sans); font-size: 1rem !important; font-weight: 600; background: var(--as-lapis); color: #fff;
}
.as-subscribe__body button[type="submit"]:hover { background: var(--as-lapis-deep); }

/* Blog lists: Query Loop blocks with the class "as-wp-posts" */
.as-wp-posts .wp-block-post-template { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--as-line); }
.as-wp-posts .wp-block-post-template > li {
  display: grid; grid-template-columns: 7.5rem 1fr; column-gap: 1.25rem; align-content: center;
  padding-block: 1.4rem; border-top: 1px solid var(--as-line); margin: 0;
}
.as-wp-posts .wp-block-post-featured-image { grid-row: 1 / span 2; margin: 0; overflow: hidden; border-radius: var(--as-radius); }
.as-wp-posts .wp-block-post-featured-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.as-wp-posts .wp-block-post-title { font-family: var(--as-serif); font-size: var(--as-step-1); font-weight: 400; line-height: 1.3; margin: 0 0 .3rem; align-self: end; }
.as-wp-posts .wp-block-post-title a { color: var(--as-ink); text-decoration: none; }
.as-wp-posts .wp-block-post-title a:hover { color: var(--as-lapis); text-decoration: underline; }
.as-wp-posts .wp-block-post-date { font-family: var(--as-sans); font-size: var(--as-step--1); color: var(--as-river); align-self: start; }
@media (min-width: 40em) {
  .as-wp-posts .wp-block-post-template > li { grid-template-columns: 13rem 1fr; column-gap: 2rem; }
  .as-wp-posts .wp-block-post-title { font-size: var(--as-step-2); }
}

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-delay: 0s !important; transition-duration: .001ms !important; }
}
