/* ============================================================
   Grateful Living Medicine — layout + component styles
   Ported from the design file's site.css + colors_and_type.css.
   Values are taken verbatim from the design; selectors are
   adapted to WordPress markup (menus render as ul/li, CTAs as
   links). Sections:
     1. Base + typography
     2. Header / navigation (+ mobile hamburger)
     3. Buttons
     4. Sections + eyebrow + section head
     5. Hero treatments
     6. Homepage components (credbar, about tease, video,
        services, values, blog teaser, testimonials, final CTA)
     7. Footer
     8. Contact page
     9. Blog landing + single post
    10. Generic page / 404 / WP content
    11. Accessibility
    12. Responsive
   ============================================================ */

/* ───────────── 1. Base + typography ───────────── */
* { box-sizing: border-box; }
html, body { margin:0; padding:0; }
html, body { background: var(--color-bg); color: var(--color-fg); }
body { font-family: var(--font-sans); font-size: var(--text-md); line-height: var(--leading-normal); }

img { max-width:100%; height:auto; display:block; }
a { color:var(--glm-teal); border:0; text-decoration:none; transition:color var(--dur-base) var(--ease-out); }
a:hover { color:var(--color-accent-hover); }
hr { border:0; border-top:1px solid var(--color-divider); margin:var(--space-8) 0; }

/* HEADER 01 — Romantic, all caps */
h1 {
  font-family: var(--font-display);
  font-weight: var(--weight-regular);
  font-size: clamp(44px, 6vw, 84px);
  line-height: 1.1;
  letter-spacing: var(--tracking-h1);
  text-transform: uppercase;
  color: var(--color-fg);
}
/* HEADER 02 — Romantic, regular case */
h2 {
  font-family: var(--font-display);
  font-weight: var(--weight-regular);
  font-size: clamp(36px, 4.5vw, 56px);
  line-height: 1.0;
  letter-spacing: 0;
  color: var(--color-fg);
}
/* HEADER 03 — Source Sans 3 Italic */
h3 {
  font-family: var(--font-sans);
  font-style: italic;
  font-weight: var(--weight-semibold);
  font-size: var(--text-2xl);
  line-height: 1.0;
  letter-spacing: var(--tracking-h3);
  text-transform: uppercase;
  color: var(--color-fg);
}
h4 { font: var(--weight-semibold) var(--text-xl)/1.2 var(--font-sans); color: var(--color-fg); }
p {
  font-family: var(--font-sans);
  font-weight: var(--weight-regular);
  font-size: var(--text-md);
  line-height: var(--leading-normal);
  color: var(--color-fg-soft);
  text-wrap: pretty;
}

.glm-page { min-height:100vh; background:var(--color-bg); }

/* ───────────── 2. Header / navigation ───────────── */
.glm-header {
  position:sticky; top:0; z-index:80;
  background:var(--glm-teal);
  color:var(--glm-powder);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--color-divider);
}
.glm-header-inner {
  max-width:1320px; margin:0 auto;
  display:grid; grid-template-columns:auto 1fr auto;
  align-items:center; gap:40px;
  padding:18px 40px;
}
.glm-header-logo { display:flex; align-items:center; cursor:pointer; border:0; background:transparent; padding:0; }
.glm-header-logo img {
  height:72px; width:auto; display:block;
  background:transparent;
  image-rendering:-webkit-optimize-contrast;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  transform:translateZ(0);
}
.glm-header-nav ul { list-style:none; margin:0; padding:0; }
.glm-header-nav > ul { display:flex; gap:36px; justify-content:center; align-items:center; }
.glm-header-nav > ul > li { position:relative; }
.glm-header-nav a {
  position:relative; display:inline-flex; align-items:center; gap:6px;
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 17.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--glm-powder); padding:10px 0; cursor:pointer;
  transition:color var(--dur-base) var(--ease-out);
}
.glm-header-nav a:hover { color:var(--glm-powder); opacity:.85; }
.glm-header-nav .current-menu-item > a,
.glm-header-nav .current-menu-ancestor > a,
.glm-header-nav .current_page_item > a,
.glm-header-nav .current_page_ancestor > a { color:var(--glm-powder); }
.glm-header-nav .current-menu-item > a::after,
.glm-header-nav .current_page_item > a::after {
  content:""; position:absolute; left:0; right:0; bottom:2px;
  height:1px; background:var(--glm-powder);
}
/* Chevron on items with submenus. On desktop it's absolutely
   positioned just right of the label so it floats inside the
   existing 36px gap instead of widening it (which pushed the
   following item too far away). Reset to static on mobile, where
   the anchor uses space-between to send it to the far edge. */
.glm-header-nav .menu-item-has-children > a > .drop-caret,
.glm-nav-caret {
  width:10px; height:10px; opacity:.7; flex-shrink:0;
  position:absolute; left:100%; top:50%; transform:translateY(-50%);
  margin-left:5px;
}
/* Dropdown */
.glm-header-nav .sub-menu {
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
  background:var(--glm-powder);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  padding:10px; min-width:180px;
  display:flex; flex-direction:column;
  opacity:0; pointer-events:none;
  transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
  z-index:5;
}
.glm-header-nav li:hover > .sub-menu,
.glm-header-nav li:focus-within > .sub-menu,
.glm-header-nav li.open > .sub-menu {
  opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0);
}
.glm-header-nav .sub-menu a {
  display:block; text-align:left;
  font-style:normal; font-size: 16.5px; font-weight:500; text-transform:none;
  color:var(--glm-pinecone); padding:10px 14px; border-radius:var(--radius-sm);
  letter-spacing:.02em;
  transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.glm-header-nav .sub-menu a:hover { background:var(--glm-powder-cream); color:var(--glm-teal); opacity:1; }
.glm-header-nav .sub-menu .current-menu-item > a::after { content:none; }

.glm-header-cta { display:flex; gap:12px; align-items:center; }
.glm-cta-ghost {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 15px; letter-spacing:.08em; text-transform:uppercase;
  background:transparent; color:var(--glm-powder);
  padding:11px 18px; border:0; border-radius:var(--radius-pill); cursor:pointer;
  transition:color var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out);
}
.glm-cta-ghost:hover { color:var(--glm-powder); opacity:.8; }
.glm-cta-primary {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 15px; letter-spacing:.08em; text-transform:uppercase;
  background:transparent; color:var(--glm-powder);
  padding:12px 22px; border:1.5px solid var(--glm-powder); border-radius:0; cursor:pointer;
  box-shadow:none;
  transition:all var(--dur-base) var(--ease-out);
}
.glm-cta-primary:hover { background:var(--glm-powder); color:var(--glm-teal); transform:translateY(-1px); box-shadow:var(--shadow-sm); }

/* Mobile hamburger (not in the desktop design — added for ≤1100px) */
.glm-nav-toggle {
  display:none; place-items:center;
  width:44px; height:44px; padding:0;
  background:transparent; border:1.5px solid var(--glm-powder);
  color:var(--glm-powder); cursor:pointer;
}
.glm-nav-toggle .bars { position:relative; display:block; width:20px; height:2px; background:currentColor; transition:background var(--dur-fast) var(--ease-out); }
.glm-nav-toggle .bars::before, .glm-nav-toggle .bars::after {
  content:""; position:absolute; left:0; width:20px; height:2px; background:currentColor;
  transition:transform var(--dur-base) var(--ease-out), top var(--dur-base) var(--ease-out);
}
.glm-nav-toggle .bars::before { top:-6px; }
.glm-nav-toggle .bars::after  { top:6px; }
.glm-nav-toggle[aria-expanded="true"] .bars { background:transparent; }
.glm-nav-toggle[aria-expanded="true"] .bars::before { top:0; transform:rotate(45deg); }
.glm-nav-toggle[aria-expanded="true"] .bars::after  { top:0; transform:rotate(-45deg); }

/* ───────────── 3. Buttons ───────────── */
.glm-btn {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 18px; letter-spacing:.08em; text-transform:uppercase;
  padding:14px 28px; border-radius:var(--radius-pill); border:0; cursor:pointer;
  display:inline-flex; align-items:center; gap:10px;
  text-decoration:none;
  transition:all var(--dur-base) var(--ease-out);
}
.glm-btn .arrow { font-style:normal; }
.glm-btn.primary { background:var(--glm-teal); color:var(--glm-powder); box-shadow:var(--shadow-sm); }
.glm-btn.primary:hover { background:var(--glm-teal-hover); color:var(--glm-powder); transform:translateY(-1px); box-shadow:var(--shadow-md); }
.glm-btn.pine { background:var(--glm-pine); color:var(--glm-powder); box-shadow:var(--shadow-sm); }
.glm-btn.pine:hover { background:var(--glm-pine-hover); color:var(--glm-powder); }
.glm-btn.dandelion { background:var(--glm-dandelion); color:var(--glm-black); }
.glm-btn.dandelion:hover { color:var(--glm-black); transform:translateY(-1px); box-shadow:var(--shadow-md); }
.glm-btn.powder { background:var(--glm-powder); color:var(--glm-pine); box-shadow:var(--shadow-sm); }
.glm-btn.powder:hover { background:var(--glm-powder-cream, #fbf3dd); color:var(--glm-pine); transform:translateY(-1px); box-shadow:var(--shadow-md); }
.glm-btn.ghost {
  background:transparent; color:var(--glm-pinecone);
  box-shadow:inset 0 0 0 1.5px currentColor;
}
.glm-btn.ghost:hover {
  background:var(--glm-pinecone); color:var(--glm-powder);
  box-shadow:inset 0 0 0 1.5px var(--glm-pinecone);
  transform:translateY(-1px);
}
.glm-hero.hero--home .glm-btn.ghost { color:var(--glm-powder); }
.glm-hero.hero--home .glm-btn.ghost:hover {
  background:var(--glm-powder); color:var(--glm-pinecone);
  box-shadow:inset 0 0 0 1.5px var(--glm-powder);
}
.glm-btn.outline { background:transparent; color:var(--glm-teal); box-shadow:inset 0 0 0 1.5px var(--glm-teal); }
.glm-btn.outline:hover { background:var(--glm-teal-soft); color:var(--glm-teal); }
.glm-notes .glm-btn.outline { color:var(--glm-pine); box-shadow:inset 0 0 0 1.5px var(--glm-pine); }
.glm-notes .glm-btn.outline:hover { background:rgba(69,104,62,.12); }
.glm-btn.large { padding:18px 36px; font-size: 18px; }

/* ───────────── 4. Sections + eyebrow + section head ───────────── */
.glm-section { padding:120px 40px; }
.glm-section.tight { padding:80px 40px; }
.glm-section.snug { padding:96px 40px; }
.glm-section .inner { max-width:1240px; margin:0 auto; }
.glm-section.cream { background:var(--glm-powder-cream); }
.glm-section.stucco {
  background:#3a2a1e url("../images/sunflowers-golden.jpg") center/cover no-repeat;
  color:var(--glm-pinecone); position:relative; overflow:hidden;
}
.glm-section.stucco::before {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(83,58,38,.45) 0%, rgba(83,58,38,.55) 100%);
  pointer-events:none;
}
.glm-section.stucco > .inner { position:relative; z-index:1; }
.glm-section.pine { background:var(--glm-pine); color:var(--glm-powder); position:relative; overflow:hidden; }
.glm-section.pine::before { content:""; position:absolute; inset:0; background-image:url(../images/patterns/pattern-white.svg); background-size:720px; opacity:.06; pointer-events:none; }
.glm-section.pine > .inner { position:relative; z-index:1; }

.eb {
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 17.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--glm-teal);
}
.eb.bracketed::before, .eb.bracketed::after {
  content:""; width:28px; height:1px; background:currentColor; opacity:.6;
}
.glm-hero .eb { font-size: 30px; letter-spacing:.14em; white-space:nowrap; }
.glm-hero .eb.bracketed::before, .glm-hero .eb.bracketed::after { width:48px; }
.eb.dim { color:var(--glm-pinecone); }
.eb.mint { color:var(--glm-mint); }
.eb.dandelion { color:var(--glm-dandelion); }

.glm-section-head { text-align:center; max-width:760px; margin:0 auto 64px; }
.glm-section-head .eb { margin-bottom:22px; }
.glm-section-head h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(40px, 5vw, 64px); line-height:1.02; letter-spacing:0;
  margin:0 0 18px; color:var(--glm-black); text-wrap:balance;
}
.glm-section-head p {
  font-family:var(--font-sans); font-size: 22.5px; line-height:1.55;
  color:var(--color-fg-soft); margin:0; text-wrap:pretty;
}
.glm-section.pine .glm-section-head h2 { color:var(--glm-powder); }
.glm-section.pine .glm-section-head p  { color:var(--glm-mint); }

/* Cream legibility cards on the stucco values section */
.glm-section.stucco .glm-section-head {
  background:rgba(247,239,223,.94);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  border:1px solid rgba(154, 61, 34, .14);
  border-radius:var(--radius-xl);
  padding:48px 56px 52px;
  max-width:820px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.6) inset,
    0 16px 40px -16px rgba(60, 25, 10, .28),
    0 2px 8px -2px rgba(60, 25, 10, .12);
}
.glm-section.stucco .glm-section-head h2 { color:var(--glm-black); text-shadow:none; }
.glm-section.stucco .glm-section-head p  { color:var(--color-fg-soft); text-shadow:none; }
.glm-section.stucco .glm-section-head .eb { color:var(--glm-pinecone); text-shadow:none; }

