/* style.css */
/*
Theme Name: AdvanceAPractice Premium
Theme URI: https://advanceapractice.com
Author: AdvanceAPractice
Description: Clean premium theme for AdvanceAPractice — behavioral health practice operations.
Version: 1.0.3
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: aap-premium
*/

/* ============================================================
   AdvanceAPractice — Premium Marketing Stylesheet
   One authored file, no frameworks, no CDN dependencies.
   Organized by: Tokens → Reset → Base → Layout → Components
                 → Header → Hero → Sections → Footer
   ============================================================ */

/* ============================================================
   1. DESIGN TOKENS
   ============================================================ */
:root {
  /* Colors */
  --color-navy:        #0f2a47;
  --color-navy-alt:    #102841;
  --color-blue:        #1a56db;
  --color-blue-light:  #1f5fa8;
  --color-blue-dark:   #1547b8;
  --color-red:         #DB0205;
  --color-coral:       #cf5a4e;
  --color-bg:          #ffffff;
  --color-bg-tint:     #f6f8fb;
  --color-text:        #1f2a37;
  --color-muted:       #5b6675;
  --color-border:      rgba(15,42,71,.10);
  --color-gold:        #d4a017;

  /* Typography */
  --font-heading: 'Poppins', system-ui, -apple-system, sans-serif;
  --font-body:    'Inter', system-ui, -apple-system, sans-serif;

  /* Sizing */
  --max-width:  1200px;
  --radius-sm:  8px;
  --radius-md:  14px;
  --radius-lg:  20px;
  --radius-pill:999px;
  --radius-btn:  14px;
  --radius-input:10px;

  /* Shadows */
  --shadow-card:     0 18px 50px rgba(16,40,65,.08);
  --shadow-nav:      0 2px 16px rgba(16,40,65,.09);
  --shadow-dropdown: 0 20px 60px rgba(16,40,65,.13);

  /* Transitions */
  --t-fast: 150ms ease;
  --t-mid:  250ms ease;

  /* Spacing */
  --sp-xs:  .5rem;
  --sp-sm:  1rem;
  --sp-md:  1.5rem;
  --sp-lg:  2.5rem;
  --sp-xl:  4rem;
  --sp-2xl: 6rem;
}

/* ============================================================
   2. RESET & BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);line-height:1.6;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:var(--color-blue);text-decoration:none;transition:color var(--t-fast)}
a:hover{color:var(--color-blue-light)}
ul,ol{list-style:none}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;letter-spacing:-0.02em;line-height:1.15;color:var(--color-navy)}
p{line-height:1.7}
button{font-family:inherit}
:focus-visible{outline:2.5px solid var(--color-blue);outline-offset:3px;border-radius:4px}
/* Screen-reader-only text. WordPress core's block-library sheet used to supply this; the theme owns it now. */
.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}

/* ============================================================
   3. LAYOUT UTILITIES
   ============================================================ */
.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:1.5rem}
.section-pad{padding-block:var(--sp-2xl)}


/* ============================================================
   4. TYPOGRAPHY HELPERS
   ============================================================ */
.eyebrow{
  display:inline-flex;align-items:center;
  font-family:var(--font-heading);font-size:.65rem;font-weight:600;
  letter-spacing:.10em;text-transform:uppercase;color:#a63a2c;background:#fdf2f0;
  border:1px solid #f0cdc6;border-radius:var(--radius-pill);
  padding:.3em .9em;margin-bottom:var(--sp-md)
}
.section-heading{font-size:clamp(1.75rem,3.5vw,2.6rem);color:var(--color-navy);margin-bottom:var(--sp-sm)}


/* ============================================================
   5. BUTTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--font-heading);font-size:.9rem;font-weight:750;letter-spacing:.01em;
  padding:.75rem 1.55rem;border-radius:var(--radius-btn);border:2px solid transparent;
  cursor:pointer;white-space:nowrap;text-decoration:none;
  transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast),
             transform var(--t-fast),box-shadow var(--t-fast)
}
.btn:active{transform:translateY(1px)}

.btn-primary{background:var(--color-blue);color:#fff;border-color:var(--color-blue);box-shadow:0 4px 16px rgba(26,86,219,.22)}
.btn-primary:hover{background:var(--color-blue-light);border-color:var(--color-blue-light);color:#fff;box-shadow:0 6px 24px rgba(26,86,219,.30)}

.btn-outline{background:transparent;color:var(--color-navy);border-color:var(--color-border)}
.btn-outline:hover{background:var(--color-bg-tint);border-color:rgba(15,42,71,.22);color:var(--color-navy)}

.btn-outline-white{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn-outline-white:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.7);color:#fff}

.btn-white{background:#fff;color:var(--color-navy);border-color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.12)}
.btn-white:hover{background:var(--color-bg-tint);color:var(--color-navy)}

.btn-sm{padding:.55rem 1.1rem;font-size:.82rem}

/* ============================================================
   6. CARDS
   ============================================================ */
.card{
  background:var(--color-bg);border:1px solid var(--color-border);
  border-radius:var(--radius-lg);padding:var(--sp-lg);box-shadow:var(--shadow-card);
  transition:transform var(--t-mid),box-shadow var(--t-mid)
}


.card-title{font-family:var(--font-heading);font-size:1.05rem;font-weight:700;color:var(--color-navy);margin-bottom:.5rem}

.card-link{
  display:inline-flex;align-items:center;gap:.3rem;
  font-size:.88rem;font-weight:600;color:var(--color-blue);
  margin-top:var(--sp-md);transition:gap var(--t-fast)
}
.card-link:hover{gap:.55rem}
.card-link::after{content:'→'}





/* ============================================================
   8. HEADER & NAV
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:1000;background:var(--color-bg);
  border-bottom:1px solid transparent;
  transition:border-color var(--t-mid),box-shadow var(--t-mid)
}
.site-header.scrolled{border-bottom-color:var(--color-border);box-shadow:var(--shadow-nav)}

.header-inner{display:flex;align-items:center;justify-content:space-between;height:68px;gap:var(--sp-lg)}

/* Logo */
.logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;flex-shrink:0}
.logo-mark{height:38px;width:auto;display:block}
.logo-wordmark{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;color:var(--color-navy);letter-spacing:-0.02em;line-height:1}

/* Primary nav */
.primary-nav{display:flex;align-items:center;gap:.1rem;margin-left:auto}
.nav-list{display:flex;align-items:center;gap:8px}
.site-header .nav-list{column-gap:8px!important;row-gap:8px!important}
.nav-item{position:relative}

.nav-link{
  display:flex;align-items:center;gap:.3rem;
  padding:.5rem .75rem;font-size:.875rem;font-weight:500;color:var(--color-text);
  border-radius:var(--radius-sm);white-space:nowrap;
  transition:background var(--t-fast),color var(--t-fast);
  background:none;border:none;cursor:pointer
}
.nav-link:hover,.nav-link:focus-visible{background:var(--color-bg-tint);color:var(--color-navy)}

.nav-chevron{width:14px;height:14px;transition:transform var(--t-fast);flex-shrink:0}
.nav-item:hover .nav-chevron,
.nav-link[aria-expanded="true"] .nav-chevron{transform:rotate(180deg)}

/* Dropdown */
.dropdown{
  position:absolute;top:calc(100% + 10px);left:50%;
  transform:translateX(-50%) translateY(-6px);
  min-width:260px;background:var(--color-bg);
  border:1px solid var(--color-border);border-radius:var(--radius-md);
  box-shadow:var(--shadow-dropdown);padding:.6rem;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity var(--t-mid),visibility var(--t-mid),transform var(--t-mid)
}
.dropdown::before{
  content:'';position:absolute;top:-7px;left:50%;transform:translateX(-50%);
  border-left:7px solid transparent;border-right:7px solid transparent;
  border-bottom:7px solid var(--color-border)
}
.dropdown::after{
  content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%);
  border-left:7px solid transparent;border-right:7px solid transparent;
  border-bottom:7px solid var(--color-bg)
}
.nav-item:hover .dropdown,
.nav-item:focus-within .dropdown,
.dropdown[data-open="true"]{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0)
}
.nav-item .dropdown[data-open="false"]{
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateX(-50%) translateY(-6px)
}
.dropdown-item{
  display:block;padding:.65rem .85rem;font-size:.875rem;font-weight:500;
  color:var(--color-text);border-radius:var(--radius-sm);
  transition:background var(--t-fast),color var(--t-fast)
}
.dropdown-item:hover,.dropdown-item:focus-visible{background:var(--color-bg-tint);color:var(--color-navy)}

.nav-cta{margin-left:var(--sp-sm)}

/* Hamburger */
.hamburger{
  display:none;flex-direction:column;justify-content:center;align-items:center;
  gap:5px;width:40px;height:40px;background:none;border:none;cursor:pointer;
  border-radius:var(--radius-sm);transition:background var(--t-fast);padding:0;flex-shrink:0
}
.hamburger:hover{background:var(--color-bg-tint)}
.hamburger span{display:block;width:22px;height:2px;background:var(--color-navy);border-radius:2px;transition:transform var(--t-mid),opacity var(--t-mid);transform-origin:center}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(0)}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Mobile drawer */
.mobile-drawer{
  display:none;position:fixed;inset:68px 0 0 0;
  background:var(--color-bg);z-index:999;overflow-y:auto;
  padding:var(--sp-md) var(--sp-md) var(--sp-xl);
  border-top:1px solid var(--color-border);
  transform:translateY(-8px);opacity:0;pointer-events:none;
  transition:opacity var(--t-mid),transform var(--t-mid)
}
.mobile-drawer.is-open{opacity:1;transform:translateY(0);pointer-events:auto}
.mobile-nav-list{display:flex;flex-direction:column;gap:.15rem}
.mobile-nav-link{
  display:block;padding:.75rem .75rem;font-size:1rem;font-weight:500;
  color:var(--color-text);border-radius:var(--radius-sm);
  transition:background var(--t-fast)
}
.mobile-nav-link:hover{background:var(--color-bg-tint);color:var(--color-navy)}

.mobile-accordion-btn{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:.75rem .75rem;font-size:1rem;font-weight:500;color:var(--color-text);
  background:none;border:none;cursor:pointer;border-radius:var(--radius-sm);
  transition:background var(--t-fast)
}
.mobile-accordion-btn:hover{background:var(--color-bg-tint)}
.mobile-accordion-btn .nav-chevron{transition:transform var(--t-fast)}
.mobile-accordion-btn[aria-expanded="true"] .nav-chevron{transform:rotate(180deg)}

.mobile-sub-list{display:none;flex-direction:column;gap:.05rem;padding-left:1rem;padding-bottom:.25rem}
.mobile-sub-list.is-open{display:flex}
.mobile-sub-link{
  display:block;padding:.55rem .75rem;font-size:.9rem;
  color:var(--color-muted);border-radius:var(--radius-sm);
  transition:background var(--t-fast),color var(--t-fast)
}
.mobile-sub-link:hover{background:var(--color-bg-tint);color:var(--color-navy)}

.mobile-cta-group{
  display:flex;flex-direction:column;gap:var(--sp-sm);
  padding-top:var(--sp-md);border-top:1px solid var(--color-border);margin-top:var(--sp-sm)
}
.mobile-cta-group .btn{justify-content:center;font-size:.95rem}

/* ============================================================
   9. HERO
   ============================================================ */
.hero{background:var(--color-bg);padding-block:var(--sp-2xl) calc(var(--sp-2xl) + 1rem);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xl);align-items:center}

.hero-h1{font-size:clamp(2rem,4.5vw,3.2rem);color:var(--color-navy);margin-bottom:var(--sp-md);line-height:1.1}
.hero-h1 em{color:var(--color-blue);font-style:normal}

.hero-actions{display:flex;flex-wrap:wrap;gap:var(--sp-sm);align-items:center}
.hero-visual{display:flex;align-items:center;justify-content:center}




/* ============================================================
   10. STARTING POINT
   ============================================================ */
.starting-point{background:var(--color-bg-tint)}
.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-md);margin-top:var(--sp-lg)}










/* ============================================================
   13. TESTIMONIALS
   ============================================================ */
.testimonials{background:var(--color-bg-tint);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}

.testimonial-card{
  background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  padding:var(--sp-lg);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--sp-md)
}
.stars{display:flex;gap:3px}
.star{color:var(--color-gold);font-size:1.1rem;line-height:1}
.testimonial-quote{font-size:.975rem;color:var(--color-text);line-height:1.8;flex:1;font-style:italic}




/* ============================================================
   14. RECOGNITION
   ============================================================ */
.recognition{background:var(--color-bg);padding-block:var(--sp-xl)}







/* ============================================================
   15. CTA BAND
   ============================================================ */
.cta-band{background:linear-gradient(135deg,#0f2a47 0%,#143a63 55%,#1a4f86 100%);padding-block:var(--sp-2xl) 60px;position:relative;overflow:hidden}
.cta-band .section-heading{color:#fff}

.cta-actions{display:flex;flex-wrap:wrap;gap:var(--sp-sm);align-items:center;margin-top:var(--sp-lg)}

/* ============================================================
   16. FOOTER
   ============================================================ */
.site-footer{background:var(--color-navy);color:rgba(255,255,255,.80);padding-block:var(--sp-2xl) var(--sp-xl);border-top:1px solid rgba(255,255,255,.08)}
.footer-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:2.5rem 4rem;margin-bottom:var(--sp-xl)}.footer-brand{margin-right:auto;max-width:340px}
.footer-brand .logo{margin-bottom:var(--sp-sm)}
.footer-brand .logo-wordmark{color:#fff;font-size:1.15rem}
.footer-tagline{font-size:.875rem;color:rgba(255,255,255,.55);line-height:1.7;max-width:30ch;margin-top:.75rem}
.footer-col-heading{font-family:var(--font-heading);font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;margin-bottom:var(--sp-md)}
.footer-links{display:flex;flex-direction:column;gap:.6rem}
.footer-links a{font-size:.875rem;color:rgba(255,255,255,.6);transition:color var(--t-fast)}
.footer-links a:hover{color:#fff}
.footer-bottom{padding-top:var(--sp-md);border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-sm);flex-wrap:wrap}
.footer-copy{font-size:.82rem;color:rgba(255,255,255,.45)}

/* Preserve the theme footer when Elementor full-width pages add generic footer rules. */
.wp-theme-aap-premium footer.site-footer{background:var(--color-navy);color:rgba(255,255,255,.80);padding-block:var(--sp-xl) var(--sp-xl);border-top:3px solid #1a56db}
.wp-theme-aap-premium footer.site-footer .footer-brand .logo-wordmark,
.wp-theme-aap-premium footer.site-footer .footer-col-heading{color:#fff}
.wp-theme-aap-premium footer.site-footer .footer-tagline{color:rgba(255,255,255,.66)}
.wp-theme-aap-premium footer.site-footer .footer-links a{color:rgba(255,255,255,.72)}
.wp-theme-aap-premium footer.site-footer .footer-links a:hover{color:#fff}
.wp-theme-aap-premium footer.site-footer .footer-bottom{border-top-color:rgba(255,255,255,.1)}
.wp-theme-aap-premium footer.site-footer .footer-copy{color:rgba(255,255,255,.62)}

/* ============================================================
   17. RESPONSIVE — TABLET (≤ 1024px)
   ============================================================ */
@media (max-width:1024px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:var(--sp-lg)}
  
  .hero-grid{gap:var(--sp-lg)}
}

/* ============================================================
   18. RESPONSIVE — MOBILE NAV (≤ 900px)
   ============================================================ */
@media (max-width:900px){
  .primary-nav{display:none}
  .hamburger{display:flex}
  .mobile-drawer{display:block}
  .hero .hero-grid{grid-template-columns:1fr;text-align:center}
  
  .hero-visual{order:2}
  .hero-actions{justify-content:center}
  
  .eyebrow{margin-inline:auto}
  .three-col{grid-template-columns:1fr}
  
  
  
}

/* ============================================================
   19. RESPONSIVE — MOBILE (≤ 600px)
   ============================================================ */
@media (max-width:600px){
  :root{--sp-2xl:4rem;--sp-xl:3rem}
  .header-inner{min-height:60px;height:auto}
  .mobile-drawer{top:60px;inset:60px 0 0 0}
  
  .footer-grid{grid-template-columns:1fr;gap:var(--sp-lg)}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .cta-actions{flex-direction:column;align-items:flex-start}
  .cta-actions .btn{width:100%;justify-content:center}
  .hero-actions{flex-direction:column;align-items:center}
  .hero-actions .btn{width:100%;justify-content:center}
  
}

/* ============================================================
   20. INTERIOR PAGE CONTENT
   ============================================================ */
.aap-page-hero{
  background:var(--color-bg-tint);
  border-bottom:1px solid var(--color-border);
  padding-block:var(--sp-xl) var(--sp-lg);
  text-align:center
}
.aap-page-hero .page-title{
  font-size:clamp(1.75rem,3.5vw,2.6rem);
  color:var(--color-navy);
  margin:0
}

.aap-page-content{
  max-width:760px;
  margin-inline:auto;
  font-size:1rem;
  line-height:1.8;
  color:var(--color-text)
}
.aap-page-content h2{
  font-size:clamp(1.4rem,2.5vw,2rem);
  color:var(--color-navy);
  margin-top:var(--sp-lg);
  margin-bottom:var(--sp-sm)
}
.aap-page-content h3{
  font-size:1.2rem;
  color:var(--color-navy);
  margin-top:var(--sp-md);
  margin-bottom:.5rem
}
.aap-page-content p{
  margin-bottom:var(--sp-sm)
}
.aap-page-content ol{
  list-style:decimal
}
.aap-page-content li{
  margin-bottom:.35rem
}
.aap-page-content a{
  color:var(--color-blue);
  text-decoration:underline;
  text-underline-offset:2px
}
.aap-page-content a:hover{
  color:var(--color-blue-light)
}
.aap-page-content blockquote{
  border-left:3px solid var(--color-blue);
  padding-left:var(--sp-md);
  margin-block:var(--sp-md);
  color:var(--color-muted);
  font-style:italic
}

/* ============================================================
   END
   ============================================================ */

/* ============================================================
   WORDPRESS PAGE CONTENT COMPONENTS
   Premium styling for post_content rendered via the_content()
   inside .aap-page-content. All values use :root design tokens.
   Classes match short-codes / block patterns used across the site.
   ============================================================ */

/* ----------------------------------------------------------
   GENERAL PROSE OVERRIDE
   When full-width components live inside .aap-page-content
   they need to escape the default 760px max-width constraint.
   Every .aap-hero, .aap-section, .aap-cta-band, .aap-testi-band
   is pulled full-width by resetting the inherited max-width.
   ---------------------------------------------------------- */
.aap-page-content .aap-hero,
.aap-page-content .aap-section,
.aap-page-content .aap-cta-band,
.aap-page-content .aap-testi-band {
  max-width: none;
  margin-inline: calc(-1 * 1.5rem); /* counteract .container side padding */
}

/* ----------------------------------------------------------
   .aap-page-content — General prose enhancements
   (supplements Section 20; does not override it)
   ---------------------------------------------------------- */
.aap-page-content > h2 {
  font-size: clamp(1.5rem, 2.8vw, 2rem);
  color: var(--color-navy);
  font-family: var(--font-heading);
  font-weight: 700;
  margin-top: var(--sp-lg);
  margin-bottom: var(--sp-sm);
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.aap-page-content > h3 {
  font-size: 1.2rem;
  color: var(--color-navy);
  font-family: var(--font-heading);
  font-weight: 700;
  margin-top: var(--sp-md);
  margin-bottom: .5rem;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.aap-page-content > p {
  color: var(--color-muted);
  line-height: 1.7;
  max-width: 70ch;
  margin-bottom: var(--sp-sm);
}
.aap-page-content > p a,
.aap-page-content > ul a,
.aap-page-content > ol a {
  color: var(--color-blue);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--t-fast);
}
.aap-page-content > p a:hover,
.aap-page-content > ul a:hover,
.aap-page-content > ol a:hover {
  color: var(--color-blue-light);
}
.aap-page-content > strong { font-weight: 700; color: var(--color-text); }
.aap-page-content > em    { font-style: italic; }

/* ----------------------------------------------------------
   .aap-hero — Page-level hero inside post_content
   Eyebrow + H1 + lead paragraph + buttons
   ---------------------------------------------------------- */
.aap-hero {
  padding-block: 2.5rem;
  background: var(--color-bg);
}
.aap-hero__inner {
  width: 100%;
  max-width: 1100px;
  margin-inline: auto;
  padding-inline: 1.5rem;
}
/* When no __inner wrapper is present, constrain direct children */
.aap-hero:not(:has(.aap-hero__inner)) > * {
  max-width: 1100px;
  margin-inline: auto;
  padding-inline: 1.5rem;
}
.aap-hero .eyebrow {
  margin-bottom: var(--sp-md);
}
.aap-hero h1 {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.5vw, 3.1rem);
  font-weight: 700;
  color: var(--color-navy);
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin-bottom: var(--sp-md);
}
.aap-hero .aap-hero__lead,
.aap-hero > p,
.aap-hero__inner > p {
  font-size: 1.05rem;
  color: var(--color-muted);
  max-width: 62ch;
  line-height: 1.75;
  margin-bottom: var(--sp-lg);
}
.aap-hero .aap-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-sm);
  align-items: center;
}

/* ----------------------------------------------------------
   .aap-section — Reusable content section
   ---------------------------------------------------------- */
.aap-section {
  padding-block: 4rem;
  background: var(--color-bg);
}
.aap-section--alt,
.aap-section:nth-of-type(even) {
  background: var(--color-bg-tint);
}
.aap-section__inner {
  width: 100%;
  max-width: 1100px;
  margin-inline: auto;
  padding-inline: 1.5rem;
}
/* Fallback: constrain direct block children when no __inner */
.aap-section:not(:has(.aap-section__inner)) > * {
  max-width: 1100px;
  margin-inline: auto;
  padding-inline: 1.5rem;
}
.aap-section h2,
.aap-section__inner h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--color-navy);
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-bottom: var(--sp-md);
}
.aap-section p,
.aap-section__inner p {
  color: var(--color-muted);
  line-height: 1.7;
  max-width: 70ch;
  margin-bottom: var(--sp-sm);
}

/* ----------------------------------------------------------
   .aap-card-grid / .aap-cards — Responsive card container
   ---------------------------------------------------------- */
.aap-card-grid,
.aap-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
  margin-top: var(--sp-lg);
}

/* ----------------------------------------------------------
   .aap-card — Individual card
   ---------------------------------------------------------- */
.aap-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1.75rem;
  box-shadow: var(--shadow-card);
  transition: transform var(--t-mid), box-shadow var(--t-mid);
}

.aap-card h3 {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: .5rem;
  letter-spacing: -0.01em;
}
.aap-card p {
  font-size: .92rem;
  color: var(--color-muted);
  line-height: 1.7;
  margin-bottom: 0;
}

/* ----------------------------------------------------------
   .aap-cta-band — Full-width navy call-to-action band
   ---------------------------------------------------------- */
.aap-cta-band {
  background: var(--color-navy);
  padding-block: 4.5rem;
  text-align: center;
}
.aap-cta-band__inner {
  width: 100%;
  max-width: 800px;
  margin-inline: auto;
  padding-inline: 1.5rem;
}
/* Fallback when no __inner */
.aap-cta-band:not(:has(.aap-cta-band__inner)) > * {
  max-width: 800px;
  margin-inline: auto;
  padding-inline: 1.5rem;
}
.aap-cta-band h2,
.aap-cta-band__inner h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 700;
  color: #ffffff;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-bottom: var(--sp-sm);
}
.aap-cta-band p,
.aap-cta-band__inner p {
  font-size: 1.05rem;
  color: rgba(255, 255, 255, .75);
  line-height: 1.75;
  max-width: 58ch;
  margin-inline: auto;
  margin-bottom: var(--sp-lg);
}
.aap-cta-band .eyebrow {
  color: #ffffff;
  background: rgba(255, 255, 255, .12);
  border-color: rgba(255, 255, 255, .34);
}
.aap-cta-band .aap-cta-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-sm);
  align-items: center;
  justify-content: center;
}

/* ----------------------------------------------------------
   .aap-btn — Button system (page content variant)
   Mirrors .btn / .btn-primary / .btn-outline from Section 5.
   ---------------------------------------------------------- */
