/* Theme kit: "Wave Wall" (Central Beach). After the white serpentine wave wall along A1A / Fort Lauderdale Beach
   Blvd and the pastel lifeguard towers on the sand: a shell-white page, deep Atlantic teal-green ink and buttons,
   lifeguard yellow and sea-glass as decorative accents, a burnt-tangerine eyebrow. Motifs: a scalloped white
   "wave wall" band under the header and over the footer, H2s with a small rising-sun half disc, rounded "beach tag"
   cards with a sea-glass top swell, an ARCHED hero plate in a candy-striped lifeguard-tower frame, and stats as
   rounded tower chips with a yellow cap.
   Bricolage Grotesque (heavy, condensed-optical display) headings, Figtree body.
   Loaded only on sites whose config sets themeKit.name = 'wave-wall' (Base.astro); every rule is scoped to
   html[data-theme="wave-wall"], so other sites are unaffected even if this file were loaded.
   Fonts: SIL Open Font License 1.1 (see fonts/OFL-*.txt), self-hosted from @fontsource. */
@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 800; font-display: swap; src: url(fonts/bricolage-grotesque-latin-800-normal.woff2) format('woff2'); }
@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/bricolage-grotesque-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/figtree-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'Figtree'; font-style: italic; font-weight: 400; font-display: swap; src: url(fonts/figtree-latin-400-italic.woff2) format('woff2'); }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/figtree-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/figtree-latin-700-normal.woff2) format('woff2'); }

html[data-theme="wave-wall"] {
  --serif: 'Bricolage Grotesque', 'Arial Narrow', system-ui, sans-serif;
  --display: 'Bricolage Grotesque', 'Arial Narrow', system-ui, sans-serif;
  --sans: 'Figtree', 'Segoe UI', 'Helvetica Neue', Arial, system-ui, sans-serif;
  --radius: 18px; --radius-sm: 999px; --pill: 999px;
  --surface: #ffffff;
  --seaglass: #8fd5c6;
  --tower: #ffc83d;
  /* The wave wall: a repeating white serpentine scallop over a sea-glass line (36px period). */
  --wavewall: radial-gradient(circle at 9px 0, transparent 8.5px, var(--surface) 9px) 0 0 / 18px 10px repeat-x,
              linear-gradient(var(--seaglass), var(--seaglass)) 0 10px / 100% 4px no-repeat;
  /* Lifeguard-tower candy stripe (frame of the hero plate). */
  --stripe: repeating-linear-gradient(135deg, var(--tower) 0 12px, var(--surface) 12px 24px);
  --shadow: 0 18px 30px -24px rgba(11, 59, 58, .55), 0 2px 0 rgba(11, 59, 58, .06);
}
html[data-theme="wave-wall"] body { background: var(--paper); font-family: var(--sans); font-size: 1.04rem; line-height: 1.7; }
html[data-theme="wave-wall"] h1, html[data-theme="wave-wall"] h2, html[data-theme="wave-wall"] h3 { font-family: var(--display); font-weight: 800; letter-spacing: -.015em; line-height: 1.08; }
html[data-theme="wave-wall"] h3 { font-weight: 600; letter-spacing: -.005em; color: var(--ink); }
html[data-theme="wave-wall"] h1 { font-size: clamp(2.3rem, 5vw, 3.6rem); }
html[data-theme="wave-wall"] .main h2 { position: relative; padding-left: 2.1rem; }
html[data-theme="wave-wall"] .main h2::before { content: ""; position: absolute; left: 0; top: .2em; width: 22px; height: 11px; border-radius: 22px 22px 0 0; background: var(--tower); box-shadow: 0 3px 0 var(--turquoise); }
html[data-theme="wave-wall"] .eyebrow { font: 700 .76rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--coral-deep); }
html[data-theme="wave-wall"] .answer { font: 400 1.14rem/1.68 var(--sans); }
html[data-theme="wave-wall"] a { text-underline-offset: .22em; text-decoration-thickness: 1.5px; }
html[data-theme="wave-wall"] a:hover { text-decoration-color: var(--tower); text-decoration-thickness: 3px; }

