/*
Theme Name: Spruce Bend
Theme URI: https://sprucebendmgmt.com
Author: Spruce Bend Management
Description: A clean, modern theme for Spruce Bend Management — a Florida property management company. Built around the brand's forest green and river blue palette.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: All rights reserved
Text Domain: spruce-bend
*/

/* ============================================================
   1. Tokens
   ============================================================ */

:root {
  /* Brand colors (from logo) */
  --c-green: #225435;
  --c-green-deep: #173823;
  --c-green-soft: #e8f0eb;
  --c-blue: #2e5f82;
  --c-blue-deep: #1e4259;
  --c-blue-soft: #e6eef4;

  /* Neutrals */
  --c-ink: #0f1419;
  --c-text: #2a3440;
  --c-muted: #5b6876;
  --c-line: #e6e8eb;
  --c-line-soft: #f1f2f4;
  --c-bg: #ffffff;
  --c-bg-soft: #f7f8f9;

  /* Type */
  --f-display: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --f-body: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Layout */
  --w-max: 1200px;
  --w-narrow: 720px;
  --r-sm: 4px;
  --r-md: 8px;
  --r-lg: 12px;
}

/* ============================================================
   2. Reset / base
   ============================================================ */

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--c-text);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--c-blue); text-decoration: none; transition: color 0.15s; }
a:hover { color: var(--c-blue-deep); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--f-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--c-ink);
  line-height: 1.15;
  margin: 0 0 0.5em;
}

h1 { font-size: clamp(2rem, 4.5vw, 3.25rem); letter-spacing: -0.025em; }
h2 { font-size: clamp(1.55rem, 3vw, 2.25rem); }
h3 { font-size: 1.2rem; }

p { margin: 0 0 1.05rem; }
p:last-child { margin-bottom: 0; }

/* ============================================================
   3. Layout containers
   ============================================================ */

.sb-wrap     { max-width: var(--w-max);    margin: 0 auto; padding: 0 24px; }
.sb-narrow   { max-width: var(--w-narrow); margin: 0 auto; padding: 0 24px; }

.sb-section        { padding: 96px 0; }
.sb-section--soft  { background: var(--c-bg-soft); }
.sb-section--tight { padding: 64px 0; }

@media (max-width: 720px) {
  .sb-section { padding: 64px 0; }
}

/* ============================================================
   4. Header / nav
   ============================================================ */

.sb-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--c-line);
}

.sb-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100px;
}

.sb-brand {
  display: flex;
  align-items: center;
  color: var(--c-ink);
}
.sb-brand:hover { color: var(--c-ink); }
.sb-brand img { height: 76px; width: auto; display: block; }
/* Legacy — kept in case footer or old markup references these */
.sb-brand__name { display: flex; flex-direction: column; line-height: 1.1; }
.sb-brand__name strong { font-weight: 700; }
.sb-brand__name span {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--c-muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.sb-nav {
  display: flex;
  align-items: center;
  gap: 4px;
}
.sb-nav__link {
  display: inline-block;
  padding: 8px 14px;
  font-size: 0.93rem;
  font-weight: 500;
  color: var(--c-text);
  border-radius: var(--r-sm);
  transition: color 0.15s, background 0.15s;
}
.sb-nav__link:hover { color: var(--c-ink); background: var(--c-line-soft); }
.sb-nav__link.is-active { color: var(--c-green); }
.sb-nav__cta {
  margin-left: 12px;
  padding: 10px 18px;
  background: var(--c-green);
  color: #fff;
  font-weight: 600;
  font-size: 0.9rem;
  border-radius: var(--r-md);
}
.sb-nav__cta:hover { background: var(--c-green-deep); color: #fff; }

.sb-burger {
  display: none;
  background: none;
  border: 0;
  padding: 8px;
  cursor: pointer;
}
.sb-burger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--c-ink);
  margin: 5px 0;
  transition: transform 0.2s, opacity 0.2s;
}

@media (max-width: 820px) {
  .sb-header__inner { height: 76px; }
  .sb-brand img { height: 56px; }
  .sb-burger { display: block; }
  .sb-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: #fff;
    border-bottom: 1px solid var(--c-line);
    padding: 8px 16px 16px;
    display: none;
  }
  .sb-nav.is-open { display: flex; }
  .sb-nav__link { padding: 12px 14px; }
  .sb-nav__cta { margin: 8px 0 0; text-align: center; }
}