.aap-btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-family: var(--font-heading);
  font-size: .9rem;
  font-weight: 750;
  letter-spacing: .01em;
  padding: .75rem 1.55rem;
  border-radius: var(--radius-btn);
  border: 2px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast),
              transform var(--t-fast), box-shadow var(--t-fast);
}
.aap-btn:active { transform: translateY(1px); }

/* Primary: blue background + white text */
.aap-btn--primary {
  background: var(--color-blue);
  color: #ffffff;
  border-color: var(--color-blue);
  box-shadow: 0 4px 16px rgba(26, 86, 219, .22);
}
.aap-btn--primary:hover {
  background: var(--color-blue-light);
  border-color: var(--color-blue-light);
  color: #ffffff;
  box-shadow: 0 6px 24px rgba(26, 86, 219, .30);
}

/* Secondary/outline: bordered + navy text */
.aap-btn--secondary {
  background: transparent;
  color: var(--color-navy);
  border-color: var(--color-border);
}
.aap-btn--secondary:hover {
  background: var(--color-bg-tint);
  border-color: rgba(15, 42, 71, .22);
  color: var(--color-navy);
}

/* On navy backgrounds (inside .aap-cta-band):
   primary → white bg + navy text; secondary → white border + white text */
.aap-cta-band .aap-btn--primary {
  background: #ffffff;
  color: var(--color-navy);
  border-color: #ffffff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .15);
}
.aap-cta-band .aap-btn--primary:hover {
  background: var(--color-bg-tint);
  color: var(--color-navy);
  border-color: var(--color-bg-tint);
}
.aap-cta-band .aap-btn--secondary {
  background: transparent;
  color: #ffffff;
  border-color: rgba(255, 255, 255, .5);
}
.aap-cta-band .aap-btn--secondary:hover {
  background: rgba(255, 255, 255, .12);
  border-color: rgba(255, 255, 255, .75);
  color: #ffffff;
}

/* ----------------------------------------------------------
   .aap-visibility-list — Styled check-list
   Also covers ul/ol inside .aap-page-content and .aap-section
   ---------------------------------------------------------- */
/* Plain authored lists get the blue dot. Any list that carries a class owns its own marker
   (check-list rows, chips, stat tiles, source cards), so the dot never lands on a card corner. 2026-10-07 */
:where(.aap-page-content, .aap-section, .aap-section__inner) ul:not([class]) {
  list-style: none;
  padding-left: 0;
  margin-bottom: var(--sp-sm);
}
:where(.aap-page-content, .aap-section, .aap-section__inner) ul:not([class]) > li {
  position: relative;
  padding-left: 1.6rem;
  margin-bottom: .5rem;
  color: var(--color-muted);
  line-height: 1.65;
  font-size: .97rem;
}
:where(.aap-page-content, .aap-section, .aap-section__inner) ul:not([class]) > li::before {
  content: '';
  position: absolute;
  left: 0;
  top: calc(.8em - .325em);
  width: .65em;
  height: .65em;
  border-radius: 50%;
  background: var(--color-blue);
}
/* Classed lists that are plain text lists and want the same blue dot. */
ul:is(.aap-list, .aap-cpe__rates, .aap-billing-tiers__notes) { list-style: none; padding-left: 0; }
ul:is(.aap-list, .aap-cpe__rates, .aap-billing-tiers__notes) > li { position: relative; padding-left: 1.6rem; }
ul:is(.aap-list, .aap-cpe__rates, .aap-billing-tiers__notes) > li::before {
  content: '';
  position: absolute;
  left: 0;
  top: calc(.8em - .325em);
  width: .65em;
  height: .65em;
  border-radius: 50%;
  background: var(--color-blue);
}
/* Checkout "Before You Pay" and package-terms lists: same blue dot, flush with the paragraph edge
   (component sheets gave these lists an 18px indent meant for native discs). */
html body[class] .aap-before-pay ul:not([class]),
html body[class] .aap-offer-transparency__details ul:not([class]) { list-style: none; padding-left: 0; }

/* Ordered lists retain numerals */
.aap-page-content ol,
.aap-section ol,
.aap-section__inner ol {
  list-style: decimal;
  padding-left: 1.5rem;
  margin-bottom: var(--sp-sm);
}
.aap-page-content ol li,
.aap-section ol li,
.aap-section__inner ol li {
  margin-bottom: .35rem;
  color: var(--color-muted);
  line-height: 1.7;
}

/* ----------------------------------------------------------
   .aap-testi-band — Testimonial section band
   ---------------------------------------------------------- */
.aap-testi-band {
  background: var(--color-bg-tint);
  padding-block: 4rem;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}

.aap-testi-band h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--color-navy);
  letter-spacing: -0.02em;
  margin-bottom: var(--sp-lg);
  text-align: center;
}

/* Grid: 2-up desktop, 1-up mobile */
.aap-testi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-md);
}

/* Individual testimonial card */
.aap-testi-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--sp-lg);
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  gap: var(--sp-md);
}

/* Gold stars */
.aap-testi-stars {
  display: flex;
  gap: 3px;
  color: #e0a73a;
  font-size: 1.1rem;
  line-height: 1;
}

/* Italic serif-feel quote */
.aap-testi-quote {
  font-size: .975rem;
  color: var(--color-text);
  line-height: 1.8;
  font-style: italic;
  flex: 1;
}

/* Author block */
.aap-testi-name {
  font-family: var(--font-heading);
  font-size: .9rem;
  font-weight: 700;
  color: var(--color-navy);
}
.aap-testi-role {
  font-size: .82rem;
  color: var(--color-muted);
}

/* ----------------------------------------------------------
   RESPONSIVE — PAGE CONTENT COMPONENTS (≤ 700px)
   ---------------------------------------------------------- */
@media (max-width: 700px) {

  /* Hero */
  .aap-hero {
    padding-block: 2.2rem;
  }
  .aap-hero h1 {
    font-size: clamp(1.75rem, 6vw, 2.2rem);
  }
  .aap-hero .aap-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .aap-hero__actions .aap-btn {
    width: 100%;
    justify-content: center;
  }

  /* Section */
  .aap-section {
    padding-block: 2.5rem;
  }

  /* Card grids → single column */
  .aap-card-grid,
  .aap-cards {
    grid-template-columns: 1fr;
  }

  /* CTA band */
  .aap-cta-band {
    padding-block: 3rem;
  }
  .aap-cta-band__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .aap-cta-band__actions .aap-btn {
    width: 100%;
    justify-content: center;
  }

  /* Testimonial grid → single column */
  .aap-testi-grid {
    grid-template-columns: 1fr;
  }

  /* Escape margin compensation on narrow screens */
  .aap-page-content .aap-hero,
  .aap-page-content .aap-section,
  .aap-page-content .aap-cta-band,
  .aap-page-content .aap-testi-band {
    margin-inline: -1rem;
  }
}

/* ----------------------------------------------------------
   RESPONSIVE — VERY NARROW (≤ 390px)
   Ensures zero horizontal overflow at smallest viewport.
   ---------------------------------------------------------- */
@media (max-width: 390px) {

  .aap-hero,
  .aap-section,
  .aap-cta-band,
  .aap-testi-band {
    overflow-x: hidden;
  }

  .aap-hero__inner,
  .aap-section__inner,
  .aap-cta-band__inner{
    padding-inline: 1rem;
  }

  .aap-card {
    padding: 1.25rem;
  }

  .aap-page-content .aap-hero,
  .aap-page-content .aap-section,
  .aap-page-content .aap-cta-band,
  .aap-page-content .aap-testi-band {
    margin-inline: -.75rem;
  }
}

/* ============================================================
   END — WORDPRESS PAGE CONTENT COMPONENTS
   ============================================================ */

/* ============================================================
   PAGE CONTENT — COMPLETE COVERAGE
   Extends "WORDPRESS PAGE CONTENT COMPONENTS" above.
   All values use :root tokens. No !important except where noted.
   Responsive: single-column under 700px, no overflow at 390px.
   ============================================================ */

/* ----------------------------------------------------------
   .aap-section — ALL MODIFIERS
   Each modifier is the same generous-padding section base.
   A subset gets a subtle bg tint for visual rhythm.
   ---------------------------------------------------------- */

/* Tinted sections (alternate rhythm) */
.aap-section--approach,
.aap-section--connections,
.aap-section--contact-form,
.aap-section--coverage,
.aap-section--hmo,
.aap-section--process,
.aap-section--systems,
.aap-section--why-it-matters {
  background: var(--color-bg-tint);
}

.aap-section--audience,
.aap-section--contact-close,
.aap-section--contact-intro,
.aap-section--fit,
.aap-section--founder,
.aap-section--problem,
.aap-section--recognition,
.aap-section--services,
.aap-section--visibility{
  background: var(--color-bg);
}

/* All modifier sections share generous vertical padding */
[class*="aap-section--"] {
  padding-block: 4rem;
}

/* Inner constraint for all modifier sections */
[class*="aap-section--"] > .aap-section__inner,
[class*="aap-section--"] > [class*="__inner"] {
  width: 100%;
  max-width: 1100px;
  margin-inline: auto;
  padding-inline: 1.5rem;
}

/* Headings and paragraphs within modifier sections */
[class*="aap-section--"] h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 700;
  color: var(--color-navy);
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-bottom: var(--sp-md);
}
[class*="aap-section--"] h3 {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-navy);
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin-bottom: .5rem;
  margin-top: var(--sp-md);
}
[class*="aap-section--"] p {
  color: var(--color-muted);
  line-height: 1.7;
  max-width: 70ch;
  margin-bottom: var(--sp-sm);
}

/* ----------------------------------------------------------
   .aap-centered-section — centered content area
   ---------------------------------------------------------- */
.aap-centered-section {
  padding-block: 4rem;
  background: var(--color-bg);
  text-align: center;
}
.aap-centered-section > *{
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 1.5rem;
}
.aap-centered-section h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 700;
  color: var(--color-navy);
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-bottom: var(--sp-md);
}
.aap-centered-section h3 {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: .5rem;
}
.aap-centered-section p {
  color: var(--color-muted);
  line-height: 1.75;
  max-width: 62ch;
  margin-inline: auto;
  margin-bottom: var(--sp-sm);
}

/* ----------------------------------------------------------
   .aap-page-hero — Interior page title band
   ---------------------------------------------------------- */
.aap-page-hero {
  padding-block: 3.5rem 2.5rem;  /* override section 20 with generous padding */
}
.aap-page-hero .page-title,
.aap-page-hero h1 {
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  color: var(--color-navy);
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 0 auto;
  max-width: 800px;
}
.aap-page-hero p,
.aap-page-hero .page-subtitle {
  margin-top: var(--sp-sm);
  font-size: 1.05rem;
  color: var(--color-muted);
  line-height: 1.7;
  max-width: 62ch;
  margin-inline: auto;
}

/* ----------------------------------------------------------
   .aap-page-wrapper & .aap-page-content — Main content areas
   ---------------------------------------------------------- */
.aap-page-wrapper {
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: 1.5rem;
  padding-block: var(--sp-xl);
}
/* .aap-page-content prose is styled in sections 20 & WPCC above;
   add supplemental max-width and prose polish here */
.aap-page-wrapper .aap-page-content,
.aap-page-wrapper > .aap-page-content {
  max-width: 760px;
}
.aap-page-content h4 {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-top: var(--sp-md);
  margin-bottom: .35rem;
}
.aap-page-content h5,
.aap-page-content h6 {
  font-family: var(--font-heading);
  font-size: .95rem;
  font-weight: 600;
  color: var(--color-navy);
  margin-top: var(--sp-sm);
  margin-bottom: .25rem;
}
.aap-page-content hr {
  border: none;
  border-top: 1px solid var(--color-border);
  margin-block: var(--sp-lg);
}
.aap-page-content img {
  border-radius: var(--radius-md);
  max-width: 100%;
  height: auto;
  margin-block: var(--sp-sm);
}
.aap-page-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: .92rem;
  margin-bottom: var(--sp-md);
}
.aap-page-content th {
  background: var(--color-bg-tint);
  color: var(--color-navy);
  font-family: var(--font-heading);
  font-weight: 700;
  text-align: left;
  padding: .65rem .9rem;
  border: 1px solid var(--color-border);
}
.aap-page-content td {
  padding: .6rem .9rem;
  border: 1px solid var(--color-border);
  color: var(--color-muted);
  line-height: 1.6;
}
.aap-page-content tr:nth-child(even) td {
  background: var(--color-bg-tint);
}

/* ----------------------------------------------------------
   .aap-hero — In-content hero block
   Left-aligned, constrained, generous padding
   (supplements the WPCC block above)
   ---------------------------------------------------------- */
.aap-hero {
  padding-block: 5rem;
}
.aap-hero .eyebrow {
  display: inline-flex;
}
.aap-hero h1,
.aap-hero__inner h1 {
  max-width: 700px;
}
.aap-hero p,
.aap-hero__inner p {
  max-width: 60ch;
}












/* ----------------------------------------------------------
   .aap-card-grid / .aap-cards / .aap-res-grid / .aap-tools
   Responsive grid containers
   ---------------------------------------------------------- */
.aap-res-grid,
.aap-tools {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
  margin-top: var(--sp-lg);
}

/* ----------------------------------------------------------
   .aap-card — Card variants
   ---------------------------------------------------------- */

/* --tool: feature/tool card with accent top border */
.aap-card--tool {
  border-top: 3px solid var(--color-blue);
  background: var(--color-bg);
}
.aap-card--tool h3 {
  color: var(--color-navy);
}
.aap-card--tool p {
  color: var(--color-muted);
}

/* --not: "what we're not" card — muted tint, dark readable text */
.aap-card--not {
  background: var(--color-bg-tint);
  border-color: var(--color-border);
}
.aap-card--not h3 {
  color: var(--color-navy);   /* strong contrast on light bg */
}
.aap-card--not p {
  color: var(--color-text);   /* full-strength on light bg */
}

/* ----------------------------------------------------------
   .aap-managed / .aap-not / .aap-problem / .aap-audience
   Card/list grids for structured content blocks
   ---------------------------------------------------------- */
.aap-managed,
.aap-not,
.aap-problem,
.aap-audience {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-top: var(--sp-lg);
}
.aap-managed > *,
.aap-not > *,
.aap-problem > *,
.aap-audience > * {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 1.5rem 1.75rem;
  box-shadow: var(--shadow-card);
}
.aap-not > * {
  background: var(--color-bg-tint);
}
.aap-managed > * h3,
.aap-not > * h3,
.aap-problem > * h3,
.aap-audience > * h3 {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: .45rem;
}
.aap-managed > * p,
.aap-not > * p,
.aap-problem > * p,
.aap-audience > * p {
  font-size: .92rem;
  color: var(--color-muted);
  line-height: 1.7;
}
/* .aap-not items: text on tinted bg — use full-strength dark */
.aap-not > * p {
  color: var(--color-text);
}

/* ----------------------------------------------------------
   .aap-demo — Demo / video / screenshot block
   ---------------------------------------------------------- */
.aap-demo {
  margin-block: var(--sp-lg);
}
.aap-demo figure{
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-card);
  background: var(--color-bg-tint);
}
.aap-demo img,
.aap-demo video,
.aap-demo iframe {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
}
.aap-demo figcaption,
.aap-demo .aap-demo__caption {
  font-size: .85rem;
  color: var(--color-muted);
  text-align: center;
  padding: .75rem var(--sp-md);
  line-height: 1.5;
}
/* Ensure text on any dark framing inside demo is readable */
.aap-demo h3 {
  color: var(--color-navy);
  font-family: var(--font-heading);
  font-weight: 700;
  margin-bottom: .5rem;
}
.aap-demo p {
  color: var(--color-muted);
  line-height: 1.7;
}

/* ----------------------------------------------------------
   LISTS — Styled check-lists
   .aap-contact-list / .aap-coverage-list /
   .aap-visibility-list (already above) / .aap-who-list
   ---------------------------------------------------------- */
.aap-contact-list,
.aap-coverage-list,
.aap-who-list {
  list-style: none;
  padding-left: 0;
  margin-bottom: var(--sp-md);
}
.aap-contact-list li,
.aap-coverage-list li,
.aap-who-list li {
  position: relative;
  padding-left: 1.8rem;
  margin-bottom: .6rem;
  color: var(--color-muted);
  line-height: 1.65;
  font-size: .97rem;
}
.aap-contact-list li::before,
.aap-coverage-list li::before,
.aap-who-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .42em;
  width: .7em;
  height: .7em;
  /* Blue checkmark using clip-path instead of border-radius to look like ✓ */
  background: var(--color-blue);
  border-radius: 50%;
  flex-shrink: 0;
}
/* Strong contrast version: on tinted or white bg both read fine */
.aap-contact-list li,
.aap-coverage-list li {
  color: var(--color-text);  /* higher contrast for key info lists */
}

/* ----------------------------------------------------------
   .aap-btn — GHOST variant (contrast fix)
   ---------------------------------------------------------- */
.aap-btn--ghost {
  background: transparent;
  color: var(--color-navy);
  border-color: var(--color-navy);
  border-width: 2px;
  border-style: solid;
}
.aap-btn--ghost:hover {
  background: var(--color-bg-tint);
  color: var(--color-navy);
  border-color: var(--color-navy);
}
/* On dark backgrounds — ghost flips to white */
.aap-cta-band .aap-btn--ghost {
  color: #ffffff;
  border-color: rgba(255, 255, 255, .65);
  background: transparent;
}
.aap-cta-band .aap-btn--ghost:hover {
  background: rgba(255, 255, 255, .12);
  border-color: #ffffff;
  color: #ffffff;
}

.aap-cta-band .aap-btn--primary,
[class*="aap-section--dark"] .aap-btn--primary{
  background: #ffffff;
  color: var(--color-navy);
  border-color: #ffffff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .18);
}
.aap-cta-band .aap-btn--primary:hover,
[class*="aap-section--dark"] .aap-btn--primary:hover{
  background: var(--color-bg-tint);
  color: var(--color-navy);
  border-color: var(--color-bg-tint);
}
.aap-cta-band .aap-btn--secondary,
[class*="aap-section--dark"] .aap-btn--secondary{
  background: transparent;
  color: #ffffff;
  border-color: rgba(255, 255, 255, .55);
}
.aap-cta-band .aap-btn--secondary:hover,
[class*="aap-section--dark"] .aap-btn--secondary:hover{
  background: rgba(255, 255, 255, .14);
  border-color: rgba(255, 255, 255, .8);
  color: #ffffff;
}

[class*="aap-section--dark"]{
  background: var(--color-navy);
}
[class*="aap-section--dark"] h2,
[class*="aap-section--dark"] h3,
[class*="aap-section--dark"] h4,
[class*="aap-section--dark"] p,
[class*="aap-section--dark"] li{
  color: #ffffff;
}
[class*="aap-section--dark"] a{
  color: rgba(255, 255, 255, .85);
}
[class*="aap-section--dark"] a:hover{
  color: #ffffff;
}







/* ----------------------------------------------------------
   RESPONSIVE — COMPLETE COVERAGE (≤ 700px)
   ---------------------------------------------------------- */
@media (max-width: 700px) {

  /* All modifier sections */
  [class*="aap-section--"] {
    padding-block: 2.5rem;
  }

  /* Centered section */
  .aap-centered-section {
    padding-block: 2.5rem;
  }
  .aap-centered-section p {
    margin-inline: 0;
  }

  /* Page hero */
  .aap-page-hero {
    padding-block: 2.5rem 1.75rem;
  }

  /* Page wrapper */
  .aap-page-wrapper {
    padding-inline: 1rem;
    padding-block: var(--sp-lg);
  }

  /* Card grids */
  .aap-managed,
  .aap-not,
  .aap-problem,
  .aap-audience,
  .aap-res-grid,
  .aap-tools {
    grid-template-columns: 1fr;
  }

  .aap-demo figure{
    border-radius: var(--radius-md);
  }

  /* Buttons in sections */
  [class*="aap-section--"] .aap-hero__actions,
  .aap-centered-section .aap-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }
  [class*="aap-section--"] .aap-btn,
  .aap-centered-section .aap-btn {
    width: 100%;
    justify-content: center;
  }

  
}

/* ----------------------------------------------------------
   RESPONSIVE — VERY NARROW (≤ 390px)
   Zero horizontal overflow.
   ---------------------------------------------------------- */
@media (max-width: 390px) {

  [class*="aap-section--"] {
    overflow-x: hidden;
  }
  [class*="aap-section--"] > .aap-section__inner,
  [class*="aap-section--"] > [class*="__inner"] {
    padding-inline: .875rem;
  }
  .aap-centered-section > *{
    padding-inline: .875rem;
  }
  .aap-page-wrapper {
    padding-inline: .875rem;
  }
  .aap-managed > *,
  .aap-not > *,
  .aap-problem > *,
  .aap-audience > * {
    padding: 1.1rem 1.25rem;
  }
  .aap-card--tool,
  .aap-card--not {
    padding: 1.1rem 1.25rem;
  }
  
}

/* ============================================================
   BUTTON & LINK DEFAULTS (ensure no button text is invisible)
   ============================================================ */
/* A button with no variant modifier gets the solid primary look,
   so its text is never white-on-white. Variant classes still win. */
.aap-btn:not([class*="--"]) {
  background: var(--color-blue);
  color: #fff;
  border-color: var(--color-blue);
}
.aap-btn:not([class*="--"]):hover {
  background: var(--color-blue-light);
  color: #fff;
}
.aap-page-content a:not(.aap-btn){
  color: var(--color-blue);
}
.aap-page-content a:not(.aap-btn):hover{
  color: var(--color-blue-light);
}

.aap-page-content h1,
.aap-hero h1,
.aap-hero__inner h1,
.aap-page-hero h1,
.aap-page-hero .page-title,
.aap-page-content .section-heading h1{
  font-size: var(--hero-h1);
  line-height: 1.12;
  letter-spacing: -0.02em;
  font-family: var(--font-heading);
  color: var(--color-navy);
  font-weight: 700;
}

.aap-hero__lead,
.aap-page-content .aap-hero > p{
  font-size: 1.05rem;
  color: var(--color-muted);
  line-height: 1.7;
  max-width: 62ch;
}

/* Alias: some content uses __ctas instead of __actions */
.aap-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-sm);
  align-items: center;
  margin-top: var(--sp-md);
}

/* Consistent hero top spacing across hero variants */

.section-heading { font-size: 1rem; } /* neutralize wrapper; child h1 is sized above */

@media (max-width: 600px) {
  :root { --hero-h1: clamp(1.75rem, 7vw, 2.2rem); }
  .aap-page-content > .aap-hero:first-child { padding-block: 3rem; }
}

/* ============================================================
   END — PAGE CONTENT COMPLETE COVERAGE
   ============================================================ */


