/* ==========================================================================
   Grapple · Astra + core-block neutralisation
   Generated. Do not edit this block in the client stylesheet; edit the
   template at grapple/css/astra-reset.css.tmpl and rebuild.

   Everything below is UNDOING A DEFAULT, not styling anything. Each rule is
   here because it broke a real build. Scope: .sc-grapple
   ========================================================================== */

.sc-grapple{overflow-x:clip}

/* Astra prints its body-font-size customizer setting as a ROOT size, inline and
   responsive: html{font-size:106.25%} on desktop, 96.9% under 921px. Every rem
   in a design built against 16px is then 6% too big on desktop and 3% too small
   on tablets and phones, uniformly, which is exactly the kind of drift nobody
   sees and every measurement against the mockup does. Pin the root to 16px. */
html:has(> body.sc-grapple){font-size:100%}

/* Astra boxes .entry-content and caps its width. Full-bleed needs both gone. */
.sc-grapple .site-content .ast-container,
.sc-grapple .entry-content{max-width:none;padding-left:0;padding-right:0;margin:0}
.sc-grapple .site-main{padding:0}
.sc-grapple .entry-content > .alignfull{
  margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
  max-width:100vw;width:100vw;
}
.sc-grapple .ast-page-builder-template .entry-header{display:none}

/* Core's flow layout puts a block-gap between sibling blocks. Between two
   full-bleed bands that reads as a seam of page background, so sections butt
   directly against each other and own their own vertical rhythm. */
.sc-grapple .entry-content > *{margin-block-start:0;margin-block-end:0}

/* Astra sets an explicit heading colour, so inherited white renders BLACK.
   Colour is handed back to the cascade; the client sheet paints it. */
.sc-grapple h1,.sc-grapple h2,.sc-grapple h3,.sc-grapple h4{margin:0;color:inherit}

/* Astra's dynamic CSS prints, inline and AFTER this file:
     @media (max-width:767px){ h1,h2 { font-size:clamp(1.5rem,4.5vw,3.5rem)!important } }
   A bare !important on h1/h2 silently shrinks EVERY heading on mobile, whatever
   type scale the design set, and it is invisible on desktop. Only another
   !important can beat it. So the scale is declared once as custom properties by
   the client sheet and applied here, important, at scope specificity: one
   !important in the whole build instead of one per heading rule.
   Scoped to .entry-content, NOT the whole body: the scope class lives on
   <body>, so an unscoped !important here also repaints the site header and
   footer, which have their own much smaller type. */
.sc-grapple .entry-content h1{font-size:var(--h1)!important}
.sc-grapple .entry-content h2{font-size:var(--h2)!important}
.sc-grapple .entry-content h3{font-size:var(--h3)!important}

/* THE SPECIFICITY OF A RESET. Each rule below wraps ONLY THE SCOPE in :where(),
   so it carries exactly the specificity of the default it is clearing and wins
   on source order (this file loads after core and Astra). That is the band that
   works: above core's `.wp-block-cover` (0,1,0), below every design rule
   `.rh-grapple .rh-x` (0,2,0).
     - Plain `.sc-grapple .x` (0,2,0) was too strong: `ul.wp-block-list` outranked
       the design's `.rh-rail__list` and zeroed its padding.
     - Wrapping the WHOLE selector, `:where(.sc-grapple .x)` (0,0,0), was too weak:
       core's cover padding and 430px floor, core's figure margin and Astra's
       `ul{list-style:disc}` all came back, and a mockup review caught every one.
   Where Astra's default is itself (0,2,0), the reset matches it at (0,2,0). */

/* core column gaps / stacking, replaced by each section's own grid rhythm */
:where(.sc-grapple) .wp-block-columns{margin-bottom:0;gap:0}
:where(.sc-grapple) .wp-block-column{min-width:0}

/* core cover defaults: 1em padding and a 430px floor (0,1,0) */
:where(.sc-grapple) .wp-block-cover{padding:0;min-height:0}
:where(.sc-grapple) .wp-block-cover__inner-container{width:100%;max-width:none}
:where(.sc-grapple) .wp-block-cover .wp-block-cover__background{display:none}
/* Astra pads every top-level group, columns and cover block at (0,2,0), from
   `--wp--custom--ast-default-block-*-padding`: 80px on desktop, 30px on phones,
   and 48px on top of a phone cover. It put Steve's section headings 51px right of
   the mockup at 1440, interior hero copy 30px in from Ruesch's gutter, and a
   closing CTA card 42px low at 375. Every design band owns its own padding. */
:where(.sc-grapple) .entry-content > .wp-block-group,
:where(.sc-grapple) .entry-content > .wp-block-columns,
:where(.sc-grapple) .entry-content > .wp-block-cover{padding:0}

/* Astra prints an inline `z-index:1` on cover inner containers, and it lands
   after this file in the cascade. CSS gradient scrims also sit at z-index 1,
   so without this they paint OVER the copy instead of under it. Specificity
   cannot win against a later same-weight rule, hence !important. */
.sc-grapple .wp-block-cover > .wp-block-cover__inner-container{z-index:2!important}

/* Flow layout adds a block-gap between every sibling inside a cover. Wrapped in
   :where() so this drops to ZERO specificity: a reset must never outrank the
   real rules it exists to clear. Without :where() this silently zeroes a hero
   subheading's margin-top and butts the copy against the headline. */
:where(.sc-grapple .wp-block-cover .is-layout-flow) > * + *{margin-block-start:0}

/* Core centres cover content and sizes the inner container to its content, so
   `justify-content:flex-end` has nothing to push against and copy floats in the
   middle of the tile. Stretch it to full height instead. */
.sc-grapple .wp-block-cover{align-items:stretch}
.sc-grapple .wp-block-cover > .wp-block-cover__inner-container{flex:1 1 auto}

/* Astra injects, AFTER this file and at specificity 0,3,2:
     body .wp-block-cover:not(.has-text-color.has-link-color) p
       { color: var(--ast-global-color-3) }
   That repaints every paragraph inside every cover to Astra's grey, which is
   what washes text out over photography. A later rule of equal weight cannot be
   beaten on specificity, so this is important by necessity. Client rules that
   set a specific colour must qualify by element (p.foo) to stay above it. */
/* A cover that carries has-text-color + has-link-color is exempt from Astra's
   rule above, so the design's own paragraph colours (an eyebrow at 88% white)
   apply with no !important at all. Grapple's converter marks covers that way; a
   hand-built cover without the classes keeps this override.
   The exemption sits in :where() so the rule stays at (0,2,1). A bare
   :not(.has-text-color.has-link-color) counts as (0,2,0) by itself, lifted the rule
   to (0,4,1), and silently beat every element-qualified !important colour a
   hand-built design sets on cover paragraphs (Ruesch: `.rh-hero p.rh-hero__sub`,
   (0,3,1), went from 92% white to Astra's grey-white; caught by a style snapshot). */
.sc-grapple .wp-block-cover:where(:not(.has-text-color.has-link-color)) p{color:inherit!important}

/* core/button chrome */
:where(.sc-grapple) .wp-block-buttons{gap:0}
:where(.sc-grapple) .wp-block-button .wp-block-button__link{border-radius:0;text-decoration:none}

/* core/list default indent */
:where(.sc-grapple) ul.wp-block-list{margin:0;padding:0;list-style:none}

/* core/image figure margins */
:where(.sc-grapple) figure.wp-block-image{margin:0}
:where(.sc-grapple) figure.wp-block-image img{display:block;width:100%}

/* core: `.wp-block-image :where(figcaption){margin:.5em 0 1em}` (0,1,0). A design's
   figcaption has the UA's zero. (0,1,1): above core, below any design rule
   (`.sc-site .sc-chapter__figure figcaption`, (0,2,1)). */
:where(.sc-grapple .entry-content) .wp-block-image figcaption{margin:0}

/* Astra's element defaults on every blockquote: margin 1.5em, padding, italic. A
   core quote wears the design's quote class on the <blockquote> itself, so it
   inherits all of them. (0,1,0): above Astra's `blockquote` (0,0,1), below every
   design quote rule. */
:where(.sc-grapple .entry-content) .wp-block-quote{padding:0;margin:0;font-style:normal}

/* Astra: `.wp-block-quote:not(.has-text-align-right):not(.has-text-align-center)
   {border-left:5px solid rgba(0,0,0,.05)}` at (0,3,0), a faint bar beside every
   quote. Matched at (0,3,0), wins on order. A design quote that HAS a left rule
   must state it at (0,3,0) or more (Steve: `.entry-content .wp-block-quote.sc-bquote`). */
:where(.sc-grapple) .wp-block-quote:not(.has-text-align-right):not(.has-text-align-center){border-left:0}

/* The `.entry-content > *` margin reset above also zeroes the UA's `margin:auto`
   on a top-level <dialog>, so an open modal sat pinned to the top of the screen. */
.sc-grapple .entry-content > dialog:modal{margin:auto}


/* ==========================================================================
   Grapple · converter pre layer. Generated from grapple/css/converter-pre.css.tmpl
   (cssbuild.py --layer pre). Loaded BEFORE mockup.css: every rule here undoes a
   WordPress or Astra default and must LOSE to the mockup's own rules on source
   order. A reset placed after the mockup silently killed mockup rules twice on
   Steve (a quote divider, link colours) and the review could not see either.
   Prefix sc-, scope .sc-grapple.
   ========================================================================== */

/* A <span> or a <div> of text that the converter had to make a paragraph never had
   a paragraph's margins in the mockup (mock2grapple marks it sc-p0). Any mockup
   rule that does give it a margin comes later and wins. */
.sc-site .sc-p0 { margin: 0; }

/* Astra gives every <button> `border-radius:4px` and a faint box-shadow
   (0 1px 2px rgba(0,0,0,.05)); a mockup's buttons have neither (the shadow drew a line
   under Steve's header dropdown labels; the radius rounded his hero pause button and
   past-sales filters, found by the review's button-box check). Fenced like the
   converter's element rules: Grapple content and the chrome, never third-party zones.
   Any mockup rule that rounds a button comes later and wins. */
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) button:where(:not(.sc-3p, .sc-3p *)) { box-shadow: none; border-radius: 0; }
/* ==========================================================================
   The Calley Group · pre-reset (hand-written), loaded BEFORE mockup.css.
   Resets that must lose to the mockup's own rules on source order, because they
   sit at the same specificity. Anything here is undoing a WordPress or Astra
   default, never styling.

   The generic resets that started here now live in Grapple (2026-09-24): Astra's
   top-level group/columns/cover padding, core figcaption margins and Astra's
   blockquote defaults in grapple/css/astra-reset.css.tmpl; `sc-p0` and the button
   box-shadow in grapple/css/converter-pre.css.tmpl. Only what names this mockup's
   own classes stays here.
   ========================================================================== */

/* core/quote puts the mockup's quote class on <blockquote> itself. Astra's element
   defaults for blockquote (margin, padding, italic) go; the mockup's own rules on the
   quote classes (a .quote--side border-top divider, .bquote's padding and rule) come
   after this and win on order. */
.sc-site .sc-quote, .sc-site .sc-bquote { margin: 0; padding: 0; border: 0; background: none; font-style: normal; }
/* Generated by grapple/mockcss.py from the approved mockup stylesheet.
   Do not edit: change the mockup, or the adaptation layer, and rebuild. */
:root {--sc-ink: #111111;
  --sc-graphite: #2a2a2a;
  --sc-stone: #5c5c5c;       
  --sc-mist: #f3f2f0;        
  --sc-fog: #e6e4e0;
  --sc-line: #d6d3cd;        
  --sc-paper: #ffffff;
  --sc-on-ink-muted: #b8b8b8;

  --sc-display: "Urbanist", "Helvetica Neue", Arial, sans-serif;
  --sc-body: "Figtree", "Helvetica Neue", Arial, sans-serif;

  --sc-wrap: 1440px;
  --sc-gutter: clamp(20px, 4.2vw, 72px);
  --sc-section-y: clamp(88px, 10vw, 168px);
  --sc-ease: cubic-bezier(.2, .7, .1, 1);
  --sc-slow: 900ms;
  --sc-hdr-pad: 3rem;         
  --sc-hdr-pad-stuck: 2.05rem;
  --sc-logo-h: 84px;
  --sc-logo-h-stuck: 70px;}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) *:where(:not(.sc-3p, .sc-3p *)), .sc-site :where(.sc-grapple .entry-content, .sc-chrome) *:where(:not(.sc-3p, .sc-3p *))::before, .sc-site :where(.sc-grapple .entry-content, .sc-chrome) *:where(:not(.sc-3p, .sc-3p *))::after {box-sizing: border-box;}
html:has(> body.sc-site) {-webkit-text-size-adjust: 100%; scroll-behavior: smooth;}
body.sc-site {margin: 0;
  background: var(--sc-paper);
  color: var(--sc-graphite);
  font-family: var(--sc-body);
  font-size: calc(17px * var(--sc-fs, 1));
  line-height: 1.7;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) img:where(:not(.sc-3p, .sc-3p *)), .sc-site :where(.sc-grapple .entry-content, .sc-chrome) video:where(:not(.sc-3p, .sc-3p *)) {display: block; max-width: 100%; height: auto;}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) a:where(:not(.sc-3p, .sc-3p *)) {color: inherit;}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) p:where(:not(.sc-3p, .sc-3p *)):where(:not(.sc-p0)) {margin: 0 0 1.1em;}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) p:last-child:where(:not(.sc-3p, .sc-3p *)):where(:not(.sc-p0)) {margin-bottom: 0;}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) ul:where(:not(.sc-3p, .sc-3p *)) {margin: 0; padding: 0; list-style: none;}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) button:where(:not(.sc-3p, .sc-3p *)) {font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer;}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) :focus-visible:where(:not(.sc-3p, .sc-3p *)) {outline: 2px solid currentColor; outline-offset: 4px;}
.sc-site .sc-wrap {width: 100%; max-width: var(--sc-wrap); margin: 0 auto; padding-inline: var(--sc-gutter);}
.sc-site .sc-sr {position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) h1:where(:not(.sc-3p, .sc-3p *)), .sc-site :where(.sc-grapple .entry-content, .sc-chrome) h2:where(:not(.sc-3p, .sc-3p *)), .sc-site :where(.sc-grapple .entry-content, .sc-chrome) h3:where(:not(.sc-3p, .sc-3p *)), .sc-site .sc-ftr__h {font-family: var(--sc-display); color: var(--sc-ink); margin: 0; font-weight: 300;}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) h1:where(:not(.sc-3p, .sc-3p *)) {font-weight: 200;
  font-size: calc(clamp(40px, 5.6vw, 92px) * var(--sc-fs, 1));
  line-height: 1.04;
  letter-spacing: .035em;
  text-transform: uppercase;--h1:calc(clamp(40px, 5.6vw, 92px) * var(--sc-fs, 1));}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) h2:where(:not(.sc-3p, .sc-3p *)) {font-size: calc(clamp(30px, 3.5vw, 56px) * var(--sc-fs, 1));
  line-height: 1.08;
  letter-spacing: .03em;
  text-transform: uppercase;--h2:calc(clamp(30px, 3.5vw, 56px) * var(--sc-fs, 1));}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) h3:where(:not(.sc-3p, .sc-3p *)) {font-size: calc(clamp(22px, 1.9vw, 30px) * var(--sc-fs, 1)); line-height: 1.2; letter-spacing: .01em;--h3:calc(clamp(22px, 1.9vw, 30px) * var(--sc-fs, 1));}
.sc-site .sc-eyebrow {font-family: var(--sc-display);
  font-weight: 600;
  font-size: calc(12.5px * var(--sc-fs, 1));
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--sc-stone);
  margin: 0 0 1.6rem;}
.sc-site .sc-lede {font-size: calc(clamp(18px, 1.35vw, 21px) * var(--sc-fs, 1)); line-height: 1.6; font-weight: 300; color: var(--sc-graphite);}
.sc-site .sc-on-ink {color: var(--sc-paper);}
.sc-site .sc-on-ink h2, .sc-site .sc-on-ink h3 {color: var(--sc-paper);}
.sc-site .sc-on-ink .sc-eyebrow {color: var(--sc-on-ink-muted);}
.sc-site a.sc-btn {display: inline-flex; align-items: center; justify-content: center; gap: .7em;
  min-height: 52px;
  padding: 16px 34px;
  border: 1px solid var(--sc-ink);
  color: var(--sc-ink);
  background: transparent;
  font-family: var(--sc-display);
  font-weight: 600;
  font-size: calc(12.5px * var(--sc-fs, 1));
  letter-spacing: .24em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 400ms var(--sc-ease), color 400ms var(--sc-ease), border-color 400ms var(--sc-ease);}
.sc-site .sc-btn > .wp-block-button__link {display: inline-flex; align-items: center; justify-content: center; gap: .7em; min-height: 52px; padding: 16px 34px; border: 1px solid var(--sc-ink); color: var(--sc-ink); background: transparent; font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; text-decoration: none; transition: background 400ms var(--sc-ease), color 400ms var(--sc-ease), border-color 400ms var(--sc-ease);}
.sc-site a.sc-btn:hover {background: var(--sc-ink); color: var(--sc-paper);}
.sc-site .sc-btn > .wp-block-button__link:hover {background: var(--sc-ink); color: var(--sc-paper);}
.sc-site a.sc-btn--light {border-color: var(--sc-paper); color: var(--sc-paper);}
.sc-site .sc-btn--light > .wp-block-button__link {border-color: var(--sc-paper); color: var(--sc-paper);}
.sc-site a.sc-btn--light:hover {background: var(--sc-paper); color: var(--sc-ink);}
.sc-site .sc-btn--light > .wp-block-button__link:hover {background: var(--sc-paper); color: var(--sc-ink);}
.sc-site .sc-acts {display: flex; flex-wrap: wrap; gap: 14px;}
.sc-site .sc-tlink {font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .24em;
  text-transform: uppercase; text-decoration: none; color: var(--sc-ink);
  display: inline-flex; align-items: center; gap: .8em; padding-block: 10px;}
.sc-site a.sc-tlink {text-decoration: none;}
.sc-site .sc-tlink::after {content: ""; width: 28px; height: 1px; background: currentColor; transition: width 400ms var(--sc-ease);}
.sc-site .sc-tlink:hover::after {width: 48px;}
.sc-site .sc-on-ink .sc-tlink, .sc-site .sc-tlink--light {color: var(--sc-paper);}
.sc-site .sc-hdr {position: fixed; inset: 0 0 auto 0; z-index: 50;
  padding-block: var(--sc-hdr-pad);
  background: transparent;
  transition: padding 500ms var(--sc-ease), background 500ms var(--sc-ease);}
.sc-site .sc-hdr.sc-is-stuck {padding-block: var(--sc-hdr-pad-stuck); background: var(--sc-paper);}
.sc-site .sc-hdr__in {display: flex; align-items: center; justify-content: space-between; gap: 32px;}
.sc-site .sc-brand {display: flex; align-items: center; gap: 22px; text-decoration: none; flex-shrink: 0; position: relative; z-index: 61;}
.sc-site a.sc-brand {text-decoration: none;}
.sc-site .sc-hdr.sc-menu-open .sc-brand .sc-on-dark {display: none;}
.sc-site .sc-hdr.sc-menu-open .sc-brand .sc-on-light {display: block;}
.sc-site .sc-brand__logo {height: var(--sc-logo-h); width: auto; transition: height 500ms var(--sc-ease);}
.sc-site .sc-brand__rule {width: 1px; height: 40px; background: currentColor; opacity: .5; color: var(--sc-paper); transition: height 500ms var(--sc-ease);}
.sc-site .sc-brand__yc {height: 30px; width: auto; transition: height 500ms var(--sc-ease);}
.sc-site .sc-hdr.sc-is-stuck .sc-brand__logo {height: var(--sc-logo-h-stuck);}
.sc-site .sc-hdr.sc-is-stuck .sc-brand__rule {height: 34px;}
.sc-site .sc-hdr.sc-is-stuck .sc-brand__yc {height: 26px;}
.sc-site .sc-brand .sc-on-dark {display: block;}
.sc-site .sc-brand .sc-on-light {display: none;}
.sc-site .sc-hdr.sc-is-stuck .sc-brand .sc-on-dark, .sc-site .sc-hdr--dark .sc-brand .sc-on-dark {display: none;}
.sc-site .sc-hdr.sc-is-stuck .sc-brand .sc-on-light, .sc-site .sc-hdr--dark .sc-brand .sc-on-light {display: block;}
.sc-site .sc-hdr.sc-is-stuck .sc-brand__rule, .sc-site .sc-hdr--dark .sc-brand__rule {color: var(--sc-ink); opacity: .3;}
.sc-site .sc-hdr:not(.sc-is-stuck):not(.sc-hdr--dark) .sc-brand__logo.sc-on-dark {filter: drop-shadow(0 1px 10px rgba(0,0,0,.35));}
.sc-site .sc-nav {display: flex; align-items: center; gap: clamp(20px, 2.4vw, 44px);}
.sc-site .sc-nav__list {display: flex; align-items: center; gap: clamp(18px, 2.2vw, 38px);}
.sc-site .sc-nav__item {position: relative;}
.sc-site .sc-nav__link, .sc-site .sc-nav__toggle {font-family: var(--sc-display); font-weight: 600; font-size: calc(13px * var(--sc-fs, 1)); letter-spacing: .22em;
  text-transform: uppercase; text-decoration: none; color: var(--sc-paper);
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  text-shadow: 0 1px 12px rgba(0,0,0,.35);
  transition: color 300ms var(--sc-ease);}
.sc-site a.sc-nav__link, .sc-site a.sc-nav__toggle {text-decoration: none;}
.sc-site .sc-nav__toggle svg {width: 10px; height: 6px;}
.sc-site .sc-hdr.sc-is-stuck .sc-nav__link, .sc-site .sc-hdr.sc-is-stuck .sc-nav__toggle, .sc-site .sc-hdr--dark .sc-nav__link, .sc-site .sc-hdr--dark .sc-nav__toggle {color: var(--sc-ink); text-shadow: none;}
.sc-site .sc-nav__sub {position: absolute; top: calc(100% + 10px); left: -26px; min-width: 250px;
  background: var(--sc-paper); padding: 16px 0;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity 300ms var(--sc-ease), transform 300ms var(--sc-ease), visibility 300ms;
  box-shadow: 0 18px 50px rgba(0,0,0,.12);}
.sc-site .sc-nav__sub::before {content: ""; position: absolute; inset: -12px 0 auto 0; height: 12px;}
.sc-site .sc-nav__item:hover .sc-nav__sub, .sc-site .sc-nav__item:focus-within .sc-nav__sub {opacity: 1; visibility: visible; transform: none;}
.sc-site .sc-nav__sub a {display: block; padding: 11px 26px; text-decoration: none; color: var(--sc-ink);
  font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .2em; text-transform: uppercase;}
.sc-site .sc-nav__sub a:hover {background: var(--sc-mist);}
.sc-site .sc-nav__cta {font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase;
  text-decoration: none; color: var(--sc-paper); border: 1px solid var(--sc-paper); padding: 14px 26px; min-height: 48px;
  display: inline-flex; align-items: center;
  transition: background 400ms var(--sc-ease), color 400ms var(--sc-ease), border-color 400ms var(--sc-ease);}
.sc-site a.sc-nav__cta {text-decoration: none;}
.sc-site .sc-nav__cta:hover {background: var(--sc-paper); color: var(--sc-ink);}
.sc-site .sc-hdr.sc-is-stuck .sc-nav__cta, .sc-site .sc-hdr--dark .sc-nav__cta {color: var(--sc-ink); border-color: var(--sc-ink);}
.sc-site .sc-hdr.sc-is-stuck .sc-nav__cta:hover, .sc-site .sc-hdr--dark .sc-nav__cta:hover {background: var(--sc-ink); color: var(--sc-paper);}
.sc-site .sc-burger {display: none; width: 48px; height: 48px; position: relative;}
.sc-site .sc-burger span {position: absolute; left: 11px; right: 11px; height: 1.5px; background: var(--sc-paper); transition: transform 300ms var(--sc-ease), opacity 300ms;}
.sc-site .sc-burger span:nth-child(1) {top: 17px;}
.sc-site .sc-burger span:nth-child(2) {top: 24px;}
.sc-site .sc-burger span:nth-child(3) {top: 31px;}
.sc-site .sc-hdr.sc-is-stuck .sc-burger span, .sc-site .sc-hdr--dark .sc-burger span {background: var(--sc-ink);}
@media (max-width: 1180px) {
  .sc-site .sc-brand__rule, .sc-site .sc-brand__yc {display: none !important;}
}
@media (max-width: 920px) {
  :root {--sc-logo-h: 64px; --sc-logo-h-stuck: 54px; --sc-hdr-pad: 1.6rem; --sc-hdr-pad-stuck: 1.1rem;}
  .sc-site .sc-burger {display: block; z-index: 60;}
  .sc-site .sc-nav {position: fixed; inset: 0; background: var(--sc-paper); flex-direction: column; align-items: stretch;
    justify-content: flex-start; gap: 0; padding: 120px var(--sc-gutter) 40px; overflow-y: auto;
    transform: translateX(100%); transition: transform 450ms var(--sc-ease);}
  .sc-site .sc-nav.sc-open {transform: none;}
  .sc-site .sc-nav.sc-open ~ .sc-burger span, .sc-site .sc-hdr.sc-menu-open .sc-burger span {background: var(--sc-ink);}
  .sc-site .sc-hdr.sc-menu-open .sc-burger span:nth-child(1) {transform: translateY(7px) rotate(45deg);}
  .sc-site .sc-hdr.sc-menu-open .sc-burger span:nth-child(2) {opacity: 0;}
  .sc-site .sc-hdr.sc-menu-open .sc-burger span:nth-child(3) {transform: translateY(-7px) rotate(-45deg);}
  .sc-site .sc-nav__list {flex-direction: column; align-items: stretch; gap: 0;}
  .sc-site .sc-nav__item {border-bottom: 1px solid var(--sc-fog);}
  .sc-site .sc-nav__link, .sc-site .sc-nav__toggle {color: var(--sc-ink) !important; text-shadow: none; width: 100%; justify-content: space-between; min-height: 60px; font-size: calc(14px * var(--sc-fs, 1));}
  .sc-site .sc-nav__sub {position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; padding: 0 0 14px; display: none; min-width: 0;}
  .sc-site .sc-nav__item.sc-open .sc-nav__sub {display: block;}
  .sc-site .sc-nav__sub a {padding: 10px 0 10px 16px;}
  .sc-site .sc-nav__cta {margin-top: 28px; color: var(--sc-ink) !important; border-color: var(--sc-ink) !important; justify-content: center;}
  .sc-site .sc-nav__mob-brand {display: block !important; margin-top: 34px;}
}
.sc-site .sc-nav__mob-brand {display: none;}
.sc-site .sc-nav__mob-brand img {height: 30px; width: auto;}
.sc-site .sc-section {padding-block: var(--sc-section-y);}
.sc-site .sc-section--mist {background: var(--sc-mist);}
.sc-site .sc-section--ink {background: var(--sc-ink);}
.sc-site .sc-head {max-width: 1120px; margin-bottom: clamp(44px, 5vw, 80px);}
.sc-site .sc-head .sc-lede {max-width: 760px;}
.sc-site .sc-head--center {margin-inline: auto; text-align: center;}
.sc-site .sc-head--center.wp-block-buttons, .sc-site .sc-head--center .wp-block-buttons {justify-content: center;}
.sc-site .sc-head .sc-lede {margin-top: 1.5rem;}
.sc-site .sc-hero {position: relative; min-height: 100svh; min-height: max(640px, 100svh);
  display: flex; align-items: flex-end; color: var(--sc-paper); overflow: hidden; background: #2d2f2c;}
.sc-site .sc-hero__media {position: absolute; inset: 0;}
.sc-site .sc-hero__media video, .sc-site .sc-hero__media img {width: 100%; height: 100%; object-fit: cover; object-position: 0% 50%;
  filter: saturate(1.1) contrast(1.05) brightness(1.03);}
.sc-site .sc-hero__scrim {position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,0) 20%),
    linear-gradient(96deg, rgba(8,8,8,.72) 0%, rgba(8,8,8,.42) 30%, rgba(8,8,8,.08) 58%, rgba(8,8,8,0) 80%);}
