/* Certified Care — styles for Elementor-built pages.
   Kept at low specificity so anything set in the Elementor panel overrides it. */

/* ---------- Base typography ---------- */
.elementor-widget-heading .elementor-heading-title { line-height: 1.15; letter-spacing: -.02em; margin-bottom: .55em; color: var(--navy); font-weight: 800; }
.elementor-widget-heading p.elementor-heading-title { font-weight: 700; }
.elementor-widget-text-editor { color: var(--ink); }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.cc-lead { font-size: 1.18rem; color: var(--muted); }
.cc-head .cc-lead { max-width: 720px; }
.cc-muted, .cc-muted p { color: var(--muted); }
.cc-h3 .elementor-heading-title { font-size: 1.45rem; }
.cc-h4 .elementor-heading-title { font-size: 1.15rem; font-weight: 700; letter-spacing: -.01em; }
.cc-hero-title .elementor-heading-title { font-size: clamp(2.3rem, 5vw, 3.75rem); margin-bottom: .45em; }
.cc-page-hero h1.elementor-heading-title { font-size: clamp(2.1rem, 4.4vw, 3.2rem); }
.cc-narrow { max-width: 860px; width: 100%; }

.cc-eyebrow .elementor-heading-title { font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--brand); line-height: 1.4; margin-bottom: 1rem; }
.cc-eyebrow--light .elementor-heading-title { color: #7fd6d8; }
.cc-group-title .elementor-heading-title { font-size: 1.02rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); font-weight: 700; margin: 2.5rem 0 1.2rem; }
.cc-sec .cc-head + .cc-group-title .elementor-heading-title { margin-top: 0; }

