/**
 * ABA Service Page 2026 — styles.
 * File: css/aba-lp.css
 * Loaded only on pages using aba-lp-template.php (see cptwc_aba_enqueue_assets()).
 *
 * Every selector is scoped under the .cptwc-aba root class so nothing
 * leaks into (or is broken by) Kadence / Bootstrap / other templates.
 * Design tokens from the July 2026 handoff live on the root class.
 */

.cptwc-aba {
	/* Design tokens (handoff §2) */
	--cptwc-brand: #41a046;
	--cptwc-brand-dark: #2c7a32;
	--cptwc-brand-deep: #1f5524;
	--cptwc-form-green: #56a64d;
	--cptwc-dark: #1c1c1e;
	--cptwc-ink: #293330;
	--cptwc-muted: #5f6b64;
	--cptwc-bg: #fff;
	--cptwc-bg-soft: #f4f8f2;
	--cptwc-bg-band: #eaf3e6;
	--cptwc-line: #dde6d8;
	--cptwc-grey: #f5f5f5;
	--cptwc-radius: 12px;
	--cptwc-maxw: 1160px;
	--cptwc-serif: "Lora", Georgia, "Times New Roman", serif;
	--cptwc-sans: "Mulish", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--cptwc-shadow: 0 12px 34px rgba(31, 85, 36, 0.1);
	/* Short aliases used by inline SVG helpers */
	--cptwc-brand-dark-stroke: var(--cptwc-brand-dark);

	font-family: var(--cptwc-sans);
	color: var(--cptwc-ink);
	background: var(--cptwc-bg);
	line-height: 1.65;
	font-size: 17px;
	-webkit-font-smoothing: antialiased;
}

.cptwc-aba *,
.cptwc-aba *::before,
.cptwc-aba *::after { box-sizing: border-box; }