.sc-site .sc-hero__in {position: relative; padding-bottom: clamp(64px, 9vh, 120px); padding-top: 180px;}
.sc-site .sc-hero__eyebrow {font-family: var(--sc-display); font-weight: 600; font-size: calc(13px * var(--sc-fs, 1)); letter-spacing: .32em; text-transform: uppercase; margin: 0 0 1.8rem; text-shadow: 0 1px 14px rgba(0,0,0,.45);}
.sc-site .sc-hero h1 {color: var(--sc-paper); max-width: 17ch; font-size: calc(clamp(40px, 5vw, 78px) * var(--sc-fs, 1)); text-shadow: 0 2px 24px rgba(0,0,0,.35);--h1:calc(clamp(40px, 5vw, 78px) * var(--sc-fs, 1));}
.sc-site .sc-hero__sub {max-width: 56ch; margin: 2rem 0 2.6rem; font-size: calc(clamp(17px, 1.3vw, 20px) * var(--sc-fs, 1)); font-weight: 300; line-height: 1.65; text-shadow: 0 1px 14px rgba(0,0,0,.5);}
.sc-site .sc-hero__pause {position: absolute; right: var(--sc-gutter); bottom: clamp(28px, 4vh, 44px); z-index: 2;
  width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.7); color: var(--sc-paper);
  display: grid; place-items: center; transition: background 300ms var(--sc-ease);}
.sc-site .sc-hero__pause:hover {background: rgba(255,255,255,.14);}
.sc-site .sc-hero__pause svg {width: 14px; height: 14px;}
.sc-site .sc-hero__pause .sc-i-play {display: none;}
.sc-site .sc-hero__pause.sc-is-paused .sc-i-play {display: block;}
.sc-site .sc-hero__pause.sc-is-paused .sc-i-pause {display: none;}
.sc-site .sc-hero--light {color: var(--sc-ink); background: #e9e7e3;}
.sc-site .sc-hero--light .sc-hero__scrim {background: linear-gradient(96deg, rgba(255,255,255,.86) 0%, rgba(255,255,255,.6) 30%, rgba(255,255,255,.12) 56%, rgba(255,255,255,0) 76%);}
.sc-site .sc-hero--light h1, .sc-site .sc-hero--light .sc-hero__eyebrow, .sc-site .sc-hero--light .sc-hero__sub {color: var(--sc-ink); text-shadow: none;}
.sc-site .sc-hero--light .sc-hero__eyebrow {color: var(--sc-graphite);}
.sc-site .sc-hero--split {display: grid; grid-template-columns: 1.08fr .92fr; align-items: stretch; background: var(--sc-paper); color: var(--sc-ink); min-height: max(700px, 100svh);}
.sc-site .sc-hero--split .sc-hero__in {display: flex; flex-direction: column; justify-content: flex-end; padding: 200px clamp(28px, 5vw, 96px) clamp(64px, 9vh, 120px) max(var(--sc-gutter), calc((100vw - var(--sc-wrap)) / 2 + var(--sc-gutter)));}
.sc-site .sc-hero--split h1, .sc-site .sc-hero--split .sc-hero__eyebrow, .sc-site .sc-hero--split .sc-hero__sub {color: var(--sc-ink); text-shadow: none;}
.sc-site .sc-hero--split .sc-hero__eyebrow {color: var(--sc-stone);}
.sc-site .sc-hero--split .sc-hero__media {position: relative; inset: auto;}
.sc-site .sc-hero--split .sc-hero__media img {object-position: 50% 22%; filter: none;}
.sc-site .sc-spot {display: grid; grid-template-columns: minmax(0, 4.6fr) minmax(0, 7fr); gap: clamp(40px, 7vw, 128px); align-items: center;}
.sc-site .sc-spot__media {position: relative;}
.sc-site .sc-spot__media img {width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 18%;}
.sc-site .sc-spot__media::after {content: ""; position: absolute; left: -22px; bottom: -22px; width: 42%; height: 42%; border-left: 1px solid var(--sc-ink); border-bottom: 1px solid var(--sc-ink); pointer-events: none;}
.sc-site .sc-spot__body h2 {max-width: 24ch;}
.sc-site .sc-spot__body .sc-lede {margin: 2rem 0 1.4rem;}
.sc-site .sc-spot__body .sc-tlink {margin-top: 2.2rem;}
.sc-site .sc-spot__meta {display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 2.2rem 0 2.4rem; padding: 1.4rem 0; border-block: 1px solid var(--sc-line);}
.sc-site .sc-spot__meta span {font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .22em; text-transform: uppercase; color: var(--sc-ink);}
.sc-site .sc-yc {background: var(--sc-ink); color: var(--sc-paper); text-align: center; padding-block: clamp(84px, 9vw, 150px);}
.sc-site .sc-yc.wp-block-buttons, .sc-site .sc-yc .wp-block-buttons {justify-content: center;}
.sc-site .sc-yc__lockup {width: min(600px, 84vw); height: auto; margin: 0 auto clamp(40px, 4vw, 60px);}
.sc-site .sc-yc h2 {color: var(--sc-paper); max-width: 30ch; margin: 0 auto;}
.sc-site .sc-yc .sc-lede {color: #dedede; max-width: 64ch; margin: 1.8rem auto 0;}
.sc-site .sc-yc__facts {display: grid; grid-template-columns: repeat(3, 1fr); max-width: 1000px; margin: clamp(52px, 5vw, 80px) auto 0; border-top: 1px solid #2f2f2f;}
.sc-site .sc-yc__facts > div {padding: 34px 18px 0; border-left: 1px solid #2f2f2f;}
.sc-site .sc-yc__facts > div:first-child {border-left: 0;}
.sc-site .sc-yc__facts .sc-dt {font-family: var(--sc-display); font-weight: 200; font-size: calc(clamp(32px, 3.2vw, 50px) * var(--sc-fs, 1)); letter-spacing: .05em; text-transform: uppercase; color: var(--sc-paper);}
.sc-site .sc-yc__facts .sc-dd {margin: .7rem 0 0; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .26em; text-transform: uppercase; color: var(--sc-on-ink-muted);}
.sc-site .sc-idx {border: 1px solid var(--sc-line); background: var(--sc-paper); padding: clamp(36px, 4vw, 56px);
  display: grid; gap: 12px; justify-items: start; min-height: 240px; align-content: center;}
.sc-site .sc-idx__tag {font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .26em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-idx__code {font-family: ui-monospace, Menlo, monospace; font-size: calc(14px * var(--sc-fs, 1)); color: var(--sc-ink); background: var(--sc-mist); padding: 6px 10px;}
.sc-site .sc-idx__note {color: var(--sc-stone); font-size: calc(15px * var(--sc-fs, 1)); margin: 0;}
.sc-site .sc-listings__foot {display: flex; flex-wrap: wrap; gap: 14px; margin-top: 2.4rem;}
.sc-site .sc-paths {display: grid; grid-template-columns: 1fr 1fr;}
.sc-site .sc-path {position: relative; min-height: clamp(560px, 82vh, 860px); display: flex; align-items: flex-end; color: var(--sc-paper); overflow: hidden; text-decoration: none;}
.sc-site a.sc-path {text-decoration: none;}
.sc-site .sc-path img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--sc-ease);}
.sc-site .sc-path:hover img {transform: scale(1.035);}
.sc-site .sc-path::before {content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.74) 0%, rgba(0,0,0,.36) 38%, rgba(0,0,0,0) 64%); z-index: 1;}
.sc-site .sc-path__body {position: relative; z-index: 2; padding: clamp(32px, 4vw, 64px); max-width: 620px;}
.sc-site .sc-path__n {font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .3em; text-transform: uppercase; margin: 0 0 1rem; text-shadow: 0 1px 10px rgba(0,0,0,.4);}
.sc-site .sc-path h3 {color: var(--sc-paper); font-weight: 200; font-size: calc(clamp(34px, 3.4vw, 54px) * var(--sc-fs, 1)); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 1.1rem;--h3:calc(clamp(34px, 3.4vw, 54px) * var(--sc-fs, 1));}
.sc-site .sc-path p:where(:not(.sc-p0)) {color: rgba(255,255,255,.92); margin-bottom: 1.8rem; text-shadow: 0 1px 12px rgba(0,0,0,.4);}
.sc-site .sc-comms {display: grid; grid-template-columns: repeat(3, 1fr);}
.sc-site .sc-comm {position: relative; min-height: clamp(520px, 78vh, 820px); display: flex; align-items: flex-end; color: var(--sc-paper); overflow: hidden; text-decoration: none;}
.sc-site a.sc-comm {text-decoration: none;}
.sc-site .sc-comm img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--sc-ease);}
.sc-site .sc-comm:hover img {transform: scale(1.04);}
.sc-site .sc-comm::before {content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(0,0,0,.76) 0%, rgba(0,0,0,.3) 42%, rgba(0,0,0,0) 66%);}
.sc-site .sc-comm__body {position: relative; z-index: 2; padding: clamp(28px, 3vw, 48px);}
.sc-site .sc-comm__i {font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .3em; margin: 0 0 .8rem; text-shadow: 0 1px 10px rgba(0,0,0,.4);}
.sc-site .sc-comm h3 {color: var(--sc-paper); font-weight: 200; font-size: calc(clamp(34px, 3.2vw, 52px) * var(--sc-fs, 1)); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 1rem;--h3:calc(clamp(34px, 3.2vw, 52px) * var(--sc-fs, 1));}
.sc-site .sc-comm p:where(:not(.sc-p0)) {color: rgba(255,255,255,.92); font-size: calc(16px * var(--sc-fs, 1)); line-height: 1.6; max-width: 38ch; margin-bottom: 1.4rem; text-shadow: 0 1px 12px rgba(0,0,0,.45);}
.sc-site .sc-comm .sc-tlink {color: var(--sc-paper);}
.sc-site .sc-comms__foot {text-align: center; padding-block: clamp(44px, 5vw, 72px);}
.sc-site .sc-comms__foot.wp-block-buttons, .sc-site .sc-comms__foot .wp-block-buttons {justify-content: center;}
.sc-site .sc-moments {display: grid; grid-template-columns: minmax(0, 4.6fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 110px); align-items: start;}
.sc-site .sc-moments__body {position: sticky; top: 150px;}
.sc-site .sc-moments__body h2 {max-width: 16ch;}
.sc-site .sc-moments__body .sc-lede {margin: 2rem 0 1.4rem; color: #e4e4e4;}
.sc-site .sc-moments__body p:where(:not(.sc-p0)) {color: var(--sc-on-ink-muted);}
.sc-site .sc-moments__grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;}
.sc-site .sc-moments__grid figure {margin: 0; position: relative; overflow: hidden; background: #1c1c1c;}
.sc-site .sc-moments__grid figure:nth-child(1) {grid-column: span 2; grid-row: span 2;}
.sc-site .sc-moments__grid figure:nth-child(7) {grid-column: span 2;}
.sc-site .sc-moments__grid figure:nth-child(7) img {aspect-ratio: 8 / 3;}
.sc-site .sc-moments__grid img {width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; filter: grayscale(1) contrast(1.06); transition: filter 900ms var(--sc-ease), transform 1200ms var(--sc-ease);}
.sc-site .sc-moments__grid figure:nth-child(1) img {aspect-ratio: auto;}
.sc-site .sc-moments__grid figure:hover img {filter: none; transform: scale(1.03);}
.sc-site .sc-quotes {display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 110px); align-items: start;}
.sc-site .sc-quote--lead blockquote {margin: 0; font-family: var(--sc-display); font-weight: 300; font-size: calc(clamp(24px, 2.25vw, 36px) * var(--sc-fs, 1)); line-height: 1.35; color: var(--sc-ink);}
.sc-site .sc-quote--lead blockquote::before {content: "\201C"; display: block; font-family: Georgia, "Times New Roman", serif; font-weight: 400; font-size: calc(96px * var(--sc-fs, 1)); line-height: .7; margin-bottom: 10px; color: var(--sc-ink);}
.sc-site .sc-quote cite {display: block; margin-top: 1.8rem; font-style: normal; font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .26em; text-transform: uppercase; color: var(--sc-ink);}
.sc-site .sc-quote cite span {display: block; margin-top: .4rem; letter-spacing: .12em; font-weight: 500; color: var(--sc-stone); text-transform: none; font-family: var(--sc-body); font-size: calc(14px * var(--sc-fs, 1));}
.sc-site .sc-quote--side {padding-block: 2rem; border-top: 1px solid var(--sc-line);}
.sc-site .sc-quote--side:first-child {padding-top: 0; border-top: 0;}
.sc-site .sc-quote--side blockquote {margin: 0; font-size: calc(17px * var(--sc-fs, 1)); line-height: 1.7; color: var(--sc-graphite);}
.sc-site .sc-quotes__foot {margin-top: clamp(40px, 4vw, 64px);}
.sc-site .sc-hv {position: relative; min-height: clamp(460px, 64vh, 680px); display: grid; place-items: center; text-align: center; color: var(--sc-paper); overflow: hidden;}
.sc-site .sc-hv.wp-block-buttons, .sc-site .sc-hv .wp-block-buttons {justify-content: center;}
.sc-site .sc-hv img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%;}
.sc-site .sc-hv::before {content: ""; position: absolute; inset: 0; z-index: 1; background: radial-gradient(ellipse at center, rgba(0,0,0,.52) 0%, rgba(0,0,0,.36) 52%, rgba(0,0,0,.14) 100%);}
.sc-site .sc-hv__in {position: relative; z-index: 2; max-width: 1040px; padding: 60px var(--sc-gutter);}
.sc-site .sc-hv h2 {color: var(--sc-paper); text-shadow: 0 2px 22px rgba(0,0,0,.4);}
.sc-site .sc-hv p:where(:not(.sc-p0)) {margin: 1.6rem auto 2.4rem; max-width: 58ch; font-size: calc(clamp(17px, 1.25vw, 19px) * var(--sc-fs, 1)); font-weight: 300; text-shadow: 0 1px 14px rgba(0,0,0,.5);}
.sc-site .sc-posts {display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 72px); align-items: start;}
.sc-site .sc-posts__side {display: grid;}
.sc-site .sc-post--row {padding-block: 1.8rem; border-top: 1px solid var(--sc-line);}
.sc-site .sc-post--row:first-child {padding-top: 0; border-top: 0;}
.sc-site .sc-post--lead h3 {font-size: calc(clamp(24px, 2.1vw, 32px) * var(--sc-fs, 1));--h3:calc(clamp(24px, 2.1vw, 32px) * var(--sc-fs, 1));}
.sc-site .sc-post {text-decoration: none; display: block;}
.sc-site a.sc-post {text-decoration: none;}
.sc-site .sc-post__media {overflow: hidden; margin-bottom: 1.4rem;}
.sc-site .sc-post__media img {width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: 0% 50%; transition: transform 1200ms var(--sc-ease);}
.sc-site .sc-post:hover .sc-post__media img {transform: scale(1.04);}
.sc-site .sc-post__meta {font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-stone); margin-bottom: .7rem;}
.sc-site .sc-post h3 {font-size: calc(clamp(20px, 1.6vw, 24px) * var(--sc-fs, 1)); line-height: 1.3;--h3:calc(clamp(20px, 1.6vw, 24px) * var(--sc-fs, 1));}
.sc-site .sc-posts__foot {margin-top: clamp(40px, 4vw, 64px);}
.sc-site .sc-cx-para {position: relative; min-height: clamp(560px, 82vh, 860px); display: flex; align-items: center;
  background-size: cover; background-position: 50% 35%; background-attachment: fixed; color: var(--sc-paper);}