/* ============================================================
   5. Buttons
   ============================================================ */

.sb-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 24px;
  font-family: var(--f-body);
  font-size: 0.95rem;
  font-weight: 600;
  border-radius: var(--r-md);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s, transform 0.1s;
  text-decoration: none;
}
.sb-btn:active { transform: translateY(1px); }
.sb-btn--primary {
  background: var(--c-green);
  color: #fff;
}
.sb-btn--primary:hover { background: var(--c-green-deep); color: #fff; }
.sb-btn--ghost {
  background: transparent;
  color: var(--c-ink);
  border-color: var(--c-line);
}
.sb-btn--ghost:hover { background: var(--c-bg-soft); color: var(--c-ink); }
.sb-btn--arrow::after { content: "→"; transition: transform 0.15s; }
.sb-btn--arrow:hover::after { transform: translateX(3px); }

/* ============================================================
   6. Hero (home)
   ============================================================ */

.sb-hero {
  position: relative;
  padding: 100px 0 110px;
  overflow: hidden;
}
.sb-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 500px at 90% 10%, rgba(46, 95, 130, 0.07), transparent 60%),
    radial-gradient(700px 400px at 5% 90%, rgba(34, 84, 53, 0.05), transparent 60%);
  pointer-events: none;
}
.sb-hero__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 64px;
  align-items: center;
}
.sb-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  background: var(--c-green-soft);
  color: var(--c-green-deep);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: 100px;
  margin-bottom: 24px;
}
.sb-hero__eyebrow::before {
  content: "";
  width: 6px; height: 6px;
  background: var(--c-green);
  border-radius: 50%;
}
.sb-hero h1 { margin-bottom: 20px; }
.sb-hero p.lede {
  font-size: 1.15rem;
  color: var(--c-muted);
  max-width: 52ch;
  margin-bottom: 32px;
  line-height: 1.55;
}
.sb-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; }

.sb-hero__card {
  position: relative;
  padding: 32px;
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  box-shadow: 0 30px 60px -30px rgba(15, 20, 25, 0.15);
}
.sb-hero__card-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-blue);
  margin-bottom: 16px;
}
.sb-hero__card h3 {
  font-size: 1.35rem;
  margin-bottom: 16px;
}
.sb-hero__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--c-line);
}
.sb-stat__num {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 1.6rem;
  color: var(--c-ink);
  line-height: 1;
}
.sb-stat__label {
  font-size: 0.83rem;
  color: var(--c-muted);
  margin-top: 4px;
}

@media (max-width: 860px) {
  .sb-hero { padding: 64px 0 72px; }
  .sb-hero__inner { grid-template-columns: 1fr; gap: 40px; }
}

/* ============================================================
   7. Page header (non-home)
   ============================================================ */

.sb-pagehead {
  padding: 80px 0 60px;
  border-bottom: 1px solid var(--c-line);
  background:
    radial-gradient(700px 300px at 100% 0%, rgba(34, 84, 53, 0.04), transparent 60%);
}
.sb-pagehead__eyebrow {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-green);
  margin-bottom: 14px;
}
.sb-pagehead h1 { margin-bottom: 16px; max-width: 22ch; }
.sb-pagehead__intro { font-size: 1.1rem; color: var(--c-muted); max-width: 60ch; }

/* ============================================================
   8. Feature grid
   ============================================================ */

.sb-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.sb-feature {
  padding: 28px;
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  transition: border-color 0.15s, transform 0.2s, box-shadow 0.2s;
}
.sb-feature:hover {
  border-color: #cfd5dc;
  transform: translateY(-2px);
  box-shadow: 0 20px 40px -24px rgba(15, 20, 25, 0.15);
}
.sb-feature__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: var(--c-green-soft);
  color: var(--c-green-deep);
  border-radius: var(--r-md);
  margin-bottom: 16px;
}
.sb-feature__icon svg { width: 22px; height: 22px; }
.sb-feature h3 { font-size: 1.1rem; margin-bottom: 8px; }
.sb-feature p { color: var(--c-muted); font-size: 0.95rem; }