.cptwc-aba .wrap { max-width: var(--cptwc-maxw); margin: 0 auto; padding: 0 24px; }
.cptwc-aba a { color: var(--cptwc-brand-dark); text-decoration: none; }
.cptwc-aba a:hover { text-decoration: underline; }
.cptwc-aba h1,
.cptwc-aba h2 { font-family: var(--cptwc-serif); line-height: 1.18; color: var(--cptwc-brand-dark); margin: 0 0 0.5em; font-weight: 700; }
.cptwc-aba h3,
.cptwc-aba h4 { font-family: var(--cptwc-sans); line-height: 1.2; color: var(--cptwc-brand-dark); margin: 0; font-weight: 800; }
.cptwc-aba h1 { font-size: 2.9rem; letter-spacing: -0.5px; }
.cptwc-aba h2 { font-size: 2rem; }
.cptwc-aba h3 { font-size: 1.18rem; }
.cptwc-aba p { margin: 0 0 1rem; }
.cptwc-aba section { padding: 60px 0; border-top: 1px solid #d8d8d4; margin: 0; }
.cptwc-aba section.hero,
.cptwc-aba section.ribbon-sec,
.cptwc-aba section.darkproc,
.cptwc-aba section.testi-sec,
.cptwc-aba section.greenband { border-top: none; }
.cptwc-aba .section-soft,
.cptwc-aba .section-band,
.cptwc-aba .bg-tex { background: #fff url("../images/aba/bg-soft-texture.jpg") center/cover; }
.cptwc-aba .section-grey { background: var(--cptwc-grey); }
.cptwc-aba .lead { font-size: 1.18rem; line-height: 1.6; }
.cptwc-aba .eyebrow { font-family: var(--cptwc-sans); font-weight: 800; text-transform: uppercase; letter-spacing: 1.8px; font-size: 0.78rem; color: var(--cptwc-brand); margin: 0 0 10px; }
.cptwc-aba .center { text-align: center; }
.cptwc-aba .center p { margin-left: auto; margin-right: auto; max-width: 720px; }

/* BUTTONS */
.cptwc-aba .btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 28px; border-radius: 4px; font-family: var(--cptwc-sans); font-weight: 800; font-size: 1rem; cursor: pointer; transition: transform 0.15s, background 0.15s; border: none; }
.cptwc-aba .btn:hover { text-decoration: none; transform: translateY(-2px); }
.cptwc-aba .btn:focus-visible,
.cptwc-aba a:focus-visible,
.cptwc-aba button:focus-visible,
.cptwc-aba summary:focus-visible { outline: 3px solid var(--cptwc-brand-deep); outline-offset: 2px; }
.cptwc-aba .btn-light { background: #fff; color: var(--cptwc-brand-dark); }
.cptwc-aba .btn-light:hover { background: var(--cptwc-brand-deep); color: #fff; }
.cptwc-aba .btn-ghost { background: transparent; color: #fff; border: 2px solid #fff; border-radius: 4px; }
.cptwc-aba .btn-ghost:hover { background: #fff; color: var(--cptwc-brand-dark); }

/* HERO */
.cptwc-aba .hero { position: relative; background: #1a4f1e; overflow: hidden; }
.cptwc-aba .hero-bgimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: 0; }
.cptwc-aba .hero-overlay { position: absolute; inset: 0; background: linear-gradient(rgba(20, 58, 24, 0.82), rgba(20, 58, 24, 0.9)); z-index: 1; pointer-events: none; }
.cptwc-aba .hero .wrap { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items: center; padding: 30px 24px 56px; position: relative; z-index: 2; }
.cptwc-aba .crumb { font-size: 0.85rem; padding: 16px 0; color: rgba(255, 255, 255, 0.8); }
.cptwc-aba .crumb a { color: rgba(255, 255, 255, 0.8); }
.cptwc-aba .crumb a:hover { color: #fff; }
.cptwc-aba .hero-copy h1 { color: #fff; margin-bottom: 10px; }
.cptwc-aba .hero-copy .sub { font-family: var(--cptwc-serif); font-style: italic; font-size: 1.3rem; color: #cfe9c9; margin: 0 0 16px; }
.cptwc-aba .hero-copy .lead { color: rgba(255, 255, 255, 0.92); }
.cptwc-aba .hero-call { margin: 18px 0 0; }
.cptwc-aba .hero-call a { color: #fff; font-weight: 800; text-decoration: underline; }
.cptwc-aba .chips { list-style: none; padding: 0; margin: 24px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.cptwc-aba .chips li { background: #fff; border-radius: 4px; padding: 7px 14px; font-size: 14px; font-weight: 800; color: var(--cptwc-brand-dark); text-transform: uppercase; letter-spacing: 1.2px; display: flex; align-items: center; gap: 7px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); margin: 0; }
.cptwc-aba .chips li::before { content: "\2713"; width: 18px; height: 18px; border-radius: 50%; background: var(--cptwc-brand); color: #fff; font-size: 0.7rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-weight: 900; }

/* FORM CARD (hero + final CTA); also styles Gravity Forms output */
.cptwc-aba .form-card { background: var(--cptwc-form-green); border-radius: var(--cptwc-radius); padding: 30px; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22); }
.cptwc-aba .form-card h2 { color: #fff; text-align: center; font-size: 1.5rem; margin-bottom: 4px; }
.cptwc-aba .form-card .req-note { color: rgba(255, 255, 255, 0.85); text-align: center; font-size: 0.82rem; margin-bottom: 18px; }
.cptwc-aba .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cptwc-aba .form-grid label,
.cptwc-aba .form-card .gfield_label { display: block; font-size: 0.82rem; font-weight: 700; margin-bottom: 5px; color: #fff; }
.cptwc-aba .form-grid input,
.cptwc-aba .form-card .ginput_container input,
.cptwc-aba .form-card .ginput_container select,
.cptwc-aba .form-card .ginput_container textarea { width: 100%; padding: 12px !important; /* !important: overrides GF's own theme padding */ border: none; border-radius: 4px; font-size: 1rem; font-family: var(--cptwc-sans); background: #fff; color: var(--cptwc-ink); }
.cptwc-aba .form-grid input:focus,
.cptwc-aba .form-card .ginput_container input:focus { outline: 2px solid var(--cptwc-brand-deep); }
/* Phone field: the intl-tel-input flag/area-code selector sits inside the
   input's left edge, so it keeps extra left padding. */
.cptwc-aba .form-card .iti input,
.cptwc-aba .form-card .ginput_container_phone input { padding-left: 82px !important; }
/* Placeholders: uniform 14px across inputs AND textareas (GF's textarea
   otherwise renders its placeholder smaller than the single-line fields). */
.cptwc-aba .form-card input::placeholder,
.cptwc-aba .form-card textarea::placeholder { font-size: 14px; }
/* Placeholders (incl. the intl-tel/GF phone example number, injected after
   load) disappear as soon as the field is focused, per client request. */
.cptwc-aba .form-card input:focus::placeholder,
.cptwc-aba .form-card textarea:focus::placeholder { color: transparent; opacity: 0; }
.cptwc-aba .form-full { grid-column: 1 / -1; }
.cptwc-aba .form-card .btn,
.cptwc-aba .form-card .gform_button { width: 100%; justify-content: center; background: var(--cptwc-brand-deep); color: #fff; border: none; border-radius: 4px; padding: 14px 28px; font-weight: 800; font-size: 1rem; cursor: pointer; }
.cptwc-aba .form-card .btn:hover,
.cptwc-aba .form-card .gform_button:hover { background: #163f1a; }
.cptwc-aba .form-card .req { color: #fff; }
.cptwc-aba .form-card .gform_validation_errors,
.cptwc-aba .form-card .gfield_validation_message { border-radius: 4px; }

/* FEATURE LISTS */
.cptwc-aba ul.feat { padding-left: 0; list-style: none; margin: 8px 0; }
.cptwc-aba ul.feat li { position: relative; padding-left: 34px; margin: 0.55rem 0; }
.cptwc-aba ul.feat li::before { content: "\2713"; position: absolute; left: 0; top: 2px; width: 22px; height: 22px; border-radius: 50%; background: var(--cptwc-bg-band); color: var(--cptwc-brand-dark); font-weight: 900; font-size: 0.78rem; display: flex; align-items: center; justify-content: center; }
.cptwc-aba ul.feat.feat-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 24px; margin: 0; }

/* AREAS WE SERVE */
.cptwc-aba .areas-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 36px; }
.cptwc-aba .loc { background: #fff; border: 1px solid var(--cptwc-line); border-radius: 16px; padding: 20px 14px; display: flex; flex-direction: column; align-items: center; gap: 10px; font-weight: 800; color: var(--cptwc-brand-dark); transition: transform 0.15s, box-shadow 0.15s; text-align: center; }
.cptwc-aba .loc:hover { box-shadow: var(--cptwc-shadow); text-decoration: none; transform: translateY(-4px); }
.cptwc-aba .loc img { width: 130px; height: 130px; object-fit: cover; display: block; border-radius: 50%; margin: 0 auto; }
.cptwc-aba .loc .arr { color: var(--cptwc-brand); font-size: 1.1rem; }
.cptwc-aba .areas-all { margin-top: 24px; }

/* SERVICE CARDS */
.cptwc-aba .cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 38px; }
.cptwc-aba .card { background: #fff; border: 1px solid var(--cptwc-line); border-radius: var(--cptwc-radius); overflow: hidden; display: flex; flex-direction: column; text-align: center; color: inherit; transition: transform 0.18s, box-shadow 0.18s; }
.cptwc-aba .card:hover { transform: translateY(-4px); box-shadow: var(--cptwc-shadow); text-decoration: none; }
.cptwc-aba .card img { width: 100%; height: 180px; object-fit: cover; display: block; }
.cptwc-aba .card .cbody { padding: 24px 22px; }
.cptwc-aba .card h3 { margin-bottom: 8px; font-size: 1rem; text-transform: uppercase; letter-spacing: 0.5px; color: var(--cptwc-ink); }
.cptwc-aba .card p { color: var(--cptwc-muted); font-size: 0.93rem; margin: 0; }

/* WHAT IS ABA */
.cptwc-aba .split2 { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.cptwc-aba .about-copy p { color: var(--cptwc-muted); }
.cptwc-aba .pointlist { display: grid; gap: 16px; }
.cptwc-aba .pointcard { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid var(--cptwc-line); border-radius: 4px; padding: 18px 20px; box-shadow: 0 4px 14px rgba(31, 85, 36, 0.07); }
.cptwc-aba .pointcard span { font-weight: 700; color: var(--cptwc-ink); font-size: 0.95rem; }
.cptwc-aba .pointicon { width: 50px; height: 50px; border-radius: 4px; background: var(--cptwc-bg-band); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--cptwc-brand-dark); }

/* MAP + BENEFITS */
.cptwc-aba .benefit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: stretch; margin-top: 10px; }
.cptwc-aba .benefit-list { display: grid; gap: 16px; margin: 18px 0 24px; }
.cptwc-aba .benefit-list .b { display: flex; gap: 14px; align-items: flex-start; }
.cptwc-aba .benefit-list .b .n { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--cptwc-bg-band); color: var(--cptwc-brand); display: flex; align-items: center; justify-content: center; font-size: 0.85rem; font-weight: 900; margin-top: 2px; }
.cptwc-aba .loc-box { background: var(--cptwc-brand-deep); color: #fff; border-radius: var(--cptwc-radius); padding: 30px; }
.cptwc-aba .loc-box h3 { color: #fff; font-family: var(--cptwc-serif); font-weight: 700; font-size: 1.3rem; margin-bottom: 10px; }
.cptwc-aba .loc-box p { color: rgba(255, 255, 255, 0.86); font-size: 0.95rem; margin: 0 0 10px; }
.cptwc-aba .loc-box a { color: #cfe9c9; font-weight: 800; }
.cptwc-aba .loc-box .loc-phone { margin: 0; }
.cptwc-aba .map-wrap { border-radius: var(--cptwc-radius); overflow: hidden; box-shadow: var(--cptwc-shadow); height: 100%; min-height: 420px; }
.cptwc-aba .map-wrap iframe { display: block; width: 100%; height: 100%; min-height: 420px; border: 0; }

/* AGE ACCORDION */
/* align-content:start keeps the min-height reserve (set by js/aba-lp.js) as
   empty space below the items — grid's default stretch would redistribute it
   into the rows and resize the accordions during open/close. */
.cptwc-aba .agelist { display: grid; gap: 14px; margin: 38px auto 0; max-width: 920px; align-content: start; }
.cptwc-aba .agefaq { background: #fff; border: 1px solid var(--cptwc-line); border-radius: var(--cptwc-radius); box-shadow: var(--cptwc-shadow); overflow: hidden; }
.cptwc-aba .agefaq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 28px; font-family: var(--cptwc-serif); font-weight: 700; font-size: 1.32rem; color: var(--cptwc-brand); }
.cptwc-aba .agefaq summary::-webkit-details-marker { display: none; }
.cptwc-aba .agefaq summary::after { content: "+"; font-size: 1.9rem; color: var(--cptwc-brand); line-height: 1; font-family: var(--cptwc-sans); }
.cptwc-aba .agefaq[open] summary::after { content: "\2212"; }
.cptwc-aba .age-body { padding: 0 28px 26px; }
.cptwc-aba .age-body > p { color: var(--cptwc-muted); margin: 0 0 12px; }
.cptwc-aba .age-body ul.feat li { font-size: 0.96rem; color: var(--cptwc-muted); }

/* PROCESS (dark) */
.cptwc-aba .darkproc { position: relative; color: #fff; background-color: var(--cptwc-dark); background-size: cover; background-position: center; background-repeat: no-repeat; }
.cptwc-aba .darkproc-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.5); z-index: 0; pointer-events: none; }
.cptwc-aba .darkproc-head,
.cptwc-aba .darkproc-body { position: relative; z-index: 1; }
.cptwc-aba .darkproc h2 { color: #fff; }
.cptwc-aba .darkproc .sub { color: rgba(255, 255, 255, 0.7); text-align: center; max-width: 680px; margin: 0 auto; }
.cptwc-aba .pgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 46px 30px; margin-top: 48px; }
.cptwc-aba .pitem { text-align: center; }
.cptwc-aba .pico { width: 74px; height: 74px; display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; }
.cptwc-aba .pitem h3 { color: #fff; text-transform: uppercase; letter-spacing: 0.6px; font-size: 1.02rem; margin-bottom: 8px; }
.cptwc-aba .pitem p { color: rgba(255, 255, 255, 0.72); font-size: 0.93rem; margin: 0 auto; max-width: 280px; }

/* CTA RIBBON */
.cptwc-aba .ribbon-sec { background: var(--cptwc-brand); }
.cptwc-aba .ribbon { display: flex; align-items: center; justify-content: space-between; gap: 26px; flex-wrap: wrap; padding: 48px 24px; }
.cptwc-aba .ribbon .rtext h3 { color: #fff; font-family: var(--cptwc-serif); font-weight: 700; font-size: 1.6rem; margin-bottom: 4px; }
.cptwc-aba .ribbon .rtext p { color: rgba(255, 255, 255, 0.92); margin: 0; font-size: 1.05rem; }
.cptwc-aba .ribbon .rcta { display: flex; gap: 12px; flex-wrap: wrap; }

/* WHY CHOOSE (timeline) */
.cptwc-aba .timeline { position: relative; max-width: 1020px; margin: 36px auto 0; }
.cptwc-aba .timeline::before { content: ""; position: absolute; left: 50%; top: 10px; bottom: 10px; width: 2px; background: var(--cptwc-brand); transform: translateX(-50%); }
.cptwc-aba .trow { display: grid; grid-template-columns: 1fr 92px 1fr; align-items: center; gap: 24px; margin: 34px 0; }
.cptwc-aba .tcontent h3 { font-family: var(--cptwc-serif); font-weight: 700; color: var(--cptwc-brand); font-size: 1.5rem; margin-bottom: 10px; }
.cptwc-aba .tcontent p { color: var(--cptwc-muted); margin: 0; }
.cptwc-aba .tnode { justify-self: center; width: 74px; height: 74px; border-radius: 50%; background: #fff; border: 2px solid var(--cptwc-brand); color: var(--cptwc-brand); font-family: var(--cptwc-serif); font-size: 1.6rem; display: flex; align-items: center; justify-content: center; z-index: 2; }
.cptwc-aba .tphoto-wrap { border-radius: 4px 28px 64px 28px; overflow: hidden; box-shadow: var(--cptwc-shadow); min-height: 230px; }
.cptwc-aba .trow.rev .tphoto-wrap { border-radius: 4px 64px 28px 64px; }
.cptwc-aba .tphoto-wrap img { width: 100%; height: 230px; object-fit: cover; display: block; }

/* STATS */
.cptwc-aba .stats-sec { background: var(--cptwc-brand); border-top: none; }
.cptwc-aba .stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; text-align: center; }
.cptwc-aba .stat .big { font-family: var(--cptwc-serif); font-weight: 700; color: #fff; font-size: 3rem; line-height: 1; }
.cptwc-aba .stat .lbl { color: rgba(255, 255, 255, 0.8); font-weight: 700; margin-top: 8px; }

/* VIDEO */
.cptwc-aba .videowrap { position: relative; aspect-ratio: 16 / 9; border-radius: var(--cptwc-radius); overflow: hidden; margin-top: 24px; box-shadow: var(--cptwc-shadow); }
.cptwc-aba .videowrap img,
.cptwc-aba .videowrap iframe { width: 100%; height: 100%; object-fit: cover; display: block; border: 0; }
/* Once playing, the iframe must own every click — sit above any leftover
   overlay and hide the play button if anything re-renders it. */
.cptwc-aba .videowrap iframe { position: relative; z-index: 5; pointer-events: auto; }
.cptwc-aba .videowrap.is-playing .videoplay { display: none !important; }
/* background-color + !important: the theme's global button styles paint
   buttons green, which covered the video still. */
.cptwc-aba .videoplay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; z-index: 2; background-color: transparent !important; background-image: none; box-shadow: none; border: none; cursor: pointer; width: 100%; padding: 0; }
.cptwc-aba .videoplay .play { width: 84px; height: 84px; border-radius: 50%; background: rgba(255, 255, 255, 0.92); display: flex; align-items: center; justify-content: center; font-size: 2rem; color: var(--cptwc-brand-dark); transition: transform 0.15s; }
.cptwc-aba .videoplay:hover .play { transform: scale(1.06); }

/* SWIPER SLIDERS (shared) — each [data-cptwc-swiper] is its own instance. */
.cptwc-aba .cptwc-swiper { position: relative; margin-top: 36px; }
.cptwc-aba .cptwc-swiper-prev,
.cptwc-aba .cptwc-swiper-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; width: 50px; height: 50px; min-width: 0; margin: 0; padding: 0; /* padding:0 overrides theme/Bootstrap button defaults that elongate the circle */ border-radius: 50%; background: var(--cptwc-brand-deep); color: #fff; border: none; font-size: 1.7rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2); flex-shrink: 0; }
.cptwc-aba .cptwc-swiper-prev { left: 5px; }
.cptwc-aba .cptwc-swiper-next { right: 5px; }
.cptwc-aba .cptwc-swiper-prev:hover,
.cptwc-aba .cptwc-swiper-next:hover { background: var(--cptwc-brand-dark); }
.cptwc-aba .cptwc-swiper-prev.swiper-button-disabled,
.cptwc-aba .cptwc-swiper-next.swiper-button-disabled { opacity: 0.35; cursor: default; }
.cptwc-aba .cptwc-swiper-pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 18px; position: static; }
.cptwc-aba .cptwc-swiper-pagination .swiper-pagination-bullet { width: 10px; height: 10px; background: #cfd6cd; opacity: 1; transition: background 0.3s; margin: 0; }
.cptwc-aba .cptwc-swiper-pagination .swiper-pagination-bullet-active { background: var(--cptwc-brand); }
/* No-JS / pre-init fallback: slides become a scroll-snap row. */
.cptwc-aba .cptwc-swiper:not(.swiper-initialized) .swiper-wrapper { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 8px 0; scrollbar-width: none; }
.cptwc-aba .cptwc-swiper:not(.swiper-initialized) .swiper-wrapper::-webkit-scrollbar { display: none; }
.cptwc-aba .cptwc-swiper:not(.swiper-initialized) .swiper-slide { flex: 0 0 auto; scroll-snap-align: center; }
.cptwc-aba .cptwc-swiper:not(.swiper-initialized) .cptwc-swiper-prev,
.cptwc-aba .cptwc-swiper:not(.swiper-initialized) .cptwc-swiper-next,
.cptwc-aba .cptwc-swiper:not(.swiper-initialized) .cptwc-swiper-pagination { display: none; }

/* TEAM SLIDER — vertical padding gives the photo shadows room (overflow
   clips at the padding edge); Swiper subtracts the horizontal padding from
   its width calc, so the 60px gutters keep slides clear of the nav buttons.
   Integer slides-per-view (see js/aba-lp.js) = no partially visible slides. */
.cptwc-aba .cptwc-swiper--team { padding: 16px 60px 34px; }
.cptwc-aba .member { text-align: center; }
.cptwc-aba .cptwc-swiper:not(.swiper-initialized) .member { flex: 0 0 200px; }
.cptwc-aba .m-photo { width: 172px; height: 172px; border-radius: 50%; overflow: hidden; margin: 0 auto 16px; border: 4px solid #fff; box-shadow: var(--cptwc-shadow); background: var(--cptwc-bg-band); display: flex; align-items: center; justify-content: center; }
.cptwc-aba .m-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cptwc-aba .member h3 { font-family: var(--cptwc-serif); font-weight: 700; font-size: 1.18rem; color: var(--cptwc-ink); margin: 0 0 4px; }
.cptwc-aba .member .cred { color: var(--cptwc-brand); font-size: 0.86rem; font-weight: 700; }
.cptwc-aba .team-all { margin-top: 26px; }

/* TESTIMONIALS */
.cptwc-aba .testi-sec { background: var(--cptwc-grey); }
.cptwc-aba .testi-heading { margin-bottom: 0; }
.cptwc-aba .testi-embed { margin-top: 36px; }
/* Google reviews plugin caps review text at 100px !important; give it more
   room on this page. Scoped selector + !important out-specifies the plugin. */
.cptwc-aba .testi-embed .wp-gr .grw-review .wp-google-feedback { height: 200px !important; overflow-y: auto !important; padding-right: 10px; }
.cptwc-aba .testi { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 36px; }
.cptwc-aba .gcard { position: relative; background: #fff; border-radius: var(--cptwc-radius); padding: 24px 22px; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12); transition: transform 0.18s, box-shadow 0.18s; }
.cptwc-aba .gcard:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18); }
.cptwc-aba .gcard .glogo { position: absolute; top: 18px; right: 18px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); color: #4285f4; font-weight: 800; font-size: 0.92rem; display: flex; align-items: center; justify-content: center; }
.cptwc-aba .gcard .ghead { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.cptwc-aba .gcard .gav { flex: none; width: 46px; height: 46px; border-radius: 50%; background: var(--cptwc-bg-band); }
.cptwc-aba .gcard .gname { font-weight: 800; color: #222; font-size: 1.02rem; }
.cptwc-aba .gcard .gtime { color: #8a8a8a; font-size: 0.84rem; }
.cptwc-aba .gcard .stars { color: #fbab0b; letter-spacing: 2px; font-size: 1.05rem; margin-bottom: 10px; }
.cptwc-aba .gcard .gtext { color: #444; font-size: 0.93rem; line-height: 1.55; }
.cptwc-aba .testi-all { margin-top: 26px; }

/* GALLERY SLIDER — no arrows (drag/click/dots navigate). Only the active
   slide carries a shadow: side slides are partially clipped by design, so
   shadowing them created hard cutoff edges. Vertical padding gives the
   active shadow room at the top; the pagination row below provides it at
   the bottom. */
.cptwc-aba .cptwc-swiper--gallery { padding: 22px 0 12px; }
.cptwc-aba .gslot { aspect-ratio: 16 / 10; border-radius: 18px; overflow: hidden; box-shadow: none; transition: opacity 0.4s, box-shadow 0.4s; opacity: 0.7; }
.cptwc-aba .gslot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cptwc-aba .cptwc-swiper--gallery .swiper-slide-active { opacity: 1; box-shadow: 0 16px 38px rgba(0, 0, 0, 0.26); }
.cptwc-aba .cptwc-swiper:not(.swiper-initialized) .gslot { flex: 0 0 min(600px, 85%); opacity: 1; }

/* INSURANCE */
.cptwc-aba .ins-logos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 30px; }
.cptwc-aba .ins-slot { border-radius: var(--cptwc-radius); height: 120px; border: 1px solid #eee; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05); display: flex; align-items: center; justify-content: center; padding: 20px; transition: box-shadow 0.25s; }
.cptwc-aba .ins-slot img { max-width: 100%; max-height: 70px; width: auto; height: auto; object-fit: contain; display: block; filter: grayscale(100%) opacity(0.55); transition: filter 0.3s, transform 0.3s; will-change: filter, transform; }
.cptwc-aba .ins-slot:hover img { filter: grayscale(0%) opacity(1); transform: translateY(-10px); }
.cptwc-aba .ins-slot:hover { box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1); }
.cptwc-aba .ins-note { margin-top: 26px; max-width: 760px; margin-left: auto; margin-right: auto; color: var(--cptwc-muted); }

/* FAQ */
.cptwc-aba .faq-sec { padding: 66px 0; background: #fff; }
.cptwc-aba .faq-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; margin-top: 36px; }
.cptwc-aba .faq { border-bottom: 1px solid var(--cptwc-line); }
.cptwc-aba .faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 2px; }
.cptwc-aba .faq summary::-webkit-details-marker { display: none; }
.cptwc-aba .faq summary h3 { margin: 0; font-size: 1.18rem; }
.cptwc-aba .faq .chev { flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--cptwc-bg-band); color: var(--cptwc-brand-dark); display: flex; align-items: center; justify-content: center; font-size: 1.4rem; line-height: 1; transition: transform 0.2s; }
.cptwc-aba .faq[open] .chev { transform: rotate(45deg); }
.cptwc-aba .faq[open] summary h3 { color: var(--cptwc-brand); }
.cptwc-aba .faq .faq-a { padding: 0 2px 22px; }
.cptwc-aba .faq .faq-a p { margin: 0 0 8px; color: var(--cptwc-muted); }

/* FINAL CTA + HOURS */
.cptwc-aba .greenband { background-color: var(--cptwc-brand); background-size: cover; background-position: center; background-repeat: no-repeat; position: relative; }
.cptwc-aba .qcard { padding: 20px 0; }
.cptwc-aba .qgrid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 40px; align-items: center; }
.cptwc-aba .qcopy h2 { font-size: 2.1rem; margin: 0 0 10px; color: #fff; }
.cptwc-aba .qcopy p { color: rgba(255, 255, 255, 0.94); margin: 0 0 1rem; }
.cptwc-aba .qcopy a { color: #fff; }
.cptwc-aba .qcopy .feat li { color: #fff; }
.cptwc-aba .qcopy .feat li::before { background: rgba(255, 255, 255, 0.25); color: #fff; }
.cptwc-aba .qcall { margin: 18px 0 0; }
.cptwc-aba .hours { display: grid; grid-template-columns: auto repeat(3, 1fr); margin-top: 34px; border-top: 1px solid rgba(255, 255, 255, 0.32); align-items: center; }
.cptwc-aba .hours .hlabel { font-family: var(--cptwc-serif); font-weight: 700; color: #fff; font-size: 1.25rem; text-align: left; padding: 22px 18px; }
.cptwc-aba .hours .hcol { padding: 22px 14px; border-left: 1px solid rgba(255, 255, 255, 0.32); }
.cptwc-aba .hours .hcol h3 { font-size: 1.05rem; margin-bottom: 4px; color: #fff; }
.cptwc-aba .hours .hcol .t { color: rgba(255, 255, 255, 0.85); font-size: 0.96rem; }

/* MOBILE BAR */
.cptwc-aba .mobilebar { display: none; }

/* RESPONSIVE */
@media (max-width: 980px) {
	.cptwc-aba .hero .wrap { grid-template-columns: 1fr; gap: 32px; padding: 24px 16px 40px; }
	.cptwc-aba .split2 { grid-template-columns: 1fr; gap: 36px; }
	.cptwc-aba .faq-cols { grid-template-columns: 1fr; }
	.cptwc-aba .cards { grid-template-columns: repeat(2, 1fr); }
	.cptwc-aba .testi { grid-template-columns: repeat(2, 1fr); }
	.cptwc-aba .benefit-grid { grid-template-columns: 1fr; }
	.cptwc-aba .stats { grid-template-columns: 1fr 1fr; }
	.cptwc-aba .pgrid { grid-template-columns: repeat(2, 1fr); }
	.cptwc-aba .qgrid { grid-template-columns: 1fr; }
	.cptwc-aba .ins-logos { grid-template-columns: repeat(2, 1fr); }
	.cptwc-aba h1 { font-size: 2.2rem; }
	.cptwc-aba .hours { grid-template-columns: 1fr; }
	.cptwc-aba .hours .hlabel { text-align: center; border-bottom: 1px solid rgba(255, 255, 255, 0.32); }
	.cptwc-aba .hours .hcol { border-left: none; border-bottom: 1px solid rgba(255, 255, 255, 0.32); text-align: center; }
	.cptwc-aba .timeline::before { left: 36px; }
	/* All timeline rows share the same inline layout below 980px; the .rev
	   rows have photo-first DOM order, so `order` puts content back on the
	   left and the photo on the right, matching the other steps. */
	.cptwc-aba .trow { display: flex; flex-wrap: wrap; align-items: flex-start; margin: 0 0 32px; padding-left: 96px; position: relative; min-height: 74px; }
	.cptwc-aba .trow .tnode { position: absolute; left: 0; top: 0; }
	.cptwc-aba .trow .tcontent { flex: 1 1 0; min-width: 0; padding-right: 14px; }
	.cptwc-aba .trow .tphoto-wrap { flex: 0 0 38%; max-width: 38%; min-height: 0; max-height: 160px; overflow: hidden; border-radius: 4px 14px 28px 14px; }
	.cptwc-aba .trow.rev .tcontent { order: 1; }
	.cptwc-aba .trow.rev .tphoto-wrap { order: 2; }
}
@media (max-width: 780px) {
	.cptwc-aba .areas-grid { grid-template-columns: repeat(3, 1fr); }
	.cptwc-aba .mobilebar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.22); }
	.cptwc-aba .mobilebar a { flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 15px 8px; font-family: var(--cptwc-sans); font-weight: 800; font-size: 1.02rem; text-decoration: none; }
	.cptwc-aba .mobilebar .mb-book { background: var(--cptwc-brand-deep); color: #fff; }
	.cptwc-aba .mobilebar .mb-call { background: var(--cptwc-brand); color: #fff; }
	body.page-template-aba-lp-template { padding-bottom: 58px; }
}
@media (max-width: 600px) {
	.cptwc-aba .wrap { padding: 0 14px; }
	.cptwc-aba .areas-grid { grid-template-columns: repeat(2, 1fr); }
	.cptwc-aba .loc img { width: 108px; height: 108px; }
	.cptwc-aba h1 { font-size: 1.9rem; }
	.cptwc-aba h2 { font-size: 1.7rem; }
	.cptwc-aba .lead { font-size: 1.05rem; }
	.cptwc-aba .form-card,
	.cptwc-aba .loc-box { padding: 14px 12px; }
	.cptwc-aba .agefaq summary { padding: 18px 18px; font-size: 1.12rem; }
	.cptwc-aba .age-body { padding: 0 18px 20px; }
	.cptwc-aba .hours .hcol,
	.cptwc-aba .hours .hlabel { padding: 16px 12px; }
	.timeline .trow{ flex-direction: column; }
	.cptwc-aba .trow .tphoto-wrap{ max-width: 100%; }
}
@media (max-width: 560px) {
	.cptwc-aba .cards,
	.cptwc-aba .form-grid,
	.cptwc-aba .stats,
	.cptwc-aba .testi { grid-template-columns: 1fr; }
	.cptwc-aba .pgrid { grid-template-columns: 1fr; }
	.cptwc-aba section { padding: 48px 0; }
	.cptwc-aba ul.feat.feat-2col { grid-template-columns: 1fr; }
	.cptwc-aba .btn{ min-width: 256px; justify-content: center; margin: 0 auto; }
}

/* REVEAL ON SCROLL — js/aba-lp.js is the single owner of .is-visible.
   Hidden state only applies under html.cptwc-js (added by the script), so
   without JS everything stays visible. */
html.cptwc-js .cptwc-aba .reveal,
html.cptwc-js .cptwc-aba .reveal-group > * {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 0.65s ease, transform 0.65s cubic-bezier(0.22, 0.61, 0.36, 1);
	transition-delay: var(--cptwc-delay, 0s);
	will-change: opacity, transform;
}
html.cptwc-js .cptwc-aba .reveal.is-visible,
html.cptwc-js .cptwc-aba .reveal-group.is-visible > * {
	opacity: 1;
	transform: none;
}
/* The hero form/copy sit above the fold — shorter travel so it feels snappy. */
html.cptwc-js .cptwc-aba .hero .reveal { transform: translateY(14px); }

/* ACCORDION ANIMATION — .is-anim applied by js/aba-lp.js while the panel
   height is animating (Web Animations API drives the height itself). */
.cptwc-aba .faq-a.is-anim,
.cptwc-aba .age-body.is-anim { overflow: hidden; }

/* REDUCED MOTION — disables movement/transitions, keeps resting states. */
@media (prefers-reduced-motion: reduce) {
	.cptwc-aba .btn,
	.cptwc-aba .loc,
	.cptwc-aba .card,
	.cptwc-aba .gcard,
	.cptwc-aba .ins-slot img,
	.cptwc-aba .faq .chev,
	.cptwc-aba .videoplay .play,
	.cptwc-aba .gslot { transition: none; }
	.cptwc-aba .btn:hover,
	.cptwc-aba .loc:hover,
	.cptwc-aba .card:hover,
	.cptwc-aba .gcard:hover,
	.cptwc-aba .ins-slot:hover img { transform: none; }
	html.cptwc-js .cptwc-aba .reveal,
	html.cptwc-js .cptwc-aba .reveal-group > * { opacity: 1; transform: none; transition: none; }
}