.sc-site .sc-cx-para::before {content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.08);}
.sc-site .sc-cx-para .sc-wrap {position: relative; display: flex; justify-content: flex-end;}
.sc-site .sc-cx-card {max-width: 560px; background: rgba(17,17,17,.94); padding: clamp(36px, 4vw, 64px);}
.sc-site .sc-cx-card h2 {color: var(--sc-paper);}
.sc-site .sc-cx-card p:where(:not(.sc-p0)) {margin: 1.6rem 0 2.4rem; font-size: calc(clamp(17px, 1.25vw, 19px) * var(--sc-fs, 1)); font-weight: 300; color: #e6e6e6;}
.sc-site .sc-cx-card .sc-eyebrow {color: rgba(255,255,255,.88);}
.sc-site .sc-ftr {background: var(--sc-ink); color: var(--sc-on-ink-muted); padding-top: clamp(80px, 8vw, 130px); font-size: calc(15px * var(--sc-fs, 1));}
.sc-site .sc-ftr a {text-decoration: none; transition: color 300ms var(--sc-ease);}
.sc-site .sc-ftr a:hover {color: var(--sc-paper);}
.sc-site .sc-ftr__grid {display: grid; grid-template-columns: 1.35fr 1fr 1.1fr 1.15fr; gap: clamp(32px, 4vw, 72px); padding-bottom: clamp(56px, 6vw, 90px);}
.sc-site .sc-ftr__logo {height: 84px; width: auto; margin-bottom: 1.6rem;}
.sc-site .sc-ftr__pos {color: #d6d6d6; max-width: 34ch; line-height: 1.65;}
.sc-site .sc-ftr__yc {height: 30px; width: auto; margin-top: 1.8rem; opacity: .95;}
.sc-site .sc-ftr .sc-ftr__h {font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .28em; text-transform: uppercase; color: var(--sc-paper); margin-bottom: 1.4rem;}
.sc-site .sc-ftr__links li + li {margin-top: .55rem;}
.sc-site .sc-ftr__links a {font-family: var(--sc-display); font-weight: 500; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .18em; text-transform: uppercase;}
.sc-site .sc-ftr__office p:where(:not(.sc-p0)) {margin-bottom: .6rem;}
.sc-site .sc-ftr__office a {color: #e8e8e8;}
.sc-site .sc-ftr__soc {display: flex; gap: 10px; margin-top: 1.6rem;}
.sc-site .sc-ftr__soc a {width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #3a3a3a; color: #e8e8e8;}
.sc-site .sc-ftr__soc a:hover {border-color: var(--sc-paper);}
.sc-site .sc-ftr__soc svg {width: 17px; height: 17px; fill: currentColor;}
.sc-site .sc-ftr__compliance {display: grid; grid-template-columns: auto 1fr; gap: 28px 40px; align-items: center; padding-block: 34px; border-top: 1px solid #2c2c2c;}
.sc-site .sc-ftr__marks {display: flex; align-items: center; gap: 16px;}
.sc-site .sc-ftr__marks img {height: 48px; width: auto;}
.sc-site .sc-ftr__legal {margin: 0; font-size: calc(13px * var(--sc-fs, 1)); line-height: 1.7; color: #a9a9a9;}
.sc-site .sc-ftr__legal a {text-decoration: underline; text-underline-offset: 3px;}
.sc-site .sc-ftr__bottom {display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px 30px; padding-block: 26px 34px; border-top: 1px solid #2c2c2c; font-size: calc(13px * var(--sc-fs, 1)); color: #a9a9a9;}
.sc-site .sc-ftr__bottom a {color: #d6d6d6;}
.sc-site .sc-ftr__util {display: flex; flex-wrap: wrap; gap: 8px 22px;}
.sc-site .sc-ftr__util a {font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .2em; text-transform: uppercase;}
.sc-site.sc-js .sc-r {opacity: 0; transform: translateY(26px); transition: opacity var(--sc-slow) var(--sc-ease), transform var(--sc-slow) var(--sc-ease);}
.sc-site.sc-js .sc-r.sc-in {opacity: 1; transform: none;}
@media (max-width: 1100px) {
  .sc-site .sc-ftr__grid {grid-template-columns: 1fr 1fr;}
  .sc-site .sc-moments {grid-template-columns: 1fr;}
  .sc-site .sc-moments__body {position: static;}
}
@media (max-width: 900px) {
  .sc-site .sc-spot, .sc-site .sc-quotes {grid-template-columns: 1fr;}
  .sc-site .sc-yc__facts {grid-template-columns: 1fr;}
  .sc-site .sc-yc__facts > div {border-left: 0; border-top: 1px solid #2f2f2f; padding: 26px 0;}
  .sc-site .sc-yc__facts > div:first-child {border-top: 0;}
  .sc-site .sc-spot__media {max-width: 520px;}
  .sc-site .sc-paths, .sc-site .sc-comms {grid-template-columns: 1fr;}
  .sc-site .sc-path, .sc-site .sc-comm {min-height: clamp(460px, 76vh, 640px);}
  .sc-site .sc-posts {grid-template-columns: 1fr;}
  .sc-site .sc-hero--split {grid-template-columns: 1fr;}
  .sc-site .sc-hero--split .sc-hero__media {order: -1; height: 62svh;}
  .sc-site .sc-hero--split .sc-hero__in {padding: 48px var(--sc-gutter) 64px;}
  .sc-site .sc-cx-para {background-attachment: scroll;}
  .sc-site .sc-cx-para {align-items: flex-end; padding-bottom: 64px;}
}
@media (max-width: 640px) {
  body.sc-site {font-size: calc(16px * var(--sc-fs, 1));}
  .sc-site .sc-ftr__grid {grid-template-columns: 1fr;}
  .sc-site .sc-ftr__compliance {grid-template-columns: 1fr;}
  .sc-site .sc-moments__grid {grid-template-columns: 1fr 1fr;}
  .sc-site .sc-moments__grid figure:nth-child(1) {grid-column: span 2; grid-row: auto;}
  .sc-site .sc-moments__grid figure:nth-child(1) img {aspect-ratio: 4 / 3;}
  .sc-site .sc-moments__grid figure:nth-child(7) {grid-column: span 2;}
  .sc-site .sc-hero h1 {font-size: calc(clamp(34px, 9.6vw, 48px) * var(--sc-fs, 1));--h1:calc(clamp(34px, 9.6vw, 48px) * var(--sc-fs, 1));}
  .sc-site .sc-hero__media video, .sc-site .sc-hero__media img {object-position: 54% 50%;}
  .sc-site .sc-hero__scrim {background: linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,0) 18%), linear-gradient(0deg, rgba(8,8,8,.78) 0%, rgba(8,8,8,.5) 45%, rgba(8,8,8,.12) 72%, rgba(8,8,8,0) 88%);}
  .sc-site .sc-hero--light .sc-hero__scrim {background: linear-gradient(0deg, rgba(255,255,255,.9) 0%, rgba(255,255,255,.62) 48%, rgba(255,255,255,0) 80%);}
  .sc-site .sc-hero__in {padding-bottom: 96px;}
  .sc-site .sc-hero__eyebrow {font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .26em;}
  .sc-site .sc-hero__pause {bottom: 28px; right: var(--sc-gutter); width: 42px; height: 42px;}
  .sc-site .sc-acts a.sc-btn {flex: 1 1 100%;}
  .sc-site .sc-acts div.wp-block-button.sc-btn {flex: 1 1 100%;}
}
@media (prefers-reduced-motion: reduce) {
  html:has(> body.sc-site) {scroll-behavior: auto;}
  .sc-site.sc-js .sc-r {opacity: 1; transform: none; transition: none;}
  .sc-site .sc-path img, .sc-site .sc-comm img, .sc-site .sc-post__media img, .sc-site .sc-moments__grid img {transition: none;}
  .sc-site .sc-cx-para {background-attachment: scroll;}
  .sc-site .sc-hero__media video {display: none;}
  .sc-site .sc-hero__media .sc-hero__poster {display: block !important;}
}
.sc-site .sc-ph {position: relative; min-height: clamp(540px, 78vh, 800px); display: flex; align-items: flex-end; color: var(--sc-paper); overflow: hidden; background: #2d2f2c;}
.sc-site .sc-ph__img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(1.08) contrast(1.04) brightness(1.03);}
.sc-site .sc-ph::before {content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(0,0,0,.36) 0%, rgba(0,0,0,0) 22%),
    linear-gradient(96deg, rgba(8,8,8,.72) 0%, rgba(8,8,8,.44) 32%, rgba(8,8,8,.1) 60%, rgba(8,8,8,0) 82%);}
.sc-site .sc-ph__in {position: relative; z-index: 2; padding-top: 210px; padding-bottom: clamp(60px, 9vh, 112px);}
.sc-site .sc-ph__eyebrow {font-family: var(--sc-display); font-weight: 600; font-size: calc(13px * var(--sc-fs, 1)); letter-spacing: .32em; text-transform: uppercase; margin: 0 0 1.6rem; text-shadow: 0 1px 14px rgba(0,0,0,.45);}
.sc-site .sc-ph h1 {color: var(--sc-paper); font-size: calc(clamp(38px, 4.5vw, 70px) * var(--sc-fs, 1)); max-width: 17ch; text-shadow: 0 2px 24px rgba(0,0,0,.35);--h1:calc(clamp(38px, 4.5vw, 70px) * var(--sc-fs, 1));}
.sc-site .sc-ph__sub {max-width: 56ch; margin: 1.7rem 0 0; font-size: calc(clamp(17px, 1.3vw, 20px) * var(--sc-fs, 1)); font-weight: 300; line-height: 1.65; text-shadow: 0 1px 14px rgba(0,0,0,.5);}
.sc-site .sc-ph .sc-acts {margin-top: 2.4rem;}
.sc-site .sc-crumbs {display: flex; flex-wrap: wrap; align-items: center; gap: .9em; font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-stone); margin: 0 0 1.4rem;}
.sc-site .sc-crumbs a {text-decoration: none;}
.sc-site .sc-crumbs a:hover {color: var(--sc-ink); text-decoration: underline; text-underline-offset: 4px;}
.sc-site .sc-ph .sc-crumbs {color: rgba(255,255,255,.9); text-shadow: 0 1px 12px rgba(0,0,0,.45);}
.sc-site .sc-ph .sc-crumbs a:hover {color: var(--sc-paper);}
.sc-site .sc-lh {background: var(--sc-mist); padding: clamp(200px, 17vw, 250px) 0 clamp(56px, 6vw, 96px);}
.sc-site .sc-lh h1 {font-size: calc(clamp(34px, 4.2vw, 64px) * var(--sc-fs, 1)); max-width: 20ch;--h1:calc(clamp(34px, 4.2vw, 64px) * var(--sc-fs, 1));}
.sc-site .sc-lh__sub {max-width: 62ch; margin: 1.5rem 0 0; font-size: calc(clamp(17px, 1.3vw, 20px) * var(--sc-fs, 1)); font-weight: 300; line-height: 1.65; color: var(--sc-graphite);}
.sc-site .sc-lh__meta {margin-top: 1.6rem; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .22em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-intro2 {display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(36px, 6vw, 120px); align-items: start;}
.sc-site .sc-intro2 h2 {max-width: 17ch;}
.sc-site .sc-intro2__body .sc-lede {margin: 0 0 1.4rem;}
.sc-site .sc-intro2__body p:where(:not(.sc-p0)) {max-width: 64ch;}
.sc-site .sc-intro2__body .sc-links {display: flex; flex-wrap: wrap; gap: 8px 34px; margin-top: 2rem;}
.sc-site .sc-bleed {display: grid; grid-template-columns: 1fr 1fr; min-height: clamp(560px, 80vh, 840px);}
.sc-site .sc-bleed--tall {min-height: clamp(640px, 92vh, 960px);}
.sc-site .sc-bleed__media {position: relative; overflow: hidden; min-height: 420px;}
.sc-site .sc-bleed__media img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.sc-site .sc-bleed__body {display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
  padding-block: clamp(64px, 8vw, 140px);
  padding-left: clamp(40px, 6vw, 112px);
  padding-right: max(var(--sc-gutter), calc((100vw - var(--sc-wrap)) / 2 + var(--sc-gutter)));}
.sc-site .sc-bleed--rev .sc-bleed__media {order: 2;}
.sc-site .sc-bleed--rev .sc-bleed__body {padding-right: clamp(40px, 6vw, 112px); padding-left: max(var(--sc-gutter), calc((100vw - var(--sc-wrap)) / 2 + var(--sc-gutter)));}
.sc-site .sc-bleed__body h2 {max-width: 16ch;}
.sc-site .sc-bleed__body > .sc-lede {margin: 1.8rem 0 1.2rem;}
.sc-site .sc-bleed__body p:where(:not(.sc-p0)) {max-width: 58ch;}
.sc-site .sc-bleed__body .sc-acts, .sc-site .sc-bleed__body > .sc-tlink, .sc-site .sc-bleed__body > :where(p:not([class])) > .sc-tlink {margin-top: 2rem;}
.sc-site .sc-bleed__body .sc-links {display: flex; flex-wrap: wrap; gap: 6px 30px; margin-top: 1.8rem;}
.sc-site .sc-section--mist.sc-bleed, .sc-site .sc-bleed.sc-section--mist {background: var(--sc-mist);}
.sc-site .sc-bleed.sc-section--ink {background: var(--sc-ink);}
.sc-site .sc-step {min-height: clamp(500px, 70vh, 740px);}
.sc-site .sc-step--mist {background: var(--sc-mist);}
.sc-site .sc-step__n {font-family: var(--sc-display); font-weight: 200; font-size: calc(clamp(64px, 7vw, 116px) * var(--sc-fs, 1)); line-height: .9; letter-spacing: .02em; color: var(--sc-ink); margin: 0 0 1.2rem;}
.sc-site .sc-step .sc-eyebrow {margin-bottom: 1rem;}
.sc-site .sc-step h3 {font-weight: 300; font-size: calc(clamp(26px, 2.3vw, 36px) * var(--sc-fs, 1)); line-height: 1.2; max-width: 22ch; margin-bottom: 1.2rem;--h3:calc(clamp(26px, 2.3vw, 36px) * var(--sc-fs, 1));}
.sc-site .sc-step p:where(:not(.sc-p0)) {max-width: 54ch;}
.sc-site .sc-step .sc-tlink {margin-top: 1.4rem;}
.sc-site .sc-statement {position: relative; min-height: clamp(480px, 74vh, 780px); display: flex; align-items: center; color: var(--sc-paper); background-size: cover; background-attachment: fixed;}
.sc-site .sc-statement::before {content: ""; position: absolute; inset: 0; background: linear-gradient(96deg, rgba(8,8,8,.74) 0%, rgba(8,8,8,.46) 36%, rgba(8,8,8,.1) 68%, rgba(8,8,8,0) 88%);}
.sc-site .sc-statement .sc-wrap {position: relative;}
.sc-site .sc-statement blockquote {margin: 0; max-width: 21ch; font-family: var(--sc-display); font-weight: 200; font-size: calc(clamp(32px, 3.8vw, 62px) * var(--sc-fs, 1)); line-height: 1.12; letter-spacing: .03em; text-transform: uppercase; color: var(--sc-paper); text-shadow: 0 2px 24px rgba(0,0,0,.35);}
.sc-site .sc-statement cite {display: block; margin-top: 2rem; font-style: normal; font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .28em; text-transform: uppercase; color: rgba(255,255,255,.92); text-shadow: 0 1px 10px rgba(0,0,0,.4);}
.sc-site .sc-tiles {display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; background: var(--sc-paper);}
.sc-site .sc-tiles--4 {grid-template-columns: repeat(4, 1fr);}
.sc-site .sc-tiles--2 {grid-template-columns: repeat(2, 1fr);}
.sc-site .sc-tile {position: relative; min-height: clamp(460px, 66vh, 700px); display: flex; align-items: flex-end; color: var(--sc-paper); overflow: hidden; text-decoration: none; background: #222;}
.sc-site a.sc-tile {text-decoration: none;}
.sc-site .sc-tiles--4 .sc-tile {min-height: clamp(420px, 60vh, 620px);}
.sc-site .sc-tile img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--sc-ease);}
.sc-site a.sc-tile:hover img {transform: scale(1.04);}
.sc-site .sc-tile::before {content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.4) 46%, rgba(0,0,0,0) 72%);}
.sc-site .sc-tile__body {position: relative; z-index: 2; padding: clamp(26px, 2.6vw, 44px);}
.sc-site .sc-tile__n {font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .3em; text-transform: uppercase; margin: 0 0 .9rem; text-shadow: 0 1px 10px rgba(0,0,0,.4);}
.sc-site .sc-tile h3 {color: var(--sc-paper); font-weight: 200; font-size: calc(clamp(28px, 2.4vw, 40px) * var(--sc-fs, 1)); text-transform: uppercase; letter-spacing: .04em; margin-bottom: .9rem;--h3:calc(clamp(28px, 2.4vw, 40px) * var(--sc-fs, 1));}
.sc-site .sc-tile p:where(:not(.sc-p0)) {color: rgba(255,255,255,.93); font-size: calc(16px * var(--sc-fs, 1)); line-height: 1.6; max-width: 40ch; margin-bottom: 1.3rem; text-shadow: 0 1px 12px rgba(0,0,0,.45);}
.sc-site .sc-tile .sc-tlink {color: var(--sc-paper);}
.sc-site .sc-tile__credit, .sc-site .sc-cm__credit, .sc-site .sc-cmod__credit {position: absolute; z-index: 3; right: 12px; top: 10px; font-size: calc(11px * var(--sc-fs, 1)); letter-spacing: .02em; color: rgba(255,255,255,.9); text-shadow: 0 1px 6px rgba(0,0,0,.7);}
.sc-site .sc-tile__credit a, .sc-site .sc-cm__credit a, .sc-site .sc-cmod__credit a {color: inherit;}
.sc-site .sc-tiles__foot {text-align: center; padding-block: clamp(40px, 5vw, 72px);}
.sc-site .sc-tiles__foot.wp-block-buttons, .sc-site .sc-tiles__foot .wp-block-buttons {justify-content: center;}
.sc-site .sc-faq-wrap {display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(36px, 6vw, 110px); align-items: start;}
.sc-site .sc-faq-wrap__head {position: sticky; top: 150px;}
.sc-site .sc-faq-wrap__head h2 {max-width: 14ch;}
.sc-site .sc-faq-wrap__head .sc-lede {margin-top: 1.4rem;}
.sc-site .sc-faq {border-top: 1px solid var(--sc-line);}
.sc-site .sc-faq details {border-bottom: 1px solid var(--sc-line);}
.sc-site .sc-faq summary {list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 28px; padding: 26px 0; min-height: 44px;
  font-family: var(--sc-display); font-weight: 400; font-size: calc(clamp(19px, 1.45vw, 23px) * var(--sc-fs, 1)); line-height: 1.35; color: var(--sc-ink);}
.sc-site .sc-faq summary::-webkit-details-marker {display: none;}
.sc-site .sc-faq summary::after {content: ""; flex: 0 0 18px; height: 18px;
  background: linear-gradient(currentColor, currentColor) center / 18px 1.4px no-repeat, linear-gradient(currentColor, currentColor) center / 1.4px 18px no-repeat;
  transition: transform 400ms var(--sc-ease);}
.sc-site .sc-faq details[open] summary::after {transform: rotate(45deg);}
.sc-site .sc-faq__a {padding: 0 0 28px; max-width: 68ch;}
.sc-site .sc-faq__a p:where(:not(.sc-p0)) {color: var(--sc-graphite);}
.sc-site .sc-faq__a a {text-underline-offset: 3px;}
.sc-site .sc-res {background: var(--sc-mist); padding-block: clamp(72px, 7vw, 120px);}
.sc-site .sc-res__grid {display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 5vw, 96px); align-items: start;}
.sc-site .sc-res h2 {font-size: calc(clamp(26px, 2.4vw, 38px) * var(--sc-fs, 1)); max-width: 14ch;--h2:calc(clamp(26px, 2.4vw, 38px) * var(--sc-fs, 1));}
.sc-site .sc-res__lede {margin-top: 1.2rem; color: var(--sc-stone); max-width: 40ch;}
.sc-site .sc-res ul {display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 clamp(28px, 4vw, 64px); border-top: 1px solid var(--sc-line);}
.sc-site .sc-res li a {display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--sc-line); text-decoration: none; color: var(--sc-ink); min-height: 44px;}
.sc-site .sc-res li a:hover .sc-res__t {text-decoration: underline; text-underline-offset: 4px;}
.sc-site .sc-res li a:hover a.sc-res__t {text-decoration: underline;}
.sc-site .sc-res__t {display: block; font-family: var(--sc-display); font-weight: 600; font-size: calc(13px * var(--sc-fs, 1)); letter-spacing: .18em; text-transform: uppercase;}
.sc-site .sc-res__d {display: block; font-size: calc(15px * var(--sc-fs, 1)); color: var(--sc-stone); margin-top: .4rem;}
.sc-site .sc-res svg {flex: 0 0 14px; width: 14px; height: 14px; margin-top: 3px;}
.sc-site .sc-vid {position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #111; color: var(--sc-paper); text-align: left;}
.sc-site .sc-vid.wp-block-buttons, .sc-site .sc-vid .wp-block-buttons {justify-content: flex-start;}
.sc-site .sc-vid img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--sc-ease);}
.sc-site .sc-vid:hover img {transform: scale(1.03);}
.sc-site .sc-vid::after {content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.1) 48%, rgba(0,0,0,.05) 100%);}
.sc-site .sc-vid__play {position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 86px; height: 86px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.92); background: rgba(17,17,17,.28); transition: background 400ms var(--sc-ease);}
.sc-site .sc-vid__play svg {width: 20px; height: 20px; margin-left: 3px;}
.sc-site .sc-vid:hover .sc-vid__play {background: rgba(17,17,17,.6);}
.sc-site .sc-vid__label {position: absolute; z-index: 2; left: clamp(20px, 2.4vw, 34px); bottom: clamp(18px, 2.2vw, 30px); font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; text-shadow: 0 1px 10px rgba(0,0,0,.5);}
.sc-site .sc-vid__label span {display: block; margin-top: .45rem; font-family: var(--sc-body); font-weight: 400; letter-spacing: .04em; text-transform: none; font-size: calc(14px * var(--sc-fs, 1)); color: rgba(255,255,255,.88);}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) iframe:where(:not(.sc-3p, .sc-3p *)) {display: block; width: 100%; aspect-ratio: 16 / 9; border: 0;}
.sc-site .sc-form {background: var(--sc-paper); border: 1px solid var(--sc-line); padding: clamp(28px, 3vw, 52px);}
.sc-site .sc-form h3 {font-weight: 300; font-size: calc(clamp(24px, 2vw, 32px) * var(--sc-fs, 1)); text-transform: uppercase; letter-spacing: .03em;--h3:calc(clamp(24px, 2vw, 32px) * var(--sc-fs, 1));}
.sc-site .sc-form__note {margin: .9rem 0 0; color: var(--sc-stone);}
.sc-site .sc-form__grid {display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; margin-top: 10px;}
.sc-site .sc-field {display: block; grid-column: 1 / -1; margin-top: 22px;}
.sc-site .sc-field--half {grid-column: auto;}
.sc-site .sc-field > span {display: block; font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .22em; text-transform: uppercase; color: var(--sc-stone); margin-bottom: 6px;}
.sc-site .sc-field input, .sc-site .sc-field select, .sc-site .sc-field textarea {width: 100%; font: inherit; font-size: calc(16px * var(--sc-fs, 1)); color: var(--sc-ink); background: transparent; border: 0; border-bottom: 1px solid #8f8f8f; border-radius: 0; padding: 10px 0; min-height: 44px;}
.sc-site .sc-field select {appearance: none; background: linear-gradient(45deg, transparent 50%, var(--sc-ink) 50%) calc(100% - 12px) 55% / 6px 6px no-repeat, linear-gradient(-45deg, transparent 50%, var(--sc-ink) 50%) calc(100% - 6px) 55% / 6px 6px no-repeat;}
.sc-site .sc-field textarea {resize: vertical; min-height: 120px;}
.sc-site .sc-field input:focus, .sc-site .sc-field select:focus, .sc-site .sc-field textarea:focus {outline: none; border-bottom: 2px solid var(--sc-ink);}
.sc-site .sc-field--check {display: flex; gap: 12px; align-items: flex-start;}
.sc-site .sc-field--check input {width: 20px; height: 20px; min-height: 0; margin-top: 3px; accent-color: var(--sc-ink);}
.sc-site .sc-field--check span {font-family: var(--sc-body); font-weight: 400; letter-spacing: 0; text-transform: none; font-size: calc(14px * var(--sc-fs, 1)); color: var(--sc-graphite);}
.sc-site a.sc-btn--block {width: 100%; margin-top: 30px;}
.sc-site .sc-btn--block > .wp-block-button__link {width: 100%;}
.sc-site div.wp-block-button.sc-btn--block {width: 100%; margin-top: 30px;}
.sc-site .sc-form__fine {margin: 14px 0 0; font-size: calc(13px * var(--sc-fs, 1)); color: var(--sc-stone);}
.sc-site .sc-form__fine a {color: inherit;}
.sc-site .sc-guide {display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 4.5vw, 84px); align-items: center;}
.sc-site .sc-guide__media p:where(:not(.sc-p0)) {margin-top: 1.2rem; color: var(--sc-stone); font-size: calc(15px * var(--sc-fs, 1));}
.sc-site .sc-guide__cover {display: grid; grid-template-columns: 112px 1fr; gap: 22px; align-items: center; padding-bottom: 22px; border-bottom: 1px solid var(--sc-line);}
.sc-site .sc-guide__cover img {width: 112px; box-shadow: 0 16px 40px rgba(0,0,0,.18);}
.sc-site .sc-guide__cover h3 {font-size: calc(clamp(22px, 1.7vw, 27px) * var(--sc-fs, 1));--h3:calc(clamp(22px, 1.7vw, 27px) * var(--sc-fs, 1));}
.sc-site .sc-guide__cover p:where(:not(.sc-p0)) {margin: .5rem 0 0; color: var(--sc-stone); font-size: calc(15px * var(--sc-fs, 1));}
.sc-site .sc-guide .sc-form h3 + .sc-form__note {margin-top: .7rem;}
.sc-site .sc-bio {display: grid; grid-template-columns: minmax(0, 4.4fr) minmax(0, 7.6fr); gap: clamp(40px, 6.5vw, 128px); align-items: start;}
.sc-site .sc-bio__media {position: sticky; top: 150px;}
.sc-site .sc-bio__media img {width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 18%;}
.sc-site .sc-bio__media figcaption {margin-top: 1rem; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .22em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-bio__body h2 {max-width: 18ch; margin-bottom: 2rem;}
.sc-site .sc-bio__body p:where(:not(.sc-p0)) {max-width: 64ch;}
.sc-site .sc-creds {display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 44px; margin: 3rem 0 0; border-top: 1px solid var(--sc-line);}
.sc-site .sc-creds > div {padding: 20px 0; border-bottom: 1px solid var(--sc-line);}
.sc-site .sc-creds .sc-dt {font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-creds .sc-dd {margin: .45rem 0 0; color: var(--sc-ink); font-size: calc(16.5px * var(--sc-fs, 1)); line-height: 1.5;}
.sc-site .sc-creds .sc-dd a {text-underline-offset: 3px;}
.sc-site .sc-vblock {display: grid; grid-template-columns: minmax(0, 7.4fr) minmax(0, 4.6fr); gap: clamp(36px, 5vw, 96px); align-items: center;}
.sc-site .sc-vblock h2 {color: var(--sc-paper); max-width: 14ch;}
.sc-site .sc-vblock .sc-lede {color: #e2e2e2; margin: 1.8rem 0 0;}
.sc-site .sc-vblock p:where(:not(.sc-p0)) {color: var(--sc-on-ink-muted);}
.sc-site .sc-clist {display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 clamp(20px, 3vw, 48px); border-top: 1px solid var(--sc-line);}
.sc-site .sc-clist a {display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 20px 0; min-height: 44px; border-bottom: 1px solid var(--sc-line); text-decoration: none;
  font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .2em; text-transform: uppercase; color: var(--sc-ink);}
.sc-site .sc-clist a::after {content: ""; width: 16px; height: 1px; background: currentColor; transition: width 400ms var(--sc-ease);}
.sc-site .sc-clist a:hover::after {width: 30px;}
.sc-site .sc-mstrip {display: grid; grid-template-columns: repeat(4, 1fr); gap: 3px;}
.sc-site .sc-mstrip figure {margin: 0; overflow: hidden; background: #1c1c1c;}
.sc-site .sc-mstrip img {width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(1) contrast(1.06); transition: filter 900ms var(--sc-ease), transform 1200ms var(--sc-ease);}
.sc-site .sc-mstrip figure:hover img {filter: none; transform: scale(1.03);}
.sc-site .sc-pull {max-width: 980px; margin: 0 auto; text-align: center;}
.sc-site .sc-pull.wp-block-buttons, .sc-site .sc-pull .wp-block-buttons {justify-content: center;}
.sc-site .sc-pull blockquote {margin: 0; font-family: var(--sc-display); font-weight: 300; font-size: calc(clamp(24px, 2.3vw, 36px) * var(--sc-fs, 1)); line-height: 1.38; color: var(--sc-ink);}
.sc-site .sc-pull blockquote::before {content: "\201C"; display: block; font-family: Georgia, "Times New Roman", serif; font-size: calc(90px * var(--sc-fs, 1)); line-height: .7; margin-bottom: 8px;}
.sc-site .sc-pull cite {display: block; margin-top: 1.8rem; font-style: normal; font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .26em; text-transform: uppercase; color: var(--sc-ink);}
.sc-site .sc-pull cite span {display: block; margin-top: .4rem; font-family: var(--sc-body); font-weight: 500; letter-spacing: .1em; text-transform: none; font-size: calc(14px * var(--sc-fs, 1)); color: var(--sc-stone);}
.sc-site .sc-pull .sc-acts {justify-content: center; margin-top: 2.6rem;}
.sc-site .sc-revs__grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 3.4vw, 60px); margin-top: clamp(56px, 6vw, 96px); padding-top: clamp(40px, 4vw, 64px); border-top: 1px solid var(--sc-line);}
.sc-site .sc-revs__grid .sc-quote blockquote {margin: 0; font-size: calc(17px * var(--sc-fs, 1)); line-height: 1.75; color: var(--sc-graphite);}
.sc-site .sc-revs__lead {max-width: 1120px;}
.sc-site .sc-revs__foot {display: flex; flex-wrap: wrap; align-items: center; gap: 16px 40px; margin-top: clamp(48px, 5vw, 80px);}
.sc-site .sc-gallery {columns: 4 240px; column-gap: 10px;}
.sc-site .sc-gallery figure {break-inside: avoid; margin: 0 0 10px; overflow: hidden; background: #1c1c1c;}
.sc-site .sc-gallery img {width: 100%; filter: grayscale(1) contrast(1.06); transition: filter 900ms var(--sc-ease), transform 1200ms var(--sc-ease);}
.sc-site .sc-gallery figure:hover img {filter: none; transform: scale(1.03);}
.sc-site .sc-cmosaic {display: grid; grid-template-columns: repeat(12, 1fr); gap: 3px; background: var(--sc-paper);}
.sc-site .sc-cm {position: relative; grid-column: span 3; min-height: clamp(420px, 58vh, 600px); display: flex; align-items: flex-end; overflow: hidden; color: var(--sc-paper); text-align: left; background: #222; cursor: pointer; width: 100%;}
.sc-site .sc-cm.wp-block-buttons, .sc-site .sc-cm .wp-block-buttons {justify-content: flex-start;}
.sc-site .sc-cm--xl {grid-column: span 8; grid-row: span 2; min-height: 0;}
.sc-site .sc-cm--side {grid-column: span 4; min-height: clamp(340px, 46vh, 480px);}
.sc-site .sc-cm img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--sc-ease);}
.sc-site .sc-cm:hover img {transform: scale(1.04);}
.sc-site .sc-cm::before {content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,.34) 44%, rgba(0,0,0,0) 70%);}
.sc-site .sc-cm__body {position: relative; z-index: 2; padding: clamp(24px, 2.4vw, 40px);}
.sc-site .sc-cm__meta {font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .26em; text-transform: uppercase; margin: 0 0 .8rem; text-shadow: 0 1px 10px rgba(0,0,0,.45);}
.sc-site .sc-cm h3 {color: var(--sc-paper); font-weight: 200; font-size: calc(clamp(28px, 2.4vw, 40px) * var(--sc-fs, 1)); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 1rem;--h3:calc(clamp(28px, 2.4vw, 40px) * var(--sc-fs, 1));}
.sc-site .sc-cm--xl h3 {font-size: calc(clamp(40px, 4.4vw, 72px) * var(--sc-fs, 1));--h3:calc(clamp(40px, 4.4vw, 72px) * var(--sc-fs, 1));}
.sc-site .sc-cm__more {display: inline-flex; align-items: center; gap: .8em; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; padding-block: 8px;}
.sc-site .sc-cm__more::after {content: ""; width: 28px; height: 1px; background: currentColor; transition: width 400ms var(--sc-ease);}
.sc-site .sc-cm:hover .sc-cm__more::after {width: 48px;}
body.sc-site.sc-modal-open {overflow: hidden;}
.sc-site .sc-cmod {width: min(1120px, 94vw); max-width: none; max-height: 92vh; padding: 0; border: 0; background: var(--sc-paper); color: var(--sc-graphite); overflow: auto; overscroll-behavior: contain;}
.sc-site .sc-cmod::backdrop {background: rgba(10,10,10,.74);}
.sc-site .sc-cmod__close {position: sticky; top: 0; float: right; z-index: 6; width: 56px; height: 56px; display: grid; place-items: center; background: var(--sc-paper); color: var(--sc-ink); margin-bottom: -56px;}
.sc-site .sc-cmod__close svg {width: 18px; height: 18px;}
.sc-site .sc-cmod__hero {position: relative; min-height: clamp(360px, 52vh, 520px); display: flex; align-items: flex-end; color: var(--sc-paper); overflow: hidden;}
.sc-site .sc-cmod__hero img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.sc-site .sc-cmod__hero::before {content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.3) 50%, rgba(0,0,0,.05) 80%);}
.sc-site .sc-cmod__hero-in {position: relative; z-index: 2; padding: clamp(28px, 4vw, 56px);}
.sc-site .sc-cmod__hero .sc-eyebrow {color: rgba(255,255,255,.9); text-shadow: 0 1px 10px rgba(0,0,0,.45); margin-bottom: 1rem;}
.sc-site .sc-cmod__hero h2 {color: var(--sc-paper); font-size: calc(clamp(28px, 3vw, 46px) * var(--sc-fs, 1)); max-width: 22ch; text-shadow: 0 2px 20px rgba(0,0,0,.35);--h2:calc(clamp(28px, 3vw, 46px) * var(--sc-fs, 1));}
.sc-site .sc-cmod__stats {display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--sc-line); margin: 0;}
.sc-site .sc-cmod__stats > div {padding: 24px clamp(20px, 2.4vw, 32px); border-left: 1px solid var(--sc-line);}
.sc-site .sc-cmod__stats > div:first-child {border-left: 0;}
.sc-site .sc-cmod__stats .sc-dt {font-family: var(--sc-display); font-weight: 600; font-size: calc(11px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-cmod__stats .sc-dd {margin: .5rem 0 0; color: var(--sc-ink); font-size: calc(15.5px * var(--sc-fs, 1)); line-height: 1.5;}
.sc-site .sc-cmod__stats a, .sc-site .sc-cmod__body a:not(.sc-btn) {text-underline-offset: 3px;}
.sc-site .sc-cmod__body a > .wp-block-button__link:not(.sc-btn) {text-underline-offset: 3px;}
.sc-site .sc-cmod__body {padding: clamp(32px, 4vw, 56px); display: grid; gap: clamp(36px, 4vw, 56px);}
.sc-site .sc-cmod__two {display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 56px);}
.sc-site .sc-cmod h3 {font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .26em; text-transform: uppercase; color: var(--sc-ink); margin-bottom: 1rem;--h3:calc(12.5px * var(--sc-fs, 1));}
.sc-site .sc-cmod__hl {display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 clamp(20px, 3vw, 40px); border-top: 1px solid var(--sc-line);}
.sc-site .sc-cmod__hl li {display: flex; gap: 14px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--sc-line); color: var(--sc-ink); font-size: calc(15.5px * var(--sc-fs, 1)); line-height: 1.4;}
.sc-site .sc-ico {flex: 0 0 26px; width: 26px; height: 26px; color: var(--sc-ink);}
.sc-site .sc-cmod__cmp {display: grid; grid-template-columns: repeat(3, 1fr); background: var(--sc-mist);}
.sc-site .sc-cmod__cmp > div {padding: 26px clamp(20px, 2.4vw, 32px);}
.sc-site .sc-cmod__cmp strong {display: block; font-family: var(--sc-display); font-weight: 200; font-size: calc(clamp(30px, 2.8vw, 44px) * var(--sc-fs, 1)); line-height: 1.05; letter-spacing: .03em; text-transform: uppercase; color: var(--sc-ink);}
.sc-site .sc-cmod__cmp span {display: block; margin-top: .6rem; font-size: calc(14.5px * var(--sc-fs, 1)); color: var(--sc-stone);}
.sc-site .sc-cmod__take {margin: 0; padding-left: clamp(22px, 2.4vw, 34px); border-left: 1px solid var(--sc-ink);}
.sc-site .sc-cmod__take blockquote, .sc-site .sc-cmod__take p:where(:not(.sc-p0)) {margin: 0; font-family: var(--sc-display); font-weight: 300; font-size: calc(clamp(20px, 1.8vw, 26px) * var(--sc-fs, 1)); line-height: 1.45; color: var(--sc-ink);}
.sc-site .sc-cmod__take cite {display: block; margin-top: 1rem; font-style: normal; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-cmod__cta {display: flex; flex-wrap: wrap; gap: 14px; padding-top: 8px;}
.sc-site .sc-cmod__credit {top: auto; bottom: 10px;}
.sc-site .sc-facts {display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--sc-line); margin: clamp(48px, 5vw, 80px) 0 0;}
.sc-site .sc-facts > div {padding: 26px 26px 26px 0; border-bottom: 1px solid var(--sc-line);}
.sc-site .sc-facts > div + div {padding-left: 26px; border-left: 1px solid var(--sc-line);}
.sc-site .sc-facts .sc-dt {font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-facts .sc-dd {margin: .6rem 0 0; color: var(--sc-ink); font-size: calc(16px * var(--sc-fs, 1)); line-height: 1.5;}
.sc-site .sc-facts .sc-dd strong {display: block; font-family: var(--sc-display); font-weight: 200; font-size: calc(clamp(30px, 2.8vw, 44px) * var(--sc-fs, 1)); line-height: 1.05; letter-spacing: .03em; margin-bottom: .3rem;}
.sc-site .sc-plate {display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(40px, 5.5vw, 100px); align-items: start;}
.sc-site .sc-plate__media {position: sticky; top: 130px; height: calc(100vh - 170px); min-height: 480px; overflow: hidden; background: #222;}
.sc-site .sc-plate__media img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.03); transition: opacity 900ms var(--sc-ease), transform 1400ms var(--sc-ease);}
.sc-site .sc-plate__media img:first-of-type {opacity: 1; transform: none;}
.sc-site .sc-plate__media.sc-is-live img:first-of-type {opacity: 0; transform: scale(1.03);}
.sc-site .sc-plate__media.sc-is-live img.sc-is-shown {opacity: 1; transform: none;}
.sc-site .sc-plate__count {position: absolute; z-index: 2; left: 22px; bottom: 18px; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .3em; color: var(--sc-paper); text-shadow: 0 1px 10px rgba(0,0,0,.6);}
.sc-site .sc-chapter {padding-block: clamp(56px, 9vh, 112px); min-height: 60vh; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; border-bottom: 1px solid var(--sc-line);}
.sc-site .sc-chapter:first-of-type {padding-top: 0;}
.sc-site .sc-chapter:last-of-type {border-bottom: 0;}
.sc-site .sc-chapter__i {font-family: var(--sc-display); font-weight: 200; font-size: calc(clamp(54px, 5vw, 84px) * var(--sc-fs, 1)); line-height: .9; color: var(--sc-ink); margin: 0 0 1.2rem;}
.sc-site .sc-chapter h2 {font-size: calc(clamp(28px, 2.8vw, 44px) * var(--sc-fs, 1)); margin-bottom: 1.4rem; max-width: 16ch;--h2:calc(clamp(28px, 2.8vw, 44px) * var(--sc-fs, 1));}
.sc-site .sc-chapter p:where(:not(.sc-p0)) {max-width: 56ch;}
.sc-site .sc-chapter .sc-tlink, .sc-site .sc-chapter a.sc-btn {margin-top: 1.6rem;}
.sc-site .sc-chapter div.wp-block-button.sc-btn {margin-top: 1.6rem;}
.sc-site .sc-chapter .sc-links {display: flex; flex-wrap: wrap; gap: 4px 30px; margin-top: 1.4rem;}
.sc-site .sc-chapter__figure {display: none; margin: 0 0 2rem;}
.sc-site .sc-checks {list-style: none; margin: .6rem 0 0; padding: 0; border-top: 1px solid var(--sc-line); width: 100%;}
.sc-site .sc-checks li {padding: 18px 0; border-bottom: 1px solid var(--sc-line);}
.sc-site .sc-checks strong {display: block; font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .2em; text-transform: uppercase; color: var(--sc-ink); margin-bottom: .4rem;}
.sc-site .sc-quote-in {margin: 0; font-family: var(--sc-display); font-weight: 300; font-size: calc(clamp(21px, 1.8vw, 27px) * var(--sc-fs, 1)); line-height: 1.45; color: var(--sc-ink);}
.sc-site .sc-quote-in + cite {display: block; margin-top: 1rem; font-style: normal; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-daily {display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(28px, 3vw, 52px);}
.sc-site .sc-daily h3 {display: flex; align-items: center; gap: 12px; font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; margin-bottom: 1rem;--h3:calc(12.5px * var(--sc-fs, 1));}
.sc-site .sc-daily ul {border-top: 1px solid var(--sc-line);}
.sc-site .sc-daily li {padding: 14px 0; border-bottom: 1px solid var(--sc-line); font-size: calc(15.5px * var(--sc-fs, 1)); line-height: 1.5;}
.sc-site .sc-daily li a {text-underline-offset: 3px;}
.sc-site .sc-daily__note {margin-top: 2.4rem; font-size: calc(14.5px * var(--sc-fs, 1)); color: var(--sc-stone); max-width: 80ch;}
.sc-site .sc-reports {display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(20px, 2.4vw, 40px);}
.sc-site .sc-report {text-decoration: none; display: block;}
.sc-site a.sc-report {text-decoration: none;}
.sc-site .sc-report img {width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: 0% 50%; margin-bottom: 1.1rem; transition: transform 1200ms var(--sc-ease);}
.sc-site .sc-report:hover img {transform: scale(1.03);}
.sc-site .sc-report h3 {font-size: calc(19px * var(--sc-fs, 1)); line-height: 1.35;--h3:calc(19px * var(--sc-fs, 1));}
.sc-site .sc-idx--lg {min-height: clamp(420px, 60vh, 640px);}
.sc-site .sc-idx--search {min-height: 150px;}
.sc-site .sc-idx + .sc-idx {margin-top: 3px;}
.sc-site .sc-chips {margin-top: clamp(48px, 5vw, 80px);}
.sc-site .sc-chips__label {font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .26em; text-transform: uppercase; color: var(--sc-stone); margin: 0 0 1rem;}
.sc-site .sc-chips ul {display: flex; flex-wrap: wrap; gap: 10px;}
.sc-site .sc-chip {display: inline-flex; align-items: center; min-height: 46px; padding: 12px 20px; border: 1px solid var(--sc-line); text-decoration: none; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .2em; text-transform: uppercase; color: var(--sc-ink); transition: background 300ms var(--sc-ease), color 300ms var(--sc-ease), border-color 300ms var(--sc-ease);}
.sc-site a.sc-chip {text-decoration: none;}
.sc-site .sc-chip:hover {background: var(--sc-ink); color: var(--sc-paper); border-color: var(--sc-ink);}
.sc-site .sc-hvbar {margin-top: 2.4rem; max-width: 680px;}
.sc-site .sc-hvbar__row {display: flex; background: var(--sc-paper); box-shadow: 0 20px 50px rgba(0,0,0,.25);}
.sc-site .sc-hvbar input {flex: 1; min-width: 0; border: 0; padding: 0 22px; min-height: 64px; font: inherit; font-size: calc(16px * var(--sc-fs, 1)); color: var(--sc-ink); background: transparent;}
.sc-site .sc-hvbar input::placeholder {color: var(--sc-stone);}
.sc-site .sc-hvbar a.sc-btn {margin: 8px; min-height: 48px;}
.sc-site .sc-hvbar .sc-btn > .wp-block-button__link {min-height: 48px;}
.sc-site .sc-hvbar div.wp-block-button.sc-btn {margin: 8px;}
.sc-site .sc-hvbar__tag {display: block; margin-top: .9rem; font-size: calc(13px * var(--sc-fs, 1)); color: rgba(255,255,255,.88); text-shadow: 0 1px 10px rgba(0,0,0,.5);}
.sc-site .sc-filter {display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: clamp(32px, 3.4vw, 52px);}
.sc-site .sc-filter button {min-height: 46px; padding: 12px 20px; border: 1px solid var(--sc-line); font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .2em; text-transform: uppercase; color: var(--sc-ink); transition: background 300ms var(--sc-ease), color 300ms var(--sc-ease), border-color 300ms var(--sc-ease);}
.sc-site .sc-filter button:hover, .sc-site .sc-filter button[aria-pressed="true"] {background: var(--sc-ink); color: var(--sc-paper); border-color: var(--sc-ink);}
.sc-site .sc-sold {display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(34px, 3vw, 52px) clamp(16px, 1.6vw, 26px);}
.sc-site .sc-sold__card[hidden] {display: none;}
.sc-site .sc-sold__card figure {margin: 0 0 1.1rem; overflow: hidden;}
.sc-site .sc-sold__card img {width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1200ms var(--sc-ease);}
.sc-site .sc-sold__card:hover img {transform: scale(1.04);}
.sc-site .sc-sold__meta {font-family: var(--sc-display); font-weight: 600; font-size: calc(11px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-stone); margin: 0 0 .5rem;}
.sc-site .sc-sold__card h3 {font-size: calc(19px * var(--sc-fs, 1)); line-height: 1.3;--h3:calc(19px * var(--sc-fs, 1));}
.sc-site .sc-sold__city {margin: .2rem 0 0; color: var(--sc-stone); font-size: calc(15px * var(--sc-fs, 1));}
.sc-site .sc-sold__specs {margin: .7rem 0 0; font-size: calc(14px * var(--sc-fs, 1)); color: var(--sc-graphite);}
.sc-site .sc-sold__price {margin: .5rem 0 0; font-family: var(--sc-display); font-weight: 300; font-size: calc(22px * var(--sc-fs, 1)); letter-spacing: .02em; color: var(--sc-ink);}
.sc-site .sc-sold__src {margin-top: clamp(40px, 4vw, 64px); font-size: calc(13.5px * var(--sc-fs, 1)); color: var(--sc-stone); max-width: 90ch;}
.sc-site .sc-tile__price {display: block; margin-top: .4rem; font-family: var(--sc-display); font-weight: 300; font-size: calc(24px * var(--sc-fs, 1)); letter-spacing: .02em;}
.sc-site .sc-bcols {display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 5vw, 96px);}
.sc-site .sc-bcol__head {position: relative; display: flex; align-items: flex-end; min-height: clamp(300px, 34vw, 440px); color: var(--sc-paper); overflow: hidden; margin-bottom: 8px;}
.sc-site .sc-bcol__head img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.sc-site .sc-bcol__head::before {content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.18) 60%, rgba(0,0,0,0) 100%);}
.sc-site .sc-bcol__head div {position: relative; z-index: 2; padding: clamp(22px, 2.4vw, 36px);}
.sc-site .sc-bcol__head h2 {color: var(--sc-paper); font-size: calc(clamp(28px, 2.6vw, 42px) * var(--sc-fs, 1));--h2:calc(clamp(28px, 2.6vw, 42px) * var(--sc-fs, 1));}
.sc-site .sc-bcol__head p:where(:not(.sc-p0)) {margin: .6rem 0 0; color: rgba(255,255,255,.92); text-shadow: 0 1px 10px rgba(0,0,0,.4);}
.sc-site .sc-bcol__list a {display: block; padding: 22px 0; border-bottom: 1px solid var(--sc-line); text-decoration: none;}
.sc-site .sc-bcol__list h3 {font-size: calc(clamp(19px, 1.45vw, 22px) * var(--sc-fs, 1)); line-height: 1.35; transition: color 300ms var(--sc-ease);--h3:calc(clamp(19px, 1.45vw, 22px) * var(--sc-fs, 1));}
.sc-site .sc-bcol__list a:hover h3 {text-decoration: underline; text-underline-offset: 4px;}
.sc-site .sc-bcol__list .sc-post__meta {margin-bottom: .5rem;}
.sc-site .sc-article {max-width: 760px; margin: 0 auto;}
.sc-site .sc-article > p:first-of-type:where(:not(.sc-p0)) {font-size: calc(clamp(19px, 1.45vw, 22px) * var(--sc-fs, 1)); line-height: 1.6; font-weight: 300; color: var(--sc-ink);}
.sc-site .sc-article h2 {font-size: calc(clamp(24px, 2.2vw, 34px) * var(--sc-fs, 1)); margin: 3rem 0 1.2rem;--h2:calc(clamp(24px, 2.2vw, 34px) * var(--sc-fs, 1));}
.sc-site .sc-article figure {margin: 0 0 2.6rem;}
.sc-site .sc-article figure img {width: 100%; aspect-ratio: 16 / 9; object-fit: cover;}
.sc-site .sc-article figcaption {margin-top: .8rem; font-size: calc(14px * var(--sc-fs, 1)); color: var(--sc-stone);}
.sc-site .sc-article ul.sc-facts-list {border-top: 1px solid var(--sc-line); margin: 0 0 1.6rem;}
.sc-site .sc-article ul.sc-facts-list li {padding: 14px 0; border-bottom: 1px solid var(--sc-line);}
.sc-site .sc-nums {display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 2rem 0 2.2rem; border-top: 1px solid var(--sc-line); border-bottom: 1px solid var(--sc-line);}
.sc-site .sc-nums > div {padding: 22px 16px 22px 0;}
.sc-site .sc-nums > div + div {padding-left: 16px; border-left: 1px solid var(--sc-line);}
.sc-site .sc-nums strong {display: block; font-family: var(--sc-display); font-weight: 200; font-size: calc(clamp(38px, 3.6vw, 56px) * var(--sc-fs, 1)); line-height: 1; color: var(--sc-ink);}
.sc-site .sc-nums span {display: block; margin-top: .5rem; font-size: calc(14px * var(--sc-fs, 1)); color: var(--sc-stone); line-height: 1.4;}
.sc-site .sc-post-src {margin-top: 2.6rem; padding-top: 1.4rem; border-top: 1px solid var(--sc-line); font-size: calc(13.5px * var(--sc-fs, 1)); color: var(--sc-stone);}
.sc-site .sc-post-links {display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 32px; margin-top: 3rem; border-top: 1px solid var(--sc-ink);}
.sc-site .sc-post-links a {display: flex; justify-content: space-between; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--sc-line); text-decoration: none; font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .18em; text-transform: uppercase; color: var(--sc-ink); min-height: 44px;}
.sc-site .sc-post-links a::after {content: ""; width: 18px; height: 1px; background: currentColor; align-self: center;}
.sc-site .sc-byline {display: flex; align-items: center; gap: 16px; margin-top: 2rem;}
.sc-site .sc-byline img {width: 56px; height: 56px; object-fit: cover; object-position: 50% 20%;}
.sc-site .sc-byline p:where(:not(.sc-p0)) {margin: 0; font-size: calc(15px * var(--sc-fs, 1)); color: var(--sc-graphite); line-height: 1.5;}
.sc-site .sc-byline strong {display: block; font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); letter-spacing: .2em; text-transform: uppercase; color: var(--sc-ink);}
.sc-site .sc-smap {display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(40px, 4vw, 64px) clamp(32px, 4vw, 72px);}
.sc-site .sc-smap h2 {font-size: calc(clamp(22px, 1.8vw, 28px) * var(--sc-fs, 1)); margin-bottom: 1.2rem;--h2:calc(clamp(22px, 1.8vw, 28px) * var(--sc-fs, 1));}
.sc-site .sc-smap ul {border-top: 1px solid var(--sc-line);}
.sc-site .sc-smap li a {display: block; padding: 12px 0; min-height: 44px; border-bottom: 1px solid var(--sc-line); text-decoration: none; color: var(--sc-ink);}
.sc-site .sc-smap li a:hover {text-decoration: underline; text-underline-offset: 4px;}
.sc-site .sc-smap .sc-smap__wide {grid-column: 1 / -1;}
.sc-site .sc-smap .sc-smap__wide ul {columns: 2 320px; column-gap: clamp(32px, 4vw, 72px); border-top: 0;}
.sc-site .sc-smap .sc-smap__wide li {break-inside: avoid;}
.sc-site .sc-legal {max-width: 820px;}
.sc-site .sc-legal h2 {font-size: calc(clamp(22px, 1.8vw, 28px) * var(--sc-fs, 1)); margin: 2.8rem 0 1rem;--h2:calc(clamp(22px, 1.8vw, 28px) * var(--sc-fs, 1));}
.sc-site .sc-legal h3 {font-size: calc(19px * var(--sc-fs, 1)); margin: 1.8rem 0 .6rem;--h3:calc(19px * var(--sc-fs, 1));}
.sc-site .sc-legal p:where(:not(.sc-p0)), .sc-site .sc-legal li {color: var(--sc-graphite);}
.sc-site .sc-legal ul {list-style: disc; padding-left: 1.3em; margin: 0 0 1.1em;}
.sc-site .sc-legal li + li {margin-top: .4em;}
.sc-site .sc-legal a {text-underline-offset: 3px;}
.sc-site .sc-legal__updated {font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .22em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-contact {display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(36px, 5vw, 96px); align-items: start;}
.sc-site .sc-contact .sc-form {border: 0; padding: 0; background: transparent;}
.sc-site .sc-contact .sc-form h3 {margin-bottom: .6rem;}
.sc-site .sc-ccard {background: var(--sc-mist); position: sticky; top: 140px;}
.sc-site .sc-ccard > img {width: 100%; aspect-ratio: 5 / 4; object-fit: cover; object-position: 50% 22%;}
.sc-site .sc-ccard__in {padding: clamp(28px, 3vw, 44px);}
.sc-site .sc-ccard h3 {font-weight: 300; font-size: calc(clamp(24px, 2vw, 30px) * var(--sc-fs, 1)); text-transform: uppercase; letter-spacing: .03em;--h3:calc(clamp(24px, 2vw, 30px) * var(--sc-fs, 1));}
.sc-site .sc-ccard__role {margin: .5rem 0 0; color: var(--sc-stone); font-size: calc(15px * var(--sc-fs, 1));}
.sc-site .sc-ccard dl {margin: 1.8rem 0 0; border-top: 1px solid var(--sc-line);}
.sc-site .sc-ccard dl > div {padding: 16px 0; border-bottom: 1px solid var(--sc-line);}
.sc-site .sc-ccard .sc-dt {font-family: var(--sc-display); font-weight: 600; font-size: calc(11px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-ccard .sc-dd {margin: .35rem 0 0; color: var(--sc-ink); font-size: calc(16.5px * var(--sc-fs, 1));}
.sc-site .sc-ccard .sc-dd a {text-decoration: none;}
.sc-site .sc-ccard .sc-dd a:hover {text-decoration: underline; text-underline-offset: 3px;}
.sc-site .sc-ccard .sc-yc-mark {height: 26px; width: auto; margin-top: 1.8rem;}
.sc-site .sc-cx-para--left .sc-wrap {justify-content: flex-start;}
@media (max-width: 1100px) {
  .sc-site .sc-tiles--4 {grid-template-columns: repeat(2, 1fr);}
  .sc-site .sc-sold {grid-template-columns: repeat(3, 1fr);}
  .sc-site .sc-daily, .sc-site .sc-reports {grid-template-columns: repeat(2, 1fr);}
  .sc-site .sc-cm, .sc-site .sc-cm--side {grid-column: span 6;}
  .sc-site .sc-cm--xl {grid-column: 1 / -1; grid-row: auto; min-height: clamp(460px, 64vh, 640px);}
  .sc-site .sc-clist {grid-template-columns: repeat(3, 1fr);}
  .sc-site .sc-smap {grid-template-columns: 1fr 1fr;}
}
@media (max-width: 1024px) {
  .sc-site .sc-plate {grid-template-columns: 1fr; gap: 0;}
  .sc-site .sc-plate__media {display: none;}
  .sc-site .sc-chapter__figure {display: block;}
  .sc-site .sc-chapter__figure img {width: 100%; aspect-ratio: 4 / 3; object-fit: cover;}
  .sc-site .sc-chapter {min-height: 0; display: block; padding-block: clamp(44px, 7vw, 72px);}
}
@media (max-width: 900px) {
  .sc-site .sc-intro2, .sc-site .sc-faq-wrap, .sc-site .sc-res__grid, .sc-site .sc-bio, .sc-site .sc-vblock, .sc-site .sc-guide, .sc-site .sc-contact, .sc-site .sc-bcols, .sc-site .sc-cmod__two {grid-template-columns: 1fr;}
  .sc-site .sc-faq-wrap__head, .sc-site .sc-bio__media, .sc-site .sc-ccard {position: static;}
  .sc-site .sc-bio__media {max-width: 520px;}
  .sc-site .sc-bleed, .sc-site .sc-bleed--tall {grid-template-columns: 1fr; min-height: 0;}
  .sc-site .sc-bleed__media, .sc-site .sc-bleed--rev .sc-bleed__media {order: -1; min-height: 0; aspect-ratio: 4 / 3;}
  .sc-site .sc-bleed__body, .sc-site .sc-bleed--rev .sc-bleed__body {padding: clamp(48px, 9vw, 72px) var(--sc-gutter);}
  .sc-site .sc-step {min-height: 0;}
  .sc-site .sc-tiles, .sc-site .sc-tiles--2 {grid-template-columns: 1fr;}
  .sc-site .sc-tile {min-height: clamp(420px, 70vh, 560px);}
  .sc-site .sc-res ul {grid-template-columns: 1fr;}
  .sc-site .sc-revs__grid {grid-template-columns: 1fr;}
  .sc-site .sc-facts {grid-template-columns: 1fr 1fr;}
  .sc-site .sc-facts > div + div {padding-left: 0; border-left: 0;}
  .sc-site .sc-facts > div:nth-child(even) {padding-left: 22px; border-left: 1px solid var(--sc-line);}
  .sc-site .sc-cmod__stats {grid-template-columns: 1fr 1fr;}
  .sc-site .sc-cmod__stats > div:nth-child(3) {border-left: 0;}
  .sc-site .sc-cmod__stats > div:nth-child(n+3) {border-top: 1px solid var(--sc-line);}
  .sc-site .sc-cmod__hl {grid-template-columns: 1fr 1fr;}
  .sc-site .sc-statement {background-attachment: scroll;}
  .sc-site .sc-statement::before {background: linear-gradient(0deg, rgba(8,8,8,.78) 0%, rgba(8,8,8,.5) 50%, rgba(8,8,8,.15) 85%);}
  .sc-site .sc-statement {align-items: flex-end; padding-bottom: 64px;}
  .sc-site .sc-post-links {grid-template-columns: 1fr;}
}
@media (max-width: 640px) {
  .sc-site .sc-ph {min-height: clamp(520px, 86svh, 700px);}
  .sc-site .sc-ph::before {background: linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,0) 20%), linear-gradient(0deg, rgba(8,8,8,.8) 0%, rgba(8,8,8,.5) 45%, rgba(8,8,8,.12) 74%, rgba(8,8,8,0) 90%);}
  .sc-site .sc-ph h1 {font-size: calc(clamp(32px, 9vw, 44px) * var(--sc-fs, 1));--h1:calc(clamp(32px, 9vw, 44px) * var(--sc-fs, 1));}
  .sc-site .sc-ph__in {padding-bottom: 56px;}
  .sc-site .sc-ph__eyebrow {font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .26em;}
  .sc-site .sc-lh {padding-top: 150px;}
  .sc-site .sc-tiles--4, .sc-site .sc-sold, .sc-site .sc-daily, .sc-site .sc-reports, .sc-site .sc-clist, .sc-site .sc-smap, .sc-site .sc-mstrip {grid-template-columns: 1fr 1fr;}
  .sc-site .sc-sold, .sc-site .sc-daily, .sc-site .sc-reports, .sc-site .sc-smap {grid-template-columns: 1fr;}
  .sc-site .sc-clist {grid-template-columns: 1fr;}
  .sc-site .sc-cm, .sc-site .sc-cm--side {grid-column: 1 / -1;}
  .sc-site .sc-facts, .sc-site .sc-cmod__cmp, .sc-site .sc-cmod__hl, .sc-site .sc-nums {grid-template-columns: 1fr 1fr;}
  .sc-site .sc-nums > div:nth-child(3) {padding-left: 0; border-left: 0;}
  .sc-site .sc-nums > div:nth-child(n+3) {border-top: 1px solid var(--sc-line);}
  .sc-site .sc-cmod {width: 100vw; max-height: 100vh; height: 100vh;}
  .sc-site .sc-cmod__stats, .sc-site .sc-cmod__hl {grid-template-columns: 1fr;}
  .sc-site .sc-cmod__stats > div {border-left: 0 !important; border-top: 1px solid var(--sc-line);}
  .sc-site .sc-cmod__stats > div:first-child {border-top: 0;}
  .sc-site .sc-creds {grid-template-columns: 1fr;}
  .sc-site .sc-form__grid {grid-template-columns: 1fr;}
  .sc-site .sc-field--half {grid-column: 1 / -1;}
  .sc-site .sc-hvbar__row {flex-direction: column;}
  .sc-site .sc-hvbar a.sc-btn {margin: 0 8px 8px;}
  .sc-site .sc-hvbar div.wp-block-button.sc-btn {margin: 0 8px 8px;}
  .sc-site .sc-gallery {columns: 2 140px;}
  .sc-site .sc-guide__cover {grid-template-columns: 84px 1fr;}
  .sc-site .sc-guide__cover img {width: 84px;}
}
@media (prefers-reduced-motion: reduce) {
  .sc-site .sc-statement {background-attachment: scroll;}
  .sc-site .sc-tile img, .sc-site .sc-cm img, .sc-site .sc-vid img, .sc-site .sc-sold__card img, .sc-site .sc-report img, .sc-site .sc-mstrip img, .sc-site .sc-gallery img, .sc-site .sc-plate__media img {transition: none;}
}
.sc-site .sc-g4 {display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(28px, 3vw, 56px); border-top: 1px solid var(--sc-line); padding-top: clamp(32px, 3vw, 48px);}
.sc-site .sc-g4 .sc-ico {width: 34px; height: 34px; margin-bottom: 1.4rem;}
.sc-site .sc-g4 h3 {font-weight: 300; font-size: calc(clamp(21px, 1.6vw, 25px) * var(--sc-fs, 1)); margin-bottom: .8rem;--h3:calc(clamp(21px, 1.6vw, 25px) * var(--sc-fs, 1));}
.sc-site .sc-g4 p:where(:not(.sc-p0)) {font-size: calc(16px * var(--sc-fs, 1)); color: var(--sc-graphite);}
@media (max-width: 1100px) {
  .sc-site .sc-g4 {grid-template-columns: 1fr 1fr;}
}
@media (max-width: 640px) {
  .sc-site .sc-g4 {grid-template-columns: 1fr;}
}
.sc-site .sc-cm {cursor: auto; isolation: isolate;}
.sc-site .sc-cm img {z-index: -2;}
.sc-site .sc-cm::before {z-index: -1;}
.sc-site .sc-cm__body {position: static;}
.sc-site .sc-cm__more {color: var(--sc-paper); cursor: pointer; text-decoration: none;}
.sc-site a.sc-cm__more {text-decoration: none;}
.sc-site .sc-cm__more::before {content: ""; position: absolute; inset: 0; z-index: 3;}
.sc-site .sc-cm__more:focus-visible {outline: none;}
.sc-site .sc-cm__more:focus-visible::before {outline: 2px solid var(--sc-paper); outline-offset: -8px;}
.sc-site .sc-cm__credit {z-index: 4;}
.sc-site .sc-guide__card {background: var(--sc-paper); border: 1px solid var(--sc-line); padding: clamp(30px, 3.4vw, 56px);}
.sc-site .sc-guide__card h2 {font-size: calc(clamp(26px, 2.4vw, 38px) * var(--sc-fs, 1));--h2:calc(clamp(26px, 2.4vw, 38px) * var(--sc-fs, 1));}
.sc-site .sc-guide__card .sc-lede {margin: 1.4rem 0 .8rem;}
.sc-site .sc-guide__card a.sc-btn {margin-top: 1.8rem;}
.sc-site .sc-guide__card div.wp-block-button.sc-btn {margin-top: 1.8rem;}
.sc-site .sc-guide__card .sc-guide__cover {border-bottom: 0; padding-bottom: 0;}
.sc-site .sc-guide__card .sc-guide__cover h2 {font-size: calc(clamp(24px, 2vw, 32px) * var(--sc-fs, 1));--h2:calc(clamp(24px, 2vw, 32px) * var(--sc-fs, 1));}
.sc-site .sc-bcol__card {margin: 0 0 1.6rem; overflow: hidden;}
.sc-site .sc-bcol__card img {width: 100%; aspect-ratio: 16 / 9; object-fit: cover;}
.sc-site .sc-bcol__title {font-size: calc(clamp(28px, 2.6vw, 42px) * var(--sc-fs, 1));}
.sc-site .sc-bcol__sub {margin: .6rem 0 1.4rem; color: var(--sc-stone);}
.sc-site .sc-ccard__more {margin: 1.6rem 0 0; font-size: calc(15px * var(--sc-fs, 1)); color: var(--sc-graphite);}
.sc-site .sc-ccard__more a {text-underline-offset: 3px;}
.sc-site .sc-intro2 {grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); row-gap: clamp(26px, 3vw, 44px);}
.sc-site .sc-intro2__head {grid-column: 1 / -1;}
.sc-site .sc-intro2 h2 {max-width: 1080px;}
.sc-site .sc-intro2__body {grid-column: 2;}
@media (max-width: 900px) {
  .sc-site .sc-intro2__body {grid-column: auto;}
}
.sc-site .sc-bio__body h2, .sc-site .sc-vblock h2, .sc-site .sc-faq-wrap__head h2, .sc-site .sc-res h2, .sc-site .sc-chapter h2 {max-width: none;}
.sc-site .sc-bleed__body .sc-post-title {font-size: calc(clamp(24px, 2.1vw, 32px) * var(--sc-fs, 1)); line-height: 1.3; margin-top: 1.4rem; max-width: 26ch;}
.sc-site .sc-qs {display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 1.8vw, 28px);}
.sc-site .sc-qs__card {display: block; text-decoration: none; color: var(--sc-ink); background: var(--sc-paper);}
.sc-site a.sc-qs__card {text-decoration: none;}
.sc-site .sc-qs__media {position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: #222;}
.sc-site .sc-qs__media img {width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--sc-ease);}
.sc-site .sc-qs__card:hover .sc-qs__media img {transform: scale(1.05);}
.sc-site .sc-qs__media::after {content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,0) 30%); pointer-events: none;}
.sc-site .sc-qs__i {position: absolute; z-index: 2; left: 18px; top: 16px; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .3em; color: var(--sc-paper); text-shadow: 0 1px 10px rgba(0,0,0,.45);}
.sc-site .sc-qs__credit {position: absolute; z-index: 2; right: 10px; bottom: 8px; font-size: calc(11px * var(--sc-fs, 1)); color: rgba(255,255,255,.92); text-shadow: 0 1px 6px rgba(0,0,0,.7);}
.sc-site .sc-qs__body {padding: 22px 22px 26px;}
.sc-site .sc-qs__body h3 {font-weight: 300; font-size: calc(clamp(20px, 1.55vw, 25px) * var(--sc-fs, 1)); line-height: 1.2; text-transform: uppercase; letter-spacing: .04em;--h3:calc(clamp(20px, 1.55vw, 25px) * var(--sc-fs, 1));}
.sc-site .sc-qs__line {margin: .6rem 0 1.1rem; color: var(--sc-stone); font-size: calc(15px * var(--sc-fs, 1)); line-height: 1.5;}
.sc-site .sc-qs__go {display: inline-flex; align-items: center; gap: .8em; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; padding-block: 8px;}
.sc-site .sc-qs__go::after {content: ""; width: 28px; height: 1px; background: currentColor; transition: width 400ms var(--sc-ease);}
.sc-site .sc-qs__card:hover .sc-qs__go::after {width: 48px;}
.sc-site .sc-feed {margin-top: clamp(48px, 5vw, 80px);}
.sc-site .sc-feed__head {display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 10px 30px; margin-bottom: 1.4rem;}
.sc-site .sc-feed__head h3 {font-weight: 300; font-size: calc(clamp(22px, 1.9vw, 30px) * var(--sc-fs, 1)); text-transform: uppercase; letter-spacing: .04em;--h3:calc(clamp(22px, 1.9vw, 30px) * var(--sc-fs, 1));}
.sc-site .sc-idx--feed {min-height: 200px;}
.sc-site .sc-res__foot {grid-column: 1 / -1; margin: 1.6rem 0 0; font-size: calc(13px * var(--sc-fs, 1)); color: var(--sc-stone);}
.sc-site .sc-res__foot a {color: inherit; text-underline-offset: 3px;}
.sc-site .sc-chapter__figure figcaption {margin-top: .6rem; font-size: calc(12px * var(--sc-fs, 1)); color: var(--sc-stone);}
@media (max-width: 1100px) {
  .sc-site .sc-qs {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 480px) {
  .sc-site .sc-qs {grid-template-columns: 1fr;}
}
.sc-site .sc-hsearch {padding-top: 0;}
.sc-site .sc-hsearch__card {position: relative; z-index: 3; margin: calc(-1 * clamp(32px, 3.4vw, 52px)) 0 clamp(64px, 7vw, 112px); padding: clamp(18px, 2.4vw, 32px); background: var(--sc-paper); box-shadow: 0 24px 60px rgba(17, 17, 17, .14);}
.sc-site .sc-hsearch__card .sc-idx {min-height: 0; padding: clamp(10px, 1.4vw, 18px); border: 0;}
.sc-site .sc-qs--6 {grid-template-columns: repeat(3, 1fr);}
.sc-site .sc-qs--6 .sc-qs__media {aspect-ratio: 4 / 3;}
@media (max-width: 1100px) {
  .sc-site .sc-qs--6 {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 480px) {
  .sc-site .sc-qs--6 {grid-template-columns: 1fr;}
}
.sc-site .sc-qs__where {margin: 0 0 .7rem; font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .26em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-idx--map {min-height: clamp(560px, 72vh, 860px);}
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) #reports:where(:not(.sc-3p, .sc-3p *)) {scroll-margin-top: 90px;}
.sc-site .sc-cats {display: flex; flex-wrap: wrap; gap: 10px;}
.sc-site .sc-cats button {display: inline-flex; align-items: center; gap: .9em; min-height: 46px; padding: 12px 20px; border: 1px solid var(--sc-line); background: none; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .2em; text-transform: uppercase; color: var(--sc-ink); cursor: pointer; transition: background 300ms var(--sc-ease), color 300ms var(--sc-ease), border-color 300ms var(--sc-ease);}
.sc-site .sc-cats button span {font-weight: 500; font-size: calc(11px * var(--sc-fs, 1)); letter-spacing: .06em; color: var(--sc-stone); transition: color 300ms var(--sc-ease);}
.sc-site .sc-cats button:hover, .sc-site .sc-cats button[aria-pressed="true"] {background: var(--sc-ink); color: var(--sc-paper); border-color: var(--sc-ink);}
.sc-site .sc-cats button:hover span, .sc-site .sc-cats button[aria-pressed="true"] span {color: rgba(255,255,255,.75);}
.sc-site .sc-cats button:focus-visible {outline: 2px solid var(--sc-ink); outline-offset: 3px;}
.sc-site .sc-cats__desc {margin: 26px 0 clamp(40px, 4vw, 64px); padding-bottom: 26px; border-bottom: 1px solid var(--sc-line);}
.sc-site .sc-cats__desc > div {display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 40px;}
.sc-site .sc-cats__desc > div[hidden] {display: none;}
.sc-site .sc-cats__desc p:where(:not(.sc-p0)) {margin: 0; max-width: 72ch; color: var(--sc-graphite);}
.sc-site .sc-pgrid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(44px, 4vw, 64px) clamp(20px, 2.2vw, 36px);}
.sc-site .sc-pc {position: relative; display: flex; flex-direction: column;}
.sc-site .sc-pc[hidden] {display: none;}
.sc-site .sc-pc__media {position: relative; overflow: hidden; aspect-ratio: 3 / 2; background: var(--sc-mist);}
.sc-site .sc-pc__media img {width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--sc-ease);}
.sc-site .sc-pc:hover .sc-pc__media img {transform: scale(1.04);}
.sc-site .sc-pc__cat {position: absolute; z-index: 2; left: 14px; top: 14px; padding: 8px 12px 7px; background: var(--sc-paper); font-family: var(--sc-display); font-weight: 600; font-size: calc(10.5px * var(--sc-fs, 1)); letter-spacing: .22em; text-transform: uppercase; color: var(--sc-ink);}
.sc-site .sc-pc__body {display: flex; flex-direction: column; flex: 1; padding-top: 22px;}
.sc-site .sc-pc__meta {margin: 0 0 .75rem; font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .22em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-pc h3 {font-size: calc(clamp(20px, 1.5vw, 24px) * var(--sc-fs, 1)); line-height: 1.3;--h3:calc(clamp(20px, 1.5vw, 24px) * var(--sc-fs, 1));}
.sc-site .sc-pc h3 a {color: inherit; text-decoration: none;}
.sc-site .sc-pc h3 a::after {content: ""; position: absolute; inset: 0; z-index: 3;}
.sc-site .sc-pc:hover h3 a {text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px;}
.sc-site .sc-pc h3 a:focus-visible {outline: none;}
.sc-site .sc-pc:focus-within {outline: 2px solid var(--sc-ink); outline-offset: 6px;}
.sc-site .sc-pc__ex {margin: .75rem 0 1.3rem; font-size: calc(15.5px * var(--sc-fs, 1)); line-height: 1.55; color: var(--sc-graphite);}
.sc-site .sc-pc__go {margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: .8em; font-family: var(--sc-display); font-weight: 600; font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-ink); padding-block: 8px;}
.sc-site .sc-pc__go::after {content: ""; width: 28px; height: 1px; background: currentColor; transition: width 400ms var(--sc-ease);}
.sc-site .sc-pc:hover .sc-pc__go::after {width: 48px;}
.sc-site .sc-pc--lead {grid-column: span 2; justify-content: flex-end; min-height: clamp(460px, 40vw, 620px); overflow: hidden;}
.sc-site .sc-pc--lead .sc-pc__media {position: absolute; inset: 0; aspect-ratio: auto;}
.sc-site .sc-pc--lead .sc-pc__media::after {content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.68) 55%, rgba(0,0,0,.16) 85%, rgba(0,0,0,0) 100%);}
.sc-site .sc-pc--lead .sc-pc__body {position: relative; z-index: 2; flex: 0 0 auto; padding: clamp(26px, 3vw, 48px); max-width: 800px;}
.sc-site .sc-pc--lead .sc-pc__meta {color: rgba(255,255,255,.9);}
.sc-site .sc-pc--lead .sc-pc__meta::before {content: "Latest report \00B7  ";}
.sc-site .sc-pc--lead h3 {color: var(--sc-paper); font-size: calc(clamp(28px, 2.6vw, 42px) * var(--sc-fs, 1)); line-height: 1.15;--h3:calc(clamp(28px, 2.6vw, 42px) * var(--sc-fs, 1));}
.sc-site .sc-pc--lead .sc-pc__ex {color: rgba(255,255,255,.92); font-size: calc(17px * var(--sc-fs, 1)); max-width: 56ch;}
.sc-site .sc-pc--lead .sc-pc__go {color: var(--sc-paper); margin-top: 0;}
.sc-site .sc-pc--lead:focus-within {outline-offset: 4px;}
.sc-site .sc-bquote {margin: 2rem 0 0; padding-left: 24px; border-left: 1px solid var(--sc-ink);}
.sc-site .sc-bquote p:where(:not(.sc-p0)) {margin: 0; font-family: var(--sc-display); font-weight: 300; font-size: calc(clamp(21px, 1.7vw, 27px) * var(--sc-fs, 1)); line-height: 1.4; color: var(--sc-ink); max-width: 30ch;}
.sc-site .sc-bquote cite {display: block; margin-top: 1rem; font-style: normal; font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-stone);}
.sc-site .sc-bleed__body .sc-bquote + .sc-tlink, .sc-site .sc-bleed__body .sc-bquote + :where(p:not([class])) > .sc-tlink {margin-top: 2rem;}
@media (max-width: 1100px) {
  .sc-site .sc-pgrid {grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media (max-width: 680px) {
  .sc-site .sc-pgrid {grid-template-columns: 1fr;}
  .sc-site .sc-pc--lead {grid-column: auto; min-height: 0;}
  .sc-site .sc-pc--lead .sc-pc__media {position: relative; inset: auto; aspect-ratio: 3 / 2;}
  .sc-site .sc-pc--lead .sc-pc__media::after {content: none;}
  .sc-site .sc-pc--lead .sc-pc__body {flex: 1; padding: 22px 0 0; max-width: none;}
  .sc-site .sc-pc--lead .sc-pc__meta {color: var(--sc-stone);}
  .sc-site .sc-pc--lead h3 {color: var(--sc-ink); font-size: calc(24px * var(--sc-fs, 1)); line-height: 1.25;--h3:calc(24px * var(--sc-fs, 1));}
  .sc-site .sc-pc--lead .sc-pc__ex {color: var(--sc-graphite); font-size: calc(15.5px * var(--sc-fs, 1));}
  .sc-site .sc-pc--lead .sc-pc__go {color: var(--sc-ink); margin-top: auto;}
  .sc-site .sc-cats {gap: 8px;}
  .sc-site .sc-cats button {gap: .6em; padding: 10px 12px; font-size: calc(11px * var(--sc-fs, 1)); letter-spacing: .13em;}
}
@media (prefers-reduced-motion: reduce) {
  .sc-site .sc-pc__media img {transition: none;}
}
@media (max-width: 900px) {
  .sc-site .sc-intro2 {grid-template-columns: 1fr;}
}
@media (min-width: 641px) {
  .sc-site .sc-sold--3 {grid-template-columns: repeat(3, 1fr);}
}
/* ==========================================================================
   Grapple · converter adaptation layer. Generated from
   grapple/css/converter-adapt.css.tmpl (cssbuild.py --layer adapt). Loaded AFTER
   mockup.css, before the project's own adapt.css.

   mock2grapple.py turns mockup markup into core blocks, and core wraps things the
   mockup never wrapped: figures around images, a div around every button, a
   paragraph around a lone link, flow-layout gaps between siblings. Each rule here
   maps one of those block-DOM differences back onto the mockup's DOM, for ANY
   converted mockup. Nothing here carries one client's value or one page's value;
   if a rule needs a colour, a size or a mockup class name, it belongs in the
   project's adapt.css. Prefix sc-, scope .sc-grapple.
   ========================================================================== */

/* ---------- core flow layout: the mockup has no block gap; every margin is its own.
   (0,1,0), after core's `:root :where(.is-layout-flow) > *` (0,1,0). Element and
   class rules from mockup.css outrank it. */
:where(.sc-grapple .entry-content) .is-layout-flow > *,
:where(.sc-grapple .entry-content) .is-layout-constrained > * { margin-block-start: 0; margin-block-end: 0; }

/* ---------- core image figure: a class-less figure is a wrapper the mockup never
   had, so it steps out of layout and the <img> is laid out exactly as in the
   mockup. Figures that ARE mockup figures carry `sc-fig` (or a mockup class) and
   keep their box. */
.sc-site :where(.sc-grapple .entry-content, .sc-chrome) figure.wp-block-image:not([class*="sc-"]) { display: contents; }

/* ---------- a CLASSED image: the converter had to put the mockup <img>'s classes
   on the core <figure> (core's className lives there), so the mockup's img rules
   (`.hero__img { position:absolute; inset:0; width:100%; height:100%;
   object-fit:cover }`) now size the FIGURE. The <img> must fill that box and take
   its crop from it, or every interior hero shows a strip of photo over flat grey
   (Steve, About agent, 375). Mockup figures (`sc-fig`) are excluded: their own img
   rules apply as written.
   Specificity (0,1,1) on purpose: above core's `.wp-block-image img { height:auto }`
   (0,1,1, earlier), BELOW every mockup img rule (`.sc-site .sc-bleed__media img`,
   (0,2,1)). At (0,4,2) it overrode those and stretched a photo whose figure carried
   only an inline-crop class (object-fit inherited `fill`). */
.sc-site :where(.sc-grapple .entry-content figure.wp-block-image[class*="sc-"]:not(.sc-fig),
                .sc-chrome figure.wp-block-image[class*="sc-"]:not(.sc-fig)) > img {
  width: 100%; height: 100%; object-fit: inherit; object-position: inherit;
}

/* ---------- <dt>/<dd> became paragraphs (sc-dt/sc-dd); keep the UA's own margins. */
.sc-site .sc-dt { margin: 0; }
.sc-site .sc-dd { margin: 0 0 0 40px; }

/* ---------- whole-card links: ONE real link per card, stretched over the card,
   so the card stays clickable and a screen reader hears one named link. */
.sc-site .sc-card-link { position: relative; }
.sc-site .sc-card-link .sc-stretch { text-decoration: none; }
/* The converter wraps the card's link in a paragraph; the mockup had a bare <span>, so
   the mockup's card paragraph rules (`.path p`, `.tile p`: margin, a 92% colour,
   text-shadow) styled the wrapper and every card's text sat 20 to 29px high (Steve).
   The wrapper takes EVERYTHING from the card body and has no box, so the link sits
   and inherits exactly as the mockup's span did. (A `color:inherit` on the stretch
   link once overrode the link's own colour; never add one.) */
.sc-site .sc-card-link p:has(> .sc-stretch:only-child) { all: inherit; display: contents; }
.sc-site .sc-card-link .sc-stretch::before { content: ""; position: absolute; inset: 0; z-index: 1; }
.sc-site .sc-card-link .sc-stretch:focus-visible { outline: none; }
.sc-site .sc-card-link:has(.sc-stretch:focus-visible) { outline: 2px solid currentColor; outline-offset: -6px; }

/* ---------- core buttons: the wrapper div is the flex item (the mockup's <a> was);
   the link fills whatever width the wrapper is given. */
.sc-site div.wp-block-button[class*="sc-btn"] > .wp-block-button__link { width: 100%; box-sizing: border-box; line-height: inherit; }
/* Core sets the button link's line-height to 1; the mockup's <a class="btn"> inherited
   the body's, so every button measured 3px short (Steve: 52 vs 55px). */
.sc-site div.wp-block-button[class*="sc-btn"] { line-height: inherit; }

/* ---------- parallax covers: the photo's crop comes from the SECTION, exactly as the
   mockup set it (its background-position, or a page's converted inline crop class).
   Core writes 50% 50% inline on the image div, hence !important on the inherit. (A
   first version hard-coded one page's crop onto every page.) */
.sc-site .wp-block-cover.has-parallax[class*="sc-"] > .wp-block-cover__image-background { background-position: inherit !important; }
/* Any photo cover whose mockup section paints a scrim or overlay with ::before or
   ::after: core's image layer is positioned too and would paint over it (a white
   claim sat on bare photo). The inner container is z 2 (Grapple reset). */
.sc-site .wp-block-cover[class*="sc-"]::before,
.sc-site .wp-block-cover[class*="sc-"]::after { z-index: 1; }
/* ==========================================================================
   The Calley Group · adaptation layer (hand-written).

   mockup.css is GENERATED from the approved mockup stylesheet and carries every
   design value. This file only (1) maps the mockup's DOM onto core-block DOM
   where the two differ, (2) adds what a WordPress site has and a mockup does not
   (admin bar, Astra defaults, third-party zones), and (3) the accessibility work.
   If you are about to type a colour or a font size here, it probably belongs in
   the mockup instead.
   ========================================================================== */

/* The converter-generic mappings that started here (flow-layout gaps, class-less and
   classed image figures, dt/dd, whole-card links, core button wrappers, parallax crop,
   cover scrim stacking) now live in grapple/css/converter-adapt.css.tmpl, loaded just
   before this file; the accessibility panel and its generic settings in
   grapple/css/a11y-panel.css.tmpl, loaded just after it (2026-09-24). What stays here
   names this mockup's own classes or values. */

/* ---------- HOME HERO: core video cover wearing the mockup's .hero */
.sc-site .sc-hero > .wp-block-cover__video-background {
  width: 100%; height: 100%; object-fit: cover; object-position: 0% 50%;
  filter: saturate(1.1) contrast(1.05) brightness(1.03);
}
/* the mockup's .hero__scrim, painted on core's own background span */
.sc-site .sc-hero > .wp-block-cover__background {
  display: block; opacity: 1 !important; pointer-events: none; z-index: 1;
  background-color: transparent !important;
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,0) 20%),
    linear-gradient(96deg, rgba(8,8,8,.72) 0%, rgba(8,8,8,.42) 30%, rgba(8,8,8,.08) 58%, rgba(8,8,8,0) 80%);
}
.sc-site .sc-hero > .sc-hero__pause { z-index: 3; }
/* The mockup's phone variants of the same two rules (styles.css, max-width 640px:
   `.hero__media video { object-position: 54% 50% }` and the bottom-up `.hero__scrim`).
   mockcss converts them, but they target .sc-hero__media / .sc-hero__scrim, which the
   core cover does not have, so they need the same mapping as the desktop values. Missing
   until 2026-09-24: at 375 the hero kept the desktop side scrim and crop, and the pixel
   contrast check measured "Search Homes" at 3.3:1 and "Meet Steve" at 2.2:1 (mockup 7.3
   and 8.4). */