/* ───────────── 5. Hero treatments ───────────── */
.glm-hero {
  background:var(--glm-almond); position:relative; overflow:hidden;
  --hero-texture: url(../images/patterns/pattern-white.svg);
  --hero-texture-size: 760px;
  --hero-texture-opacity: .05;
  --hero-texture-blend: normal;
  --hero-accent-rgb: 51,119,127;
}
.glm-hero::before {
  content:""; position:absolute; inset:0;
  background-image:var(--hero-texture);
  background-size:var(--hero-texture-size);
  opacity:var(--hero-texture-opacity);
  mix-blend-mode:var(--hero-texture-blend);
  pointer-events:none;
}
.glm-hero::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(120% 80% at 85% 15%, rgba(var(--hero-accent-rgb), .22), transparent 60%),
    radial-gradient(90% 70% at 10% 100%, rgba(255,255,255, .18), transparent 65%);
}
.glm-hero-inner {
  max-width:1320px; margin:0 auto; padding:96px 40px 100px;
  display:grid; grid-template-columns:1.1fr 1fr; gap:80px;
  align-items:center; position:relative; z-index:2;
}
.glm-hero h1 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(56px, 7vw, 110px); line-height:.96;
  letter-spacing:.01em; text-transform:uppercase;
  margin:0 0 28px; color:var(--glm-black); text-wrap:balance;
}
.glm-hero h1 em {
  font-family:var(--font-display); font-style:normal; font-weight:400;
  color:var(--glm-teal); text-transform:none; letter-spacing:0;
}
.glm-hero .hero-sub {
  font-family:var(--font-sans); font-size: 24px; line-height:1.55;
  color:var(--glm-pinecone); max-width:520px; margin:0 0 36px; text-wrap:pretty;
}
.glm-hero .hero-cta { display:flex; gap:16px; flex-wrap:wrap; }
.glm-hero-eyebrow { margin-bottom:30px; }

/* HOME — full-bleed Summit County mountains photograph */
.glm-hero.hero--home {
  background:
    linear-gradient(180deg,
      rgba(36, 28, 22, .64) 0%,
      rgba(36, 28, 22, .42) 38%,
      rgba(36, 28, 22, .64) 100%),
    var(--hero-photo, url(../images/mountains-evening.jpg)) center/cover no-repeat var(--glm-pinecone);
  --hero-texture: url(../images/patterns/pattern-white.svg);
  --hero-texture-size: 620px;
  --hero-texture-opacity: .08;
  --hero-texture-blend: soft-light;
  --hero-accent-rgb: 239,170,37;
}
.glm-hero.hero--home::after {
  background:
    radial-gradient(110% 80% at 15% 90%, rgba(36,28,22,.45), transparent 60%),
    radial-gradient(90% 70% at 85% 10%, rgba(239,170,37,.18), transparent 65%);
}
/* The hero fills the first screenful minus the sticky header and the
   teal credibility bar, so the fold lands exactly on the bottom of the
   credbar. main.js measures the header/credbar and sets --glm-fold-h;
   the calc() fallback covers no-JS. */
.glm-hero.hero--home {
  display:flex; align-items:center; justify-content:center;
  min-height: var(--glm-fold-h, calc(100svh - 182px));
}
.glm-hero.hero--home .glm-hero-inner {
  grid-template-columns:1fr; max-width:1180px;
  padding:clamp(28px, 4vh, 80px) 40px;
  text-align:center;
  justify-items:center;
}
/* Keep the stacked hero content within a viewport-sized hero. */
.glm-hero.hero--home .glm-hero-logo img {
  max-height:38vh; width:auto; max-width:min(560px, 86vw);
}
.glm-hero.hero--home .glm-hero-inner > div { max-width:780px; margin:0 auto; }
.glm-hero.hero--home .glm-hero-eyebrow { justify-content:center; }
.glm-hero.hero--home .hero-cta {
  flex-direction:column; align-items:center; justify-content:center;
  gap:14px; margin-top:8px;
}
.glm-hero.hero--home .glm-hero-logo {
  margin:24px auto 18px; padding:0; line-height:1;
  display:flex; justify-content:center;
  filter: drop-shadow(0 4px 18px rgba(0,0,0,.32));
}
.glm-hero.hero--home .glm-hero-logo img {
  display:block; width:100%; max-width:560px; height:auto;
}
.glm-hero.hero--home .glm-hero-tagline {
  font-family:var(--font-display); font-style:italic;
  font-size: clamp(25px, 2.4vw, 37.5px); line-height:1.3;
  color:var(--glm-powder-cream); opacity:.95;
  max-width:none; margin:0 auto clamp(20px, 3.2vh, 36px); text-align:center;
  text-shadow:0 1px 2px rgba(0,0,0,.4);
}
.glm-hero.hero--home h1 { color:var(--glm-powder-cream); }
.glm-hero.hero--home h1 em { color:var(--glm-mint); }
.glm-hero.hero--home .hero-sub { color:rgba(247,239,223,.92); max-width:620px; }
.glm-hero.hero--home .glm-hero-eyebrow {
  color:var(--glm-powder-cream); font-size: 20px; letter-spacing:.18em;
  text-shadow:0 1px 2px rgba(0,0,0,.45);
}
.glm-hero.hero--home .glm-hero-eyebrow::before,
.glm-hero.hero--home .glm-hero-eyebrow::after { background:rgba(247,239,223,.75); width:34px; }

/* ABOUT-tinted hero — used by Contact + Blog (compact) */
.glm-hero.hero--about {
  background:var(--glm-mint);
  --hero-texture: url(../images/patterns/stucco-pink.png);
  --hero-texture-size: 900px;
  --hero-texture-opacity: .35;
  --hero-accent-rgb: 69,104,62;
}
.glm-hero.hero--about::before {
  mix-blend-mode: multiply;
  filter: hue-rotate(80deg) saturate(.85);
}
.glm-hero.hero--about .hero-sub { color:var(--color-fg-soft); }

.glm-hero.compact .glm-hero-inner { padding:80px 40px 80px; grid-template-columns:1fr; max-width:980px; text-align:center; }
.glm-hero.compact .hero-cta { justify-content:center; }
.glm-hero.compact .hero-sub { margin-left:auto; margin-right:auto; max-width:720px; }
.glm-hero.compact .glm-hero-eyebrow { color:var(--glm-teal); margin:0 auto 30px; display:inline-flex; }
.glm-hero.compact .glm-hero-eyebrow::before,
.glm-hero.compact .glm-hero-eyebrow::after { background:var(--glm-teal); }

/* Arch frame */
.glm-arch {
  position:relative; width:100%;
  height:var(--arch-h, 540px);
  border-radius:var(--arch-radius, 9999px) var(--arch-radius, 9999px) 22px 22px;
  overflow:hidden;
  box-shadow:var(--shadow-lg);
  background:var(--glm-powder-cream);
}
.glm-arch img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.glm-arch-caption {
  position:absolute; left:50%; bottom:24px; transform:translateX(-50%);
  background:rgba(247,239,223,.94); backdrop-filter:blur(8px);
  padding:11px 20px; border-radius:var(--radius-pill);
  font-family:var(--font-sans); font-style:italic; font-size: 14px;
  font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--glm-teal); white-space:nowrap; box-shadow:var(--shadow-sm);
}

/* ───────────── 6. Homepage components ───────────── */

/* Credibility bar */
.glm-credbar { background:var(--glm-teal); color:var(--glm-powder); position:relative; overflow:hidden; }
.glm-credbar::before { content:""; position:absolute; inset:0; background-image:url(../images/patterns/pattern-white.svg); background-size:600px; opacity:.06; pointer-events:none; }
.glm-credbar-inner {
  max-width:1280px; margin:0 auto; padding:26px 40px;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; position:relative; z-index:1;
}
.glm-credbar-item {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 15px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--glm-powder); display:inline-flex; align-items:center; gap:10px; white-space:nowrap;
}
.glm-credbar-item svg { width:14px; height:14px; color:var(--glm-mint); flex-shrink:0; }
.glm-credbar-sep { width:1px; height:18px; background:rgba(247,239,223,.22); }

/* About tease */
.glm-abouttease { display:grid; grid-template-columns:1fr 1.05fr; gap:80px; align-items:center; }
.glm-abouttease .at-media { position:relative; }
.glm-abouttease .at-body .eb { margin-bottom:24px; }
.glm-abouttease .at-body h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(38px, 4.6vw, 60px); line-height:1.02; letter-spacing:0;
  margin:0 0 24px; color:var(--glm-black); text-wrap:balance;
}
.glm-abouttease .at-body p {
  font-family:var(--font-sans); font-size: 21.5px; line-height:1.65;
  color:var(--color-fg-soft); margin:0 0 18px; text-wrap:pretty;
}

/* Brand video placeholder */
.glm-brandvideo { max-width:1100px; margin:0 auto; }
.glm-brandvideo .bv-thumb {
  position:relative; aspect-ratio:16/9;
  background:
    linear-gradient(180deg, rgba(28,58,52,.55), rgba(28,58,52,.85)),
    linear-gradient(135deg, var(--glm-pine), var(--glm-teal));
  border:1px solid var(--color-border);
  display:grid; place-items:center;
  box-shadow:var(--shadow-lg);
}
.glm-brandvideo .bv-thumb > img.bv-poster {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
}
.glm-brandvideo .bv-thumb > iframe, .glm-brandvideo .bv-thumb > video {
  position:absolute; inset:0; width:100%; height:100%; border:0; z-index:1;
}
.glm-brandvideo .bv-play {
  width:96px; height:96px; border-radius:50%;
  background:rgba(247,239,223,.94); color:var(--glm-pine);
  display:grid; place-items:center;
  box-shadow:0 12px 36px -10px rgba(0,0,0,.4);
  padding-left:6px; position:relative; z-index:2;
}
.glm-brandvideo .bv-caption {
  position:absolute; left:24px; bottom:24px;
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 15px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--glm-powder); opacity:.85; z-index:2;
}

/* Services 3-up */
.glm-services3 { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.glm-service-card {
  background:var(--glm-powder-cream);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  padding:40px 32px;
  display:flex; flex-direction:column;
  transition:all var(--dur-slow) var(--ease-out);
}
.glm-service-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.glm-service-card .ic { color:var(--glm-teal); margin-bottom:24px; }
.glm-service-card .ic svg { width:42px; height:42px; }
.glm-service-card .ic img { width:42px; height:42px; object-fit:contain; }
.glm-service-card h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: 37.5px; line-height:1.05; letter-spacing:0; text-transform:none;
  margin:0 0 14px; color:var(--glm-black);
}
.glm-service-card p {
  font-family:var(--font-sans); font-size: 19px; line-height:1.6;
  color:var(--color-fg-soft); margin:0 0 24px; flex:1; text-wrap:pretty;
}
.glm-service-card .more,
.glm-postcard .more {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 15px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--glm-teal); display:inline-flex; align-items:center; gap:8px;
}
.glm-service-card .more svg, .glm-postcard .more svg { width:14px; height:14px; }

/* Values strip (5 values) */
.glm-values5 { display:grid; grid-template-columns:repeat(5, 1fr); gap:0; counter-reset:v; }
.glm-values5 .value-item { padding:36px 24px 36px 0; counter-increment:v; position:relative; }
.glm-values5 .value-item::before {
  content:counter(v, decimal-leading-zero);
  display:block;
  font-family:var(--font-display); font-size: 45px; line-height:1;
  color:var(--glm-teal); margin-bottom:20px;
}
.glm-values5 .value-item h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: 30px; line-height:1.1; margin:0 0 10px;
  color:var(--glm-black); letter-spacing:0; text-transform:none;
}
.glm-values5 .value-item p {
  font-family:var(--font-sans); font-size: 17.5px; line-height:1.55;
  color:var(--color-fg-soft); margin:0; text-wrap:pretty;
}
.glm-section.stucco .glm-values5 { gap:20px; }
.glm-section.stucco .glm-values5 .value-item {
  background:rgba(247,239,223,.94);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  border:1px solid rgba(154, 61, 34, .14);
  border-radius:var(--radius-lg);
  padding:32px 28px 32px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.6) inset,
    0 12px 32px -16px rgba(60, 25, 10, .25),
    0 2px 8px -2px rgba(60, 25, 10, .12);
}
.glm-section.stucco .glm-values5 .value-item::before { color:var(--glm-pinecone); margin-bottom:18px; text-shadow:none; }
.glm-section.stucco .glm-values5 .value-item h3 { color:var(--glm-black); text-shadow:none; }
.glm-section.stucco .glm-values5 .value-item p { color:var(--color-fg-soft); text-shadow:none; }

/* Blog teaser / post cards */
.glm-blogteaser-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; }
.glm-postcard {
  background:var(--glm-powder-cream) url("../images/patterns/stucco-pink.png") center/cover no-repeat;
  background-blend-mode:screen;
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl); overflow:hidden;
  display:flex; flex-direction:column;
  transition:all var(--dur-slow) var(--ease-out); cursor:pointer;
  position:relative;
}
.glm-postcard:hover { transform:translateY(-2px); box-shadow:var(--shadow-lg); border-color:var(--color-border-strong); }
.glm-postcard .pc-img { aspect-ratio:5/4; overflow:hidden; background:var(--glm-mint); }
.glm-postcard .pc-img img { width:100%; height:100%; object-fit:cover; transition:transform var(--dur-slow) var(--ease-out); }
.glm-postcard:hover .pc-img img { transform:scale(1.04); }
.glm-postcard .pc-body { padding:28px 28px 32px; display:flex; flex-direction:column; flex:1; }
.glm-postcard .pc-tags { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.pc-tag {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 12.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--glm-pinecone); padding:4px 10px; background:var(--glm-mint); border-radius:var(--radius-pill);
}
.glm-postcard h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: 30px; line-height:1.1; letter-spacing:0; text-transform:none;
  margin:0 0 12px; color:var(--glm-black); text-wrap:balance;
}
.glm-postcard h3 a { color:inherit; }
/* Stretch the title link so the whole card is the click target */
.glm-postcard h3 a::after { content:""; position:absolute; inset:0; }
.glm-postcard .pc-excerpt, .glm-postcard .pc-body > p {
  font-family:var(--font-sans); font-size: 17.5px; line-height:1.55;
  color:var(--color-fg-soft); margin:0 0 18px; flex:1; text-wrap:pretty;
}
.glm-postcard .pc-meta-row { display:flex; justify-content:space-between; align-items:center; margin-top:auto; gap:12px; }
.glm-postcard .pc-byline {
  font-family:var(--font-sans); font-style:italic; font-size: 14px;
  letter-spacing:.08em; color:var(--glm-pinecone);
}
.glm-center-cta { text-align:center; margin-top:48px; }