@media (max-width: 820px) {
  .sb-features { grid-template-columns: 1fr; gap: 16px; }
}

/* ============================================================
   9. Section heading
   ============================================================ */

.sb-secthead {
  max-width: 60ch;
  margin-bottom: 8px;
}
.sb-secthead__eyebrow {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-blue);
  margin-bottom: 14px;
}

/* ============================================================
  10. Property facts strip (home)
   ============================================================ */

.sb-facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-top: 48px;
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: #fff;
  overflow: hidden;
}
.sb-fact {
  padding: 24px 28px;
  border-right: 1px solid var(--c-line);
}
.sb-fact:last-child { border-right: none; }
.sb-fact__label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-muted);
  margin-bottom: 8px;
}
.sb-fact__value {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--c-ink);
  line-height: 1.35;
}

@media (max-width: 820px) {
  .sb-facts { grid-template-columns: 1fr 1fr; }
  .sb-fact { border-bottom: 1px solid var(--c-line); }
  .sb-fact:nth-child(2n) { border-right: none; }
  .sb-fact:nth-last-child(-n+2) { border-bottom: none; }
}
@media (max-width: 480px) {
  .sb-facts { grid-template-columns: 1fr; }
  .sb-fact { border-right: none; border-bottom: 1px solid var(--c-line); }
  .sb-fact:last-child { border-bottom: none; }
}

/* ============================================================
  11. WP content area (Gutenberg output) — sensible defaults
   ============================================================ */

.sb-content {
  font-size: 1.02rem;
  line-height: 1.7;
}
.sb-content h2 { margin: 2rem 0 0.6rem; }
.sb-content h2:first-child { margin-top: 0; }
.sb-content h3 { margin: 1.6rem 0 0.5rem; }
.sb-content ul, .sb-content ol { margin: 0 0 1.05rem; padding-left: 1.25rem; }
.sb-content li { margin-bottom: 0.4rem; }
.sb-content blockquote {
  margin: 1.5rem 0;
  padding: 4px 0 4px 20px;
  border-left: 3px solid var(--c-green);
  font-size: 1.1rem;
  color: var(--c-ink);
  font-style: normal;
}
.sb-content img { border-radius: var(--r-md); }
.sb-content a { text-decoration: underline; text-underline-offset: 3px; }
.sb-content a.sb-btn { text-decoration: none; }

/* ============================================================
  12. Contact page
   ============================================================ */

.sb-contact {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 64px;
  padding: 80px 0;
}
.sb-contact-info h2 { font-size: 1.5rem; margin-bottom: 12px; }
.sb-contact-info p.muted { color: var(--c-muted); margin-bottom: 28px; }

.sb-info-list { list-style: none; margin: 0; padding: 0; }
.sb-info-list li {
  padding: 18px 0;
  border-bottom: 1px solid var(--c-line);
}
.sb-info-list li:first-child { padding-top: 0; }
.sb-info-list li:last-child { border-bottom: none; }
.sb-info-list .lbl {
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-muted);
  margin-bottom: 6px;
}
.sb-info-list .val {
  color: var(--c-ink);
  font-size: 1.02rem;
  line-height: 1.5;
}
.sb-info-list .val a { color: var(--c-blue); }

.sb-form-card {
  padding: 36px;
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  box-shadow: 0 30px 60px -30px rgba(15, 20, 25, 0.1);
}
.sb-form-card h2 { font-size: 1.35rem; margin-bottom: 6px; }
.sb-form-card .muted { color: var(--c-muted); margin-bottom: 24px; font-size: 0.95rem; }