@media (max-width: 640px) {
  .sc-site .sc-hero > .wp-block-cover__video-background { object-position: 54% 50%; }
  .sc-site .sc-hero > .wp-block-cover__background {
    background-image:
      linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,0) 18%),
      linear-gradient(0deg, rgba(8,8,8,.78) 0%, rgba(8,8,8,.5) 45%, rgba(8,8,8,.12) 72%, rgba(8,8,8,0) 88%);
  }
}


/* ---------- photo tiles: the <img> is absolutely placed in the mockup; the core
   figure around a classed image must step out of flow the same way. */
.sc-site .sc-hv > figure.wp-block-image,
.sc-site .sc-path > figure.wp-block-image,
.sc-site .sc-comm > figure.wp-block-image { position: absolute; inset: 0; margin: 0; }

/* ---------- QUOTES: core puts the class on <blockquote> itself and wraps the text
   in <p>; the mockup had figure.quote > blockquote. Same values as mockup.css's
   `.quote--lead blockquote` / `.quote--side blockquote`. */
/* (The base reset for .sc-quote lives in pre.css, BEFORE mockup.css, so the mockup's
   own `.quote--side { border-top }` divider survives. It sat here first, after the
   mockup, and silently removed that divider: the review does not measure borders.)
   The Grapple reset removes Astra's faint left bar from every quote at (0,3,0), so the
   one quote that has a left rule in the mockup states it above that. */