/* Testimonial slider */
.glm-testimonials { background:var(--glm-mint); color:var(--glm-black); position:relative; overflow:hidden; }
.glm-testimonials::before { content:""; position:absolute; inset:0; background-image:url(../images/patterns/stucco-pink.png); background-size:800px; background-repeat:repeat; opacity:.42; mix-blend-mode:multiply; filter:hue-rotate(75deg) saturate(.7); pointer-events:none; }
.glm-testimonials-inner { max-width:1080px; margin:0 auto; padding:104px 40px; position:relative; z-index:1; }
.glm-testimonial-slide {
  text-align:center; padding:64px 56px;
  background:var(--glm-powder);
  border:1px solid var(--color-border);
  border-radius:var(--radius-2xl);
  box-shadow:0 18px 48px rgba(14,22,32,.10);
  max-width:880px; margin:0 auto;
}
.glm-testimonial-slide[hidden] { display:none; }
.glm-testimonial-slide img.mark { width:128px; height:auto; opacity:.7; margin:0 auto 32px; display:block; }
.glm-testimonial-slide .label {
  font-family:var(--font-sans); font-style:italic; font-weight:700;
  font-size: 19px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--glm-pinecone); margin-bottom:28px;
}
.glm-testimonial-slide blockquote {
  font-family:var(--font-display); font-weight:400;
  font-size: clamp(35px, 3.4vw, 52.5px); line-height:1.18;
  color:var(--glm-pinecone); margin:0 0 28px; text-wrap:balance; letter-spacing:0;
}
.glm-testimonial-slide blockquote::before { content:"\201C"; }
.glm-testimonial-slide blockquote::after  { content:"\201D"; }
.glm-testimonial-slide .attrib {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 20px; letter-spacing:.04em; color:var(--glm-black);
}
.glm-testimonial-slide .attrib .role { opacity:.65; }
.glm-testimonial-controls { display:flex; align-items:center; justify-content:center; gap:24px; margin-top:48px; }
.glm-test-arrow {
  width:44px; height:44px; border-radius:50%;
  background:transparent; border:1px solid rgba(247,239,223,.55); color:var(--glm-powder);
  cursor:pointer; display:grid; place-items:center;
  transition:all var(--dur-base) var(--ease-out);
}
.glm-test-arrow:hover { background:rgba(247,239,223,.18); border-color:var(--glm-powder); color:var(--glm-powder); }
.glm-test-arrow svg { width:16px; height:16px; }
.glm-test-dots { display:flex; gap:4px; }
.glm-test-dot {
  /* 44×44 hit target with 7px visual dot via ::before */
  width:44px; height:44px; border-radius:50%;
  background:transparent; border:0; cursor:pointer; padding:0;
  display:grid; place-items:center;
  transition:all var(--dur-base) var(--ease-out);
}
.glm-test-dot::before {
  content:""; width:7px; height:7px; border-radius:50%;
  background:rgba(247,239,223,.55);
  transition:all var(--dur-base) var(--ease-out);
}
.glm-test-dot.active::before { background:var(--glm-powder); width:24px; border-radius:0; }

/* Final CTA band */
.glm-finalcta {
  background:var(--glm-pine);
  background-image:linear-gradient(135deg, var(--glm-pine) 0%, #5a7a44 55%, #6f8a4a 100%);
  color:var(--glm-powder);
  position:relative; overflow:hidden;
}
.glm-finalcta .inner {
  max-width:920px; margin:0 auto; padding:112px 40px;
  text-align:center; position:relative; z-index:1;
}
.glm-finalcta h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(40px, 5.6vw, 76px); line-height:1.02;
  letter-spacing:0; text-transform:uppercase;
  color:var(--glm-powder); margin:0 0 18px; text-wrap:balance;
}
.glm-finalcta h2 em { font-style:italic; color:var(--glm-dandelion); }
.glm-finalcta p {
  font-family:var(--font-sans); font-size: 22.5px; line-height:1.55;
  color:var(--glm-powder); margin:0 0 36px; text-wrap:pretty;
}
.glm-finalcta .cta-row { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ───────────── 7. Footer ───────────── */
.glm-footer { background:var(--glm-teal); color:var(--glm-powder); position:relative; overflow:hidden; padding:84px 40px 36px; }
.glm-footer-inner { max-width:1280px; margin:0 auto; position:relative; z-index:1; }
.glm-footer-grid { display:grid; grid-template-columns:1.4fr 1.2fr 1fr 1fr; gap:48px; padding-bottom:56px; border-bottom:1px solid rgba(247,239,223,.12); }
.glm-footer-brand img.logo { width:100%; max-width:320px; height:auto; margin-bottom:24px; }
.glm-footer-brand .tagline {
  font-family:var(--font-display); font-weight:400; font-size: 30px; line-height:1.2;
  color:var(--glm-powder); margin:0 0 14px;
}
.glm-footer-brand .desc {
  font-family:var(--font-sans); font-size: 17.5px; line-height:1.6;
  color:var(--glm-powder); opacity:.85; margin:0; max-width:320px;
}
.glm-footer-col h5 {
  font-family:var(--font-sans); font-style:italic; font-size: 14px;
  font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--glm-dandelion); margin:0 0 18px;
}
.glm-newsletter .news-lede {
  font-family:var(--font-display); font-size:25px; color:var(--glm-powder);
  margin:0 0 8px; line-height:1.2;
}
.glm-newsletter p {
  font-family:var(--font-sans); font-size: 16.5px; line-height:1.55;
  color:var(--glm-powder); opacity:.85; margin:0 0 18px;
}
.glm-newsletter form { display:flex; flex-direction:column; gap:10px; }
.glm-newsletter input {
  font-family:var(--font-sans); font-size: 17.5px;
  background:var(--glm-powder); border:1px solid var(--glm-powder);
  color:var(--glm-teal); padding:13px 16px; border-radius:var(--radius-pill);
  transition:all var(--dur-base) var(--ease-out);
}
.glm-newsletter input::placeholder { color:rgba(51,119,127,.55); }
.glm-newsletter input:focus { outline:none; border-color:var(--glm-dandelion); box-shadow:0 0 0 3px rgba(239,170,37,.35); }
.glm-newsletter button {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 15px; letter-spacing:.1em; text-transform:uppercase;
  background:var(--glm-dandelion); color:var(--glm-black);
  border:0; padding:13px 18px; border-radius:var(--radius-pill);
  cursor:pointer; transition:all var(--dur-base) var(--ease-out);
}
.glm-newsletter button:hover { background:#f4b53d; transform:translateY(-1px); }
.glm-newsletter .news-thanks, .glm-newsband .news-thanks {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size:17.5px; color:var(--glm-dandelion); margin:0;
}
.glm-footer-col a:not(.glm-btn) {
  display:block; font-family:var(--font-sans); font-size: 17.5px;
  color:var(--glm-powder); border:0; padding:5px 0; opacity:.78;
  cursor:pointer; transition:opacity var(--dur-fast) var(--ease-out);
}
.glm-footer-col a:not(.glm-btn):hover { opacity:1; color:var(--glm-powder); }
.glm-footer-col ul { list-style:none; margin:0; padding:0; }
.glm-footer-col .social { display:flex; gap:10px; margin-bottom:18px; }
.glm-footer-col .social a {
  display:grid; place-items:center; width:44px; height:44px; padding:0;
  background:rgba(247,239,223,.06); border-radius:50%; opacity:1;
}
.glm-footer-col .social a:hover { background:var(--glm-teal); }
.glm-footer-col .social svg { width:18px; height:18px; }
.glm-footer-col .contact-line {
  font-family:var(--font-sans); font-size: 17.5px; color:var(--glm-powder); opacity:.85;
  margin-bottom:8px; line-height:1.5;
}
.glm-footer-col .contact-line strong {
  display:block; font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 12.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--glm-powder); opacity:1; margin-bottom:3px;
}
.glm-footer-col .contact-line a { display:inline; padding:0; }
.glm-footer .powered-by {
  font-family:var(--font-sans); font-style:italic; font-size:16.5px;
  color:var(--glm-powder); opacity:.85; margin:10px 0 18px; line-height:1.5;
}
.glm-footer-bottom {
  display:flex; justify-content:space-between; align-items:center;
  padding-top:28px; font-family:var(--font-sans); font-size: 15px; color:var(--glm-powder); opacity:.85;
  flex-wrap:wrap; gap:12px;
}
.glm-footer-bottom .links { display:flex; gap:24px; }
.glm-footer-bottom .links a { color:var(--glm-powder); border:0; cursor:pointer; }
.glm-footer-bottom .links a:hover { color:var(--glm-powder); opacity:1; text-decoration:underline; }

/* ───────────── 8. Contact page ───────────── */
.glm-contact-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:80px; align-items:start; }
.glm-contact-info h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(36px, 4.4vw, 52px); line-height:1.02; letter-spacing:0;
  margin:18px 0 22px; color:var(--glm-black); text-wrap:balance;
}
.glm-contact-info > p {
  font-family:var(--font-sans); font-size: 20px; line-height:1.65;
  color:var(--color-fg-soft); margin:0 0 22px; text-wrap:pretty;
}
.glm-contact-info p strong { color:var(--glm-teal); }
.glm-other-ways {
  margin-top:48px; padding:32px; background:var(--glm-powder-cream);
  border-radius:var(--radius-xl); border:1px solid var(--color-border);
}
.glm-other-ways h3 {
  font-family:var(--font-sans); font-style:italic; font-weight:700;
  font-size: 14px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--glm-teal); margin:0 0 18px;
}
.glm-other-ways .row {
  display:flex; align-items:flex-start; gap:14px;
  padding:14px 0; border-top:1px solid var(--color-divider);
}
.glm-other-ways .row:first-of-type { border-top:0; padding-top:0; }
.glm-other-ways .row .ic { color:var(--glm-teal); flex-shrink:0; margin-top:2px; }
.glm-other-ways .row .ic svg { width:24px; height:24px; }
.glm-other-ways .row dl { margin:0; }
.glm-other-ways .row dt {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 14px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--glm-pinecone); margin-bottom:3px;
}
.glm-other-ways .row dd {
  font-family:var(--font-sans); font-size: 19px; color:var(--glm-black);
  margin:0; line-height:1.45;
}
.glm-form-card {
  background:var(--glm-powder); padding:40px;
  border-radius:var(--radius-2xl); border:1px solid var(--color-border);
  box-shadow:var(--shadow-md);
}
.glm-form { display:flex; flex-direction:column; gap:18px; }
.glm-form .field { display:flex; flex-direction:column; gap:8px; }
.glm-form .two { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.glm-form label {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 14px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--glm-pinecone);
}
.glm-form input, .glm-form select, .glm-form textarea {
  font-family:var(--font-sans); font-size: 19px;
  padding:14px 16px; background:var(--glm-powder-cream);
  border:1px solid var(--color-border); border-radius:var(--radius-md);
  color:var(--color-fg); transition:all var(--dur-base) var(--ease-out);
  width:100%;
}
.glm-form input:focus, .glm-form select:focus, .glm-form textarea:focus {
  outline:none; border-color:var(--glm-teal);
  box-shadow:0 0 0 3px rgba(51,119,127,.22);
}
.glm-form textarea { resize:vertical; min-height:140px; }
.glm-form .submit-row { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:8px; flex-wrap:wrap; }
.glm-form .submit-row .note {
  font-family:var(--font-sans); font-size: 15px; color:var(--color-fg-muted); font-style:italic;
}
/* Honeypot field (all forms) — visually removed, still in the
   accessibility tree off-screen */
.glm-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; margin:0; }
/* Success state */
.glm-form-success { text-align:center; padding:36px 12px; }
.glm-form-success .ok {
  width:64px; height:64px; border-radius:50%;
  background:var(--glm-teal-soft); color:var(--glm-teal);
  display:grid; place-items:center; margin:0 auto 18px;
}
.glm-form-success .ok svg { width:28px; height:28px; }
.glm-form-success h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size:40px; margin:0 0 12px; color:var(--glm-black);
  letter-spacing:0; text-transform:none; line-height:1.05;
}
.glm-form-success p { font-size:20px; color:var(--color-fg-soft); line-height:1.6; margin:0 0 24px; }
.glm-form-error {
  background:rgba(180,74,61,.1); border-left:3px solid var(--color-danger);
  color:var(--color-danger); font-family:var(--font-sans); font-size:17px;
  padding:14px 18px; margin-bottom:8px;
}
.glm-notes {
  background:var(--glm-mint); border-radius:var(--radius-xl);
  padding:36px; margin-top:48px;
  border-left:3px solid var(--glm-pine);
}
.glm-notes h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: 32.5px; line-height:1.0; letter-spacing:0; text-transform:none;
  margin:0 0 14px; color:var(--glm-pine);
}
.glm-notes p {
  font-family:var(--font-sans); font-size: 19px; line-height:1.6;
  color:var(--glm-pine); margin:0 0 14px;
}
.glm-notes p:last-of-type { margin-bottom:18px; }

/* ───────────── 9. Blog landing + single post ───────────── */
.glm-cat-pills {
  display:flex; gap:10px; flex-wrap:wrap; justify-content:center;
  padding-bottom:48px; border-bottom:1px solid var(--color-divider);
}
.glm-cat-pill {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size:15px; letter-spacing:.08em; text-transform:uppercase;
  padding:10px 18px; border-radius:var(--radius-pill);
  border:1px solid var(--color-border);
  background:transparent; color:var(--glm-pinecone); cursor:pointer;
}
.glm-cat-pill:hover { color:var(--glm-teal); border-color:var(--glm-teal); }
.glm-cat-pill.active {
  border:1.5px solid var(--glm-teal);
  background:var(--glm-teal); color:var(--glm-powder);
}
.glm-blog-featured {
  display:grid; grid-template-columns:1.2fr 1fr; gap:56px; align-items:center;
  background:var(--glm-powder-cream); border:1px solid var(--color-border);
  border-radius:var(--radius-2xl); padding:48px; margin-bottom:64px;
  position:relative; overflow:hidden;
}
.glm-blog-featured .feat-img {
  aspect-ratio:5/4; border-radius:9999px 9999px 0 0; overflow:hidden;
  box-shadow:var(--shadow-md); position:relative;
}
.glm-blog-featured .feat-img img { width:100%; height:100%; object-fit:cover; }
.glm-blog-featured .feat-tag-row { display:flex; align-items:center; gap:14px; margin-bottom:20px; flex-wrap:wrap; }
.glm-blog-featured .feat-marker {
  font-family:var(--font-sans); font-style:italic; font-weight:700;
  font-size: 14px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--glm-black); background:var(--glm-dandelion);
  padding:5px 12px; border-radius:var(--radius-pill);
}
.glm-blog-featured .feat-byline {
  font-family:var(--font-sans); font-style:italic; font-size:15px;
  letter-spacing:.08em; color:var(--glm-pinecone);
}
.glm-blog-featured h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(32px, 4.4vw, 52px); line-height:1.05; letter-spacing:0;
  margin:0 0 18px; color:var(--glm-black); text-wrap:balance;
}
.glm-blog-featured h2 a { color:inherit; }
.glm-blog-featured p {
  font-family:var(--font-sans); font-size: 20px; line-height:1.6;
  color:var(--color-fg-soft); margin:0 0 24px; text-wrap:pretty;
}
.glm-blog-featured .tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.glm-blog-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:32px; }