/* ===== AUDIT FIXES v2 ===== */
.hero{padding-block:var(--sp-xl) calc(var(--sp-xl) + 1rem)}
.hero-grid{align-items:flex-start;gap:var(--sp-lg)}
.starting-point{border-top:1px solid var(--color-border)}
@media(max-width:600px){.eyebrow{font-size:.68rem;letter-spacing:.08em}}
@media(max-width:768px){.hero-visual{order:1;margin-top:var(--sp-md)}}
.aap-page-content > .aap-hero:first-child{padding-block:4rem !important}
@media(max-width:600px){.aap-page-content > .aap-hero:first-child{padding-block:2.75rem !important}}
.aap-page-wrapper{padding-block:var(--sp-lg) var(--sp-xl)}
.aap-hero .aap-btn--primary,.aap-hero__ctas .aap-btn--primary,.aap-hero__actions .aap-btn--primary{background:var(--color-blue)!important;color:#fff!important;border-color:var(--color-blue)!important}
.aap-hero .aap-btn--secondary,.aap-hero__ctas .aap-btn--secondary,.aap-hero__actions .aap-btn--secondary{color:var(--color-navy)!important;border-color:var(--color-border)!important}
@media(max-width:600px){.aap-hero__ctas,.aap-hero__actions{flex-direction:column;align-items:stretch}.aap-hero__ctas .aap-btn,.aap-hero__actions .aap-btn{width:100%;justify-content:center}}
.aap-hero__lead,.aap-hero > p,.aap-hero__inner > p{color:#4a5568}
.aap-card-grid,.aap-cards{align-items:stretch}.aap-card{display:flex;flex-direction:column}
@media(max-width:390px){[class*="aap-section--"] > .aap-section__inner{padding-inline:1rem}}
/* ===== END AUDIT FIXES v2 ===== */


/* Resource hub card component (native theme classes) */
.aap-card__label{display:block;font-family:var(--font-heading);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-coral);margin-bottom:.35rem}
.aap-card__link{display:inline-block;margin-top:auto;padding-top:.7rem;color:var(--color-blue);font-weight:600;font-size:.95rem;text-decoration:none}
.aap-card__link:hover{text-decoration:underline}



.recognition-proof{max-width:430px;margin:2.5rem auto 0;text-align:center}
.recognition-proof img{width:100%;height:auto;border-radius:12px;border:1px solid var(--color-border);box-shadow:0 10px 30px rgba(15,42,71,.12)}
.recognition-proof figcaption{margin-top:.7rem;color:var(--color-muted);font-size:.9rem}


/* Contact form styling */
.aap-contact-form{max-width:640px;margin:1.75rem 0 0;display:flex;flex-direction:column;gap:1.1rem}

.aap-contact-form label{display:flex;flex-direction:column;gap:.4rem;font-family:var(--font-heading);font-weight:600;color:var(--color-navy);font-size:.9rem}
.aap-contact-form input,.aap-contact-form textarea{width:100%;box-sizing:border-box;padding:.72rem .85rem;border:1px solid var(--color-border);border-radius:9px;font:inherit;font-weight:400;color:var(--color-text);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.aap-contact-form input:focus,.aap-contact-form textarea:focus{outline:none;border-color:var(--color-blue);box-shadow:0 0 0 3px rgba(26,86,219,.13)}

.aap-contact-form .aap-btn{align-self:flex-start;margin-top:.25rem;cursor:pointer;border:none}
@media(max-width:640px){.aap-form-grid{grid-template-columns:1fr}}

.aap-contact-form select{width:100%;box-sizing:border-box;padding:.72rem .85rem;border:1px solid var(--color-border);border-radius:9px;font:inherit;font-weight:400;color:var(--color-text);background:#fff;cursor:pointer}
.aap-contact-form select:focus{outline:none;border-color:var(--color-blue);box-shadow:0 0 0 3px rgba(26,86,219,.13)}


/* Founder bio layout (About) */
.aap-founder{display:grid;grid-template-columns:300px 1fr;gap:2.5rem;align-items:start}
.aap-founder__photo{margin:0}
.aap-founder__photo img{width:100%;height:auto;border-radius:14px;box-shadow:0 14px 40px rgba(15,42,71,.16);display:block}
.aap-founder__photo figcaption{margin-top:.75rem;font-family:var(--font-heading);font-weight:600;color:var(--color-navy);font-size:.92rem}
.aap-founder__bio h2{margin-top:0}
@media(max-width:720px){.aap-founder{grid-template-columns:1fr;gap:1.5rem}.aap-founder__photo{max-width:240px}}


/* Command Suite media sizing: show the complete 16:9 operator screen. */
.aap-demo__video-el,video.aap-demo__still-el{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#fff;border-radius:12px;display:block}
img.aap-demo__still-el{width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;background:var(--color-navy);border-radius:12px;display:block}








/* Brand colors (logo-accurate) — theme vars, no inline patches */
:root{--color-brand-red:#e40d11;--color-brand-blue:#063bb6}
.logo-brand{display:flex;flex-direction:column;justify-content:center;line-height:1.1}
.logo-wordmark{color:var(--color-navy)}
.logo-wordmark .logo-a{color:var(--color-brand-red)}
.logo-tagline{display:block;margin-top:3px;font-size:.6rem;line-height:1.25;letter-spacing:.012em;font-weight:500;color:var(--color-muted);max-width:60ch;text-align:center}
@media(max-width:768px){.logo-tagline{font-size:.44rem;line-height:1.4;max-width:200px;margin-top:2px}.site-header .logo{min-width:0;flex-shrink:1}.logo-brand{min-width:0}}


/* ── Premium polish (uniform, theme-wide) ─────────────── */



.aap-btn:hover{transform:translateY(-1px)}


.aap-card:hover .aap-card__link{transform:translateX(3px)}


/* Scroll reveal (guarded by .aap-anim so no-JS stays visible) */
.aap-anim .aap-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.16,.84,.44,1), transform .7s cubic-bezier(.16,.84,.44,1)}
.aap-anim .aap-reveal.aap-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.aap-anim .aap-reveal{opacity:1!important;transform:none!important;transition:none}}


/* Page hero media band (uniform) */
.aap-page-media{padding-top:0}
.aap-page-media .aap-section__inner{padding-top:0}
.aap-page-media__fig{margin:0}
.aap-page-media__fig img{display:block;width:100%;height:auto;max-height:430px;object-fit:cover;border-radius:16px;box-shadow:0 18px 48px rgba(15,42,71,.14)}


/* ── Visible premium polish (uniform) ───────────────── */
.aap-hero .eyebrow,.aap-hero__inner .eyebrow{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-coral);background:rgba(207,90,78,.09);border:1px solid rgba(207,90,78,.20);padding:.3rem .75rem;border-radius:999px;margin:0 0 1.7rem;line-height:1}
.aap-hero{background:linear-gradient(180deg,#f4f8fc 0%,#ffffff 80%)}
.aap-hero__lead,.aap-hero__subhead{font-size:1.16rem;line-height:1.7;color:var(--color-muted)}
/* 2026-10-07: the 52px dash above section H2s retired. It drew a third heading style beside the eyebrow pill and the plain H2 on the same page; the theme had already hidden it on every redesigned section. */
.aap-section__inner > h2::before,.section-heading::before{content:none;display:none}



.aap-cta-band{background:linear-gradient(135deg,#0f2a47 0%,#163a6b 55%,#1a56db 150%)}
.aap-btn--primary{transition:transform .2s ease,box-shadow .2s ease}

.aap-page-media__fig{overflow:hidden;border-radius:16px}
.aap-page-media__fig img{transition:transform .5s ease}
.aap-page-media__fig:hover img{transform:scale(1.04)}

/* Homepage hero rhyme with interior */
.hero{background:linear-gradient(180deg,#f4f8fc 0%,#ffffff 80%)}


/* ── CPT / billing code reference tables (additive, scoped) ── */
.aap-code-table{width:100%;border-collapse:collapse;margin:1.1rem 0 0;font-size:.97rem}
.aap-code-table th,.aap-code-table td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--color-border);vertical-align:top}
.aap-code-table thead th{background:rgba(26,86,219,.06);color:var(--color-navy);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
.aap-code-table td:first-child{font-weight:700;color:var(--color-blue);white-space:nowrap}
.aap-code-table tbody tr:hover{background:rgba(15,42,71,.025)}
.aap-code-note{font-size:.9rem;color:var(--color-muted);margin-top:.85rem}
.aap-code-disclaimer{background:rgba(207,90,78,.07);border:1px solid rgba(207,90,78,.22);border-radius:12px;padding:1.1rem 1.3rem;font-size:.92rem;color:var(--color-muted);line-height:1.6}
@media(max-width:640px){.aap-code-table{font-size:.85rem}.aap-code-table th,.aap-code-table td{padding:.55rem .5rem}}

/* ── Resources: authoritative source links (additive) ── */
.aap-source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.2rem 2rem;margin-top:1.2rem;list-style:none;padding:0}
.aap-source-grid li{margin:0}
.aap-source-grid a{display:block;padding:.75rem .2rem;border-bottom:1px solid var(--color-border);color:var(--color-blue);font-weight:600;text-decoration:none;transition:color .2s ease}
.aap-source-grid a:hover{color:var(--color-brand-blue)}
.aap-source-grid small{display:block;color:var(--color-muted);font-weight:400;font-size:.82rem;margin-top:.15rem}

/* ── Logo-left + bigger descriptor (mobile) ── */
@media(max-width:768px){
  .site-header .container{padding-left:4px}
  
  .logo-tagline{font-size:.64rem;line-height:1.4;max-width:none}
}


@media(max-width:345px){.logo-tagline{font-size:.56rem}}

/* center brand over tagline (mobile) */
@media(max-width:768px){.site-header .logo-brand{align-items:center;text-align:center}}

/* no-overlap fit: shrink tagline on narrow phones so it never spills over logo */
@media(min-width:346px) and (max-width:400px){.logo-tagline{font-size:.62rem}}

/* hero eyebrow two-line pill */
.hero .eyebrow{white-space:nowrap;line-height:1.35}

/* ── Contact form acknowledgment notice (premium, visible) ── */
.aap-form-notice{padding:1rem 1.2rem;border-radius:12px;margin:0 0 1.4rem;font-size:1rem;font-weight:600;line-height:1.5;display:flex;align-items:flex-start;gap:.6rem;box-shadow:0 6px 18px rgba(15,42,71,.08)}
.aap-form-notice--success{background:rgba(34,150,84,.10);border:1px solid rgba(34,150,84,.42);color:#1b7a45}
.aap-form-notice--error{background:rgba(207,90,78,.10);border:1px solid rgba(207,90,78,.42);color:#b23b30}
.aap-form-notice--success::before{content:"\2713";font-weight:800;font-size:1.1rem;line-height:1.4}
.aap-form-notice--error::before{content:"\26A0";font-weight:800;line-height:1.4}

/* ── Worksheet checklist (premium) ── */
.aap-check-list{list-style:none;padding:0;margin:1.1rem 0 0;display:grid;gap:.6rem}
.aap-check-list li{position:relative;padding:.75rem 1rem .75rem 2.7rem;background:#fff;border:1px solid var(--color-border);border-radius:10px;font-size:1rem;line-height:1.5;box-shadow:0 1px 3px rgba(15,42,71,.05)}
/* 2026-10-21 Ryan rules: fact lists use the same check icon as the package cards, never an empty checkbox square. */
.aap-check-list li::before{content:"";position:absolute;left:1rem;top:.95rem;width:18px;height:18px;border:0;border-radius:50%;background:#eef3fa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='%231a56db' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
.aap-check-list li::after{content:none}

/* mobile header breathing room */
@media(max-width:768px){
  .header-inner{padding-top:9px;padding-bottom:9px;align-items:center}
  .logo{align-items:center}
  .site-header .logo-brand{justify-content:center}
}

/* ── full-width mobile descriptor (its own row, readable) ── */
.header-mobile-tagline{display:none}
@media(max-width:768px){
  .header-inner{flex-wrap:wrap;gap:0;padding-top:7px;padding-bottom:3px}
  
  .site-header .logo-mark{max-height:40px;width:auto}
  .header-mobile-tagline{display:block;order:3;flex-basis:100%;width:100%;text-align:center;font-size:.8rem;line-height:1.5;color:var(--color-muted);letter-spacing:.01em;font-weight:500;padding:.05rem 1rem .3rem;margin-top:-2px}
}

/* RESTORE in-logo tagline centered under name (mobile) */
@media(max-width:768px){
  .header-mobile-tagline{display:none}
  .logo .logo-tagline{display:block}
  .logo-tagline{font-size:.6rem;line-height:1.45;max-width:none;text-align:center;margin-top:2px}
  
  .logo-brand{align-items:center}
  .header-inner{gap:0;padding-top:11px;padding-bottom:9px}
}

/* center brand group in header (mobile), hamburger floats right */
@media(max-width:768px){
  .header-inner{justify-content:flex-start;position:relative;padding-right:0}
  .site-header .logo{flex:1 1 auto;position:relative;min-width:0}
  .site-header .logo .logo-mark{position:absolute;left:0;top:50%;transform:translateY(-50%)}
  .site-header .logo-brand{margin:0 auto;text-align:center}
  .hamburger{position:absolute;right:0;top:50%;transform:translateY(-50%);margin:0}
}

/* tighter hero top (sitewide) */
.aap-hero,.hero{padding-top:40px}
@media(max-width:768px){.aap-hero,.hero{padding-top:26px}}

/* reduce interior hero top gap (wrapper + hero) */
.aap-page-wrapper{padding-top:8px}

@media(max-width:768px){
  .aap-page-wrapper{padding-top:4px}
  .aap-page-content .aap-hero{padding-top:22px}
}

/* homepage pill left-align */
.hero .eyebrow{display:table;margin:0 auto 1.7rem 0}

/* homepage hero left on mobile (consistent with desktop) */


/* hero top hard override */
.aap-page-content .aap-hero{padding-top:2rem}
@media(max-width:768px){.aap-page-content .aap-hero{padding-top:1.4rem}}

/* hero top force override */
body .aap-page-wrapper .aap-page-content .aap-hero{padding-top:2rem!important}
@media(max-width:768px){body .aap-page-wrapper .aap-page-content .aap-hero{padding-top:1.3rem!important}}










/* sticky mobile CTA bar (only rendered on contact page) */
.aap-mobile-cta-bar{display:none}
@media(max-width:768px){
  .aap-mobile-cta-bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:1200;background:#fff;border-top:1px solid var(--color-border);box-shadow:0 -4px 18px rgba(15,42,71,.12);padding:.55rem .9rem}
  .aap-mobile-cta-bar .aap-btn{display:block;width:100%;text-align:center}.aap-mobile-cta-bar .aap-btn--primary,.aap-mobile-cta-bar .aap-btn--primary:hover{color:#fff;background:var(--color-blue,#1a56db);border-color:var(--color-blue,#1a56db)}
  .page-id-17394 .site-footer{padding-bottom:90px}
}

/* ── contact form premium v2 + asterisk fix ── */
.aap-contact-form-wrap{background:#fff;border:1px solid var(--color-border);border-radius:16px;padding:1.9rem;box-shadow:0 12px 34px rgba(15,42,71,.07);max-width:720px;margin-top:1.5rem}
.aap-contact-form{max-width:none;margin-top:0}
.aap-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem 1.25rem}
.aap-contact-form label{display:block;font-family:var(--font-heading);font-weight:600;color:var(--color-navy);font-size:.82rem;letter-spacing:.01em}
.aap-contact-form label > input,.aap-contact-form label > select,.aap-contact-form label > textarea{display:block;width:100%;box-sizing:border-box;margin-top:.45rem}
.aap-contact-form label span[aria-hidden]{color:var(--color-coral);font-weight:700;margin-left:.15rem}
.aap-contact-form input,.aap-contact-form select,.aap-contact-form textarea{padding:.8rem .9rem;border:1px solid var(--color-border);border-radius:10px;background:#fbfcfe;font:inherit;font-weight:400;color:var(--color-text)}
.aap-contact-form input:focus,.aap-contact-form select:focus,.aap-contact-form textarea:focus{outline:none;border-color:var(--color-blue);background:#fff;box-shadow:0 0 0 3px rgba(26,86,219,.14)}
.aap-contact-form textarea{min-height:150px;resize:vertical}
.aap-contact-form .aap-btn{margin-top:.4rem;cursor:pointer;border:none}
@media(max-width:640px){.aap-contact-form-wrap{padding:1.2rem}.aap-form-grid{grid-template-columns:1fr}.aap-contact-form .aap-btn{display:block;width:100%;text-align:center}}

/* ════ PREMIUM REFINEMENT PHASE 2 (sitewide, theme) ════ */
.aap-section__inner > p{max-width:72ch}
.aap-card{border:1px solid var(--color-border);border-radius:14px;background:#fff;box-shadow:0 2px 10px rgba(15,42,71,.06);transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s ease,border-color .28s ease}
.aap-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px rgba(15,42,71,.15);border-color:rgba(26,86,219,.28)}
.aap-card__label,.aap-card .kicker{display:inline-flex;align-items:center;gap:.45rem;font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--color-blue);background:rgba(26,86,219,.08);padding:.34rem .72rem;border-radius:999px;margin-bottom:.8rem}
.aap-card__label::before,.aap-card .kicker::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-coral)}
.aap-card__link{display:inline-flex;align-items:center;gap:.3rem;font-weight:600;text-decoration:none;transition:gap .22s ease,color .2s ease}
.aap-card__link:hover{gap:.55rem;color:var(--color-brand-blue)}
.aap-btn{transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}
.aap-btn--primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(26,86,219,.30)}
html{scroll-behavior:smooth}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-blue);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* homepage card premium (front-page uses .card) */
.card{border:1px solid var(--color-border);border-radius:14px;background:#fff;box-shadow:0 2px 12px rgba(15,42,71,.07);transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s ease,border-color .28s ease}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 52px rgba(15,42,71,.16);border-color:rgba(26,86,219,.28)}
.card .kicker{display:inline-flex;align-items:center;gap:.45rem;font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--color-blue);background:rgba(26,86,219,.08);padding:.34rem .72rem;border-radius:999px;margin-bottom:.7rem}
.card .kicker::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-coral)}

/* text-card top accent (feature/audience cards without a label pill) */
.aap-card{position:relative}
.aap-card:not(:has(.aap-card__label)):not(:has(.kicker)){overflow:hidden}
.aap-card:not(:has(.aap-card__label)):not(:has(.kicker))::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-coral),var(--color-blue))}

/* ════ card service icons ════ */
.aap-card__icon{display:block;width:46px;height:46px;border-radius:13px;margin-bottom:1rem;background-size:24px 24px,cover;background-position:center,center;background-repeat:no-repeat,no-repeat}
.aap-ic-chart{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a56db' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20V4'/%3E%3Cpath d='M4 20h16'/%3E%3Cpath d='M8 17v-4M13 17V9M18 17V6'/%3E%3C/svg%3E"),linear-gradient(135deg,rgba(26,86,219,.10),rgba(207,90,78,.12))}
.aap-ic-alert{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a56db' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 2 20h20Z'/%3E%3Cpath d='M12 10v4M12 17h.01'/%3E%3C/svg%3E"),linear-gradient(135deg,rgba(26,86,219,.10),rgba(207,90,78,.12))}
.aap-ic-shield{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a56db' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 5 6v5c0 4 3 6.5 7 8 4-1.5 7-4 7-8V6Z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"),linear-gradient(135deg,rgba(26,86,219,.10),rgba(207,90,78,.12))}
.aap-ic-file{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a56db' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 3v5h5'/%3E%3C/svg%3E"),linear-gradient(135deg,rgba(26,86,219,.10),rgba(207,90,78,.12))}
.aap-ic-calendar{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a56db' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='16' rx='2'/%3E%3Cpath d='M8 3v4M16 3v4M4 10h16'/%3E%3C/svg%3E"),linear-gradient(135deg,rgba(26,86,219,.10),rgba(207,90,78,.12))}
.aap-ic-monitor{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a56db' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='13' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E"),linear-gradient(135deg,rgba(26,86,219,.10),rgba(207,90,78,.12))}
.aap-ic-spark{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a56db' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v5M12 16v5M3 12h5M16 12h5M6.5 6.5l3 3M14.5 14.5l3 3M17.5 6.5l-3 3M9.5 14.5l-3 3'/%3E%3C/svg%3E"),linear-gradient(135deg,rgba(26,86,219,.10),rgba(207,90,78,.12))}
.aap-ic-users{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a56db' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Cpath d='M3.5 19a5.5 5.5 0 0 1 11 0'/%3E%3Cpath d='M16 5.5a3 3 0 0 1 0 6'/%3E%3Cpath d='M19.5 19a5.5 5.5 0 0 0-3-5'/%3E%3C/svg%3E"),linear-gradient(135deg,rgba(26,86,219,.10),rgba(207,90,78,.12))}


/* === Page width alignment to homepage (match .container) === */
body .aap-page-wrapper{max-width:none;padding-left:0;padding-right:0}
body .aap-page-wrapper .aap-page-content,body .aap-page-wrapper>.aap-page-content{max-width:none;width:auto}
body .aap-page-content .aap-hero,body .aap-page-content .aap-section,body .aap-page-content .aap-cta-band,body .aap-page-content .aap-testi-band{max-width:none;margin-left:0;margin-right:0}
body .aap-page-content .aap-hero__inner,body .aap-page-content 
body .aap-page-content .aap-cta-band__inner{max-width:none;margin-left:0;margin-right:0}
body .aap-page-content .aap-card-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}

/* === Command Suite demo video sizing fix === */
.aap-demo-loop>.aap-container,.aap-demo-loop .aap-container{width:min(1040px,calc(100% - 64px));margin-left:auto;margin-right:auto}
.aap-demo-loop__video{width:100%;height:auto;display:block;border-radius:12px;aspect-ratio:16/9;object-fit:contain;background:#fff}
@media(max-width:768px){.aap-demo-loop>.aap-container,.aap-demo-loop .aap-container{width:calc(100% - 40px)}}


.aap-card__label,.aap-card .kicker,.card .kicker{display:none!important}


/* === Bigger mobile header logo === */
@media (max-width:768px){.site-header .logo .logo-mark{height:50px!important;max-height:50px!important;width:auto!important}}





.aap-services-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem 1.1rem}
.aap-check{display:flex;align-items:center;gap:.55rem;font-size:.93rem;color:var(--color-text,#1f2937);cursor:pointer;line-height:1.25;font-weight:400}
.aap-check input[type=checkbox]{display:inline-block;width:18px;height:18px;min-width:18px;margin:0;accent-color:var(--color-blue,#1a56db);cursor:pointer}
.aap-check span{display:inline}
@media (max-width:640px){.aap-services-grid{grid-template-columns:1fr}}


/* === Homepage hero single-column (Calendly moved to popup) === */
@media(min-width:901px){.hero .hero-grid{grid-template-columns:1.05fr .95fr;align-items:center;gap:var(--sp-xl)}}




/* === Related links block === */
.aap-related{max-width:1152px;margin:2.5rem auto 0;padding:1.3rem 1.6rem;border:1px solid var(--color-border,#e2e8f0);border-radius:14px;background:#f8fafc}
.aap-related__label{margin:0 0 .5rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--color-muted,#64748b)}
.aap-related__links{margin:0;display:flex;flex-wrap:wrap;gap:.4rem .9rem;font-weight:600;list-style:none;padding:0}
.aap-related__links a{color:var(--color-blue,#1a56db);text-decoration:none}
.aap-related__links a:hover{text-decoration:underline}


/* === Phase 4 legibility refinement === */
.eyebrow{font-size:.8rem;letter-spacing:.09em;line-height:1.3}
.card p,article.card p,.aap-card p{font-size:1rem;line-height:1.6}
.aap-related__label{font-size:.8rem}
.aap-related__links{font-size:1rem}
.aap-section p,.aap-faq p,.aap-page-content p,.aap-page-content li{line-height:1.65}
figcaption,.aap-demo__caption{font-size:.9rem}


/* === Phase 4 legibility fix-2 === */
.aap-hero .eyebrow,.aap-hero__inner .eyebrow{font-size:.8rem;letter-spacing:.09em}



/* === Phase 4 fullbleed interior sections (match homepage) === */
.aap-page-wrapper > .container{max-width:none;width:100%;padding-left:0;padding-right:0;margin-left:0;margin-right:0}
.aap-page-content{width:100%;max-width:none}
.aap-hero__inner,.aap-section__inner,.aap-cta-band__inner,.aap-related{max-width:1200px;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px;box-sizing:border-box}


/* === Phase 4 recenter inner (beats old max-width:none) === */
body .aap-page-content .aap-hero__inner,body .aap-page-content .aap-section__inner,body .aap-page-content .aap-cta-band__inner,body .aap-page-content .aap-related{max-width:1200px;width:100%;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px;box-sizing:border-box}


/* === Phase 4 layout fixes B (header flow, button wrap, PR list) === */




.btn,.aap-btn{max-width:100%}@media(max-width:600px){.btn,.aap-btn{white-space:normal}}






/* === Phase 4 mobile header clearance (tagline vs hamburger) === */




/* === Phase 4 header reset safe (tagline only, logo untouched) === */
@media(max-width:600px){.site-header .logo .logo-tagline{font-size:9px;letter-spacing:0}}


/* === Sitewide token normalization (consistency pass) === */
:root{--color-muted:#45516A!important}
.aap-section h2,.aap-page-content h2{font-size:32px;line-height:1.18}
.aap-card h3,.card .card-title,.card h3,.aap-section h3{font-size:20px;line-height:1.25}
.aap-section p,.aap-page-content p,.aap-card p,.card p,.aap-section li,.aap-page-content li{line-height:1.6}
.aap-section{padding-top:64px;padding-bottom:64px}

/* unify body line-height (safe; no color) */
.aap-section p,.aap-page-content p,.aap-card p,.card p,.aap-section li,.aap-page-content li{line-height:1.6!important}


/* === Premium depth float pass (billion-dollar) === */
:root{--elev-1:0 1px 2px rgba(15,42,71,.05),0 6px 16px rgba(15,42,71,.07);--elev-2:0 2px 6px rgba(15,42,71,.07),0 14px 32px rgba(15,42,71,.10);--elev-3:0 8px 20px rgba(15,42,71,.10),0 28px 56px rgba(15,42,71,.16)}
.aap-card,article.card,.aap-mod-card,.aap-proof-card{box-shadow:var(--elev-1);transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s cubic-bezier(.2,.7,.2,1)!important}
.aap-card__icon{box-shadow:0 2px 8px rgba(26,86,219,.14)}
.eyebrow{box-shadow:0 1px 2px rgba(207,90,78,.10),inset 0 1px 0 rgba(255,255,255,.45)}
.site-header{box-shadow:0 1px 0 rgba(15,42,71,.04),0 8px 28px rgba(15,42,71,.06)}
.aap-btn--primary,.btn-primary{background-image:linear-gradient(180deg,var(--color-blue),var(--color-blue));box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 6px 18px rgba(26,86,219,.30)}
@media(hover:hover){
.aap-card:hover,article.card:hover,.card:hover,.aap-mod-card:hover{transform:translateY(-6px);box-shadow:var(--elev-3)}
.aap-btn--primary:hover,.btn-primary:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 12px 26px rgba(26,86,219,.40);filter:brightness(1.04)}
.aap-page-media__fig:hover img{transform:translateY(-4px)}
}
.aap-btn--primary:active,.btn-primary:active{transform:translateY(0);box-shadow:inset 0 1px 2px rgba(0,0,0,.15),0 4px 12px rgba(26,86,219,.30)}


/* === CPT table responsive (mobile scroll) === */
@media(max-width:760px){
.aap-section__inner:has(> .aap-code-table){overflow-x:auto;-webkit-overflow-scrolling:touch}
.aap-code-table{min-width:560px;font-size:14px}
.aap-code-table th,.aap-code-table td{padding:9px 11px}
}

/* eyebrow AA contrast (coral darkened to ~4.8:1) */
.eyebrow,.aap-kicker{color:#ad3c31}


/* === Premium 3D tilt glass depth === */
.aap-card,article.card,.aap-mod-card{transform-style:preserve-3d;transition:transform .14s cubic-bezier(.2,.7,.2,1),box-shadow .3s cubic-bezier(.2,.7,.2,1)!important}
.site-header.is-scrolled{background:rgba(255,255,255,.97)!important;-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 1px 0 rgba(15,42,71,.06),0 12px 34px rgba(15,42,71,.12)}
.aap-hero{position:relative;overflow:hidden;isolation:isolate}
.aap-hero::before,.aap-hero::after{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(72px);pointer-events:none}
.aap-hero::before{width:440px;height:440px;background:radial-gradient(circle,#1a56db,transparent 70%);opacity:.28;top:-140px;right:-90px}
.aap-hero::after{width:380px;height:380px;background:radial-gradient(circle,#cf5a4e,transparent 70%);opacity:.20;bottom:-150px;left:-70px}
@media(prefers-reduced-motion:reduce){.aap-card,article.card,.aap-mod-card{transition:none!important}}











/* dash mobile bigger */


/* hero parallax blobs */
.aap-hero::before{transform:translateY(var(--pyA,0))}
.aap-hero::after{transform:translateY(var(--pyB,0))}
@media(prefers-reduced-motion:reduce){.aap-hero::before,.aap-hero::after{transform:none!important}}


/* === Refinement R5: gap, footer, section rhythm === */
/* collapse CTA-band -> footer dead space */
.aap-cta-band{padding-bottom:60px}

/* Dark, condensed, styled footer */










/* Section separation on homepage (alternating tint) */
.home section.section-pad:nth-of-type(odd){background:#ffffff}
.home section.section-pad:nth-of-type(even){background:#eef3fa}

/* === hero-visual frame === */
.hero-visual{position:relative}
.hero-visual img,.hero-visual video{width:100%;height:auto;display:block;border-radius:14px;border:1px solid rgba(15,42,71,.08);box-shadow:var(--elev-3,0 24px 60px rgba(15,42,71,.18));transform:perspective(1500px) rotateY(-5deg) rotateX(1.5deg)}
@media(hover:hover){.hero-visual img,.hero-visual video{transition:transform .4s cubic-bezier(.2,.7,.2,1)}.hero-visual img,.hero-visual video:hover{transform:perspective(1500px) rotateY(0deg) rotateX(0deg) translateY(-4px)}}
@media(max-width:860px){.hero-visual img,.hero-visual video{transform:none;margin-top:1.5rem}}


/* ===== R6 COLOR PASS (new component rules) ===== */
.cta-band .container{position:relative;z-index:1}
.cta-band::after{content:"";position:absolute;width:520px;height:520px;right:-150px;top:-210px;background:radial-gradient(circle,rgba(56,128,235,.30),transparent 70%);pointer-events:none;z-index:0}



/* ===== R6 Command Suite product shots (page-media slot) ===== */
.aap-page-media__fig--shot{overflow:visible}
.aap-page-media__fig--shot img{max-height:none;object-fit:contain;border:1px solid rgba(15,42,71,.10);background:#fff}
.aap-page-media__fig--shot:hover img{transform:none}
.aap-page-media__fig--shot figcaption{margin-top:.7rem;text-align:center;font-size:13px;color:#6b7785;font-style:italic}

/* ===== R7 ARTWORK: grain on dark bands + footer depth ===== */
.wp-theme-aap-premium footer.site-footer{position:relative;overflow:hidden}
.cta-band::before,.wp-theme-aap-premium footer.site-footer::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(/wp-content/themes/aap-premium/%23n)' opacity='0.55'/%3E%3C/svg%3E");opacity:.06;pointer-events:none;z-index:0;mix-blend-mode:overlay}
.wp-theme-aap-premium footer.site-footer::before{content:"";position:absolute;width:640px;height:640px;right:-220px;bottom:-300px;background:radial-gradient(circle,rgba(56,128,235,.20),transparent 70%);pointer-events:none;z-index:0}
.wp-theme-aap-premium footer.site-footer .footer-grid,.wp-theme-aap-premium footer.site-footer .footer-bottom{position:relative;z-index:1}


/* ===== R8: gap + mobile hero + color ===== */
.aap-page-content{display:flex;flex-direction:column}
.aap-page-content > .aap-cta-band{order:10}
@media(max-width:900px){.hero .hero-grid{display:flex;flex-direction:column;gap:0}.hero .hero-grid .hero-visual{order:2;margin:0 0 1.4rem}}
.aap-page-content section.aap-section:nth-of-type(even){background:#eef3fa}

/* R9 restore interior h1 desktop size (refactor fix) */
@media(min-width:769px){.aap-page-content h1,.aap-page-content .section-heading h1,.aap-page-content .aap-service-hero h1{font-size:48px;line-height:1.12}}

/* R10 mobile header declutter: drop services tagline on phones */
@media(max-width:768px){.site-header .logo-tagline{font-size:.72rem;letter-spacing:.01em}.site-header .logo-wordmark{font-size:1.25rem}}

/* R11 hero headline wrap: balance lines, avoid dangling-word gaps */
.hero-h1{text-wrap:balance}

/* R12 mobile tagline authoritative: show short logo-tagline, hide dup */
@media(max-width:768px){.site-header .logo-brand .logo-tagline{display:block!important;font-size:.72rem!important;line-height:1.45;letter-spacing:.005em;white-space:nowrap;color:#5b6675}.site-header .logo-brand .logo-wordmark{font-size:1.3rem!important}.site-header .header-mobile-tagline{display:none!important}.site-header .logo-brand{padding-block:2px}}

/* R13 mobile hero alignment: full-width CTAs, consistent left alignment */
@media(max-width:768px){.hero .hero-grid{text-align:left}.hero .hero-actions{flex-direction:column;align-items:stretch;gap:.75rem;width:100%}.hero .hero-actions .btn{width:100%;justify-content:center;text-align:center}}

/* R14 hero caption + keep visual stacked */
.hero-visual{flex-direction:column}


/* R15 mobile header overlap fix: clean flex row, brand clears logo, tagline fits */
@media(max-width:768px){.site-header a.logo{display:flex!important;flex-direction:row!important;align-items:center!important;gap:9px!important;flex:1 1 auto!important;min-width:0!important;margin-right:12px!important}.site-header a.logo img{position:static!important;flex:0 0 auto!important;height:44px!important;width:auto!important;max-width:none!important}.site-header .logo-brand{margin-left:0!important;text-align:left!important;align-items:flex-start!important;min-width:0!important;flex:1 1 auto!important}.site-header .logo-wordmark{font-size:1.08rem!important;white-space:nowrap}.site-header .logo-brand .logo-tagline{font-size:.72rem!important;white-space:normal!important;line-height:1.3!important;letter-spacing:0;color:#5b6675;max-width:100%!important}.site-header .header-mobile-tagline{display:none!important}}

/* R16 mobile hero top spacing: nudge heading down from header */
@media(max-width:768px){.hero .hero-grid{padding-top:1.4rem}}

/* R17 header robust: no horiz overflow, reserve space for absolute hamburger */
@media(max-width:768px){html,body{overflow-x:hidden!important}.site-header .header-inner{padding-right:58px!important;position:relative}.site-header a.logo{max-width:100%!important}.site-header .header-mobile-tagline{display:none!important}}

/* R18 logo vertical fix: kill the translateY that pushes logo off the top */
@media(max-width:768px){.site-header a.logo img,.site-header .logo-mark,.site-header .logo img{transform:none!important;top:auto!important;position:static!important;margin-top:0!important;margin-bottom:0!important;align-self:center!important}.site-header a.logo{align-items:center!important}}

/* R19 brand left-align: wrapped tagline aligns left */
@media(max-width:768px){.site-header .logo-brand,.site-header .logo-brand .logo-wordmark,.site-header .logo-brand .logo-tagline{text-align:left!important}.site-header .logo-brand{align-items:flex-start!important}}


/* ==========================================================================
   AAP-REDESIGN-2026-07 — premium component + rhythm layer
   Appended last so it wins at equal specificity. Uses existing :root tokens.
   ========================================================================== */

/* --- Display type scale-up (heroes + section headings read bigger) -------- */
.aap-hero h1 {
  font-size: clamp(2.4rem, 5vw, 3.9rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.03em !important;
}
.aap-hero .aap-hero__subhead,
.aap-hero__subhead {
  font-size: clamp(1.05rem, 1.6vw, 1.3rem);
  color: var(--color-muted);
  max-width: 60ch;
  line-height: 1.6;
  margin-bottom: 1.75rem;
}
.aap-section h2,
.aap-section__inner h2 {
  font-size: clamp(1.9rem, 3.4vw, 2.8rem) !important;
  letter-spacing: -0.025em !important;
  line-height: 1.12 !important;
}


/* --- Section rhythm: dark + tint variants --------------------------------- */
.aap-section--dark {
  background: var(--color-navy) !important;
}
.aap-section--dark h2,
.aap-section--dark h3,
.aap-section--dark .aap-eyebrow,
.aap-section--dark .eyebrow { color: #fff !important; }
.aap-section--dark p { color: rgba(255,255,255,.74) !important; }
.aap-section--tint { background: var(--color-bg-tint) !important; }
.aap-section--pad-lg { padding-block: clamp(4rem, 8vw, 7rem) !important; }

/* --- Eyebrow pill (unify the header pill look) ---------------------------- */
.aap-hero .eyebrow,
.aap-section .eyebrow {
  display: inline-block;
  font-family: var(--font-heading);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-blue);
  background: rgba(26,86,219,.09);
  padding: .4rem .85rem;
  border-radius: var(--radius-pill);
  margin-bottom: 1rem;
}
.aap-section--dark .eyebrow { color: #9fc0ff !important; background: rgba(255,255,255,.10); }

/* --- Dark hero (homepage) ------------------------------------------------- */
.aap-hero--dark {
  background: radial-gradient(120% 140% at 15% 0%, #143257 0%, var(--color-navy) 55%, #0b2138 100%) !important;
  color: #fff;
  padding-block: clamp(3.5rem, 7vw, 6rem) !important;
}
.aap-hero--dark h1 { color: #fff !important; }
.aap-hero--dark .aap-hero__subhead { color: rgba(255,255,255,.8) !important; }
.aap-hero--split {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: center;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 1.5rem;
}
@media (max-width: 900px) { .aap-hero--split { grid-template-columns: 1fr; } }

/* --- Browser frame for product screenshots -------------------------------- */
.aap-browser {
  border-radius: 12px;
  overflow: hidden;
  background: #0f1b2d;
  box-shadow: 0 30px 70px -20px rgba(3,12,26,.55), 0 6px 18px rgba(3,12,26,.3);
  border: 1px solid rgba(255,255,255,.08);
}
.aap-browser__bar {
  display: flex; align-items: center; gap: 6px;
  padding: 9px 12px; background: #1b2b41;
}
.aap-browser__bar i { width: 10px; height: 10px; border-radius: 50%; background: #33455f; display: inline-block; }
.aap-browser__bar i:nth-child(1){ background:#ff5f57 } .aap-browser__bar i:nth-child(2){ background:#febc2e } .aap-browser__bar i:nth-child(3){ background:#28c840 }
.aap-browser img, .aap-browser video { display: block; width: 100%; height: auto; }
.aap-browser video { aspect-ratio:16/9; object-fit:contain; background:#fff; }
.aap-hero .aap-browser video { object-fit:contain!important; background:#fff; }

/* --- Stat band ------------------------------------------------------------ */
.aap-stat-band__inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  max-width: 1100px; margin-inline: auto; padding-inline: 1.5rem;
  text-align: center;
}
@media (max-width: 720px){ .aap-stat-band__inner { grid-template-columns: 1fr; gap: 1.75rem; } }
.aap-stat__num {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: clamp(2.6rem, 6vw, 4rem);
  line-height: 1;
  letter-spacing: -0.03em;
  color: #fff;
}
.aap-section--dark .aap-stat__num { color: #fff; }
.aap-stat__label {
  margin-top: .6rem;
  font-size: .98rem;
  color: rgba(255,255,255,.72);
  line-height: 1.4;
}

/* --- Capability grid (the "yes we do that" answer) ------------------------ */
.aap-cap-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  max-width: 1100px; margin: 2.25rem auto 0; padding-inline: 1.5rem;
}
@media (max-width: 980px){ .aap-cap-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .aap-cap-grid { grid-template-columns: 1fr; } }
.aap-cap {
  display: block;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 1.25rem 1.25rem 1.35rem;
  text-decoration: none;
  transition: transform var(--t-mid), box-shadow var(--t-mid), border-color var(--t-mid);
}
.aap-cap:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); border-color: rgba(26,86,219,.35); }
.aap-cap__ic {
  width: 40px; height: 40px; border-radius: 10px;
  background: rgba(26,86,219,.10); color: var(--color-blue);
  display: flex; align-items: center; justify-content: center; margin-bottom: .75rem;
}
.aap-cap__ic svg { width: 21px; height: 21px; }
.aap-cap h3 { font-family: var(--font-heading); font-size: 1rem; font-weight: 700; color: var(--color-navy); margin: 0 0 .3rem; letter-spacing: -.01em; }
.aap-cap p { font-size: .86rem; color: var(--color-muted); line-height: 1.55; margin: 0; }

/* --- 3-step how-it-works -------------------------------------------------- */
.aap-steps {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem;
  max-width: 1100px; margin: 2.25rem auto 0; padding-inline: 1.5rem;
}
@media (max-width: 760px){ .aap-steps { grid-template-columns: 1fr; } }
.aap-step__n {
  font-family: var(--font-heading); font-weight: 800; font-size: 1rem;
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--color-blue); color: #fff;
  display: flex; align-items: center; justify-content: center; margin-bottom: .85rem;
}
.aap-step h3 { font-family: var(--font-heading); font-size: 1.15rem; color: var(--color-navy); margin: 0 0 .4rem; }
.aap-step p { font-size: .93rem; color: var(--color-muted); line-height: 1.6; margin: 0; }
.aap-section--dark .aap-step h3 { color:#fff; }

/* --- Split (screenshot beside text, alternating) -------------------------- */
.aap-split {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,4vw,3.5rem);
  align-items: center; max-width: 1100px; margin-inline: auto; padding-inline: 1.5rem;
}
.aap-split--flip .aap-split__media { order: -1; }
@media (max-width: 820px){ .aap-split { grid-template-columns: 1fr; } .aap-split--flip .aap-split__media { order: 0; } }
.aap-split__body h2 { margin-top: 0; }









/* --- Quote cards ---------------------------------------------------------- */
.aap-quotes { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; max-width: 1100px; margin: 2rem auto 0; padding-inline: 1.5rem; }
.aap-quotes--three { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1180px; }
@media (max-width: 1050px){ .aap-quotes--three { grid-template-columns: 1fr; max-width: 780px; } }
@media (max-width: 780px){ .aap-quotes { grid-template-columns: 1fr; } }
.aap-quote-card {
  background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg);
  padding: 1.75rem; box-shadow: var(--shadow-card);
}
.aap-quote-card blockquote { margin: 0 0 1.1rem; font-size: 1.02rem; line-height: 1.6; color: var(--color-navy); }
.aap-quote-card__who { display: flex; align-items: center; gap: .75rem; }

.aap-quote-card__who b { font-family: var(--font-heading); color: var(--color-navy); font-size: .92rem; display: block; }
.aap-quote-card__who span { font-size: .82rem; color: var(--color-muted); }







/* --- FAQ accordion -------------------------------------------------------- */
.aap-faq details {
  border: 1px solid var(--color-border); border-radius: var(--radius-md);
  padding: 0; margin-bottom: .75rem; background: #fff; overflow: hidden;
}
.aap-faq summary {
  list-style: none; cursor: pointer; padding: 1.05rem 1.25rem;
  font-family: var(--font-heading); font-weight: 600; color: var(--color-navy); font-size: 1.02rem;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
}
.aap-faq summary::-webkit-details-marker { display: none; }
.aap-faq summary::after { content: "+"; font-size: 1.4rem; color: var(--color-blue); font-weight: 400; line-height: 1; transition: transform var(--t-fast); }
.aap-faq details[open] summary::after { transform: rotate(45deg); }
.aap-faq details > *:not(summary) { padding: 0 1.25rem 1.15rem; margin: 0; color: var(--color-muted); line-height: 1.7; }
.aap-faq details p { max-width: none; }

/* --- Small helpers -------------------------------------------------------- */
.aap-center { text-align: center; }
.aap-lead-narrow { max-width: 60ch; margin-inline: auto; }
.aap-mt-0 { margin-top: 0; }

/* --- Homepage rhythm: disable auto even-tint; modifiers control backgrounds - */
body.home .aap-section:nth-of-type(even) { background: var(--color-bg); }
body.home .aap-section--tint { background: var(--color-bg-tint) !important; }
body.home .aap-section--dark { background: var(--color-navy) !important; }
body.home .hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }

/* --- Kill the decorative dash before H2 on redesigned sections (the eyebrow --- */
/*     pill already labels the section; the loose 52px dash reads as a glitch).  */
.aap-section--pad-lg .aap-section__inner > h2::before,
.aap-section--dark .aap-section__inner > h2::before,
.aap-section--tint .aap-section__inner > h2::before,
.aap-split__body > h2::before,
.aap-center > h2::before { display: none !important; }

/* --- Broaden dash-kill: any section that carries an eyebrow pill is the new  */
/*     pattern; the loose 52px ::before dash is redundant there. :has() scopes  */
/*     it precisely, leaving legacy dash-only sections untouched.               */
.aap-section__inner:has(> .eyebrow) > h2::before,
.aap-hero__inner:has(> .eyebrow) > h1::before { display: none !important; }

/* AAP wpautop-safe cap card description (block span replaces <p> in post content) */
.aap-cap .aap-cap__d,.aap-cap__d{display:block;font-size:.86rem;color:var(--color-muted);line-height:1.55;margin:0}


.aap-quotes{align-items:start}
.aap-quote-card{display:flex;flex-direction:column}
.aap-quote-card__who{margin-top:1.1rem}
.aap-quote-card blockquote p{margin:0 0 1.15rem;font-size:inherit;color:inherit;line-height:1.6}
.aap-quote-card blockquote p:last-child{margin-bottom:0}

/* ==========================================================================
   AAP-HUMAN-TRUST-2026-07 — clearer navigation and founder-led homepage
   ========================================================================== */

/* The expanded desktop IA needs a little more room before switching to the
   existing accessible drawer. */
@media (min-width:1121px) and (max-width:1320px){
  .site-header .nav-link{padding:.5rem .55rem;font-size:.81rem}
  .site-header .nav-cta{padding:.55rem .85rem;font-size:.78rem}
}
@media (max-width:1120px){
  .site-header .primary-nav{display:none}
  .site-header .hamburger{display:flex}
  .mobile-drawer{display:block}
}










/* Founder, career proof, client note, and independent recognition. */
.aap-home-trust{background:linear-gradient(180deg,#f5f8fc 0%,#fff 78%)!important}
.aap-home-trust__grid{
  display:grid;
  grid-template-columns:minmax(260px,350px) minmax(0,1fr);
  gap:clamp(2rem,6vw,5rem);
  align-items:start;
  width:min(1120px,calc(100% - 40px));
  margin-inline:auto;
}
.aap-founder-portrait{
  overflow:hidden;
  margin:0;
  border:1px solid #d6e1ee;
  border-radius:18px;
  background:#fff;
  box-shadow:0 24px 55px rgba(15,42,71,.14);
}
.aap-founder-portrait img{display:block;width:100%;height:auto;aspect-ratio:560/747;object-fit:cover}
.aap-founder-portrait figcaption{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.15rem 1.1rem}
.aap-founder-portrait figcaption strong{font-family:var(--font-heading);color:var(--color-navy);font-size:1rem}
.aap-founder-portrait figcaption span{color:var(--color-muted);font-size:.86rem}
.aap-home-trust__body h2{max-width:25ch;margin:.15rem 0 1.2rem}
.aap-home-trust__body>p{max-width:72ch;color:#455970;line-height:1.75}
.aap-home-trust__lead{font-size:1.08rem;color:var(--color-navy)!important}





.aap-home-trust__actions{display:flex;flex-wrap:wrap;align-items:center;margin:1.4rem 0 1.65rem}
.aap-home-trust__actions .aap-text-link{min-height:44px;display:inline-flex;align-items:center}
.aap-team-proof{
  display:grid;
  grid-template-columns:145px minmax(0,1fr);
  gap:1.25rem;
  align-items:center;
  margin:0;
  padding:1rem;
  border:1px solid #d8e3ef;
  border-radius:14px;
  background:#fff;
  box-shadow:0 12px 30px rgba(15,42,71,.08);
}
.aap-team-proof img{display:block;width:145px;height:145px;object-fit:cover;border:1px solid #e1e7ef;border-radius:9px}
.aap-team-proof figcaption{min-width:0}
.aap-team-proof figcaption p{margin:0 0 .5rem;color:#40546b;line-height:1.55}
.aap-team-proof figcaption .aap-team-proof__label{
  margin-bottom:.35rem;
  color:var(--color-blue);
  font-family:var(--font-heading);
  font-size:.73rem;
  font-weight:750;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.aap-team-proof small{display:block;margin-bottom:.6rem;color:#69798d;font-size:.76rem;line-height:1.45}



@media (max-width:820px){
  .aap-home-trust__grid{grid-template-columns:1fr}
  .aap-home-trust__media{width:min(330px,100%);margin-inline:auto}
  .aap-home-trust__body h2{max-width:22ch}
}
@media (max-width:620px){
  
  
  .aap-team-proof{grid-template-columns:88px minmax(0,1fr);gap:.9rem;padding:.85rem}
  .aap-team-proof img{width:88px;height:88px}
  .aap-home-trust__actions{align-items:stretch;flex-direction:column}
  .aap-home-trust__actions .aap-btn,.aap-home-trust__actions .aap-text-link{justify-content:center;width:100%}
}
@media (max-width:390px){
  .aap-team-proof{grid-template-columns:1fr}
  .aap-team-proof img{width:100%;height:auto;max-height:230px;object-position:top}
}
@media (prefers-reduced-motion:reduce){
  .aap-founder-portrait,.aap-team-proof{scroll-behavior:auto}
}



/* Homepage hero returned to its navy ground 2026-09-14. The 2026-09-12 light-hero
   block existed only because the header had gone navy and the two blended; the header
   is light again, so the hero reverts to the theme's own .aap-hero--dark treatment.
   Removed rather than overridden -- there is no light-hero CSS left to fight. */

/* Direct Payer Contracting: retain the existing hero paragraph gap below checkout. */
body.page-id-21272 .aap-hero__inner > .aap-secure-pay--hero + p {
  margin-top: var(--sp-lg);
}

/* Homepage proof and service bands, 2026-10-18 (two matching horizontal bands). */
html body.home[class] .aap-hp-proof-band {
  background: linear-gradient(180deg,#102841 0%,#0f2a47 100%); color: #c9d6e8;
  border-top: 1px solid rgba(255,255,255,.08); padding: var(--sp-xl) 0;
}
html body.home[class] .aap-hp-proof-band .aap-hp-proof {
  width: 100%; max-width: none!important; margin: 0; padding: 0; border: 0; list-style: none;
  display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0;
}
html body.home[class] .aap-hp-proof-band .aap-hp-proof { background: transparent; color: #c9d6e8; }
html body.home[class] .aap-hp-proof-band .aap-hp-proof > li {
  list-style: none; margin: 0; padding: 0 var(--sp-md); text-align: center;
  font-size: 1rem; line-height: 1.55;
}
html body.home[class] .aap-hp-proof-band .aap-hp-proof > li { color: #c9d6e8; background: transparent; border-left: 1px solid rgba(255,255,255,.14); }
html body.home[class] .aap-hp-proof-band .aap-hp-proof > li:first-child { border-left: 0; }
html body.home[class] .aap-hp-proof-band .aap-hp-proof > li::before { content: none!important; }
html body.home[class] .aap-hp-proof-band .aap-hp-proof strong {
  display: block; color: #fff; background: transparent; white-space: nowrap;
  font: 700 2.25rem/1.1 var(--font-heading); letter-spacing: -.01em; margin: 0 0 .5rem;
}
html body.home[class] .aap-hp-proof-band .aap-hp-proof span { display: block; color: #c9d6e8; background: transparent; }
html body.home[class] .aap-hp-proof-band .aap-hp-proof .aap-hp-proof__links { margin-top: .15rem; font-size: .875rem; line-height: 1.4; }
@media(max-width:1000px) {
  html body.home[class] .aap-hp-proof-band .aap-hp-proof { grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: var(--sp-lg); }
  html body.home[class] .aap-hp-proof-band .aap-hp-proof > li:nth-child(odd) { border-left: 0; }
}
@media(max-width:700px) {
  html body.home[class] .aap-hp-proof-band { padding: var(--sp-lg) 0; }
  html body.home[class] .aap-hp-proof-band .aap-hp-proof { row-gap: var(--sp-md); }
  html body.home[class] .aap-hp-proof-band .aap-hp-proof > li { padding: 0 .6rem; font-size: .875rem; }
  html body.home[class] .aap-hp-proof-band .aap-hp-proof strong { font-size: 1.75rem; }
}


@media(max-width:700px) {
  html body.home[class] section.aap-hp-proof-band ul.aap-hp-proof > li > strong { font-size: 1.5rem; white-space: normal; }
}
html body.home[class] .aap-hp-paying .aap-hp-head { max-width: none!important; }
html body.home[class] .aap-hp-paying ul.aap-hp-pay { max-width: none!important; width: 100%; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--sp-sm) var(--sp-lg); }
@media(max-width:900px) { html body.home[class] .aap-hp-paying ul.aap-hp-pay { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { html body.home[class] .aap-hp-paying ul.aap-hp-pay { grid-template-columns: 1fr; } }
/* Close the gap between the review ticker and the metrics band (both navy). */
html body.home[class] section.aap-hp-hero { padding-bottom: 0!important; }
html body.home[class] .aap-hp-hero .aap-hp-ticker { margin-bottom: 0!important; }
html body.home[class] section.aap-hp-proof-band { padding-top: var(--sp-lg); }
html body.home[class] section.aap-hp-proof-band { background: #0f2a47; }
@media(max-width:1240px) {
  html body.home[class] section.aap-hp-proof-band ul.aap-hp-proof > li > strong { font-size: 1.875rem; white-space: normal; }
}
/* Homepage section rhythm: 56px top and bottom so two stacked sections read as one gap, not 160px. */
html body.home[class] main section.aap-section.aap-section--pad-lg { padding-top: 56px!important; padding-bottom: 56px!important; }
@media(max-width:700px) { html body.home[class] main section.aap-section.aap-section--pad-lg { padding-top: 40px!important; padding-bottom: 40px!important; } }
/* Homepage situation cards: show what each package includes, right under the description (Ryan 10-18). */
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__name { order: 1; }
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__for { order: 2; }
html body.home[class] .aap-hp-router .aap-price-card > ul.aap-price-card__inc { order: 3; display: block!important; list-style: none; margin: 0 0 var(--sp-sm); padding: 0; color: var(--color-text); background: transparent; }
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__price { order: 4; }
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__detail { order: 5; }
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__cta { order: 6; }
html body.home[class] .aap-hp-router .aap-price-card > .aap-secure-pay { order: 7; }
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__how { order: 8; }
html body.home[class] .aap-hp-router ul.aap-price-card__inc > li { position: relative; padding-left: 1.5rem; margin: 0 0 .4rem; font-size: .9375rem; line-height: 1.5; color: var(--color-text); background: transparent; list-style: none; }
html body.home[class] .aap-hp-router ul.aap-price-card__inc > li::before { content: ""!important; position: absolute; left: 0; top: 0; color: var(--color-blue); font-weight: 700; }

/* Recognition links in the navy proof band: plain underlined links, no external icon (Ryan 10-18). */
html body.home[class] .aap-hp-proof-band .aap-hp-proof__links a::after,
html body.home[class] .aap-hp-proof-band .aap-hp-proof__links a::before { content: none!important; display: none!important; }
html body.home[class] .aap-hp-proof-band .aap-hp-proof__links a { white-space: nowrap; }
@media(max-width:700px) { html body.home[class] section.aap-hp-proof-band ul.aap-hp-proof > li > strong { font-size: 1.5rem; } }

/* Homepage situation cards: bigger titles and text, clear separation, one accent per card (Ryan 10-18). Top row = platform leavers and new clinicians (blue), lower row = existing practices (navy). */
html body.home[class] main section.aap-hp-router { background: #eef3fa!important; }
html body.home[class] .aap-hp-router .aap-price-grid { gap: 32px!important; }
html body.home[class] .aap-hp-router .aap-price-card { position: relative; border: 1px solid #7f93a9!important; border-top: 4px solid #0f2a47!important; box-shadow: 0 10px 28px -12px rgba(15,42,71,.28), 0 2px 6px rgba(15,42,71,.10)!important; }
html body.home[class] .aap-hp-router .aap-price-card:nth-child(-n+3) { border-top-color: #1a56db!important; }
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__name { font-size: 1.625rem!important; line-height: 1.25!important; }
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__for { font-size: 1.0625rem!important; line-height: 1.55!important; opacity: 1!important; }
html body.home[class] .aap-hp-router .aap-price-card > ul.aap-price-card__inc > li { font-size: 1rem!important; line-height: 1.5!important; padding-left: 1.6rem; }
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__price { font-size: 1rem!important; line-height: 1.5!important; }
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__detail,
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__how { font-size: 1rem!important; line-height: 1.5!important; }
@media(max-width:700px) {
  html body.home[class] .aap-hp-router .aap-price-grid { gap: 24px!important; }
  html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__name { font-size: 1.5rem!important; }
}
/* Homepage cards: beat the design-token h3 and tint-section overrides (id-boosted selectors). */
html body.home[class]:not(#vs):not(#vs2):not(#vs3) main section.aap-hp-router { background: #eef3fa!important; }
html body.home[class]:not(#vs):not(#vs2):not(#vs3) .aap-hp-router .aap-price-card > h3.aap-price-card__name { font-size: 1.625rem!important; line-height: 1.25!important; }
@media(max-width:700px) { html body.home[class]:not(#vs):not(#vs2):not(#vs3) .aap-hp-router .aap-price-card > h3.aap-price-card__name { font-size: 1.5rem!important; } }

/* Every package card sitewide matches the homepage card style (Ryan approved 10-18): framed card, navy top accent (blue on the featured card), bigger title and text. The homepage router keeps its own rules above. */
html body[class]:not(.home) .aap-price-card { position: relative; border: 1px solid #7f93a9!important; border-top: 4px solid #0f2a47!important; box-shadow: 0 10px 28px -12px rgba(15,42,71,.28), 0 2px 6px rgba(15,42,71,.10)!important; }
html body[class]:not(.home) .aap-price-card.aap-price-card--key { border-top-color: #1a56db!important; }
html body[class]:not(.home):not(#vs):not(#vs2):not(#vs3) .aap-price-card > .aap-price-card__name { font-size: 1.5rem!important; line-height: 1.25!important; }
html body[class]:not(.home) .aap-price-card > .aap-price-card__for { font-size: 1.0625rem!important; line-height: 1.55!important; opacity: 1!important; }
html body[class]:not(.home) .aap-price-card > ul.aap-price-card__inc > li { font-size: 1rem!important; line-height: 1.5!important; }
@media(max-width:700px) { html body[class]:not(.home):not(#vs):not(#vs2):not(#vs3) .aap-price-card > .aap-price-card__name { font-size: 1.375rem!important; } }

/* Price builder matches the package card frame (Ryan approved card style 10-18): navy top accent and the same border and shadow. */
html body[class] section.aap-credentialing-builder { border: 1px solid #7f93a9!important; border-top: 4px solid #0f2a47!important; box-shadow: 0 10px 28px -12px rgba(15,42,71,.28), 0 2px 6px rgba(15,42,71,.10)!important; }

/* About page numbers band: four items like the homepage band (Ryan 10-18), one row on desktop, two by two on phone. */
html body.page-id-17392 .aap-stat-band__inner { grid-template-columns: repeat(4,minmax(0,1fr))!important; gap: 24px!important; }
html body.page-id-17392 .aap-stat-band__inner .aap-stat__num { font-size: 2rem!important; line-height: 1.15!important; white-space: nowrap; }
@media(max-width:700px) { html body.page-id-17392 .aap-stat-band__inner { grid-template-columns: repeat(2,minmax(0,1fr))!important; row-gap: 28px!important; } html body.page-id-17392 .aap-stat-band__inner .aap-stat__num { font-size: 1.5rem!important; } }
/* Founder photo: centered when it stacks above the text on phones (Ryan 10-18). */
@media(max-width:820px) { html body[class] .aap-founder > .aap-founder__photo { justify-self: center!important; margin-left: auto!important; margin-right: auto!important; } }

/* Package price blocks that are plain sections (automation cost) get the same frame as the price builder (Ryan approved card style 10-18). */
html body[class] .aap-section__inner.aap-pkg-frame { border: 1px solid #7f93a9!important; border-top: 4px solid #0f2a47!important; border-radius: 16px; background: #fff; box-shadow: 0 10px 28px -12px rgba(15,42,71,.28), 0 2px 6px rgba(15,42,71,.10)!important; padding: clamp(24px,4vw,40px)!important; }
@media (max-width:700px) { html body[class] .aap-section__inner.aap-pkg-frame { margin-left: 24px!important; margin-right: 24px!important; width: auto!important; padding: 22px 20px!important; } }

/* 2026-10-20 site unify: small cleanup (headway paragraph measure, stand-behind H3 on the type scale, tighter phone homepage cards) */
html body.page-id-20848 .aap-section__inner > p { max-width: 760px; line-height: 1.7; }
html body[class] [class*="aap-standbehind"] h3 { font-size: 18px; }
@media (max-width:700px) {
  html body.home[class] .aap-price-grid { gap: 16px!important; }
  html body.home[class] .aap-price-card { padding: 20px!important; }
  html body.home[class] .aap-price-card__for { font-size: 15.5px!important; line-height: 1.5!important; }
  html body.home[class] .aap-price-card__inc { gap: 8px!important; }
  html body.home[class] .aap-price-card__inc li { font-size: 15px!important; line-height: 1.45!important; }
}

/* Homepage price lines: bold first line, small second line (Ryan 10-21). */
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__price--line .aap-price-card__lead { display: block; font-weight: 700; font-size: 1.25rem; line-height: 1.3; color: #0f2a47; }
html body.home[class] .aap-hp-router .aap-price-card > .aap-price-card__price--line .aap-price-card__rest { display: block; margin-top: 4px; font-weight: 400; font-size: .9375rem; line-height: 1.5; color: #5b6675; }

/* page-components.css */
/* Route eligibility and shared project-proof presentation. */
body.home .aap-hero .eyebrow{max-width:100%;line-height:1.35;text-wrap:balance}
body.aap-concierge-excluded :is(.aapc-launch,.aapc-panel){display:none!important}
body.aap-concierge-clearance .aapc-launch{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
/* Overlap with a control or heading lifts the launcher out of the way instead of removing it. */
body.aap-concierge-lift .aapc-launch{transform:translateY(-104px)!important;transition:transform .18s ease}
.aap-page-content,.aap-page-content>*{min-width:0}

/* Raw WordPress prose must use the same centered reading width as authored
   sections. Full-width components keep their own section and container rules. */
body.aap-layout-standard .aap-page-content>:is(h1,h2,h3,h4,p,ul,ol,blockquote,figure):not(.aap-hero):not(.aap-section):not(.aap-cta-band):not(.aap-related){box-sizing:border-box;width:min(800px,calc(100% - 48px));margin-left:auto;margin-right:auto}
body.aap-layout-standard .aap-page-content>h2{margin-top:clamp(42px,6vw,64px)}
body.aap-layout-standard .aap-page-content>h3{margin-top:clamp(30px,4vw,44px)}
body.aap-layout-standard .aap-page-content>:is(h1,h2,h3,h4)+:is(p,ul,ol,.lede,.aap-lead,.aap-hero__subhead){margin-top:clamp(12px,2vw,18px)}

/* A page-family heading must retain clear separation from its opening answer. */
:is(body.aap-family-pmhnp-state,body.aap-family-credentialing-state) .aap-page-content :is(.aap-hero,.hero) h1+:is(p,.lede,.aap-hero__subhead){margin-top:clamp(18px,2.4vw,26px)!important}

/* Controls can grow vertically, but must never clip or force page overflow. */
.aap-page-content :is(.aap-btn,.btn,button,[role="button"]),.aap-command-tour-grid :is(a,button){box-sizing:border-box;max-width:100%;min-width:0;height:auto;overflow:visible;white-space:normal;text-wrap:balance;overflow-wrap:break-word}
.aap-command-tour-grid>*{min-width:0}
.aap-command-tour-grid :is(a,button){display:inline-flex;align-items:center;justify-content:center;line-height:1.3}

/* Fail closed when two identical shared panels are emitted consecutively. */
.aap-outcome-next-step+.aap-outcome-next-step,.aap-bridge+.aap-bridge,.aap-paytrust+.aap-paytrust,[data-aap-live-service-decision]+[data-aap-live-service-decision]{display:none!important}
.aap-package-tailoring{box-sizing:border-box;width:calc(100% - 40px);max-width:1120px;margin:0 auto 40px;font-size:1rem;line-height:1.65}
@media(min-width:901px){body .aap-project-availability[data-aap-context="money-page"]{width:fit-content;max-width:100%}}
.aap-proof-page{box-sizing:border-box;width:calc(100% - 40px);max-width:1200px;margin:0 auto;padding:56px 0;color:#18344e}
.aap-proof-page *{box-sizing:border-box}
.aap-proof-intro{max-width:800px;margin:0 0 40px}
.aap-proof-page h1{margin:0 0 20px;font-size:clamp(30px,4vw,48px);line-height:1.12;color:#0b2b4b}
.aap-proof-page h2{margin:0 0 16px;font-size:clamp(24px,3vw,34px);line-height:1.2;color:#0b2b4b}
.aap-proof-page h3{margin:0 0 12px;font-size:22px;line-height:1.25;color:#0b2b4b}
.aap-proof-page p,.aap-proof-page li{font-size:17px;line-height:1.65}
.aap-proof-page p{margin:0 0 18px}
.aap-proof-section{margin:0;padding:48px 0;border-top:1px solid #dbe3eb}
.aap-proof-section>p,.aap-proof-section>ul{max-width:800px}
.aap-proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:28px 0}
.aap-proof-card{min-width:0;padding:26px;border:1px solid #dbe3eb;border-radius:14px;background:#fff}
.aap-proof-card p{font-size:16px}
.aap-proof-card a:not(.aap-btn){font-weight:700;text-underline-offset:4px}
.aap-proof-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}
.aap-proof-step{padding:20px;background:#f3f7fa;border-radius:10px;min-width:0}
.aap-proof-page :is(figure,details){margin:24px 0;max-width:1040px}
.aap-proof-page figure img{display:block;max-width:100%;height:auto}
.aap-proof-page figcaption{margin-top:12px;color:#52647a;font-size:14px;line-height:1.5}
.aap-proof-artifact{padding:24px;border:1px solid #cfdae4;border-left:4px solid #1470be;border-radius:0 12px 12px 0;background:#f7f9fb}
.aap-proof-artifact figcaption{margin:0 0 20px;font-weight:700;color:#29465f}
.aap-proof-artifact blockquote{margin:0;padding:0;border:0;font-style:normal}
.aap-proof-artifact blockquote p,.aap-proof-artifact blockquote li{font-size:17px;line-height:1.65}
.aap-proof-artifact time{white-space:nowrap}
.aap-proof-page .aap-proof-caption{font-size:14px;line-height:1.55;color:#52647a}
.aap-home-project-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:1200px;margin:48px auto}
.aap-home-project-proof article{min-width:0;padding:24px 0;border-top:3px solid #1470be}
.aap-home-project-proof h3{font-size:24px;line-height:1.25;margin:12px 0 16px;color:#0b2b4b}
.aap-home-project-proof p{font-size:16px;line-height:1.6}
.aap-home-project-proof a{font-weight:700;text-underline-offset:4px}
@media(max-width:900px){.aap-home-project-proof{grid-template-columns:1fr;gap:12px;margin:36px auto}}
.aap-proof-page details{border:1px solid #dbe3eb;border-radius:10px;padding:18px 20px}
.aap-proof-page summary{font-weight:700;cursor:pointer;min-height:28px}
.aap-proof-page details[open] summary{margin-bottom:20px}
.aap-proof-next{padding:32px 0 0;border-top:1px solid #dbe3eb}
.aap-proof-next+p{margin-top:16px}
.aap-proof-actions{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;margin:22px 0 0}
.aap-proof-actions .aap-btn{min-height:48px;max-width:100%;white-space:normal;text-align:center}
@media(max-width:900px){.aap-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.aap-proof-page{padding-block:40px}.aap-proof-section{padding-block:36px}}
@media(max-width:600px){.aap-proof-grid,.aap-proof-flow{grid-template-columns:minmax(0,1fr);gap:20px}.aap-proof-card{padding:22px}.aap-proof-page{padding-block:32px}.aap-proof-intro{margin-bottom:28px}.aap-proof-actions{align-items:stretch}.aap-proof-actions .aap-btn{width:100%}}
@media(max-width:640px){body.aap-layout-standard .aap-page-content>:is(h1,h2,h3,h4,p,ul,ol,blockquote,figure):not(.aap-hero):not(.aap-section):not(.aap-cta-band):not(.aap-related){width:calc(100% - 40px)}}

/* site-polish.css */
/* Shared site polish. Loaded once after page-components.css. */
.aap-btn--primary,a.aap-btn--primary,.btn-primary,a.btn-primary{color:#fff!important}
.aap-cta-band .aap-btn--primary,.aap-cta-band a.aap-btn--primary,.aap-cta-band .btn-primary,.aap-cta-band a.btn-primary{color:#fff!important}
.aap-cta-band .aap-btn--primary:hover,.aap-cta-band a.aap-btn--primary:hover{color:#fff!important}

ol.aap-steps,ol.aap-steps>li{list-style:none!important}
a.aap-pkg,a.aap-cap{text-decoration:none!important}


/* Button rhythm and footer lockup. */
.aap-hero__inner a.aap-btn,.aap-hero__inner a.btn,.aap-cta-band__inner a.aap-btn,.aap-cta-band__inner a.btn,.aap-cta-band__actions a.aap-btn,.aap-cta-band__actions a.btn{margin:7px 14px 7px 0}
.aap-hero__inner a.aap-btn:last-child,.aap-cta-band__inner a.aap-btn:last-child{margin-right:0}
.hero-actions,.mobile-cta-group,.aap-cta-band__actions{gap:14px!important}
.site-footer .footer-brand{min-width:0!important;max-width:100%!important;margin-right:0!important}
.site-footer .aap-footer-grid--refined .footer-brand>.aap-footer-lockup{column-gap:12px!important}
.footer-tagline{max-width:46ch!important;margin-top:1.15rem!important;line-height:1.75!important}
.site-footer .footer-brand .logo{width:100%!important;max-width:320px!important;margin-bottom:1.15rem!important;display:block!important}
.site-footer .footer-brand .site-logo-img{display:block!important;width:100%!important;max-width:320px!important;height:auto!important;max-height:none!important;margin-bottom:0!important;object-fit:contain!important;object-position:left center!important}

/* Header and compact Concierge clearance. */
@media(max-width:900px){
  header .hamburger,.header-inner .hamburger,.hamburger{right:14px!important}
  .aap-mobile-cta-bar{padding-left:14px!important;padding-right:14px!important}
  body:not(.home):has(.aap-action-rail.is-visible:not(.aap-has-visible-choice)) .aapc-launch{bottom:calc(88px + env(safe-area-inset-bottom,0px))!important}
}
@media(max-width:380px){header .hamburger,.header-inner .hamburger,.hamburger{right:11px!important}}
/* 2026-09-10: the compact 44px launcher and label hide were removed so the mobile label
   (aap-chat-launcher-label.php) shows again, and the Command Suite desktop hide was dropped. */
@media(max-width:480px){
  .site-header .header-inner>.logo{width:min(230px,calc(100vw - 145px))!important;max-width:230px!important;min-width:0!important;flex:0 1 230px!important}
  .site-header .header-inner>.logo>.site-logo-img{width:auto!important;max-width:230px!important;height:52px!important;object-fit:contain!important}
}
@media(max-width:340px){
  .site-header .header-inner>.logo{width:158px!important;max-width:158px!important;flex-basis:158px!important}
  .site-header .header-inner>.logo>.site-logo-img{width:auto!important;max-width:158px!important;height:42px!important}
}



.aap-card .aap-btn,.aap-pay .aap-btn{margin:8px 12px 8px 0;min-height:46px;height:auto;max-width:100%;vertical-align:middle;white-space:normal;text-wrap:balance;overflow:visible}
.aap-card .aap-btn:last-of-type,.aap-pay .aap-btn:last-of-type{margin-right:0}
.aap-card p+.aap-btn{margin-top:12px}
@media(max-width:640px){
  
  .aap-card .aap-btn,.aap-pay .aap-btn{display:flex;width:100%;margin:10px 0;text-align:center;justify-content:center}
}

/* Desktop brand basis. */
@media(min-width:901px){
  .site-header .header-inner>.logo{display:flex!important;flex:0 0 240px!important;width:240px!important;min-width:240px!important;max-width:240px!important}
  .site-header .header-inner>.logo>.site-logo-img{display:block!important;width:auto!important;max-width:240px!important;height:56px!important;max-height:56px!important;object-fit:contain!important;object-position:left center!important;flex:0 0 auto!important}
}

/* Secondary outcome controls must remain visible on light cards. */
body .aap-outcome-offer-card .aap-outcome-btn.aap-outcome-btn--secondary,body .aap-outcome-next-step .aap-outcome-btn.aap-outcome-btn--secondary{border-color:#b9ccdf!important;background:#fff!important;color:var(--color-blue-dark,#1547b8)!important;box-shadow:none!important}
body .aap-outcome-offer-card .aap-outcome-btn.aap-outcome-btn--secondary:hover,body .aap-outcome-next-step .aap-outcome-btn.aap-outcome-btn--secondary:hover{border-color:var(--color-blue)!important;background:#f1f7fd!important;color:var(--color-blue-dark,#1547b8)!important}

/* Forms, anchor focus, and reduced motion. */
.aap-team-proof small{color:#637387!important}
.aap-fit-form input,.aap-fit-form select,.aap-fit-form textarea,.aap-contact-form input,.aap-contact-form select,.aap-contact-form textarea,.wpforms-container input,.wpforms-container select,.wpforms-container textarea{border-color:#8491a3!important}
.aap-fit-form input::placeholder,.aap-fit-form textarea::placeholder,.aap-contact-form input::placeholder,.aap-contact-form textarea::placeholder,.wpforms-container input::placeholder,.wpforms-container textarea::placeholder{color:#64748b!important;opacity:1!important}
.aap-contact-form label span[aria-hidden]{color:#ad3c31!important}
html{scroll-padding-top:88px}
main [id]{scroll-margin-top:88px}
.aap-skip-link{position:fixed;z-index:2147483647;top:-80px;left:14px;padding:11px 16px;border:2px solid #fff;border-radius:8px;background:#0f2a47;color:#fff!important;font-weight:800;text-decoration:none!important;box-shadow:0 8px 24px rgba(15,42,71,.24)}
.aap-skip-link:focus-visible{top:14px;outline:3px solid #83bdf3;outline-offset:3px}
@media(max-width:760px){.site-footer .aap-footer-grid--refined .footer-brand>.aap-footer-lockup{column-gap:10px!important}}
@media(prefers-reduced-motion:reduce){.aap-cband__dot{animation:none!important}}

/* Long reference tables become labeled rows on phones and tablets. */
@media(max-width:900px){
  main table.aap-responsive-stack{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;border:0!important;background:transparent!important;box-shadow:none!important;box-sizing:border-box!important}
  main table.aap-responsive-stack thead{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
  main table.aap-responsive-stack tbody{display:grid!important;width:100%!important;gap:12px!important}
  main table.aap-responsive-stack tr{display:block!important;width:100%!important;margin:0!important;padding:5px 14px!important;border:1px solid #d8e3ef!important;border-radius:12px!important;background:#fff!important;box-shadow:0 3px 12px rgba(15,42,71,.05)!important;box-sizing:border-box!important}
  main table.aap-responsive-stack td,main table.aap-responsive-stack tbody th{display:grid!important;grid-template-columns:minmax(110px,36%) minmax(0,1fr)!important;gap:12px!important;width:100%!important;min-width:0!important;padding:10px 0!important;border:0!important;border-bottom:1px solid #e4ebf2!important;text-align:left!important;white-space:normal!important;overflow-wrap:anywhere!important;box-sizing:border-box!important}
  main table.aap-responsive-stack td:last-child,main table.aap-responsive-stack tbody th:last-child{border-bottom:0!important}
  main table.aap-responsive-stack .aap-cell-value{display:block!important;min-width:0!important}
  main .aap-table-scroll{overflow-x:auto!important;-webkit-overflow-scrolling:touch;max-width:100%!important}
  main .aap-table-scroll>table{width:max-content!important;min-width:100%!important;max-width:none!important}
  main table.aap-responsive-stack td:not([data-aap-label]),main table.aap-responsive-stack tbody th:not([data-aap-label]){grid-template-columns:minmax(0,1fr)!important;font-weight:750!important;color:#0f2a47!important}
  main table.aap-responsive-stack td:not([data-aap-label])::before,main table.aap-responsive-stack tbody th:not([data-aap-label])::before{content:none!important}
  main table.aap-responsive-stack td::before,main table.aap-responsive-stack tbody th::before{content:attr(data-aap-label);color:#0f2a47;font-size:.76rem;font-weight:800;line-height:1.35;letter-spacing:.025em;text-transform:uppercase}
}
@media(max-width:480px){
  main table.aap-responsive-stack td,main table.aap-responsive-stack tbody th{grid-template-columns:1fr!important;gap:5px!important}
}

/* Give the homepage introduction enough room to read as separate decisions. */
body.home .aap-hero__body>.eyebrow{margin-bottom:clamp(24px,2.3vw,32px)!important}
body.home .aap-hero__body>h1{margin:0 auto clamp(28px,2.7vw,38px)!important;line-height:1.09!important}
body.home .aap-hero__body>.aap-hero__subhead{margin:0 auto clamp(24px,2.2vw,32px)!important;line-height:1.68!important}
body.home .aap-hero__body>.aap-hero__subhead--first{margin-bottom:clamp(11px,1.15vw,16px)!important}
body.home .aap-hero__body>.aap-hero__audience{margin:0 auto clamp(10px,1.15vw,16px)!important;line-height:1.68!important}
body.home .aap-hero__body>.aap-hero__location{margin:0 auto clamp(26px,2.4vw,34px)!important;color:rgba(255,255,255,.88)!important;font-weight:700;line-height:1.6!important}
body.home .aap-hero__body>.aap-project-availability{width:fit-content!important;max-width:100%!important;margin:0 auto clamp(24px,2.2vw,30px)!important}
body.home .aap-hero__body>.hero-actions{margin:0 0 clamp(25px,2.3vw,32px)!important}
body.home .aap-hero__body>.aap-hero__assist{margin-top:0!important;line-height:1.65!important}
@media(max-width:700px){
  body.home .aap-hero--dark{padding-top:3.65rem!important;padding-bottom:3.8rem!important}
  body.home .aap-hero__body>h1{line-height:1.12!important}
  body.home .aap-hero__body>.aap-hero__subhead,body.home .aap-hero__body>.aap-hero__audience{line-height:1.64!important}
  body.home .aap-hero__body>.aap-hero__location{font-size:clamp(.875rem,3.8vw,.9375rem)!important;white-space:nowrap}
}
@media(max-width:340px){body.home .aap-hero__body>.aap-hero__location{white-space:normal}}

/* Preserve the full header mark without compressing its natural proportions. */
.site-header .header-inner>.logo{min-width:0!important;max-width:250px!important}
.site-header .header-inner>.logo>.site-logo-img{display:block!important;width:100%!important;max-width:250px!important;height:auto!important;max-height:none!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:left center!important}
@media(min-width:901px){.site-header .header-inner>.logo{flex:0 0 250px!important;width:250px!important}}
@media(max-width:900px){.site-header .header-inner>.logo{flex:0 1 min(240px,calc(100vw - 92px))!important;width:min(240px,calc(100vw - 92px))!important}.site-header .header-inner>.logo>.site-logo-img{max-width:240px!important}}

/* Present the trust details as one aligned list instead of loose text. */
body.home .aap-hero__assist{display:grid!important;grid-template-columns:minmax(0,1.1fr) minmax(0,1.45fr) max-content!important;align-items:center!important;gap:18px 24px!important;width:100%!important;max-width:1120px!important;margin-left:auto!important;margin-right:auto!important;text-align:left!important}
body.home .aap-hero__assist>span{display:inline-flex!important;flex:0 0 auto!important;align-items:flex-start!important;gap:9px!important;margin:0!important}
body.home .aap-hero__assist>span::before{content:'•';flex:0 0 auto;color:#55b7ef;font-size:1.15em;line-height:1.35}
@media(max-width:900px){body.home .aap-hero__body>.aap-project-availability{width:100%!important}body.home .aap-hero__assist{grid-template-columns:1fr!important;width:fit-content!important;max-width:100%!important;gap:10px!important;justify-content:start!important}body.home .aap-hero__assist>span{width:100%!important}}

/* Keep page-family widths aligned with the shared 1200px container. */
body.aap-family-packages .aap-hero h1{max-width:24ch!important}
body.aap-family-packages .aap-hero .aap-hero__subhead{max-width:75ch!important}

/* Project proof uses the same mobile gutter and card treatment as nearby sections. */
@media(max-width:900px){
  body.home .aap-home-project-proof{box-sizing:border-box;width:calc(100% - 40px)!important;max-width:1200px!important;margin:30px auto 36px!important}
  body.home .aap-home-project-proof article{box-sizing:border-box;width:100%;padding:22px 20px;border:1px solid #d8e3ef;border-top:3px solid #1470be;border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(15,42,71,.06)}
}

/* The referral shortcode already owns its spacing. Avoid a second generic section inset. */
body.aap-route-oregon-practice-referrals .aap-page-content>:is(.aap-or-referral-hero,.aap-or-referral-types,.aap-or-referral-note){padding-top:0!important;padding-bottom:0!important}
body.aap-route-oregon-practice-referrals .aap-or-referral-hero{margin-top:clamp(34px,5vw,56px);margin-bottom:clamp(24px,4vw,40px)}
body.aap-route-oregon-practice-referrals .aap-or-referral-types{margin-top:0;margin-bottom:clamp(28px,4vw,44px)}
body.aap-route-oregon-practice-referrals .aap-or-referral-note{margin-top:0;margin-bottom:clamp(44px,6vw,68px);padding:clamp(22px,3vw,28px)!important}

@media(max-width:640px){
  body.aap-family-packages .aap-page-wrapper .aap-page-content .aap-hero>.aap-hero__inner{padding-inline:0!important}
  body.aap-family-packages .aap-hero h1{max-width:none!important}
  body.aap-route-oregon-practice-referrals .aap-or-referral-hero{margin-top:32px;margin-bottom:24px}
  body.aap-route-oregon-practice-referrals .aap-or-referral-types{margin-bottom:28px}
  body.aap-route-oregon-practice-referrals .aap-or-referral-note{margin-bottom:48px;padding:22px 20px!important}
}
/* The EHR switch block ships its own layout inside page content and misses the
   site gutters: flush to the screen edge on phones, full bleed on desktop. */
main .aap-ehr-switch{box-sizing:border-box!important;width:100%!important;max-width:1200px!important;margin-inline:auto!important;padding-inline:24px!important;align-self:center!important}
/* --color-muted and the default link blue are chosen for light grounds. On the
   navy panels they fall to 1.83:1 and 2.52:1, so those panels get their own pair. */
.aap-roi-results .aap-roi-cap,.aap-roi-results .aap-roi-note{color:#CBD9EA!important}
.aap-page-content .aap-standbehind a:not(.aap-btn){color:#8FBEF0}
.aap-page-content .aap-standbehind__foot a:not(.aap-btn){color:#FFFFFF}
.aap-page-content .aap-standbehind a:not(.aap-btn):hover{color:#B9D6F6}

/* === Typography and touch targets — 2026-09-05 === */
/* Eyebrow labels sit above nearly every H1 and section heading, and six scoped
   rules size them differently: .aap-hero/.aap-section .eyebrow at .72rem
   (11.5px, the most common), .aap-ehr and .aap-bridge at .76rem (12.2px),
   .aap-state, .aap-answers and .aap-standbehind at .78rem (12.5px), the bare
   .eyebrow at .8rem (12.8px). Every scoped rule is (0,2,0) and several print
   after this sheet, so the unifying selector is (0,2,1). The CTA band eyebrow
   ("Ready To Start?") keeps its deliberately larger 1.05rem. */
.eyebrow,
body :is(.aap-hero,.aap-section,.aap-state,.aap-ehr,.aap-bridge,.aap-answers,.aap-standbehind,.hero) .eyebrow{font-size:.8125rem;letter-spacing:.1em}
/* The CTA band eyebrow inherits the bare .eyebrow tracking; keep its .09em. */
.aap-cta-band .eyebrow{letter-spacing:.09em}
/* At 13px a 34+ character pill wraps on a 390px phone (it already does at
   360px today); balance the two lines instead of leaving a one-word tail. */
@media(max-width:480px){body :is(.aap-hero,.aap-section) .eyebrow{text-wrap:balance}}
/* premium-safety.css forces the recognition pill to .65rem !important below
   700px so it stays on one line, so !important is required here. At 13px the
   pill still fits on one line at 390px and wraps instead of overflowing on
   narrower phones. */
@media(max-width:700px){
  body :is(.aap-recognition-proof,.aap-section--recognition) .eyebrow{font-size:.8125rem!important;letter-spacing:.1em!important;white-space:normal;text-wrap:balance}
}
/* Header CTA: #aap-nav-fit (functions.php) drops it to .76rem !important from
   1200 to 1499px, so !important is required. .82rem is what .btn-sm gives it
   from 1500px up and what the nav links use from 1200 to 1499px. */
@media(min-width:1200px){.site-header .primary-nav a.nav-cta{font-size:.82rem!important}}
/* Footer column headings: functions.php sets 12px !important, so !important is required. */
footer.site-footer .footer-col-heading{font-size:.8125rem!important}
/* Phone tap targets. The header logo link was exactly the image box (240x38).
   min-height lifts the link to 44px wherever the hamburger header is shown. Up
   to 768px the logo is the tallest child, so the header padding drops from 8px
   to 5px (#aap-header-left sets it !important) and the header height (54px)
   and image position do not change; from 769px the 44px hamburger already sets
   the height. The footer link "About" was 39px wide: footer links get a 44px
   minimum width at the same breakpoint where premium-shell gives them a 44px
   minimum height. */
@media(max-width:1199px){.site-header .header-inner>a.logo{min-height:44px}}
@media(max-width:768px){header.site-header .header-inner{padding-top:5px!important;padding-bottom:5px!important}}
@media(max-width:560px){.site-footer .aap-footer-section .footer-links a{min-width:44px}}
/* The five long-form articles open with an .aap-card labelled "What this
   article covers" that is being lifted from h3 to h2 to close the h1 -> h3
   skip. Keep the 20px card-title size the h3 had. style.css:2396 and
   premium-safety.css:299 size every .aap-section__inner h2 with !important,
   so !important is required; (0,4,2) beats both regardless of print order. */
body:is(.page-id-18182,.page-id-18180,.page-id-18219,.page-id-18181,.page-id-18179) .aap-section__inner>.aap-card>h2:first-child{font-size:20px!important;line-height:1.25!important;letter-spacing:-.01em!important;margin:var(--sp-md,24px) 0 .5rem}
/* footer.php now lets the 12px slogan wrap (it was 8.3px nowrap). Without
   balance it breaks "...Elevating Patient / Care."; balanced it breaks at the
   period: "Advancing Practices." / "Elevating Patient Care." */
.site-footer .aap-footer-logo-slogan{text-wrap:balance}
.aap-calc .aap-calc__note{color:#CBD9EA!important}
/* The shared .aap-section__inner width uses calc() with --aap-gutter, which does not resolve
   in every section scope, so the declaration is dropped and the section goes full bleed. The
   theme works around that with an explicit list of section classes; any section not on that
   list (a newly added one, and aap-home-trust) lost its gutters on phones. Give every
   homepage section the same measure so the left edge is consistent down the page. */
@media(max-width:900px){body.home main .aap-section__inner{width:calc(100% - 40px)!important;margin-inline:auto!important}}
/* --color-muted is chosen for light grounds. Where it lands on a navy panel it drops to
   1.83:1, so those panels state their own text colour. Same fix as the ROI results panel. */
.aap-launch-evidence__note,.aap-launch-evidence__note *{color:#CBD9EA!important}
/* Tracker chrome sat at 4.36:1 against white. Darken to clear 4.5:1 at 12px. */
.aap-tracker-search,.aap-tracker-filter,.aap-tracker-window .aap-tracker-search,.aap-tracker-window .aap-tracker-filter{color:#55637A!important}
/* Definition-list labels ("Owner", "This Package Covers") sit at 11px and 4.35-4.48:1,
   just under the 4.5:1 threshold for small text. Darken the label, not the value. */
main .aap-workflow-flow dt,main .aap-outcome-package dt,main .aap-packages dt,main dl dt{color:#55637A!important}
/* === Pill labels, section rhythm, and heading scale — 2026-09-05 === */
/* A capsule is a one-line shape. Long eyebrows wrapped to two and three lines inside a
   999px radius, which reads as a mistake. Any eyebrow that needs to wrap drops the capsule
   and reads as a plain uppercase label instead. */
main .eyebrow{max-width:100%}
/* Section rhythm was six different top/bottom pairs on one page, including asymmetric
   52/96 and 72/60. Normalise the vertical scale so bands read as one system. */
main section.aap-section{padding-top:var(--aap-band,72px);padding-bottom:var(--aap-band,72px)}
main section.aap-section--pad-lg{--aap-band:88px}
@media(max-width:900px){main section.aap-section{--aap-band:48px}main section.aap-section--pad-lg{--aap-band:56px}}
/* H3 rendered at 35.2/24/20/16.8px on a single page. Hold the scale. */
main .aap-section__inner h3,main .aap-proof-section h3,main article h3{font-size:20px;line-height:1.3}
@media(min-width:901px){main .aap-section__inner h3,main .aap-proof-section h3,main article h3{font-size:21px}}

/* 2026-09-05 sitewide live audit — _coordinator-gutter */
@media(max-width:640px){
  body .aap-bridge{padding-left:24px!important;padding-right:24px!important}
}

/* 2026-09-05 sitewide live audit — p5a-candidate */
/* p5a: safe subset. Dropped its reading-measure rule (max-width:720px on all
   long-form blocks) — broad, unproven, and this site has prior history with the
   measure token. Revisit only with before/after proof. */

/* wpautop empty paragraph after a decorative card icon. */
body main .aap-card > p:empty{display:none}

/* Standalone tap targets under 44px on phones. */
@media(max-width:600px){
  body main a.aap-card__link,
  body main a.aap-text-link{display:inline-flex;align-items:center;min-height:44px}
}

/* Narrow-column eyebrow capsule that wraps on desktop. Desktop only: below 901px
   the sitewide rule already strips the capsule, and nowrap there would overflow. */
@media(min-width:901px){
  body main .aap-offer-secondary .eyebrow{white-space:nowrap}
}

/* 2026-09-05 sitewide live audit — p5b */
/* === p5b: PMHNP guides and PMHNP practice-requirements state pages — 2026-09-05 === */

/* 1. <article class="aap-page"> silently breaks every ".aap-page-content > X" rule.
   43 PMHNP state pages wrap their body in <article class="aap-page">; the other
   PMHNP pages (california, florida, georgia, pennsylvania and the seven guides)
   do not. Two child-combinator rules stop matching on the wrapped pages:
     live-conversion-polish.css:3  .aap-page-content>section:not(.aap-hero)...
     style.css:1838               .aap-page-content > .aap-hero:first-child
   Measured live at 1440 on /pmhnp-practice-requirements-alabama/: seven
   .aap-section bands at 64/64 sitting next to .aap-neighbor-states and
   .aap-seo-paths at 96/96 in the same column, and a hero padding-bottom of 80px
   where every unwrapped page in the same family renders 64px. On phone the same
   pages read 48/48 next to 52/52 with a 58px hero foot against 44px.
   These rules re-point the same declarations through the wrapper, so a wrapped
   page renders identically to an unwrapped one. No new values are introduced.
   Specificity: the section rule is (0,5,2) and the hero rule is (0,4,1);
   live-conversion-polish.css (0,4,1) and funnel-system.css (0,2,0) both print
   after site-polish.css, so specificity, not order, has to win. */
.aap-page-content > article.aap-page > section:not(.aap-hero):not(.aap-cta-band):not(.aap-mpsp-order){
  padding-top:var(--aap-section-space,clamp(72px,7vw,96px));
  padding-bottom:var(--aap-section-space,clamp(72px,7vw,96px));
}
@media(max-width:640px){
  .aap-page-content > article.aap-page > section:not(.aap-hero):not(.aap-cta-band):not(.aap-mpsp-order){
    padding-top:52px;
    padding-bottom:52px;
  }
}
/* padding-top is already forced to 2rem / 1.3rem by style.css:2056-2057 with
   !important, so only the foot moves. 4rem and 2.75rem are the values
   style.css:1838-1839 gives an unwrapped hero. */
.aap-page-content > article.aap-page > .aap-hero:first-child{padding-block:4rem}
@media(max-width:600px){
  .aap-page-content > article.aap-page > .aap-hero:first-child{padding-block:2.75rem}
}

/* 2. .aap-tech-tier__heading was built for a short tier marker: a 76px first grid
   column holding a padding-less navy chip. aap-technology-credibility.php:573
   prints $tier['number'] into it, and those values are "Practice Systems" and
   "Custom Software And Automation" (lines 39 and 52), not numbers. Measured live
   on /custom-software-automation/: the second chip is scrollWidth 86 against
   clientWidth 76 at 1440 and 83 against 70 at 390, so "AUTOMATION" prints outside
   the navy box, and the box is 78px tall holding five stacked words.
   The same string is already used as a plain eyebrow by the same plugin at
   line 648, so make the chip an eyebrow: one auto-width navy label above the
   heading. technology-credibility.css prints after site-polish.css and its rules
   are (0,1,0) and (0,1,1), so these are (0,2,0) and (0,2,1). */
.aap-tech-tier .aap-tech-tier__heading{
  grid-template-columns:minmax(0,1fr);
  gap:10px;
}
.aap-tech-tier .aap-tech-tier__heading > p{
  justify-self:start;
  width:auto;
  max-width:100%;
  min-height:0;
  padding:7px 12px;
  border-radius:8px;
  text-align:left;
}

/* 3. Standalone navigation links at 26px on phones.
   /pmhnp-practice-requirements-oregon/ and /pmhnp-practice-requirements-new-york/
   carry an "On this page" jump nav that becomes a vertical stack below 560px
   (oregon-pmhnp-resource.css:35). Measured live at 390: five links 26px tall with
   8.8px between them, plus four 26px neighbor-state links. These are navigation,
   not prose, so the 44px minimum applies. Height only; the nav already supplies
   its own gap, and align-items:center keeps the label optically where it was. */
@media(max-width:600px){
  main .aap-oregon-resource__nav a,
  main .aap-oregon-neighbors a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
  }
  /* .aap-oregon-neighbors has no align-items, so the "Nearby states:" label
     stretched and sat 9px above the taller links. Center the row instead. */
  main .aap-oregon-neighbors{align-items:center}
}

/* 4. The "Keep Reading" row under the guide articles is a <nav> holding one link,
   and a short label stays on one line: measured 329x24 at 390 on
   /pmhnp-cpt-codes-cheat-sheet/, /pmhnp-intake-and-documentation/ and
   /pmhnp-no-show-and-cancellation-policies/. The same row on the state pages
   already clears 44px only because its label is long enough to wrap.
   The container switches from baseline to center alignment so the taller link
   stays optically level with the "Keep Reading" label. */
@media(max-width:600px){
  main .aap-related-reading .aap-bridge__resources{align-items:center}
  main .aap-related-reading .aap-bridge__resources a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
  }
}

/* 2026-09-05 sitewide live audit — _coordinator-chip */
/* The tier label on .aap-tech pages was a navy chip built for a short tier
   number, but the plugin prints full phrases into it ("Practice Systems",
   "Custom Software And Automation"). Widening it left a black pill sitting on a
   white card while every other label on the same page is a light blue chip.
   Match the page's own .aap-tech-accordion__label treatment. */
body .aap-tech-tier .aap-tech-tier__heading > p{
  background:#edf6ff!important;color:var(--color-blue-dark,#1547b8)!important;
  border-radius:999px!important;padding:6px 12px!important;
  font-size:.72rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}

/* /packages/ sets its hero to a 20px inline padding while every section below it
   sits at 24px, so the H1 alone hangs 4px left. Other pages' heroes already
   resolve to 24; the homepage is internally consistent at 20 and is left alone. */
@media(max-width:900px){
  body.page-id-20847 .aap-hero{padding-left:24px!important;padding-right:24px!important}
}

/* 2026-09-05 sitewide live audit — _coordinator-gutter2 */
/* Full-bleed section containers each hard-coded their own mobile horizontal
   padding (16/17/18/20px) instead of the site's 24px content gutter, so their
   text sat 4-8px left of every heading and paragraph above and below them.
   Each selector was verified full-bleed at 390px (box spans the viewport, left
   edge 0) before being included; inner cards showing the same pattern are NOT
   touched, because there the padding is card padding, not the page gutter.
   1px residuals from element borders are left alone. */
@media(max-width:900px){
  body .aap-answers,
  body .aap-standbehind,
  body .aap-ehr,
  body .aap-revenue-buyer-details,
  body .aap-tech-capability,
  body .aap-funnel,
  body .aap-funnel--router,
  body .aap-cband,
  body .aap-payer-trust,
  body .aap-analytics-choice__inner{
    padding-left:24px!important;padding-right:24px!important}
  body p.aap-xlink,body p.aap-xlink2{
    padding-left:24px!important;padding-right:24px!important;
    margin-left:0!important;margin-right:0!important}
  /* The packages and checkout families set the page wrapper itself to 20px with
     !important, which puts the hero 4px left of every section below it. */
  body.aap-family-packages .aap-page-wrapper .aap-page,
  body.aap-money-sales-checkout .aap-hero{
    padding-left:24px!important;padding-right:24px!important}
}

/* 2026-09-05 sitewide live audit — p5c */
/* ==========================================================================
   p5c — heading scale (h3 tier system) + two tap targets.
   Editorial / guide / specialty pages. Append to site-polish.css.

   MEASURED BASELINE (live, 45 pages x 2 viewports, 936 visible h3):
     20px x383  21px x359   <- Tier 1, already shipped at site-polish.css:246-247
     19.2px x50  18.4px x6  16px x108  15.04px x24  14.72px x4

   The shipped rule IS winning. 21px exists in exactly one rule sitewide
   (site-polish.css:247, min-width:901px) and 359 desktop h3 render at it.
   The rule is not being overridden; it simply does not reach five components,
   listed below. No !important is needed anywhere here, and none is used:
   plain specificity beats every competing rule regardless of load order.
   ========================================================================== */

/* --- Tier 1 (section + editorial h3): 20px, 21px at >=901px. --------------
   Only gap is .aap-page-content h3, pinned by the theme at 1.2rem = 19.2px
   (style.css:471). Measured 19.2px x46 on /solo-practice-to-group-practice-
   add-first-provider/ and /what-to-set-up-before-first-claim/, beside 16px
   body: readable, but a second h3 size on a page whose other h3 are 20/21.
   style.css `.aap-page-content h3` is (0,1,1); this is (0,1,2).
   NOTE FOR COORDINATOR: .aap-page-content is a sitewide container, so this
   one selector reaches beyond p5c. Every other rule in this file is
   component-scoped. Drop this block if you want p5c strictly partition-local. */
main .aap-page-content > h3{font-size:20px;line-height:1.3}
@media(min-width:901px){main .aap-page-content > h3{font-size:21px}}

/* --- Tier 2 (compact h3 inside dense card grids): 18px, both viewports. ---
   Deliberately one step below Tier 1 so the two tiers read as a hierarchy.
   Each of these sits on card body copy of 13.44-15.52px, so 18px restores a
   1.16-1.34x step. Left at their current sizes they run 0.97-1.16x, and the
   .aap-tech-capability__grid case is literally smaller than the text under it.

   .aap-cap h3              1rem   = 16px   style.css:2521            (0,1,1)
   .aap-bridge__offer h3    1rem   = 16px   cluster-bridge.css:13     (0,1,1)
   .aap-tech-capability__grid h3 / .aap-tech-detail-label
                            .94rem = 15.04px technology-credibility.css (0,1,1)/(0,1,0)
   All beaten by a leading `main` (adds one type selector). */
main .aap-cap h3,
main .aap-bridge__offer h3,
main .aap-tech-capability__grid h3,
main .aap-tech-detail-label{font-size:18px}

/* technology-credibility.css also pins the platform/method/example labels at
   .92rem = 14.72px with a two-class selector (0,2,0), which outranks the
   (0,1,1) rule above, so those need their own (0,2,1) form. */
main .aap-tech-platform-grid .aap-tech-detail-label,
main .aap-tech-method-grid .aap-tech-detail-label,
main .aap-tech-example .aap-tech-detail-label,
main .aap-tech-example h3{font-size:18px}

/* --- Tap targets -----------------------------------------------------------
   .aap-card__link measured 39px tall at 390px on /portland/ (2) and
   /resources/ (9). They are card CTAs, not prose links, so the 44px minimum
   applies. Height only; inline-flex + align-items:center keeps the label
   optically where it sits today, and the cards already supply their own gap. */
@media(max-width:600px){
  main a.aap-card__link{
    display:inline-flex;
    align-items:center;
    min-height:44px;
  }
}

/* 2026-09-05 sitewide live audit — _coordinator-gutter3 */
/* .aap-tech is a full-bleed section whose mobile padding is 16px
   (technology-credibility.css @media max-width:760px) against the site's 24px
   gutter, so its eyebrow, H2 and intro sat 8px left of the rest of the page.
   The .aap-tech-tier card nested inside keeps its own padding: that indent is
   card padding, not a gutter, and is left alone. */
@media(max-width:900px){
  body .aap-tech{padding-left:24px!important;padding-right:24px!important}
}

/* 2026-09-05 sitewide live audit — p1-money */
/* ============================================================
   p1-money — verified on live advanceapractice.com, 2026-09-05
   Two blocks. Both proven live with page.addStyleTag + re-measure.
   Neither uses !important. Specificity noted per block.
   ============================================================ */

/* [p1-1] Sprint workflow + implementation step lists lost their own list
   styling. Theme rule `.aap-page-content ol, .aap-section ol,
   .aap-section__inner ol` (themes/aap-premium/style.css:871-877, specificity
   0,1,1) outranks the component rule `.aap-workflow-flow{list-style:none;
   padding:0}` (mu-plugins/aap-performance-assets/outcome-package-system.css
   lines 8 and 13, specificity 0,1,0). Result on all five sprint pages:
   a stray decimal marker painted beside each step card ("1." left of card 1,
   the next card's digit half-hidden behind the chevron connector) and the whole
   row inset 24px from the section's content edge.
   Specificity here is 0,1,2 -> wins on specificity, not source order.
   Measured on /ehr-workflow-repair-sprint/, /revenue-cycle-stabilization-sprint/
   and /workflow-automation-build-sprint/ at 1440x900 and 390x844:
     before  list-style-type:decimal  padding-left:24px  li.left=192
             grid columns 205.594px x5   (implementation steps: 533px x2)
     after   list-style-type:none     padding-left:0px   li.left=168
             grid columns 210.391px x5  (implementation steps: 545px x2)
     leaks after: none. documentElement.scrollWidth unchanged (1440 / 390). */
main ol.aap-workflow-flow,
main ol.aap-implementation-process__steps{list-style:none;padding-left:0}

/* [p1-2] CTA band buttons misalign and overhang on phone. site-polish.css:11
   puts `margin:7px 14px 7px 0` on `.aap-cta-band__actions a.aap-btn`, but a
   later rule zeroes the horizontal margin on the secondary button only. In the
   phone layout (`flex-direction:column;align-items:center`) the flex line takes
   the widest margin box (356px) inside a 342px container, so the two full-width
   buttons centre against different boxes: primary at x=24, secondary at x=31,
   hanging 7px past the band. `gap:12px 16px` already supplies the spacing the
   margin-right was doing, so removing it changes nothing at desktop.
   Specificity 0,3,1 beats the 0,2,1 rule above regardless of source order.
   Measured on /credentialing/ (same signature on
   /credentialing-status-submitted-approved-effective-eft-era/):
     before  390px: primary l=24 r=366, secondary l=31 r=373
             container clientWidth 342, scrollWidth 349
     after   390px: primary l=24 r=366, secondary l=24 r=366
             container clientWidth 342, scrollWidth 342
     after 1440px: primary 540-757, secondary 773-900, 16px apart (the
             column-gap), documentElement.scrollWidth 1440. */
.aap-cta-band .aap-cta-band__actions a.aap-btn,
.aap-cta-band .aap-cta-band__actions a.btn{margin-right:0}

/* 2026-09-05 sitewide live audit — p2-core-suite */
/* ============================================================================
   2026-09-05 live visual audit — partition p2-core-suite
   Append to wp-content/mu-plugins/aap-performance-assets/site-polish.css
   Every rule below was proven on the live site with page.addStyleTag and
   re-measured. Before/after numbers are in the comment above each block.
   ========================================================================= */

/* --- P2-1. Phone CTA stacks: equal buttons, single-line labels -------------
   Confirmed on 17 pages at 390px: the hero row (.aap-hero__ctas) on 8 Command
   Suite subpages and the closing row (.aap-cta-band__actions) on those 8 plus
   the 9 /watch/ pages rendered a 48px button stacked on a 64px button, because
   "Request A Command Suite Walkthrough" (natural single-line width 304px) did
   not fit the 298px content box left by .aap-btn's 1.55rem side padding.
   The buttons are already width:100% at this breakpoint, so the side padding
   is decorative, not structural: cutting it to 12px yields 314px of room and
   the label fits on one line.
     /aap-command-suite/how-it-works/  hero    48/64 -> 48/48
     /aap-command-suite/how-it-works/  cta-band 48/64 -> 48/48
     /aap-command-suite/trust-security/ both   48/64 -> 48/48
   The /watch/ pages nest the CTA band inside a .container that is already
   inset 14px per side, so the row is 314px there and the label still wraps
   even at 12px padding. grid-auto-rows:1fr is the safety net that equalises
   whatever is left:
     /aap-command-suite/watch/ cta-band 48/64 -> 64/64
   documentElement.scrollWidth stayed 390 in every case (no new overflow).
   Specificity note: .aap-cta-band .aap-cta-band__actions{display:flex}
   (style.css:751) is (0,2,0), so the selector must repeat .aap-cta-band to
   win; "body :is(.aap-cta-band__actions)" (0,1,1) silently loses.
   margin-inline:0 clears the 14px right margin site-polish.css:11 puts on
   .aap-cta-band__actions a.aap-btn, which would otherwise offset the grid cell.
   The > br rule guards 8 EHR pages outside this partition
   (/valant/, /kareo-tebra/, /simplepractice/, /therapynotes/, /epic/,
   /athenahealth/, /icanotes/, /advancedmd-implementation/) whose hero CTA row
   contains a stray <br>; as a grid item it would claim a full 1fr row. */
@media(max-width:600px){
  body :is(.aap-hero__ctas,.aap-hero__actions),
  body .aap-cta-band .aap-cta-band__actions{
    display:grid;grid-auto-flow:row;grid-auto-rows:1fr;
    justify-items:stretch;align-items:stretch}
  body :is(.aap-hero__ctas,.aap-hero__actions) > :is(.aap-btn,.btn),
  body .aap-cta-band .aap-cta-band__actions > :is(.aap-btn,.btn){
    width:100%;margin-inline:0;justify-content:center;text-align:center;
    padding-inline:12px}
  body :is(.aap-hero__ctas,.aap-hero__actions) > br,
  body .aap-cta-band .aap-cta-band__actions > br{display:none}
}

/* --- P2-2. Homepage testimonial cards, desktop -----------------------------
   / at 1440: the three .aap-quote-card siblings (white background, 1px border,
   shadow) sat in one grid row at 351 / 299 / 325px because style.css:2641 sets
   .aap-quotes{align-items:start}. Ragged bottoms on chrome-bearing cards.
   After: 351 / 351 / 351. Screenshot-checked; the attribution block stays
   directly under the quote rather than being pushed to the card floor.
   Scoped to >=1051px because .aap-quotes--three collapses to one column below
   that (style.css:2567), where equal heights would only add dead space.
   "body .aap-quotes" (0,1,1) beats the (0,1,0) align-items:start. */
@media(min-width:1051px){
  body .aap-quotes{align-items:stretch}
  body .aap-quotes > .aap-quote-card{display:flex;flex-direction:column}
}

/* --- P2-3. Homepage "What Does Your Practice Need?" buttons, desktop -------
   / at 1440: four .aap-home-path cards, each ending in a bottom-anchored
   .aap-btn 225px wide. Three labels wrapped to two lines (62px) and
   "See Operations Help" did not (48px), so one button in the row started 14px
   lower than its neighbours. Cutting the side padding to 14px lets two more
   labels fit on one line; min-height keeps all four boxes identical.
     before 62 / 62 / 62 / 48   after 62 / 62 / 62 / 62
   "See Medical Billing Services" needs 208px and still has only 195px, so it
   keeps its second line inside the now-matching box. Scoped to >=1001px, the
   only range where .aap-home-path-grid is four across (front-page.php:278
   drops it to two columns at 1000px, where every label already fits). */
@media(min-width:1001px){
  body .aap-home-path > :is(.aap-btn,.btn){padding-inline:14px;min-height:62px}
}

/* --- P2-4. Phone tap targets ----------------------------------------------
   All standalone card CTAs, not prose links, and all under Apple's 44px:
     / at 390            9 x .aap-home-project-proof > article > a  @ 20px
                         ("See What We Build", "Read The Growth Story", ...)
     / at 390            figcaption link under the Command Suite demo @ 18px
                         ("Watch with chapters and transcript")
     /aap-command-suite/watch/ at 390   7 x a.aap-watch-index__link  @ 29px
                         ("Watch Demo And Read Transcript")
   Height only; inline-flex + align-items:center keeps each label optically
   where it sits now. Proven: the sub-44px list went 10 -> 0 on / and
   8 -> 2 on /watch/ (the 2 remaining are <h2> that are themselves links,
   left alone deliberately, see report). */
@media(max-width:600px){
  body.home .aap-home-project-proof > article > a,
  body main figure.aap-home-suite__media figcaption a,
  body main a.aap-watch-index__link{
    display:inline-flex;align-items:center;min-height:44px}
}

/* 2026-09-05 sitewide live audit — p5b-round2 */
/* === p5b round 2: PMHNP guides and PMHNP practice-requirements state pages — 2026-09-05 === */
/* Round 1 (already live in site-polish.css) fixed the article.aap-page wrapper padding,
   the .aap-tech-tier__heading chip, and three phone tap-target minimums. This block covers
   what round 1 did not: one shared root cause that leaves four blocks floating off the page
   column, and one remaining tap target.

   ROOT CAUSE for items 1 to 3 below. style.css:2338 sets
     .aap-page-content{display:flex;flex-direction:column}
   so that .aap-page-content > .aap-cta-band{order:10} can work (style.css:2339). Every block
   in that column is now a flex item, and a flex item with an auto inline margin shrinks to
   fit its content instead of filling the line. Three components declare `margin: X auto`
   expecting normal block centring, so their declared max-width never takes effect and they
   render as narrow boxes floating in the middle of the page. Measured live at 1440 where the
   page's own text column runs 144 to 1296:

     .aap-content-reviewer   declares max-width:800px    renders 564px at x=438
     .aap-related-reading    declares max-width:1040px   renders 489-506px at x=467-475
     the state-page disclaimer declares max-width:70ch   renders 601px at x=420

   Each rule below restores the declared intent by giving the item an explicit width, which
   is what an auto inline margin needs in order to centre rather than shrink-wrap.

   CASCADE NOTE: site-polish.css loads at head offset ~20567, ahead of cluster-bridge.css
   (~25353), aap-article-authority-css (~49339), live-conversion-polish.css (~50452) and
   funnel-system.css (footer). It therefore loses every tie and has to win on specificity.
   Each selector below is scoped through .aap-page-content, which also keeps the change to
   the page column and leaves the same components alone wherever else they are used. */


/* 1. The state-page "Informational only, not legal advice" disclaimer.
   43 of the 48 practice-requirements pages render this sentence inside a normal
   <section class="aap-section"><div class="aap-section__inner"><p class="eyebrow">Please Read
   First</p><p>...</p>. Five do not: california, florida, georgia, pennsylvania and texas
   carry it as a bare inline-styled <p> sitting directly in .aap-page-content after the last
   </section>, with hand-rolled font-size:0.85em, color:#666 and max-width:70ch.
   Measured live at 1440 on /pmhnp-practice-requirements-california/, /florida/ and /georgia/:
   601px wide starting at x=420, 13.6px type in rgb(102,102,102), while every other line of
   text on the page starts at x=144 and reads 16px in rgb(69,81,106).
   page-components.css:9 already says raw prose in this column should be
   width:min(800px,calc(100% - 48px)) centred; the inline max-width:70ch is the only reason
   that rule does nothing. Clearing the three inline values lets the site's own prose rule
   apply and puts the sentence in the same muted prose colour the sibling pages use.
   Inline styles need !important; nothing else here does.
   AFTER (measured, same three pages): 800px at x=320, 16px, rgb(69,81,106). Phone geometry
   is unchanged at 350px/x=20; only the type and colour normalise. */
main .aap-page-content > p[style*="70ch"]{
  max-width:none!important;
  font-size:inherit!important;
  color:var(--color-muted,#45516A)!important;
  margin-inline:auto!important;
}


/* 2. The editorial byline, .aap-content-reviewer ("Reviewed for accuracy by ...").
   aap-article-authority prints it with border-left:3px solid #9bb9d8, so it is meant to read
   as a left-anchored pull-note under the H1. Shrink-wrapped, that border rule floats in the
   middle of the page and moves left or right with the length of the byline text.
   Measured live at 1440 on /pmhnp-cpt-codes-cheat-sheet/, /pmhnp-llc-vs-pllc/,
   /pmhnp-malpractice-insurance/, /pmhnp-practice-launch-checklist/,
   /pmhnp-intake-and-documentation/, /pmhnp-insurance-panels-which-first/ and
   /pmhnp-no-show-and-cancellation-policies/: 564px at x=438, so the rule sat 294px right of
   the H1 above it. AFTER: 1152px at x=144, the rule exactly on the column edge.
   On phone the plugin's own @media(max-width:900px) sets margin:12px 20px 22px, which leaves
   the box at x=20 against a 24px page gutter; margin-inline:auto here out-specifies that
   single-class rule per longhand, so the block margins 12/22 are kept and only the sides
   move. AFTER on phone: 342px at x=24, flush with the column.
   Specificity (0,2,1) against the plugin's (0,1,0). */
main .aap-page-content > .aap-content-reviewer{
  width:min(1152px,calc(100% - 48px));
  max-width:none;
  margin-inline:auto;
}


/* 3. The "Keep Reading" row, .aap-related-reading (cluster-bridge.css).
   A footer nav holding a label and one or two links, with a border-top rule across it.
   Measured live at 1440 on /pmhnp-malpractice-insurance/, /pmhnp-intake-and-documentation/,
   /pmhnp-insurance-panels-which-first/ and /pmhnp-no-show-and-cancellation-policies/:
   489-506px at x=467-475, so a rule that is supposed to run across the foot of the article
   was a short line floating centre-page, and its width changed page to page with the length
   of the link text. The 24px inline padding it already carries matches .aap-section__inner,
   so giving it the same 1200px box puts its text on the column.
   AFTER: 1200px at x=120, text at x=144. Phone was already correct at x=0 with text at 24
   and is unchanged. Specificity (0,2,1) against cluster-bridge.css (0,1,0). */
main .aap-page-content > .aap-related-reading{
  width:min(1200px,100%);
  max-width:none;
  margin-inline:auto;
  padding-inline:24px;
}


/* 4. .aap-next-step overhangs the text column on phones.
   funnel-system.css:29 gives it margin:42px 16px and :39 narrows that to margin-inline:12px
   below 420px, while the page gutter stays 24px. Measured live at 390 on the six guide pages
   that carry the block: the card spans x=12 to x=378 against body text running 24 to 366, so
   a bordered card visibly hangs 12px past the copy on both sides. At 1440 the same card is
   inset 16px inside the column, so the card's relationship to the text inverts between the
   two viewports. Aligning the card edge to the column on phone matches how .aap-related (the
   neighbouring-states card) already behaves on the state pages: card edge on the column,
   text inset by the card's own padding.
   AFTER at 390: 342px at x=24, text at 48. Desktop is deliberately left alone; a 16px inset
   on a bordered card there is a design choice, not a defect. */
@media(max-width:640px){
  main .aap-page-content > .aap-next-step{margin-inline:24px}
}


/* 5. One tap target round 1 left short.
   Round 1 gave .aap-oregon-neighbors a and .aap-oregon-resource__nav a a 44px min-height, but
   not a min-width, so a short label still fails. Measured live at 390 on
   /pmhnp-practice-requirements-oregon/: the "Idaho" neighbour link is 39x44.
   These links are already display:inline-flex from round 1, so a min-width plus centring is
   enough; longer labels are unaffected because they are wider than 44px already.
   AFTER: zero links under 44px on that page. */
@media(max-width:600px){
  main .aap-oregon-neighbors a,
  main .aap-oregon-resource__nav a{min-width:44px;justify-content:center}
}

/* 2026-09-05 sitewide live audit — p5a */
/* === p5a: editorial / guide / specialty pages — 2026-09-05 === */
/* Every rule below was measured live at 390x844 and 1440x900 AFTER the
   _coordinator-*, p5a-candidate, p5b and p5c blocks above were already
   shipped, so these are remaining defects, not duplicates. */

/* 1. "What This Article Covers" now renders BELOW the H3 scale on desktop.
   Two rules already in this file collide:
     site-polish.css:201  that card H2 -> 20px !important  (0,4,2)
     site-polish.css:247  every .aap-section__inner h3 -> 21px at >=901px
     site-polish.css:458  every .aap-page-content h3 -> 21px at >=901px
   Measured live at 1440: H2 20px against 4 H3 at 21px on /ar-backlog-causes/
   (id 18182), 5 at 21px on /denial-management-workflow/ (18181) and 4 at 21px
   on /mental-health-billing-mistakes/ (18179). At 390 both are 20px, a tie and
   not an inversion, so this is desktop only.
   The 20px rule is (0,4,2) with !important, so this adds a leading `main`
   to reach (0,4,3) and win on specificity alone, independent of print order.
   `.aap-page-content` was tried first and rejected: /credentialing-delays-
   explained/ renders its content directly under <main> with no
   .aap-page-content wrapper, so that selector silently missed that one page
   (measured 20px -> 20px). `main` is an ancestor on all five.
   NOTE FOR COORDINATOR: ids 18180 (/credentialing-delays-explained/) and
   18219 (/credentialing-delays-killing-revenue/) are NOT in p5a. They carry
   the same card and the same shipped 21px H3 scale and were verified to show
   the same inversion, so they are included to keep the family consistent.
   Drop those two ids if you want p5a strictly partition-local. */
@media(min-width:901px){
  body:is(.page-id-18182,.page-id-18180,.page-id-18219,.page-id-18181,.page-id-18179) main .aap-section__inner>.aap-card>h2:first-child{font-size:23px!important}
}

/* 2. Effective-Cost Estimator input note, /headway-alternative/ only.
   The calculator ships an inline <style> in post_content with
   `.aap-calc__inputs small{color:#718398;font-size:.78rem}`. Measured live:
   rgb(113,131,152) on white at 12.48px = 3.89:1, under the 4.5:1 AA floor for
   text that size. #55637A is the muted-label colour this file already uses for
   the same problem at lines 219 and 222; it measures 6.08:1 here.
   `.aap-calc__inputs small` is (0,1,1); this is (0,1,2), so it wins on
   specificity even though the page's inline <style> prints later. */
main .aap-calc__inputs small{color:#55637A}

/* 3. /oregon-practice-referrals/ referral cards.
   Each <article> ends with a bare <a> ("Explore Medical Billing Services",
   "Explore Practice Growth Support", "Explore Practice Operations"). They are
   display:inline and measured 20px tall at 390. These are card CTAs, not prose
   links, so the 44px minimum applies. p5c's rule covers a.aap-card__link and
   does not reach these. Height only; align-items:center leaves the label
   optically where it sits and the section supplies its own spacing. */
@media(max-width:600px){
  main .aap-or-referral-types article>a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
  }
}

/* 4. The secondary offer card's "View details" link, measured 29px tall at 390
   on /medical/ (a < article < .aap-offer-secondary__grid), display:block.
   The p5a-candidate block above covers a.aap-card__link,
   a.aap-real-product-proof__watch and a.aap-text-link and does not reach this
   one. The grid parent blockifies inline-flex to flex, which is fine: measured
   29px -> 44px with the width unchanged at 94px, so only the height moves. */
@media(max-width:600px){
  main .aap-offer-secondary__grid article>a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
  }
}

/* 2026-09-05 sitewide live audit — p2-core-suite P2-5 */
/* ===========================================================================
   P2-5. FOLLOW-UP DELTA — everything above this line is ALREADY LIVE
   (shipped by the coordinator into site-polish.css lines ~563-648 at 23:22Z
   on 2026-09-05). Append ONLY this last block; do not re-ship P2-1..P2-4.
   ---------------------------------------------------------------------------
   Side effect of P2-1 found by measuring production after the ship.
   .aap-cta-band .aap-cta-band__actions carries justify-content:center
   (style.css:751). Under flex that was harmless, but under grid an auto-sized
   implicit column shrinks to max-content and then gets centred, so the stacked
   buttons no longer span the row. Measured live at 390px:
     /                                  row 302px, buttons 233px  (was 241/249)
     /aap-command-suite/how-it-works/   row 342px, buttons 332px
     /aap-command-suite/trust-security/ row 342px, buttons 332px
   Naming one 1fr column makes the track fill the container, so width:100% on
   the buttons resolves against the whole row again. Proven live:
     /                                  buttons 233 -> 302  (full row)
     /aap-command-suite/how-it-works/   buttons 332 -> 342
     /aap-command-suite/trust-security/ buttons 332 -> 342
     /aap-command-suite/watch/          314 -> 314 (already full, unchanged)
     .aap-hero__ctas rows               342 -> 342 (unchanged)
   documentElement.scrollWidth stayed 390 and the count of elements crossing
   the right viewport edge stayed 0 on all six pages checked
   (/, /aap-command-suite/how-it-works/, /aap-command-suite/trust-security/,
   /aap-command-suite/watch/, /kareo-tebra/, plus / at 1440). */
@media(max-width:600px){
  body :is(.aap-hero__ctas,.aap-hero__actions),
  body .aap-cta-band .aap-cta-band__actions{grid-template-columns:minmax(0,1fr)}
}

/* 2026-09-05 sitewide live audit — p3-states */
/* ============================================================================
   p3-states — 51 credentialing / payer-enrollment state pages
   /credentialing-and-payer-enrollment-<state>/
   Scope: body.aap-family-credentialing-state (printed by the theme on exactly
   these pages; verified live on 51/51). Nothing here can reach another page.

   SPECIFICITY NOTE — read before editing.
   mu-plugins/aap-state-layout-repair.php prints its component CSS in an inline
   <style id="aap-state-layout-repair"> at wp_head priority 999, which is AFTER
   every enqueued stylesheet. site-polish.css therefore cannot win on source
   order, only on specificity. That block uses .aap-page-content X (0,2,0) and
   main X (0,1,1), with !important on several declarations. Every rule below is
   written as body.aap-family-credentialing-state .aap-state X (0,3,1) plus
   !important so it wins both cases. Do not shorten these selectors.
   Verified live 2026-09-05 on advanceapractice.com at 1440x900 and 390x844.
   ========================================================================== */

/* 1. Two-up comparison cards ended at different heights.
   .grid2 holds exactly two .card elements (white fill, 1px #e2e8f0 border,
   16px radius, shadow) — chrome-bearing cards, not plain text columns.
   aap-state-layout-repair.php sets align-items:start on .grid2, so the shorter
   card stops mid-row and leaves bare page background beside the taller one.
   Measured live on 51/51 pages: 41 of 59 two-card rows differ by more than
   24px; worst Georgia 660px, Wisconsin 656px, Washington 480px, median 130px.
   After: every measured row 0px. */
body.aap-family-credentialing-state .aap-state .grid2 { align-items: stretch !important; }

/* 2. Empty <p> in the source markup becomes a real grid item.
   Present on 51/51 pages: 59 in .grid2, 58 in .payers. In .payers it lands
   mid-grid and stretches to the row height, so it renders as a blank column
   where a payer card should be. Measured heights up to 4227px (Illinois),
   3508px (Indiana), 2554px (Georgia). */
body.aap-family-credentialing-state .aap-state .grid2 > p:empty,
body.aap-family-credentialing-state .aap-state .payers > p:empty,
body.aap-family-credentialing-state .aap-state .links > p:empty,
body.aap-family-credentialing-state .aap-state .steps > p:empty,
body.aap-family-credentialing-state .aap-state .check > li:empty { display: none !important; }

/* 3. Payer cards were 4 columns of 219px on desktop.
   aap-state-layout-repair.php (written 2026-08-21, when nothing on these pages
   was styled) sets repeat(auto-fit,minmax(210px,1fr)); the purpose-built
   state-page-family.css (2026-09-02) asks for two columns. 219px is not enough
   for a carrier name, a subtitle, a bulleted list and a status chip, and it is
   what forces the chip in rule 4 onto three and four lines. */
body.aap-family-credentialing-state .aap-state .payers {
  grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)) !important;
}

/* 4. The "Separate door: Evernorth Behavioral Health" chip wrapped inside its
   own bordered capsule. state-page-family.css sizes .carve at .76rem; the
   repair block overrides it to .93em, which is 15.81px on desktop and 14.88px
   on phone. Wrapped chips on 51/51 pages, up to 4 lines desktop / 7 phone. */
body.aap-family-credentialing-state .aap-state .carve {
  font-size: .82rem !important;
  line-height: 1.35 !important;
}

/* 5. One content column on desktop.
   Today the page runs three different left edges down a single page:
   page text x=144 w=1152, disclosure card x=200 w=1040, disclosure text
   x=264 w=912 — identical on 51/51 pages. The 41px phone gutter in rule 6 is
   the same bug at the other end. After: card x=120 w=1200 (the .wrap box),
   disclosure text x=145 w=1150 (matches page text x=144 w=1152). */
@media (min-width: 701px) {
  body.aap-family-credentialing-state .aap-state-disclosure {
    width: min(calc(100% - 48px), 1200px) !important;
  }
  body.aap-family-credentialing-state .aap-state-disclosure > summary {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  body.aap-family-credentialing-state .aap-state-disclosure__body > section > .wrap {
    width: 100% !important;
    max-width: none !important;
  }
}

/* 6. Phone: body copy inside a disclosure sits at x=41 while the rest of the
   page sits at x=24. state-page-family.css already asks for a 16px inner
   gutter here and says so in a comment ("The disclosure already supplies the
   page gutter. Keep one inner gutter."), but the repair block's
   padding-left:24px !important defeats it. Restoring 16px moves the text to
   x=33 and widens the reading column from 308px to 324px.
   See the report for the full-bleed variant that reaches x=24 exactly; it is
   not shipped here because it drops the card look on phone. */
@media (max-width: 700px) {
  body.aap-family-credentialing-state .aap-state .aap-state-disclosure__body > section > .wrap {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* 2026-09-05 sitewide live audit — _coordinator-gutter4 */
/* Two more full-bleed section containers with their own mobile gutter instead
   of the site's 24px: .aap-outcome (16px, the five sprint pages) and the
   Command Suite .aap-container (20px). Verified full-bleed before including.
   Cards nested inside keep their own padding. */
@media(max-width:900px){
  body section.aap-outcome,
  body .aap-page-content > section > .aap-container{
    padding-left:24px!important;padding-right:24px!important}
}

/* 2026-09-05 sitewide live audit — _coordinator-final */
/* /packages/ hero: organic-to-paid-release.css sets
   `body.aap-family-packages .aap-page-wrapper .aap-page-content .aap-hero
    {padding:24px 20px 30px!important}` at (0,4,1), which outranked the earlier
   (0,2,1) attempt, so the H1 stayed 4px left of every section below it.
   Doubling the family class gives (0,5,1) and wins. Vertical padding untouched. */
@media(max-width:640px){
  /* Every one of these is beaten by a body.aap-family-packages rule at (0,2,1),
     so the family class is doubled to reach (0,3,1) and win on specificity. */
  body.aap-family-packages.aap-family-packages .aap-page-wrapper .aap-page-content .aap-hero,
  body.aap-family-packages.aap-family-packages .aap-funnel--router,
  body.aap-family-packages.aap-family-packages .aap-outcome-offer-grid,
  body.aap-family-packages.aap-family-packages .aap-funnel,
  body.aap-family-packages.aap-family-packages .aap-outcome,
  body.aap-family-packages.aap-family-packages .aap-package-tailoring{
    padding-left:24px!important;padding-right:24px!important}
}

/* State-page disclosures on phone: body copy sat at 33px against page copy at
   24px (16px card inset + 1px border + 16px inner padding). Rebalancing the
   inset to 8 and the inner padding to 15 lands text on exactly 24 while the
   accordion KEEPS its rounded card. This is why the full-bleed variant, which
   reached 24 by dropping the card look on 51 protected pages, was not used. */
@media(max-width:700px){
  body.aap-family-credentialing-state .aap-state-disclosure{
    margin-left:8px!important;margin-right:8px!important}
  body.aap-family-credentialing-state .aap-state-disclosure > summary{
    padding-left:15px!important;padding-right:15px!important}
  body.aap-family-credentialing-state .aap-state .aap-state-disclosure__body > section > .wrap{
    padding-left:15px!important;padding-right:15px!important}
}

/* 2026-09-05 sitewide live audit — _coordinator-final2 */
/* Final off-gutter full-bleed blocks, each proven to move to 24px.
   Deliberately EXCLUDED after measuring, all correct as they are:
   - .aap-payer-trust (28) and .aap-section__inner on /portland/ (148) each carry
     a 4px decorative left accent border; content sits inside the rail by design.
   - .aap-onboarding-proof__checkout-body (34) is inside an inset card, so that
     is card padding, not a page gutter.
   - p.aap-lead-narrow on the homepage (320 vs H1 329) is a centred block wider
     than the centred H1, which is how centring works. */
@media(max-width:900px){
  body main .aap-magnet-band,
  body main p.aap-cs-restored,
  body.aap-family-packages.aap-family-packages p.aap-package-tailoring{
    padding-left:24px!important;padding-right:24px!important;
    margin-left:0!important;margin-right:0!important}
}

/* 2026-09-06 sitewide live audit — _zz-eyebrow-unify */
/* ONE eyebrow treatment for every variant, at every width.
   The site carries at least four eyebrow class names and only .eyebrow had the
   pill: on /practice-operations/ at desktop, .aap-work-moves__eyebrow,
   .aap-outcome__eyebrow and .aap-tech-eyebrow all computed background
   rgba(0,0,0,0) with radius 0. An earlier pass here also stripped .eyebrow's pill
   below 900px, widening the gap; that block has been removed.
   Matching on the class substring rather than a list, because enumerating the
   names left variants behind and produced exactly the mixed look being fixed.
   Measured wrapping is rare (2 desktop, 4 phone across 8 pages), so the pill is
   safe everywhere. */
body main [class*="eyebrow"],
body main [class*="kicker"]{
  display:inline-block!important;
  width:auto!important;
  background:rgba(26,86,219,.09)!important;
  color:#1a56db!important;
  border:0!important;
  border-radius:999px!important;
  padding:.4rem .85rem!important;
  box-shadow:none!important;
  font-size:.72rem!important;
  font-weight:700!important;
  letter-spacing:.1em!important;
  line-height:1.35!important;
  text-transform:uppercase!important;
}
/* Dark grounds keep the same shape with readable colour. */
body main .aap-section--dark [class*="eyebrow"],
body main .aap-hero--dark [class*="eyebrow"],
body main .aap-bridge [class*="eyebrow"],
body main [class*="eyebrow"][class*="--dark"]{
  background:rgba(255,255,255,.13)!important;
  color:#cfe0ff!important;
}

/* 2026-09-06 sitewide live audit — _zz-width */
/* Hero headings render far narrower than their column because
   `body:not(.home):not(.aap-family-packages) .aap-page-content ... h1` caps them
   at 22ch (measured 745.888px inside a 1152px column) and `.aap-hero h1` adds a
   16ch cap. Raising the cap to 28ch lets display type use the column while still
   breaking before the line gets unreadable. Desktop only; phone measured zero
   forced-narrow blocks and is left exactly as it is.
   Body prose measures are NOT touched: 60-70ch is correct, and
   aap-measure-consistency.php sets those deliberately. */
@media(min-width:901px){
  body:not(.home):not(.aap-family-packages) main .aap-page-content .aap-hero h1,
  body:not(.home):not(.aap-family-packages) main .aap-page-content .aap-hero__inner h1,
  body main .aap-hero h1,
  body main .aap-hero__inner h1{max-width:28ch!important}
}
/* Flex items that shrink to their content instead of filling the row.
   .aap-analytics-choice__inner is display:flex, so its paragraph rendered 475px
   inside 1152px on every page. */
main .aap-analytics-choice__inner > p{flex:1 1 auto;max-width:none}
main .aap-outcome-offer-card > :is(h3,p){width:100%}


/* 2026-09-06 sitewide live audit — _coordinator-eyebrow2 */
/* The price-reconciliation plugin lengthens three hero eyebrows to carry the
   full per-payer, per-provider price, which pushes them past the ~556px wrap
   threshold and leaves text wrapping inside a 999px capsule on DESKTOP.
   The pricing wording is deliberate and must not be shortened (dropping
   "per provider" would change what the price means), so the capsule gives way
   instead: these render as plain kicker text, matching the phone treatment.
   Phone is already handled by the sitewide <=900px rule. */
@media(min-width:901px){
  body.aap-route-entity-credentialing-transitions main .aap-hero .eyebrow,
  body.aap-route-new-provider-credentialing main .aap-hero .eyebrow,
  body.aap-route-for-solo-therapists main .aap-hero .eyebrow{
    display:block!important;background:none!important;background-color:transparent!important;
    border:0!important;border-radius:0!important;box-shadow:none!important;
    padding-left:0!important;padding-right:0!important;line-height:1.35!important}
}

/* 2026-09-06 sitewide live audit — _zz-hero-footer */
/* Homepage hero heading rendered 46px on desktop and 30px on phone because
   live-conversion-polish.css caps it with an id rule,
   body.home #hero-heading{font-size:clamp(2.4rem,3.2vw,3.0rem)!important}, which
   outranks the theme's own clamp(3.25rem,4vw,3.5rem). Restored to a hero scale.
   body.home main #hero-heading is (1,1,2) and beats that (1,1,1). */
body.home main #hero-heading{font-size:clamp(2.95rem,4.1vw,3.6rem)!important;line-height:1.05!important}
@media(max-width:600px){
  body.home main #hero-heading{font-size:36px!important;line-height:1.1!important}
}

/* Footer slogan "Advancing Practices. Elevating Patient Care." wrapped to two
   lines. It needs 263px; the logo's text column resolved to 232px.
   .site-footer .aap-footer-logo-slogan sets white-space, so this needs
   !important to win. Measured after: one line, 263px, document width unchanged
   at every breakpoint from 1440 down to 390. */
body footer .aap-footer-logo-slogan{white-space:nowrap!important}

/* Raising the phone hero to 36px made "Grow With Confidence." overflow: the H1
   wraps each sentence in <span class="aap-keep-together"> with white-space:nowrap,
   and that phrase needs 401px against a 320-374px box, so it was clipped on 360,
   390 and 414 wide phones. Let the sentences wrap on phone only; they keep their
   nowrap on tablet and desktop where they fit. */
@media(max-width:600px){
  body.home main #hero-heading .aap-keep-together{white-space:normal!important}
}

/* 2026-09-06 sitewide live audit — _zz-hero-eyebrow-phone */
/* Homepage hero eyebrow only, phone only. The line carries the full service
   scope and needs 459px; the pill has 350px at 390px wide, so it always wraps
   to two lines. Two lines of plain uppercase kicker reads as intended; two
   lines squeezed inside a 999px capsule reads as broken. Every other eyebrow
   on the site keeps its pill, including this one on tablet and desktop, so the
   sitewide treatment stays consistent.
   (0,3,2) beats the sitewide body main [class*="eyebrow"] rule at (0,1,2). */
/* SUPERSEDED 2026-09-14. Stripping the pill left a square, edge-to-edge block of
   uppercase text that read as a broken box, not as a deliberate kicker -- and the
   line got longer when "& Growth Consulting" was added, so it now runs to three
   lines. Keep the pill, shrink it to fit, and let it wrap inside its own capsule. */
@media(max-width:600px){
  body.home main .aap-hero .eyebrow,
  body.home main .aap-hero__inner .eyebrow{
    display:inline-block!important;
    width:auto!important;
    max-width:calc(100% - 8px)!important;
    font-size:.66rem!important;
    letter-spacing:.06em!important;
    line-height:1.35!important;
    padding:.5rem .95rem!important;
    border-radius:18px!important;
    text-align:center!important;
    text-wrap:balance;
  }
}

/* 2026-09-07 sitewide live audit — _zz-consent-bar */
/* 2026-09-10: the fixed-bottom consent bar was removed. It sat directly on top of the
   concierge launcher on every first visit, and its keep-clear selector targeted a class the
   launcher never had. The bar is now a slim in-flow strip above the header
   (aap-analytics-consent.php placement 'top_strip'). */

/* 2026-09-07 sitewide live audit — _zz-hero-spacing */
/* The hero sat too low and the pill sat too close to the H1. Measured on phone:
   52px of hero top padding pushed the whole block down, and the eyebrow had only
   28px beneath it. Pull the block up toward the site header and give the pill more
   room below.
   The gap is owned by
   body.home .aap-hero--single > .aap-hero__body > .eyebrow{margin-bottom:28px!important}
   at (0,4,1), so this repeats that shape plus `main` to reach (0,4,2) and win. */
body.home main .aap-hero{padding-top:28px!important}
body.home main .aap-hero--single > .aap-hero__body > .eyebrow,
body.home main .aap-hero > .aap-hero__body > .eyebrow{margin-bottom:38px!important}
@media(min-width:901px){
  body.home main .aap-hero{padding-top:36px!important}
  body.home main .aap-hero--single > .aap-hero__body > .eyebrow,
  body.home main .aap-hero > .aap-hero__body > .eyebrow{margin-bottom:44px!important}
}

/* 2026-10-17: prevent stacked hero/section margins and keep secondary links clear. */
main .aap-hero__inner > :last-child{margin-bottom:0!important}
main .aap-hero__ctas + p{margin-top:20px!important}
main .aap-section__inner > :first-child{margin-top:0!important}
@media(max-width:700px){
 html body:not(.home)[class] main section.aap-hero{padding-bottom:32px!important}
 html body:not(.home)[class] main section.aap-hero[class] + section.aap-section[class]{padding-top:40px!important}
}

/* H10 2026-10-19 live audit, phone only.
   a) State credentialing disclosures: state-content-compaction.css asks for
      1.42rem summary headings on phone but a later rule kept them at 30px,
      so titles wrapped to five lines. Same on all 51 state pages.
   b) Checkout step tabs: the progress grid reserved three columns for a
      two-step form and set labels at 10.9px. Tabs now share the width.
   c) Analytics choice buttons reach a 44px tap height. */
@media (max-width: 700px) {
  body.aap-family-credentialing-state .aap-state-disclosure > summary h2 {
    font-size: 1.42rem !important;
    line-height: 1.2 !important;
  }
  .aap-checkout-progress {
    grid-template-columns: none !important;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    padding-left: 0 !important;
  }
  .aap-checkout-progress li span {
    font-size: 13px !important;
  }
  #aap-analytics-choice .aap-analytics-choice__actions button {
    min-height: 44px;
  }
}
/* H10b 2026-10-19: state payer cards, phone. Payer type chips (11.5px) and
   "verified" dates (11.8px) were under the 12px reading floor. */
@media (max-width: 700px) {
  body.aap-family-credentialing-state .card .tag,
  body.aap-family-credentialing-state .verified {
    font-size: 12.5px !important;
  }
}
/* H10c: step tabs align with the checkout card edge at every width. */
.aap-checkout-progress { padding-left: 0 !important; }
/* H11 2026-10-19: cross-link lines that sit between sections line up with the content column
   instead of floating at the page edge, and a closing line under a card grid gets breathing room. */
p.aap-xlink, p.aap-xlink2 {
  max-width: 1100px;
  margin: 28px auto !important;
  padding: 0 24px;
  box-sizing: border-box;
  color: #5b6675;
}
.aap-cards + p { margin-top: 28px !important; }
/* H11: the EHR pages "Keep Exploring" block sat at the page edge on desktop; center it on the content column. */
.aap-section.aap-related > .aap-section__inner { margin-left: auto !important; margin-right: auto !important; }
/* H11 (Ryan 10-19): no single word stranded on its own last line, sitewide. Paragraphs and list
   items only; headings keep filling their container. */
main p, main li, main dd, main td, main figcaption, footer p { text-wrap: pretty; }
/* The homepage "What Does Your Practice Need?" intro sits on one line on desktop. */
@media (min-width: 1000px) {
  html body.home[class] .aap-hp-head--center > p { max-width: none !important; }
}
/* H11: a quote card inside the navy closing band kept the band white text on its white card. */
.aap-cta-band .aap-quote { background: #fff; }
.aap-cta-band .aap-quote .aap-quote__text { color: #0f2a47 !important; }
.aap-cta-band .aap-quote .aap-quote__by span { color: #5b6675 !important; }
/* H11: a paragraph or label right after a card, grid, list or box gets breathing room. */
main .aap-section__inner > :is(div, ul, ol, aside, table, figure, article) + :is(p, .eyebrow),
main .aap-section__inner > div > :is(div, ul, ol, article) + p,
main :is(.aap-card-grid, .aap-cards, ul.aap-list, .aap-checklist) + p {
  margin-top: 24px !important;
}
main .aap-section__inner > p + :is(aside, .aap-callout, .aap-early-offer) { margin-top: 24px !important; }
.aap-page-content > section.aap-section.aap-related { width: 100% !important; max-width: none !important; align-self: stretch !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box; }
/* H11: a logo grid placed right under a left-aligned section title starts on the same left edge. */
.aap-section__inner > h2 + .aap-ehr__grid { margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; }
/* H11: /packages/ "Find Your Situation" table stacks inside the phone width instead of running off the edge. */
@media (max-width: 700px) {
  .aap-table-scroll > table.aap-cpe-table__grid { width: 100% !important; min-width: 0 !important; }
  .aap-cpe-table__grid th, .aap-cpe-table__grid td { white-space: normal !important; }
}
/* H11: quote text starts on the same left edge as the name under it. */
.aap-cta-band .aap-quote .aap-quote__text { margin-left: 0 !important; margin-right: 0 !important; }

/* analytics-consent.css */
.aap-analytics-choice[hidden],.aap-analytics-choice [hidden],.aap-privacy-settings [hidden]{display:none!important}
.aap-analytics-choice{position:relative;margin:0!important;padding:0!important;background:#0f2a47;color:#e8f0fb;border-bottom:1px solid rgba(255,255,255,.14);font:400 13px/1.4 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.aap-analytics-choice__inner{box-sizing:border-box;max-width:1200px;margin:0 auto;padding:6px 20px;display:flex;align-items:center;justify-content:center;gap:6px 16px;flex-wrap:wrap}
.aap-analytics-choice p{margin:0;color:inherit;font:inherit}
.aap-analytics-choice a{color:inherit;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.aap-analytics-choice__actions{display:flex;flex-shrink:0;gap:8px;align-items:center}
.aap-analytics-choice button{box-sizing:border-box;min-height:36px;min-width:74px;padding:6px 12px;border:1px solid rgba(255,255,255,.55);border-radius:6px;background:#fff;color:#0f2a47;font:600 13px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer;white-space:nowrap;box-shadow:none}
.aap-analytics-choice button:disabled{opacity:.65;cursor:default}
.aap-analytics-choice button:hover:not(:disabled){background:#e8eff5}
.aap-analytics-choice a{color:#bcd4ff}
.aap-analytics-choice :focus-visible,.aap-privacy-settings button:focus-visible{outline:3px solid #196cb2;outline-offset:3px}
.aap-analytics-choice .aap-analytics-choice__status{flex-basis:100%;text-align:center}
.aap-privacy-settings{background:#0d263a;color:#d6e3ee;text-align:center;padding:8px 16px;font:400 13px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.aap-privacy-settings button{min-height:44px;padding:8px;border:0;background:transparent;color:inherit;text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer}
.aap-privacy-settings a{color:inherit}
@media(max-width:700px){.aap-analytics-choice__inner{padding:10px 16px;gap:8px;justify-content:flex-start}.aap-analytics-choice__actions{gap:8px}.aap-analytics-choice p{max-width:100%}.aap-analytics-choice .aap-analytics-choice__status{text-align:left}}