/* Header: white bar resting on the wave wall */
html[data-theme="wave-wall"] .site-header { background: var(--surface); border-bottom: 0; box-shadow: none; }
html[data-theme="wave-wall"] .site-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: -14px; height: 14px; background: var(--wavewall); pointer-events: none; }
html[data-theme="wave-wall"] .site-header__title { font: 800 1.28rem/1.05 var(--display); letter-spacing: -.02em; }
html[data-theme="wave-wall"] .primary-nav a { font-family: var(--sans); font-weight: 600; font-size: .9rem; letter-spacing: 0; }
@media (min-width: 1280px) { html[data-theme="wave-wall"] .primary-nav a { font-size: .84rem; } }
@media (min-width: 1280px) and (max-width: 1339px) { html[data-theme="wave-wall"] .primary-nav ul { gap: .45rem; } html[data-theme="wave-wall"] .primary-nav a { font-size: .76rem; } html[data-theme="wave-wall"] .primary-nav .btn--small { padding: .7rem .8rem; font-size: .76rem; } html[data-theme="wave-wall"] .site-header__title { font-size: 1.05rem; } }
@media (min-width: 1340px) { html[data-theme="wave-wall"] .primary-nav .btn--small { padding: .75rem 1rem; } }
html[data-theme="wave-wall"] .primary-nav a:hover { border-bottom-color: var(--tower); }
html[data-theme="wave-wall"] .primary-nav a[aria-current="page"] { border-bottom-color: var(--turquoise); color: var(--ink); }