/* Pine newsletter band (blog pages) */
.glm-newsband { text-align:center; max-width:720px; }
.glm-newsband .eb { margin:0 auto 20px; display:inline-flex; }
.glm-newsband h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(36px, 4.4vw, 52px); line-height:1.02;
  color:var(--glm-powder); margin:0 0 16px; text-wrap:balance;
}
.glm-newsband p {
  font-family:var(--font-sans); font-size:21.5px; line-height:1.6;
  color:var(--glm-mint); margin:0 0 28px;
}
.glm-newsband form { display:flex; gap:10px; max-width:480px; margin:0 auto; flex-wrap:wrap; justify-content:center; }
.glm-newsband input {
  flex:1; min-width:240px; font-family:var(--font-sans); font-size:19px;
  background:var(--glm-powder); border:1px solid var(--glm-powder);
  color:var(--glm-teal); padding:14px 18px; border-radius:var(--radius-pill);
}
.glm-newsband input::placeholder { color:rgba(51,119,127,.55); }
.glm-newsband input:focus { outline:none; border-color:var(--glm-dandelion); box-shadow:0 0 0 3px rgba(239,170,37,.35); }

/* Single post */
.glm-post .inner { max-width:1240px; }
.glm-post-head { max-width:880px; margin:0 auto 56px; text-align:center; }
.glm-post-back {
  display:inline-flex; align-items:center; gap:8px;
  background:none; border:0; cursor:pointer; margin:0 0 28px;
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size:15px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--glm-teal); transition:color var(--dur-fast) var(--ease-out);
}
.glm-post-back:hover { color:var(--glm-pine); }
.glm-post-back svg { display:block; width:15px; height:15px; }
.glm-post-cats { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:24px; }
.glm-post-title {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(40px, 5vw, 72px); line-height:1.02; letter-spacing:0;
  text-transform:none; color:var(--glm-black); margin:0 0 24px;
  text-wrap:balance;
}
.glm-post-dek {
  font-family:var(--font-sans); font-size:clamp(19px, 2vw, 23px);
  line-height:1.55; color:var(--color-fg-soft);
  max-width:720px; margin:0 auto 32px; text-wrap:pretty;
}
.glm-post-byline {
  display:flex; align-items:center; justify-content:center;
  gap:12px; flex-wrap:wrap;
  font-family:var(--font-sans); font-style:italic;
  font-size:15px; letter-spacing:.03em; color:var(--color-fg-muted);
  padding-top:24px; border-top:1px solid var(--color-divider);
  max-width:520px; margin:0 auto;
}
.glm-post-byline .by-author { font-weight:700; color:var(--glm-pinecone); font-style:normal; letter-spacing:.02em; }
.glm-post-byline .by-dot { opacity:.5; }
.glm-post-figure { margin:0 auto 64px; max-width:1080px; }
.glm-post-figure img {
  width:100%; aspect-ratio:16/9; object-fit:cover; display:block;
  border:1px solid var(--color-border); box-shadow:var(--shadow-md);
}
.glm-post-figure figcaption {
  font-family:var(--font-sans); font-style:italic; font-size:14px;
  line-height:1.5; color:var(--color-fg-muted);
  margin-top:14px; text-align:center;
}

/* Narrative body (shared by posts + generic pages) */
.glm-narrative { max-width:780px; margin:0 auto; }
.glm-narrative h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(40px, 5vw, 64px); line-height:1.02; letter-spacing:0;
  margin:0 0 36px; color:var(--glm-black); text-wrap:balance; text-align:center;
}
.glm-narrative p {
  font-family:var(--font-sans); font-size: 22.5px; line-height:1.7;
  color:var(--color-fg-soft); margin:0 0 22px; text-wrap:pretty;
}
.glm-narrative .pullnum {
  display:flex; align-items:baseline; gap:18px; padding:32px 36px;
  background:var(--glm-powder-cream); border-left:3px solid var(--glm-teal);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  margin:36px 0; font-family:var(--font-display); color:var(--glm-black);
}
.glm-narrative .pullnum .big { font-family:var(--font-display); font-size: 80px; line-height:1; color:var(--glm-teal); }
.glm-narrative .pullnum .lbl { font-family:var(--font-sans); font-size: 19px; line-height:1.4; color:var(--color-fg-soft); font-style:italic; }
.glm-post-body h2 { text-align:left; font-size:clamp(28px, 3.2vw, 40px); margin:48px 0 18px; }
.glm-post-body h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size:clamp(24px, 2.6vw, 32px); line-height:1.1; letter-spacing:0; text-transform:none;
  color:var(--glm-black); margin:36px 0 14px;
}
.glm-post-body .glm-post-lead {
  font-size:clamp(21px, 2.2vw, 26px); line-height:1.55;
  color:var(--glm-pinecone); margin-bottom:28px;
}
.glm-post-body ul, .glm-post-body ol {
  margin:0 0 24px; padding:0 0 0 4px;
  list-style:none; display:flex; flex-direction:column; gap:14px;
}
.glm-post-body ul li, .glm-post-body ol li {
  position:relative; padding-left:30px;
  font-family:var(--font-sans); font-size:20px; line-height:1.6;
  color:var(--color-fg-soft); text-wrap:pretty;
}
.glm-post-body ul li::before {
  content:""; position:absolute; left:4px; top:13px;
  width:8px; height:8px; border-radius:50%; background:var(--glm-teal);
}
.glm-post-body ol { counter-reset:pl; }
.glm-post-body ol li { counter-increment:pl; }
.glm-post-body ol li::before {
  content:counter(pl); position:absolute; left:0; top:2px;
  font-family:var(--font-display); color:var(--glm-teal); font-size:22px;
}
.glm-post-body li strong, .glm-post-body p strong { color:var(--glm-black); font-weight:600; }
.glm-post-body blockquote {
  margin:44px 0; padding:36px 40px;
  background:var(--glm-mint); border-left:3px solid var(--glm-pine);
}
.glm-post-body blockquote p {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(22px, 2.4vw, 30px); line-height:1.25;
  color:var(--glm-pine); margin:0; text-wrap:balance;
}
.glm-post-body img { border:1px solid var(--color-border); box-shadow:var(--shadow-sm); margin:8px 0 24px; }

/* Author card */
.glm-author-card {
  max-width:780px; margin:64px auto 0;
  display:grid; grid-template-columns:120px 1fr; gap:32px; align-items:center;
  padding:36px; background:var(--glm-powder-cream);
  border:1px solid var(--color-border);
}
.glm-author-card .ac-photo {
  width:120px; height:120px; border-radius:50%; overflow:hidden;
  border:4px solid var(--glm-powder); box-shadow:var(--shadow-sm);
}
.glm-author-card .ac-photo img { width:100%; height:100%; object-fit:cover; }
.glm-author-card .ac-kicker {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--glm-teal);
}
.glm-author-card .ac-body h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size:30px; line-height:1.05; letter-spacing:0; text-transform:none;
  color:var(--glm-pinecone); margin:8px 0 10px;
}
.glm-author-card .ac-body p {
  font-family:var(--font-sans); font-size:16px; line-height:1.6;
  color:var(--color-fg-soft); margin:0 0 20px; text-wrap:pretty;
}

