/* ================================================================
   Gilbert Center for Family Medicine — All 9 Service Pages
   Combined into a single stylesheet. Each page keeps its OWN
   original class prefix and CSS variable prefix exactly as they
   already exist on the live site, so no HTML on any page needs to
   change — this file only replaces the 9 separate inline <style>
   blocks with one shared file.

   Prefixes (all unique, so nothing here can conflict):
     Allergy Testing             .gc-p2-*
     ABI Test                    .gcw-abi-*
     Chronic Care Management     .gcw-ccm-*
     Echocardiogram              .gcw-echo-*
     EKG (ECG)                   .gcw-ekg-*
     General Ultrasound          .gcw-us-*
     Onsite Laboratory Services  .gcw-lab-*
     Same-Day Appointments       .gcw-sd-*
     Spirometry                  .gcw-spiro-*
================================================================= */


/* ================================================================
   Allergy Testing — class prefix: .gc-p2
================================================================= */

.gc-p2 {
  --gc-green: #4F7A2F;
  --gc-green-dark: #24371A;
  --gc-green-deep: #16220F;
  --gc-green-light: #9CC97A;
  --gc-green-glow: rgba(156,201,122,0.35);
  --gc-sage: #EEF3E7;
  --gc-sage-line: #D7E3CB;
  --gc-cream: #FBF6EC;
  --gc-paper: #FFFFFF;
  --gc-amber: #C77E2A;
  --gc-amber-bg: #FBF0DC;
  --gc-ink: #1D2318;
  --gc-muted: #5B6152;
  --gc-white: #FFFFFF;
  --gc-focus: #1B2A14;
  --gc-shadow-sm: 0 2px 10px rgba(22,34,15,0.07);
  --gc-shadow-md: 0 18px 40px -16px rgba(22,34,15,0.2);
  --gc-shadow-lg: 0 34px 70px -22px rgba(22,34,15,0.3);
  font-family: 'Poppins', sans-serif;
  color: var(--gc-ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--gc-cream);
  overflow-x: hidden;
}
.gc-p2 * { box-sizing: border-box; }
.gc-p2 :focus-visible { outline: 2px solid var(--gc-focus); outline-offset: 3px; border-radius: 3px; }
.gc-p2 a { color: var(--gc-green); }
.gc-p2-shell { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.gc-p2-section { padding: 92px 0; }

/* ============== ANIMATIONS ============== */
@keyframes gc-p2-fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gc-p2-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
.gc-p2-fade-1 { animation: gc-p2-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) both; }
.gc-p2-fade-2 { animation: gc-p2-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.12s both; }
.gc-p2-fade-3 { animation: gc-p2-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.24s both; }
@media (prefers-reduced-motion: reduce) {
  .gc-p2-fade-1, .gc-p2-fade-2, .gc-p2-fade-3 { animation: none; }
  .gc-p2-orb { animation: none !important; }
}

/* ============== EYEBROW / SECTION HEAD ============== */
.gc-p2-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gc-green); margin-bottom: 16px; }
.gc-p2-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--gc-green); box-shadow: 0 0 0 4px rgba(79,122,47,0.14); }
.gc-p2-eyebrow.gc-p2-eyebrow-light { color: var(--gc-green-light); }
.gc-p2-eyebrow.gc-p2-eyebrow-light::before { background: var(--gc-green-light); box-shadow: 0 0 0 4px rgba(156,201,122,0.18); }

.gc-p2-section-head { max-width: 640px; margin: 0 0 48px; }
.gc-p2-section-head.gc-p2-center { margin-left: auto; margin-right: auto; text-align: center; }
.gc-p2-section-head.gc-p2-center .gc-p2-eyebrow { justify-content: center; }
.gc-p2-section-head h2 { font-size: 33px; font-weight: 700; color: var(--gc-green-deep); margin: 0 0 12px; letter-spacing: -0.02em; line-height: 1.2; }
.gc-p2-section-head p { font-size: 15px; color: var(--gc-muted); margin: 0; font-weight: 400; }

/* ============== HERO ============== */
.gc-p2-hero { position: relative; background: linear-gradient(165deg, var(--gc-green-deep) 0%, var(--gc-green-dark) 50%, #2C4020 100%); color: var(--gc-white); overflow: hidden; }
.gc-p2-hero-noise { position: absolute; inset: 0; opacity: 0.045; background-image: radial-gradient(circle, #fff 1px, transparent 1px); background-size: 26px 26px; }
.gc-p2-hero-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.24), transparent 70%); top: -180px; right: -140px; filter: blur(6px); }
.gc-p2-hero-glow-2 { position: absolute; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(79,122,47,0.3), transparent 70%); bottom: -140px; left: -100px; filter: blur(8px); }
.gc-p2-orb { position: absolute; border-radius: 50%; filter: blur(1px); animation: gc-p2-float 8s ease-in-out infinite; }
.gc-p2-orb-1 { width: 7px; height: 7px; background: var(--gc-green-light); top: 22%; left: 8%; box-shadow: 0 0 18px 4px var(--gc-green-glow); animation-delay: 0s; }
.gc-p2-orb-2 { width: 5px; height: 5px; background: var(--gc-green-light); top: 68%; left: 18%; box-shadow: 0 0 14px 3px var(--gc-green-glow); animation-delay: 2.5s; }
.gc-p2-orb-3 { width: 9px; height: 9px; background: var(--gc-green-light); top: 34%; right: 12%; box-shadow: 0 0 22px 5px var(--gc-green-glow); animation-delay: 1.2s; }