/* WPForms / CF7 light styling — neutral so plugins don't fight us hard */
.sb-form-card .wpforms-field-label,
.sb-form-card label {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--c-ink);
}
.sb-form-card input[type="text"],
.sb-form-card input[type="email"],
.sb-form-card input[type="tel"],
.sb-form-card input[type="url"],
.sb-form-card select,
.sb-form-card textarea {
  width: 100%;
  padding: 11px 14px;
  font-family: var(--f-body);
  font-size: 1rem;
  color: var(--c-ink);
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: var(--r-sm);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.sb-form-card input:focus,
.sb-form-card select:focus,
.sb-form-card textarea:focus {
  outline: none;
  border-color: var(--c-green);
  box-shadow: 0 0 0 3px rgba(34, 84, 53, 0.12);
}
.sb-form-card textarea { min-height: 130px; resize: vertical; }
.sb-form-card button[type="submit"],
.sb-form-card .wpforms-submit {
  width: 100%;
  padding: 13px 24px;
  background: var(--c-green) !important;
  color: #fff !important;
  font-family: var(--f-body) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  border: 0 !important;
  border-radius: var(--r-md) !important;
  cursor: pointer;
  transition: background 0.15s;
}
.sb-form-card button[type="submit"]:hover,
.sb-form-card .wpforms-submit:hover { background: var(--c-green-deep) !important; }

.sb-form-placeholder {
  padding: 24px;
  background: var(--c-bg-soft);
  border: 1px dashed var(--c-line);
  border-radius: var(--r-md);
  color: var(--c-muted);
  font-size: 0.95rem;
  text-align: center;
}

@media (max-width: 860px) {
  .sb-contact { grid-template-columns: 1fr; gap: 40px; padding: 56px 0; }
  .sb-form-card { padding: 24px; }
}

/* ============================================================
  13. Footer
   ============================================================ */

.sb-footer {
  padding: 64px 0 32px;
  background: #0f1419;
  color: #aab3bd;
}
.sb-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 40px;
}
.sb-footer h4 {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 14px;
}
.sb-footer p, .sb-footer a { font-size: 0.93rem; color: #aab3bd; }
.sb-footer a:hover { color: #fff; }
.sb-footer ul { list-style: none; padding: 0; margin: 0; }
.sb-footer ul li { margin-bottom: 8px; }
.sb-footer__brand {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 1.1rem;
  color: #fff;
  margin-bottom: 8px;
}
.sb-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 22px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 0.85rem;
  color: #6b7480;
}
@media (max-width: 720px) {
  .sb-footer__grid { grid-template-columns: 1fr; gap: 28px; }
}

/* ============================================================
  14. Utility
   ============================================================ */

.sb-mt-0 { margin-top: 0; }
.sb-mb-0 { margin-bottom: 0; }
.screen-reader-text { /* WP a11y default */
  border: 0; clip: rect(1px,1px,1px,1px); -webkit-clip-path: inset(50%); clip-path: inset(50%);
  height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}

/* ============================================================
  15. Block-editor patterns
   ============================================================
   These classes are applied to standard WordPress blocks (Group, Columns,
   etc.) inside our registered patterns. They allow page sections to be
   fully editable from the block editor while keeping the design intact. */

/* Reset post content so blocks control their own width */
.sb-page > .wp-block-group.alignfull,
.sb-page > .alignfull { margin-left: 0; margin-right: 0; }

/* --- Hero --- */
.sb-hero-group {
  position: relative;
  padding: 100px 24px 110px !important;
  overflow: hidden;
  background:
    radial-gradient(900px 500px at 90% 10%, rgba(46, 95, 130, 0.07), transparent 60%),
    radial-gradient(700px 400px at 5% 90%, rgba(34, 84, 53, 0.05), transparent 60%);
}
.sb-hero-group > .wp-block-group__inner-container,
.sb-hero-group .wp-block-group {
  max-width: var(--w-max);
  margin: 0 auto;
}

/* Pill / eyebrow style applied to a Paragraph block */
.sb-pill {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  padding: 6px 12px !important;
  background: var(--c-green-soft) !important;
  color: var(--c-green-deep) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
  border-radius: 100px;
  width: auto;
}
.sb-pill::before {
  content: "";
  width: 6px; height: 6px;
  background: var(--c-green);
  border-radius: 50%;
  flex-shrink: 0;
}

/* Eyebrow (small uppercase label above section heading) */
.sb-eyebrow {
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  color: var(--c-green) !important;
  margin: 0 0 14px !important;
}
.sb-eyebrow.is-blue { color: var(--c-blue) !important; }

/* Lede (large intro paragraph) */
.sb-lede {
  font-size: 1.15rem !important;
  color: var(--c-muted) !important;
  line-height: 1.55 !important;
  max-width: 56ch;
}

/* Featured card on the right of the hero (a Group block) */
.sb-card {
  padding: 32px !important;
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  box-shadow: 0 30px 60px -30px rgba(15, 20, 25, 0.15);
}
.sb-card-label {
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase;
  color: var(--c-blue) !important;
  margin: 0 0 8px !important;
}

/* Stat block (a Group, with a strong + paragraph inside) */
.sb-stat-num {
  font-family: var(--f-display) !important;
  font-weight: 700 !important;
  font-size: 1.6rem !important;
  color: var(--c-ink) !important;
  line-height: 1 !important;
  margin: 0 0 4px !important;
}
.sb-stat-label {
  font-size: 0.83rem !important;
  color: var(--c-muted) !important;
  margin: 0 !important;
}

/* Page header block (used at top of About / Services / Contact) */
.sb-pagehead-group {
  padding: 80px 24px 60px !important;
  border-bottom: 1px solid var(--c-line);
  background: radial-gradient(700px 300px at 100% 0%, rgba(34, 84, 53, 0.04), transparent 60%);
}
.sb-pagehead-group > .wp-block-group__inner-container {
  max-width: var(--w-narrow);
  margin: 0 auto;
}

/* Standard section padding (apply to a full-width Group) */
.sb-sec-group {
  padding: 96px 24px !important;
}
.sb-sec-group--soft { background: var(--c-bg-soft); }
.sb-sec-group > .wp-block-group__inner-container {
  max-width: var(--w-max);
  margin: 0 auto;
}
.sb-sec-group--narrow > .wp-block-group__inner-container {
  max-width: var(--w-narrow);
}

/* Fallback when WP doesn't wrap children in an inner container:
   constrain direct children of the section group to the right width. */
.sb-sec-group:not(:has(> .wp-block-group__inner-container)) > * {
  max-width: var(--w-max);
  margin-left: auto;
  margin-right: auto;
}
.sb-sec-group--narrow:not(:has(> .wp-block-group__inner-container)) > * {
  max-width: var(--w-narrow);
}
.sb-pagehead-group:not(:has(> .wp-block-group__inner-container)) > * {
  max-width: var(--w-narrow);
  margin-left: auto;
  margin-right: auto;
}
.sb-hero-group:not(:has(> .wp-block-group__inner-container)) > * {
  max-width: var(--w-max);
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 720px) {
  .sb-hero-group     { padding: 64px 24px 72px !important; }
  .sb-sec-group      { padding: 64px 24px !important; }
  .sb-pagehead-group { padding: 56px 24px 48px !important; }
}

/* Facts strip — apply to a Columns block with class sb-facts-cols */
.sb-facts-cols {
  border: 1px solid var(--c-line) !important;
  border-radius: var(--r-lg);
  background: #fff;
  overflow: hidden;
  margin-top: 48px !important;
}
.sb-facts-cols > .wp-block-column {
  padding: 24px 28px !important;
  border-right: 1px solid var(--c-line);
}
.sb-facts-cols > .wp-block-column:last-child { border-right: none; }
.sb-fact-label {
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  color: var(--c-muted) !important;
  margin: 0 0 8px !important;
}
.sb-fact-value {
  font-family: var(--f-display) !important;
  font-weight: 600 !important;
  font-size: 1.05rem !important;
  color: var(--c-ink) !important;
  line-height: 1.35 !important;
  margin: 0 !important;
}
@media (max-width: 820px) {
  .sb-facts-cols { flex-wrap: wrap; }
  .sb-facts-cols > .wp-block-column {
    flex-basis: 50% !important;
    border-right: 1px solid var(--c-line);
    border-bottom: 1px solid var(--c-line);
  }
  .sb-facts-cols > .wp-block-column:nth-child(2n) { border-right: none; }
  .sb-facts-cols > .wp-block-column:nth-last-child(-n+2) { border-bottom: none; }
}
@media (max-width: 480px) {
  .sb-facts-cols > .wp-block-column {
    flex-basis: 100% !important;
    border-right: none;
  }
  .sb-facts-cols > .wp-block-column:last-child { border-bottom: none; }
}

/* Feature card (apply to a Group inside a Columns block) */
.sb-feature-card {
  padding: 28px !important;
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  height: 100%;
  transition: border-color 0.15s, transform 0.2s, box-shadow 0.2s;
}
.sb-feature-card:hover {
  border-color: #cfd5dc;
  transform: translateY(-2px);
  box-shadow: 0 20px 40px -24px rgba(15, 20, 25, 0.15);
}

/* Numbered service block (Services page) */
.sb-numbered {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 32px;
  padding: 48px 0 !important;
  border-bottom: 1px solid var(--c-line);
}
.sb-numbered:last-child { border-bottom: none; }
.sb-num {
  font-family: var(--f-display) !important;
  font-weight: 700 !important;
  font-size: 2.5rem !important;
  color: var(--c-green) !important;
  line-height: 1 !important;
  margin: 0 !important;
}
@media (max-width: 720px) {
  .sb-numbered {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 36px 0 !important;
  }
}

/* Contact info list item */
.sb-info-item {
  padding: 18px 0 !important;
  border-bottom: 1px solid var(--c-line);
}
.sb-info-item:last-child { border-bottom: none; }
.sb-info-label {
  font-size: 0.74rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  color: var(--c-muted) !important;
  margin: 0 0 6px !important;
}
.sb-info-value {
  color: var(--c-ink) !important;
  font-size: 1.02rem !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

/* Form card (right column of contact page) */
.sb-form-card-group {
  padding: 36px !important;
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  box-shadow: 0 30px 60px -30px rgba(15, 20, 25, 0.1);
  height: 100%;
}
@media (max-width: 720px) {
  .sb-form-card-group { padding: 24px !important; }
}

/* Style WPForms output inside our card */
.sb-form-card-group .wpforms-field-label,
.sb-form-card-group label {
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase;
  color: var(--c-ink) !important;
}
.sb-form-card-group input[type="text"],
.sb-form-card-group input[type="email"],
.sb-form-card-group input[type="tel"],
.sb-form-card-group input[type="url"],
.sb-form-card-group select,
.sb-form-card-group textarea {
  width: 100%;
  padding: 11px 14px;
  font-family: var(--f-body) !important;
  font-size: 1rem !important;
  color: var(--c-ink);
  background: #fff;
  border: 1px solid var(--c-line) !important;
  border-radius: var(--r-sm) !important;
}
.sb-form-card-group input:focus,
.sb-form-card-group select:focus,
.sb-form-card-group textarea:focus {
  outline: none;
  border-color: var(--c-green) !important;
  box-shadow: 0 0 0 3px rgba(34, 84, 53, 0.12);
}
.sb-form-card-group .wpforms-submit,
.sb-form-card-group button[type="submit"] {
  background: var(--c-green) !important;
  color: #fff !important;
  font-family: var(--f-body) !important;
  font-weight: 600 !important;
  border: 0 !important;
  border-radius: var(--r-md) !important;
}

/* Buttons via core/buttons block — match our design */
.wp-block-button.is-style-sb-primary .wp-block-button__link {
  background: var(--c-green);
  color: #fff;
  font-family: var(--f-body);
  font-weight: 600;
  font-size: 0.95rem;
  padding: 13px 24px;
  border-radius: var(--r-md);
  border: 0;
}
.wp-block-button.is-style-sb-primary .wp-block-button__link:hover {
  background: var(--c-green-deep);
  color: #fff;
}
.wp-block-button.is-style-sb-ghost .wp-block-button__link {
  background: transparent;
  color: var(--c-ink);
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  font-family: var(--f-body);
  font-weight: 600;
  font-size: 0.95rem;
  padding: 12px 23px;
}
.wp-block-button.is-style-sb-ghost .wp-block-button__link:hover {
  background: var(--c-bg-soft);
  color: var(--c-ink);
}

/* Standard prose width when blocks are inside a narrow group */
.sb-prose p {
  font-size: 1.02rem;
  line-height: 1.7;
}
.sb-prose .wp-block-quote,
.sb-prose blockquote {
  border-left: 3px solid var(--c-green);
  padding: 4px 0 4px 20px;
  margin: 1.5rem 0;
  font-size: 1.1rem;
  color: var(--c-ink);
  font-style: normal;
}