/* ───────────── 10. Generic page / 404 / WP content ───────────── */
.glm-page-content { max-width:780px; margin:0 auto; }
.glm-page-content > * { max-width:100%; }
.glm-page-content h2 { text-align:left; font-size:clamp(28px, 3.2vw, 40px); margin:48px 0 18px; }
.glm-404 { text-align:center; max-width:720px; margin:0 auto; }
.glm-404 .code {
  font-family:var(--font-display); font-size:clamp(96px, 14vw, 180px);
  line-height:1; color:var(--glm-teal); margin-bottom:8px;
}
.glm-404 h1 { font-size:clamp(36px, 4.4vw, 56px); margin:0 0 18px; }
.glm-404 p { font-size:21.5px; margin:0 0 32px; }
.glm-404 .cta-row { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* WP core helpers */
.alignleft { float:left; margin:0 24px 16px 0; }
.alignright { float:right; margin:0 0 16px 24px; }
.aligncenter { margin-left:auto; margin-right:auto; }
.wp-caption { max-width:100%; }
.wp-caption-text {
  font-family:var(--font-sans); font-style:italic; font-size:14px;
  color:var(--color-fg-muted); margin-top:10px; text-align:center;
}
.sticky { /* sticky posts are surfaced as the featured card */ }

/* ───────────── 11. Accessibility ───────────── */
.glm-skip-link {
  position:absolute; top:-100px; left:12px; z-index:9999;
  background:var(--glm-black); color:var(--glm-powder);
  padding:10px 16px; font-family:var(--font-sans); font-size: 17.5px; font-weight:600;
  border-radius:4px; text-decoration:none;
  transition:top var(--dur-fast) var(--ease-out);
}
.glm-skip-link:focus { top:12px; outline:2px solid var(--glm-dandelion); outline-offset:2px; }
.screen-reader-text, .visually-hidden {
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
:focus { outline:none; }
:focus-visible {
  outline:2px solid var(--glm-teal);
  outline-offset:2px;
  border-radius:2px;
}
button:focus-visible, a:focus-visible {
  outline:2px solid var(--glm-teal);
  outline-offset:3px;
}
.glm-finalcta :focus-visible,
.glm-footer :focus-visible,
.glm-header :focus-visible,
.glm-testimonials :focus-visible {
  outline:2px solid var(--glm-dandelion);
  outline-offset:3px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ───────────── 12. Responsive ───────────── */
@media (max-width: 1100px) {
  .glm-contact-grid, .glm-abouttease, .glm-blog-featured {
    grid-template-columns:1fr; gap:48px;
  }
  .glm-services3, .glm-blogteaser-grid, .glm-blog-grid,
  .glm-values5 { grid-template-columns:1fr 1fr; gap:24px; }
  .glm-footer-grid { grid-template-columns:1fr 1fr; }
  .glm-section { padding:80px 24px; }
  .glm-hero-inner { padding:64px 24px 72px; grid-template-columns:1fr; gap:48px; }
  .glm-hero.hero--home .glm-hero-inner { padding:clamp(24px, 4vh, 64px) 24px; }

  /* Header collapses to hamburger + full-screen nav overlay.
     backdrop-filter would make the header the containing block for
     the fixed overlay (and is invisible on the opaque teal anyway). */
  .glm-header { backdrop-filter:none; -webkit-backdrop-filter:none; }
  .glm-header-inner { grid-template-columns:auto 1fr auto; gap:16px; padding:14px 24px; }
  /* The overlay is a sibling inside the header; keep the logo and the
     close (X) button painting above it. */
  .glm-header-logo, .glm-nav-toggle { position:relative; z-index:81; }
  .glm-header-logo img { height:56px; }
  .glm-nav-toggle { display:grid; justify-self:end; }
  .glm-header-cta { display:none; }
  .glm-header-nav {
    display:none;
    position:fixed; inset:0; z-index:79;
    background:var(--glm-teal);
    padding:calc(var(--glm-header-h, 86px) + 20px) 28px calc(28px + env(safe-area-inset-bottom, 0px));
    overflow-y:auto;
    flex-direction:column;
  }
  .glm-header-nav::before {
    content:""; position:fixed; inset:0;
    background-image:url(../images/patterns/pattern-white.svg);
    background-size:520px; opacity:.06; pointer-events:none;
  }
  .glm-header.nav-open .glm-header-nav { display:flex; }
  .glm-header-nav > ul { flex-direction:column; gap:0; align-items:stretch; position:relative; }
  .glm-header-nav > ul > li > a {
    display:flex; justify-content:space-between; align-items:center; width:100%;
    font-size:24px; letter-spacing:.08em;
    padding:20px 2px;
    border-bottom:1px solid rgba(247,239,223,.16);
  }
  /* Caret rejoins the flex flow so space-between sends it to the edge */
  .glm-header-nav .menu-item-has-children > a > .drop-caret {
    position:static; transform:none; margin-left:0; width:14px; height:14px;
  }
  .glm-header-nav > ul > li:first-child > a { border-top:1px solid rgba(247,239,223,.16); }
  /* Active page reads dandelion instead of the desktop underline */
  .glm-header-nav .current-menu-item > a::after,
  .glm-header-nav .current_page_item > a::after { content:none; }
  .glm-header-nav .current-menu-item > a,
  .glm-header-nav .current-menu-ancestor > a,
  .glm-header-nav .current_page_item > a,
  .glm-header-nav .current_page_ancestor > a { color:var(--glm-dandelion); }
  /* Sub-items: nested, quieter, sentence case with a hairline rail */
  .glm-header-nav .sub-menu {
    position:static; transform:none; opacity:1; pointer-events:auto;
    background:transparent; border:0; box-shadow:none; border-radius:0;
    padding:8px 0 14px 4px; min-width:0;
  }
  .glm-header-nav .sub-menu a {
    display:block; width:100%;
    font-size:17.5px; font-style:normal; font-weight:500;
    letter-spacing:.04em; text-transform:none;
    color:var(--glm-mint); opacity:1;
    padding:11px 0 11px 20px;
    border-left:1px solid rgba(247,239,223,.28);
    border-bottom:0; border-radius:0;
  }
  .glm-header-nav .sub-menu a:hover { background:transparent; color:var(--glm-powder); }
  .glm-header-nav .sub-menu .current-menu-item > a { color:var(--glm-dandelion); border-left-color:var(--glm-dandelion); }
  /* CTAs pinned to the bottom of the screen, clearly differentiated */
  .glm-header-nav .mobile-ctas {
    display:flex; flex-direction:column; gap:12px;
    margin-top:auto; padding-top:32px; position:relative;
  }
  .glm-header-nav .mobile-ctas .glm-cta-primary {
    display:flex; justify-content:center; align-items:center; width:100%;
    background:var(--glm-powder); color:var(--glm-teal); border-color:var(--glm-powder);
    font-size:16px; padding:17px 22px;
  }
  .glm-header-nav .mobile-ctas .glm-cta-ghost {
    display:flex; justify-content:center; align-items:center; width:100%;
    border:1.5px solid rgba(247,239,223,.55); border-radius:0;
    font-size:15px; padding:15px 22px;
  }
  /* Keep the page from scrolling behind the open overlay */
  body.glm-nav-locked { overflow:hidden; }
}
@media (min-width: 1101px) {
  .glm-header-nav .mobile-ctas { display:none; }
}
@media (max-width: 700px) {
  /* The design's hero eyebrow is nowrap for the 1440px artboard; on
     phones it must wrap or it forces horizontal overflow. */
  .glm-hero .eb { white-space:normal; font-size:16px; letter-spacing:.12em; }
  .glm-hero.hero--home .glm-hero-eyebrow { font-size:15px; margin-bottom:18px; }
  /* Compress the stacked hero so the fold still lands on the credbar. */
  .glm-hero.hero--home .glm-hero-inner { padding:18px 24px; }
  .glm-hero.hero--home .glm-hero-logo { margin:14px auto 10px; }
  .glm-hero.hero--home .glm-hero-logo img { max-height:26vh; }
  .glm-hero.hero--home .glm-hero-tagline { margin-bottom:18px; }
  .glm-hero.hero--home .hero-cta { gap:10px; }
  .glm-hero.hero--home .hero-cta .glm-btn.large { padding:14px 28px; }
  .glm-services3, .glm-blogteaser-grid, .glm-blog-grid,
  .glm-values5 { grid-template-columns:1fr; }
  .glm-form .two { grid-template-columns:1fr; }
  .glm-credbar-inner { flex-wrap:wrap; justify-content:flex-start; padding:16px 20px; gap:10px 16px; }
  .glm-credbar-item { font-size:13px; }
  .glm-credbar-sep { display:none; }
  .glm-footer-grid { grid-template-columns:1fr; }
  .glm-footer-bottom { flex-direction:column; align-items:flex-start; }
  .glm-testimonial-slide { padding:44px 24px; }
  .glm-testimonials-inner { padding:72px 20px; }
  .glm-blog-featured { padding:28px 20px; }
  .glm-form-card { padding:28px 20px; }
  .glm-section { padding:64px 20px; }
  .glm-author-card { grid-template-columns:1fr; text-align:center; justify-items:center; }
  .glm-post-body h2 { text-align:center; }
}

/* ============================================================
   13. Secondary pages (About, Services, Why, FAQ, Portal)
   Ported verbatim from the design's site.css.
   ============================================================ */

/* ── Section color variants ── */
.glm-section.almond { background:var(--glm-almond); position:relative; overflow:hidden; }
.glm-section.almond::before { content:""; position:absolute; inset:0; background-image:url(../images/patterns/pattern-white.svg); background-size:680px; opacity:.05; pointer-events:none; }
.glm-section.almond > .inner { position:relative; z-index:1; }
.glm-section.mint { background:var(--glm-mint); position:relative; overflow:hidden; }
.glm-section.mint::before { content:""; position:absolute; inset:0; background-image:url(../images/patterns/pattern-white.svg); background-size:680px; opacity:.06; mix-blend-mode:multiply; pointer-events:none; }
.glm-section.mint > .inner { position:relative; z-index:1; }
.glm-section.pinecone { background:var(--glm-pinecone); color:var(--glm-powder); position:relative; overflow:hidden; }
.glm-section.pinecone::before { content:""; position:absolute; inset:0; background-image:url(../images/patterns/pattern-white.svg); background-size:720px; opacity:.05; pointer-events:none; }
.glm-section.pinecone > .inner { position:relative; z-index:1; }
.glm-section.pinecone .glm-section-head h2 { color:var(--glm-powder); }
.glm-section.pinecone .glm-section-head p  { color:var(--glm-almond-soft); }
.glm-section.almond .glm-section-head h2 { color:var(--glm-pinecone); }
.glm-section.mint .glm-section-head h2 { color:var(--glm-pine); }
.glm-section.mint .glm-section-head p  { color:var(--glm-pinecone); }
.glm-section.pinecone .glm-values5 .value-item h3 { color:var(--glm-powder); }
.glm-section.pinecone .glm-values5 .value-item p  { color:var(--glm-almond-soft); }
.glm-section.pinecone .glm-values5 .value-item::before { color:var(--glm-dandelion); }

/* ── Hero variants: Services (teal) and Why (pinecone) ── */
.glm-hero.hero--services {
  background:var(--glm-teal);
  --hero-texture: url(../images/patterns/stucco-pink.png);
  --hero-texture-size: 900px;
  --hero-texture-opacity: .3;
  --hero-accent-rgb: 239,170,37;
}
.glm-hero.hero--services::before {
  mix-blend-mode: screen;
  filter: hue-rotate(80deg) saturate(.7);
}
.glm-hero.hero--services h1,
.glm-hero.hero--services .glm-hero-eyebrow { color:var(--glm-powder); }
.glm-hero.hero--services h1 em { color:var(--glm-dandelion); }
.glm-hero.hero--services .hero-sub { color:rgba(247,239,223,.85); }
.glm-hero.hero--why {
  background:var(--glm-pinecone);
  --hero-texture: url(../images/patterns/stucco-pink.png);
  --hero-texture-size: 520px;
  --hero-texture-opacity: .28;
  --hero-texture-blend: overlay;
  --hero-accent-rgb: 217,166,160;
}
.glm-hero.hero--why h1,
.glm-hero.hero--why .glm-hero-eyebrow { color:var(--glm-powder); }
.glm-hero.hero--why h1 em { color:var(--glm-almond); }
.glm-hero.hero--why .hero-sub { color:rgba(247,239,223,.82); }
.glm-hero.hero--why .glm-btn.ghost,
.glm-hero.hero--services .glm-btn.ghost,
.glm-hero.hero--about .glm-btn.ghost { color:var(--glm-powder); }
.glm-hero.hero--why .glm-btn.ghost:hover,
.glm-hero.hero--services .glm-btn.ghost:hover,
.glm-hero.hero--about .glm-btn.ghost:hover {
  background:var(--glm-powder); color:var(--glm-pinecone);
  box-shadow:inset 0 0 0 1.5px var(--glm-powder);
}
/* Full (non-compact) about hero keeps dark eyebrow/text per design */
.glm-hero.hero--about:not(.compact) .glm-hero-eyebrow { color:var(--glm-teal); }

/* ── Service alternating rows (Services page) ── */
.glm-svc-row {
  display:grid; grid-template-columns:1fr 1.05fr; gap:80px; align-items:center;
  margin-bottom:120px;
}
.glm-svc-row:last-child { margin-bottom:0; }
.glm-svc-row.reverse { grid-template-columns:1.05fr 1fr; }
.glm-svc-row.reverse .svc-media { order:2; }
.glm-svc-row .svc-media .img-frame {
  position:relative; border-radius:9999px 9999px 0 0; overflow:hidden;
  box-shadow:var(--shadow-lg); border:1px solid var(--color-border); aspect-ratio:4/5;
}
.glm-svc-row .svc-media img { width:100%; height:100%; object-fit:cover; }
.glm-svc-row .svc-media .badge {
  position:absolute; top:24px; left:24px;
  width:64px; height:64px; border-radius:50%;
  background:var(--glm-powder); display:grid; place-items:center;
  color:var(--glm-teal); box-shadow:var(--shadow-md);
}
.glm-svc-row .svc-media .badge svg { width:28px; height:28px; }
.glm-svc-row .svc-body .eb { margin-bottom:18px; }
.glm-svc-row .svc-body h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(40px, 5vw, 64px); line-height:1.0; letter-spacing:0;
  margin:0 0 22px; color:var(--glm-black); text-wrap:balance;
}
.glm-svc-row .svc-body .lede {
  font-family:var(--font-sans); font-size: 22.5px; line-height:1.8;
  color:var(--color-fg-soft); margin:0 0 26px; text-wrap:pretty;
}
.glm-svc-row .svc-body ul.svc-list {
  list-style:none; padding:0; margin:0 0 28px;
  display:grid; grid-template-columns:1fr 1fr; gap:0 24px;
}
.glm-svc-row .svc-body ul.svc-list li {
  font-family:var(--font-sans); font-size: 18px; line-height:1.5;
  color:var(--color-fg-soft); padding:11px 0;
  border-bottom:1px solid var(--color-divider);
  display:flex; align-items:flex-start; gap:10px;
}
.glm-svc-row .svc-body ul.svc-list li::before {
  content:""; flex-shrink:0; margin-top:8px;
  width:5px; height:5px; border-radius:50%; background:var(--glm-teal);
}
.glm-svc-row .perfect-for {
  font-family:var(--font-sans); font-size: 17.5px; line-height:1.55;
  color:var(--glm-pinecone); margin:0 0 26px;
  padding:14px 18px; background:var(--glm-powder-cream);
  border-left:2px solid var(--glm-dandelion); border-radius:0 var(--radius-md) var(--radius-md) 0;
}
.glm-svc-row .perfect-for strong {
  font-style:italic; font-weight:700; letter-spacing:.04em;
  color:var(--glm-pinecone);
}

/* ── How It Works ── */
.glm-howit { display:grid; grid-template-columns:repeat(3, 1fr); gap:32px; }
.glm-howit-step {
  background:var(--glm-powder); border:1px solid var(--color-border);
  border-radius:var(--radius-xl); padding:40px 32px;
  position:relative;
}
.glm-howit-step .num {
  font-family:var(--font-display); font-size: 22.5px;
  color:var(--glm-teal); letter-spacing:.05em;
  display:inline-block; padding:6px 12px; background:var(--glm-teal-soft);
  border-radius:var(--radius-pill); margin-bottom:20px;
}
.glm-howit-step h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: 37.5px; line-height:1.05; letter-spacing:0; text-transform:none;
  margin:0 0 12px; color:var(--glm-black);
}
.glm-howit-step p {
  font-family:var(--font-sans); font-size: 19px; line-height:1.6;
  color:var(--color-fg-soft); margin:0; text-wrap:pretty;
}
.glm-howit-step.step--mint { background:var(--glm-mint); border-color:transparent; }
.glm-howit-step.step--mint .num { color:var(--glm-pine); background:rgba(255,255,255,.55); }
.glm-howit-step.step--mint h3 { color:var(--glm-pine); }
.glm-howit-step.step--mint p  { color:var(--glm-pinecone); }
.glm-howit-step.step--dandelion { background:var(--glm-dandelion); border-color:transparent; }
.glm-howit-step.step--dandelion .num { color:var(--glm-pinecone); background:rgba(255,255,255,.55); }
.glm-howit-step.step--dandelion h3 { color:var(--glm-pinecone); }
.glm-howit-step.step--dandelion p  { color:var(--glm-pinecone); }
.glm-howit-step.step--teal { background:var(--glm-teal); border-color:transparent; }
.glm-howit-step.step--teal .num { color:var(--glm-powder); background:rgba(255,255,255,.18); }
.glm-howit-step.step--teal h3 { color:var(--glm-powder); }
.glm-howit-step.step--teal p  { color:var(--glm-mint); }

/* ── About: provider blocks ── */
.glm-providers { display:flex; flex-direction:column; gap:120px; }
.glm-provider {
  display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:start;
}
.glm-provider.reverse { grid-template-columns:1.15fr .85fr; }
.glm-provider.reverse .prov-media { order:2; }
.glm-provider .prov-media { position:sticky; top:120px; }
.glm-provider .img-frame {
  border-radius:9999px 9999px 0 0; overflow:hidden;
  box-shadow:var(--shadow-lg); aspect-ratio:4/5;
}
.glm-provider .img-frame img { width:100%; height:100%; object-fit:cover; }
.glm-provider .prov-tag {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--glm-dandelion); color:var(--glm-black);
  font-family:var(--font-sans); font-style:italic; font-weight:700;
  font-size: 14px; letter-spacing:.12em; text-transform:uppercase;
  padding:6px 14px; border-radius:var(--radius-pill);
  margin-bottom:18px;
}
.glm-provider .prov-tag.mint { background:var(--glm-mint); color:var(--glm-pine); }
.glm-provider .prov-tag svg { width:12px; height:12px; }
.glm-provider .prov-name {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: clamp(60px, 5.6vw, 95px); line-height:1.0; letter-spacing:0;
  text-transform:none;
  margin:0 0 12px; color:var(--glm-black); text-wrap:balance;
}
.glm-provider .prov-credentials {
  font-family:var(--font-sans); font-style:normal; font-weight:600;
  font-size: 16.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--glm-teal); margin:0 0 32px;
}
.glm-provider .prov-bio p {
  font-family:var(--font-sans); font-size: 20.5px; line-height:1.7;
  color:var(--color-fg-soft); margin:0 0 18px; text-wrap:pretty;
}