.gc-p2-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 50px; align-items: center; padding: 100px 0 68px; }
.gc-p2-hero h1 { color: #fff; font-size: clamp(34px, 4.6vw, 52px); font-weight: 700; margin: 0 0 14px; letter-spacing: -0.025em; line-height: 1.12; }
.gc-p2-hero-tagline { font-size: 17px; color: var(--gc-green-light); font-weight: 400; margin: 0 0 20px; font-style: italic; }
.gc-p2-hero-sub { font-size: 16px; color: rgba(255,255,255,0.78); font-weight: 300; max-width: 500px; margin: 0; line-height: 1.8; }

.gc-p2-hero-art { position: relative; display: flex; align-items: center; justify-content: center; height: 340px; }
.gc-p2-hero-dots { position: absolute; width: 200px; height: 200px; top: -10px; right: -20px; background-image: radial-gradient(circle, rgba(255,255,255,0.25) 1.5px, transparent 1.5px); background-size: 16px 16px; z-index: 0; }
.gc-p2-hero-photo-card { position: relative; z-index: 1; width: 280px; height: 320px; border-radius: 28px; padding: 5px; background: linear-gradient(150deg, rgba(255,255,255,0.3), rgba(255,255,255,0.03)); box-shadow: 0 40px 80px -24px rgba(0,0,0,0.55), 0 0 80px -20px var(--gc-green-glow); }
.gc-p2-hero-photo-inner { width: 100%; height: 100%; border-radius: 24px; overflow: hidden; }
.gc-p2-hero-photo-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gc-p2-hero-stat-card { position: absolute; left: -34px; bottom: 26px; z-index: 2; display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.1); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(255,255,255,0.22); border-radius: 16px; padding: 14px 18px; box-shadow: 0 24px 50px -20px rgba(0,0,0,0.5); }
.gc-p2-hero-stat-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(150deg, var(--gc-green-light), var(--gc-green)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gc-p2-hero-stat-icon svg { width: 17px; height: 17px; color: #fff; }
.gc-p2-hero-stat-text strong { display: block; font-size: 13.5px; font-weight: 600; color: #fff; }
.gc-p2-hero-stat-text span { font-size: 11px; color: rgba(255,255,255,0.6); font-weight: 300; }
.gc-p2-hero-badge-top { position: absolute; top: -16px; right: -16px; z-index: 2; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(150deg, var(--gc-green), var(--gc-green-dark)); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 24px -8px rgba(18,32,11,0.6), 0 0 0 4px var(--gc-green-deep); }
.gc-p2-hero-badge-top svg { width: 22px; height: 22px; color: #fff; }

/* ============== GLASS TRUST BAR ============== */
.gc-p2-trustbar-inner { background: rgba(255,255,255,0.06); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border-top: 1px solid rgba(255,255,255,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); position: relative; z-index: 1; }
.gc-p2-trustbar-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.gc-p2-trust-item { display: flex; align-items: center; gap: 14px; padding: 28px 22px; border-left: 1px solid rgba(255,255,255,0.1); transition: background 0.25s ease; }
.gc-p2-trust-item:hover { background: rgba(255,255,255,0.04); }
.gc-p2-trust-item:first-child { border-left: none; }
.gc-p2-trust-icon { width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(150deg, rgba(156,201,122,0.18), rgba(255,255,255,0.04)); border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gc-p2-trust-icon svg { width: 19px; height: 19px; color: var(--gc-green-light); }
.gc-p2-trust-item h4 { font-size: 13.5px; font-weight: 600; color: #fff; margin: 0 0 2px; }
.gc-p2-trust-item p { font-size: 12px; color: rgba(255,255,255,0.62); margin: 0; font-weight: 300; }

/* ============== REASONS GRID (parallel points — CCM, EKG, Echo, Spirometry) ============== */
.gc-p2-reasons-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gc-p2-reason { position: relative; background: var(--gc-paper); border-radius: 18px; padding: 24px 22px; box-shadow: var(--gc-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gc-p2-reason::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--gc-green), var(--gc-green-light)); opacity: 0.85; }
.gc-p2-reason:hover { transform: translateY(-5px); box-shadow: var(--gc-shadow-md); }
.gc-p2-reason-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--gc-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gc-p2-reason-icon svg { width: 19px; height: 19px; color: var(--gc-green); }
.gc-p2-reason p { font-size: 14px; color: var(--gc-ink); font-weight: 400; margin: 0; line-height: 1.65; }
/* larger card variant used for smaller reason counts (e.g. CCM's 5 reasons) */
.gc-p2-reason.gc-p2-reason-lg { padding: 30px 26px; }
.gc-p2-reason.gc-p2-reason-lg::before { height: 4px; }
.gc-p2-reason.gc-p2-reason-lg p { font-size: 14px; }

/* ============== CATEGORY CARDS (body-area categories — General Ultrasound only) ============== */
.gc-p2-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gc-p2-cat-card { position: relative; background: var(--gc-paper); border-radius: 20px; padding: 28px 26px; box-shadow: var(--gc-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gc-p2-cat-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--gc-green), var(--gc-green-light)); opacity: 0.85; }
.gc-p2-cat-card:hover { transform: translateY(-6px); box-shadow: var(--gc-shadow-lg); }
.gc-p2-cat-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--gc-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gc-p2-cat-icon svg { width: 19px; height: 19px; color: var(--gc-green); }
.gc-p2-cat-card h3 { font-size: 16.5px; font-weight: 600; color: var(--gc-green-deep); margin: 0 0 14px; }
.gc-p2-cat-list { list-style: none; margin: 0; padding: 0; }
.gc-p2-cat-list li { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 13px; color: var(--gc-ink); font-weight: 400; line-height: 1.5; }
.gc-p2-cat-list li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--gc-green); flex-shrink: 0; margin-top: 7px; }

/* ============== PROCESS FLOW ("What to Expect" — all pages, column count varies) ============== */
.gc-p2-flow-section { background: linear-gradient(180deg, var(--gc-sage), var(--gc-cream)); }
.gc-p2-flow-wrap { position: relative; }
.gc-p2-flow-line { position: absolute; top: 29px; left: 8%; right: 8%; height: 2px; background: linear-gradient(90deg, transparent, var(--gc-green-light), var(--gc-green), var(--gc-green-light), transparent); z-index: 0; }
.gc-p2-flow { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.gc-p2-flow-item { text-align: center; }
.gc-p2-flow-num { width: 56px; height: 56px; border-radius: 50%; background: var(--gc-white); border: 2px solid var(--gc-green); color: var(--gc-green-dark); font-size: 19px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; box-shadow: var(--gc-shadow-md); }
.gc-p2-flow-item p { font-size: 13px; color: var(--gc-muted); font-weight: 400; margin: 0; }

/* ============== NOTE CALLOUTS (ABI, Echo, Spirometry, Onsite Lab) ============== */
.gc-p2-notes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 50px; }
.gc-p2-note { display: flex; align-items: flex-start; gap: 16px; background: var(--gc-paper); border-left: 4px solid var(--gc-green); border-radius: 16px; padding: 24px 28px; box-shadow: var(--gc-shadow-sm); }
.gc-p2-note:only-child { margin-top: 50px; }
.gc-p2-notes .gc-p2-note { margin-top: 0; }
.gc-p2-note-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--gc-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gc-p2-note-icon svg { width: 19px; height: 19px; color: var(--gc-green); }
.gc-p2-note p { font-size: 14px; color: var(--gc-ink); font-weight: 400; margin: 0; line-height: 1.7; }
.gc-p2-note strong { color: var(--gc-green-dark); font-weight: 700; }

/* Amber "important" variant (Onsite Laboratory Services responsibility notice) */
.gc-p2-important { display: flex; align-items: flex-start; gap: 16px; background: var(--gc-amber-bg); border-left: 4px solid var(--gc-amber); border-radius: 16px; padding: 26px 28px; }
.gc-p2-important-icon { width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,0.5); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gc-p2-important-icon svg { width: 19px; height: 19px; color: var(--gc-amber); }
.gc-p2-important p { font-size: 14px; color: #6E4E20; font-weight: 400; margin: 0; line-height: 1.75; }
.gc-p2-important strong { font-weight: 700; }

/* ============== LAB PARTNER CARDS (Onsite Laboratory Services only) ============== */
.gc-p2-partners-section { background: linear-gradient(180deg, var(--gc-sage), var(--gc-cream)); }
.gc-p2-partners-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; margin-bottom: 32px; }
.gc-p2-partner-card { background: var(--gc-paper); border-radius: 22px; padding: 36px 32px; box-shadow: var(--gc-shadow-sm); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.gc-p2-partner-card:hover { transform: translateY(-5px); box-shadow: var(--gc-shadow-md); }
.gc-p2-partner-icon { width: 52px; height: 52px; border-radius: 15px; background: var(--gc-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.gc-p2-partner-icon svg { width: 24px; height: 24px; color: var(--gc-green); }
.gc-p2-partner-card h3 { font-size: 19px; font-weight: 700; color: var(--gc-green-deep); margin: 0 0 10px; }
.gc-p2-partner-card p { font-size: 14px; color: var(--gc-muted); font-weight: 400; margin: 0; line-height: 1.7; }

/* ============== "GOOD FOR" CHECKLIST (Same-Day Appointments only) ============== */
.gc-p2-good-section { background: linear-gradient(180deg, var(--gc-sage), var(--gc-cream)); }
.gc-p2-good-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.gc-p2-good-item { display: flex; align-items: flex-start; gap: 12px; background: var(--gc-paper); border-radius: 14px; padding: 18px 20px; box-shadow: var(--gc-shadow-sm); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.gc-p2-good-item:hover { transform: translateY(-4px); box-shadow: var(--gc-shadow-md); }
.gc-p2-good-icon { width: 30px; height: 30px; border-radius: 50%; background: var(--gc-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gc-p2-good-icon svg { width: 14px; height: 14px; color: var(--gc-green); }
.gc-p2-good-item p { font-size: 13.5px; color: var(--gc-ink); font-weight: 400; margin: 0; line-height: 1.5; padding-top: 3px; }

/* ============== FAQ ACCORDION ============== */
.gc-p2-faq-section { background: var(--gc-sage); }
.gc-p2-accordion { display: flex; flex-direction: column; gap: 14px; }
.gc-p2-item { background: var(--gc-paper); border-radius: 16px; box-shadow: var(--gc-shadow-sm); overflow: hidden; border: 1.5px solid transparent; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.gc-p2-item.gc-p2-active-item { border-color: var(--gc-green-light); box-shadow: var(--gc-shadow-md); }
.gc-p2-trigger { width: 100%; display: flex; align-items: center; gap: 16px; padding: 21px 25px; background: transparent; border: none; font-family: inherit; text-align: left; cursor: pointer; color: inherit; }
.gc-p2-trigger:hover, .gc-p2-trigger:focus, .gc-p2-trigger:active, .gc-p2-trigger:focus-visible { background: var(--gc-sage) !important; color: inherit !important; }
.gc-p2-trigger h3 { flex: 1; font-size: 15.5px; font-weight: 500; margin: 0; color: var(--gc-ink); }
.gc-p2-plus { width: 28px; height: 28px; border-radius: 50%; background: var(--gc-sage); color: var(--gc-green-dark); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: transform 0.25s ease, background 0.25s ease; }
.gc-p2-trigger[aria-expanded="true"] .gc-p2-plus { transform: rotate(45deg); background: var(--gc-green-dark); color: #fff; }
.gc-p2-plus svg { width: 13px; height: 13px; }
.gc-p2-answer { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.gc-p2-answer.gc-p2-open { max-height: 400px; }
.gc-p2-answer-inner { padding: 0 25px 24px; font-size: 14px; color: var(--gc-muted); font-weight: 400; max-width: 720px; line-height: 1.8; }

/* ============== CLOSING ============== */
.gc-p2-closing { position: relative; text-align: center; background: linear-gradient(150deg, var(--gc-green-deep), var(--gc-green-dark) 55%, #2C4020); border-radius: 28px; padding: 42px 40px; color: var(--gc-white); overflow: hidden; }
.gc-p2-closing-glow { position: absolute; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.2), transparent 70%); bottom: -150px; left: -90px; }
.gc-p2-closing-glow-2 { position: absolute; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.16), transparent 70%); top: -100px; right: -60px; }
.gc-p2-closing > * { position: relative; z-index: 1; }
.gc-p2-closing h2 { color: #fff; font-size: 27px; font-weight: 700; margin: 0 0 10px; letter-spacing: -0.02em; }
.gc-p2-closing p { font-size: 14.5px; color: rgba(255,255,255,0.74); font-weight: 300; margin: 0 0 24px; max-width: 480px; margin-left: auto; margin-right: auto; }
.gc-p2-closing p.gc-p2-closing-note { margin-top: -14px; }
.gc-p2-btn-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.gc-p2-btn { display: inline-flex; align-items: center; gap: 9px; padding: 16px 32px; border-radius: 999px; font-weight: 600; font-size: 14px; text-decoration: none; transition: transform 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s ease; }
.gc-p2-btn svg { width: 15px; height: 15px; }
.gc-p2-btn:hover { transform: translateY(-3px) scale(1.015); }
.gc-p2-btn-primary { background: var(--gc-white); color: var(--gc-green-deep); box-shadow: var(--gc-shadow-lg), inset 0 1px 0 rgba(255,255,255,0.6); }
.gc-p2-btn-secondary { background: rgba(255,255,255,0.06); backdrop-filter: blur(10px); color: var(--gc-white); border: 1.5px solid rgba(255,255,255,0.35); }
.gc-p2-btn-secondary:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.1); }

/* ============== RESPONSIVE ============== */
@media (max-width: 900px) {
  .gc-p2-hero-grid { grid-template-columns: 1fr; padding-top: 74px; }
  .gc-p2-hero-art { display: none; }
  .gc-p2-trustbar-row { grid-template-columns: 1fr; }
  .gc-p2-trust-item { border-left: none; border-top: 1px solid rgba(255,255,255,0.1); }
  .gc-p2-trust-item:first-child { border-top: none; }
  .gc-p2-reasons-grid,
  .gc-p2-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .gc-p2-flow { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .gc-p2-flow-line { display: none; }
  .gc-p2-notes { grid-template-columns: 1fr; }
  .gc-p2-partners-grid { grid-template-columns: 1fr; }
  .gc-p2-good-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .gc-p2-section { padding: 62px 0; }
  .gc-p2-section-head h2 { font-size: 26px; }
  .gc-p2-reasons-grid,
  .gc-p2-cat-grid,
  .gc-p2-flow,
  .gc-p2-good-grid { grid-template-columns: 1fr; }
  .gc-p2-note { flex-direction: column; }
  .gc-p2-important { flex-direction: column; }
  .gc-p2-closing { padding: 46px 24px; }
}


/* ================================================================
   ABI Test — class prefix: .gcw-abi
================================================================= */

.gcw-abi {
  --abi-green: #4F7A2F;
  --abi-green-dark: #24371A;
  --abi-green-deep: #16220F;
  --abi-green-light: #9CC97A;
  --abi-green-glow: rgba(156,201,122,0.35);
  --abi-sage: #EEF3E7;
  --abi-sage-line: #D7E3CB;
  --abi-cream: #FBF6EC;
  --abi-paper: #FFFFFF;
  --abi-amber: #C77E2A;
  --abi-amber-bg: #FBF0DC;
  --abi-ink: #1D2318;
  --abi-muted: #5B6152;
  --abi-white: #FFFFFF;
  --abi-focus: #1B2A14;
  --abi-shadow-sm: 0 2px 10px rgba(22,34,15,0.07);
  --abi-shadow-md: 0 18px 40px -16px rgba(22,34,15,0.2);
  --abi-shadow-lg: 0 34px 70px -22px rgba(22,34,15,0.3);
  font-family: 'Poppins', sans-serif;
  color: var(--abi-ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--abi-cream);
  overflow-x: hidden;
}
.gcw-abi * { box-sizing: border-box; }
.gcw-abi :focus-visible { outline: 2px solid var(--abi-focus); outline-offset: 3px; border-radius: 3px; }
.gcw-abi a { color: var(--abi-green); }
.gcw-abi-shell { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.gcw-abi-section { padding: 92px 0; }

/* ============== ANIMATIONS ============== */
@keyframes gcw-abi-fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gcw-abi-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
.gcw-abi-fade-1 { animation: gcw-abi-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) both; }
.gcw-abi-fade-2 { animation: gcw-abi-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.12s both; }
.gcw-abi-fade-3 { animation: gcw-abi-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.24s both; }
@media (prefers-reduced-motion: reduce) {
  .gcw-abi-fade-1, .gcw-abi-fade-2, .gcw-abi-fade-3 { animation: none; }
  .gcw-abi-orb { animation: none !important; }
}

/* ============== EYEBROW / SECTION HEAD ============== */
.gcw-abi-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--abi-green); margin-bottom: 16px; }
.gcw-abi-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--abi-green); box-shadow: 0 0 0 4px rgba(79,122,47,0.14); }
.gcw-abi-eyebrow.gcw-abi-eyebrow-light { color: var(--abi-green-light); }
.gcw-abi-eyebrow.gcw-abi-eyebrow-light::before { background: var(--abi-green-light); box-shadow: 0 0 0 4px rgba(156,201,122,0.18); }

.gcw-abi-section-head { max-width: 640px; margin: 0 0 48px; }
.gcw-abi-section-head.gcw-abi-center { margin-left: auto; margin-right: auto; text-align: center; }
.gcw-abi-section-head.gcw-abi-center .gcw-abi-eyebrow { justify-content: center; }
.gcw-abi-section-head h2 { font-size: 33px; font-weight: 700; color: var(--abi-green-deep); margin: 0 0 12px; letter-spacing: -0.02em; line-height: 1.2; }
.gcw-abi-section-head p { font-size: 15px; color: var(--abi-muted); margin: 0; font-weight: 400; }

/* ============== HERO ============== */
.gcw-abi-hero { position: relative; background: linear-gradient(165deg, var(--abi-green-deep) 0%, var(--abi-green-dark) 50%, #2C4020 100%); color: var(--abi-white); overflow: hidden; }
.gcw-abi-hero-noise { position: absolute; inset: 0; opacity: 0.045; background-image: radial-gradient(circle, #fff 1px, transparent 1px); background-size: 26px 26px; }
.gcw-abi-hero-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.24), transparent 70%); top: -180px; right: -140px; filter: blur(6px); }
.gcw-abi-hero-glow-2 { position: absolute; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(79,122,47,0.3), transparent 70%); bottom: -140px; left: -100px; filter: blur(8px); }
.gcw-abi-orb { position: absolute; border-radius: 50%; filter: blur(1px); animation: gcw-abi-float 8s ease-in-out infinite; }
.gcw-abi-orb-1 { width: 7px; height: 7px; background: var(--abi-green-light); top: 22%; left: 8%; box-shadow: 0 0 18px 4px var(--abi-green-glow); animation-delay: 0s; }
.gcw-abi-orb-2 { width: 5px; height: 5px; background: var(--abi-green-light); top: 68%; left: 18%; box-shadow: 0 0 14px 3px var(--abi-green-glow); animation-delay: 2.5s; }
.gcw-abi-orb-3 { width: 9px; height: 9px; background: var(--abi-green-light); top: 34%; right: 12%; box-shadow: 0 0 22px 5px var(--abi-green-glow); animation-delay: 1.2s; }

.gcw-abi-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 50px; align-items: center; padding: 100px 0 68px; }
.gcw-abi-hero h1 { color: #fff; font-size: clamp(34px, 4.6vw, 52px); font-weight: 700; margin: 0 0 14px; letter-spacing: -0.025em; line-height: 1.12; }
.gcw-abi-hero-tagline { font-size: 17px; color: var(--abi-green-light); font-weight: 400; margin: 0 0 20px; font-style: italic; }
.gcw-abi-hero-sub { font-size: 16px; color: rgba(255,255,255,0.78); font-weight: 300; max-width: 500px; margin: 0; line-height: 1.8; }

.gcw-abi-hero-art { position: relative; display: flex; align-items: center; justify-content: center; height: 340px; }
.gcw-abi-hero-dots { position: absolute; width: 200px; height: 200px; top: -10px; right: -20px; background-image: radial-gradient(circle, rgba(255,255,255,0.25) 1.5px, transparent 1.5px); background-size: 16px 16px; z-index: 0; }
.gcw-abi-hero-photo-card { position: relative; z-index: 1; width: 280px; height: 320px; border-radius: 28px; padding: 5px; background: linear-gradient(150deg, rgba(255,255,255,0.3), rgba(255,255,255,0.03)); box-shadow: 0 40px 80px -24px rgba(0,0,0,0.55), 0 0 80px -20px var(--abi-green-glow); }
.gcw-abi-hero-photo-inner { width: 100%; height: 100%; border-radius: 24px; overflow: hidden; }
.gcw-abi-hero-photo-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gcw-abi-hero-stat-card { position: absolute; left: -34px; bottom: 26px; z-index: 2; display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.1); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(255,255,255,0.22); border-radius: 16px; padding: 14px 18px; box-shadow: 0 24px 50px -20px rgba(0,0,0,0.5); }
.gcw-abi-hero-stat-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(150deg, var(--abi-green-light), var(--abi-green)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-abi-hero-stat-icon svg { width: 17px; height: 17px; color: #fff; }
.gcw-abi-hero-stat-text strong { display: block; font-size: 13.5px; font-weight: 600; color: #fff; }
.gcw-abi-hero-stat-text span { font-size: 11px; color: rgba(255,255,255,0.6); font-weight: 300; }
.gcw-abi-hero-badge-top { position: absolute; top: -16px; right: -16px; z-index: 2; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(150deg, var(--abi-green), var(--abi-green-dark)); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 24px -8px rgba(18,32,11,0.6), 0 0 0 4px var(--abi-green-deep); }
.gcw-abi-hero-badge-top svg { width: 22px; height: 22px; color: #fff; }

/* ============== GLASS TRUST BAR ============== */
.gcw-abi-trustbar-inner { background: rgba(255,255,255,0.06); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border-top: 1px solid rgba(255,255,255,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); position: relative; z-index: 1; }
.gcw-abi-trustbar-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.gcw-abi-trust-item { display: flex; align-items: center; gap: 14px; padding: 28px 22px; border-left: 1px solid rgba(255,255,255,0.1); transition: background 0.25s ease; }
.gcw-abi-trust-item:hover { background: rgba(255,255,255,0.04); }
.gcw-abi-trust-item:first-child { border-left: none; }
.gcw-abi-trust-icon { width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(150deg, rgba(156,201,122,0.18), rgba(255,255,255,0.04)); border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-abi-trust-icon svg { width: 19px; height: 19px; color: var(--abi-green-light); }
.gcw-abi-trust-item h4 { font-size: 13.5px; font-weight: 600; color: #fff; margin: 0 0 2px; }
.gcw-abi-trust-item p { font-size: 12px; color: rgba(255,255,255,0.62); margin: 0; font-weight: 300; }

/* ============== REASONS GRID (parallel points — CCM, EKG, Echo, Spirometry) ============== */
.gcw-abi-reasons-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gcw-abi-reason { position: relative; background: var(--abi-paper); border-radius: 18px; padding: 24px 22px; box-shadow: var(--abi-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-abi-reason::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--abi-green), var(--abi-green-light)); opacity: 0.85; }
.gcw-abi-reason:hover { transform: translateY(-5px); box-shadow: var(--abi-shadow-md); }
.gcw-abi-reason-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--abi-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-abi-reason-icon svg { width: 19px; height: 19px; color: var(--abi-green); }
.gcw-abi-reason p { font-size: 14px; color: var(--abi-ink); font-weight: 400; margin: 0; line-height: 1.65; }
/* larger card variant used for smaller reason counts (e.g. CCM's 5 reasons) */
.gcw-abi-reason.gcw-abi-reason-lg { padding: 30px 26px; }
.gcw-abi-reason.gcw-abi-reason-lg::before { height: 4px; }
.gcw-abi-reason.gcw-abi-reason-lg p { font-size: 14px; }

/* ============== CATEGORY CARDS (body-area categories — General Ultrasound only) ============== */
.gcw-abi-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gcw-abi-cat-card { position: relative; background: var(--abi-paper); border-radius: 20px; padding: 28px 26px; box-shadow: var(--abi-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-abi-cat-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--abi-green), var(--abi-green-light)); opacity: 0.85; }
.gcw-abi-cat-card:hover { transform: translateY(-6px); box-shadow: var(--abi-shadow-lg); }
.gcw-abi-cat-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--abi-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-abi-cat-icon svg { width: 19px; height: 19px; color: var(--abi-green); }
.gcw-abi-cat-card h3 { font-size: 16.5px; font-weight: 600; color: var(--abi-green-deep); margin: 0 0 14px; }
.gcw-abi-cat-list { list-style: none; margin: 0; padding: 0; }
.gcw-abi-cat-list li { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 13px; color: var(--abi-ink); font-weight: 400; line-height: 1.5; }
.gcw-abi-cat-list li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--abi-green); flex-shrink: 0; margin-top: 7px; }

/* ============== PROCESS FLOW ("What to Expect" — all pages, column count varies) ============== */
.gcw-abi-flow-section { background: linear-gradient(180deg, var(--abi-sage), var(--abi-cream)); }
.gcw-abi-flow-wrap { position: relative; }
.gcw-abi-flow-line { position: absolute; top: 29px; left: 8%; right: 8%; height: 2px; background: linear-gradient(90deg, transparent, var(--abi-green-light), var(--abi-green), var(--abi-green-light), transparent); z-index: 0; }
.gcw-abi-flow { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.gcw-abi-flow-item { text-align: center; }
.gcw-abi-flow-num { width: 56px; height: 56px; border-radius: 50%; background: var(--abi-white); border: 2px solid var(--abi-green); color: var(--abi-green-dark); font-size: 19px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; box-shadow: var(--abi-shadow-md); }
.gcw-abi-flow-item p { font-size: 13px; color: var(--abi-muted); font-weight: 400; margin: 0; }

/* ============== NOTE CALLOUTS (ABI, Echo, Spirometry, Onsite Lab) ============== */
.gcw-abi-notes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 50px; }
.gcw-abi-note { display: flex; align-items: flex-start; gap: 16px; background: var(--abi-paper); border-left: 4px solid var(--abi-green); border-radius: 16px; padding: 24px 28px; box-shadow: var(--abi-shadow-sm); }
.gcw-abi-note:only-child { margin-top: 50px; }
.gcw-abi-notes .gcw-abi-note { margin-top: 0; }
.gcw-abi-note-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--abi-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-abi-note-icon svg { width: 19px; height: 19px; color: var(--abi-green); }
.gcw-abi-note p { font-size: 14px; color: var(--abi-ink); font-weight: 400; margin: 0; line-height: 1.7; }
.gcw-abi-note strong { color: var(--abi-green-dark); font-weight: 700; }

/* Amber "important" variant (Onsite Laboratory Services responsibility notice) */
.gcw-abi-important { display: flex; align-items: flex-start; gap: 16px; background: var(--abi-amber-bg); border-left: 4px solid var(--abi-amber); border-radius: 16px; padding: 26px 28px; }
.gcw-abi-important-icon { width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,0.5); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-abi-important-icon svg { width: 19px; height: 19px; color: var(--abi-amber); }
.gcw-abi-important p { font-size: 14px; color: #6E4E20; font-weight: 400; margin: 0; line-height: 1.75; }
.gcw-abi-important strong { font-weight: 700; }

/* ============== LAB PARTNER CARDS (Onsite Laboratory Services only) ============== */
.gcw-abi-partners-section { background: linear-gradient(180deg, var(--abi-sage), var(--abi-cream)); }
.gcw-abi-partners-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; margin-bottom: 32px; }
.gcw-abi-partner-card { background: var(--abi-paper); border-radius: 22px; padding: 36px 32px; box-shadow: var(--abi-shadow-sm); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.gcw-abi-partner-card:hover { transform: translateY(-5px); box-shadow: var(--abi-shadow-md); }
.gcw-abi-partner-icon { width: 52px; height: 52px; border-radius: 15px; background: var(--abi-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.gcw-abi-partner-icon svg { width: 24px; height: 24px; color: var(--abi-green); }
.gcw-abi-partner-card h3 { font-size: 19px; font-weight: 700; color: var(--abi-green-deep); margin: 0 0 10px; }
.gcw-abi-partner-card p { font-size: 14px; color: var(--abi-muted); font-weight: 400; margin: 0; line-height: 1.7; }

/* ============== "GOOD FOR" CHECKLIST (Same-Day Appointments only) ============== */
.gcw-abi-good-section { background: linear-gradient(180deg, var(--abi-sage), var(--abi-cream)); }
.gcw-abi-good-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.gcw-abi-good-item { display: flex; align-items: flex-start; gap: 12px; background: var(--abi-paper); border-radius: 14px; padding: 18px 20px; box-shadow: var(--abi-shadow-sm); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.gcw-abi-good-item:hover { transform: translateY(-4px); box-shadow: var(--abi-shadow-md); }
.gcw-abi-good-icon { width: 30px; height: 30px; border-radius: 50%; background: var(--abi-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-abi-good-icon svg { width: 14px; height: 14px; color: var(--abi-green); }
.gcw-abi-good-item p { font-size: 13.5px; color: var(--abi-ink); font-weight: 400; margin: 0; line-height: 1.5; padding-top: 3px; }

/* ============== FAQ ACCORDION ============== */
.gcw-abi-faq-section { background: var(--abi-sage); }
.gcw-abi-accordion { display: flex; flex-direction: column; gap: 14px; }
.gcw-abi-item { background: var(--abi-paper); border-radius: 16px; box-shadow: var(--abi-shadow-sm); overflow: hidden; border: 1.5px solid transparent; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.gcw-abi-item.gcw-abi-active-item { border-color: var(--abi-green-light); box-shadow: var(--abi-shadow-md); }
.gcw-abi-trigger { width: 100%; display: flex; align-items: center; gap: 16px; padding: 21px 25px; background: transparent; border: none; font-family: inherit; text-align: left; cursor: pointer; color: inherit; }
.gcw-abi-trigger:hover, .gcw-abi-trigger:focus, .gcw-abi-trigger:active, .gcw-abi-trigger:focus-visible { background: var(--abi-sage) !important; color: inherit !important; }
.gcw-abi-trigger h3 { flex: 1; font-size: 15.5px; font-weight: 500; margin: 0; color: var(--abi-ink); }
.gcw-abi-plus { width: 28px; height: 28px; border-radius: 50%; background: var(--abi-sage); color: var(--abi-green-dark); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: transform 0.25s ease, background 0.25s ease; }
.gcw-abi-trigger[aria-expanded="true"] .gcw-abi-plus { transform: rotate(45deg); background: var(--abi-green-dark); color: #fff; }
.gcw-abi-plus svg { width: 13px; height: 13px; }
.gcw-abi-answer { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.gcw-abi-answer.gcw-abi-open { max-height: 400px; }
.gcw-abi-answer-inner { padding: 0 25px 24px; font-size: 14px; color: var(--abi-muted); font-weight: 400; max-width: 720px; line-height: 1.8; }

/* ============== CLOSING ============== */
.gcw-abi-closing { position: relative; text-align: center; background: linear-gradient(150deg, var(--abi-green-deep), var(--abi-green-dark) 55%, #2C4020); border-radius: 28px; padding: 42px 40px; color: var(--abi-white); overflow: hidden; }
.gcw-abi-closing-glow { position: absolute; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.2), transparent 70%); bottom: -150px; left: -90px; }
.gcw-abi-closing-glow-2 { position: absolute; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.16), transparent 70%); top: -100px; right: -60px; }
.gcw-abi-closing > * { position: relative; z-index: 1; }
.gcw-abi-closing h2 { color: #fff; font-size: 27px; font-weight: 700; margin: 0 0 10px; letter-spacing: -0.02em; }
.gcw-abi-closing p { font-size: 14.5px; color: rgba(255,255,255,0.74); font-weight: 300; margin: 0 0 24px; max-width: 480px; margin-left: auto; margin-right: auto; }
.gcw-abi-closing p.gcw-abi-closing-note { margin-top: -14px; }
.gcw-abi-btn-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.gcw-abi-btn { display: inline-flex; align-items: center; gap: 9px; padding: 16px 32px; border-radius: 999px; font-weight: 600; font-size: 14px; text-decoration: none; transition: transform 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s ease; }
.gcw-abi-btn svg { width: 15px; height: 15px; }
.gcw-abi-btn:hover { transform: translateY(-3px) scale(1.015); }
.gcw-abi-btn-primary { background: var(--abi-white); color: var(--abi-green-deep); box-shadow: var(--abi-shadow-lg), inset 0 1px 0 rgba(255,255,255,0.6); }
.gcw-abi-btn-secondary { background: rgba(255,255,255,0.06); backdrop-filter: blur(10px); color: var(--abi-white); border: 1.5px solid rgba(255,255,255,0.35); }
.gcw-abi-btn-secondary:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.1); }

/* ============== RESPONSIVE ============== */
@media (max-width: 900px) {
  .gcw-abi-hero-grid { grid-template-columns: 1fr; padding-top: 74px; }
  .gcw-abi-hero-art { display: none; }
  .gcw-abi-trustbar-row { grid-template-columns: 1fr; }
  .gcw-abi-trust-item { border-left: none; border-top: 1px solid rgba(255,255,255,0.1); }
  .gcw-abi-trust-item:first-child { border-top: none; }
  .gcw-abi-reasons-grid,
  .gcw-abi-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .gcw-abi-flow { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .gcw-abi-flow-line { display: none; }
  .gcw-abi-notes { grid-template-columns: 1fr; }
  .gcw-abi-partners-grid { grid-template-columns: 1fr; }
  .gcw-abi-good-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .gcw-abi-section { padding: 62px 0; }
  .gcw-abi-section-head h2 { font-size: 26px; }
  .gcw-abi-reasons-grid,
  .gcw-abi-cat-grid,
  .gcw-abi-flow,
  .gcw-abi-good-grid { grid-template-columns: 1fr; }
  .gcw-abi-note { flex-direction: column; }
  .gcw-abi-important { flex-direction: column; }
  .gcw-abi-closing { padding: 46px 24px; }
}


/* ================================================================
   Chronic Care Management — class prefix: .gcw-ccm
================================================================= */

.gcw-ccm {
  --ccm-green: #4F7A2F;
  --ccm-green-dark: #24371A;
  --ccm-green-deep: #16220F;
  --ccm-green-light: #9CC97A;
  --ccm-green-glow: rgba(156,201,122,0.35);
  --ccm-sage: #EEF3E7;
  --ccm-sage-line: #D7E3CB;
  --ccm-cream: #FBF6EC;
  --ccm-paper: #FFFFFF;
  --ccm-amber: #C77E2A;
  --ccm-amber-bg: #FBF0DC;
  --ccm-ink: #1D2318;
  --ccm-muted: #5B6152;
  --ccm-white: #FFFFFF;
  --ccm-focus: #1B2A14;
  --ccm-shadow-sm: 0 2px 10px rgba(22,34,15,0.07);
  --ccm-shadow-md: 0 18px 40px -16px rgba(22,34,15,0.2);
  --ccm-shadow-lg: 0 34px 70px -22px rgba(22,34,15,0.3);
  font-family: 'Poppins', sans-serif;
  color: var(--ccm-ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--ccm-cream);
  overflow-x: hidden;
}
.gcw-ccm * { box-sizing: border-box; }
.gcw-ccm :focus-visible { outline: 2px solid var(--ccm-focus); outline-offset: 3px; border-radius: 3px; }
.gcw-ccm a { color: var(--ccm-green); }
.gcw-ccm-shell { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.gcw-ccm-section { padding: 92px 0; }

/* ============== ANIMATIONS ============== */
@keyframes gcw-ccm-fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gcw-ccm-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
.gcw-ccm-fade-1 { animation: gcw-ccm-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) both; }
.gcw-ccm-fade-2 { animation: gcw-ccm-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.12s both; }
.gcw-ccm-fade-3 { animation: gcw-ccm-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.24s both; }
@media (prefers-reduced-motion: reduce) {
  .gcw-ccm-fade-1, .gcw-ccm-fade-2, .gcw-ccm-fade-3 { animation: none; }
  .gcw-ccm-orb { animation: none !important; }
}

/* ============== EYEBROW / SECTION HEAD ============== */
.gcw-ccm-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ccm-green); margin-bottom: 16px; }
.gcw-ccm-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ccm-green); box-shadow: 0 0 0 4px rgba(79,122,47,0.14); }
.gcw-ccm-eyebrow.gcw-ccm-eyebrow-light { color: var(--ccm-green-light); }
.gcw-ccm-eyebrow.gcw-ccm-eyebrow-light::before { background: var(--ccm-green-light); box-shadow: 0 0 0 4px rgba(156,201,122,0.18); }

.gcw-ccm-section-head { max-width: 640px; margin: 0 0 48px; }
.gcw-ccm-section-head.gcw-ccm-center { margin-left: auto; margin-right: auto; text-align: center; }
.gcw-ccm-section-head.gcw-ccm-center .gcw-ccm-eyebrow { justify-content: center; }
.gcw-ccm-section-head h2 { font-size: 33px; font-weight: 700; color: var(--ccm-green-deep); margin: 0 0 12px; letter-spacing: -0.02em; line-height: 1.2; }
.gcw-ccm-section-head p { font-size: 15px; color: var(--ccm-muted); margin: 0; font-weight: 400; }

/* ============== HERO ============== */
.gcw-ccm-hero { position: relative; background: linear-gradient(165deg, var(--ccm-green-deep) 0%, var(--ccm-green-dark) 50%, #2C4020 100%); color: var(--ccm-white); overflow: hidden; }
.gcw-ccm-hero-noise { position: absolute; inset: 0; opacity: 0.045; background-image: radial-gradient(circle, #fff 1px, transparent 1px); background-size: 26px 26px; }
.gcw-ccm-hero-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.24), transparent 70%); top: -180px; right: -140px; filter: blur(6px); }
.gcw-ccm-hero-glow-2 { position: absolute; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(79,122,47,0.3), transparent 70%); bottom: -140px; left: -100px; filter: blur(8px); }
.gcw-ccm-orb { position: absolute; border-radius: 50%; filter: blur(1px); animation: gcw-ccm-float 8s ease-in-out infinite; }
.gcw-ccm-orb-1 { width: 7px; height: 7px; background: var(--ccm-green-light); top: 22%; left: 8%; box-shadow: 0 0 18px 4px var(--ccm-green-glow); animation-delay: 0s; }
.gcw-ccm-orb-2 { width: 5px; height: 5px; background: var(--ccm-green-light); top: 68%; left: 18%; box-shadow: 0 0 14px 3px var(--ccm-green-glow); animation-delay: 2.5s; }
.gcw-ccm-orb-3 { width: 9px; height: 9px; background: var(--ccm-green-light); top: 34%; right: 12%; box-shadow: 0 0 22px 5px var(--ccm-green-glow); animation-delay: 1.2s; }

.gcw-ccm-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 50px; align-items: center; padding: 100px 0 68px; }
.gcw-ccm-hero h1 { color: #fff; font-size: clamp(34px, 4.6vw, 52px); font-weight: 700; margin: 0 0 14px; letter-spacing: -0.025em; line-height: 1.12; }
.gcw-ccm-hero-tagline { font-size: 17px; color: var(--ccm-green-light); font-weight: 400; margin: 0 0 20px; font-style: italic; }
.gcw-ccm-hero-sub { font-size: 16px; color: rgba(255,255,255,0.78); font-weight: 300; max-width: 500px; margin: 0; line-height: 1.8; }

.gcw-ccm-hero-art { position: relative; display: flex; align-items: center; justify-content: center; height: 340px; }
.gcw-ccm-hero-dots { position: absolute; width: 200px; height: 200px; top: -10px; right: -20px; background-image: radial-gradient(circle, rgba(255,255,255,0.25) 1.5px, transparent 1.5px); background-size: 16px 16px; z-index: 0; }
.gcw-ccm-hero-photo-card { position: relative; z-index: 1; width: 280px; height: 320px; border-radius: 28px; padding: 5px; background: linear-gradient(150deg, rgba(255,255,255,0.3), rgba(255,255,255,0.03)); box-shadow: 0 40px 80px -24px rgba(0,0,0,0.55), 0 0 80px -20px var(--ccm-green-glow); }
.gcw-ccm-hero-photo-inner { width: 100%; height: 100%; border-radius: 24px; overflow: hidden; }
.gcw-ccm-hero-photo-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gcw-ccm-hero-stat-card { position: absolute; left: -34px; bottom: 26px; z-index: 2; display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.1); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(255,255,255,0.22); border-radius: 16px; padding: 14px 18px; box-shadow: 0 24px 50px -20px rgba(0,0,0,0.5); }
.gcw-ccm-hero-stat-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(150deg, var(--ccm-green-light), var(--ccm-green)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-ccm-hero-stat-icon svg { width: 17px; height: 17px; color: #fff; }
.gcw-ccm-hero-stat-text strong { display: block; font-size: 13.5px; font-weight: 600; color: #fff; }
.gcw-ccm-hero-stat-text span { font-size: 11px; color: rgba(255,255,255,0.6); font-weight: 300; }
.gcw-ccm-hero-badge-top { position: absolute; top: -16px; right: -16px; z-index: 2; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(150deg, var(--ccm-green), var(--ccm-green-dark)); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 24px -8px rgba(18,32,11,0.6), 0 0 0 4px var(--ccm-green-deep); }
.gcw-ccm-hero-badge-top svg { width: 22px; height: 22px; color: #fff; }

/* ============== GLASS TRUST BAR ============== */
.gcw-ccm-trustbar-inner { background: rgba(255,255,255,0.06); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border-top: 1px solid rgba(255,255,255,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); position: relative; z-index: 1; }
.gcw-ccm-trustbar-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.gcw-ccm-trust-item { display: flex; align-items: center; gap: 14px; padding: 28px 22px; border-left: 1px solid rgba(255,255,255,0.1); transition: background 0.25s ease; }
.gcw-ccm-trust-item:hover { background: rgba(255,255,255,0.04); }
.gcw-ccm-trust-item:first-child { border-left: none; }
.gcw-ccm-trust-icon { width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(150deg, rgba(156,201,122,0.18), rgba(255,255,255,0.04)); border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-ccm-trust-icon svg { width: 19px; height: 19px; color: var(--ccm-green-light); }
.gcw-ccm-trust-item h4 { font-size: 13.5px; font-weight: 600; color: #fff; margin: 0 0 2px; }
.gcw-ccm-trust-item p { font-size: 12px; color: rgba(255,255,255,0.62); margin: 0; font-weight: 300; }

/* ============== REASONS GRID (parallel points — CCM, EKG, Echo, Spirometry) ============== */
.gcw-ccm-reasons-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gcw-ccm-reason { position: relative; background: var(--ccm-paper); border-radius: 18px; padding: 24px 22px; box-shadow: var(--ccm-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-ccm-reason::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--ccm-green), var(--ccm-green-light)); opacity: 0.85; }
.gcw-ccm-reason:hover { transform: translateY(-5px); box-shadow: var(--ccm-shadow-md); }
.gcw-ccm-reason-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--ccm-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-ccm-reason-icon svg { width: 19px; height: 19px; color: var(--ccm-green); }
.gcw-ccm-reason p { font-size: 14px; color: var(--ccm-ink); font-weight: 400; margin: 0; line-height: 1.65; }
/* larger card variant used for smaller reason counts (e.g. CCM's 5 reasons) */
.gcw-ccm-reason.gcw-ccm-reason-lg { padding: 30px 26px; }
.gcw-ccm-reason.gcw-ccm-reason-lg::before { height: 4px; }
.gcw-ccm-reason.gcw-ccm-reason-lg p { font-size: 14px; }

/* ============== CATEGORY CARDS (body-area categories — General Ultrasound only) ============== */
.gcw-ccm-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gcw-ccm-cat-card { position: relative; background: var(--ccm-paper); border-radius: 20px; padding: 28px 26px; box-shadow: var(--ccm-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-ccm-cat-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--ccm-green), var(--ccm-green-light)); opacity: 0.85; }
.gcw-ccm-cat-card:hover { transform: translateY(-6px); box-shadow: var(--ccm-shadow-lg); }
.gcw-ccm-cat-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--ccm-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-ccm-cat-icon svg { width: 19px; height: 19px; color: var(--ccm-green); }
.gcw-ccm-cat-card h3 { font-size: 16.5px; font-weight: 600; color: var(--ccm-green-deep); margin: 0 0 14px; }
.gcw-ccm-cat-list { list-style: none; margin: 0; padding: 0; }
.gcw-ccm-cat-list li { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 13px; color: var(--ccm-ink); font-weight: 400; line-height: 1.5; }
.gcw-ccm-cat-list li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--ccm-green); flex-shrink: 0; margin-top: 7px; }

/* ============== PROCESS FLOW ("What to Expect" — all pages, column count varies) ============== */
.gcw-ccm-flow-section { background: linear-gradient(180deg, var(--ccm-sage), var(--ccm-cream)); }
.gcw-ccm-flow-wrap { position: relative; }
.gcw-ccm-flow-line { position: absolute; top: 29px; left: 8%; right: 8%; height: 2px; background: linear-gradient(90deg, transparent, var(--ccm-green-light), var(--ccm-green), var(--ccm-green-light), transparent); z-index: 0; }
.gcw-ccm-flow { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.gcw-ccm-flow-item { text-align: center; }
.gcw-ccm-flow-num { width: 56px; height: 56px; border-radius: 50%; background: var(--ccm-white); border: 2px solid var(--ccm-green); color: var(--ccm-green-dark); font-size: 19px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; box-shadow: var(--ccm-shadow-md); }
.gcw-ccm-flow-item p { font-size: 13px; color: var(--ccm-muted); font-weight: 400; margin: 0; }

/* ============== NOTE CALLOUTS (ABI, Echo, Spirometry, Onsite Lab) ============== */
.gcw-ccm-notes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 50px; }
.gcw-ccm-note { display: flex; align-items: flex-start; gap: 16px; background: var(--ccm-paper); border-left: 4px solid var(--ccm-green); border-radius: 16px; padding: 24px 28px; box-shadow: var(--ccm-shadow-sm); }
.gcw-ccm-note:only-child { margin-top: 50px; }
.gcw-ccm-notes .gcw-ccm-note { margin-top: 0; }
.gcw-ccm-note-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--ccm-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-ccm-note-icon svg { width: 19px; height: 19px; color: var(--ccm-green); }
.gcw-ccm-note p { font-size: 14px; color: var(--ccm-ink); font-weight: 400; margin: 0; line-height: 1.7; }
.gcw-ccm-note strong { color: var(--ccm-green-dark); font-weight: 700; }

/* Amber "important" variant (Onsite Laboratory Services responsibility notice) */
.gcw-ccm-important { display: flex; align-items: flex-start; gap: 16px; background: var(--ccm-amber-bg); border-left: 4px solid var(--ccm-amber); border-radius: 16px; padding: 26px 28px; }
.gcw-ccm-important-icon { width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,0.5); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-ccm-important-icon svg { width: 19px; height: 19px; color: var(--ccm-amber); }
.gcw-ccm-important p { font-size: 14px; color: #6E4E20; font-weight: 400; margin: 0; line-height: 1.75; }
.gcw-ccm-important strong { font-weight: 700; }

/* ============== LAB PARTNER CARDS (Onsite Laboratory Services only) ============== */
.gcw-ccm-partners-section { background: linear-gradient(180deg, var(--ccm-sage), var(--ccm-cream)); }
.gcw-ccm-partners-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; margin-bottom: 32px; }
.gcw-ccm-partner-card { background: var(--ccm-paper); border-radius: 22px; padding: 36px 32px; box-shadow: var(--ccm-shadow-sm); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.gcw-ccm-partner-card:hover { transform: translateY(-5px); box-shadow: var(--ccm-shadow-md); }
.gcw-ccm-partner-icon { width: 52px; height: 52px; border-radius: 15px; background: var(--ccm-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.gcw-ccm-partner-icon svg { width: 24px; height: 24px; color: var(--ccm-green); }
.gcw-ccm-partner-card h3 { font-size: 19px; font-weight: 700; color: var(--ccm-green-deep); margin: 0 0 10px; }
.gcw-ccm-partner-card p { font-size: 14px; color: var(--ccm-muted); font-weight: 400; margin: 0; line-height: 1.7; }

/* ============== "GOOD FOR" CHECKLIST (Same-Day Appointments only) ============== */
.gcw-ccm-good-section { background: linear-gradient(180deg, var(--ccm-sage), var(--ccm-cream)); }
.gcw-ccm-good-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.gcw-ccm-good-item { display: flex; align-items: flex-start; gap: 12px; background: var(--ccm-paper); border-radius: 14px; padding: 18px 20px; box-shadow: var(--ccm-shadow-sm); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.gcw-ccm-good-item:hover { transform: translateY(-4px); box-shadow: var(--ccm-shadow-md); }
.gcw-ccm-good-icon { width: 30px; height: 30px; border-radius: 50%; background: var(--ccm-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-ccm-good-icon svg { width: 14px; height: 14px; color: var(--ccm-green); }
.gcw-ccm-good-item p { font-size: 13.5px; color: var(--ccm-ink); font-weight: 400; margin: 0; line-height: 1.5; padding-top: 3px; }

/* ============== FAQ ACCORDION ============== */
.gcw-ccm-faq-section { background: var(--ccm-sage); }
.gcw-ccm-accordion { display: flex; flex-direction: column; gap: 14px; }
.gcw-ccm-item { background: var(--ccm-paper); border-radius: 16px; box-shadow: var(--ccm-shadow-sm); overflow: hidden; border: 1.5px solid transparent; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.gcw-ccm-item.gcw-ccm-active-item { border-color: var(--ccm-green-light); box-shadow: var(--ccm-shadow-md); }
.gcw-ccm-trigger { width: 100%; display: flex; align-items: center; gap: 16px; padding: 21px 25px; background: transparent; border: none; font-family: inherit; text-align: left; cursor: pointer; color: inherit; }
.gcw-ccm-trigger:hover, .gcw-ccm-trigger:focus, .gcw-ccm-trigger:active, .gcw-ccm-trigger:focus-visible { background: var(--ccm-sage) !important; color: inherit !important; }
.gcw-ccm-trigger h3 { flex: 1; font-size: 15.5px; font-weight: 500; margin: 0; color: var(--ccm-ink); }
.gcw-ccm-plus { width: 28px; height: 28px; border-radius: 50%; background: var(--ccm-sage); color: var(--ccm-green-dark); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: transform 0.25s ease, background 0.25s ease; }
.gcw-ccm-trigger[aria-expanded="true"] .gcw-ccm-plus { transform: rotate(45deg); background: var(--ccm-green-dark); color: #fff; }
.gcw-ccm-plus svg { width: 13px; height: 13px; }
.gcw-ccm-answer { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.gcw-ccm-answer.gcw-ccm-open { max-height: 400px; }
.gcw-ccm-answer-inner { padding: 0 25px 24px; font-size: 14px; color: var(--ccm-muted); font-weight: 400; max-width: 720px; line-height: 1.8; }

/* ============== CLOSING ============== */
.gcw-ccm-closing { position: relative; text-align: center; background: linear-gradient(150deg, var(--ccm-green-deep), var(--ccm-green-dark) 55%, #2C4020); border-radius: 28px; padding: 42px 40px; color: var(--ccm-white); overflow: hidden; }
.gcw-ccm-closing-glow { position: absolute; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.2), transparent 70%); bottom: -150px; left: -90px; }
.gcw-ccm-closing-glow-2 { position: absolute; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.16), transparent 70%); top: -100px; right: -60px; }
.gcw-ccm-closing > * { position: relative; z-index: 1; }
.gcw-ccm-closing h2 { color: #fff; font-size: 27px; font-weight: 700; margin: 0 0 10px; letter-spacing: -0.02em; }
.gcw-ccm-closing p { font-size: 14.5px; color: rgba(255,255,255,0.74); font-weight: 300; margin: 0 0 24px; max-width: 480px; margin-left: auto; margin-right: auto; }
.gcw-ccm-closing p.gcw-ccm-closing-note { margin-top: -14px; }
.gcw-ccm-btn-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.gcw-ccm-btn { display: inline-flex; align-items: center; gap: 9px; padding: 16px 32px; border-radius: 999px; font-weight: 600; font-size: 14px; text-decoration: none; transition: transform 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s ease; }
.gcw-ccm-btn svg { width: 15px; height: 15px; }
.gcw-ccm-btn:hover { transform: translateY(-3px) scale(1.015); }
.gcw-ccm-btn-primary { background: var(--ccm-white); color: var(--ccm-green-deep); box-shadow: var(--ccm-shadow-lg), inset 0 1px 0 rgba(255,255,255,0.6); }
.gcw-ccm-btn-secondary { background: rgba(255,255,255,0.06); backdrop-filter: blur(10px); color: var(--ccm-white); border: 1.5px solid rgba(255,255,255,0.35); }
.gcw-ccm-btn-secondary:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.1); }

/* ============== RESPONSIVE ============== */
@media (max-width: 900px) {
  .gcw-ccm-hero-grid { grid-template-columns: 1fr; padding-top: 74px; }
  .gcw-ccm-hero-art { display: none; }
  .gcw-ccm-trustbar-row { grid-template-columns: 1fr; }
  .gcw-ccm-trust-item { border-left: none; border-top: 1px solid rgba(255,255,255,0.1); }
  .gcw-ccm-trust-item:first-child { border-top: none; }
  .gcw-ccm-reasons-grid,
  .gcw-ccm-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .gcw-ccm-flow { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .gcw-ccm-flow-line { display: none; }
  .gcw-ccm-notes { grid-template-columns: 1fr; }
  .gcw-ccm-partners-grid { grid-template-columns: 1fr; }
  .gcw-ccm-good-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .gcw-ccm-section { padding: 62px 0; }
  .gcw-ccm-section-head h2 { font-size: 26px; }
  .gcw-ccm-reasons-grid,
  .gcw-ccm-cat-grid,
  .gcw-ccm-flow,
  .gcw-ccm-good-grid { grid-template-columns: 1fr; }
  .gcw-ccm-note { flex-direction: column; }
  .gcw-ccm-important { flex-direction: column; }
  .gcw-ccm-closing { padding: 46px 24px; }
}


/* ================================================================
   Echocardiogram — class prefix: .gcw-echo
================================================================= */

.gcw-echo {
  --echo-green: #4F7A2F;
  --echo-green-dark: #24371A;
  --echo-green-deep: #16220F;
  --echo-green-light: #9CC97A;
  --echo-green-glow: rgba(156,201,122,0.35);
  --echo-sage: #EEF3E7;
  --echo-sage-line: #D7E3CB;
  --echo-cream: #FBF6EC;
  --echo-paper: #FFFFFF;
  --echo-amber: #C77E2A;
  --echo-amber-bg: #FBF0DC;
  --echo-ink: #1D2318;
  --echo-muted: #5B6152;
  --echo-white: #FFFFFF;
  --echo-focus: #1B2A14;
  --echo-shadow-sm: 0 2px 10px rgba(22,34,15,0.07);
  --echo-shadow-md: 0 18px 40px -16px rgba(22,34,15,0.2);
  --echo-shadow-lg: 0 34px 70px -22px rgba(22,34,15,0.3);
  font-family: 'Poppins', sans-serif;
  color: var(--echo-ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--echo-cream);
  overflow-x: hidden;
}
.gcw-echo * { box-sizing: border-box; }
.gcw-echo :focus-visible { outline: 2px solid var(--echo-focus); outline-offset: 3px; border-radius: 3px; }
.gcw-echo a { color: var(--echo-green); }
.gcw-echo-shell { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.gcw-echo-section { padding: 92px 0; }

/* ============== ANIMATIONS ============== */
@keyframes gcw-echo-fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gcw-echo-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
.gcw-echo-fade-1 { animation: gcw-echo-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) both; }
.gcw-echo-fade-2 { animation: gcw-echo-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.12s both; }
.gcw-echo-fade-3 { animation: gcw-echo-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.24s both; }
@media (prefers-reduced-motion: reduce) {
  .gcw-echo-fade-1, .gcw-echo-fade-2, .gcw-echo-fade-3 { animation: none; }
  .gcw-echo-orb { animation: none !important; }
}

/* ============== EYEBROW / SECTION HEAD ============== */
.gcw-echo-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--echo-green); margin-bottom: 16px; }
.gcw-echo-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--echo-green); box-shadow: 0 0 0 4px rgba(79,122,47,0.14); }
.gcw-echo-eyebrow.gcw-echo-eyebrow-light { color: var(--echo-green-light); }
.gcw-echo-eyebrow.gcw-echo-eyebrow-light::before { background: var(--echo-green-light); box-shadow: 0 0 0 4px rgba(156,201,122,0.18); }

.gcw-echo-section-head { max-width: 640px; margin: 0 0 48px; }
.gcw-echo-section-head.gcw-echo-center { margin-left: auto; margin-right: auto; text-align: center; }
.gcw-echo-section-head.gcw-echo-center .gcw-echo-eyebrow { justify-content: center; }
.gcw-echo-section-head h2 { font-size: 33px; font-weight: 700; color: var(--echo-green-deep); margin: 0 0 12px; letter-spacing: -0.02em; line-height: 1.2; }
.gcw-echo-section-head p { font-size: 15px; color: var(--echo-muted); margin: 0; font-weight: 400; }

/* ============== HERO ============== */
.gcw-echo-hero { position: relative; background: linear-gradient(165deg, var(--echo-green-deep) 0%, var(--echo-green-dark) 50%, #2C4020 100%); color: var(--echo-white); overflow: hidden; }
.gcw-echo-hero-noise { position: absolute; inset: 0; opacity: 0.045; background-image: radial-gradient(circle, #fff 1px, transparent 1px); background-size: 26px 26px; }
.gcw-echo-hero-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.24), transparent 70%); top: -180px; right: -140px; filter: blur(6px); }
.gcw-echo-hero-glow-2 { position: absolute; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(79,122,47,0.3), transparent 70%); bottom: -140px; left: -100px; filter: blur(8px); }
.gcw-echo-orb { position: absolute; border-radius: 50%; filter: blur(1px); animation: gcw-echo-float 8s ease-in-out infinite; }
.gcw-echo-orb-1 { width: 7px; height: 7px; background: var(--echo-green-light); top: 22%; left: 8%; box-shadow: 0 0 18px 4px var(--echo-green-glow); animation-delay: 0s; }
.gcw-echo-orb-2 { width: 5px; height: 5px; background: var(--echo-green-light); top: 68%; left: 18%; box-shadow: 0 0 14px 3px var(--echo-green-glow); animation-delay: 2.5s; }
.gcw-echo-orb-3 { width: 9px; height: 9px; background: var(--echo-green-light); top: 34%; right: 12%; box-shadow: 0 0 22px 5px var(--echo-green-glow); animation-delay: 1.2s; }

.gcw-echo-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 50px; align-items: center; padding: 100px 0 68px; }
.gcw-echo-hero h1 { color: #fff; font-size: clamp(34px, 4.6vw, 52px); font-weight: 700; margin: 0 0 14px; letter-spacing: -0.025em; line-height: 1.12; }
.gcw-echo-hero-tagline { font-size: 17px; color: var(--echo-green-light); font-weight: 400; margin: 0 0 20px; font-style: italic; }
.gcw-echo-hero-sub { font-size: 16px; color: rgba(255,255,255,0.78); font-weight: 300; max-width: 500px; margin: 0; line-height: 1.8; }

.gcw-echo-hero-art { position: relative; display: flex; align-items: center; justify-content: center; height: 340px; }
.gcw-echo-hero-dots { position: absolute; width: 200px; height: 200px; top: -10px; right: -20px; background-image: radial-gradient(circle, rgba(255,255,255,0.25) 1.5px, transparent 1.5px); background-size: 16px 16px; z-index: 0; }
.gcw-echo-hero-photo-card { position: relative; z-index: 1; width: 280px; height: 320px; border-radius: 28px; padding: 5px; background: linear-gradient(150deg, rgba(255,255,255,0.3), rgba(255,255,255,0.03)); box-shadow: 0 40px 80px -24px rgba(0,0,0,0.55), 0 0 80px -20px var(--echo-green-glow); }
.gcw-echo-hero-photo-inner { width: 100%; height: 100%; border-radius: 24px; overflow: hidden; }
.gcw-echo-hero-photo-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gcw-echo-hero-stat-card { position: absolute; left: -34px; bottom: 26px; z-index: 2; display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.1); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(255,255,255,0.22); border-radius: 16px; padding: 14px 18px; box-shadow: 0 24px 50px -20px rgba(0,0,0,0.5); }
.gcw-echo-hero-stat-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(150deg, var(--echo-green-light), var(--echo-green)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-echo-hero-stat-icon svg { width: 17px; height: 17px; color: #fff; }
.gcw-echo-hero-stat-text strong { display: block; font-size: 13.5px; font-weight: 600; color: #fff; }
.gcw-echo-hero-stat-text span { font-size: 11px; color: rgba(255,255,255,0.6); font-weight: 300; }
.gcw-echo-hero-badge-top { position: absolute; top: -16px; right: -16px; z-index: 2; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(150deg, var(--echo-green), var(--echo-green-dark)); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 24px -8px rgba(18,32,11,0.6), 0 0 0 4px var(--echo-green-deep); }
.gcw-echo-hero-badge-top svg { width: 22px; height: 22px; color: #fff; }

/* ============== GLASS TRUST BAR ============== */
.gcw-echo-trustbar-inner { background: rgba(255,255,255,0.06); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border-top: 1px solid rgba(255,255,255,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); position: relative; z-index: 1; }
.gcw-echo-trustbar-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.gcw-echo-trust-item { display: flex; align-items: center; gap: 14px; padding: 28px 22px; border-left: 1px solid rgba(255,255,255,0.1); transition: background 0.25s ease; }
.gcw-echo-trust-item:hover { background: rgba(255,255,255,0.04); }
.gcw-echo-trust-item:first-child { border-left: none; }
.gcw-echo-trust-icon { width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(150deg, rgba(156,201,122,0.18), rgba(255,255,255,0.04)); border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-echo-trust-icon svg { width: 19px; height: 19px; color: var(--echo-green-light); }
.gcw-echo-trust-item h4 { font-size: 13.5px; font-weight: 600; color: #fff; margin: 0 0 2px; }
.gcw-echo-trust-item p { font-size: 12px; color: rgba(255,255,255,0.62); margin: 0; font-weight: 300; }

/* ============== REASONS GRID (parallel points — CCM, EKG, Echo, Spirometry) ============== */
.gcw-echo-reasons-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gcw-echo-reason { position: relative; background: var(--echo-paper); border-radius: 18px; padding: 24px 22px; box-shadow: var(--echo-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-echo-reason::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--echo-green), var(--echo-green-light)); opacity: 0.85; }
.gcw-echo-reason:hover { transform: translateY(-5px); box-shadow: var(--echo-shadow-md); }
.gcw-echo-reason-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--echo-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-echo-reason-icon svg { width: 19px; height: 19px; color: var(--echo-green); }
.gcw-echo-reason p { font-size: 14px; color: var(--echo-ink); font-weight: 400; margin: 0; line-height: 1.65; }
/* larger card variant used for smaller reason counts (e.g. CCM's 5 reasons) */
.gcw-echo-reason.gcw-echo-reason-lg { padding: 30px 26px; }
.gcw-echo-reason.gcw-echo-reason-lg::before { height: 4px; }
.gcw-echo-reason.gcw-echo-reason-lg p { font-size: 14px; }

/* ============== CATEGORY CARDS (body-area categories — General Ultrasound only) ============== */
.gcw-echo-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gcw-echo-cat-card { position: relative; background: var(--echo-paper); border-radius: 20px; padding: 28px 26px; box-shadow: var(--echo-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-echo-cat-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--echo-green), var(--echo-green-light)); opacity: 0.85; }
.gcw-echo-cat-card:hover { transform: translateY(-6px); box-shadow: var(--echo-shadow-lg); }
.gcw-echo-cat-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--echo-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-echo-cat-icon svg { width: 19px; height: 19px; color: var(--echo-green); }
.gcw-echo-cat-card h3 { font-size: 16.5px; font-weight: 600; color: var(--echo-green-deep); margin: 0 0 14px; }
.gcw-echo-cat-list { list-style: none; margin: 0; padding: 0; }
.gcw-echo-cat-list li { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 13px; color: var(--echo-ink); font-weight: 400; line-height: 1.5; }
.gcw-echo-cat-list li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--echo-green); flex-shrink: 0; margin-top: 7px; }

/* ============== PROCESS FLOW ("What to Expect" — all pages, column count varies) ============== */
.gcw-echo-flow-section { background: linear-gradient(180deg, var(--echo-sage), var(--echo-cream)); }
.gcw-echo-flow-wrap { position: relative; }
.gcw-echo-flow-line { position: absolute; top: 29px; left: 8%; right: 8%; height: 2px; background: linear-gradient(90deg, transparent, var(--echo-green-light), var(--echo-green), var(--echo-green-light), transparent); z-index: 0; }
.gcw-echo-flow { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; }
.gcw-echo-flow-item { text-align: center; }
.gcw-echo-flow-num { width: 56px; height: 56px; border-radius: 50%; background: var(--echo-white); border: 2px solid var(--echo-green); color: var(--echo-green-dark); font-size: 19px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; box-shadow: var(--echo-shadow-md); }
.gcw-echo-flow-item p { font-size: 13px; color: var(--echo-muted); font-weight: 400; margin: 0; }

/* ============== NOTE CALLOUTS (ABI, Echo, Spirometry, Onsite Lab) ============== */
.gcw-echo-notes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 50px; }
.gcw-echo-note { display: flex; align-items: flex-start; gap: 16px; background: var(--echo-paper); border-left: 4px solid var(--echo-green); border-radius: 16px; padding: 24px 28px; box-shadow: var(--echo-shadow-sm); }
.gcw-echo-note:only-child { margin-top: 50px; }
.gcw-echo-notes .gcw-echo-note { margin-top: 0; }
.gcw-echo-note-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--echo-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-echo-note-icon svg { width: 19px; height: 19px; color: var(--echo-green); }
.gcw-echo-note p { font-size: 14px; color: var(--echo-ink); font-weight: 400; margin: 0; line-height: 1.7; }
.gcw-echo-note strong { color: var(--echo-green-dark); font-weight: 700; }

/* Amber "important" variant (Onsite Laboratory Services responsibility notice) */
.gcw-echo-important { display: flex; align-items: flex-start; gap: 16px; background: var(--echo-amber-bg); border-left: 4px solid var(--echo-amber); border-radius: 16px; padding: 26px 28px; }
.gcw-echo-important-icon { width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,0.5); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-echo-important-icon svg { width: 19px; height: 19px; color: var(--echo-amber); }
.gcw-echo-important p { font-size: 14px; color: #6E4E20; font-weight: 400; margin: 0; line-height: 1.75; }
.gcw-echo-important strong { font-weight: 700; }

/* ============== LAB PARTNER CARDS (Onsite Laboratory Services only) ============== */
.gcw-echo-partners-section { background: linear-gradient(180deg, var(--echo-sage), var(--echo-cream)); }
.gcw-echo-partners-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; margin-bottom: 32px; }
.gcw-echo-partner-card { background: var(--echo-paper); border-radius: 22px; padding: 36px 32px; box-shadow: var(--echo-shadow-sm); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.gcw-echo-partner-card:hover { transform: translateY(-5px); box-shadow: var(--echo-shadow-md); }
.gcw-echo-partner-icon { width: 52px; height: 52px; border-radius: 15px; background: var(--echo-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.gcw-echo-partner-icon svg { width: 24px; height: 24px; color: var(--echo-green); }
.gcw-echo-partner-card h3 { font-size: 19px; font-weight: 700; color: var(--echo-green-deep); margin: 0 0 10px; }
.gcw-echo-partner-card p { font-size: 14px; color: var(--echo-muted); font-weight: 400; margin: 0; line-height: 1.7; }

/* ============== "GOOD FOR" CHECKLIST (Same-Day Appointments only) ============== */
.gcw-echo-good-section { background: linear-gradient(180deg, var(--echo-sage), var(--echo-cream)); }
.gcw-echo-good-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.gcw-echo-good-item { display: flex; align-items: flex-start; gap: 12px; background: var(--echo-paper); border-radius: 14px; padding: 18px 20px; box-shadow: var(--echo-shadow-sm); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.gcw-echo-good-item:hover { transform: translateY(-4px); box-shadow: var(--echo-shadow-md); }
.gcw-echo-good-icon { width: 30px; height: 30px; border-radius: 50%; background: var(--echo-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-echo-good-icon svg { width: 14px; height: 14px; color: var(--echo-green); }
.gcw-echo-good-item p { font-size: 13.5px; color: var(--echo-ink); font-weight: 400; margin: 0; line-height: 1.5; padding-top: 3px; }

/* ============== FAQ ACCORDION ============== */
.gcw-echo-faq-section { background: var(--echo-sage); }
.gcw-echo-accordion { display: flex; flex-direction: column; gap: 14px; }
.gcw-echo-item { background: var(--echo-paper); border-radius: 16px; box-shadow: var(--echo-shadow-sm); overflow: hidden; border: 1.5px solid transparent; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.gcw-echo-item.gcw-echo-active-item { border-color: var(--echo-green-light); box-shadow: var(--echo-shadow-md); }
.gcw-echo-trigger { width: 100%; display: flex; align-items: center; gap: 16px; padding: 21px 25px; background: transparent; border: none; font-family: inherit; text-align: left; cursor: pointer; color: inherit; }
.gcw-echo-trigger:hover, .gcw-echo-trigger:focus, .gcw-echo-trigger:active, .gcw-echo-trigger:focus-visible { background: var(--echo-sage) !important; color: inherit !important; }
.gcw-echo-trigger h3 { flex: 1; font-size: 15.5px; font-weight: 500; margin: 0; color: var(--echo-ink); }
.gcw-echo-plus { width: 28px; height: 28px; border-radius: 50%; background: var(--echo-sage); color: var(--echo-green-dark); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: transform 0.25s ease, background 0.25s ease; }
.gcw-echo-trigger[aria-expanded="true"] .gcw-echo-plus { transform: rotate(45deg); background: var(--echo-green-dark); color: #fff; }
.gcw-echo-plus svg { width: 13px; height: 13px; }
.gcw-echo-answer { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.gcw-echo-answer.gcw-echo-open { max-height: 400px; }
.gcw-echo-answer-inner { padding: 0 25px 24px; font-size: 14px; color: var(--echo-muted); font-weight: 400; max-width: 720px; line-height: 1.8; }

/* ============== CLOSING ============== */
.gcw-echo-closing { position: relative; text-align: center; background: linear-gradient(150deg, var(--echo-green-deep), var(--echo-green-dark) 55%, #2C4020); border-radius: 28px; padding: 42px 40px; color: var(--echo-white); overflow: hidden; }
.gcw-echo-closing-glow { position: absolute; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.2), transparent 70%); bottom: -150px; left: -90px; }
.gcw-echo-closing-glow-2 { position: absolute; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.16), transparent 70%); top: -100px; right: -60px; }
.gcw-echo-closing > * { position: relative; z-index: 1; }
.gcw-echo-closing h2 { color: #fff; font-size: 27px; font-weight: 700; margin: 0 0 10px; letter-spacing: -0.02em; }
.gcw-echo-closing p { font-size: 14.5px; color: rgba(255,255,255,0.74); font-weight: 300; margin: 0 0 24px; max-width: 480px; margin-left: auto; margin-right: auto; }
.gcw-echo-closing p.gcw-echo-closing-note { margin-top: -14px; }
.gcw-echo-btn-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.gcw-echo-btn { display: inline-flex; align-items: center; gap: 9px; padding: 16px 32px; border-radius: 999px; font-weight: 600; font-size: 14px; text-decoration: none; transition: transform 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s ease; }
.gcw-echo-btn svg { width: 15px; height: 15px; }
.gcw-echo-btn:hover { transform: translateY(-3px) scale(1.015); }
.gcw-echo-btn-primary { background: var(--echo-white); color: var(--echo-green-deep); box-shadow: var(--echo-shadow-lg), inset 0 1px 0 rgba(255,255,255,0.6); }
.gcw-echo-btn-secondary { background: rgba(255,255,255,0.06); backdrop-filter: blur(10px); color: var(--echo-white); border: 1.5px solid rgba(255,255,255,0.35); }
.gcw-echo-btn-secondary:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.1); }

/* ============== RESPONSIVE ============== */
@media (max-width: 900px) {
  .gcw-echo-hero-grid { grid-template-columns: 1fr; padding-top: 74px; }
  .gcw-echo-hero-art { display: none; }
  .gcw-echo-trustbar-row { grid-template-columns: 1fr; }
  .gcw-echo-trust-item { border-left: none; border-top: 1px solid rgba(255,255,255,0.1); }
  .gcw-echo-trust-item:first-child { border-top: none; }
  .gcw-echo-reasons-grid,
  .gcw-echo-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .gcw-echo-flow { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .gcw-echo-flow-line { display: none; }
  .gcw-echo-notes { grid-template-columns: 1fr; }
  .gcw-echo-partners-grid { grid-template-columns: 1fr; }
  .gcw-echo-good-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .gcw-echo-section { padding: 62px 0; }
  .gcw-echo-section-head h2 { font-size: 26px; }
  .gcw-echo-reasons-grid,
  .gcw-echo-cat-grid,
  .gcw-echo-flow,
  .gcw-echo-good-grid { grid-template-columns: 1fr; }
  .gcw-echo-note { flex-direction: column; }
  .gcw-echo-important { flex-direction: column; }
  .gcw-echo-closing { padding: 46px 24px; }
}


/* ================================================================
   EKG (ECG) — class prefix: .gcw-ekg
================================================================= */

.gcw-ekg {
  --ekg-green: #4F7A2F;
  --ekg-green-dark: #24371A;
  --ekg-green-deep: #16220F;
  --ekg-green-light: #9CC97A;
  --ekg-green-glow: rgba(156,201,122,0.35);
  --ekg-sage: #EEF3E7;
  --ekg-sage-line: #D7E3CB;
  --ekg-cream: #FBF6EC;
  --ekg-paper: #FFFFFF;
  --ekg-amber: #C77E2A;
  --ekg-amber-bg: #FBF0DC;
  --ekg-ink: #1D2318;
  --ekg-muted: #5B6152;
  --ekg-white: #FFFFFF;
  --ekg-focus: #1B2A14;
  --ekg-shadow-sm: 0 2px 10px rgba(22,34,15,0.07);
  --ekg-shadow-md: 0 18px 40px -16px rgba(22,34,15,0.2);
  --ekg-shadow-lg: 0 34px 70px -22px rgba(22,34,15,0.3);
  font-family: 'Poppins', sans-serif;
  color: var(--ekg-ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--ekg-cream);
  overflow-x: hidden;
}
.gcw-ekg * { box-sizing: border-box; }
.gcw-ekg :focus-visible { outline: 2px solid var(--ekg-focus); outline-offset: 3px; border-radius: 3px; }
.gcw-ekg a { color: var(--ekg-green); }
.gcw-ekg-shell { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.gcw-ekg-section { padding: 92px 0; }

/* ============== ANIMATIONS ============== */
@keyframes gcw-ekg-fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gcw-ekg-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
.gcw-ekg-fade-1 { animation: gcw-ekg-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) both; }
.gcw-ekg-fade-2 { animation: gcw-ekg-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.12s both; }
.gcw-ekg-fade-3 { animation: gcw-ekg-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.24s both; }
@media (prefers-reduced-motion: reduce) {
  .gcw-ekg-fade-1, .gcw-ekg-fade-2, .gcw-ekg-fade-3 { animation: none; }
  .gcw-ekg-orb { animation: none !important; }
}

/* ============== EYEBROW / SECTION HEAD ============== */
.gcw-ekg-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ekg-green); margin-bottom: 16px; }
.gcw-ekg-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ekg-green); box-shadow: 0 0 0 4px rgba(79,122,47,0.14); }
.gcw-ekg-eyebrow.gcw-ekg-eyebrow-light { color: var(--ekg-green-light); }
.gcw-ekg-eyebrow.gcw-ekg-eyebrow-light::before { background: var(--ekg-green-light); box-shadow: 0 0 0 4px rgba(156,201,122,0.18); }

.gcw-ekg-section-head { max-width: 640px; margin: 0 0 48px; }
.gcw-ekg-section-head.gcw-ekg-center { margin-left: auto; margin-right: auto; text-align: center; }
.gcw-ekg-section-head.gcw-ekg-center .gcw-ekg-eyebrow { justify-content: center; }
.gcw-ekg-section-head h2 { font-size: 33px; font-weight: 700; color: var(--ekg-green-deep); margin: 0 0 12px; letter-spacing: -0.02em; line-height: 1.2; }
.gcw-ekg-section-head p { font-size: 15px; color: var(--ekg-muted); margin: 0; font-weight: 400; }

/* ============== HERO ============== */
.gcw-ekg-hero { position: relative; background: linear-gradient(165deg, var(--ekg-green-deep) 0%, var(--ekg-green-dark) 50%, #2C4020 100%); color: var(--ekg-white); overflow: hidden; }
.gcw-ekg-hero-noise { position: absolute; inset: 0; opacity: 0.045; background-image: radial-gradient(circle, #fff 1px, transparent 1px); background-size: 26px 26px; }
.gcw-ekg-hero-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.24), transparent 70%); top: -180px; right: -140px; filter: blur(6px); }
.gcw-ekg-hero-glow-2 { position: absolute; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(79,122,47,0.3), transparent 70%); bottom: -140px; left: -100px; filter: blur(8px); }
.gcw-ekg-orb { position: absolute; border-radius: 50%; filter: blur(1px); animation: gcw-ekg-float 8s ease-in-out infinite; }
.gcw-ekg-orb-1 { width: 7px; height: 7px; background: var(--ekg-green-light); top: 22%; left: 8%; box-shadow: 0 0 18px 4px var(--ekg-green-glow); animation-delay: 0s; }
.gcw-ekg-orb-2 { width: 5px; height: 5px; background: var(--ekg-green-light); top: 68%; left: 18%; box-shadow: 0 0 14px 3px var(--ekg-green-glow); animation-delay: 2.5s; }
.gcw-ekg-orb-3 { width: 9px; height: 9px; background: var(--ekg-green-light); top: 34%; right: 12%; box-shadow: 0 0 22px 5px var(--ekg-green-glow); animation-delay: 1.2s; }

.gcw-ekg-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 50px; align-items: center; padding: 100px 0 68px; }
.gcw-ekg-hero h1 { color: #fff; font-size: clamp(34px, 4.6vw, 52px); font-weight: 700; margin: 0 0 14px; letter-spacing: -0.025em; line-height: 1.12; }
.gcw-ekg-hero-tagline { font-size: 17px; color: var(--ekg-green-light); font-weight: 400; margin: 0 0 20px; font-style: italic; }
.gcw-ekg-hero-sub { font-size: 16px; color: rgba(255,255,255,0.78); font-weight: 300; max-width: 500px; margin: 0; line-height: 1.8; }

.gcw-ekg-hero-art { position: relative; display: flex; align-items: center; justify-content: center; height: 340px; }
.gcw-ekg-hero-dots { position: absolute; width: 200px; height: 200px; top: -10px; right: -20px; background-image: radial-gradient(circle, rgba(255,255,255,0.25) 1.5px, transparent 1.5px); background-size: 16px 16px; z-index: 0; }
.gcw-ekg-hero-photo-card { position: relative; z-index: 1; width: 280px; height: 320px; border-radius: 28px; padding: 5px; background: linear-gradient(150deg, rgba(255,255,255,0.3), rgba(255,255,255,0.03)); box-shadow: 0 40px 80px -24px rgba(0,0,0,0.55), 0 0 80px -20px var(--ekg-green-glow); }
.gcw-ekg-hero-photo-inner { width: 100%; height: 100%; border-radius: 24px; overflow: hidden; }
.gcw-ekg-hero-photo-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gcw-ekg-hero-stat-card { position: absolute; left: -34px; bottom: 26px; z-index: 2; display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.1); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(255,255,255,0.22); border-radius: 16px; padding: 14px 18px; box-shadow: 0 24px 50px -20px rgba(0,0,0,0.5); }
.gcw-ekg-hero-stat-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(150deg, var(--ekg-green-light), var(--ekg-green)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-ekg-hero-stat-icon svg { width: 17px; height: 17px; color: #fff; }
.gcw-ekg-hero-stat-text strong { display: block; font-size: 13.5px; font-weight: 600; color: #fff; }
.gcw-ekg-hero-stat-text span { font-size: 11px; color: rgba(255,255,255,0.6); font-weight: 300; }
.gcw-ekg-hero-badge-top { position: absolute; top: -16px; right: -16px; z-index: 2; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(150deg, var(--ekg-green), var(--ekg-green-dark)); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 24px -8px rgba(18,32,11,0.6), 0 0 0 4px var(--ekg-green-deep); }
.gcw-ekg-hero-badge-top svg { width: 22px; height: 22px; color: #fff; }

/* ============== GLASS TRUST BAR ============== */
.gcw-ekg-trustbar-inner { background: rgba(255,255,255,0.06); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border-top: 1px solid rgba(255,255,255,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); position: relative; z-index: 1; }
.gcw-ekg-trustbar-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.gcw-ekg-trust-item { display: flex; align-items: center; gap: 14px; padding: 28px 22px; border-left: 1px solid rgba(255,255,255,0.1); transition: background 0.25s ease; }
.gcw-ekg-trust-item:hover { background: rgba(255,255,255,0.04); }
.gcw-ekg-trust-item:first-child { border-left: none; }
.gcw-ekg-trust-icon { width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(150deg, rgba(156,201,122,0.18), rgba(255,255,255,0.04)); border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-ekg-trust-icon svg { width: 19px; height: 19px; color: var(--ekg-green-light); }
.gcw-ekg-trust-item h4 { font-size: 13.5px; font-weight: 600; color: #fff; margin: 0 0 2px; }
.gcw-ekg-trust-item p { font-size: 12px; color: rgba(255,255,255,0.62); margin: 0; font-weight: 300; }

/* ============== REASONS GRID (parallel points — CCM, EKG, Echo, Spirometry) ============== */
.gcw-ekg-reasons-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gcw-ekg-reason { position: relative; background: var(--ekg-paper); border-radius: 18px; padding: 24px 22px; box-shadow: var(--ekg-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-ekg-reason::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--ekg-green), var(--ekg-green-light)); opacity: 0.85; }
.gcw-ekg-reason:hover { transform: translateY(-5px); box-shadow: var(--ekg-shadow-md); }
.gcw-ekg-reason-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--ekg-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-ekg-reason-icon svg { width: 19px; height: 19px; color: var(--ekg-green); }
.gcw-ekg-reason p { font-size: 14px; color: var(--ekg-ink); font-weight: 400; margin: 0; line-height: 1.65; }
/* larger card variant used for smaller reason counts (e.g. CCM's 5 reasons) */
.gcw-ekg-reason.gcw-ekg-reason-lg { padding: 30px 26px; }
.gcw-ekg-reason.gcw-ekg-reason-lg::before { height: 4px; }
.gcw-ekg-reason.gcw-ekg-reason-lg p { font-size: 14px; }

/* ============== CATEGORY CARDS (body-area categories — General Ultrasound only) ============== */
.gcw-ekg-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gcw-ekg-cat-card { position: relative; background: var(--ekg-paper); border-radius: 20px; padding: 28px 26px; box-shadow: var(--ekg-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-ekg-cat-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--ekg-green), var(--ekg-green-light)); opacity: 0.85; }
.gcw-ekg-cat-card:hover { transform: translateY(-6px); box-shadow: var(--ekg-shadow-lg); }
.gcw-ekg-cat-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--ekg-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-ekg-cat-icon svg { width: 19px; height: 19px; color: var(--ekg-green); }
.gcw-ekg-cat-card h3 { font-size: 16.5px; font-weight: 600; color: var(--ekg-green-deep); margin: 0 0 14px; }
.gcw-ekg-cat-list { list-style: none; margin: 0; padding: 0; }
.gcw-ekg-cat-list li { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 13px; color: var(--ekg-ink); font-weight: 400; line-height: 1.5; }
.gcw-ekg-cat-list li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--ekg-green); flex-shrink: 0; margin-top: 7px; }

/* ============== PROCESS FLOW ("What to Expect" — all pages, column count varies) ============== */
.gcw-ekg-flow-section { background: linear-gradient(180deg, var(--ekg-sage), var(--ekg-cream)); }
.gcw-ekg-flow-wrap { position: relative; }
.gcw-ekg-flow-line { position: absolute; top: 29px; left: 8%; right: 8%; height: 2px; background: linear-gradient(90deg, transparent, var(--ekg-green-light), var(--ekg-green), var(--ekg-green-light), transparent); z-index: 0; }
.gcw-ekg-flow { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.gcw-ekg-flow-item { text-align: center; }
.gcw-ekg-flow-num { width: 56px; height: 56px; border-radius: 50%; background: var(--ekg-white); border: 2px solid var(--ekg-green); color: var(--ekg-green-dark); font-size: 19px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; box-shadow: var(--ekg-shadow-md); }
.gcw-ekg-flow-item p { font-size: 13px; color: var(--ekg-muted); font-weight: 400; margin: 0; }

/* ============== NOTE CALLOUTS (ABI, Echo, Spirometry, Onsite Lab) ============== */
.gcw-ekg-notes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 50px; }
.gcw-ekg-note { display: flex; align-items: flex-start; gap: 16px; background: var(--ekg-paper); border-left: 4px solid var(--ekg-green); border-radius: 16px; padding: 24px 28px; box-shadow: var(--ekg-shadow-sm); }
.gcw-ekg-note:only-child { margin-top: 50px; }
.gcw-ekg-notes .gcw-ekg-note { margin-top: 0; }
.gcw-ekg-note-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--ekg-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-ekg-note-icon svg { width: 19px; height: 19px; color: var(--ekg-green); }
.gcw-ekg-note p { font-size: 14px; color: var(--ekg-ink); font-weight: 400; margin: 0; line-height: 1.7; }
.gcw-ekg-note strong { color: var(--ekg-green-dark); font-weight: 700; }

/* Amber "important" variant (Onsite Laboratory Services responsibility notice) */
.gcw-ekg-important { display: flex; align-items: flex-start; gap: 16px; background: var(--ekg-amber-bg); border-left: 4px solid var(--ekg-amber); border-radius: 16px; padding: 26px 28px; }
.gcw-ekg-important-icon { width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,0.5); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-ekg-important-icon svg { width: 19px; height: 19px; color: var(--ekg-amber); }
.gcw-ekg-important p { font-size: 14px; color: #6E4E20; font-weight: 400; margin: 0; line-height: 1.75; }
.gcw-ekg-important strong { font-weight: 700; }

/* ============== LAB PARTNER CARDS (Onsite Laboratory Services only) ============== */
.gcw-ekg-partners-section { background: linear-gradient(180deg, var(--ekg-sage), var(--ekg-cream)); }
.gcw-ekg-partners-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; margin-bottom: 32px; }
.gcw-ekg-partner-card { background: var(--ekg-paper); border-radius: 22px; padding: 36px 32px; box-shadow: var(--ekg-shadow-sm); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.gcw-ekg-partner-card:hover { transform: translateY(-5px); box-shadow: var(--ekg-shadow-md); }
.gcw-ekg-partner-icon { width: 52px; height: 52px; border-radius: 15px; background: var(--ekg-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.gcw-ekg-partner-icon svg { width: 24px; height: 24px; color: var(--ekg-green); }
.gcw-ekg-partner-card h3 { font-size: 19px; font-weight: 700; color: var(--ekg-green-deep); margin: 0 0 10px; }
.gcw-ekg-partner-card p { font-size: 14px; color: var(--ekg-muted); font-weight: 400; margin: 0; line-height: 1.7; }

/* ============== "GOOD FOR" CHECKLIST (Same-Day Appointments only) ============== */
.gcw-ekg-good-section { background: linear-gradient(180deg, var(--ekg-sage), var(--ekg-cream)); }
.gcw-ekg-good-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.gcw-ekg-good-item { display: flex; align-items: flex-start; gap: 12px; background: var(--ekg-paper); border-radius: 14px; padding: 18px 20px; box-shadow: var(--ekg-shadow-sm); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.gcw-ekg-good-item:hover { transform: translateY(-4px); box-shadow: var(--ekg-shadow-md); }
.gcw-ekg-good-icon { width: 30px; height: 30px; border-radius: 50%; background: var(--ekg-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-ekg-good-icon svg { width: 14px; height: 14px; color: var(--ekg-green); }
.gcw-ekg-good-item p { font-size: 13.5px; color: var(--ekg-ink); font-weight: 400; margin: 0; line-height: 1.5; padding-top: 3px; }

/* ============== FAQ ACCORDION ============== */
.gcw-ekg-faq-section { background: var(--ekg-sage); }
.gcw-ekg-accordion { display: flex; flex-direction: column; gap: 14px; }
.gcw-ekg-item { background: var(--ekg-paper); border-radius: 16px; box-shadow: var(--ekg-shadow-sm); overflow: hidden; border: 1.5px solid transparent; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.gcw-ekg-item.gcw-ekg-active-item { border-color: var(--ekg-green-light); box-shadow: var(--ekg-shadow-md); }
.gcw-ekg-trigger { width: 100%; display: flex; align-items: center; gap: 16px; padding: 21px 25px; background: transparent; border: none; font-family: inherit; text-align: left; cursor: pointer; color: inherit; }
.gcw-ekg-trigger:hover, .gcw-ekg-trigger:focus, .gcw-ekg-trigger:active, .gcw-ekg-trigger:focus-visible { background: var(--ekg-sage) !important; color: inherit !important; }
.gcw-ekg-trigger h3 { flex: 1; font-size: 15.5px; font-weight: 500; margin: 0; color: var(--ekg-ink); }
.gcw-ekg-plus { width: 28px; height: 28px; border-radius: 50%; background: var(--ekg-sage); color: var(--ekg-green-dark); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: transform 0.25s ease, background 0.25s ease; }
.gcw-ekg-trigger[aria-expanded="true"] .gcw-ekg-plus { transform: rotate(45deg); background: var(--ekg-green-dark); color: #fff; }
.gcw-ekg-plus svg { width: 13px; height: 13px; }
.gcw-ekg-answer { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.gcw-ekg-answer.gcw-ekg-open { max-height: 400px; }
.gcw-ekg-answer-inner { padding: 0 25px 24px; font-size: 14px; color: var(--ekg-muted); font-weight: 400; max-width: 720px; line-height: 1.8; }

/* ============== CLOSING ============== */
.gcw-ekg-closing { position: relative; text-align: center; background: linear-gradient(150deg, var(--ekg-green-deep), var(--ekg-green-dark) 55%, #2C4020); border-radius: 28px; padding: 42px 40px; color: var(--ekg-white); overflow: hidden; }
.gcw-ekg-closing-glow { position: absolute; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.2), transparent 70%); bottom: -150px; left: -90px; }
.gcw-ekg-closing-glow-2 { position: absolute; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.16), transparent 70%); top: -100px; right: -60px; }
.gcw-ekg-closing > * { position: relative; z-index: 1; }
.gcw-ekg-closing h2 { color: #fff; font-size: 27px; font-weight: 700; margin: 0 0 10px; letter-spacing: -0.02em; }
.gcw-ekg-closing p { font-size: 14.5px; color: rgba(255,255,255,0.74); font-weight: 300; margin: 0 0 24px; max-width: 480px; margin-left: auto; margin-right: auto; }
.gcw-ekg-closing p.gcw-ekg-closing-note { margin-top: -14px; }
.gcw-ekg-btn-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.gcw-ekg-btn { display: inline-flex; align-items: center; gap: 9px; padding: 16px 32px; border-radius: 999px; font-weight: 600; font-size: 14px; text-decoration: none; transition: transform 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s ease; }
.gcw-ekg-btn svg { width: 15px; height: 15px; }
.gcw-ekg-btn:hover { transform: translateY(-3px) scale(1.015); }
.gcw-ekg-btn-primary { background: var(--ekg-white); color: var(--ekg-green-deep); box-shadow: var(--ekg-shadow-lg), inset 0 1px 0 rgba(255,255,255,0.6); }
.gcw-ekg-btn-secondary { background: rgba(255,255,255,0.06); backdrop-filter: blur(10px); color: var(--ekg-white); border: 1.5px solid rgba(255,255,255,0.35); }
.gcw-ekg-btn-secondary:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.1); }

/* ============== RESPONSIVE ============== */
@media (max-width: 900px) {
  .gcw-ekg-hero-grid { grid-template-columns: 1fr; padding-top: 74px; }
  .gcw-ekg-hero-art { display: none; }
  .gcw-ekg-trustbar-row { grid-template-columns: 1fr; }
  .gcw-ekg-trust-item { border-left: none; border-top: 1px solid rgba(255,255,255,0.1); }
  .gcw-ekg-trust-item:first-child { border-top: none; }
  .gcw-ekg-reasons-grid,
  .gcw-ekg-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .gcw-ekg-flow { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .gcw-ekg-flow-line { display: none; }
  .gcw-ekg-notes { grid-template-columns: 1fr; }
  .gcw-ekg-partners-grid { grid-template-columns: 1fr; }
  .gcw-ekg-good-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .gcw-ekg-section { padding: 62px 0; }
  .gcw-ekg-section-head h2 { font-size: 26px; }
  .gcw-ekg-reasons-grid,
  .gcw-ekg-cat-grid,
  .gcw-ekg-flow,
  .gcw-ekg-good-grid { grid-template-columns: 1fr; }
  .gcw-ekg-note { flex-direction: column; }
  .gcw-ekg-important { flex-direction: column; }
  .gcw-ekg-closing { padding: 46px 24px; }
}


/* ================================================================
   General Ultrasound — class prefix: .gcw-us
================================================================= */

.gcw-us {
  --us-green: #4F7A2F;
  --us-green-dark: #24371A;
  --us-green-deep: #16220F;
  --us-green-light: #9CC97A;
  --us-green-glow: rgba(156,201,122,0.35);
  --us-sage: #EEF3E7;
  --us-sage-line: #D7E3CB;
  --us-cream: #FBF6EC;
  --us-paper: #FFFFFF;
  --us-amber: #C77E2A;
  --us-amber-bg: #FBF0DC;
  --us-ink: #1D2318;
  --us-muted: #5B6152;
  --us-white: #FFFFFF;
  --us-focus: #1B2A14;
  --us-shadow-sm: 0 2px 10px rgba(22,34,15,0.07);
  --us-shadow-md: 0 18px 40px -16px rgba(22,34,15,0.2);
  --us-shadow-lg: 0 34px 70px -22px rgba(22,34,15,0.3);
  font-family: 'Poppins', sans-serif;
  color: var(--us-ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--us-cream);
  overflow-x: hidden;
}
.gcw-us * { box-sizing: border-box; }
.gcw-us :focus-visible { outline: 2px solid var(--us-focus); outline-offset: 3px; border-radius: 3px; }
.gcw-us a { color: var(--us-green); }
.gcw-us-shell { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.gcw-us-section { padding: 92px 0; }

/* ============== ANIMATIONS ============== */
@keyframes gcw-us-fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gcw-us-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
.gcw-us-fade-1 { animation: gcw-us-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) both; }
.gcw-us-fade-2 { animation: gcw-us-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.12s both; }
.gcw-us-fade-3 { animation: gcw-us-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.24s both; }
@media (prefers-reduced-motion: reduce) {
  .gcw-us-fade-1, .gcw-us-fade-2, .gcw-us-fade-3 { animation: none; }
  .gcw-us-orb { animation: none !important; }
}

/* ============== EYEBROW / SECTION HEAD ============== */
.gcw-us-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--us-green); margin-bottom: 16px; }
.gcw-us-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--us-green); box-shadow: 0 0 0 4px rgba(79,122,47,0.14); }
.gcw-us-eyebrow.gcw-us-eyebrow-light { color: var(--us-green-light); }
.gcw-us-eyebrow.gcw-us-eyebrow-light::before { background: var(--us-green-light); box-shadow: 0 0 0 4px rgba(156,201,122,0.18); }

.gcw-us-section-head { max-width: 640px; margin: 0 0 48px; }
.gcw-us-section-head.gcw-us-center { margin-left: auto; margin-right: auto; text-align: center; }
.gcw-us-section-head.gcw-us-center .gcw-us-eyebrow { justify-content: center; }
.gcw-us-section-head h2 { font-size: 33px; font-weight: 700; color: var(--us-green-deep); margin: 0 0 12px; letter-spacing: -0.02em; line-height: 1.2; }
.gcw-us-section-head p { font-size: 15px; color: var(--us-muted); margin: 0; font-weight: 400; }

/* ============== HERO ============== */
.gcw-us-hero { position: relative; background: linear-gradient(165deg, var(--us-green-deep) 0%, var(--us-green-dark) 50%, #2C4020 100%); color: var(--us-white); overflow: hidden; }
.gcw-us-hero-noise { position: absolute; inset: 0; opacity: 0.045; background-image: radial-gradient(circle, #fff 1px, transparent 1px); background-size: 26px 26px; }
.gcw-us-hero-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.24), transparent 70%); top: -180px; right: -140px; filter: blur(6px); }
.gcw-us-hero-glow-2 { position: absolute; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(79,122,47,0.3), transparent 70%); bottom: -140px; left: -100px; filter: blur(8px); }
.gcw-us-orb { position: absolute; border-radius: 50%; filter: blur(1px); animation: gcw-us-float 8s ease-in-out infinite; }
.gcw-us-orb-1 { width: 7px; height: 7px; background: var(--us-green-light); top: 22%; left: 8%; box-shadow: 0 0 18px 4px var(--us-green-glow); animation-delay: 0s; }
.gcw-us-orb-2 { width: 5px; height: 5px; background: var(--us-green-light); top: 68%; left: 18%; box-shadow: 0 0 14px 3px var(--us-green-glow); animation-delay: 2.5s; }
.gcw-us-orb-3 { width: 9px; height: 9px; background: var(--us-green-light); top: 34%; right: 12%; box-shadow: 0 0 22px 5px var(--us-green-glow); animation-delay: 1.2s; }

.gcw-us-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 50px; align-items: center; padding: 100px 0 68px; }
.gcw-us-hero h1 { color: #fff; font-size: clamp(34px, 4.6vw, 52px); font-weight: 700; margin: 0 0 14px; letter-spacing: -0.025em; line-height: 1.12; }
.gcw-us-hero-tagline { font-size: 17px; color: var(--us-green-light); font-weight: 400; margin: 0 0 20px; font-style: italic; }
.gcw-us-hero-sub { font-size: 16px; color: rgba(255,255,255,0.78); font-weight: 300; max-width: 500px; margin: 0; line-height: 1.8; }

.gcw-us-hero-art { position: relative; display: flex; align-items: center; justify-content: center; height: 340px; }
.gcw-us-hero-dots { position: absolute; width: 200px; height: 200px; top: -10px; right: -20px; background-image: radial-gradient(circle, rgba(255,255,255,0.25) 1.5px, transparent 1.5px); background-size: 16px 16px; z-index: 0; }
.gcw-us-hero-photo-card { position: relative; z-index: 1; width: 280px; height: 320px; border-radius: 28px; padding: 5px; background: linear-gradient(150deg, rgba(255,255,255,0.3), rgba(255,255,255,0.03)); box-shadow: 0 40px 80px -24px rgba(0,0,0,0.55), 0 0 80px -20px var(--us-green-glow); }
.gcw-us-hero-photo-inner { width: 100%; height: 100%; border-radius: 24px; overflow: hidden; }
.gcw-us-hero-photo-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gcw-us-hero-stat-card { position: absolute; left: -34px; bottom: 26px; z-index: 2; display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.1); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(255,255,255,0.22); border-radius: 16px; padding: 14px 18px; box-shadow: 0 24px 50px -20px rgba(0,0,0,0.5); }
.gcw-us-hero-stat-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(150deg, var(--us-green-light), var(--us-green)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-us-hero-stat-icon svg { width: 17px; height: 17px; color: #fff; }
.gcw-us-hero-stat-text strong { display: block; font-size: 13.5px; font-weight: 600; color: #fff; }
.gcw-us-hero-stat-text span { font-size: 11px; color: rgba(255,255,255,0.6); font-weight: 300; }
.gcw-us-hero-badge-top { position: absolute; top: -16px; right: -16px; z-index: 2; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(150deg, var(--us-green), var(--us-green-dark)); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 24px -8px rgba(18,32,11,0.6), 0 0 0 4px var(--us-green-deep); }
.gcw-us-hero-badge-top svg { width: 22px; height: 22px; color: #fff; }

/* ============== GLASS TRUST BAR ============== */
.gcw-us-trustbar-inner { background: rgba(255,255,255,0.06); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border-top: 1px solid rgba(255,255,255,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); position: relative; z-index: 1; }
.gcw-us-trustbar-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.gcw-us-trust-item { display: flex; align-items: center; gap: 14px; padding: 28px 22px; border-left: 1px solid rgba(255,255,255,0.1); transition: background 0.25s ease; }
.gcw-us-trust-item:hover { background: rgba(255,255,255,0.04); }
.gcw-us-trust-item:first-child { border-left: none; }
.gcw-us-trust-icon { width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(150deg, rgba(156,201,122,0.18), rgba(255,255,255,0.04)); border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-us-trust-icon svg { width: 19px; height: 19px; color: var(--us-green-light); }
.gcw-us-trust-item h4 { font-size: 13.5px; font-weight: 600; color: #fff; margin: 0 0 2px; }
.gcw-us-trust-item p { font-size: 12px; color: rgba(255,255,255,0.62); margin: 0; font-weight: 300; }

/* ============== REASONS GRID (parallel points — CCM, EKG, Echo, Spirometry) ============== */
.gcw-us-reasons-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gcw-us-reason { position: relative; background: var(--us-paper); border-radius: 18px; padding: 24px 22px; box-shadow: var(--us-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-us-reason::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--us-green), var(--us-green-light)); opacity: 0.85; }
.gcw-us-reason:hover { transform: translateY(-5px); box-shadow: var(--us-shadow-md); }
.gcw-us-reason-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--us-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-us-reason-icon svg { width: 19px; height: 19px; color: var(--us-green); }
.gcw-us-reason p { font-size: 14px; color: var(--us-ink); font-weight: 400; margin: 0; line-height: 1.65; }
/* larger card variant used for smaller reason counts (e.g. CCM's 5 reasons) */
.gcw-us-reason.gcw-us-reason-lg { padding: 30px 26px; }
.gcw-us-reason.gcw-us-reason-lg::before { height: 4px; }
.gcw-us-reason.gcw-us-reason-lg p { font-size: 14px; }

/* ============== CATEGORY CARDS (body-area categories — General Ultrasound only) ============== */
.gcw-us-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gcw-us-cat-card { position: relative; background: var(--us-paper); border-radius: 20px; padding: 28px 26px; box-shadow: var(--us-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-us-cat-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--us-green), var(--us-green-light)); opacity: 0.85; }
.gcw-us-cat-card:hover { transform: translateY(-6px); box-shadow: var(--us-shadow-lg); }
.gcw-us-cat-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--us-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-us-cat-icon svg { width: 19px; height: 19px; color: var(--us-green); }
.gcw-us-cat-card h3 { font-size: 16.5px; font-weight: 600; color: var(--us-green-deep); margin: 0 0 14px; }
.gcw-us-cat-list { list-style: none; margin: 0; padding: 0; }
.gcw-us-cat-list li { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 13px; color: var(--us-ink); font-weight: 400; line-height: 1.5; }
.gcw-us-cat-list li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--us-green); flex-shrink: 0; margin-top: 7px; }

/* ============== PROCESS FLOW ("What to Expect" — all pages, column count varies) ============== */
.gcw-us-flow-section { background: linear-gradient(180deg, var(--us-sage), var(--us-cream)); }
.gcw-us-flow-wrap { position: relative; }
.gcw-us-flow-line { position: absolute; top: 29px; left: 8%; right: 8%; height: 2px; background: linear-gradient(90deg, transparent, var(--us-green-light), var(--us-green), var(--us-green-light), transparent); z-index: 0; }
.gcw-us-flow { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.gcw-us-flow-item { text-align: center; }
.gcw-us-flow-num { width: 56px; height: 56px; border-radius: 50%; background: var(--us-white); border: 2px solid var(--us-green); color: var(--us-green-dark); font-size: 19px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; box-shadow: var(--us-shadow-md); }
.gcw-us-flow-item p { font-size: 13px; color: var(--us-muted); font-weight: 400; margin: 0; }

/* ============== NOTE CALLOUTS (ABI, Echo, Spirometry, Onsite Lab) ============== */
.gcw-us-notes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 50px; }
.gcw-us-note { display: flex; align-items: flex-start; gap: 16px; background: var(--us-paper); border-left: 4px solid var(--us-green); border-radius: 16px; padding: 24px 28px; box-shadow: var(--us-shadow-sm); }
.gcw-us-note:only-child { margin-top: 50px; }
.gcw-us-notes .gcw-us-note { margin-top: 0; }
.gcw-us-note-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--us-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-us-note-icon svg { width: 19px; height: 19px; color: var(--us-green); }
.gcw-us-note p { font-size: 14px; color: var(--us-ink); font-weight: 400; margin: 0; line-height: 1.7; }
.gcw-us-note strong { color: var(--us-green-dark); font-weight: 700; }

/* Amber "important" variant (Onsite Laboratory Services responsibility notice) */
.gcw-us-important { display: flex; align-items: flex-start; gap: 16px; background: var(--us-amber-bg); border-left: 4px solid var(--us-amber); border-radius: 16px; padding: 26px 28px; }
.gcw-us-important-icon { width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,0.5); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-us-important-icon svg { width: 19px; height: 19px; color: var(--us-amber); }
.gcw-us-important p { font-size: 14px; color: #6E4E20; font-weight: 400; margin: 0; line-height: 1.75; }
.gcw-us-important strong { font-weight: 700; }

/* ============== LAB PARTNER CARDS (Onsite Laboratory Services only) ============== */
.gcw-us-partners-section { background: linear-gradient(180deg, var(--us-sage), var(--us-cream)); }
.gcw-us-partners-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; margin-bottom: 32px; }
.gcw-us-partner-card { background: var(--us-paper); border-radius: 22px; padding: 36px 32px; box-shadow: var(--us-shadow-sm); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.gcw-us-partner-card:hover { transform: translateY(-5px); box-shadow: var(--us-shadow-md); }
.gcw-us-partner-icon { width: 52px; height: 52px; border-radius: 15px; background: var(--us-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.gcw-us-partner-icon svg { width: 24px; height: 24px; color: var(--us-green); }
.gcw-us-partner-card h3 { font-size: 19px; font-weight: 700; color: var(--us-green-deep); margin: 0 0 10px; }
.gcw-us-partner-card p { font-size: 14px; color: var(--us-muted); font-weight: 400; margin: 0; line-height: 1.7; }

/* ============== "GOOD FOR" CHECKLIST (Same-Day Appointments only) ============== */
.gcw-us-good-section { background: linear-gradient(180deg, var(--us-sage), var(--us-cream)); }
.gcw-us-good-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.gcw-us-good-item { display: flex; align-items: flex-start; gap: 12px; background: var(--us-paper); border-radius: 14px; padding: 18px 20px; box-shadow: var(--us-shadow-sm); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.gcw-us-good-item:hover { transform: translateY(-4px); box-shadow: var(--us-shadow-md); }
.gcw-us-good-icon { width: 30px; height: 30px; border-radius: 50%; background: var(--us-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-us-good-icon svg { width: 14px; height: 14px; color: var(--us-green); }
.gcw-us-good-item p { font-size: 13.5px; color: var(--us-ink); font-weight: 400; margin: 0; line-height: 1.5; padding-top: 3px; }

/* ============== FAQ ACCORDION ============== */
.gcw-us-faq-section { background: var(--us-sage); }
.gcw-us-accordion { display: flex; flex-direction: column; gap: 14px; }
.gcw-us-item { background: var(--us-paper); border-radius: 16px; box-shadow: var(--us-shadow-sm); overflow: hidden; border: 1.5px solid transparent; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.gcw-us-item.gcw-us-active-item { border-color: var(--us-green-light); box-shadow: var(--us-shadow-md); }
.gcw-us-trigger { width: 100%; display: flex; align-items: center; gap: 16px; padding: 21px 25px; background: transparent; border: none; font-family: inherit; text-align: left; cursor: pointer; color: inherit; }
.gcw-us-trigger:hover, .gcw-us-trigger:focus, .gcw-us-trigger:active, .gcw-us-trigger:focus-visible { background: var(--us-sage) !important; color: inherit !important; }
.gcw-us-trigger h3 { flex: 1; font-size: 15.5px; font-weight: 500; margin: 0; color: var(--us-ink); }
.gcw-us-plus { width: 28px; height: 28px; border-radius: 50%; background: var(--us-sage); color: var(--us-green-dark); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: transform 0.25s ease, background 0.25s ease; }
.gcw-us-trigger[aria-expanded="true"] .gcw-us-plus { transform: rotate(45deg); background: var(--us-green-dark); color: #fff; }
.gcw-us-plus svg { width: 13px; height: 13px; }
.gcw-us-answer { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.gcw-us-answer.gcw-us-open { max-height: 400px; }
.gcw-us-answer-inner { padding: 0 25px 24px; font-size: 14px; color: var(--us-muted); font-weight: 400; max-width: 720px; line-height: 1.8; }

/* ============== CLOSING ============== */
.gcw-us-closing { position: relative; text-align: center; background: linear-gradient(150deg, var(--us-green-deep), var(--us-green-dark) 55%, #2C4020); border-radius: 28px; padding: 42px 40px; color: var(--us-white); overflow: hidden; }
.gcw-us-closing-glow { position: absolute; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.2), transparent 70%); bottom: -150px; left: -90px; }
.gcw-us-closing-glow-2 { position: absolute; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.16), transparent 70%); top: -100px; right: -60px; }
.gcw-us-closing > * { position: relative; z-index: 1; }
.gcw-us-closing h2 { color: #fff; font-size: 27px; font-weight: 700; margin: 0 0 10px; letter-spacing: -0.02em; }
.gcw-us-closing p { font-size: 14.5px; color: rgba(255,255,255,0.74); font-weight: 300; margin: 0 0 24px; max-width: 480px; margin-left: auto; margin-right: auto; }
.gcw-us-closing p.gcw-us-closing-note { margin-top: -14px; }
.gcw-us-btn-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.gcw-us-btn { display: inline-flex; align-items: center; gap: 9px; padding: 16px 32px; border-radius: 999px; font-weight: 600; font-size: 14px; text-decoration: none; transition: transform 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s ease; }
.gcw-us-btn svg { width: 15px; height: 15px; }
.gcw-us-btn:hover { transform: translateY(-3px) scale(1.015); }
.gcw-us-btn-primary { background: var(--us-white); color: var(--us-green-deep); box-shadow: var(--us-shadow-lg), inset 0 1px 0 rgba(255,255,255,0.6); }
.gcw-us-btn-secondary { background: rgba(255,255,255,0.06); backdrop-filter: blur(10px); color: var(--us-white); border: 1.5px solid rgba(255,255,255,0.35); }
.gcw-us-btn-secondary:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.1); }

/* ============== RESPONSIVE ============== */
@media (max-width: 900px) {
  .gcw-us-hero-grid { grid-template-columns: 1fr; padding-top: 74px; }
  .gcw-us-hero-art { display: none; }
  .gcw-us-trustbar-row { grid-template-columns: 1fr; }
  .gcw-us-trust-item { border-left: none; border-top: 1px solid rgba(255,255,255,0.1); }
  .gcw-us-trust-item:first-child { border-top: none; }
  .gcw-us-reasons-grid,
  .gcw-us-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .gcw-us-flow { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .gcw-us-flow-line { display: none; }
  .gcw-us-notes { grid-template-columns: 1fr; }
  .gcw-us-partners-grid { grid-template-columns: 1fr; }
  .gcw-us-good-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .gcw-us-section { padding: 62px 0; }
  .gcw-us-section-head h2 { font-size: 26px; }
  .gcw-us-reasons-grid,
  .gcw-us-cat-grid,
  .gcw-us-flow,
  .gcw-us-good-grid { grid-template-columns: 1fr; }
  .gcw-us-note { flex-direction: column; }
  .gcw-us-important { flex-direction: column; }
  .gcw-us-closing { padding: 46px 24px; }
}


/* ================================================================
   Onsite Laboratory Services — class prefix: .gcw-lab
================================================================= */

.gcw-lab {
  --lab-green: #4F7A2F;
  --lab-green-dark: #24371A;
  --lab-green-deep: #16220F;
  --lab-green-light: #9CC97A;
  --lab-green-glow: rgba(156,201,122,0.35);
  --lab-sage: #EEF3E7;
  --lab-sage-line: #D7E3CB;
  --lab-cream: #FBF6EC;
  --lab-paper: #FFFFFF;
  --lab-amber: #C77E2A;
  --lab-amber-bg: #FBF0DC;
  --lab-ink: #1D2318;
  --lab-muted: #5B6152;
  --lab-white: #FFFFFF;
  --lab-focus: #1B2A14;
  --lab-shadow-sm: 0 2px 10px rgba(22,34,15,0.07);
  --lab-shadow-md: 0 18px 40px -16px rgba(22,34,15,0.2);
  --lab-shadow-lg: 0 34px 70px -22px rgba(22,34,15,0.3);
  font-family: 'Poppins', sans-serif;
  color: var(--lab-ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--lab-cream);
  overflow-x: hidden;
}
.gcw-lab * { box-sizing: border-box; }
.gcw-lab :focus-visible { outline: 2px solid var(--lab-focus); outline-offset: 3px; border-radius: 3px; }
.gcw-lab a { color: var(--lab-green); }
.gcw-lab-shell { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.gcw-lab-section { padding: 92px 0; }

/* ============== ANIMATIONS ============== */
@keyframes gcw-lab-fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gcw-lab-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
.gcw-lab-fade-1 { animation: gcw-lab-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) both; }
.gcw-lab-fade-2 { animation: gcw-lab-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.12s both; }
.gcw-lab-fade-3 { animation: gcw-lab-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.24s both; }
@media (prefers-reduced-motion: reduce) {
  .gcw-lab-fade-1, .gcw-lab-fade-2, .gcw-lab-fade-3 { animation: none; }
  .gcw-lab-orb { animation: none !important; }
}

/* ============== EYEBROW / SECTION HEAD ============== */
.gcw-lab-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lab-green); margin-bottom: 16px; }
.gcw-lab-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--lab-green); box-shadow: 0 0 0 4px rgba(79,122,47,0.14); }
.gcw-lab-eyebrow.gcw-lab-eyebrow-light { color: var(--lab-green-light); }
.gcw-lab-eyebrow.gcw-lab-eyebrow-light::before { background: var(--lab-green-light); box-shadow: 0 0 0 4px rgba(156,201,122,0.18); }

.gcw-lab-section-head { max-width: 640px; margin: 0 0 48px; }
.gcw-lab-section-head.gcw-lab-center { margin-left: auto; margin-right: auto; text-align: center; }
.gcw-lab-section-head.gcw-lab-center .gcw-lab-eyebrow { justify-content: center; }
.gcw-lab-section-head h2 { font-size: 33px; font-weight: 700; color: var(--lab-green-deep); margin: 0 0 12px; letter-spacing: -0.02em; line-height: 1.2; }
.gcw-lab-section-head p { font-size: 15px; color: var(--lab-muted); margin: 0; font-weight: 400; }

/* ============== HERO ============== */
.gcw-lab-hero { position: relative; background: linear-gradient(165deg, var(--lab-green-deep) 0%, var(--lab-green-dark) 50%, #2C4020 100%); color: var(--lab-white); overflow: hidden; }
.gcw-lab-hero-noise { position: absolute; inset: 0; opacity: 0.045; background-image: radial-gradient(circle, #fff 1px, transparent 1px); background-size: 26px 26px; }
.gcw-lab-hero-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.24), transparent 70%); top: -180px; right: -140px; filter: blur(6px); }
.gcw-lab-hero-glow-2 { position: absolute; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(79,122,47,0.3), transparent 70%); bottom: -140px; left: -100px; filter: blur(8px); }
.gcw-lab-orb { position: absolute; border-radius: 50%; filter: blur(1px); animation: gcw-lab-float 8s ease-in-out infinite; }
.gcw-lab-orb-1 { width: 7px; height: 7px; background: var(--lab-green-light); top: 22%; left: 8%; box-shadow: 0 0 18px 4px var(--lab-green-glow); animation-delay: 0s; }
.gcw-lab-orb-2 { width: 5px; height: 5px; background: var(--lab-green-light); top: 68%; left: 18%; box-shadow: 0 0 14px 3px var(--lab-green-glow); animation-delay: 2.5s; }
.gcw-lab-orb-3 { width: 9px; height: 9px; background: var(--lab-green-light); top: 34%; right: 12%; box-shadow: 0 0 22px 5px var(--lab-green-glow); animation-delay: 1.2s; }

.gcw-lab-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 50px; align-items: center; padding: 100px 0 68px; }
.gcw-lab-hero h1 { color: #fff; font-size: clamp(34px, 4.6vw, 52px); font-weight: 700; margin: 0 0 14px; letter-spacing: -0.025em; line-height: 1.12; }
.gcw-lab-hero-tagline { font-size: 17px; color: var(--lab-green-light); font-weight: 400; margin: 0 0 20px; font-style: italic; }
.gcw-lab-hero-sub { font-size: 16px; color: rgba(255,255,255,0.78); font-weight: 300; max-width: 500px; margin: 0; line-height: 1.8; }

.gcw-lab-hero-art { position: relative; display: flex; align-items: center; justify-content: center; height: 340px; }
.gcw-lab-hero-dots { position: absolute; width: 200px; height: 200px; top: -10px; right: -20px; background-image: radial-gradient(circle, rgba(255,255,255,0.25) 1.5px, transparent 1.5px); background-size: 16px 16px; z-index: 0; }
.gcw-lab-hero-photo-card { position: relative; z-index: 1; width: 280px; height: 320px; border-radius: 28px; padding: 5px; background: linear-gradient(150deg, rgba(255,255,255,0.3), rgba(255,255,255,0.03)); box-shadow: 0 40px 80px -24px rgba(0,0,0,0.55), 0 0 80px -20px var(--lab-green-glow); }
.gcw-lab-hero-photo-inner { width: 100%; height: 100%; border-radius: 24px; overflow: hidden; }
.gcw-lab-hero-photo-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gcw-lab-hero-stat-card { position: absolute; left: -34px; bottom: 26px; z-index: 2; display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.1); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(255,255,255,0.22); border-radius: 16px; padding: 14px 18px; box-shadow: 0 24px 50px -20px rgba(0,0,0,0.5); }
.gcw-lab-hero-stat-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(150deg, var(--lab-green-light), var(--lab-green)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-lab-hero-stat-icon svg { width: 17px; height: 17px; color: #fff; }
.gcw-lab-hero-stat-text strong { display: block; font-size: 13.5px; font-weight: 600; color: #fff; }
.gcw-lab-hero-stat-text span { font-size: 11px; color: rgba(255,255,255,0.6); font-weight: 300; }
.gcw-lab-hero-badge-top { position: absolute; top: -16px; right: -16px; z-index: 2; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(150deg, var(--lab-green), var(--lab-green-dark)); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 24px -8px rgba(18,32,11,0.6), 0 0 0 4px var(--lab-green-deep); }
.gcw-lab-hero-badge-top svg { width: 22px; height: 22px; color: #fff; }

/* ============== GLASS TRUST BAR ============== */
.gcw-lab-trustbar-inner { background: rgba(255,255,255,0.06); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border-top: 1px solid rgba(255,255,255,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); position: relative; z-index: 1; }
.gcw-lab-trustbar-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.gcw-lab-trust-item { display: flex; align-items: center; gap: 14px; padding: 28px 22px; border-left: 1px solid rgba(255,255,255,0.1); transition: background 0.25s ease; }
.gcw-lab-trust-item:hover { background: rgba(255,255,255,0.04); }
.gcw-lab-trust-item:first-child { border-left: none; }
.gcw-lab-trust-icon { width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(150deg, rgba(156,201,122,0.18), rgba(255,255,255,0.04)); border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-lab-trust-icon svg { width: 19px; height: 19px; color: var(--lab-green-light); }
.gcw-lab-trust-item h4 { font-size: 13.5px; font-weight: 600; color: #fff; margin: 0 0 2px; }
.gcw-lab-trust-item p { font-size: 12px; color: rgba(255,255,255,0.62); margin: 0; font-weight: 300; }

/* ============== REASONS GRID (parallel points — CCM, EKG, Echo, Spirometry) ============== */
.gcw-lab-reasons-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gcw-lab-reason { position: relative; background: var(--lab-paper); border-radius: 18px; padding: 24px 22px; box-shadow: var(--lab-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-lab-reason::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--lab-green), var(--lab-green-light)); opacity: 0.85; }
.gcw-lab-reason:hover { transform: translateY(-5px); box-shadow: var(--lab-shadow-md); }
.gcw-lab-reason-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--lab-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-lab-reason-icon svg { width: 19px; height: 19px; color: var(--lab-green); }
.gcw-lab-reason p { font-size: 14px; color: var(--lab-ink); font-weight: 400; margin: 0; line-height: 1.65; }
/* larger card variant used for smaller reason counts (e.g. CCM's 5 reasons) */
.gcw-lab-reason.gcw-lab-reason-lg { padding: 30px 26px; }
.gcw-lab-reason.gcw-lab-reason-lg::before { height: 4px; }
.gcw-lab-reason.gcw-lab-reason-lg p { font-size: 14px; }

/* ============== CATEGORY CARDS (body-area categories — General Ultrasound only) ============== */
.gcw-lab-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gcw-lab-cat-card { position: relative; background: var(--lab-paper); border-radius: 20px; padding: 28px 26px; box-shadow: var(--lab-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-lab-cat-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--lab-green), var(--lab-green-light)); opacity: 0.85; }
.gcw-lab-cat-card:hover { transform: translateY(-6px); box-shadow: var(--lab-shadow-lg); }
.gcw-lab-cat-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--lab-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-lab-cat-icon svg { width: 19px; height: 19px; color: var(--lab-green); }
.gcw-lab-cat-card h3 { font-size: 16.5px; font-weight: 600; color: var(--lab-green-deep); margin: 0 0 14px; }
.gcw-lab-cat-list { list-style: none; margin: 0; padding: 0; }
.gcw-lab-cat-list li { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 13px; color: var(--lab-ink); font-weight: 400; line-height: 1.5; }
.gcw-lab-cat-list li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--lab-green); flex-shrink: 0; margin-top: 7px; }

/* ============== PROCESS FLOW ("What to Expect" — all pages, column count varies) ============== */
.gcw-lab-flow-section { background: linear-gradient(180deg, var(--lab-sage), var(--lab-cream)); }
.gcw-lab-flow-wrap { position: relative; }
.gcw-lab-flow-line { position: absolute; top: 29px; left: 8%; right: 8%; height: 2px; background: linear-gradient(90deg, transparent, var(--lab-green-light), var(--lab-green), var(--lab-green-light), transparent); z-index: 0; }
.gcw-lab-flow { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.gcw-lab-flow-item { text-align: center; }
.gcw-lab-flow-num { width: 56px; height: 56px; border-radius: 50%; background: var(--lab-white); border: 2px solid var(--lab-green); color: var(--lab-green-dark); font-size: 19px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; box-shadow: var(--lab-shadow-md); }
.gcw-lab-flow-item p { font-size: 13px; color: var(--lab-muted); font-weight: 400; margin: 0; }

/* ============== NOTE CALLOUTS (ABI, Echo, Spirometry, Onsite Lab) ============== */
.gcw-lab-notes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 50px; }
.gcw-lab-note { display: flex; align-items: flex-start; gap: 16px; background: var(--lab-paper); border-left: 4px solid var(--lab-green); border-radius: 16px; padding: 24px 28px; box-shadow: var(--lab-shadow-sm); }
.gcw-lab-note:only-child { margin-top: 50px; }
.gcw-lab-notes .gcw-lab-note { margin-top: 0; }
.gcw-lab-note-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--lab-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-lab-note-icon svg { width: 19px; height: 19px; color: var(--lab-green); }
.gcw-lab-note p { font-size: 14px; color: var(--lab-ink); font-weight: 400; margin: 0; line-height: 1.7; }
.gcw-lab-note strong { color: var(--lab-green-dark); font-weight: 700; }

/* Amber "important" variant (Onsite Laboratory Services responsibility notice) */
.gcw-lab-important { display: flex; align-items: flex-start; gap: 16px; background: var(--lab-amber-bg); border-left: 4px solid var(--lab-amber); border-radius: 16px; padding: 26px 28px; }
.gcw-lab-important-icon { width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,0.5); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-lab-important-icon svg { width: 19px; height: 19px; color: var(--lab-amber); }
.gcw-lab-important p { font-size: 14px; color: #6E4E20; font-weight: 400; margin: 0; line-height: 1.75; }
.gcw-lab-important strong { font-weight: 700; }

/* ============== LAB PARTNER CARDS (Onsite Laboratory Services only) ============== */
.gcw-lab-partners-section { background: linear-gradient(180deg, var(--lab-sage), var(--lab-cream)); }
.gcw-lab-partners-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; margin-bottom: 32px; }
.gcw-lab-partner-card { background: var(--lab-paper); border-radius: 22px; padding: 36px 32px; box-shadow: var(--lab-shadow-sm); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.gcw-lab-partner-card:hover { transform: translateY(-5px); box-shadow: var(--lab-shadow-md); }
.gcw-lab-partner-icon { width: 52px; height: 52px; border-radius: 15px; background: var(--lab-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.gcw-lab-partner-icon svg { width: 24px; height: 24px; color: var(--lab-green); }
.gcw-lab-partner-card h3 { font-size: 19px; font-weight: 700; color: var(--lab-green-deep); margin: 0 0 10px; }
.gcw-lab-partner-card p { font-size: 14px; color: var(--lab-muted); font-weight: 400; margin: 0; line-height: 1.7; }

/* ============== "GOOD FOR" CHECKLIST (Same-Day Appointments only) ============== */
.gcw-lab-good-section { background: linear-gradient(180deg, var(--lab-sage), var(--lab-cream)); }
.gcw-lab-good-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.gcw-lab-good-item { display: flex; align-items: flex-start; gap: 12px; background: var(--lab-paper); border-radius: 14px; padding: 18px 20px; box-shadow: var(--lab-shadow-sm); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.gcw-lab-good-item:hover { transform: translateY(-4px); box-shadow: var(--lab-shadow-md); }
.gcw-lab-good-icon { width: 30px; height: 30px; border-radius: 50%; background: var(--lab-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-lab-good-icon svg { width: 14px; height: 14px; color: var(--lab-green); }
.gcw-lab-good-item p { font-size: 13.5px; color: var(--lab-ink); font-weight: 400; margin: 0; line-height: 1.5; padding-top: 3px; }

/* ============== FAQ ACCORDION ============== */
.gcw-lab-faq-section { background: var(--lab-sage); }
.gcw-lab-accordion { display: flex; flex-direction: column; gap: 14px; }
.gcw-lab-item { background: var(--lab-paper); border-radius: 16px; box-shadow: var(--lab-shadow-sm); overflow: hidden; border: 1.5px solid transparent; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.gcw-lab-item.gcw-lab-active-item { border-color: var(--lab-green-light); box-shadow: var(--lab-shadow-md); }
.gcw-lab-trigger { width: 100%; display: flex; align-items: center; gap: 16px; padding: 21px 25px; background: transparent; border: none; font-family: inherit; text-align: left; cursor: pointer; color: inherit; }
.gcw-lab-trigger:hover, .gcw-lab-trigger:focus, .gcw-lab-trigger:active, .gcw-lab-trigger:focus-visible { background: var(--lab-sage) !important; color: inherit !important; }
.gcw-lab-trigger h3 { flex: 1; font-size: 15.5px; font-weight: 500; margin: 0; color: var(--lab-ink); }
.gcw-lab-plus { width: 28px; height: 28px; border-radius: 50%; background: var(--lab-sage); color: var(--lab-green-dark); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: transform 0.25s ease, background 0.25s ease; }
.gcw-lab-trigger[aria-expanded="true"] .gcw-lab-plus { transform: rotate(45deg); background: var(--lab-green-dark); color: #fff; }
.gcw-lab-plus svg { width: 13px; height: 13px; }
.gcw-lab-answer { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.gcw-lab-answer.gcw-lab-open { max-height: 400px; }
.gcw-lab-answer-inner { padding: 0 25px 24px; font-size: 14px; color: var(--lab-muted); font-weight: 400; max-width: 720px; line-height: 1.8; }

/* ============== CLOSING ============== */
.gcw-lab-closing { position: relative; text-align: center; background: linear-gradient(150deg, var(--lab-green-deep), var(--lab-green-dark) 55%, #2C4020); border-radius: 28px; padding: 42px 40px; color: var(--lab-white); overflow: hidden; }
.gcw-lab-closing-glow { position: absolute; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.2), transparent 70%); bottom: -150px; left: -90px; }
.gcw-lab-closing-glow-2 { position: absolute; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.16), transparent 70%); top: -100px; right: -60px; }
.gcw-lab-closing > * { position: relative; z-index: 1; }
.gcw-lab-closing h2 { color: #fff; font-size: 27px; font-weight: 700; margin: 0 0 10px; letter-spacing: -0.02em; }
.gcw-lab-closing p { font-size: 14.5px; color: rgba(255,255,255,0.74); font-weight: 300; margin: 0 0 24px; max-width: 480px; margin-left: auto; margin-right: auto; }
.gcw-lab-closing p.gcw-lab-closing-note { margin-top: -14px; }
.gcw-lab-btn-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.gcw-lab-btn { display: inline-flex; align-items: center; gap: 9px; padding: 16px 32px; border-radius: 999px; font-weight: 600; font-size: 14px; text-decoration: none; transition: transform 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s ease; }
.gcw-lab-btn svg { width: 15px; height: 15px; }
.gcw-lab-btn:hover { transform: translateY(-3px) scale(1.015); }
.gcw-lab-btn-primary { background: var(--lab-white); color: var(--lab-green-deep); box-shadow: var(--lab-shadow-lg), inset 0 1px 0 rgba(255,255,255,0.6); }
.gcw-lab-btn-secondary { background: rgba(255,255,255,0.06); backdrop-filter: blur(10px); color: var(--lab-white); border: 1.5px solid rgba(255,255,255,0.35); }
.gcw-lab-btn-secondary:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.1); }

/* ============== RESPONSIVE ============== */
@media (max-width: 900px) {
  .gcw-lab-hero-grid { grid-template-columns: 1fr; padding-top: 74px; }
  .gcw-lab-hero-art { display: none; }
  .gcw-lab-trustbar-row { grid-template-columns: 1fr; }
  .gcw-lab-trust-item { border-left: none; border-top: 1px solid rgba(255,255,255,0.1); }
  .gcw-lab-trust-item:first-child { border-top: none; }
  .gcw-lab-reasons-grid,
  .gcw-lab-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .gcw-lab-flow { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .gcw-lab-flow-line { display: none; }
  .gcw-lab-notes { grid-template-columns: 1fr; }
  .gcw-lab-partners-grid { grid-template-columns: 1fr; }
  .gcw-lab-good-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .gcw-lab-section { padding: 62px 0; }
  .gcw-lab-section-head h2 { font-size: 26px; }
  .gcw-lab-reasons-grid,
  .gcw-lab-cat-grid,
  .gcw-lab-flow,
  .gcw-lab-good-grid { grid-template-columns: 1fr; }
  .gcw-lab-note { flex-direction: column; }
  .gcw-lab-important { flex-direction: column; }
  .gcw-lab-closing { padding: 46px 24px; }
}


/* ================================================================
   Same-Day Appointments — class prefix: .gcw-sd
================================================================= */

.gcw-sd {
  --sd-green: #4F7A2F;
  --sd-green-dark: #24371A;
  --sd-green-deep: #16220F;
  --sd-green-light: #9CC97A;
  --sd-green-glow: rgba(156,201,122,0.35);
  --sd-sage: #EEF3E7;
  --sd-sage-line: #D7E3CB;
  --sd-cream: #FBF6EC;
  --sd-paper: #FFFFFF;
  --sd-amber: #C77E2A;
  --sd-amber-bg: #FBF0DC;
  --sd-ink: #1D2318;
  --sd-muted: #5B6152;
  --sd-white: #FFFFFF;
  --sd-focus: #1B2A14;
  --sd-shadow-sm: 0 2px 10px rgba(22,34,15,0.07);
  --sd-shadow-md: 0 18px 40px -16px rgba(22,34,15,0.2);
  --sd-shadow-lg: 0 34px 70px -22px rgba(22,34,15,0.3);
  font-family: 'Poppins', sans-serif;
  color: var(--sd-ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--sd-cream);
  overflow-x: hidden;
}
.gcw-sd * { box-sizing: border-box; }
.gcw-sd :focus-visible { outline: 2px solid var(--sd-focus); outline-offset: 3px; border-radius: 3px; }
.gcw-sd a { color: var(--sd-green); }
.gcw-sd-shell { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.gcw-sd-section { padding: 92px 0; }

/* ============== ANIMATIONS ============== */
@keyframes gcw-sd-fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gcw-sd-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
.gcw-sd-fade-1 { animation: gcw-sd-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) both; }
.gcw-sd-fade-2 { animation: gcw-sd-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.12s both; }
.gcw-sd-fade-3 { animation: gcw-sd-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.24s both; }
@media (prefers-reduced-motion: reduce) {
  .gcw-sd-fade-1, .gcw-sd-fade-2, .gcw-sd-fade-3 { animation: none; }
  .gcw-sd-orb { animation: none !important; }
}

/* ============== EYEBROW / SECTION HEAD ============== */
.gcw-sd-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sd-green); margin-bottom: 16px; }
.gcw-sd-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--sd-green); box-shadow: 0 0 0 4px rgba(79,122,47,0.14); }
.gcw-sd-eyebrow.gcw-sd-eyebrow-light { color: var(--sd-green-light); }
.gcw-sd-eyebrow.gcw-sd-eyebrow-light::before { background: var(--sd-green-light); box-shadow: 0 0 0 4px rgba(156,201,122,0.18); }

.gcw-sd-section-head { max-width: 640px; margin: 0 0 48px; }
.gcw-sd-section-head.gcw-sd-center { margin-left: auto; margin-right: auto; text-align: center; }
.gcw-sd-section-head.gcw-sd-center .gcw-sd-eyebrow { justify-content: center; }
.gcw-sd-section-head h2 { font-size: 33px; font-weight: 700; color: var(--sd-green-deep); margin: 0 0 12px; letter-spacing: -0.02em; line-height: 1.2; }
.gcw-sd-section-head p { font-size: 15px; color: var(--sd-muted); margin: 0; font-weight: 400; }

/* ============== HERO ============== */
.gcw-sd-hero { position: relative; background: linear-gradient(165deg, var(--sd-green-deep) 0%, var(--sd-green-dark) 50%, #2C4020 100%); color: var(--sd-white); overflow: hidden; }
.gcw-sd-hero-noise { position: absolute; inset: 0; opacity: 0.045; background-image: radial-gradient(circle, #fff 1px, transparent 1px); background-size: 26px 26px; }
.gcw-sd-hero-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.24), transparent 70%); top: -180px; right: -140px; filter: blur(6px); }
.gcw-sd-hero-glow-2 { position: absolute; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(79,122,47,0.3), transparent 70%); bottom: -140px; left: -100px; filter: blur(8px); }
.gcw-sd-orb { position: absolute; border-radius: 50%; filter: blur(1px); animation: gcw-sd-float 8s ease-in-out infinite; }
.gcw-sd-orb-1 { width: 7px; height: 7px; background: var(--sd-green-light); top: 22%; left: 8%; box-shadow: 0 0 18px 4px var(--sd-green-glow); animation-delay: 0s; }
.gcw-sd-orb-2 { width: 5px; height: 5px; background: var(--sd-green-light); top: 68%; left: 18%; box-shadow: 0 0 14px 3px var(--sd-green-glow); animation-delay: 2.5s; }
.gcw-sd-orb-3 { width: 9px; height: 9px; background: var(--sd-green-light); top: 34%; right: 12%; box-shadow: 0 0 22px 5px var(--sd-green-glow); animation-delay: 1.2s; }

.gcw-sd-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 50px; align-items: center; padding: 100px 0 68px; }
.gcw-sd-hero h1 { color: #fff; font-size: clamp(34px, 4.6vw, 52px); font-weight: 700; margin: 0 0 14px; letter-spacing: -0.025em; line-height: 1.12; }
.gcw-sd-hero-tagline { font-size: 17px; color: var(--sd-green-light); font-weight: 400; margin: 0 0 20px; font-style: italic; }
.gcw-sd-hero-sub { font-size: 16px; color: rgba(255,255,255,0.78); font-weight: 300; max-width: 500px; margin: 0; line-height: 1.8; }

.gcw-sd-hero-art { position: relative; display: flex; align-items: center; justify-content: center; height: 340px; }
.gcw-sd-hero-dots { position: absolute; width: 200px; height: 200px; top: -10px; right: -20px; background-image: radial-gradient(circle, rgba(255,255,255,0.25) 1.5px, transparent 1.5px); background-size: 16px 16px; z-index: 0; }
.gcw-sd-hero-photo-card { position: relative; z-index: 1; width: 280px; height: 320px; border-radius: 28px; padding: 5px; background: linear-gradient(150deg, rgba(255,255,255,0.3), rgba(255,255,255,0.03)); box-shadow: 0 40px 80px -24px rgba(0,0,0,0.55), 0 0 80px -20px var(--sd-green-glow); }
.gcw-sd-hero-photo-inner { width: 100%; height: 100%; border-radius: 24px; overflow: hidden; }
.gcw-sd-hero-photo-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gcw-sd-hero-stat-card { position: absolute; left: -34px; bottom: 26px; z-index: 2; display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.1); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(255,255,255,0.22); border-radius: 16px; padding: 14px 18px; box-shadow: 0 24px 50px -20px rgba(0,0,0,0.5); }
.gcw-sd-hero-stat-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(150deg, var(--sd-green-light), var(--sd-green)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-sd-hero-stat-icon svg { width: 17px; height: 17px; color: #fff; }
.gcw-sd-hero-stat-text strong { display: block; font-size: 13.5px; font-weight: 600; color: #fff; }
.gcw-sd-hero-stat-text span { font-size: 11px; color: rgba(255,255,255,0.6); font-weight: 300; }
.gcw-sd-hero-badge-top { position: absolute; top: -16px; right: -16px; z-index: 2; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(150deg, var(--sd-green), var(--sd-green-dark)); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 24px -8px rgba(18,32,11,0.6), 0 0 0 4px var(--sd-green-deep); }
.gcw-sd-hero-badge-top svg { width: 22px; height: 22px; color: #fff; }

/* ============== GLASS TRUST BAR ============== */
.gcw-sd-trustbar-inner { background: rgba(255,255,255,0.06); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border-top: 1px solid rgba(255,255,255,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); position: relative; z-index: 1; }
.gcw-sd-trustbar-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.gcw-sd-trust-item { display: flex; align-items: center; gap: 14px; padding: 28px 22px; border-left: 1px solid rgba(255,255,255,0.1); transition: background 0.25s ease; }
.gcw-sd-trust-item:hover { background: rgba(255,255,255,0.04); }
.gcw-sd-trust-item:first-child { border-left: none; }
.gcw-sd-trust-icon { width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(150deg, rgba(156,201,122,0.18), rgba(255,255,255,0.04)); border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-sd-trust-icon svg { width: 19px; height: 19px; color: var(--sd-green-light); }
.gcw-sd-trust-item h4 { font-size: 13.5px; font-weight: 600; color: #fff; margin: 0 0 2px; }
.gcw-sd-trust-item p { font-size: 12px; color: rgba(255,255,255,0.62); margin: 0; font-weight: 300; }

/* ============== REASONS GRID (parallel points — CCM, EKG, Echo, Spirometry) ============== */
.gcw-sd-reasons-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gcw-sd-reason { position: relative; background: var(--sd-paper); border-radius: 18px; padding: 24px 22px; box-shadow: var(--sd-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-sd-reason::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--sd-green), var(--sd-green-light)); opacity: 0.85; }
.gcw-sd-reason:hover { transform: translateY(-5px); box-shadow: var(--sd-shadow-md); }
.gcw-sd-reason-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--sd-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-sd-reason-icon svg { width: 19px; height: 19px; color: var(--sd-green); }
.gcw-sd-reason p { font-size: 14px; color: var(--sd-ink); font-weight: 400; margin: 0; line-height: 1.65; }
/* larger card variant used for smaller reason counts (e.g. CCM's 5 reasons) */
.gcw-sd-reason.gcw-sd-reason-lg { padding: 30px 26px; }
.gcw-sd-reason.gcw-sd-reason-lg::before { height: 4px; }
.gcw-sd-reason.gcw-sd-reason-lg p { font-size: 14px; }

/* ============== CATEGORY CARDS (body-area categories — General Ultrasound only) ============== */
.gcw-sd-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gcw-sd-cat-card { position: relative; background: var(--sd-paper); border-radius: 20px; padding: 28px 26px; box-shadow: var(--sd-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-sd-cat-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--sd-green), var(--sd-green-light)); opacity: 0.85; }
.gcw-sd-cat-card:hover { transform: translateY(-6px); box-shadow: var(--sd-shadow-lg); }
.gcw-sd-cat-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--sd-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-sd-cat-icon svg { width: 19px; height: 19px; color: var(--sd-green); }
.gcw-sd-cat-card h3 { font-size: 16.5px; font-weight: 600; color: var(--sd-green-deep); margin: 0 0 14px; }
.gcw-sd-cat-list { list-style: none; margin: 0; padding: 0; }
.gcw-sd-cat-list li { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 13px; color: var(--sd-ink); font-weight: 400; line-height: 1.5; }
.gcw-sd-cat-list li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--sd-green); flex-shrink: 0; margin-top: 7px; }

/* ============== PROCESS FLOW ("What to Expect" — all pages, column count varies) ============== */
.gcw-sd-flow-section { background: linear-gradient(180deg, var(--sd-sage), var(--sd-cream)); }
.gcw-sd-flow-wrap { position: relative; }
.gcw-sd-flow-line { position: absolute; top: 29px; left: 8%; right: 8%; height: 2px; background: linear-gradient(90deg, transparent, var(--sd-green-light), var(--sd-green), var(--sd-green-light), transparent); z-index: 0; }
.gcw-sd-flow { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.gcw-sd-flow-item { text-align: center; }
.gcw-sd-flow-num { width: 56px; height: 56px; border-radius: 50%; background: var(--sd-white); border: 2px solid var(--sd-green); color: var(--sd-green-dark); font-size: 19px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; box-shadow: var(--sd-shadow-md); }
.gcw-sd-flow-item p { font-size: 13px; color: var(--sd-muted); font-weight: 400; margin: 0; }

/* ============== NOTE CALLOUTS (ABI, Echo, Spirometry, Onsite Lab) ============== */
.gcw-sd-notes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 50px; }
.gcw-sd-note { display: flex; align-items: flex-start; gap: 16px; background: var(--sd-paper); border-left: 4px solid var(--sd-green); border-radius: 16px; padding: 24px 28px; box-shadow: var(--sd-shadow-sm); }
.gcw-sd-note:only-child { margin-top: 50px; }
.gcw-sd-notes .gcw-sd-note { margin-top: 0; }
.gcw-sd-note-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--sd-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-sd-note-icon svg { width: 19px; height: 19px; color: var(--sd-green); }
.gcw-sd-note p { font-size: 14px; color: var(--sd-ink); font-weight: 400; margin: 0; line-height: 1.7; }
.gcw-sd-note strong { color: var(--sd-green-dark); font-weight: 700; }

/* Amber "important" variant (Onsite Laboratory Services responsibility notice) */
.gcw-sd-important { display: flex; align-items: flex-start; gap: 16px; background: var(--sd-amber-bg); border-left: 4px solid var(--sd-amber); border-radius: 16px; padding: 26px 28px; }
.gcw-sd-important-icon { width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,0.5); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-sd-important-icon svg { width: 19px; height: 19px; color: var(--sd-amber); }
.gcw-sd-important p { font-size: 14px; color: #6E4E20; font-weight: 400; margin: 0; line-height: 1.75; }
.gcw-sd-important strong { font-weight: 700; }

/* ============== LAB PARTNER CARDS (Onsite Laboratory Services only) ============== */
.gcw-sd-partners-section { background: linear-gradient(180deg, var(--sd-sage), var(--sd-cream)); }
.gcw-sd-partners-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; margin-bottom: 32px; }
.gcw-sd-partner-card { background: var(--sd-paper); border-radius: 22px; padding: 36px 32px; box-shadow: var(--sd-shadow-sm); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.gcw-sd-partner-card:hover { transform: translateY(-5px); box-shadow: var(--sd-shadow-md); }
.gcw-sd-partner-icon { width: 52px; height: 52px; border-radius: 15px; background: var(--sd-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.gcw-sd-partner-icon svg { width: 24px; height: 24px; color: var(--sd-green); }
.gcw-sd-partner-card h3 { font-size: 19px; font-weight: 700; color: var(--sd-green-deep); margin: 0 0 10px; }
.gcw-sd-partner-card p { font-size: 14px; color: var(--sd-muted); font-weight: 400; margin: 0; line-height: 1.7; }

/* ============== "GOOD FOR" CHECKLIST (Same-Day Appointments only) ============== */
.gcw-sd-good-section { background: linear-gradient(180deg, var(--sd-sage), var(--sd-cream)); }
.gcw-sd-good-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.gcw-sd-good-item { display: flex; align-items: flex-start; gap: 12px; background: var(--sd-paper); border-radius: 14px; padding: 18px 20px; box-shadow: var(--sd-shadow-sm); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.gcw-sd-good-item:hover { transform: translateY(-4px); box-shadow: var(--sd-shadow-md); }
.gcw-sd-good-icon { width: 30px; height: 30px; border-radius: 50%; background: var(--sd-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-sd-good-icon svg { width: 14px; height: 14px; color: var(--sd-green); }
.gcw-sd-good-item p { font-size: 13.5px; color: var(--sd-ink); font-weight: 400; margin: 0; line-height: 1.5; padding-top: 3px; }

/* ============== FAQ ACCORDION ============== */
.gcw-sd-faq-section { background: var(--sd-sage); }
.gcw-sd-accordion { display: flex; flex-direction: column; gap: 14px; }
.gcw-sd-item { background: var(--sd-paper); border-radius: 16px; box-shadow: var(--sd-shadow-sm); overflow: hidden; border: 1.5px solid transparent; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.gcw-sd-item.gcw-sd-active-item { border-color: var(--sd-green-light); box-shadow: var(--sd-shadow-md); }
.gcw-sd-trigger { width: 100%; display: flex; align-items: center; gap: 16px; padding: 21px 25px; background: transparent; border: none; font-family: inherit; text-align: left; cursor: pointer; color: inherit; }
.gcw-sd-trigger:hover, .gcw-sd-trigger:focus, .gcw-sd-trigger:active, .gcw-sd-trigger:focus-visible { background: var(--sd-sage) !important; color: inherit !important; }
.gcw-sd-trigger h3 { flex: 1; font-size: 15.5px; font-weight: 500; margin: 0; color: var(--sd-ink); }
.gcw-sd-plus { width: 28px; height: 28px; border-radius: 50%; background: var(--sd-sage); color: var(--sd-green-dark); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: transform 0.25s ease, background 0.25s ease; }
.gcw-sd-trigger[aria-expanded="true"] .gcw-sd-plus { transform: rotate(45deg); background: var(--sd-green-dark); color: #fff; }
.gcw-sd-plus svg { width: 13px; height: 13px; }
.gcw-sd-answer { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.gcw-sd-answer.gcw-sd-open { max-height: 400px; }
.gcw-sd-answer-inner { padding: 0 25px 24px; font-size: 14px; color: var(--sd-muted); font-weight: 400; max-width: 720px; line-height: 1.8; }

/* ============== CLOSING ============== */
.gcw-sd-closing { position: relative; text-align: center; background: linear-gradient(150deg, var(--sd-green-deep), var(--sd-green-dark) 55%, #2C4020); border-radius: 28px; padding: 42px 40px; color: var(--sd-white); overflow: hidden; }
.gcw-sd-closing-glow { position: absolute; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.2), transparent 70%); bottom: -150px; left: -90px; }
.gcw-sd-closing-glow-2 { position: absolute; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.16), transparent 70%); top: -100px; right: -60px; }
.gcw-sd-closing > * { position: relative; z-index: 1; }
.gcw-sd-closing h2 { color: #fff; font-size: 27px; font-weight: 700; margin: 0 0 10px; letter-spacing: -0.02em; }
.gcw-sd-closing p { font-size: 14.5px; color: rgba(255,255,255,0.74); font-weight: 300; margin: 0 0 24px; max-width: 480px; margin-left: auto; margin-right: auto; }
.gcw-sd-closing p.gcw-sd-closing-note { margin-top: -14px; }
.gcw-sd-btn-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.gcw-sd-btn { display: inline-flex; align-items: center; gap: 9px; padding: 16px 32px; border-radius: 999px; font-weight: 600; font-size: 14px; text-decoration: none; transition: transform 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s ease; }
.gcw-sd-btn svg { width: 15px; height: 15px; }
.gcw-sd-btn:hover { transform: translateY(-3px) scale(1.015); }
.gcw-sd-btn-primary { background: var(--sd-white); color: var(--sd-green-deep); box-shadow: var(--sd-shadow-lg), inset 0 1px 0 rgba(255,255,255,0.6); }
.gcw-sd-btn-secondary { background: rgba(255,255,255,0.06); backdrop-filter: blur(10px); color: var(--sd-white); border: 1.5px solid rgba(255,255,255,0.35); }
.gcw-sd-btn-secondary:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.1); }

/* ============== RESPONSIVE ============== */
@media (max-width: 900px) {
  .gcw-sd-hero-grid { grid-template-columns: 1fr; padding-top: 74px; }
  .gcw-sd-hero-art { display: none; }
  .gcw-sd-trustbar-row { grid-template-columns: 1fr; }
  .gcw-sd-trust-item { border-left: none; border-top: 1px solid rgba(255,255,255,0.1); }
  .gcw-sd-trust-item:first-child { border-top: none; }
  .gcw-sd-reasons-grid,
  .gcw-sd-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .gcw-sd-flow { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .gcw-sd-flow-line { display: none; }
  .gcw-sd-notes { grid-template-columns: 1fr; }
  .gcw-sd-partners-grid { grid-template-columns: 1fr; }
  .gcw-sd-good-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .gcw-sd-section { padding: 62px 0; }
  .gcw-sd-section-head h2 { font-size: 26px; }
  .gcw-sd-reasons-grid,
  .gcw-sd-cat-grid,
  .gcw-sd-flow,
  .gcw-sd-good-grid { grid-template-columns: 1fr; }
  .gcw-sd-note { flex-direction: column; }
  .gcw-sd-important { flex-direction: column; }
  .gcw-sd-closing { padding: 46px 24px; }
}


/* ================================================================
   Spirometry — class prefix: .gcw-spiro
================================================================= */

.gcw-spiro {
  --spiro-green: #4F7A2F;
  --spiro-green-dark: #24371A;
  --spiro-green-deep: #16220F;
  --spiro-green-light: #9CC97A;
  --spiro-green-glow: rgba(156,201,122,0.35);
  --spiro-sage: #EEF3E7;
  --spiro-sage-line: #D7E3CB;
  --spiro-cream: #FBF6EC;
  --spiro-paper: #FFFFFF;
  --spiro-amber: #C77E2A;
  --spiro-amber-bg: #FBF0DC;
  --spiro-ink: #1D2318;
  --spiro-muted: #5B6152;
  --spiro-white: #FFFFFF;
  --spiro-focus: #1B2A14;
  --spiro-shadow-sm: 0 2px 10px rgba(22,34,15,0.07);
  --spiro-shadow-md: 0 18px 40px -16px rgba(22,34,15,0.2);
  --spiro-shadow-lg: 0 34px 70px -22px rgba(22,34,15,0.3);
  font-family: 'Poppins', sans-serif;
  color: var(--spiro-ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--spiro-cream);
  overflow-x: hidden;
}
.gcw-spiro * { box-sizing: border-box; }
.gcw-spiro :focus-visible { outline: 2px solid var(--spiro-focus); outline-offset: 3px; border-radius: 3px; }
.gcw-spiro a { color: var(--spiro-green); }
.gcw-spiro-shell { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.gcw-spiro-section { padding: 92px 0; }

/* ============== ANIMATIONS ============== */
@keyframes gcw-spiro-fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gcw-spiro-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
.gcw-spiro-fade-1 { animation: gcw-spiro-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) both; }
.gcw-spiro-fade-2 { animation: gcw-spiro-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.12s both; }
.gcw-spiro-fade-3 { animation: gcw-spiro-fade-up 0.85s cubic-bezier(0.16,1,0.3,1) 0.24s both; }
@media (prefers-reduced-motion: reduce) {
  .gcw-spiro-fade-1, .gcw-spiro-fade-2, .gcw-spiro-fade-3 { animation: none; }
  .gcw-spiro-orb { animation: none !important; }
}

/* ============== EYEBROW / SECTION HEAD ============== */
.gcw-spiro-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--spiro-green); margin-bottom: 16px; }
.gcw-spiro-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--spiro-green); box-shadow: 0 0 0 4px rgba(79,122,47,0.14); }
.gcw-spiro-eyebrow.gcw-spiro-eyebrow-light { color: var(--spiro-green-light); }
.gcw-spiro-eyebrow.gcw-spiro-eyebrow-light::before { background: var(--spiro-green-light); box-shadow: 0 0 0 4px rgba(156,201,122,0.18); }

.gcw-spiro-section-head { max-width: 640px; margin: 0 0 48px; }
.gcw-spiro-section-head.gcw-spiro-center { margin-left: auto; margin-right: auto; text-align: center; }
.gcw-spiro-section-head.gcw-spiro-center .gcw-spiro-eyebrow { justify-content: center; }
.gcw-spiro-section-head h2 { font-size: 33px; font-weight: 700; color: var(--spiro-green-deep); margin: 0 0 12px; letter-spacing: -0.02em; line-height: 1.2; }
.gcw-spiro-section-head p { font-size: 15px; color: var(--spiro-muted); margin: 0; font-weight: 400; }

/* ============== HERO ============== */
.gcw-spiro-hero { position: relative; background: linear-gradient(165deg, var(--spiro-green-deep) 0%, var(--spiro-green-dark) 50%, #2C4020 100%); color: var(--spiro-white); overflow: hidden; }
.gcw-spiro-hero-noise { position: absolute; inset: 0; opacity: 0.045; background-image: radial-gradient(circle, #fff 1px, transparent 1px); background-size: 26px 26px; }
.gcw-spiro-hero-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.24), transparent 70%); top: -180px; right: -140px; filter: blur(6px); }
.gcw-spiro-hero-glow-2 { position: absolute; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(79,122,47,0.3), transparent 70%); bottom: -140px; left: -100px; filter: blur(8px); }
.gcw-spiro-orb { position: absolute; border-radius: 50%; filter: blur(1px); animation: gcw-spiro-float 8s ease-in-out infinite; }
.gcw-spiro-orb-1 { width: 7px; height: 7px; background: var(--spiro-green-light); top: 22%; left: 8%; box-shadow: 0 0 18px 4px var(--spiro-green-glow); animation-delay: 0s; }
.gcw-spiro-orb-2 { width: 5px; height: 5px; background: var(--spiro-green-light); top: 68%; left: 18%; box-shadow: 0 0 14px 3px var(--spiro-green-glow); animation-delay: 2.5s; }
.gcw-spiro-orb-3 { width: 9px; height: 9px; background: var(--spiro-green-light); top: 34%; right: 12%; box-shadow: 0 0 22px 5px var(--spiro-green-glow); animation-delay: 1.2s; }

.gcw-spiro-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 50px; align-items: center; padding: 100px 0 68px; }
.gcw-spiro-hero h1 { color: #fff; font-size: clamp(34px, 4.6vw, 52px); font-weight: 700; margin: 0 0 14px; letter-spacing: -0.025em; line-height: 1.12; }
.gcw-spiro-hero-tagline { font-size: 17px; color: var(--spiro-green-light); font-weight: 400; margin: 0 0 20px; font-style: italic; }
.gcw-spiro-hero-sub { font-size: 16px; color: rgba(255,255,255,0.78); font-weight: 300; max-width: 500px; margin: 0; line-height: 1.8; }

.gcw-spiro-hero-art { position: relative; display: flex; align-items: center; justify-content: center; height: 340px; }
.gcw-spiro-hero-dots { position: absolute; width: 200px; height: 200px; top: -10px; right: -20px; background-image: radial-gradient(circle, rgba(255,255,255,0.25) 1.5px, transparent 1.5px); background-size: 16px 16px; z-index: 0; }
.gcw-spiro-hero-photo-card { position: relative; z-index: 1; width: 280px; height: 320px; border-radius: 28px; padding: 5px; background: linear-gradient(150deg, rgba(255,255,255,0.3), rgba(255,255,255,0.03)); box-shadow: 0 40px 80px -24px rgba(0,0,0,0.55), 0 0 80px -20px var(--spiro-green-glow); }
.gcw-spiro-hero-photo-inner { width: 100%; height: 100%; border-radius: 24px; overflow: hidden; }
.gcw-spiro-hero-photo-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gcw-spiro-hero-stat-card { position: absolute; left: -34px; bottom: 26px; z-index: 2; display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.1); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(255,255,255,0.22); border-radius: 16px; padding: 14px 18px; box-shadow: 0 24px 50px -20px rgba(0,0,0,0.5); }
.gcw-spiro-hero-stat-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(150deg, var(--spiro-green-light), var(--spiro-green)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-spiro-hero-stat-icon svg { width: 17px; height: 17px; color: #fff; }
.gcw-spiro-hero-stat-text strong { display: block; font-size: 13.5px; font-weight: 600; color: #fff; }
.gcw-spiro-hero-stat-text span { font-size: 11px; color: rgba(255,255,255,0.6); font-weight: 300; }
.gcw-spiro-hero-badge-top { position: absolute; top: -16px; right: -16px; z-index: 2; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(150deg, var(--spiro-green), var(--spiro-green-dark)); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 24px -8px rgba(18,32,11,0.6), 0 0 0 4px var(--spiro-green-deep); }
.gcw-spiro-hero-badge-top svg { width: 22px; height: 22px; color: #fff; }

/* ============== GLASS TRUST BAR ============== */
.gcw-spiro-trustbar-inner { background: rgba(255,255,255,0.06); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border-top: 1px solid rgba(255,255,255,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); position: relative; z-index: 1; }
.gcw-spiro-trustbar-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.gcw-spiro-trust-item { display: flex; align-items: center; gap: 14px; padding: 28px 22px; border-left: 1px solid rgba(255,255,255,0.1); transition: background 0.25s ease; }
.gcw-spiro-trust-item:hover { background: rgba(255,255,255,0.04); }
.gcw-spiro-trust-item:first-child { border-left: none; }
.gcw-spiro-trust-icon { width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(150deg, rgba(156,201,122,0.18), rgba(255,255,255,0.04)); border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-spiro-trust-icon svg { width: 19px; height: 19px; color: var(--spiro-green-light); }
.gcw-spiro-trust-item h4 { font-size: 13.5px; font-weight: 600; color: #fff; margin: 0 0 2px; }
.gcw-spiro-trust-item p { font-size: 12px; color: rgba(255,255,255,0.62); margin: 0; font-weight: 300; }

/* ============== REASONS GRID (parallel points — CCM, EKG, Echo, Spirometry) ============== */
.gcw-spiro-reasons-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gcw-spiro-reason { position: relative; background: var(--spiro-paper); border-radius: 18px; padding: 24px 22px; box-shadow: var(--spiro-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-spiro-reason::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--spiro-green), var(--spiro-green-light)); opacity: 0.85; }
.gcw-spiro-reason:hover { transform: translateY(-5px); box-shadow: var(--spiro-shadow-md); }
.gcw-spiro-reason-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--spiro-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-spiro-reason-icon svg { width: 19px; height: 19px; color: var(--spiro-green); }
.gcw-spiro-reason p { font-size: 14px; color: var(--spiro-ink); font-weight: 400; margin: 0; line-height: 1.65; }
/* larger card variant used for smaller reason counts (e.g. CCM's 5 reasons) */
.gcw-spiro-reason.gcw-spiro-reason-lg { padding: 30px 26px; }
.gcw-spiro-reason.gcw-spiro-reason-lg::before { height: 4px; }
.gcw-spiro-reason.gcw-spiro-reason-lg p { font-size: 14px; }

/* ============== CATEGORY CARDS (body-area categories — General Ultrasound only) ============== */
.gcw-spiro-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gcw-spiro-cat-card { position: relative; background: var(--spiro-paper); border-radius: 20px; padding: 28px 26px; box-shadow: var(--spiro-shadow-sm); overflow: hidden; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s ease; }
.gcw-spiro-cat-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--spiro-green), var(--spiro-green-light)); opacity: 0.85; }
.gcw-spiro-cat-card:hover { transform: translateY(-6px); box-shadow: var(--spiro-shadow-lg); }
.gcw-spiro-cat-icon { width: 42px; height: 42px; border-radius: 12px; background: var(--spiro-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.gcw-spiro-cat-icon svg { width: 19px; height: 19px; color: var(--spiro-green); }
.gcw-spiro-cat-card h3 { font-size: 16.5px; font-weight: 600; color: var(--spiro-green-deep); margin: 0 0 14px; }
.gcw-spiro-cat-list { list-style: none; margin: 0; padding: 0; }
.gcw-spiro-cat-list li { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 13px; color: var(--spiro-ink); font-weight: 400; line-height: 1.5; }
.gcw-spiro-cat-list li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--spiro-green); flex-shrink: 0; margin-top: 7px; }

/* ============== PROCESS FLOW ("What to Expect" — all pages, column count varies) ============== */
.gcw-spiro-flow-section { background: linear-gradient(180deg, var(--spiro-sage), var(--spiro-cream)); }
.gcw-spiro-flow-wrap { position: relative; }
.gcw-spiro-flow-line { position: absolute; top: 29px; left: 8%; right: 8%; height: 2px; background: linear-gradient(90deg, transparent, var(--spiro-green-light), var(--spiro-green), var(--spiro-green-light), transparent); z-index: 0; }
.gcw-spiro-flow { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.gcw-spiro-flow-item { text-align: center; }
.gcw-spiro-flow-num { width: 56px; height: 56px; border-radius: 50%; background: var(--spiro-white); border: 2px solid var(--spiro-green); color: var(--spiro-green-dark); font-size: 19px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; box-shadow: var(--spiro-shadow-md); }
.gcw-spiro-flow-item p { font-size: 13px; color: var(--spiro-muted); font-weight: 400; margin: 0; }

/* ============== NOTE CALLOUTS (ABI, Echo, Spirometry, Onsite Lab) ============== */
.gcw-spiro-notes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 50px; }
.gcw-spiro-note { display: flex; align-items: flex-start; gap: 16px; background: var(--spiro-paper); border-left: 4px solid var(--spiro-green); border-radius: 16px; padding: 24px 28px; box-shadow: var(--spiro-shadow-sm); }
.gcw-spiro-note:only-child { margin-top: 50px; }
.gcw-spiro-notes .gcw-spiro-note { margin-top: 0; }
.gcw-spiro-note-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--spiro-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-spiro-note-icon svg { width: 19px; height: 19px; color: var(--spiro-green); }
.gcw-spiro-note p { font-size: 14px; color: var(--spiro-ink); font-weight: 400; margin: 0; line-height: 1.7; }
.gcw-spiro-note strong { color: var(--spiro-green-dark); font-weight: 700; }

/* Amber "important" variant (Onsite Laboratory Services responsibility notice) */
.gcw-spiro-important { display: flex; align-items: flex-start; gap: 16px; background: var(--spiro-amber-bg); border-left: 4px solid var(--spiro-amber); border-radius: 16px; padding: 26px 28px; }
.gcw-spiro-important-icon { width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,0.5); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-spiro-important-icon svg { width: 19px; height: 19px; color: var(--spiro-amber); }
.gcw-spiro-important p { font-size: 14px; color: #6E4E20; font-weight: 400; margin: 0; line-height: 1.75; }
.gcw-spiro-important strong { font-weight: 700; }

/* ============== LAB PARTNER CARDS (Onsite Laboratory Services only) ============== */
.gcw-spiro-partners-section { background: linear-gradient(180deg, var(--spiro-sage), var(--spiro-cream)); }
.gcw-spiro-partners-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; margin-bottom: 32px; }
.gcw-spiro-partner-card { background: var(--spiro-paper); border-radius: 22px; padding: 36px 32px; box-shadow: var(--spiro-shadow-sm); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.gcw-spiro-partner-card:hover { transform: translateY(-5px); box-shadow: var(--spiro-shadow-md); }
.gcw-spiro-partner-icon { width: 52px; height: 52px; border-radius: 15px; background: var(--spiro-sage); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.gcw-spiro-partner-icon svg { width: 24px; height: 24px; color: var(--spiro-green); }
.gcw-spiro-partner-card h3 { font-size: 19px; font-weight: 700; color: var(--spiro-green-deep); margin: 0 0 10px; }
.gcw-spiro-partner-card p { font-size: 14px; color: var(--spiro-muted); font-weight: 400; margin: 0; line-height: 1.7; }

/* ============== "GOOD FOR" CHECKLIST (Same-Day Appointments only) ============== */
.gcw-spiro-good-section { background: linear-gradient(180deg, var(--spiro-sage), var(--spiro-cream)); }
.gcw-spiro-good-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.gcw-spiro-good-item { display: flex; align-items: flex-start; gap: 12px; background: var(--spiro-paper); border-radius: 14px; padding: 18px 20px; box-shadow: var(--spiro-shadow-sm); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.gcw-spiro-good-item:hover { transform: translateY(-4px); box-shadow: var(--spiro-shadow-md); }
.gcw-spiro-good-icon { width: 30px; height: 30px; border-radius: 50%; background: var(--spiro-sage); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gcw-spiro-good-icon svg { width: 14px; height: 14px; color: var(--spiro-green); }
.gcw-spiro-good-item p { font-size: 13.5px; color: var(--spiro-ink); font-weight: 400; margin: 0; line-height: 1.5; padding-top: 3px; }

/* ============== FAQ ACCORDION ============== */
.gcw-spiro-faq-section { background: var(--spiro-sage); }
.gcw-spiro-accordion { display: flex; flex-direction: column; gap: 14px; }
.gcw-spiro-item { background: var(--spiro-paper); border-radius: 16px; box-shadow: var(--spiro-shadow-sm); overflow: hidden; border: 1.5px solid transparent; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.gcw-spiro-item.gcw-spiro-active-item { border-color: var(--spiro-green-light); box-shadow: var(--spiro-shadow-md); }
.gcw-spiro-trigger { width: 100%; display: flex; align-items: center; gap: 16px; padding: 21px 25px; background: transparent; border: none; font-family: inherit; text-align: left; cursor: pointer; color: inherit; }
.gcw-spiro-trigger:hover, .gcw-spiro-trigger:focus, .gcw-spiro-trigger:active, .gcw-spiro-trigger:focus-visible { background: var(--spiro-sage) !important; color: inherit !important; }
.gcw-spiro-trigger h3 { flex: 1; font-size: 15.5px; font-weight: 500; margin: 0; color: var(--spiro-ink); }
.gcw-spiro-plus { width: 28px; height: 28px; border-radius: 50%; background: var(--spiro-sage); color: var(--spiro-green-dark); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: transform 0.25s ease, background 0.25s ease; }
.gcw-spiro-trigger[aria-expanded="true"] .gcw-spiro-plus { transform: rotate(45deg); background: var(--spiro-green-dark); color: #fff; }
.gcw-spiro-plus svg { width: 13px; height: 13px; }
.gcw-spiro-answer { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.gcw-spiro-answer.gcw-spiro-open { max-height: 400px; }
.gcw-spiro-answer-inner { padding: 0 25px 24px; font-size: 14px; color: var(--spiro-muted); font-weight: 400; max-width: 720px; line-height: 1.8; }

/* ============== CLOSING ============== */
.gcw-spiro-closing { position: relative; text-align: center; background: linear-gradient(150deg, var(--spiro-green-deep), var(--spiro-green-dark) 55%, #2C4020); border-radius: 28px; padding: 42px 40px; color: var(--spiro-white); overflow: hidden; }
.gcw-spiro-closing-glow { position: absolute; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.2), transparent 70%); bottom: -150px; left: -90px; }
.gcw-spiro-closing-glow-2 { position: absolute; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(156,201,122,0.16), transparent 70%); top: -100px; right: -60px; }
.gcw-spiro-closing > * { position: relative; z-index: 1; }
.gcw-spiro-closing h2 { color: #fff; font-size: 27px; font-weight: 700; margin: 0 0 10px; letter-spacing: -0.02em; }
.gcw-spiro-closing p { font-size: 14.5px; color: rgba(255,255,255,0.74); font-weight: 300; margin: 0 0 24px; max-width: 480px; margin-left: auto; margin-right: auto; }
.gcw-spiro-closing p.gcw-spiro-closing-note { margin-top: -14px; }
.gcw-spiro-btn-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.gcw-spiro-btn { display: inline-flex; align-items: center; gap: 9px; padding: 16px 32px; border-radius: 999px; font-weight: 600; font-size: 14px; text-decoration: none; transition: transform 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s ease; }
.gcw-spiro-btn svg { width: 15px; height: 15px; }
.gcw-spiro-btn:hover { transform: translateY(-3px) scale(1.015); }
.gcw-spiro-btn-primary { background: var(--spiro-white); color: var(--spiro-green-deep); box-shadow: var(--spiro-shadow-lg), inset 0 1px 0 rgba(255,255,255,0.6); }
.gcw-spiro-btn-secondary { background: rgba(255,255,255,0.06); backdrop-filter: blur(10px); color: var(--spiro-white); border: 1.5px solid rgba(255,255,255,0.35); }
.gcw-spiro-btn-secondary:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.1); }

/* ============== RESPONSIVE ============== */
@media (max-width: 900px) {
  .gcw-spiro-hero-grid { grid-template-columns: 1fr; padding-top: 74px; }
  .gcw-spiro-hero-art { display: none; }
  .gcw-spiro-trustbar-row { grid-template-columns: 1fr; }
  .gcw-spiro-trust-item { border-left: none; border-top: 1px solid rgba(255,255,255,0.1); }
  .gcw-spiro-trust-item:first-child { border-top: none; }
  .gcw-spiro-reasons-grid,
  .gcw-spiro-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .gcw-spiro-flow { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .gcw-spiro-flow-line { display: none; }
  .gcw-spiro-notes { grid-template-columns: 1fr; }
  .gcw-spiro-partners-grid { grid-template-columns: 1fr; }
  .gcw-spiro-good-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .gcw-spiro-section { padding: 62px 0; }
  .gcw-spiro-section-head h2 { font-size: 26px; }
  .gcw-spiro-reasons-grid,
  .gcw-spiro-cat-grid,
  .gcw-spiro-flow,
  .gcw-spiro-good-grid { grid-template-columns: 1fr; }
  .gcw-spiro-note { flex-direction: column; }
  .gcw-spiro-important { flex-direction: column; }
  .gcw-spiro-closing { padding: 46px 24px; }
}


.gc-legal{
    --forest:#16302B;
    --parchment:#FFFFFF;
    --parchment-dim:#F1F4F0;
    --ink:#1C1F1A;
    --ink-soft:#5C5F58;
    --brass:#4F6F52;
    --hair:rgba(28,31,26,0.12);
   
    color:var(--ink);
    max-width:820px;
    margin:0 auto;
    padding:0 24px;
  }
  .gc-legal-header{
    padding:56px 0 40px;
    border-bottom:1px solid var(--hair);
    margin-bottom:48px;
  }
  .gc-legal-tag{
    font-size:13.5px;
    color:var(--brass);
    font-weight:500;
    margin-bottom:16px;
  }
  .gc-legal-tag::before{
    content:"";
    display:inline-block;
    width:20px;
    height:1px;
    background:var(--brass);
    margin-right:9px;
    vertical-align:middle;
  }
  .gc-legal-header h1{
    font-family:'Fraunces', Georgia, serif;
    font-weight:600;
    font-size:clamp(28px,4vw,40px);
    color:var(--forest);
    line-height:1.2;
    margin:0 0 14px;
  }
  .gc-legal-header p{
    font-size:14px;
    color:var(--ink-soft);
    margin:0;
  }
  .gc-legal-intro{
    font-size:16px;
    line-height:1.75;
    color:var(--ink-soft);
    margin-bottom:48px;
  }
  .gc-legal-intro strong{color:var(--forest);}
  .gc-legal h2{
    font-family:'Fraunces', Georgia, serif;
    font-weight:600;
    font-size:21px;
    color:var(--forest);
    margin:44px 0 14px;
  }
  .gc-legal h2:first-of-type{margin-top:0;}
  .gc-legal p{
    font-size:15.5px;
    line-height:1.75;
    color:var(--ink);
    margin:0 0 16px;
  }
  .gc-legal ul{
    margin:0 0 16px;
    padding-left:20px;
  }
  .gc-legal li{
    font-size:15.5px;
    line-height:1.75;
    color:var(--ink);
    margin-bottom:8px;
  }
  .gc-legal strong{color:var(--forest); font-weight:600;}
  .gc-legal a{color:var(--brass); text-decoration:underline;}
  .gc-legal-contact{
    background:var(--parchment-dim);
    border-left:2px solid var(--brass);
    padding:22px 26px;
    margin:20px 0 8px;
  }
  .gc-legal-contact p{margin:0 0 4px; font-size:15px;}
  .gc-legal-contact p:first-child{font-weight:600; color:var(--forest); margin-bottom:8px;}
  .gc-legal-note{
    margin:56px 0 60px;
    padding-top:24px;
    border-top:1px solid var(--hair);
    font-size:13px;
    line-height:1.7;
    color:var(--ink-soft);
    font-style:italic;
  }