/* Buttons: Atlantic-teal pills with a lifeguard-yellow lip; hover deep sea */
html[data-theme="wave-wall"] .btn { color: #fff; border-radius: var(--pill); font: 700 .95rem/1 var(--sans); letter-spacing: .01em; padding: 1rem 1.6rem; box-shadow: 0 4px 0 var(--tower); }
html[data-theme="wave-wall"] .btn:hover { color: #fff; transform: translateY(1px); box-shadow: 0 3px 0 var(--tower); }
html[data-theme="wave-wall"] .btn--small { color: #fff !important; border-radius: var(--pill); box-shadow: 0 3px 0 var(--tower); }
html[data-theme="wave-wall"] .btn--ghost { background: transparent; color: var(--ink); border: 2px solid var(--ink); box-shadow: none; }
html[data-theme="wave-wall"] .btn--ghost:hover { background: var(--ink); color: #fff; box-shadow: none; }

/* Tables: white with a rounded wrap and a sea-glass head */
html[data-theme="wave-wall"] .table-wrap, html[data-theme="wave-wall"] table { background: var(--surface); }
html[data-theme="wave-wall"] .table-wrap { border: 1px solid var(--line); border-radius: 14px; box-shadow: inset 0 4px 0 var(--seaglass); }
html[data-theme="wave-wall"] .prose table { border: 1px solid var(--line); border-top: 4px solid var(--seaglass); }
html[data-theme="wave-wall"] th { background: var(--paper-alt); color: var(--ink); font: 700 .8rem/1.3 var(--sans); letter-spacing: .04em; text-transform: uppercase; }

/* Cards: rounded beach tags with a sea-glass swell on top */
html[data-theme="wave-wall"] .card { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.9rem 1.35rem 1.35rem; box-shadow: var(--shadow); overflow: hidden; }
html[data-theme="wave-wall"] .card::before { content: ""; display: block; position: absolute; top: 0; left: 0; right: 0; height: 10px; width: auto; border-radius: 0; background: radial-gradient(circle at 9px 10px, var(--seaglass) 8.5px, transparent 9px) 0 0 / 18px 10px repeat-x; }
html[data-theme="wave-wall"] .card h3, html[data-theme="wave-wall"] .card h2 { margin-top: .35rem; }
html[data-theme="wave-wall"] a.card:hover { border-color: var(--turquoise); transform: translateY(-3px); }
html[data-theme="wave-wall"] .note { border-left: 0; background: var(--paper-alt); border-radius: var(--radius); box-shadow: inset 6px 0 0 var(--tower); }
html[data-theme="wave-wall"] .from-blog, html[data-theme="wave-wall"] .related-guides { border-left: 0; box-shadow: inset 6px 0 0 var(--seaglass); background: var(--paper-alt); border-radius: var(--radius); }
html[data-theme="wave-wall"] .faq details { background: var(--surface); border-radius: 14px; border: 1px solid var(--line); }
html[data-theme="wave-wall"] .faq summary { font: 600 1.12rem/1.35 var(--display); }
html[data-theme="wave-wall"] .faq summary::marker { color: var(--turquoise); }
html[data-theme="wave-wall"] .lead, html[data-theme="wave-wall"] .listing, html[data-theme="wave-wall"] .post-list__item { background: var(--surface); border-radius: var(--radius); }
html[data-theme="wave-wall"] .lead input, html[data-theme="wave-wall"] .lead select, html[data-theme="wave-wall"] .lead textarea, html[data-theme="wave-wall"] .sort select { border-color: #6f7f7d; border-radius: 10px; }
html[data-theme="wave-wall"] .listing__price { font-family: var(--display); font-weight: 800; letter-spacing: -.01em; }
html[data-theme="wave-wall"] .seg { border-radius: var(--pill); }
html[data-theme="wave-wall"] .seg button[aria-selected="true"] { background: var(--sun); color: #fff; }
html[data-theme="wave-wall"] .listing-dialog::backdrop { background: rgba(11, 40, 39, .72); }
/* Condo template: rounded building cards */
html[data-theme="wave-wall"] .bldg-card { border-radius: var(--radius); box-shadow: var(--shadow); }
html[data-theme="wave-wall"] .bldg-card:hover { border-color: var(--turquoise); }
html[data-theme="wave-wall"] .bldg-card__elev { background: linear-gradient(180deg, var(--sky) 0 70%, var(--sand) 70%); }
html[data-theme="wave-wall"] .bldg-card__name { font-weight: 800; letter-spacing: -.01em; }
html[data-theme="wave-wall"] .bldg-hero__elev { border-radius: var(--radius); overflow: hidden; border-color: var(--line); background: linear-gradient(180deg, var(--sky) 0 72%, var(--sand) 72%); }

/* CTA + footer: deep sea, wave wall on top */
html[data-theme="wave-wall"] .wave { display: none; }
html[data-theme="wave-wall"] .cta { background: var(--deep); border-radius: 28px; box-shadow: inset 0 -6px 0 var(--tower); }
html[data-theme="wave-wall"] .site-footer { position: relative; margin-top: 3.4rem; background: var(--deep); border-top: 0; padding-top: 3.6rem; }
html[data-theme="wave-wall"] .site-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 14px; background: var(--wavewall); transform: scaleY(-1); }
html[data-theme="wave-wall"] .site-footer .bmls-logo { background: #fff; padding: 3px 6px; border-radius: 6px; box-sizing: content-box; }
html[data-theme="wave-wall"] .footer-h { font-family: var(--display); font-weight: 800; letter-spacing: -.01em; }

/* ---------- Editorial hero (home.heroVariant = 'editorial'): a horizon split (sky to sand) behind an arched,
   candy-striped "lifeguard tower" plate; copy on shell-white ---------- */
html[data-theme="wave-wall"] .hx { color: var(--ink); position: relative; padding-top: 1.6rem; background: linear-gradient(180deg, var(--paper) 0 68%, var(--sand) 68% 100%); }
@media (min-width: 960px) { html[data-theme="wave-wall"] .hx { background: linear-gradient(90deg, var(--paper) 0 56%, var(--sky) 56% 100%); } }
html[data-theme="wave-wall"] .hx__grid { display: grid; gap: 0; max-width: 1160px; margin: 0 auto; padding: 0 1.25rem; }
@media (min-width: 960px) { html[data-theme="wave-wall"] .hx__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 3.4rem; align-items: center; min-height: 600px; } }
html[data-theme="wave-wall"] .hx__copy { padding: 2.2rem 0 1.6rem; display: flex; flex-direction: column; justify-content: center; }
@media (min-width: 960px) { html[data-theme="wave-wall"] .hx__copy { padding: 3rem 0 3.4rem; } }
html[data-theme="wave-wall"] .hx__kicker { display: flex; flex-wrap: wrap; gap: .45rem; font: 700 .76rem/1.2 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin: 0 0 1.3rem; }
html[data-theme="wave-wall"] .hx__kicker span { background: var(--surface); border: 1.5px solid var(--ink); border-radius: var(--pill); padding: .42rem .8rem; }
html[data-theme="wave-wall"] .hx__kicker span:first-child { background: var(--tower); border-color: var(--tower); }
html[data-theme="wave-wall"] .hx__title { font-family: var(--display) !important; font-weight: 800 !important; font-size: clamp(3rem, 8vw, 6rem) !important; margin: 0 0 1.2rem !important; line-height: .92 !important; letter-spacing: -.035em !important; color: var(--ink) !important; }
html[data-theme="wave-wall"] .hx__title span { display: inline-block; color: var(--sun); padding-bottom: .16em; background: radial-gradient(circle at 9px 0, transparent 7px, var(--tower) 7.5px 10px, transparent 10.5px) 0 100% / 18px 10px repeat-x; }
html[data-theme="wave-wall"] .hx .answer { max-width: 52ch; color: var(--ink); }
html[data-theme="wave-wall"] .hx__actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 1rem; }
/* Arched plate in a 14px lifeguard-stripe frame */
html[data-theme="wave-wall"] .hx__plate { position: relative; margin: 0 auto 2.4rem; width: min(84vw, 400px); aspect-ratio: 5 / 6; color: var(--on-deep); overflow: hidden;
  border: 14px solid transparent; border-radius: 200px 200px 22px 22px;
  background: linear-gradient(var(--deep), var(--deep)) padding-box, var(--stripe) border-box; box-shadow: 0 0 0 3px var(--ink), var(--shadow); }
@media (min-width: 960px) { html[data-theme="wave-wall"] .hx__plate { margin: 2.6rem 0; width: 100%; max-width: 420px; justify-self: center; } }
html[data-theme="wave-wall"] .hx__plate svg { position: absolute; inset: 0; width: 100%; height: 100%; }
html[data-theme="wave-wall"] .hx__plate figcaption { position: absolute; left: 10%; right: 10%; bottom: 3.5%; text-align: center; font: 600 .72rem/1.3 var(--sans); letter-spacing: .03em; color: var(--on-deep); margin: 0; }
/* Stats: rounded tower chips with a yellow cap */
html[data-theme="wave-wall"] .hx__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; max-width: 1160px; margin: 0 auto; padding: 0 1.25rem 2.8rem; }
@media (min-width: 760px) { html[data-theme="wave-wall"] .hx__stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
html[data-theme="wave-wall"] .hx__stat { margin: 0; padding: 1.3rem 1.1rem 1.15rem; background: var(--deep); color: var(--on-deep); border-radius: 22px 22px 14px 14px; box-shadow: inset 0 7px 0 var(--tower); }
html[data-theme="wave-wall"] .hx__stat dt { font: 700 .7rem/1.3 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--on-deep-link); margin-top: .2rem; }
html[data-theme="wave-wall"] .hx__stat dd { margin: .5rem 0 0; font: 800 clamp(1.6rem, 3vw, 2.2rem)/1 var(--display); letter-spacing: -.02em; color: var(--on-deep); }
html[data-theme="wave-wall"] .hx__stat dd small { display: block; font: 400 .8rem/1.35 var(--sans); letter-spacing: 0; color: var(--on-deep); margin-top: .45rem; }
@media (min-width: 720px) {
  html[data-theme="wave-wall"] .prose table { display: table; width: 100%; border-collapse: separate; border-spacing: 0; }
}

/* Preview-only [VERIFY] marks: let long ones wrap so they never widen the page on phones. */
html[data-theme="wave-wall"] mark.verify { white-space: normal; display: inline; line-height: 1.5; box-decoration-break: clone; -webkit-box-decoration-break: clone; }

/* About Glen: wave-wall = rounded beach-tag panel with a scalloped sea-glass top; arched, candy-striped photo frame. */
html[data-theme="wave-wall"] .about-glen { position: relative; background: var(--surface); border-radius: 28px; overflow: hidden; padding-top: 2.4rem; }
html[data-theme="wave-wall"] .about-glen::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 10px; background: radial-gradient(circle at 9px 10px, var(--seaglass) 8.5px, transparent 9px) 0 0 / 18px 10px repeat-x; }
html[data-theme="wave-wall"] .about-glen .about-glen__photo img { border-radius: 999px 999px 18px 18px; border: 10px solid transparent; background: var(--stripe) border-box; box-shadow: var(--shadow); }
html[data-theme="wave-wall"] .about-glen__line { font-family: var(--display); font-weight: 800; font-size: 1.05rem; letter-spacing: -.01em; }
html[data-theme="wave-wall"] .about-glen__media .about-glen__line { border-left: 0; padding: .35rem .9rem; border-radius: 999px; background: var(--tower); display: inline-block; }
html[data-theme="wave-wall"] .about-glen-contact__card { border-radius: 28px; box-shadow: inset 0 -6px 0 var(--tower), var(--shadow); }