.sc-site .entry-content .wp-block-quote.sc-bquote { border-left: 1px solid var(--sc-ink); }
.sc-site .sc-quote--lead > p {
  margin: 0; font-family: var(--sc-display); font-weight: 300;
  font-size: calc(clamp(24px, 2.25vw, 36px) * var(--sc-fs, 1)); line-height: 1.35; color: var(--sc-ink);
}
.sc-site .sc-quote--lead::before {
  content: "\201C"; display: block; font-family: Georgia, "Times New Roman", serif; font-weight: 400;
  font-size: calc(96px * var(--sc-fs, 1)); line-height: .7; margin-bottom: 10px; color: var(--sc-ink);
}
.sc-site .sc-quote--side > p { margin: 0; font-size: calc(17px * var(--sc-fs, 1)); line-height: 1.7; color: var(--sc-graphite); }

/* ---------- CHROME in WordPress */
body.admin-bar .sc-hdr { top: 32px; }
@media (max-width: 782px) { body.admin-bar .sc-hdr { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .sc-hdr { top: 0; } }
/* Astra's phone rule is `h1,h2{font-size:...!important}`; the footer headings are h2. */
.sc-site .sc-ftr .sc-ftr__h { font-size: calc(12.5px * var(--sc-fs, 1)) !important; }

/* The closed mobile menu slides off-screen but its links were still reachable by
   Tab. Hide it from focus and from screen readers until it is opened. */
@media (max-width: 920px) {
  .sc-site .sc-nav { visibility: hidden; transition: transform 450ms var(--sc-ease), visibility 0s linear 450ms; }
  .sc-site .sc-nav.sc-open { visibility: visible; transition: transform 450ms var(--sc-ease); }
}
/* desktop: a toggle opened by click or keyboard shows its submenu like hover does */
.sc-site .sc-nav__item.sc-open .sc-nav__sub { opacity: 1; visibility: visible; transform: none; }

/* Anchor jumps and keyboard focus must not land under the fixed header (WCAG 2.4.11). */
html:has(> body.sc-site) { scroll-padding-top: 150px; }
@media (max-width: 920px) { html:has(> body.sc-site) { scroll-padding-top: 110px; } }

/* A revealed block that receives keyboard focus is shown at once. */
.sc-site.sc-js .sc-r:focus-within { opacity: 1; transform: none; }


/* Links inside running text must not rely on colour alone (WCAG 1.4.1; axe
   link-in-text-block flagged the footer credit). Underlined in the legal copy and
   the bottom band, where they sit inside sentences. */
.sc-site .sc-ftr__legal a, .sc-site .sc-ftr__bottom a { text-decoration: underline; text-underline-offset: .2em; }
/* Astra underlines every link in page content (`.ast-single-post .entry-content a`), which
   outranks the mockup's own `.sc-site .sc-cm__more`: the community card label already has
   its rule and dash, so the underline made three lines (Curtis, 2026-10-05). Links inside
   sentences keep Astra's underline. */
.sc-site .entry-content a.sc-cm__more { text-decoration: none; }

/* Tap targets at least 44px (universal-conventions § 8.5; WCAG 2.2's floor is 24px).
   The mockup already gives nav links 44px of height; a short label ("Buy") also
   needs the width. Footer links are ~20px of type: on phones and touch screens
   each becomes a 44px row, and desktop keeps the mockup's tighter rhythm. */
.sc-site .sc-nav__link, .sc-site .sc-nav__toggle { min-width: 44px; justify-content: center; }
@media (max-width: 920px), (pointer: coarse) {
  .sc-site .sc-ftr__links li + li { margin-top: 0; }
  .sc-site .sc-ftr__links a, .sc-site .sc-ftr__util a, .sc-site .sc-ftr__office a, .sc-site .sc-ftr__bottom a {
    display: inline-flex; align-items: center; min-height: 44px; }
  .sc-site .sc-hero__pause { width: 44px; height: 44px; }
}

/* The Grapple reset zeroes margins on every top-level block, which includes each
   community <dialog> (it replaces a top-level group) and kills the UA's margin:auto
   that centres a modal (Communities agent: pinned to the top at 1440). */
.sc-site dialog.sc-cmod:modal { margin: auto; }
/* Scroll lock while a community dialog is open, read from the DOM itself: Chrome 153
   stops firing `close` after an Escape close, so a class cleared on `close` stuck and
   the page could not scroll (Communities agent, with a two-dialog repro). */
body.sc-site:has(dialog.sc-cmod[open]) { overflow: hidden; }

/* Dialog content waits hidden until the site script moves it into its <dialog>
   (html.sc-jsx is set in <head>, before first paint). */
.sc-jsx .sc-site div.sc-cmod { display: none; }
/* A lone text link is wrapped in a <p> by the converter, so the mockup's two
   positional rules for it (`.bleed__body > .tlink`, `.bleed__body .bquote + .tlink`,
   both margin-top:2rem) no longer match. The only two in the stylesheet (grep'd),
   carried onto the wrapper with the mockup's own value. */
/* (Superseded 2026-09-24: mockcss now gives every positional link rule a
   `:where(p) >` variant, so the mockup's own `.bleed__body > .tlink` and `.step .tlink`
   resolve exactly as in the mockup; the wrapper-margin rule that stood here stacked
   with .step .tlink and made two guide steps 32px tall.) */

/* Blog categories: the mockup filters in-page with <button aria-pressed>; WordPress
   has real category archives, so each is a LINK (`.sc-cats a`, the current one with
   aria-current="page"), wearing exactly the mockup's button values (mockup.css
   `.sc-cats button`). Used by the blog page and the category archive template. */
.sc-site .sc-cats a {
  display: inline-flex; align-items: center; gap: .9em; min-height: 46px; padding: 12px 20px;
  border: 1px solid var(--sc-line); background: none; font-family: var(--sc-display); font-weight: 600;
  font-size: calc(12px * var(--sc-fs, 1)); letter-spacing: .2em; text-transform: uppercase; color: var(--sc-ink);
  text-decoration: none; transition: background 300ms var(--sc-ease), color 300ms var(--sc-ease), border-color 300ms var(--sc-ease);
}
.sc-site .sc-cats a span { font-weight: 500; font-size: calc(11px * var(--sc-fs, 1)); letter-spacing: .06em; color: var(--sc-stone); transition: color 300ms var(--sc-ease); }
.sc-site .sc-cats a:hover, .sc-site .sc-cats a[aria-current="page"], .sc-site .sc-cats a.sc-is-current { background: var(--sc-ink); color: var(--sc-paper); border-color: var(--sc-ink); }
.sc-site .sc-cats a:hover span, .sc-site .sc-cats a[aria-current="page"] span, .sc-site .sc-cats a.sc-is-current span { color: rgba(255,255,255,.75); }
.sc-site .sc-cats a:focus-visible { outline: 2px solid var(--sc-ink); outline-offset: 3px; }
.sc-site .sc-cats > p { display: contents; }
@media (max-width: 680px) {
  .sc-site .sc-cats a { gap: .6em; padding: 10px 12px; font-size: calc(11px * var(--sc-fs, 1)); letter-spacing: .13em; }
}

/* Dropped SVG icons, rebuilt as CSS masks from the mockup's own paths and sizes
   (mockup.css `.vid__play svg`, `.res li a svg`). The text around them is unchanged;
   both icons are decorative (the link text names the destination). */
.sc-site .sc-vid__play::before {
  content: ""; width: 20px; height: 20px; margin-left: 3px; background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 1.5l10 5.5-10 5.5z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 1.5l10 5.5-10 5.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.sc-site .sc-res li a::after {
  content: ""; flex: none; width: 14px; height: 14px; margin-top: 3px; background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 11L11 3M5 3h6v6' fill='none' stroke='black' stroke-width='1.3'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 11L11 3M5 3h6v6' fill='none' stroke='black' stroke-width='1.3'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Video facade: its label <span>s became paragraphs (pages converted before sc-p0). */
.sc-site .sc-vid > p { margin: 0; }
/* Video facade: the player that replaces the poster fills the same box. */
.sc-site .sc-vid__frame { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }

/* ---------- third-party zones: the plugin styles its own markup. */
.sc-site .sc-3p { color: var(--sc-graphite); }

/* ==========================================================================
   ACCESSIBILITY SETTINGS: the panel and the generic settings are Grapple's
   (grapple/css/a11y-panel.css.tmpl, loaded after this file). This maps the panel's
   tokens onto the design and keeps the settings that name this design's own tokens
   and classes.
   ========================================================================== */
.sc-site {
  --sc-a11y-ink: var(--sc-ink); --sc-a11y-paper: var(--sc-paper); --sc-a11y-text: var(--sc-graphite);
  --sc-a11y-muted: var(--sc-stone); --sc-a11y-line: var(--sc-line);
  --sc-a11y-display: var(--sc-display); --sc-a11y-body: var(--sc-body);
}
html.sc-a11y-contrast { --sc-stone: #2e2e2e; --sc-graphite: #111111; --sc-line: #7a7a7a; --sc-on-ink-muted: #f0f0f0; }
html.sc-a11y-readable .sc-site :is(h1, h2, h3, .sc-ftr__h, .sc-eyebrow) { font-weight: 500 !important; letter-spacing: .02em !important; }
html.sc-a11y-readable .sc-site :is(p, li, .sc-lede, .sc-hero__sub) { font-weight: 400 !important; }
html.sc-a11y-underline .sc-site a:not(.wp-block-button__link):not(.sc-nav__cta):not(.sc-brand) { text-decoration: underline !important; text-underline-offset: .2em; }
html.sc-a11y-motion .sc-site .sc-r { opacity: 1 !important; transform: none !important; }

/* ---------- IDX BROKER (IMPress for IDX Broker): listing carousels and the featured showcase.
   A third-party zone (2026-10-02): the mockup shows a labelled placeholder here. Colours and type
   are the mockup's tokens. Photos sit in 4:3 frames on mist, so a listing whose MLS photo is
   missing leaves an even tile instead of collapsing its card. The MLS courtesy line stays visible.
   Owl's arrows ship as role="presentation" with their "Prev"/"Next" text set to display:none, so
   they fail button-name and show no focus: the text is kept for screen readers and the focus drawn. */
.sc-site .impress-carousel, .sc-site .impress-showcase { font-family: var(--sc-body); color: var(--sc-graphite); }
.sc-site .impress-carousel-property, .sc-site .impress-showcase-property { text-align: left; }
.sc-site .impress-carousel-photo, .sc-site .impress-showcase-photo { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--sc-mist); margin-bottom: 14px; }
.sc-site .impress-carousel-photo img, .sc-site .impress-showcase-photo img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }
.sc-site .impress-carousel a, .sc-site .impress-showcase a { color: var(--sc-ink); text-decoration: none; }
.sc-site .impress-carousel a:hover .impress-street, .sc-site .impress-showcase a:hover .impress-street { text-decoration: underline; text-underline-offset: 3px; }
/* IMPress puts the price inside the photo link, after the image: it sits on the photo as a white label */
.sc-site .impress-price { font-family: var(--sc-display); font-weight: 300; font-size: 22px; line-height: 1.2; letter-spacing: .02em; color: var(--sc-ink); }
.sc-site .impress-carousel-photo .impress-price, .sc-site .impress-showcase-photo .impress-price { position: absolute; z-index: 2; left: 12px; bottom: 12px; padding: 7px 12px 6px; background: var(--sc-paper); }
.sc-site .impress-address { display: block; margin-top: 4px; }
.sc-site .impress-street { display: block; font-size: 15px; color: var(--sc-ink); }
.sc-site .impress-cityname, .sc-site .impress-state { font-size: 14px; color: var(--sc-stone); }
.sc-site .impress-beds-baths-sqft { margin: 8px 0 0; font-family: var(--sc-display); font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--sc-stone); }
.sc-site .impress-carousel .courtesy, .sc-site .impress-showcase .courtesy { margin-top: 8px; font-size: 12px; line-height: 1.45; color: var(--sc-stone); }
.sc-site .impress-carousel .owl-controls, .sc-site .impress-carousel .owl-nav { display: flex; gap: 10px; justify-content: flex-start; margin-top: 22px; }
.sc-site .impress-carousel .owl-prev, .sc-site .impress-carousel .owl-next { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin: 0; padding: 0; border: 1px solid var(--sc-ink) !important; border-radius: 0 !important; background: transparent !important; color: var(--sc-ink) !important; font-size: 18px; cursor: pointer; }
.sc-site .impress-carousel .owl-prev:hover, .sc-site .impress-carousel .owl-next:hover { background: var(--sc-ink) !important; color: var(--sc-paper) !important; }
.sc-site .impress-carousel .owl-prev:focus-visible, .sc-site .impress-carousel .owl-next:focus-visible { outline: 2px solid var(--sc-ink); outline-offset: 3px; }
.sc-site .impress-carousel .owl-prev span, .sc-site .impress-carousel .owl-next span { display: block !important; position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- Home Search (Curtis, 2026-10-03): IMPress's search bar ([idx-omnibar-extra]) in the card over
   the hero, in the site's own field and button style. One row on desktop (location, max price, beds,
   baths, search), two columns under 900px. Fields stay 16px so phones do not zoom, and every control is
   at least 44px. The location field's label is IMPress's screen-reader label, shown on desktop so the
   four labels line up. Ported from Robert LeBorne's build, in this site's tokens. */
.sc-site .sc-hsearch__card .sc-idx { display: block; }
.sc-site .idx-omnibar-extra-form { position: relative; display: grid !important; grid-template-columns: minmax(0, 2.4fr) minmax(0, 1fr) minmax(0, .7fr) minmax(0, .7fr) auto; gap: 12px 14px; align-items: end; margin: 0; padding: 0 !important; }
.sc-site .idx-omnibar-extra-form .awesomplete, .sc-site .idx-omnibar-extra-form .idx-omnibar-extra { width: 100%; margin: 0; }
.sc-site .idx-omnibar-extra-form label:not(.screen-reader-text) { display: block; margin: 0 0 8px; font: 600 calc(12px * var(--sc-fs, 1))/1.2 var(--sc-display); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-ink); }
.sc-site .idx-omnibar-extra-form input { width: 100% !important; height: 56px !important; margin: 0 !important; padding: 0 16px !important; border: 1px solid var(--sc-line) !important; border-radius: 0 !important; background: var(--sc-paper) !important; box-shadow: none !important; font: 400 16px/1.2 var(--sc-body) !important; color: var(--sc-ink) !important; }
.sc-site .idx-omnibar-extra-form input::placeholder { color: var(--sc-stone); opacity: 1; }
.sc-site .idx-omnibar-extra-form input:focus-visible { outline: 2px solid var(--sc-ink); outline-offset: 2px; border-color: var(--sc-ink) !important; }
.sc-site .idx-omnibar-extra-button { height: 56px !important; margin: 0 !important; padding: 0 34px !important; border: 1px solid var(--sc-ink) !important; border-radius: 0 !important; background: transparent !important; color: var(--sc-ink) !important; font: 600 calc(12.5px * var(--sc-fs, 1))/1 var(--sc-display) !important; letter-spacing: .24em; text-transform: uppercase; cursor: pointer; transition: background 400ms var(--sc-ease), color 400ms var(--sc-ease); }
.sc-site .idx-omnibar-extra-button:hover, .sc-site .idx-omnibar-extra-button:focus-visible { background: var(--sc-ink) !important; color: var(--sc-paper) !important; }
.sc-site .idx-omnibar-extra-button:focus-visible { outline: 2px solid var(--sc-ink); outline-offset: 3px; }
@media (min-width: 901px) {
  .sc-site .idx-omnibar-extra-form > label.screen-reader-text { position: absolute !important; top: 0; left: 0; width: auto !important; height: auto !important; clip: auto !important; clip-path: none !important; overflow: visible !important; margin: 0 !important; padding: 0 !important; white-space: nowrap; font: 600 calc(12px * var(--sc-fs, 1))/1.2 var(--sc-display); letter-spacing: .24em; text-transform: uppercase; color: var(--sc-ink); }
}
@media (max-width: 900px) {
  .sc-site .idx-omnibar-extra-form { grid-template-columns: 1fr 1fr; }
  /* the location field spans both columns; IMPress wraps it in .awesomplete only once its city list loads */
  .sc-site .idx-omnibar-extra-form .awesomplete, .sc-site .idx-omnibar-extra-form > input.idx-omnibar-input, .sc-site .idx-omnibar-price-container, .sc-site .idx-omnibar-extra-button { grid-column: 1 / -1; }
}