/* ── Jerry block ── */
.glm-jerry {
  background:var(--glm-powder-cream); border-radius:var(--radius-2xl);
  padding:48px; display:grid; grid-template-columns:.6fr 1fr; gap:48px; align-items:center;
  border:1px solid var(--color-border);
  margin-top:96px;
}
.glm-jerry .img-frame {
  aspect-ratio:1/1; border-radius:50%; overflow:hidden;
  box-shadow:var(--shadow-md); position:relative;
}
.glm-jerry .img-frame img { width:100%; height:100%; object-fit:cover; }
.glm-jerry h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: 60px; line-height:1.0; letter-spacing:0; text-transform:none;
  margin:0 0 14px; color:var(--glm-pinecone);
}
.glm-jerry h3 em { font-style:italic; color:var(--glm-teal); }
.glm-jerry p {
  font-family:var(--font-sans); font-size: 20px; line-height:1.6;
  color:var(--color-fg-soft); margin:0; text-wrap:pretty;
}
.glm-jerry .badge {
  display:inline-block; font-family:var(--font-sans); font-style:italic;
  font-weight:600; font-size: 12.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--glm-pinecone); padding:4px 12px;
  border:1px solid var(--glm-pinecone); border-radius:var(--radius-pill);
  margin-bottom:16px;
}

/* ── Editorial brand-video plate (About page) ── */
.glm-brand-video { max-width:1080px; margin:80px auto 0; }
.glm-brand-video-frame {
  position:relative; aspect-ratio:16/9; overflow:hidden;
  border-radius:0;
  background:
    radial-gradient(120% 80% at 70% 20%, rgba(120,140,116,.55), transparent 65%),
    radial-gradient(90% 70% at 20% 90%, rgba(36,28,22,.55), transparent 60%),
    linear-gradient(160deg, var(--glm-pine) 0%, var(--glm-pinecone) 55%, #2a2218 100%);
  box-shadow:var(--shadow-lg);
  color:var(--glm-powder-cream);
}
.glm-brand-video-frame::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:url(../images/patterns/pattern-white.svg);
  background-size:520px; opacity:.07; mix-blend-mode:soft-light;
}
.glm-brand-video-frame::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(60% 50% at 50% 50%, transparent 35%, rgba(0,0,0,.35) 100%);
}
.glm-brand-video-meta {
  position:absolute; top:36px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  text-align:center; z-index:2;
}
.bv-eyebrow {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 14px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--glm-mint);
}
.bv-title {
  font-family:var(--font-display); font-weight:400; font-style:italic;
  font-size: 27.5px; letter-spacing:.01em; color:var(--glm-powder-cream);
}
.glm-brand-video-play {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:96px; height:96px; border-radius:50%; border:0; cursor:pointer;
  background:rgba(247,239,223,.94); color:var(--glm-pine);
  display:grid; place-items:center; z-index:2;
  box-shadow:0 18px 42px rgba(0,0,0,.35), 0 0 0 1px rgba(247,239,223,.6) inset;
  transition:transform .25s ease, background .25s ease;
}
.glm-brand-video-play svg { width:34px; height:34px; margin-left:4px; }
.glm-brand-video-caption {
  position:absolute; left:32px; right:32px; bottom:28px; z-index:2;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  font-family:var(--font-sans); font-size: 15px; letter-spacing:.1em;
  text-transform:uppercase; color:rgba(247,239,223,.78);
}
.bv-placeholder-tag {
  font-style:italic; padding:6px 12px; border-radius:var(--radius-pill);
  background:rgba(247,239,223,.12); border:1px solid rgba(247,239,223,.25);
  color:var(--glm-powder-cream);
}
.glm-brand-video--broll .glm-brand-video-frame { background:var(--glm-pinecone); }
.glm-brand-video--broll .glm-brand-video-frame::after {
  background:
    linear-gradient(180deg, rgba(0,0,0,.25) 0%, transparent 35%, transparent 60%, rgba(0,0,0,.55) 100%);
}
.glm-brand-video--broll .bv-still {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:0;
}
.glm-brand-video--broll .glm-brand-video-play { cursor:default; opacity:.92; }
.glm-brand-video--broll .glm-brand-video-play:disabled { background:rgba(247,239,223,.92); }
.glm-brand-video--broll .glm-brand-video-play:disabled:hover { transform:translate(-50%,-50%); background:rgba(247,239,223,.92); }

/* ── Why Us: comparison columns ── */
.glm-compare {
  display:grid; grid-template-columns:1fr 1fr;
  grid-template-rows:auto repeat(8, auto);
  border-radius:var(--radius-2xl); overflow:hidden;
  box-shadow:var(--shadow-lg);
  border:1px solid var(--color-border);
}
.glm-compare-col { padding:0; display:grid; grid-template-rows:subgrid; grid-row:1 / -1; align-content:start; }
.glm-compare-col.trad { background:var(--glm-pinecone); color:var(--glm-powder); }
.glm-compare-col.glm  { background:var(--glm-pine); color:var(--glm-powder); }
.glm-compare-col h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: 45px; line-height:1.1; letter-spacing:0; text-transform:none;
  color:var(--glm-powder);
  padding:32px 36px 20px; margin:0;
}
.glm-compare-col h3 small {
  display:block; font-family:var(--font-sans); font-style:italic; font-weight:700;
  font-size: 15px; letter-spacing:.14em; text-transform:uppercase;
  margin-bottom:10px; color:var(--glm-powder); opacity:1;
}
.glm-compare-col.trad h3 small { color:var(--glm-dandelion); }
.glm-compare-col.glm h3 small { color:var(--glm-dandelion); }
.glm-compare-row {
  padding:18px 36px; min-height:78px;
  display:flex; align-items:center; gap:14px;
  border-top:1px solid rgba(247,239,223,.14);
  font-family:var(--font-sans); font-size: 19px; line-height:1.45;
  text-wrap:pretty;
}
.glm-compare-row svg { width:18px; height:18px; flex-shrink:0; opacity:.85; }
.glm-compare-col.trad .glm-compare-row { color:rgba(247,239,223,.86); }
.glm-compare-col.glm .glm-compare-row { color:var(--glm-powder); }
.glm-compare-col.glm .glm-compare-row svg { color:var(--glm-dandelion); }

/* ── Why Us: onlyness venn ── */
.glm-onlyness {
  display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:center;
}
.glm-onlyness .ven {
  position:relative; width:100%; max-width:520px; aspect-ratio: 520 / 480; margin:0 auto;
}
.glm-onlyness .ven .ven-svg { position:absolute; inset:0; width:100%; height:100%; }
.glm-onlyness .ven .ven-label {
  position:absolute;
  font-family:var(--font-sans); font-weight:600;
  font-size: 16.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--glm-pinecone);
  text-align:center; line-height:1.2;
}
.glm-onlyness .ven .l1 { top:31%; left:14%; }
.glm-onlyness .ven .l2 { top:31%; right:14%; color:var(--glm-powder); }
.glm-onlyness .ven .l3 { top:85%; left:50%; transform:translateX(-50%); }
.glm-onlyness .ven .ven-center {
  position:absolute; top:47.9%; left:50%; transform:translate(-50%, -50%);
  width:auto; max-width:110px;
  font-family:var(--font-display); font-weight:400;
  font-size: 22.5px; line-height:1.05; letter-spacing:.01em;
  color:var(--glm-teal); text-align:center;
}
.glm-onlyness .only-body h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(40px, 5vw, 60px); line-height:1.0; letter-spacing:0;
  color:var(--glm-pinecone); margin:22px 0; text-wrap:balance;
}
.glm-onlyness .only-body p {
  font-family:var(--font-sans); font-size:21.5px; line-height:1.65;
  color:var(--color-fg-soft); margin:0 0 18px; text-wrap:pretty;
}

/* ── Why Us: pricing comparison chart ── */
.glm-pricing-chart {
  background:var(--glm-powder); border-radius:var(--radius-2xl);
  box-shadow:var(--shadow-sm); padding:72px 56px;
  border:1px solid var(--color-border);
}
.glm-pricing-chart .pc-head { max-width:720px; margin:0 auto 56px; text-align:center; }
.glm-pricing-chart .pc-head h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(36px, 4.4vw, 56px); line-height:1.02;
  color:var(--glm-pinecone); margin:18px 0; text-wrap:balance;
}
.glm-pricing-chart .pc-head h2 em { font-style:italic; color:var(--glm-teal); }
.glm-pricing-chart .pc-head p {
  font-family:var(--font-sans); font-size: 21.5px; line-height:1.6;
  color:var(--color-fg-soft); margin:0; text-wrap:pretty;
}
.pc-summary { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin-bottom:0; }
.pc-sum-card {
  background:var(--glm-powder-cream, #fbf3dd);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  padding:32px 32px 28px;
  display:flex; flex-direction:column; gap:14px;
  position:relative;
}
.pc-sum-card h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal; font-size: 35px;
  line-height:1.02; color:var(--glm-pinecone); margin:0;
  letter-spacing:0; text-transform:none;
  text-wrap:balance;
}
.pc-sum-card h3 em { font-style:italic; color:var(--glm-teal); }
.pc-sum-sub {
  font-family:var(--font-sans); font-size: 16.5px; line-height:1.5;
  color:var(--color-fg-soft); margin:0; text-wrap:pretty;
  font-style:italic;
}
.pc-sum-price { display:flex; align-items:baseline; gap:4px; padding-top:10px; white-space:nowrap; }
.pc-sum-amt {
  font-family:var(--font-display); font-size: clamp(35px, 2.8vw, 47.5px);
  font-weight:400; line-height:1; color:var(--glm-pinecone);
  letter-spacing:0; white-space:nowrap;
}
.pc-sum-unit { font-family:var(--font-sans); font-style:italic; font-size: 16.5px; color:var(--color-fg-muted); white-space:nowrap; }
.pc-sum-annual {
  margin-top:auto; padding-top:16px;
  border-top:1px solid var(--color-divider);
  font-family:var(--font-display); font-size: 20px; line-height:1.3;
  color:var(--glm-pinecone);
}
.pc-sum-annual span {
  display:block;
  font-family:var(--font-sans); font-style:italic; font-size: 15px;
  color:var(--color-fg-muted);
  margin-top:3px;
}
.pc-sum-card--dpc {
  background:var(--glm-teal);
  border-color:var(--glm-teal);
  color:var(--glm-powder-cream);
  box-shadow:0 12px 32px rgba(31,92,90,.22);
}
.pc-sum-ribbon {
  position:absolute; top:-10px; left:24px;
  padding:5px 12px;
  background:var(--glm-dandelion); color:var(--glm-pinecone);
  font-family:var(--font-sans); font-style:italic; font-weight:700;
  font-size: 12.5px; letter-spacing:.14em; text-transform:uppercase;
  border-radius:var(--radius-pill);
  box-shadow:0 4px 10px rgba(0,0,0,.18);
}
.pc-sum-card--dpc h3 { color:var(--glm-powder); }
.pc-sum-card--dpc h3 em { color:var(--glm-dandelion); }
.pc-sum-card--dpc .pc-sum-sub { color:rgba(247,239,223,.85); }
.pc-sum-card--dpc .pc-sum-amt { color:var(--glm-powder); }
.pc-sum-card--dpc .pc-sum-unit { color:rgba(247,239,223,.7); }
.pc-sum-card--dpc .pc-sum-annual { border-top-color:rgba(247,239,223,.22); color:var(--glm-dandelion); }
.pc-sum-card--dpc .pc-sum-annual span { color:rgba(247,239,223,.7); }
.pc-rows { margin-top:32px; display:flex; flex-direction:column; }
.pc-row { padding:24px 0; border-top:1px solid var(--color-divider); }
.pc-row:last-child { border-bottom:1px solid var(--color-divider); }
.pc-row-label {
  font-family:var(--font-sans); font-style:italic; font-weight:700;
  font-size: 14px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--color-fg-muted);
  margin:0 0 14px;
}
.pc-row-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.pc-row-grid > div {
  padding:0 32px;
  font-family:var(--font-sans); font-size: 19px; line-height:1.55;
  color:var(--glm-pinecone);
  text-wrap:pretty;
}
.pc-row-grid > div.dpc { color:var(--glm-pine); position:relative; }
.pc-row-aside { font-style:italic; font-size: 15px; color:var(--color-fg-muted); margin-left:4px; }
.pc-pill {
  display:inline-flex; align-items:center; align-self:flex-start;
  padding:5px 12px; border-radius:var(--radius-pill);
  background:rgba(51,119,127,.14);
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 16.5px; letter-spacing:.02em; color:var(--glm-pine);
}
.pc-pill::before {
  content:""; width:6px; height:6px; border-radius:50%;
  background:var(--glm-pine); margin-right:8px;
}
.pc-footnote {
  margin:22px 0 0;
  font-family:var(--font-sans); font-style:italic; font-size: 15px;
  line-height:1.55; color:var(--color-fg-muted); max-width:780px;
}
.pc-footnote sup { color:var(--glm-teal); font-weight:700; }
.pc-savings {
  margin-top:48px;
  background:var(--glm-pinecone); color:var(--glm-powder-cream);
  border-radius:var(--radius-2xl); padding:56px 56px 48px;
  position:relative; overflow:hidden;
}
.pc-savings::before {
  content:""; position:absolute; inset:0;
  background-image:url(../images/patterns/pattern-white.svg);
  background-size:580px; opacity:.05; pointer-events:none;
}
.pc-savings-head { max-width:580px; margin-bottom:36px; position:relative; }
.pc-savings-head h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: clamp(32.5px, 3vw, 45px); line-height:1.06;
  letter-spacing:0; text-transform:none;
  color:var(--glm-powder); margin:14px 0 14px; text-wrap:balance;
}
.pc-savings-head p {
  font-family:var(--font-sans); font-size: 19px; line-height:1.6;
  color:rgba(247,239,223,.78); margin:0; text-wrap:pretty;
}
.pc-savings-list {
  list-style:none; margin:0; padding:0; position:relative;
  display:grid; grid-template-columns:repeat(2, 1fr); gap:0 56px;
}
.pc-savings-list li {
  display:grid; grid-template-columns:142px 1fr; gap:24px;
  align-items:baseline;
  padding:22px 0;
  border-top:1px solid rgba(247,239,223,.14);
}
.pc-save-amt {
  font-family:var(--font-display); font-size: 40px; line-height:1;
  color:var(--glm-dandelion); text-align:left;
  display:flex; align-items:baseline; gap:0;
}
.pc-save-amt--word { font-style:italic; font-size: 25px; letter-spacing:.01em; }
.pc-save-plus { font-size: 22.5px; color:var(--glm-dandelion); margin-left:2px; }
.pc-save-body { display:flex; flex-direction:column; gap:4px; }
.pc-save-body strong {
  font-family:var(--font-sans); font-weight:600; font-size: 19px;
  color:var(--glm-powder); letter-spacing:0;
}
.pc-save-body em {
  font-family:var(--font-sans); font-style:italic; font-size: 16.5px;
  line-height:1.5; color:rgba(247,239,223,.65);
}
.glm-guide-cta {
  margin-top:24px;
  background:var(--glm-powder);
  border:1px solid var(--color-border);
  border-radius:var(--radius-2xl);
  box-shadow:var(--shadow-sm);
  padding:48px 56px;
  display:grid; grid-template-columns:1.05fr 1fr; gap:48px; align-items:center;
}
.glm-guide-cta .ggc-copy h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: clamp(32.5px, 3vw, 45px); line-height:1.06;
  letter-spacing:0; text-transform:none;
  color:var(--glm-pinecone); margin:14px 0 12px; text-wrap:balance;
}
.glm-guide-cta .ggc-copy h3 em { font-style:italic; color:var(--glm-teal); }
.glm-guide-cta .ggc-copy p {
  font-family:var(--font-sans); font-size: 19px; line-height:1.6;
  color:var(--color-fg-soft); margin:0; text-wrap:pretty;
}
.ggc-form { display:flex; flex-direction:column; gap:12px; }
.ggc-input-row { display:flex; gap:12px; align-items:stretch; flex-wrap:wrap; }
.ggc-input-row input {
  flex:1 1 220px; min-width:0;
  font-family:var(--font-sans); font-size: 19px;
  padding:14px 16px; background:var(--glm-powder-cream);
  border:1px solid var(--color-border); border-radius:var(--radius-md);
  color:var(--color-fg); transition:all var(--dur-base) var(--ease-out);
}
.ggc-input-row input:focus {
  outline:none; border-color:var(--glm-teal);
  box-shadow:0 0 0 3px rgba(51,119,127,.22);
}
.ggc-input-row .glm-btn { white-space:nowrap; flex-shrink:0; }
.ggc-note { font-family:var(--font-sans); font-style:italic; font-size: 15px; color:var(--color-fg-muted); }
.ggc-success { display:flex; gap:18px; align-items:flex-start; }
.ggc-success .ic {
  flex-shrink:0; width:52px; height:52px; border-radius:50%;
  background:var(--glm-teal-soft, rgba(51,119,127,.14)); color:var(--glm-teal);
  display:grid; place-items:center;
}
.ggc-success h4 {
  font-family:var(--font-display); font-weight:400; font-size: 32.5px;
  line-height:1.05; color:var(--glm-pinecone); margin:0 0 8px;
}
.ggc-success p {
  font-family:var(--font-sans); font-size: 17.5px; line-height:1.55;
  color:var(--color-fg-soft); margin:0; text-wrap:pretty;
}