/* ---------- Sections ---------- */
.cc-hero { background: radial-gradient(900px 500px at 85% 10%, rgba(20, 163, 168, .16), transparent 60%), radial-gradient(700px 400px at 0% 100%, rgba(232, 137, 58, .10), transparent 60%), linear-gradient(180deg, #f6fbfb, #fff); overflow: hidden; }
.cc-page-hero { background: radial-gradient(closest-side at 50% 120%, rgba(20, 163, 168, .14), transparent), linear-gradient(180deg, #f2fafa, #fff); }
.cc-sec--dark, .cc-sec--dark .elementor-widget-text-editor { color: #b5c6d6; }
.cc-sec--dark .elementor-heading-title { color: #fff; }
.cc-sec--dark .cc-eyebrow .elementor-heading-title { color: #7fd6d8; }
.cc-pillars { position: relative; z-index: 2; margin-top: -24px; }

/* Pill badge in hero */
.cc-pill-wrap .elementor-heading-title { line-height: 1; margin-bottom: 1.2rem; }
.cc-pill { display: inline-flex; align-items: center; gap: .45rem; background: #fff; border: 1px solid var(--brand-100); padding: .5rem .95rem; border-radius: 999px; font-size: .9rem; font-weight: 700; color: var(--brand); box-shadow: var(--shadow-sm); letter-spacing: 0; }
.cc-hero-img img { width: 100%; height: auto; aspect-ratio: 1040 / 960; animation: float 7s ease-in-out infinite; }

/* ---------- Buttons ---------- */
.cc-btn .elementor-button { font-family: inherit; font-weight: 700; font-size: 1rem; line-height: 1; padding: 1rem 1.45rem; border-radius: 999px; border: 2px solid transparent; transition: transform .2s var(--ease), box-shadow .2s, background .2s, color .2s, border-color .2s; }
.cc-btn .elementor-button:hover { transform: translateY(-2px); }
.cc-btn .elementor-button-icon svg { fill: currentColor; width: 1em; height: 1em; }
.cc-btn .elementor-button-icon i { color: currentColor; }
.cc-btn--primary .elementor-button { background: linear-gradient(135deg, var(--brand-400), var(--brand-600)) border-box; border-color: transparent; color: #fff; box-shadow: 0 10px 24px -8px rgba(14, 124, 134, .6); }
.cc-btn--primary .elementor-button:hover { color: #fff; }
.cc-btn--ghost .elementor-button { background: #fff; color: var(--navy); border-color: var(--line); }
.cc-btn--ghost .elementor-button:hover { color: var(--brand); border-color: var(--brand); }
.cc-btn--white .elementor-button { background: #fff; color: var(--navy); }
.cc-btn--white .elementor-button:hover { color: var(--brand); }
.cc-btn--ghost-light .elementor-button { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .35); }
.cc-btn--ghost-light .elementor-button:hover { color: #fff; border-color: #fff; background: rgba(255, 255, 255, .08); }
.cc-btn--link .elementor-button { background: transparent; color: var(--brand); padding: .4rem 0; box-shadow: none; }
.cc-btn--link .elementor-button:hover { color: var(--brand-600); transform: none; }

/* ---------- Cards (widgets or containers) ---------- */
.e-con.cc-card, .e-con.cc-stat, .e-con.cc-cta { --border-radius: var(--radius); border-radius: var(--radius); }
.e-con.cc-cta { --border-radius: 28px; border-radius: 28px; }
.e-con.cc-card { border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.cc-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.elementor-widget.cc-card { padding: 28px; }
.cc-card--shadow { box-shadow: var(--shadow); }
.cc-card--link { transition: transform .25s var(--ease), box-shadow .25s, border-color .25s; }
.cc-card--link:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--brand-100); }
.cc-card--feature { background: linear-gradient(160deg, var(--brand-50), #fff); border-color: var(--brand-100); }
.cc-card--dark { border-color: var(--navy); color: #b5c6d6; }
.cc-card--dark .elementor-heading-title { color: #fff; }
.cc-card--dark .elementor-widget-text-editor { color: #b5c6d6; }

/* Icon boxes */
.cc-iconbox { --icon-box-icon-margin: 18px; }
.cc-iconbox .elementor-icon-box-wrapper { text-align: left; align-items: flex-start; }
.cc-iconbox .elementor-icon-box-icon { display: inline-flex; }
.cc-iconbox .elementor-icon-box-icon .elementor-icon { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--brand-50); color: var(--brand); fill: var(--brand); font-size: 22px; }
.cc-iconbox .elementor-icon svg { width: 22px; height: 22px; fill: currentColor; }
.cc-iconbox .elementor-icon i { color: inherit; }
.cc-card--warm .elementor-icon-box-icon .elementor-icon { background: var(--warm-50); color: var(--warm); fill: var(--warm); }
.cc-iconbox .elementor-icon-box-title { font-size: 1.15rem; font-weight: 700; color: var(--navy); line-height: 1.25; margin: 0 0 .45rem; letter-spacing: -.01em; }
.cc-iconbox .elementor-icon-box-title a { color: inherit; }
.cc-iconbox .elementor-icon-box-description { color: var(--muted); font-size: .97rem; margin: 0; line-height: 1.6; }
.cc-card--row .elementor-icon-box-title { font-size: 1.25rem; }
.cc-card--row .elementor-icon-box-icon .elementor-icon { width: 60px; height: 60px; border-radius: 18px; }
.cc-card--row { scroll-margin-top: 110px; }
.cc-card--row:target { border-color: var(--brand); box-shadow: 0 0 0 4px var(--brand-50); }
.cc-inline-link { display: inline-block; margin-top: .8rem; font-weight: 700; color: var(--brand); }
.cc-meta { display: inline-block; margin-top: .8rem; font-size: .8rem; font-weight: 700; color: var(--brand); background: var(--brand-50); padding: .25rem .6rem; border-radius: 999px; }

/* ---------- Stats ---------- */
.cc-stat { background: var(--brand-50); border-radius: var(--radius); }
.cc-stat__num .elementor-heading-title { font-size: 2.4rem; line-height: 1; color: var(--navy); font-weight: 800; letter-spacing: -.03em; margin-bottom: .2em; }
.cc-stat__label { color: var(--muted); font-weight: 600; font-size: .95rem; }
.cc-stat--warm { background: var(--warm-50); }
.cc-stat--dark { background: var(--navy); }
.cc-stat--dark .cc-stat__num .elementor-heading-title { color: #fff; }
.cc-stat--dark .cc-stat__label { color: #a9c1d6; }
@media (min-width: 768px) {
	.cc-stat:nth-child(2), .cc-stat:nth-child(4) { transform: translateY(1.5rem); }
}

/* ---------- Steps ---------- */
.cc-step__num .elementor-heading-title { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg, var(--brand-400), var(--brand-600)); color: #fff; font-size: 1.15rem; font-weight: 800; margin-bottom: 1rem; box-shadow: 0 8px 18px -6px rgba(14, 124, 134, .6); letter-spacing: 0; }

/* ---------- Icon lists ---------- */
.cc-trust { margin-top: 1.8rem; }
.cc-trust .elementor-icon-list-text { color: var(--muted); font-weight: 600; font-size: .95rem; }
.cc-trust .elementor-icon-list-icon i { color: var(--brand); }
.cc-trust .elementor-icon-list-icon svg { fill: var(--brand); }

.cc-checks .elementor-icon-list-item { margin-bottom: .8rem; }
.cc-checks .elementor-icon-list-icon { width: 24px; height: 24px; min-width: 24px; border-radius: 50%; background: var(--brand-50); display: inline-grid; place-items: center; margin-right: .7rem; }
.cc-checks .elementor-icon-list-icon i { color: var(--brand); font-size: 11px; }
.cc-checks .elementor-icon-list-icon svg { fill: var(--brand); width: 11px; height: 11px; }
.cc-checks .elementor-icon-list-text { color: var(--ink); font-weight: 600; }

.cc-chips .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: .7rem; }
.cc-chips .elementor-icon-list-items .elementor-icon-list-item { margin: 0 !important; padding: .7rem 1.1rem !important; border-radius: 999px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); }
.cc-chips .elementor-icon-list-item::after { display: none !important; }
.cc-chips .elementor-icon-list-text { color: #e6eef5; font-weight: 600; font-size: .95rem; }
.cc-chips .elementor-icon-list-icon { margin-right: .55rem; }
.cc-chips .elementor-icon-list-icon i { color: #7fd6d8; }
.cc-chips .elementor-icon-list-icon svg { fill: #7fd6d8; }

/* ---------- FAQ toggle ---------- */
.cc-faq .elementor-toggle-item { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); margin-bottom: .8rem; overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.cc-faq .elementor-toggle-item:hover { border-color: var(--brand-100); }
.cc-faq .elementor-tab-title { border: 0 !important; padding: 1.15rem 1.4rem; font-weight: 700; line-height: 1.4; }
.cc-faq .elementor-tab-title.elementor-active { box-shadow: none; }
.cc-faq .elementor-toggle-title, .cc-faq .elementor-tab-title a { color: var(--navy); font-weight: 700; font-size: 1.02rem; font-family: inherit; }
.cc-faq .elementor-toggle-icon i { color: var(--brand); }
.cc-faq .elementor-toggle-icon svg { fill: var(--brand); }
.cc-faq .elementor-tab-content { border: 0 !important; padding: 0 1.4rem 1.2rem !important; color: var(--muted); }
.cc-faq .elementor-tab-content p { margin: 0; }

/* ---------- CTA ---------- */
.cc-cta { box-shadow: var(--shadow-lg); }
.cc-cta .elementor-heading-title { color: #fff; margin-bottom: .3em; }
.cc-cta .elementor-widget-text-editor { color: #d7e6ef; max-width: 34em; }
.cc-cta .cc-btn-row { margin-top: 0 !important; --width: auto; width: auto; flex: 0 0 auto; flex-wrap: nowrap; }
@media (max-width: 1024px) { .cc-cta .cc-btn-row { flex-wrap: wrap; width: 100%; } }

/* ---------- Mobile ---------- */
@media (max-width: 640px) {
	.cc-btn-row .elementor-widget-button:not(.cc-btn--link) { flex: 1 1 100%; }
	.cc-btn-row .elementor-widget-button:not(.cc-btn--link) .elementor-button { width: 100%; justify-content: center; }
	.cc-stat__num .elementor-heading-title { font-size: 2rem; }
	.cc-pillars { margin-top: 0; }
}
.elementor-widget-text-editor + .elementor-widget-heading:not(.cc-eyebrow) { margin-top: 1.4rem; }
.elementor-widget-text-editor + .elementor-widget-button { margin-top: 1.1rem; }

/* Toggle title row: question left, icon right */
.cc-faq .elementor-tab-title { display: flex; align-items: center; gap: 1rem; margin: 0 !important; font-size: 1.02rem; letter-spacing: 0; }
.cc-faq .elementor-tab-title .elementor-toggle-title { flex: 1; order: 1; }
.cc-faq .elementor-tab-title .elementor-toggle-icon { order: 2; float: none !important; width: auto !important; font-size: 13px; line-height: 1; display: inline-flex; }
.cc-faq .elementor-toggle-icon svg { width: 13px; height: 13px; }
.cc-cta .elementor-button { white-space: nowrap; }
.cc-cta > .e-con { flex-shrink: 1; min-width: 0; }
.cc-btn-row .elementor-widget-button { flex-shrink: 0; }
.cc-btn .elementor-button-icon { flex-shrink: 0; }

/* PCA & 245D training page */
.cc-plain .elementor-icon-box-description { font-size: 1rem; }
.cc-plain .elementor-icon-box-title { font-size: 1.25rem; }
.cc-video .elementor-wrapper, .cc-video .elementor-custom-embed-image-overlay { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-lg); }
.cc-card .cc-btn-row { margin-top: 20px; }

.cc-faq .elementor-tab-title { cursor: pointer; }

/* Keep button colours after a link has been visited (Elementor sets visited buttons to white). */
.cc-btn--primary .elementor-button:visited, .cc-btn--ghost-light .elementor-button:visited { color: #fff; }
.cc-btn--ghost .elementor-button:visited, .cc-btn--white .elementor-button:visited { color: var(--navy); }
.cc-btn--link .elementor-button:visited { color: var(--brand); }