/* Home Search: IDX Broker's map search widget runs frameless across the wrap. Its own layout (map on top,
   listings in rows under it) is set from inside its shadow root by calley.js `idx_map`; out here the
   element only has to grow with its listings. */
.sc-site .sc-idx--map { display: block; min-height: 0; padding: 0; border: 0; background: none; }
.sc-site .sc-idx--map idx-prime-map-search { display: block; height: auto !important; }

/* ---------- The IDX wrapper (/idx-wrapper/, page 413) and every IDX Broker page drawn inside it.
   No hero sits under the fixed header, so the header starts on paper and the IDX content starts below it,
   inside the site's wrap and gutters. The clearance is the header's own height (logo plus its padding,
   which the phone breakpoint shrinks) plus a margin, like the lean hero's. */
.sc-site:has(#idxStart) .sc-hdr { background: var(--sc-paper); }
.sc-site:has(#idxStart) .entry-content { max-width: var(--sc-wrap); margin: 0 auto; padding: calc(var(--sc-logo-h) + 2 * var(--sc-hdr-pad) + clamp(24px, 3vw, 40px)) var(--sc-gutter) clamp(56px, 6vw, 96px); }

/* ---------- Home hero (2026-10-05): the clip's first frame as the hero's background, so the hero paints at once and
   stays put while the video loads (core's cover block has no poster setting). Uploads path, so it survives the move to
   production. Visitors who save data get only this still (calley.js). */
.sc-site .sc-hero { background: #06090d url(/wp-content/uploads/2026/10/steve-home-hero-poster.jpg) 50% 50% / cover no-repeat; }
/* ==========================================================================
   Grapple · accessibility settings. Generated from grapple/css/a11y-panel.css.tmpl
   (cssbuild.py --layer a11y on a site, grapple/kit/a11y/mockup_bundle.py for a
   client's mockups). Loaded after the project's adapt.css, before its page styles.
   The panel's markup and script are one module, grapple/kit/a11y/a11y-panel.js, the
   same on the site and in the mockups; the settings are classes on <html>, set from
   localStorage in <head> before first paint. Every panel rule states its own type,
   spacing and backgrounds, so it looks the same with or without a site's resets.

   The panel takes its look from the design through SEVEN tokens the project maps
   in its adapt.css (Steve: `.sc-site { --sc-a11y-ink: var(--sc-ink); ... }`):
     --sc-a11y-ink      dark ink (text, filled buttons)      fallback #111111
     --sc-a11y-paper    light paper (panel background)       fallback #ffffff
     --sc-a11y-text     body text colour                     fallback #333333
     --sc-a11y-muted    secondary text, legends              fallback #595959
     --sc-a11y-line     hairlines between groups             fallback #d6d3cd
     --sc-a11y-display  display font stack (labels)          fallback system-ui
     --sc-a11y-body     body font stack                      fallback system-ui

   Settings that depend on the design (which tokens the contrast mode darkens, which
   classes "readable" also touches, which links "underline" leaves alone, the
   reveal-on-scroll class under reduced motion) live in the project's adapt.css.
   Prefix sc-.
   ========================================================================== */

.sc-site .sc-a11y__open {
  position: fixed; left: 16px; bottom: 16px; z-index: 70;
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 16px 0 12px;
  background: var(--sc-a11y-ink, #111111); color: var(--sc-a11y-paper, #ffffff); border: 1px solid var(--sc-a11y-paper, #ffffff);
  font-family: var(--sc-a11y-display, system-ui, sans-serif); font-weight: 600; font-size: 12px; letter-spacing: .2em; text-transform: uppercase;
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
.sc-site .sc-a11y__open svg { width: 24px; height: 24px; }
.sc-site .sc-a11y__open:focus-visible { outline: 3px solid var(--sc-a11y-ink, #111111); outline-offset: 3px; box-shadow: 0 0 0 3px var(--sc-a11y-paper, #ffffff); }
@media (max-width: 640px) { .sc-site .sc-a11y__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } .sc-site .sc-a11y__open { padding: 0; width: 48px; justify-content: center; } }
.sc-site .sc-a11y__panel {
  width: min(460px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto;
  margin: auto auto 16px 16px; padding: 28px 28px 24px; border: 0; background: var(--sc-a11y-paper, #ffffff); color: var(--sc-a11y-text, #333333);
  box-shadow: 0 24px 70px rgba(0,0,0,.28); font-family: var(--sc-a11y-body, system-ui, sans-serif); font-size: 16px;
  line-height: 1.7; text-align: left;
}
.sc-site .sc-a11y__panel::backdrop { background: rgba(17,17,17,.45); }
.sc-site .sc-a11y__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.sc-site .sc-a11y__title { font-family: var(--sc-a11y-display, system-ui, sans-serif); font-weight: 500; font-size: 18px !important; line-height: 1.08; letter-spacing: .12em; text-transform: uppercase; color: var(--sc-a11y-ink, #111111); margin: 0; }
.sc-site .sc-a11y__close { flex: none; width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 0; background: transparent; color: var(--sc-a11y-ink, #111111); cursor: pointer; }
.sc-site .sc-a11y__close svg { width: 14px; height: 14px; }
.sc-site .sc-a11y__group { min-width: 0; border: 0; border-top: 1px solid var(--sc-a11y-line, #d6d3cd); margin: 0; padding: 16px 0 10px; }
.sc-site .sc-a11y__group legend, .sc-site .sc-a11y__legend { font-family: var(--sc-a11y-display, system-ui, sans-serif); font-weight: 600; font-size: 12px; line-height: 20px; letter-spacing: .22em; text-transform: uppercase; color: var(--sc-a11y-muted, #595959); padding: 0; margin: 0 0 10px; float: left; width: 100%; }
.sc-site .sc-a11y__sizes { display: flex; gap: 8px; clear: both; }
.sc-site .sc-a11y__sizes label { flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; margin: 0; border: 1px solid var(--sc-a11y-ink, #111111); color: var(--sc-a11y-ink, #111111); cursor: pointer; font-size: 14px; font-weight: 500; line-height: 20px; }
.sc-site .sc-a11y__sizes label:has(input:checked) { background: var(--sc-a11y-ink, #111111); color: var(--sc-a11y-paper, #ffffff); }
.sc-site .sc-a11y__sizes label:has(input:focus-visible) { outline: 2px solid var(--sc-a11y-ink, #111111); outline-offset: 3px; }
.sc-site .sc-a11y__opt { clear: both; display: flex; align-items: center; gap: 12px; min-height: 44px; margin: 0; cursor: pointer; color: var(--sc-a11y-ink, #111111); font-size: 14px; font-weight: 500; line-height: 20px; }
.sc-site .sc-a11y__opt input, .sc-site .sc-a11y__sizes input { width: 20px; height: 20px; accent-color: var(--sc-a11y-ink, #111111); margin: 0; flex: none; }
.sc-site .sc-a11y__note { font-size: 14px; line-height: 1.7; color: var(--sc-a11y-muted, #595959); margin: 14px 0 18px; }
.sc-site .sc-a11y__actions { display: flex; gap: 10px; justify-content: flex-end; }
.sc-site .sc-a11y__actions button, .sc-site .sc-a11y__speak button {
  min-height: 48px; padding: 0 24px; border: 1px solid var(--sc-a11y-ink, #111111); background: transparent; color: var(--sc-a11y-ink, #111111); cursor: pointer;
  font-family: var(--sc-a11y-display, system-ui, sans-serif); font-weight: 600; font-size: 12px; line-height: 1.7; letter-spacing: .22em; text-transform: uppercase;
}
.sc-site .sc-a11y__done, .sc-site .sc-a11y__read { background: var(--sc-a11y-ink, #111111) !important; color: var(--sc-a11y-paper, #ffffff) !important; }
/* Every button and link in the panel: a ring in the design's ink (a filled button's own
   colour would be paper on paper). The stronger-focus setting still wins. */
.sc-site .sc-a11y__panel :is(button, a):focus-visible { outline: 2px solid var(--sc-a11y-ink, #111111); outline-offset: 3px; }

/* ---------- Listen: the page read aloud. The group is hidden unless the browser can
   speak (html.sc-can-speak); Read (filled) and Stop (outlined) look like the actions. */
.sc-site .sc-a11y__listen[hidden], .sc-site .sc-a11y__jump[hidden] { display: none; }
.sc-site .sc-a11y__speak { display: flex; gap: 8px; clear: both; }
.sc-site .sc-a11y__speak button { flex: 1; padding: 0 12px; }
.sc-site .sc-a11y__speak button:disabled { opacity: .45; cursor: default; }
.sc-site .sc-a11y__rate { clear: both; min-width: 0; border: 0; margin: 14px 0 0; padding: 0; }
.sc-site .sc-a11y__status { min-height: 1.7em; margin: 10px 0 0; font-size: 14px; line-height: 1.7; color: var(--sc-a11y-muted, #595959); }
/* The block being read: the design's ink on a paper halo, so it shows on a photograph. */
.sc-site .sc-speaking { outline: 3px solid var(--sc-a11y-ink, #111111) !important; outline-offset: 4px; box-shadow: 0 0 0 7px var(--sc-a11y-paper, #ffffff) !important; }

/* ---------- Jump to section: the page's h2s as links (hidden under three). */
.sc-site .sc-a11y__jumps { clear: both; list-style: none; margin: 0; padding: 0; }
.sc-site .sc-a11y__jumps li { margin: 0; padding: 0; }
.sc-site .sc-a11y__jumps a {
  display: flex; align-items: center; min-height: 44px; color: var(--sc-a11y-ink, #111111);
  font-size: 14px; font-weight: 500; line-height: 20px; text-decoration: underline; text-underline-offset: .2em;
}

/* Astra's skip link: keep it, make it visible and on top when focused. */
.sc-site .skip-link.screen-reader-text:focus {
  z-index: 100000; background: var(--sc-a11y-paper, #ffffff); color: var(--sc-a11y-ink, #111111); padding: 14px 22px;
  font-family: var(--sc-a11y-display, system-ui, sans-serif); font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  outline: 2px solid var(--sc-a11y-ink, #111111); outline-offset: 2px;
}

/* ---------- the settings */
/* Text size: mockcss.py writes every font-size as calc(X * var(--sc-fs, 1)). */
html.sc-a11y-text-1 { --sc-fs: 1.15; }
html.sc-a11y-text-2 { --sc-fs: 1.3; }
/* Higher contrast: one flat 60% scrim under all cover text, no photo filters. The
   project darkens its own grey tokens in adapt.css. */
html.sc-a11y-contrast .sc-site .wp-block-cover__background { background-image: none !important; background-color: rgba(0,0,0,.6) !important; opacity: 1 !important; display: block !important; }
html.sc-a11y-contrast .sc-site img { filter: none !important; }
/* Readable type: medium-weight headings, regular body text. The project adds its own
   heading-like classes (eyebrows, footer headings) at higher specificity. */
html.sc-a11y-readable .sc-site :is(h1, h2, h3) { font-weight: 500 !important; letter-spacing: .02em !important; }
html.sc-a11y-readable .sc-site :is(p, li) { font-weight: 400 !important; }
/* Readable font: Atkinson Hyperlegible (self-hosted; a11y-panel.js declares it beside
   itself, so it downloads only when this setting is on), then the design's own stack.
   Third-party zones and icon fonts keep theirs. */
html.sc-a11y-font .sc-site :is(p, li, dt, dd, blockquote, figcaption, cite, td, th, caption, label, legend, summary, a, span, strong, em, b, small, button, input, select, textarea):not(.sc-3p, .sc-3p *, [class*="icon"], [class*="dashicons"], [class*="fa-"]) { font-family: "Atkinson Hyperlegible", var(--sc-a11y-body, system-ui, sans-serif) !important; }
html.sc-a11y-font .sc-site :is(h1, h2, h3, h4, h5, h6):not(.sc-3p *) { font-family: "Atkinson Hyperlegible", var(--sc-a11y-display, system-ui, sans-serif) !important; }
/* Reading guide: a clear band about three lines tall that follows the pointer or focus,
   the page above and below it dimmed. Never takes a click; no movement under reduced motion. */
.sc-a11y__guide { display: none; }
html.sc-a11y-guide .sc-a11y__guide { display: block; position: fixed; inset: 0; z-index: 2147483000; pointer-events: none; }
.sc-a11y__guide-above, .sc-a11y__guide-below { position: absolute; left: 0; right: 0; background: rgba(17, 17, 17, .3); pointer-events: none; }
.sc-a11y__guide-above { top: 0; height: var(--sc-guide-top, 40vh); }
.sc-a11y__guide-below { top: calc(var(--sc-guide-top, 40vh) + var(--sc-guide-h, 84px)); bottom: 0; }
html:not(.sc-a11y-motion) .sc-a11y__guide-above, html:not(.sc-a11y-motion) .sc-a11y__guide-below { transition: top 90ms linear, height 90ms linear; }
@media (prefers-reduced-motion: reduce) { .sc-a11y__guide-above, .sc-a11y__guide-below { transition: none !important; } }
/* Text spacing at the WCAG 1.4.12 values. */
html.sc-a11y-spacing .sc-site :is(p, li, dd, blockquote) { line-height: 1.9 !important; letter-spacing: .12em !important; word-spacing: .16em !important; }
/* A heavy focus ring everywhere, blue with a white halo so it shows on any colour. */
html.sc-a11y-focus .sc-site :focus-visible { outline: 3px solid #0b57d0 !important; outline-offset: 3px !important; box-shadow: 0 0 0 6px #ffffff !important; }
/* Reduced motion, on request or from the OS setting. */
html.sc-a11y-motion *, html.sc-a11y-motion *::before, html.sc-a11y-motion *::after {
  animation-duration: .001ms !important; animation-iteration-count: 1 !important;
  transition-duration: .001ms !important; scroll-behavior: auto !important;
}
html.sc-a11y-motion .has-parallax { background-attachment: scroll !important; }
@media (prefers-reduced-motion: reduce) {
  .sc-site .has-parallax { background-attachment: scroll !important; }
}
/* about: inline styles from mockups/02-about.html, generated by mock2grapple.py */
.sc-site .sc-x-about-1{object-position:50% 62% !important}
.sc-site .sc-x-about-2{margin:0 !important}
.sc-site .sc-x-about-3{margin-top:2.6rem !important}
.sc-site .sc-x-about-4{object-position:50% 45% !important}
.sc-site .sc-x-about-5{object-position:50% 40% !important}
.sc-site .sc-x-about-6{object-position:40% 50% !important}
.sc-site .sc-x-about-7{width:100% !important;margin-top:2.2rem !important}
/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site .sc-x-about-8{margin-top:clamp(64px,7vw,110px) !important}   /* figure.pull */
.sc-site .sc-x-about-9{background-position:62% 40% !important}        /* section.cx-para */

/* ---------- about + services: page adaptation (hand-written) ---------- */

/* Pull quote (.sc-pull exists on about and services only). The page builds the
   mockup's figure.pull as a group around a class-less core quote, so the mockup's
   `.pull blockquote` / `.pull cite` rules apply as written (Astra's quote defaults
   are reset centrally, pre.css). Core wraps the quote text in a <p> and nests the
   <cite> inside the <blockquote>; the mockup's cite, a sibling of the blockquote,
   keeps the page's 1.7 line-height instead of inheriting the quote's 1.38. */
.sc-site .sc-pull blockquote > p { margin: 0; }
.sc-site .sc-pull cite { line-height: 1.7; }
/* anthem_highlands: inline styles from mockups/15-homes-for-sale-anthem-highlands-broomfield.html, generated by mock2grapple.py */
.sc-site .sc-x-anthem-highlands-1{object-position:50% 50% !important}
.sc-site .sc-x-anthem-highlands-2{object-position:30% 50% !important}
.sc-site .sc-x-anthem-highlands-3{width:100% !important;margin-top:1.6rem !important}
.sc-site .sc-x-anthem-highlands-4{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-anthem-highlands-5{object-position:50% 55% !important}
.sc-site .sc-x-anthem-highlands-6{object-position:50% 55% !important}
.sc-site .sc-x-anthem-highlands-7{object-position:50% 55% !important}
.sc-site .sc-x-anthem-highlands-8{object-position:50% 55% !important}

/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site.page-homes-for-sale-anthem-highlands-broomfield .sc-cx-para { background-position: 50% 58% !important; }   /* section.cx-para */
/* a.tlink "Read every report": style="margin-top:1.8rem", which beat the mockup's `.bleed__body > .tlink` 2rem */
.sc-site.page-homes-for-sale-anthem-highlands-broomfield .sc-bleed__body > p > .sc-tlink { margin-top: 1.8rem !important; }

/* Everything the eleven community pages share is in broomfield.css ("COMMUNITY PAGES"). */
/* arvada: inline styles from mockups/17-homes-for-sale-arvada-co.html, generated by mock2grapple.py */
.sc-site .sc-x-arvada-1{object-position:50% 50% !important}
.sc-site .sc-x-arvada-2{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-arvada-3{object-position:50% 55% !important}
.sc-site .sc-x-arvada-4{object-position:50% 55% !important}
.sc-site .sc-x-arvada-5{object-position:50% 55% !important}
.sc-site .sc-x-arvada-6{object-position:50% 55% !important}

/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site.page-homes-for-sale-arvada-co .sc-cx-para { background-position: 50% 55% !important; }   /* section.cx-para */

/* Everything the eleven community pages share is in broomfield.css ("COMMUNITY PAGES"). */
/* blog: page adaptation (hand-written, 2026-09-24).
   The category links (.sc-cats) are styled centrally in adapt.css: the category
   archive template shares them. */

/* "Who writes these": the pull quote is a core/quote, so it carries Astra's blockquote
   padding (20px all round) that the mockup's bare <blockquote> never had; the mockup
   sets only padding-left (24px), so the other three sides are cleared (measured:
   484x144 against the mockup's 460x104 at 1440). The 1px ink rule is central
   (adapt.css). `.sc-bquote` exists only on the blog. */
.sc-site blockquote.sc-bquote {padding-top: 0; padding-right: 0; padding-bottom: 0;}

/* Photo crops. The converter carries a mockup inline style as a class, except on an
   <img>, where it drops it; these are the mockup's own object-position values. The
   hero's classed figure hands its crop to the <img> (adapt.css); the bleed photo's
   figure is class-less (display: contents), so the <img> takes it directly. */
.sc-site.page-blog .sc-ph__img {object-position: 70% 50%;}
.sc-site.page-blog .sc-bleed__media img {object-position: 50% 30%;}
/* blog posts (build/posts/): page adaptation (hand-written, 2026-09-24).

   Every migrated post is built on mockups/29-blog-post.html, and mockup.css
   already styles the whole template (.sc-lh, .sc-crumbs, .sc-byline, .sc-article,
   .sc-nums, .sc-facts-list, .sc-post-src, .sc-post-links, .sc-pgrid, .sc-pc,
   .sc-cx-para). This file carries only the template's INLINE styles, as the
   converter's sc-x-* classes, scoped to single posts (body.single-post). */

/* section.section style="padding-top:clamp(56px,6vw,96px)": the article band. */
.sc-site.single-post .sc-x-blog-post-1 {padding-top: clamp(56px, 6vw, 96px) !important;}

/* The closing CTA photo's crop (the cover's image layer inherits it, adapt.css).
   Anthem posts: the template's own, 50% 58% on anthem-foyer.jpg. Greenway posts:
   the approved Greenway Park page's CTA, 50% 50% on int-greatroom-lookout-2.jpg. */
.sc-site.single-post .sc-x-blog-post-2 {background-position: 50% 58% !important;}
.sc-site.single-post .sc-x-blog-post-3 {background-position: 50% 50% !important;}
/* boulder: inline styles from mockups/23-homes-for-sale-boulder-co.html, generated by mock2grapple.py */
.sc-site .sc-x-boulder-1{object-position:50% 55% !important}
.sc-site .sc-x-boulder-2{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-boulder-3{object-position:50% 55% !important}
.sc-site .sc-x-boulder-4{object-position:50% 55% !important}
.sc-site .sc-x-boulder-5{object-position:50% 55% !important}
.sc-site .sc-x-boulder-6{object-position:50% 55% !important}

/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site.page-homes-for-sale-boulder-co .sc-cx-para { background-position: 50% 50% !important; }   /* section.cx-para */

/* Everything the eleven community pages share is in broomfield.css ("COMMUNITY PAGES"). */
/* broomfield: inline styles from mockups/14-homes-for-sale-broomfield-co.html, generated by mock2grapple.py */
.sc-site .sc-x-broomfield-1{object-position:50% 55% !important}
.sc-site .sc-x-broomfield-2{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-broomfield-3{object-position:50% 55% !important}
.sc-site .sc-x-broomfield-4{object-position:50% 55% !important}
.sc-site .sc-x-broomfield-5{object-position:50% 55% !important}
.sc-site .sc-x-broomfield-6{object-position:50% 55% !important}

/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site.page-homes-for-sale-broomfield-co .sc-cx-para { background-position: 50% 55% !important; }   /* section.cx-para */

/* ==========================================================================
   COMMUNITY PAGES: the eleven pages on the Broomfield pattern (mockups 14 to 24).
   Adaptation for the components only they carry, written once here; each page's
   own file holds just its inline crops. Selectors are `.sc-site .sc-<component>`:
   none of these classes appears on any other page. DOM adaptation only; every
   value below is the mockup's own (mockup.css names the rule each one mirrors).
   ========================================================================== */

/* Breadcrumb link: a 15.5px line of type, so its hit area grows to 45.5px tall (15px
   above and below, inside the crumb row's own air) without moving anything. House
   target 44px. (The post template's crumbs, if built, want the same.) */
.sc-site .sc-crumbs a { position: relative; }
.sc-site .sc-crumbs a::before { content: ""; position: absolute; left: 0; right: 0; top: -15px; bottom: -15px; }

/* Sticky plate: each plate <img> sits in its own core figure, so the mockup's
   `.plate__media img:first-of-type` (the photo held before the script starts, and
   without script) matches all five and the LAST one shows. Undo it for every figure
   after the first. The script's `.sc-is-live img.sc-is-shown` (0,4,1) still outranks
   this (0,3,2). */
.sc-site .sc-plate__media > figure:not(:first-child) img { opacity: 0; transform: scale(1.03); }

/* Chapter quote (Broomfield, Arvada): core/quote wraps the words in a <p> and holds the
   <cite> itself (Astra's quote padding, italic and rule are reset centrally). The
   mockup's `.quote-in` is bare text with its `cite` after it: same values as mockup.css
   `.quote-in + cite`, plus the body's 1.7 line height, which the mockup's cite inherited
   and a cite inside the quote would take from the quote (1.45). */
.sc-site .sc-quote-in > p { margin: 0; }
.sc-site .sc-quote-in > cite {
  display: block; margin-top: 1rem; font-style: normal; font-family: var(--sc-display); font-weight: 600;
  font-size: calc(12px * var(--sc-fs, 1)); line-height: 1.7; letter-spacing: .24em; text-transform: uppercase; color: var(--sc-stone);
}

/* Day to day headings: each carries a 26px line icon before its words in the mockup
   (`.ico`: flex 0 0 26px, 26x26, ink, stroke 1.4, round caps and joins). The converter
   drops inline SVG, so the heading names its icon (sc-ico-*) and it is drawn here as a
   mask in the heading's own flex row (`.daily h3` gap 12px). Paths are the mockup's.
   Decorative; the heading text is unchanged. */
.sc-site .sc-daily h3[class*="sc-ico-"]::before {
  content: ""; flex: 0 0 26px; width: 26px; height: 26px; background: var(--sc-ink);
  -webkit-mask: var(--sc-ico) center / contain no-repeat; mask: var(--sc-ico) center / contain no-repeat;
}
.sc-site .sc-daily .sc-ico-school { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M3 9l9-5 9 5-9 5z'/%3E%3Cpath d='M7 11.5v5c3 2 7 2 10 0v-5'/%3E%3C/svg%3E"); }
.sc-site .sc-daily .sc-ico-tree { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12 3l5.5 8h-3.2l4.2 6H5.5l4.2-6H6.5z'/%3E%3Cpath d='M12 17v4'/%3E%3C/svg%3E"); }
.sc-site .sc-daily .sc-ico-bag { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M5 8h14l-1.2 12H6.2z'/%3E%3Cpath d='M9 8V6.5a3 3 0 016 0V8'/%3E%3C/svg%3E"); }
.sc-site .sc-daily .sc-ico-road { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M9 3L5 21M15 3l4 18M12 5v2.5M12 10.5V13M12 16v2.5'/%3E%3C/svg%3E"); }
.sc-site .sc-daily .sc-ico-pool { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M3 17c2 0 2-1.4 4.5-1.4S9.8 17 12 17s2.3-1.4 4.5-1.4S19 17 21 17'/%3E%3Cpath d='M8 14V5.5a2 2 0 014 0M14 14V5.5a2 2 0 014 0M8 9h6'/%3E%3C/svg%3E"); }
.sc-site .sc-daily .sc-ico-flag { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M8 21V3l9 3.8L8 10.6'/%3E%3Cpath d='M4.5 21h8'/%3E%3C/svg%3E"); }
.sc-site .sc-daily .sc-ico-civic { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M3 9h18L12 4z'/%3E%3Cpath d='M5 9v9M9.5 9v9M14.5 9v9M19 9v9M3 20h18'/%3E%3C/svg%3E"); }
.sc-site .sc-daily .sc-ico-train { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Crect x='6' y='3' width='12' height='13' rx='0'/%3E%3Cpath d='M6 10h12M9 20l-2 2M15 20l2 2M9 13h.01M15 13h.01'/%3E%3C/svg%3E"); }
.sc-site .sc-daily .sc-ico-water { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M3 9c2 0 2-1.6 4.5-1.6S9.8 9 12 9s2.3-1.6 4.5-1.6S19 9 21 9M3 14c2 0 2-1.6 4.5-1.6S9.8 14 12 14s2.3-1.6 4.5-1.6S19 14 21 14M3 19c2 0 2-1.6 4.5-1.6S9.8 19 12 19s2.3-1.6 4.5-1.6S19 19 21 19'/%3E%3C/svg%3E"); }
.sc-site .sc-daily .sc-ico-gym { --sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M6.5 7v10M17.5 7v10M3.5 9.5v5M20.5 9.5v5M6.5 12h11'/%3E%3C/svg%3E"); }

/* Day to day links sit in 14px-padded rows (`.daily li`): the hit area takes the row's
   height, 14px above and below the words, without moving anything. House target 44px. */
.sc-site .sc-daily li > a { position: relative; }
.sc-site .sc-daily li > a::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; bottom: -14px; }

/* Report list (Anthem Highlands, Greenway Park): each whole-row <a> became a
   sc-card-link group whose one real link is on the title, so the mockup's
   `.bcol__list a` (row padding and rule) now reaches that title link instead of the
   row. The row gets the mockup's values, the title link none of them, and the hover
   underline (`.bcol__list a:hover h3`) moves to the row. */
.sc-site .sc-bcol__list > .sc-card-link { display: block; padding: 22px 0; border-bottom: 1px solid var(--sc-line); }
.sc-site .sc-bcol__list .sc-stretch { display: inline; padding: 0; border-bottom: 0; }
.sc-site .sc-bcol__list > .sc-card-link:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
/* buyers_guide: inline styles from mockups/07-buyers-guide.html, generated by mock2grapple.py */
.sc-site .sc-x-buyers-guide-1{padding-bottom:clamp(44px,5vw,80px) !important}

/* ---- buyers_guide: page adaptation (hand-written, 2026-09-24) ----------------------

   Photo crops. The converter drops a mockup <img>'s inline style; these are the
   mockup's own object-position values, one per photo, and only where the mockup set
   something other than the default centre. The hero's classed figure hands its crop to
   the <img> (adapt.css). Class-less figures are display:contents, so the <img> takes the
   crop directly; it is matched by its file name because the crop belongs to that photo
   (attachment ids differ between Local and staging). */
.sc-site.page-buyers-guide .sc-ph__img {object-position: 50% 55%;}
.sc-site.page-buyers-guide .sc-vid img[src*="/steve-sofa-wide."] {object-position: 60% 50%;}
.sc-site.page-buyers-guide .sc-step img[src*="/westminster-aerial."] {object-position: 50% 55%;}
.sc-site.page-buyers-guide .sc-step img[src*="/steve-showing."] {object-position: 70% 50%;}
.sc-site.page-buyers-guide .sc-step img[src*="/steve-kitchen-phone."] {object-position: 70% 40%;}
.sc-site.page-buyers-guide .sc-step img[src*="/closing-13."] {object-position: 50% 30%;}
.sc-site.page-buyers-guide .sc-tile img[src*="/broomfield-park."],
.sc-site.page-buyers-guide .sc-tile img[src*="/listing-swan."] {object-position: 50% 55%;}
/* Section crops (the mockup's inline background-position; the cover's image layer
   inherits it from the section, adapt.css). .sc-statement has no position of its own in
   the mockup CSS, and .sc-cx-para's 50% 35% is overridden inline on this page. */
.sc-site.page-buyers-guide .sc-statement {background-position: 50% 55%;}
.sc-site.page-buyers-guide .sc-cx-para {background-position: 50% 50%;}

/* ---- the guide block (.sc-guide exists only on the two guide pages, so these rules are
   scoped to the component and serve the Seller's Guide too) ------------------------- */

/* The gated download form: Gravity Forms (1 buyer, 2 seller) wearing the mockup's
   .form fields. Every value is the mockup's own (.form__grid, .field > span, .field
   input and its :focus, .btn, .btn--block, the body line-height 1.7); the selectors only
   out-rank Gravity Forms' orbital theme. Gravity Forms keeps its own label layout (flex,
   6px before the "(Required)" marker, which the mockup has no equivalent for) and its own
   error colour. */
.sc-site .sc-guide .sc-form .gform_description:empty {display: none;}
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gform_fields {margin-top: 10px; padding-top: 22px; grid-template-columns: 1fr 1fr; column-gap: 28px; row-gap: 22px;}
/* the mockup's two-column .form__grid, not Gravity Forms' twelve (eleven 28px gaps would
   not fit a phone): a field spans both columns, a half-width field one (.field, .field--half) */
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gform_fields > .gfield {grid-column: 1 / -1;}
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gform_fields > .gfield--width-half {grid-column: auto;}
@media (max-width: 640px) {
  .sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gform_fields {grid-template-columns: 1fr;}
  .sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gform_fields > .gfield--width-half {grid-column: 1 / -1;}
}
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gfield_label {
  margin: 0 0 6px; padding: 0;
  font-family: var(--sc-display); font-weight: 600; font-size: calc(11.5px * var(--sc-fs, 1)); line-height: 1.7;
  letter-spacing: .22em; text-transform: uppercase; color: var(--sc-stone);
}
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gfield_label .gfield_required {font: inherit; letter-spacing: inherit; color: inherit;}
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gfield input[type] {
  width: 100%; height: auto; min-height: 44px; margin: 0; padding: 10px 0;
  font: inherit; font-size: calc(16px * var(--sc-fs, 1)); line-height: 1.7; color: var(--sc-ink);
  background: transparent; border: 0; border-bottom: 1px solid #8f8f8f; border-radius: 0; box-shadow: none;
}
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gfield input[type]:focus {outline: none; border-bottom: 2px solid var(--sc-ink);}
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gfield_error input[type] {border-bottom-color: var(--gf-ctrl-border-color-error);}
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gform_footer {margin: 30px 0 0; padding: 0;}
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gform_footer input.button[type="submit"] {
  -webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; justify-content: center;
  width: 100%; height: auto; min-height: 52px; margin: 0; padding: 16px 34px;
  border: 1px solid var(--sc-ink); border-radius: 0; box-shadow: none; background: transparent; color: var(--sc-ink);
  font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); line-height: 1.7;
  letter-spacing: .24em; text-transform: uppercase; text-decoration: none; cursor: pointer;
  transition: background 400ms var(--sc-ease), color 400ms var(--sc-ease), border-color 400ms var(--sc-ease);
}
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gform_footer input.button[type="submit"]:hover {background: var(--sc-ink); color: var(--sc-paper);}
.sc-site .sc-guide .sc-form .gform_wrapper.gform-theme .gform_footer input.button[type="submit"]:focus-visible {outline: 2px solid currentColor; outline-offset: 4px;}
/* communities: inline styles from mockups/05-communities.html, generated by mock2grapple.py */
.sc-site .sc-x-communities-1{object-position:50% 60% !important}
.sc-site .sc-x-communities-2{object-position:50% 55% !important}
.sc-site .sc-x-communities-3{object-position:50% 60% !important}
.sc-site .sc-x-communities-4{object-position:50% 50% !important}
.sc-site .sc-x-communities-5{object-position:50% 50% !important}
.sc-site .sc-x-communities-6{object-position:50% 50% !important}
.sc-site .sc-x-communities-7{object-position:50% 55% !important}
.sc-site .sc-x-communities-8{object-position:50% 50% !important}
.sc-site .sc-x-communities-9{object-position:50% 55% !important}
.sc-site .sc-x-communities-10{object-position:50% 50% !important}
.sc-site .sc-x-communities-11{object-position:50% 45% !important}
.sc-site .sc-x-communities-12{object-position:50% 60% !important}
.sc-site .sc-x-communities-13{object-position:45% 50% !important}

/* ==========================================================================
   communities: page adaptation (hand-written). Values are the mockup's own.
   ========================================================================== */

/* Parallax CTA crop: the mockup section's inline background-position (50% 55%),
   which the converter drops on covers. The image div inherits it (adapt.css). */
.sc-site.page-communities .sc-cx-para { background-position: 50% 55%; }
/* contact: inline styles from mockups/09-contact.html, generated by mock2grapple.py */
.sc-site .sc-x-contact-1{object-position:72% 40% !important}
/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site .sc-x-contact-2{background-position:50% 60% !important}   /* section.cx-para */

/* ---------- contact: page adaptation (hand-written) ---------- */

/* The mockup's two card titles are h3s straight after the h1; here they are h2s so the
   outline skips no level. Same look as the mockup's `.form h3` / `.ccard h3` (and the
   h3 base line-height); the h2 token keeps Grapple's heading reset in step. */
.sc-site.page-contact .sc-form h2 {
  font-size: calc(clamp(24px, 2vw, 32px) * var(--sc-fs, 1)); --h2: calc(clamp(24px, 2vw, 32px) * var(--sc-fs, 1));
  line-height: 1.2; margin-bottom: .6rem;
}
.sc-site.page-contact .sc-ccard h2 {
  font-size: calc(clamp(24px, 2vw, 30px) * var(--sc-fs, 1)); --h2: calc(clamp(24px, 2vw, 30px) * var(--sc-fs, 1));
  line-height: 1.2;
}

/* ---------- the lead form: Gravity Forms form 3 in the mockup's form design ----------
   GF 2.9 draws its Orbital theme from CSS variables that it prints inline, on the form
   wrapper's id; `!important` is the only way a stylesheet outranks that. Every value is
   the mockup's own (`.field`, `.field > span`, `.field input`, `.field--check`, `.btn`,
   `.btn--block`, `.form__grid`, `.form__fine`). Scoped to this page's form zone. */
.sc-site.page-contact .sc-3p .gform-theme--orbital {
  /* the one accent: ink, as everywhere on the site (Orbital's is blue) */
  --gf-color-primary: #111111 !important;
  --gf-color-primary-rgb: 17, 17, 17 !important;
  --gf-color-primary-darker: #111111 !important;
  --gf-color-primary-lighter: #2a2a2a !important;
  --gf-color-in-ctrl-primary: #111111 !important;
  --gf-color-in-ctrl-primary-rgb: 17, 17, 17 !important;
  --gf-color-in-ctrl-primary-darker: #111111 !important;
  --gf-color-in-ctrl-primary-lighter: #2a2a2a !important;
  /* field labels: `.field > span` */
  --gf-ctrl-label-font-family-primary: var(--sc-display) !important;
  --gf-ctrl-label-font-size-primary: calc(11.5px * var(--sc-fs, 1)) !important;
  --gf-ctrl-label-font-weight-primary: 600 !important;
  --gf-ctrl-label-letter-spacing-primary: .22em !important;
  --gf-ctrl-label-line-height-primary: 1.7 !important;
  --gf-ctrl-label-color-primary: var(--sc-stone) !important;
  --gf-ctrl-label-color-req: var(--sc-stone) !important;
  --gf-label-space-primary: 6px !important;
  /* the checkbox's own sentence: `.field--check span` */
  --gf-ctrl-label-font-family-secondary: var(--sc-body) !important;
  --gf-ctrl-label-font-size-secondary: calc(14px * var(--sc-fs, 1)) !important;
  --gf-ctrl-label-font-weight-secondary: 400 !important;
  --gf-ctrl-label-letter-spacing-secondary: 0 !important;
  --gf-ctrl-label-line-height-secondary: 1.7 !important;
  --gf-ctrl-label-color-secondary: var(--sc-graphite) !important;
  /* inputs, selects, textarea: `.field input, .field select, .field textarea` */
  --gf-ctrl-font-family: var(--sc-body) !important;
  --gf-ctrl-font-size: calc(16px * var(--sc-fs, 1)) !important;
  --gf-ctrl-line-height: 1.7 !important;
  --gf-ctrl-color: var(--sc-ink) !important;
  --gf-ctrl-bg-color: transparent !important;
  --gf-ctrl-bg-color-hover: transparent !important;
  --gf-ctrl-bg-color-focus: transparent !important;
  --gf-ctrl-border-color: #8f8f8f !important;
  --gf-ctrl-border-color-hover: #8f8f8f !important;
  --gf-ctrl-border-color-focus: var(--sc-ink) !important;
  --gf-ctrl-border-width: 1px !important;
  --gf-ctrl-radius: 0 !important;
  --gf-ctrl-shadow: none !important;
  --gf-ctrl-padding-x: 0 !important;
  --gf-ctrl-padding-y: 10px !important;
  --gf-ctrl-size: auto !important;
  /* the grid: `.form__grid { gap: 0 28px }`, each `.field { margin-top: 22px }` */
  --gf-form-gap-x: 28px !important;
  --gf-form-gap-y: 22px !important;
  /* the button: `.btn` + `.btn--block` */
  --gf-ctrl-btn-font-family: var(--sc-display) !important;
  --gf-ctrl-btn-font-size: calc(12.5px * var(--sc-fs, 1)) !important;
  --gf-ctrl-btn-font-weight: 600 !important;
  --gf-ctrl-btn-letter-spacing: .24em !important;
  --gf-ctrl-btn-text-transform: uppercase !important;
  --gf-ctrl-btn-line-height: 1.7 !important;
  --gf-ctrl-btn-radius: 0 !important;
  --gf-ctrl-btn-shadow: none !important;
  --gf-ctrl-btn-shadow-hover: none !important;
  --gf-ctrl-btn-shadow-focus: none !important;
  --gf-ctrl-btn-padding-x: 34px !important;
  --gf-ctrl-btn-padding-y: 16px !important;
  --gf-ctrl-btn-size: 52px !important;
  --gf-ctrl-btn-bg-color-primary: transparent !important;
  --gf-ctrl-btn-color-primary: var(--sc-ink) !important;
  --gf-ctrl-btn-border-color-primary: var(--sc-ink) !important;
  --gf-ctrl-btn-border-width-primary: 1px !important;
  --gf-ctrl-btn-border-style-primary: solid !important;
  --gf-ctrl-btn-bg-color-hover-primary: var(--sc-ink) !important;
  --gf-ctrl-btn-color-hover-primary: var(--sc-paper) !important;
  --gf-ctrl-btn-border-color-hover-primary: var(--sc-ink) !important;
  --gf-ctrl-btn-bg-color-focus-primary: transparent !important;
  --gf-ctrl-btn-color-focus-primary: var(--sc-ink) !important;
  --gf-ctrl-btn-border-color-focus-primary: var(--sc-ink) !important;
  --gf-form-footer-margin-y-start: 30px !important;
  font-family: var(--sc-body);
}
/* no variable for these: the labels' uppercase, and the fields' 22px top margin before
   the first row (`.form__grid { margin-top: 10px }` + the first `.field`'s 22px) */
.sc-site.page-contact .sc-3p .gform_wrapper .gfield_label { text-transform: uppercase; }
.sc-site.page-contact .sc-3p .gform_wrapper .gform_fields { margin-top: 32px; }
/* the fields are a bottom rule only (`.field input { border: 0; border-bottom: 1px solid #8f8f8f;
   min-height: 44px }`); Orbital draws its border with a shorthand, so the other three sides
   are zeroed here rather than through its width variable */
.sc-site.page-contact .sc-3p .gform_wrapper :is(input:not([type=checkbox]):not([type=submit]):not([type=hidden]), select, textarea) {
  border-top-width: 0; border-left-width: 0; border-right-width: 0; min-height: 44px;
}
/* the focus line: `.field input:focus { outline: none; border-bottom: 2px solid var(--ink) }` */
.sc-site.page-contact .sc-3p .gform_wrapper :is(input:not([type=checkbox]):not([type=submit]):not([type=hidden]), select, textarea):focus { outline: none; border-bottom-width: 2px; }
/* the select's chevron: the mockup's two gradients in place of Orbital's icon */
.sc-site.page-contact .sc-3p .gform_wrapper select {
  appearance: none;
  background: linear-gradient(45deg, transparent 50%, var(--sc-ink) 50%) calc(100% - 12px) 55% / 6px 6px no-repeat,
              linear-gradient(-45deg, transparent 50%, var(--sc-ink) 50%) calc(100% - 6px) 55% / 6px 6px no-repeat;
}
/* the message box: `.field textarea { resize: vertical; min-height: 120px }` with the
   mockup's rows="4" (GF prints rows="10"): four lines plus the 10px padding and the rule */
.sc-site.page-contact .sc-3p .gform_wrapper textarea { resize: vertical; min-height: 120px; line-height: 1.7; block-size: calc(4lh + 21px); }
/* the consent checkbox: `.field--check { display: flex; gap: 12px; align-items: flex-start }`,
   `input { 20x20; margin-top: 3px }` over the UA's checkbox margins (3px 3px 3px 4px). GF's
   own 12px label margin is the mockup's 12px gap. */
.sc-site.page-contact .sc-3p .gform_wrapper .ginput_container_consent { display: flex; align-items: flex-start; }
.sc-site.page-contact .sc-3p .gform_wrapper .ginput_container_consent input[type=checkbox] { flex: none; margin: 3px 3px 3px 4px; }
/* its keyboard focus: the mockup's `:focus-visible { outline: 2px solid currentColor; outline-offset: 4px }` */
.sc-site.page-contact .sc-3p .gform_wrapper input[type=checkbox]:focus-visible { outline: 2px solid var(--sc-ink); outline-offset: 4px; }
/* the button's keyboard focus: the mockup's `:focus-visible { outline: 2px solid currentColor; outline-offset: 4px }` */
.sc-site.page-contact .sc-3p .gform_wrapper .gform_button:focus-visible { outline: 2px solid var(--sc-ink); outline-offset: 4px; }
/* GF's form heading: an empty description <p> (this form has none), whose Astra paragraph
   margin pushed the fields 27px down, and GF's line explaining the asterisk. That line
   has no place in the mockup; it shows after the button, set like the fine print beside it
   (`.form__fine`), and stays first in reading order for screen readers. */
.sc-site.page-contact .sc-3p .gform_wrapper .gform_description:empty { display: none; }
.sc-site.page-contact .sc-3p .gform_wrapper { display: flex; flex-direction: column; }
.sc-site.page-contact .sc-3p .gform_wrapper > .gform_heading { order: 1; }
.sc-site.page-contact .sc-3p .gform_wrapper .gform_required_legend { margin: 14px 0 0; font-size: calc(13px * var(--sc-fs, 1)); line-height: 1.7; color: var(--sc-stone); }
.sc-site.page-contact .sc-3p .gform_wrapper .gform_required_legend .gfield_required { color: inherit; }

/* ---------- the contact card ---------- */
/* The headshot: `.ccard > img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover;
   object-position: 50% 22% }`; core puts a figure between the card and its <img>. */
.sc-site .sc-ccard > figure.wp-block-image > img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; object-position: 50% 22%; }
/* The Your Castle mark: `.ccard .yc-mark { height: 26px; width: auto }` sits on the core
   figure (the converter's placement for an img class); the <img> keeps its own ratio. */
.sc-site .sc-ccard .sc-yc-mark > img { width: auto; height: 26px; }
/* The mockup's `<dl>` became a group (`sc-dl`), so `.ccard dl` and `.ccard dl > div`
   have nothing to reach; same values on the group and its rows. */
.sc-site .sc-ccard .sc-dl { margin: 1.8rem 0 0; border-top: 1px solid var(--sc-line); }
.sc-site .sc-ccard .sc-dl > .sc-dl-row { padding: 16px 0; border-bottom: 1px solid var(--sc-line); }
/* The phone and email links are the card's only controls: a 44px hit area (house
   minimum) without moving a pixel, inside each row's 16px padding. */
.sc-site .sc-ccard .sc-dd a { display: inline-block; padding-block: 11px; margin-block: -11px; }
/* denver: inline styles from mockups/22-homes-for-sale-denver-co.html, generated by mock2grapple.py */
.sc-site .sc-x-denver-1{object-position:50% 55% !important}
.sc-site .sc-x-denver-3{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-denver-4{object-position:50% 55% !important}
.sc-site .sc-x-denver-5{object-position:50% 55% !important}
.sc-site .sc-x-denver-6{object-position:50% 55% !important}
.sc-site .sc-x-denver-7{object-position:50% 55% !important}

/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site.page-homes-for-sale-denver-co .sc-cx-para { background-position: 50% 50% !important; }   /* section.cx-para */

/* Everything the eleven community pages share is in broomfield.css ("COMMUNITY PAGES"). */
/* erie: inline styles from mockups/20-homes-for-sale-erie-co.html, generated by mock2grapple.py */
.sc-site .sc-x-erie-1{object-position:50% 12% !important}
.sc-site .sc-x-erie-2{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-erie-3{object-position:50% 55% !important}
.sc-site .sc-x-erie-4{object-position:50% 55% !important}
.sc-site .sc-x-erie-5{object-position:50% 55% !important}
.sc-site .sc-x-erie-6{object-position:50% 55% !important}

/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site.page-homes-for-sale-erie-co .sc-cx-para { background-position: 50% 50% !important; }   /* section.cx-para */

/* Everything the eleven community pages share is in broomfield.css ("COMMUNITY PAGES"). */
/* featured_listings: inline styles from mockups/12-featured-listings.html, generated by mock2grapple.py */
.sc-site .sc-x-featured-listings-1{object-position:50% 58% !important}
.sc-site .sc-x-featured-listings-2{padding-top:clamp(56px,6vw,96px) !important}

/* featured_listings: the parallax CTA's crop is the mockup section's inline background-position
   (50% 50%), which the converter drops on covers; the image div inherits it (adapt.css). */
.sc-site.page-featured-listings .sc-cx-para { background-position: 50% 50%; }
/* greenway_park: inline styles from mockups/16-homes-for-sale-greenway-park-broomfield.html, generated by mock2grapple.py */
.sc-site .sc-x-greenway-park-1{object-position:50% 60% !important}
.sc-site .sc-x-greenway-park-2{object-position:30% 50% !important}
.sc-site .sc-x-greenway-park-3{width:100% !important;margin-top:1.6rem !important}
.sc-site .sc-x-greenway-park-4{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-greenway-park-5{object-position:50% 55% !important}
.sc-site .sc-x-greenway-park-6{object-position:50% 55% !important}
.sc-site .sc-x-greenway-park-7{object-position:50% 55% !important}
.sc-site .sc-x-greenway-park-8{object-position:50% 55% !important}

/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site.page-homes-for-sale-greenway-park-broomfield .sc-cx-para { background-position: 50% 50% !important; }   /* section.cx-para */
/* a.tlink "Read every report": style="margin-top:1.8rem", which beat the mockup's `.bleed__body > .tlink` 2rem */
.sc-site.page-homes-for-sale-greenway-park-broomfield .sc-bleed__body > p > .sc-tlink { margin-top: 1.8rem !important; }

/* Everything the eleven community pages share is in broomfield.css ("COMMUNITY PAGES"). */
/* home: inline styles from mockups/01-home.html, generated by mock2grapple.py */
.sc-site .sc-x-home-1{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-home-2{margin-bottom:0 !important}
.sc-site .sc-x-home-3{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-home-4{margin-bottom:0 !important}
.sc-site .sc-x-home-5{margin-top:2.2rem !important}
/* home_search: inline styles from mockups/11-home-search.html, generated by mock2grapple.py */
.sc-site .sc-x-home-search-1{object-position:50% 55% !important}

/* home_search: the parallax CTA's crop is the mockup section's inline background-position
   (40% 50%), which the converter drops on covers; the image div inherits it (adapt.css). */
.sc-site.page-home-search .sc-cx-para { background-position: 40% 50%; }
/* home_valuation: inline styles from mockups/06-home-valuation.html, generated by mock2grapple.py */
.sc-site .sc-x-home-valuation-1{padding-bottom:clamp(44px,5vw,80px) !important}

/* ---- home_valuation: page adaptation (hand-written, 2026-09-24) --------------------

   Photo crops. The converter drops a mockup <img>'s inline style; these are the
   mockup's own object-position values, only where the mockup set something other than
   the default centre. The hero's classed figure hands its crop to the <img> (adapt.css);
   the tile's figure is class-less (display:contents), so its <img> takes the crop
   directly, matched by file name because the crop belongs to that photo. */
.sc-site.page-home-valuation .sc-ph__img {object-position: 50% 58%;}
.sc-site.page-home-valuation .sc-tile img[src*="/steve-living-phone."] {object-position: 45% 50%;}
/* Section crops (the mockup's inline background-position; the cover's image layer
   inherits it from the section, adapt.css). */
.sc-site.page-home-valuation .sc-statement {background-position: 50% 55%;}
.sc-site.page-home-valuation .sc-cx-para {background-position: 50% 50%;}

/* ---- The hero address bar: the AgenticPress estimator wearing the mockup's .hvbar ----
   [agenticpress_home_value_estimator button_position="inline" gap="0"] prints
   #agenticpress-hv-container > #agenticpress-hv-form-wrapper > form#agenticpress-hv-form
   { honeypot, .ap-input-container > gmp-place-autocomplete, button[type=submit] }, then
   an error box and the results panel. The group around it wears .sc-hvbar__row (the
   white bar and its shadow, from mockup.css); these rules put the mockup's .hvbar input
   and .hvbar .btn values on the plugin's own elements. Selectors carry the plugin's id
   because its inline <style> scopes everything to #agenticpress-hv-container.

   The Places input only renders once the plugin has its Google Places key; the
   ::part(input) rules follow the estimator kit (widgets/home-value-estimator) and are
   not verifiable on Local until then. */
.sc-site.page-home-valuation .sc-hvbar__row > #agenticpress-hv-container {flex: 1; min-width: 0;}
.sc-site.page-home-valuation #agenticpress-hv-form .ap-input-container {
  flex: 1; min-width: 0; min-height: 64px; display: flex; align-items: stretch;
  align-self: stretch; /* the mockup's input fills the bar's height; the plugin's inline align-items:center would not */
}
.sc-site.page-home-valuation #agenticpress-hv-container gmp-place-autocomplete::part(input) {
  min-height: 64px !important; padding: 0 22px !important; border: 0 !important; border-radius: 0 !important;
  box-shadow: none !important; background: transparent !important;
  font-size: calc(16px * var(--sc-fs, 1)) !important; color: var(--sc-ink) !important;
  -webkit-text-fill-color: var(--sc-ink) !important; caret-color: var(--sc-ink) !important;
}
.sc-site.page-home-valuation #agenticpress-hv-container gmp-place-autocomplete::part(input)::placeholder {color: var(--sc-stone) !important; opacity: 1 !important;}
.sc-site.page-home-valuation #agenticpress-hv-container gmp-place-autocomplete::part(input):focus {outline-color: var(--sc-ink) !important;}
.sc-site.page-home-valuation #agenticpress-hv-form button[type="submit"] {
  -webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: .7em;
  flex: none; margin: 8px; min-height: 48px; padding: 16px 34px;
  border: 1px solid var(--sc-ink); border-radius: 0; box-shadow: none; background: transparent; color: var(--sc-ink);
  font-family: var(--sc-display); font-weight: 600; font-size: calc(12.5px * var(--sc-fs, 1)); line-height: 1.7;
  letter-spacing: .24em; text-transform: uppercase; text-decoration: none; cursor: pointer;
  transition: background 400ms var(--sc-ease), color 400ms var(--sc-ease), border-color 400ms var(--sc-ease);
}
.sc-site.page-home-valuation #agenticpress-hv-form button[type="submit"]:hover {background: var(--sc-ink); color: var(--sc-paper);}
.sc-site.page-home-valuation #agenticpress-hv-form button[type="submit"]:focus-visible {outline: 2px solid currentColor; outline-offset: 4px;}
@media (max-width: 640px) {
  /* .hvbar__row stacks (mockup): the plugin's form is the row here, and its inline
     align-items:center would shrink the button, so stretch it as the mockup's column does */
  .sc-site.page-home-valuation #agenticpress-hv-form {flex-direction: column; align-items: stretch !important;}
  .sc-site.page-home-valuation #agenticpress-hv-form button[type="submit"] {margin: 0 8px 8px;}
}
/* The plugin's honeypot is an unlabelled text field moved off-screen (left:-9999px,
   opacity 0, tabindex -1): invisible, but a screen reader in browse mode still lands on
   it (axe: label, critical). display:none takes it out of the accessibility tree; the
   honeypot still works, because the plugin's script posts the field's (empty) value and
   the server only checks that it is empty. */
.sc-site.page-home-valuation #agenticpress-website {display: none;}
/* The hero clips its overflow (mockup .ph); the Places suggestion list opens below the
   bar, which sits at the foot of the hero, and would be cut off (estimator kit, trap 4).
   The hero's photo and scrim are inset:0, so nothing else escapes. */
.sc-site.page-home-valuation .sc-ph {overflow: visible;}

/* ---- "Four times it pays": the mockup's four inline line icons (.g4 .ico, 34px, ink),
   dropped by the converter, drawn as masks on each cell. inline-block, like the inline
   <svg> they replace, so the line box (and the heading below it) sits where the mockup's
   does. Decorative: aria-hidden in the mockup, and a pseudo-element carries no text. */
.sc-site.page-home-valuation .sc-g4 > .sc-box::before {
  content: ""; display: inline-block; width: 34px; height: 34px; margin-bottom: 1.4rem;
  color: var(--sc-ink); background-color: currentColor;
  -webkit-mask: var(--sc-ico) center / 34px 34px no-repeat; mask: var(--sc-ico) center / 34px 34px no-repeat;
}
.sc-site.page-home-valuation .sc-g4 > .sc-box:nth-child(1) {--sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Crect x='3' y='6' width='18' height='12'/%3E%3Cpath d='M3 10h18M7 15h4'/%3E%3C/svg%3E");}
.sc-site.page-home-valuation .sc-g4 > .sc-box:nth-child(2) {--sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M14.5 5.5a4 4 0 00-5 5L4 16l4 4 5.5-5.5a4 4 0 005-5l-2.5 2.5-2.5-.5-.5-2.5z'/%3E%3C/svg%3E");}
.sc-site.page-home-valuation .sc-g4 > .sc-box:nth-child(3) {--sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M4 20V4M4 20h16'/%3E%3Cpath d='M7.5 15.5l3.5-4 3 2.5 5-6.5'/%3E%3C/svg%3E");}
.sc-site.page-home-valuation .sc-g4 > .sc-box:nth-child(4) {--sc-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E");}
/* lafayette: inline styles from mockups/21-homes-for-sale-lafayette-co.html, generated by mock2grapple.py */
.sc-site .sc-x-lafayette-1{object-position:50% 55% !important}
.sc-site .sc-x-lafayette-2{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-lafayette-3{object-position:50% 55% !important}
.sc-site .sc-x-lafayette-4{object-position:50% 55% !important}
.sc-site .sc-x-lafayette-5{object-position:50% 55% !important}
.sc-site .sc-x-lafayette-6{object-position:50% 55% !important}

/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site.page-homes-for-sale-lafayette-co .sc-cx-para { background-position: 50% 50% !important; }   /* section.cx-para */

/* Everything the eleven community pages share is in broomfield.css ("COMMUNITY PAGES"). */
/* mls_disclaimer: inline styles from mockups/28-mls-disclaimer.html, generated by mock2grapple.py */
.sc-site .sc-x-mls-disclaimer-1{padding-top:clamp(56px,6vw,96px) !important}
/* past_sales: inline styles from mockups/13-past-sales.html, generated by mock2grapple.py */
.sc-site .sc-x-past-sales-1{object-position:50% 58% !important}
.sc-site .sc-x-past-sales-2{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-past-sales-3{object-position:50% 60% !important}
.sc-site .sc-x-past-sales-4{object-position:50% 60% !important}
.sc-site .sc-x-past-sales-5{object-position:50% 60% !important}
.sc-site .sc-x-past-sales-6{object-position:50% 50% !important}
/* privacy: inline styles from mockups/26-privacy-policy.html, generated by mock2grapple.py */
.sc-site .sc-x-privacy-1{padding-top:clamp(56px,6vw,96px) !important}

/* privacy: page adaptation (hand-written, 2026-09-24). The contact block was an <address>
   in the mockup, which browsers set in italic (their default; the mockup CSS never
   overrides it). A core paragraph is not an <address>, so the italic is restated. */
.sc-site.page-privacy-policy .sc-legal__address {font-style: italic;}
/* sellers_guide: inline styles from mockups/08-sellers-guide.html, generated by mock2grapple.py */

/* ---- sellers_guide: page adaptation (hand-written, 2026-09-24) ---------------------

   The guide block's Gravity Forms download form is styled once for both guide pages in
   buyers_guide.css, scoped to .sc-guide, which exists only on the two guides.

   Photo crops. The converter drops a mockup <img>'s inline style; these are the
   mockup's own object-position values, one per photo, and only where the mockup set
   something other than the default centre. The hero's classed figure hands its crop to
   the <img> (adapt.css). Class-less figures are display:contents, so the <img> takes the
   crop directly; it is matched by its file name because the crop belongs to that photo
   (attachment ids differ between Local and staging). */
.sc-site.page-sellers-guide .sc-ph__img {object-position: 50% 60%;}
.sc-site.page-sellers-guide .sc-vid img[src*="/steve-sofa."] {object-position: 50% 45%;}
.sc-site.page-sellers-guide .sc-step img[src*="/steve-driveway."] {object-position: 40% 50%;}
.sc-site.page-sellers-guide .sc-step img[src*="/anthem-sunset-aerial."] {object-position: 50% 60%;}
.sc-site.page-sellers-guide .sc-step img[src*="/steve-stairs."] {object-position: 55% 50%;}
.sc-site.page-sellers-guide .sc-step img[src*="/closing-12."] {object-position: 50% 40%;}
/* Section crops (the mockup's inline background-position; the cover's image layer
   inherits it from the section, adapt.css). .sc-statement has no position of its own in
   the mockup CSS, and .sc-cx-para's 50% 35% is overridden inline on this page. */
.sc-site.page-sellers-guide .sc-statement {background-position: 50% 50%;}
.sc-site.page-sellers-guide .sc-cx-para {background-position: 50% 50%;}
/* services: inline styles from mockups/03-services.html, generated by mock2grapple.py */
.sc-site .sc-x-services-1{object-position:68% 50% !important}
.sc-site .sc-x-services-2{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-services-3{object-position:50% 50% !important}
.sc-site .sc-x-services-4{object-position:50% 60% !important}
.sc-site .sc-x-services-5{object-position:50% 55% !important}
.sc-site .sc-x-services-6{object-position:50% 50% !important}
.sc-site .sc-x-services-7{object-position:50% 55% !important}
.sc-site .sc-x-services-8{object-position:50% 50% !important}
.sc-site .sc-x-services-9{object-position:35% 50% !important}
/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site .sc-x-services-10{background-position:50% 60% !important}   /* section.statement */
.sc-site .sc-x-services-11{margin-inline:auto !important}             /* figure.pull */
.sc-site .sc-x-services-12{background-position:50% 50% !important}   /* section.cx-para */

/* ---------- services: page adaptation ----------
   The pull quote's adaptation (.sc-pull) is shared with About and lives in about.css;
   the statement's scrim stacking is central (adapt.css, every photo cover). */
/* sitemap: inline styles from mockups/25-sitemap.html, generated by mock2grapple.py */
.sc-site .sc-x-sitemap-1{padding-top:clamp(56px,6vw,96px) !important}
/* superior: inline styles from mockups/24-homes-for-sale-superior-co.html, generated by mock2grapple.py */
.sc-site .sc-x-superior-1{object-position:50% 60% !important}
.sc-site .sc-x-superior-2{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-superior-3{object-position:50% 55% !important}
.sc-site .sc-x-superior-4{object-position:50% 55% !important}
.sc-site .sc-x-superior-5{object-position:50% 55% !important}
.sc-site .sc-x-superior-6{object-position:50% 55% !important}

/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site.page-homes-for-sale-superior-co .sc-cx-para { background-position: 50% 50% !important; }   /* section.cx-para */

/* Everything the eleven community pages share is in broomfield.css ("COMMUNITY PAGES"). */
/* terms: inline styles from mockups/27-terms-of-use.html, generated by mock2grapple.py */
.sc-site .sc-x-terms-1{padding-top:clamp(56px,6vw,96px) !important}

/* terms: page adaptation (hand-written, 2026-09-24). The contact block was an <address>
   in the mockup, which browsers set in italic (their default; the mockup CSS never
   overrides it). A core paragraph is not an <address>, so the italic is restated. */
.sc-site.page-terms-of-use .sc-legal__address {font-style: italic;}
/* testimonials: inline styles from mockups/04-testimonials.html, generated by mock2grapple.py */
.sc-site .sc-x-testimonials-1{object-position:78% 50% !important}
.sc-site .sc-x-testimonials-2{object-position:30% 50% !important}
.sc-site .sc-x-testimonials-3{color:#e2e2e2 !important}
/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site .sc-x-testimonials-4{background-position:50% 55% !important}   /* section.cx-para */

/* ---------- testimonials: page adaptation (hand-written) ---------- */

/* The three reviews under the lead (.sc-revs__grid is testimonials only). Core puts
   `sc-quote` on the <blockquote> itself and wraps the text in a <p>, so the mockup's
   `.revs__grid .quote blockquote` rule has nothing to reach. Same values, on the <p>. */
.sc-site .sc-revs__grid .sc-quote > p {
  margin: 0; font-size: calc(17px * var(--sc-fs, 1)); line-height: 1.75; color: var(--sc-graphite);
}
/* thornton: inline styles from mockups/19-homes-for-sale-thornton-co.html, generated by mock2grapple.py */
.sc-site .sc-x-thornton-1{object-position:50% 55% !important}
.sc-site .sc-x-thornton-2{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-thornton-3{object-position:50% 55% !important}
.sc-site .sc-x-thornton-4{object-position:50% 55% !important}
.sc-site .sc-x-thornton-5{object-position:50% 55% !important}
.sc-site .sc-x-thornton-6{object-position:50% 55% !important}

/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site.page-homes-for-sale-thornton-co .sc-cx-para { background-position: 50% 55% !important; }   /* section.cx-para */

/* Everything the eleven community pages share is in broomfield.css ("COMMUNITY PAGES"). */
/* westminster: inline styles from mockups/18-homes-for-sale-westminster-co.html, generated by mock2grapple.py */
.sc-site .sc-x-westminster-1{object-position:50% 50% !important}
.sc-site .sc-x-westminster-2{padding-bottom:clamp(44px,5vw,80px) !important}
.sc-site .sc-x-westminster-3{object-position:50% 55% !important}
.sc-site .sc-x-westminster-4{object-position:50% 55% !important}
.sc-site .sc-x-westminster-5{object-position:50% 55% !important}
.sc-site .sc-x-westminster-6{object-position:50% 55% !important}

/* the mockup's inline styles the converter does not carry (hand-carried, same values) */
.sc-site.page-homes-for-sale-westminster-co .sc-cx-para { background-position: 50% 55% !important; }   /* section.cx-para */

/* Everything the eleven community pages share is in broomfield.css ("COMMUNITY PAGES"). */