/* ── FAQ ── */
.glm-faq-cat { margin-bottom:64px; }
.glm-faq-cat > h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: 40px; line-height:1.0; letter-spacing:0; text-transform:none;
  margin:0 0 24px; color:var(--glm-black);
  padding-bottom:14px; border-bottom:1px solid var(--glm-teal);
  display:flex; align-items:baseline; justify-content:space-between;
}
.glm-faq-cat > h3 .num {
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 15px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--glm-teal);
}
.glm-faq-list { max-width:none; }
.glm-faq-item { border-bottom:1px solid var(--color-divider); padding:6px 0; }
.glm-faq-q {
  display:flex; justify-content:space-between; align-items:center; gap:24px;
  width:100%; text-align:left;
  padding:18px 4px; margin:0;
  background:none; border:0; cursor:pointer;
  font-family:var(--font-display); font-weight:400;
  font-size: 27.5px; line-height:1.2; color:var(--glm-black);
  text-wrap:balance;
}
.glm-faq-q .toggle {
  width:40px; height:40px; border-radius:50%;
  background:var(--glm-pinecone); color:var(--glm-powder);
  display:grid; place-items:center; flex-shrink:0;
  transition:all var(--dur-base) var(--ease-out);
}
.glm-faq-q .toggle svg { width:18px; height:18px; transition:transform var(--dur-base) var(--ease-out); }
.glm-faq-item.open .glm-faq-q .toggle { background:var(--glm-teal); color:var(--glm-powder); }
.glm-faq-item.open .glm-faq-q .toggle svg { transform:rotate(45deg); }
.glm-faq-a {
  font-family:var(--font-sans); font-size: 20px; line-height:1.65;
  color:var(--color-fg-soft); padding:0 4px 22px;
  display:none; max-width:760px; text-wrap:pretty;
}
.glm-faq-item.open .glm-faq-a { display:block; }
.glm-faq-cta { text-align:center; max-width:680px; }
.glm-faq-cta h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(36px, 4.4vw, 52px); line-height:1.02;
  margin:0 0 16px; color:var(--glm-black);
}
.glm-faq-cta p {
  font-family:var(--font-sans); font-size:21.5px; line-height:1.6;
  color:var(--color-fg-soft); margin:0 0 28px; text-wrap:pretty;
}

/* ── Patient Portal: launch panel ── */
.glm-portal-launch {
  display:grid; grid-template-columns:1.2fr 1fr; gap:48px;
  background:var(--glm-powder); border:1px solid var(--color-border);
  border-radius:var(--radius-2xl); padding:56px 48px;
  align-items:center; box-shadow:var(--shadow-sm);
}
.glm-portal-launch .pl-body h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(36px, 4.4vw, 56px); line-height:1.02;
  color:var(--glm-black); margin:18px 0 16px; text-wrap:balance;
}
.glm-portal-launch .pl-body > p {
  font-family:var(--font-sans); font-size: 21.5px; line-height:1.6;
  color:var(--color-fg-soft); max-width:520px; margin:0 0 28px; text-wrap:pretty;
}
.glm-portal-launch .pl-body .glm-btn.large { padding:18px 32px; }
.glm-portal-launch .pl-body .glm-btn svg { width:14px; height:14px; }
.glm-portal-launch .pl-fineprint {
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-sans); font-style:italic; font-size: 15px;
  letter-spacing:.01em; color:var(--color-fg-muted); margin:28px 0 0;
}
.glm-portal-launch .pl-fineprint svg { flex-shrink:0; opacity:.7; width:13px; height:13px; }
.glm-portal-launch .pl-features { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.glm-portal-launch .pl-features li {
  display:flex; gap:14px; align-items:flex-start;
  padding:14px 0; border-top:1px solid var(--color-divider);
}
.glm-portal-launch .pl-features li:first-child { border-top:0; padding-top:0; }
.glm-portal-launch .pl-features .ic {
  flex-shrink:0; width:32px; height:32px;
  background:var(--glm-pinecone); color:var(--glm-powder);
  display:grid; place-items:center; border-radius:var(--radius-md);
}
.glm-portal-launch .pl-features .ic svg { width:16px; height:16px; }
.glm-portal-launch .pl-features strong {
  display:block; font-family:var(--font-sans); font-weight:600;
  font-size: 17.5px; color:var(--glm-black); margin-bottom:2px;
}
.glm-portal-launch .pl-features em {
  font-family:var(--font-sans); font-style:italic; font-weight:400;
  font-size: 16.5px; line-height:1.5; color:var(--color-fg-soft);
}

/* ── Patient Portal: triage cards ── */
.glm-triage { margin-top:96px; }
.glm-triage .triage-head { max-width:680px; margin:0 auto 40px; text-align:center; }
.glm-triage .triage-head h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(32px, 4vw, 50px); line-height:1.02;
  color:var(--glm-black); margin:18px 0 14px; text-wrap:balance;
}
.glm-triage .triage-head p {
  font-family:var(--font-sans); font-size: 21.5px; line-height:1.6;
  color:var(--color-fg-soft); margin:0; text-wrap:pretty;
}
.glm-triage .triage-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; }
.glm-triage .triage-card {
  background:var(--glm-powder); border:1px solid var(--color-border);
  border-radius:var(--radius-xl); padding:26px;
  display:flex; flex-direction:column; gap:18px;
  box-shadow:var(--shadow-xs, 0 1px 2px rgba(14,22,32,.05));
}
.glm-triage .triage-card .t-head { display:flex; gap:14px; align-items:flex-start; }
.glm-triage .triage-card .t-icon {
  flex-shrink:0; width:40px; height:40px; border-radius:var(--radius-md);
  display:grid; place-items:center;
  background:var(--glm-teal-soft); color:var(--glm-teal);
}
.glm-triage .triage-card .t-icon svg { width:18px; height:18px; }
.glm-triage .triage-card .t-when {
  font-family:var(--font-sans); font-style:italic; font-weight:700;
  font-size: 14px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--glm-teal); margin-bottom:4px;
}
.glm-triage .triage-card h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: 30px; letter-spacing:0; text-transform:none;
  line-height:1.05; color:var(--glm-pinecone); margin:0; text-wrap:balance;
}
.glm-triage .triage-card ul {
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:8px;
}
.glm-triage .triage-card li { position:relative; padding-left:20px;
  font-family:var(--font-sans); font-size: 17.5px; line-height:1.5;
  color:var(--color-fg-soft);
}
.glm-triage .triage-card li::before {
  content:"\25B8"; position:absolute; left:0; top:0;
  color:var(--glm-pinecone); font-size:.85em; line-height:1.7;
}
.glm-triage .triage-card .t-foot {
  margin-top:auto; padding-top:14px;
  border-top:1px solid var(--color-divider);
  font-family:var(--font-sans); font-style:italic; font-size: 15px;
  color:var(--color-fg-muted); text-wrap:pretty;
}
.glm-triage .triage-card.t2 .t-icon { background:rgba(196,214,188,.5); color:var(--glm-pine); }
.glm-triage .triage-card.t2 .t-when { color:var(--glm-pine); }
.glm-triage .triage-card.t2 li::before { color:var(--glm-pine); background:none; }
.glm-triage .triage-card.t3 .t-icon { background:rgba(239,170,37,.2); color:#a47411; }
.glm-triage .triage-card.t3 .t-when { color:var(--glm-pinecone); }
.glm-triage .triage-card.t3 li::before { color:var(--glm-dandelion); background:none; }
.glm-triage .triage-card.t4 {
  background:var(--glm-pinecone); color:var(--glm-powder-cream);
  border-color:transparent;
}
.glm-triage .triage-card.t4 .t-icon { background:rgba(247,239,223,.14); color:var(--glm-powder-cream); }
.glm-triage .triage-card.t4 .t-when { color:var(--glm-dandelion); }
.glm-triage .triage-card.t4 h3 { color:var(--glm-powder); }
.glm-triage .triage-card.t4 li { color:rgba(247,239,223,.85); }
.glm-triage .triage-card.t4 li::before { color:var(--glm-dandelion); background:none; }
.glm-triage .triage-card.t4 .t-foot {
  color:rgba(247,239,223,.7);
  border-top-color:rgba(247,239,223,.18);
}

/* ── Patient Portal: orientation cards ── */
.glm-orient { display:grid; grid-template-columns:repeat(2, 1fr); gap:20px; margin-top:40px; }
.glm-orient .orient-card {
  background:var(--glm-powder); border:1px solid var(--color-border);
  border-radius:var(--radius-xl); padding:32px;
  display:flex; flex-direction:column; gap:14px;
  position:relative;
}
.glm-orient .orient-num {
  font-family:var(--font-display); font-size: 42.5px; color:var(--glm-teal);
  line-height:1; letter-spacing:.02em;
}
.glm-orient .orient-card h3 {
  font-family:var(--font-display); font-weight:400; font-style:normal;
  font-size: 35px; letter-spacing:0; text-transform:none;
  line-height:1.05; color:var(--glm-black); margin:0; text-wrap:balance;
}
.glm-orient .orient-card p {
  font-family:var(--font-sans); font-size: 19px; line-height:1.6;
  color:var(--color-fg-soft); margin:0; text-wrap:pretty;
}
.glm-orient .orient-link {
  display:inline-flex; align-items:center; gap:8px;
  margin-top:auto; padding:0; background:none; border:0;
  font-family:var(--font-sans); font-style:italic; font-weight:600;
  font-size: 16.5px; letter-spacing:.04em; color:var(--glm-teal);
  cursor:pointer; align-self:flex-start;
}
.glm-orient .orient-link:hover { color:var(--glm-pine); }
.glm-orient .orient-link svg { width:13px; height:13px; }

/* ── Portal: privacy band ── */
.glm-privacy-band { max-width:980px; text-align:center; }
.glm-privacy-band .eb { color:var(--glm-black); }
.glm-privacy-band h2 {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(28px, 3.4vw, 40px); line-height:1.1;
  color:var(--glm-pinecone); margin:18px auto 16px; max-width:780px; text-wrap:balance;
}
.glm-privacy-band p {
  font-family:var(--font-sans); font-size:20px; line-height:1.65;
  color:var(--color-fg-soft); max-width:680px; margin:0 auto; text-wrap:pretty;
}

/* ── Secondary-page responsive ── */
@media (max-width: 1100px) {
  .glm-svc-row, .glm-svc-row.reverse,
  .glm-provider, .glm-provider.reverse,
  .glm-numbers, .glm-onlyness { grid-template-columns:1fr; gap:48px; }
  .glm-svc-row.reverse .svc-media,
  .glm-provider.reverse .prov-media { order:0; }
  .glm-provider .prov-media { position:static; }
  .glm-howit, .glm-compete-grid { grid-template-columns:1fr 1fr; gap:24px; }
  .glm-triage .triage-grid { grid-template-columns:repeat(2, 1fr); }
  .glm-guide-cta { grid-template-columns:1fr; gap:28px; padding:40px 32px; }
  .pc-summary, .pc-row-grid { grid-template-columns:1fr; }
  .pc-row-grid > div { padding:8px 0; border-top:1px solid var(--color-divider); }
  .pc-row-grid > div:first-child { border-top:0; padding-top:0; }
  .pc-savings-list { grid-template-columns:1fr; }
  .glm-portal-launch { grid-template-columns:1fr; gap:36px; }
}
@media (max-width: 880px) {
  .glm-pricing-chart { padding:48px 24px; }
  .pc-savings { padding:40px 28px 32px; }
  .glm-compare { display:flex; flex-direction:column; }
  .glm-compare-col { display:block; }
}
@media (max-width: 760px) {
  .glm-onlyness .ven .ven-center { font-size: 19px; }
  .glm-onlyness .ven .ven-label { font-size: 14px; }
}
@media (max-width: 700px) {
  .glm-howit, .glm-compete-grid { grid-template-columns:1fr; }
  .glm-svc-row .svc-body ul.svc-list { grid-template-columns:1fr; }
  .glm-jerry { grid-template-columns:1fr; padding:28px 20px; }
  .glm-triage .triage-grid { grid-template-columns:1fr; }
  .glm-orient { grid-template-columns:1fr; }
  .glm-portal-launch { padding:40px 28px; }
  .glm-faq-q { font-size:22px; }
}

/* ============================================================
   14. Mobile refinements
   The design ships 1440px artboards only; these rules re-tune
   display type, fixed heights, and padding for small screens.
   ============================================================ */

@media (max-width: 1100px) {
  /* .snug/.tight have higher specificity than the generic
     .glm-section override above, so they kept desktop padding. */
  .glm-section.snug { padding:72px 24px; }
  .glm-section.tight { padding:64px 24px; }
  .glm-hero.compact .glm-hero-inner { padding:64px 24px; }
}

@media (max-width: 700px) {
  /* ── Heroes ── */
  .glm-hero h1 { font-size:clamp(36px, 10.5vw, 44px); margin-bottom:20px; }
  .glm-hero .hero-sub { font-size:19px; margin-bottom:28px; }
  .glm-hero-eyebrow { margin-bottom:20px; }
  .glm-hero-inner { gap:40px; padding:48px 20px 56px; }
  .glm-hero.compact .glm-hero-inner { padding:48px 20px 52px; }
  .glm-hero .hero-cta .glm-btn.large { padding:14px 24px; font-size:16px; }
  /* Fixed arch heights (560px inline) overwhelm a 375px screen. */
  .glm-arch { height:min(var(--arch-h, 540px), 110vw); }
  .glm-arch-caption { font-size:12px; padding:9px 14px; max-width:calc(100% - 24px); white-space:normal; text-align:center; }

  /* ── Section rhythm + headings ── */
  .glm-section-head { margin-bottom:40px; }
  .glm-section-head h2 { font-size:clamp(31px, 8.6vw, 40px); }
  .glm-section-head p { font-size:19px; }
  .glm-section.stucco .glm-section-head { padding:28px 22px 30px; }

  /* ── About page ── */
  .glm-provider .prov-name { font-size:clamp(34px, 9.6vw, 44px); }
  .glm-provider .prov-credentials { font-size:14.5px; margin-bottom:22px; }
  .glm-provider .prov-bio p { font-size:18.5px; line-height:1.65; }
  .glm-providers { gap:72px; }
  .glm-jerry h3 { font-size:42px; }
  .glm-jerry p { font-size:18.5px; }
  .glm-narrative h2 { font-size:clamp(31px, 8.6vw, 40px); }
  .glm-narrative p { font-size:19.5px; line-height:1.65; }
  .glm-brand-video { margin-top:56px; }
  .glm-brand-video-meta { top:20px; width:calc(100% - 32px); }
  .bv-title { font-size:21px; }
  .glm-brand-video-play { width:64px; height:64px; }
  .glm-brand-video-play svg { width:24px; height:24px; }
  .glm-brand-video-caption { left:16px; right:16px; bottom:14px; font-size:12px; flex-wrap:wrap; }

  /* ── Services page ── */
  .glm-svc-row { margin-bottom:72px; }
  .glm-svc-row .svc-body h2 { font-size:clamp(32px, 9vw, 40px); }
  .glm-svc-row .svc-body .lede { font-size:19.5px; line-height:1.65; }
  .glm-howit-step h3 { font-size:31px; }

  /* ── Why page ── */
  .glm-compare-col h3 { font-size:31px; padding:24px 22px 16px; }
  .glm-compare-row { padding:14px 22px; min-height:0; font-size:17.5px; }
  .glm-onlyness .only-body h2 { font-size:clamp(31px, 8.6vw, 40px); }
  .glm-onlyness .only-body p { font-size:19px; }
  .glm-pricing-chart .pc-head h2 { font-size:clamp(29px, 8vw, 36px); }
  .glm-pricing-chart .pc-head p { font-size:18.5px; }
  .pc-savings-head h3 { font-size:clamp(27px, 7.4vw, 32px); }
  .pc-savings-list li { grid-template-columns:96px 1fr; gap:16px; }
  .pc-save-amt { font-size:31px; }
  .pc-save-amt--word { font-size:20px; }
  .glm-guide-cta { padding:32px 20px; }
  .glm-guide-cta .ggc-copy h3 { font-size:clamp(27px, 7.4vw, 32px); }

  /* ── Testimonials / final CTA ── */
  .glm-testimonial-slide blockquote { font-size:clamp(26px, 7.4vw, 35px); }
  .glm-testimonial-slide img.mark { width:96px; margin-bottom:22px; }
  .glm-testimonial-slide .label { font-size:15px; margin-bottom:20px; }
  .glm-finalcta h2 { font-size:clamp(31px, 8.6vw, 40px); }
  .glm-finalcta p { font-size:19px; }
  .glm-finalcta .inner { padding:72px 24px; }

  /* ── Blog / post ── */
  .glm-blog-featured h2 { font-size:clamp(27px, 7.4vw, 32px); }
  .glm-post-title { font-size:clamp(31px, 8.6vw, 40px); }
  .glm-post-figure { margin-bottom:40px; }

  /* ── Portal ── */
  .glm-portal-launch .pl-body h2 { font-size:clamp(31px, 8.6vw, 40px); }
  .glm-portal-launch .pl-body > p { font-size:19px; }
  .glm-triage { margin-top:64px; }
  .glm-triage .triage-head h2 { font-size:clamp(28px, 7.7vw, 36px); }
  .glm-triage .triage-head p { font-size:19px; }
  .glm-privacy-band h2 { font-size:clamp(24px, 6.7vw, 30px); }

  /* ── Contact ── */
  .glm-contact-info h2 { font-size:clamp(29px, 8vw, 36px); }
  .glm-other-ways { padding:24px 20px; }
  .glm-notes { padding:26px 20px; }

  /* ── Buttons stack nicely ── */
  .glm-center-cta .glm-btn { width:100%; justify-content:center; }
  .glm-form .submit-row { flex-direction:column; align-items:stretch; }
  .glm-form .submit-row .glm-btn { justify-content:center; }
  .glm-form .submit-row .note { text-align:center; order:2; }
}

/* ============================================================
   15. Announcement popup
   ============================================================ */
body.glm-popup-open { overflow:hidden; }
.glm-popup[hidden] { display:none; }
.glm-popup {
  position:fixed; inset:0; z-index:200;
  display:grid; place-items:center; padding:24px;
}
.glm-popup-overlay {
  position:absolute; inset:0;
  background:rgba(14,22,32,.55);
  backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
  animation:glm-fade var(--dur-base) var(--ease-out);
}
.glm-popup-card {
  position:relative; z-index:1;
  width:100%; max-width:520px;
  background:var(--glm-powder);
  border:1px solid var(--color-border);
  box-shadow:var(--shadow-xl);
  padding:48px 44px 40px;
  text-align:center;
  background-image:url(../images/patterns/stucco-pink.png);
  background-size:cover; background-position:center;
  background-blend-mode:screen;
  animation:glm-pop var(--dur-slow) var(--ease-out);
}
@keyframes glm-fade { from { opacity:0; } to { opacity:1; } }
@keyframes glm-pop { from { opacity:0; transform:translateY(14px) scale(.98); } to { opacity:1; transform:none; } }
.glm-popup-close {
  position:absolute; top:14px; right:14px;
  width:40px; height:40px; display:grid; place-items:center;
  background:transparent; border:0; cursor:pointer;
  color:var(--glm-pinecone); opacity:.7;
  transition:opacity var(--dur-fast) var(--ease-out);
}
.glm-popup-close:hover { opacity:1; }
.glm-popup-mark { width:64px; height:auto; margin:0 auto 18px; opacity:.85; }
.glm-popup-eyebrow {
  font-family:var(--font-sans); font-style:italic; font-weight:700;
  font-size:14px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--glm-teal); margin:0 0 12px;
}
.glm-popup-title {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(28px, 5vw, 38px); line-height:1.05; letter-spacing:0;
  color:var(--glm-pinecone); margin:0 0 14px; text-wrap:balance;
}
.glm-popup-body {
  font-family:var(--font-sans); font-size:18px; line-height:1.6;
  color:var(--color-fg-soft); margin:0 auto 28px; max-width:40ch;
}
.glm-popup-actions {
  display:flex; flex-direction:column; align-items:center; gap:12px;
}
.glm-popup-actions .glm-btn { width:100%; max-width:320px; justify-content:center; }
.glm-popup-dismiss {
  background:transparent; border:0; cursor:pointer;
  font-family:var(--font-sans); font-style:italic; font-size:15px;
  color:var(--color-fg-muted); padding:6px 12px;
  transition:color var(--dur-fast) var(--ease-out);
}
.glm-popup-dismiss:hover { color:var(--glm-pinecone); }
@media (max-width: 700px) {
  .glm-popup-card { padding:40px 24px 32px; }
}

/* ============================================================
   16. Why Us — sticky pricing column headers (desktop)
   Keeps the three plan cards pinned while scrolling the detail
   rows, so you can always tell which column you're reading.
   ============================================================ */
@media (min-width: 1101px) {
  .glm-pricing-chart .pc-summary {
    position:sticky;
    top:var(--glm-header-h, 86px);
    z-index:5;
    padding:16px 0;
    margin:0 -8px;
    /* a soft backdrop so detail rows don't bleed through behind the cards */
    background:linear-gradient(var(--glm-powder), var(--glm-powder) 86%, rgba(247,239,223,0));
  }
  .glm-pricing-chart .pc-summary > .pc-sum-card { margin:0 8px; }
}

/* ── Contact pre-launch notice ── */
.glm-prelaunch-notice {
  max-width:760px; text-align:center;
  background:var(--glm-mint);
  border-left:3px solid var(--glm-pine);
  padding:28px 32px;
}
.glm-prelaunch-notice p {
  font-family:var(--font-sans); font-size:clamp(19px, 2.2vw, 23px);
  line-height:1.6; color:var(--glm-pine); margin:0; text-wrap:pretty;
}
@media (max-width: 700px) {
  .glm-prelaunch-notice { padding:24px 20px; }
}

/* ── Self-hosted brand video (fills the 16:9 plate) ── */
.glm-brandvideo .bv-thumb .bv-video,
.glm-brand-video-frame .bv-video {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:3; background:#0E1620; border:0; display:block;
}

/* ── Themed play button overlaid on self-hosted videos ── */
.bv-video-play {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  z-index:4; width:96px; height:96px; border-radius:50%; border:0; cursor:pointer;
  background:rgba(247,239,223,.94); color:var(--glm-pine);
  display:grid; place-items:center; padding-left:6px;
  box-shadow:0 18px 42px rgba(0,0,0,.35), 0 0 0 1px rgba(247,239,223,.6) inset;
  transition:transform .25s var(--ease-out), background .25s var(--ease-out), opacity .25s var(--ease-out);
}
.bv-video-play:hover { transform:translate(-50%,-50%) scale(1.06); background:var(--glm-powder-cream); }
.bv-video-play svg { width:34px; height:34px; margin-left:4px; }
.bv-video-play[hidden] { display:none; }
@media (max-width: 700px) {
  .bv-video-play { width:68px; height:68px; }
  .bv-video-play svg { width:26px; height:26px; }
}

/* ============================================================
   17. Round-2 feedback fixes
   ============================================================ */

/* Dropdown: invisible bridge across the 6px gap so the submenu
   doesn't vanish when the pointer travels down to it.

   This is attached to .sub-menu itself (not the trigger <li>) so its
   width always matches the dropdown's actual centered footprint. The
   sub-menu is wider (min-width:180px) than most trigger links and is
   horizontally centered under them (left:50%; translateX(-50%)), so a
   bridge sized to the <li> left a gap on both sides — any diagonal
   mouse path toward the dropdown crossed that gap, landed on
   .glm-header-inner, and broke the :hover chain, closing the menu.
   pointer-events:auto here overrides the parent .sub-menu's default
   pointer-events:none (in its closed state) for this pseudo-element
   only, so the bridge is hoverable even before the menu opens. */
.glm-header-nav > ul > li.menu-item-has-children { position:relative; }
.glm-header-nav .sub-menu::before {
  content:""; position:absolute; left:0; right:0; top:-14px;
  height:14px; pointer-events:auto;
}
@media (max-width: 1100px) {
  /* No hover bridge needed in the mobile overlay. */
  .glm-header-nav .sub-menu::before { content:none; }
}

/* Venn: center the "Holistic Care" label inside the lower circle
   (was sitting low, near the circle's edge). */
.glm-onlyness .ven .l3 { top:80%; left:50%; transform:translate(-50%, -50%); }

@media (max-width: 1100px) {
  /* Split heroes (About / Services / Why): photo above the text on
     small screens so the page leads with the image. */
  .glm-hero:not(.hero--home):not(.compact) .glm-hero-inner > div:last-child { order:-1; }
}

@media (max-width: 700px) {
  /* The icon badge over service photos reads as a stray graphic on
     phones — hide it there (the section heading already carries it). */
  .glm-svc-row .svc-media .badge { display:none; }

  /* Why Us pricing chart: stacked cells lose their column, so label
     each one with the plan name it belongs to. */
  .pc-row-grid > div[data-plan]::before {
    content:attr(data-plan);
    display:block; margin-bottom:4px;
    font-family:var(--font-sans); font-style:italic; font-weight:700;
    font-size:12.5px; letter-spacing:.12em; text-transform:uppercase;
    color:var(--color-fg-muted);
  }
  .pc-row-grid > div { padding:12px 0; }
}
