/* ==========================================================================
   CCR Elementor — Elementor widgets
   Brand colors come from Settings → CCR Elementor (printed as :root vars).
   ========================================================================== */

:root {
	--ccrx-pink: #E8508F;
	--ccrx-cyan: #22B8D8;
	--ccrx-yellow: #F7C948;
	--ccrx-accent: #C4286A;
	--ccrx-accent-hover: #9A1D52;
	--ccrx-cyan-text: #0B7A99;
	--ccrx-ink: #0B1F33;
	--ccrx-paper: #F7F4EE;
	--ccrx-line: #DDD6C8;
	--ccrx-muted: #5B6572;
	--ccrx-body: #3A4553;
	--ccrx-east: #0E5E52;
	--ccrx-west: #0C2340;
	--ccrx-summit: #6E2748;
	--ccrx-summit-bg: #3B1830;
	--ccrx-serif: 'Instrument Serif', Georgia, serif;
	--ccrx-sans: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--ccrx-gutter: 96px;
	--ccrx-section: 144px;
}

/* v2 homepage sections — built from the same paper, type and spacing system. */
.ccrx-mission { background: var(--ccrx-paper); }
.ccrx-mission__wrap { padding: var(--ccrx-section) var(--ccrx-gutter); }
.ccrx-mission__grid { --ccrx-mission-media: 52%; display: grid; grid-template-columns: minmax(0,var(--ccrx-mission-media)) minmax(0,1fr); align-items: center; gap: 96px; }
.ccrx-mission--right .ccrx-mission__mosaic { order: 2; }
.ccrx-mission__mosaic { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: repeat(2,minmax(150px,1fr)); gap: 24px; min-height: 520px; position: relative; }
.ccrx-mission__image { margin: 0; overflow: hidden; background: #ECE6DA; border-radius: 20px; position: relative; }
.ccrx-mission__image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease; }
.ccrx-mission__image:hover img { transform: scale(1.02); }
.ccrx-mission__image--1 { margin-top: 72px; }
.ccrx-mission__image--2 { margin-bottom: 24px; }
.ccrx-mission__image--3 { margin-bottom: 48px; }
.ccrx-mission.has-decorations .ccrx-mission__mosaic::before { content: ""; position: absolute; z-index: 2; width: 48px; height: 4px; border-radius: 2px; background: var(--ccrx-pink); left: -16px; top: 42px; }
.ccrx-mission.has-decorations .ccrx-mission__mosaic::after { content: ""; position: absolute; z-index: 2; width: 44px; height: 4px; border-radius: 2px; background: var(--ccrx-cyan); right: -12px; bottom: 16px; }
.ccrx-mission__content { display: flex; flex-direction: column; align-items: flex-start; }
.ccrx-mission__eyebrow, .ccrx-data__eyebrow { display: block; font-family: var(--ccrx-sans); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ccrx-accent); margin-bottom: 20px; }
.ccrx .ccrx-mission__title, .ccrx .ccrx-data__title { font-family: var(--ccrx-serif); font-size: clamp(56px,5vw,80px); font-weight: 400; line-height: 1; letter-spacing: normal; text-transform: none; color: var(--ccrx-ink); margin: 0 0 28px; }
.ccrx-mission__copy, .ccrx-data__copy { font-family: var(--ccrx-sans); font-size: 18px; line-height: 1.65; color: var(--ccrx-body); }
.ccrx-mission__copy p:last-child, .ccrx-data__copy p:last-child { margin-bottom: 0; }

.ccrx-data { background: #fff; overflow: hidden; }
.ccrx-data__wrap { padding: var(--ccrx-section) var(--ccrx-gutter); }
.ccrx-data__grid { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(340px,.92fr); gap: 96px; align-items: center; }
.ccrx-data--image-left .ccrx-data__visual { order: -1; }
.ccrx-data__eyebrow { color: var(--ccrx-cyan-text); }
.ccrx-data__metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; margin-top: 44px; border-top: 1px solid var(--ccrx-line); border-bottom: 1px solid var(--ccrx-line); }
.ccrx-data__metric { position: relative; padding: 28px 22px 28px 0; opacity: 0; transform: translateY(12px); transition: opacity .5s ease,transform .5s ease; }
.ccrx-data__metric + .ccrx-data__metric { padding-left: 22px; border-left: 1px solid var(--ccrx-line); }
.ccrx-data.is-visible .ccrx-data__metric { opacity: 1; transform: none; }
.ccrx-data.is-visible .ccrx-data__metric:nth-child(2) { transition-delay: .1s; }
.ccrx-data.is-visible .ccrx-data__metric:nth-child(3) { transition-delay: .2s; }
.ccrx-data__metric::before { content: ""; display: block; width: 32px; height: 4px; margin-bottom: 12px; border-radius: 2px; background: var(--ccrx-pink); }
.ccrx-data__metric--cyan::before { background: var(--ccrx-cyan); }
.ccrx-data__metric--yellow::before { background: var(--ccrx-yellow); }
.ccrx-data__number { display: block; font-family: var(--ccrx-serif); font-size: clamp(42px,4vw,64px); font-weight: 400; letter-spacing: normal; color: var(--ccrx-ink); line-height: 1; }
.ccrx-data__label { display: block; margin-top: 10px; color: var(--ccrx-muted); font-size: 14px; line-height: 1.45; }
.ccrx-data__visual { position: relative; min-height: 520px; border-radius: 24px; overflow: hidden; background: var(--ccrx-paper); }
.ccrx-data__image { width: 100%; height: 100%; min-height: 520px; object-fit: contain; display: block; }
.ccrx-data__orb { position: absolute; inset: 14%; border-radius: 50%; border: 2px solid var(--ccrx-line); background: transparent; animation: ccrx-float 7s ease-in-out infinite; }
.ccrx-data__orb::before { content: "CCR"; position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--ccrx-serif); font-size: 88px; color: var(--ccrx-ink); }
.ccrx-data__orb span { position: absolute; border-radius: 50%; border: 4px solid var(--ccrx-pink); width: 18px; height: 18px; left: 12%; top: 20%; background: var(--ccrx-paper); }
.ccrx-data__orb span:nth-child(2) { left: auto; right: 8%; top: 36%; border-color: var(--ccrx-cyan); }
.ccrx-data__orb span:nth-child(3) { left: 46%; top: auto; bottom: -9px; border-color: var(--ccrx-yellow); }
@keyframes ccrx-float { 50% { transform: translateY(-8px); } }
@media (max-width: 900px) { .ccrx-mission__grid,.ccrx-data__grid { grid-template-columns: 1fr; gap: 56px; } .ccrx-mission--right .ccrx-mission__mosaic,.ccrx-data--image-left .ccrx-data__visual { order: 0; } .ccrx-mission__mosaic { min-height: 440px; } .ccrx-data__visual { min-height: 420px; } }
@media (max-width: 560px) { .ccrx-mission__wrap,.ccrx-data__wrap { padding: 80px 24px; } .ccrx-mission__mosaic { min-height: 360px; gap: 12px; } .ccrx-mission__image { border-radius: 16px; } .ccrx-data__metrics { grid-template-columns: 1fr; } .ccrx-data__metric + .ccrx-data__metric { padding-left: 0; border-left: 0; border-top: 1px solid var(--ccrx-line); } .ccrx-data__visual,.ccrx-data__image { min-height: 340px; } }
@media (prefers-reduced-motion: reduce) { .ccrx-data__metric { opacity: 1; transform: none; transition: none; } .ccrx-data__orb { animation: none; } }

/* ---------- Base / theme-proofing ---------- */
.ccrx { font-family: var(--ccrx-sans); color: var(--ccrx-ink); -webkit-font-smoothing: antialiased; line-height: 1.5; }
.ccrx *, .ccrx *::before, .ccrx *::after { box-sizing: border-box; }
.ccrx h1, .ccrx h2, .ccrx h3, .ccrx p, .ccrx figure, .ccrx blockquote, .ccrx ul, .ccrx ol { margin: 0; padding: 0; }
.ccrx h1, .ccrx h2, .ccrx h3 { font-family: var(--ccrx-serif); font-weight: 400; color: inherit; letter-spacing: normal; text-transform: none; }
.ccrx svg { display: block; }
.ccrx a { color: var(--ccrx-accent); text-decoration: underline; text-underline-offset: 3px; }
.ccrx a:hover, .ccrx a:focus { color: var(--ccrx-accent-hover); }
.ccrx a:focus-visible, .ccrx button:focus-visible, .ccrx input:focus-visible { outline: 2px solid var(--ccrx-cyan); outline-offset: 3px; }
.ccrx-bg-paper { background: var(--ccrx-paper); }
.ccrx-inner { max-width: 1440px; margin: 0 auto; }

.ccrx .ccrx-eyebrow { display: block; font-family: var(--ccrx-sans); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ccrx-muted); }
.ccrx .ccrx-eyebrow--east { color: var(--ccrx-east); }
.ccrx .ccrx-eyebrow--west { color: #1D5FA8; }
.ccrx .ccrx-eyebrow--cyan { color: var(--ccrx-cyan-text); }
.ccrx .ccrx-eyebrow--accent { color: var(--ccrx-accent); }

/* Buttons */
.ccrx a.ccrx-btn, .ccrx button.ccrx-btn { display: inline-flex; align-items: center; justify-content: center; height: 48px; padding: 0 24px; border-radius: 999px; border: 0; font-family: var(--ccrx-sans); font-size: 15px; font-weight: 600; line-height: 1; text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s; white-space: nowrap; }
.ccrx a.ccrx-btn--accent, .ccrx button.ccrx-btn--accent { background: var(--ccrx-accent); color: #fff; }
.ccrx a.ccrx-btn--accent:hover, .ccrx button.ccrx-btn--accent:hover { background: var(--ccrx-accent-hover); color: #fff; }
.ccrx a.ccrx-btn--light { background: var(--ccrx-paper); color: var(--ccrx-ink); }
.ccrx a.ccrx-btn--light:hover { background: #fff; color: var(--ccrx-ink); }
.ccrx a.ccrx-btn--outline { border: 1px solid var(--ccrx-ink); background: transparent; color: var(--ccrx-ink); }
.ccrx a.ccrx-btn--outline:hover { background: var(--ccrx-ink); color: var(--ccrx-paper); }

/* Brand accents */
.ccrx-strip { display: flex; height: 4px; }
.ccrx-strip span { flex: 1; }
.ccrx-c-pink { background: var(--ccrx-pink); }
.ccrx-c-cyan { background: var(--ccrx-cyan); }
.ccrx-c-yellow { background: var(--ccrx-yellow); }
.ccrx-bar { display: block; width: 32px; height: 4px; border-radius: 2px; margin-bottom: 8px; }

/* Section heads */
.ccrx-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 80px; }
.ccrx-head__main { display: flex; flex-direction: column; gap: 20px; }
.ccrx .ccrx-head h2 { font-size: 64px; line-height: 1.02; }
.ccrx .ccrx-head__lede { max-width: 360px; font-size: 17px; line-height: 1.65; color: var(--ccrx-body); }

/* ---------- Announcement ---------- */
.ccrx a.ccrx-announce { display: flex; justify-content: center; align-items: center; gap: 10px; min-height: 40px; padding: 8px 16px; background: var(--ccrx-ink); color: var(--ccrx-paper); font-size: 14px; text-align: center; text-decoration: none; }
.ccrx a.ccrx-announce:hover { color: #fff; }
.ccrx-announce__arrow { color: var(--ccrx-yellow); }

/* ---------- Header ---------- */
.ccrx-header { background: var(--ccrx-paper); }
.ccrx-header__bar { height: 96px; padding: 0 var(--ccrx-gutter); display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.ccrx a.ccrx-logo { display: flex; align-items: center; gap: 16px; color: var(--ccrx-ink); text-decoration: none; }
.ccrx-logo__mark { font-family: var(--ccrx-serif); font-size: 34px; line-height: 1; }
.ccrx-logo__mark img { display: block; max-height: 44px; width: auto; }
.ccrx-logo__rule { width: 1px; height: 28px; background: var(--ccrx-line); }
.ccrx-logo__name { font-size: 14px; line-height: 1.3; color: var(--ccrx-muted); }
.ccrx-nav { display: flex; gap: 40px; font-size: 15px; font-weight: 500; }
.ccrx .ccrx-nav a, .ccrx .ccrx-header__cta a.ccrx-plain { color: var(--ccrx-ink); text-decoration: none; }
.ccrx .ccrx-nav a:hover, .ccrx .ccrx-header__cta a.ccrx-plain:hover { color: var(--ccrx-accent); }
.ccrx-header__cta { display: flex; align-items: center; gap: 28px; font-size: 15px; font-weight: 500; }
.ccrx-header__cta .ccrx-btn { height: 44px; }
.ccrx .ccrx-nav a.ccrx-nav__extra { display: none; }

/* ---------- Hero ---------- */
.ccrx-hero { background: var(--ccrx-paper); }
.ccrx-hero__wrap { padding: 104px var(--ccrx-gutter) 128px; display: flex; flex-direction: column; gap: 72px; }
.ccrx-hero__top { display: flex; justify-content: space-between; align-items: flex-end; gap: 80px; }
.ccrx .ccrx-hero__title { font-size: 112px; line-height: .95; letter-spacing: -.015em; }
.ccrx .ccrx-hero__title em { font-style: italic; color: var(--ccrx-east); text-decoration: underline; text-decoration-color: var(--ccrx-yellow); text-decoration-thickness: 10px; text-underline-offset: 10px; text-decoration-skip-ink: none; }
.ccrx-hero__aside { width: 360px; flex-shrink: 0; display: flex; flex-direction: column; gap: 28px; padding-bottom: 14px; }
.ccrx .ccrx-hero__aside p { font-size: 18px; line-height: 1.65; color: var(--ccrx-body); }

.ccrx-panels { position: relative; display: flex; gap: 24px; height: 560px; }
.ccrx-panel { position: relative; flex: 1; border-radius: 24px; overflow: hidden; color: var(--ccrx-paper); }
.ccrx-panel--east { background: var(--ccrx-east); }
.ccrx-panel--west { background: var(--ccrx-west); }
.ccrx-panel__art { position: absolute; left: 0; bottom: 0; width: 100%; height: 100%; }
.ccrx-panel__body { position: relative; padding: 48px; display: flex; flex-direction: column; gap: 16px; }
.ccrx .ccrx-panel__body h2 { font-size: 64px; line-height: 1; }
.ccrx .ccrx-panel__body p { font-size: 17px; line-height: 1.55; }
.ccrx-panel--east .ccrx-eyebrow { color: #BFE3D8; }
.ccrx-panel--east p { color: #D6ECE5; }
.ccrx-panel--west .ccrx-eyebrow { color: #9FC7EA; }
.ccrx-panel--west p { color: #D0DFEE; }
.ccrx-panel__actions { display: flex; align-items: center; gap: 24px; margin-top: 16px; flex-wrap: wrap; }
.ccrx .ccrx-panel__actions a.ccrx-textlink { color: var(--ccrx-paper); font-size: 15px; font-weight: 500; }

.ccrx a.ccrx-seal { position: absolute; left: 50%; top: 70%; z-index: 2; transform: translate(-50%, -50%); width: 172px; height: 172px; border-radius: 50%; background: var(--ccrx-summit); border: 8px solid var(--ccrx-paper); box-shadow: inset 0 0 0 3px var(--ccrx-pink); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; color: var(--ccrx-paper); text-decoration: none; }
.ccrx a.ccrx-seal:hover { color: #fff; }
.ccrx-seal__title { font-family: var(--ccrx-serif); font-size: 25px; line-height: 1; }
.ccrx-seal__sub { font-size: 12px; color: #F2C9D6; }
.ccrx-dots { display: flex; gap: 5px; }
.ccrx-dots span { width: 6px; height: 6px; border-radius: 50%; }

/* ---------- Stats ---------- */
.ccrx-stats { background: var(--ccrx-paper); }
.ccrx-stats__grid { margin: 0 var(--ccrx-gutter); padding: 64px 0; border-top: 1px solid var(--ccrx-line); border-bottom: 1px solid var(--ccrx-line); display: grid; grid-template-columns: repeat(var(--ccrx-cols, 4), minmax(0, 1fr)); gap: 48px; }
.ccrx-stat { display: flex; flex-direction: column; gap: 12px; }
.ccrx-stat__n { font-family: var(--ccrx-serif); font-size: 72px; line-height: 1; }
.ccrx-stat__l { font-size: 15px; line-height: 1.5; color: var(--ccrx-muted); }

/* ---------- CCR year ---------- */
.ccrx-year { background: var(--ccrx-paper); }
.ccrx-year__wrap { padding: var(--ccrx-section) var(--ccrx-gutter); display: flex; flex-direction: column; gap: 64px; }
.ccrx-months { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-align: center; }
.ccrx-months span { padding: 14px 0; border-radius: 6px; background: #ECE6DA; color: #7A8390; }
.ccrx-months .is-east { background: var(--ccrx-east); color: var(--ccrx-paper); }
.ccrx-months .is-west { background: var(--ccrx-west); color: var(--ccrx-paper); }
.ccrx-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.ccrx-mcard { padding: 40px; border-radius: 20px; background: #fff; display: flex; flex-direction: column; gap: 16px; }
.ccrx-mcard--online { background: transparent; border: 1.5px dashed var(--ccrx-cyan); }
.ccrx .ccrx-mcard h3 { font-size: 36px; line-height: 1.1; }
.ccrx .ccrx-mcard p { font-size: 16px; line-height: 1.65; color: var(--ccrx-body); }
.ccrx .ccrx-mcard a { margin-top: auto; padding-top: 16px; font-size: 15px; font-weight: 600; text-decoration: none; }

/* ---------- Summit ---------- */
.ccrx-summit { background: var(--ccrx-summit-bg); color: var(--ccrx-paper); }
.ccrx-summit__wrap { padding: var(--ccrx-section) var(--ccrx-gutter); display: flex; gap: 96px; align-items: center; }
.ccrx-venn { width: 460px; flex-shrink: 0; }
.ccrx-venn svg { width: 100%; height: auto; }
.ccrx-summit__copy { display: flex; flex-direction: column; gap: 32px; }
.ccrx-summit .ccrx-eyebrow { color: #F2C9D6; }
.ccrx.ccrx-summit h2 { font-size: 80px; line-height: .98; }
.ccrx.ccrx-summit h2 em { font-style: italic; color: var(--ccrx-pink); }
.ccrx.ccrx-summit p { max-width: 540px; font-size: 18px; line-height: 1.65; color: #E6D2DA; }
.ccrx-summit__cta { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; margin-top: 8px; }
.ccrx .ccrx-summit__cta a.ccrx-btn { height: 52px; padding: 0 28px; font-size: 16px; color: var(--ccrx-summit-bg); }
.ccrx-summit__meta { font-size: 15px; color: #D9BFCA; }

/* ---------- Enduring CME library ---------- */
.ccrx-cme { background: var(--ccrx-paper); }
.ccrx-cme__wrap { padding: var(--ccrx-section) var(--ccrx-gutter); display: flex; flex-direction: column; gap: 56px; }
.ccrx-filters { display: flex; gap: 8px; flex-wrap: wrap; padding-bottom: 6px; }
.ccrx button.ccrx-pill { height: 44px; padding: 0 22px; border-radius: 999px; border: 1px solid #D9D2C4; background: transparent; color: var(--ccrx-ink); font-family: var(--ccrx-sans); font-size: 15px; font-weight: 600; line-height: 1; cursor: pointer; text-transform: none; letter-spacing: normal; }
.ccrx button.ccrx-pill:hover { border-color: var(--ccrx-ink); background: transparent; color: var(--ccrx-ink); }
.ccrx button.ccrx-pill[aria-pressed="true"] { background: var(--ccrx-ink); border-color: var(--ccrx-ink); color: var(--ccrx-paper); }
.ccrx-courses { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; align-items: start; }
.ccrx-course { display: flex; flex-direction: column; background: #fff; border-radius: 20px; overflow: hidden; }
.ccrx-course[hidden] { display: none; }
.ccrx-band { height: 148px; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; color: var(--ccrx-paper); }
.ccrx-band--west { background: var(--ccrx-west); }
.ccrx-band--east { background: var(--ccrx-east); }
.ccrx-band--summit { background: var(--ccrx-summit); }
.ccrx-band__tag { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.ccrx-band__year { font-family: var(--ccrx-serif); font-size: 40px; line-height: 1; }
.ccrx-course__body { padding: 28px; display: flex; flex-direction: column; gap: 20px; }
.ccrx .ccrx-course__body h3 { font-family: var(--ccrx-sans); font-size: 18px; font-weight: 600; line-height: 1.3; }
.ccrx-course__place { display: block; margin-top: 6px; font-size: 14px; color: var(--ccrx-muted); }
.ccrx-credits { display: flex; align-items: baseline; gap: 10px; }
.ccrx-credits__n { font-family: var(--ccrx-serif); font-size: 40px; line-height: 1; }
.ccrx-credits__l { font-size: 14px; color: var(--ccrx-muted); }
.ccrx .ccrx-course a.ccrx-btn { height: 46px; }
.ccrx-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; padding-top: 48px; border-top: 1px solid var(--ccrx-line); }
.ccrx-step { display: flex; flex-direction: column; gap: 10px; }
.ccrx-step__num { align-self: flex-start; padding-bottom: 6px; border-bottom: 4px solid var(--ccrx-pink); font-family: var(--ccrx-serif); font-size: 28px; line-height: 1.2; }
.ccrx-step__num.is-cyan { border-color: var(--ccrx-cyan); }
.ccrx-step__num.is-yellow { border-color: var(--ccrx-yellow); }
.ccrx-step__h { font-size: 17px; font-weight: 600; }
.ccrx-step__d { font-size: 15px; line-height: 1.6; color: var(--ccrx-muted); }
.ccrx-fine { font-size: 13px; line-height: 1.6; color: #6B7480; }
.ccrx-fine p { margin: 0; }

/* ---------- Testimonial ---------- */
.ccrx-testimonial { background: var(--ccrx-paper); }
.ccrx-testimonial__wrap { padding: 0 var(--ccrx-gutter) 112px; }
.ccrx .ccrx-quote { padding: 96px 120px; border-radius: 24px; background: var(--ccrx-east); color: var(--ccrx-paper); display: flex; flex-direction: column; gap: 32px; align-items: center; text-align: center; }
.ccrx-quote__rule { width: 48px; height: 4px; border-radius: 2px; background: var(--ccrx-yellow); }
.ccrx .ccrx-quote blockquote { max-width: 900px; border: 0; font-family: var(--ccrx-serif); font-size: 44px; font-style: normal; line-height: 1.22; color: inherit; }
.ccrx-quote figcaption { font-size: 15px; font-weight: 500; letter-spacing: .04em; color: #CFE8E0; }

/* ---------- Sponsors ---------- */
.ccrx-sponsors { background: var(--ccrx-paper); }
.ccrx-sponsors__wrap { padding: 0 var(--ccrx-gutter) var(--ccrx-section); display: flex; flex-direction: column; gap: 36px; align-items: center; }
.ccrx-sponsors__row { display: flex; gap: 64px; flex-wrap: wrap; justify-content: center; align-items: center; font-size: 22px; font-weight: 600; color: #8A929C; }
.ccrx .ccrx-sponsors__row a { color: inherit; text-decoration: none; }
.ccrx .ccrx-sponsors__row a:hover { color: var(--ccrx-ink); }
.ccrx-sponsors__row img { display: block; max-height: 40px; width: auto; filter: grayscale(1); opacity: .7; transition: filter .2s, opacity .2s; }
.ccrx-sponsors__row a:hover img, .ccrx-sponsors__row.is-color img { filter: none; opacity: 1; }
.ccrx .ccrx-sponsors__wrap > a { font-size: 15px; font-weight: 600; text-decoration: none; }

/* ---------- Footer ---------- */
.ccrx-footer { background: var(--ccrx-ink); color: var(--ccrx-paper); }
.ccrx-footer__wrap { padding: 112px var(--ccrx-gutter) 56px; display: flex; flex-direction: column; gap: 96px; }
.ccrx-footer__top { display: flex; justify-content: space-between; gap: 64px; }
.ccrx-signup { width: 400px; flex-shrink: 0; display: flex; flex-direction: column; gap: 28px; }
.ccrx .ccrx-signup h2 { font-size: 44px; line-height: 1.08; }
.ccrx-signup label { display: block; font-size: 14px; color: #A9B5C2; }
.ccrx-signup__row { display: flex; gap: 10px; margin-top: 10px; }
.ccrx .ccrx-signup input[type="email"] { flex: 1; min-width: 0; height: 50px; margin: 0; padding: 0 20px; border-radius: 999px; border: 1px solid #4A5D73; background: transparent; color: var(--ccrx-paper); font-family: var(--ccrx-sans); font-size: 15px; box-shadow: none; }
.ccrx .ccrx-signup input[type="email"]::placeholder { color: #8A98A8; }
.ccrx .ccrx-signup button.ccrx-btn { height: 50px; }
.ccrx-fcols { display: flex; flex-wrap: wrap; gap: 32px 44px; min-width: 0; font-size: 15px; }
.ccrx-fcol { display: flex; flex-direction: column; gap: 14px; }
.ccrx-fcol__h { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #7F8EA0; }
.ccrx .ccrx-fcol a { color: var(--ccrx-paper); text-decoration: none; overflow-wrap: anywhere; }
.ccrx .ccrx-fcol a:hover { color: var(--ccrx-yellow); }
.ccrx-footer__bottom { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-top: 32px; border-top: 1px solid #22384F; font-size: 13px; color: #7F8EA0; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1200px) {
	:root { --ccrx-gutter: 48px; --ccrx-section: 112px; }
	.ccrx .ccrx-hero__title { font-size: 88px; }
	.ccrx-courses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ccrx-footer__top { flex-direction: column; gap: 64px; }
	.ccrx-signup { width: 100%; max-width: 520px; }
	.ccrx-summit__wrap { gap: 56px; }
	.ccrx-venn { width: 380px; }
	.ccrx .ccrx-quote { padding: 72px 64px; }
	.ccrx-nav { gap: 28px; }
}

@media (max-width: 900px) {
	:root { --ccrx-gutter: 24px; --ccrx-section: 88px; }
	.ccrx-header__bar { height: auto; padding: 14px 16px; flex-wrap: wrap; gap: 12px 6px; }
	.ccrx a.ccrx-logo { order: 1; flex: 1 1 110px; min-width: 110px; }
	.ccrx-logo__mark img { max-height: 32px; max-width: 100%; }
	.ccrx-header__cta { order: 2; gap: 6px; margin-left: auto; }
	.ccrx .ccrx-header__cta a.ccrx-plain { display: none; }
	.ccrx .ccrx-nav a.ccrx-nav__extra { display: block; font-weight: 600; color: var(--ccrx-accent); }
	.ccrx .ccrx-header__cta a.ccrx-btn { height: 40px; padding: 0 16px; font-size: 14px; }
	.ccrx-nav { order: 3; width: 100%; gap: 24px; overflow-x: auto; padding-top: 8px; white-space: nowrap; }
	.ccrx-logo__name, .ccrx-logo__rule { display: none; }
	.ccrx-hero__wrap { padding-top: 56px; padding-bottom: 88px; gap: 48px; }
	.ccrx-hero__top, .ccrx-head { flex-direction: column; align-items: flex-start; gap: 24px; }
	.ccrx .ccrx-hero__title { font-size: 60px; }
	.ccrx-hero__aside { width: 100%; }
	.ccrx-panels { flex-direction: column; height: auto; gap: 16px; }
	.ccrx-panel { min-height: 460px; }
	.ccrx-panel__body { padding: 32px; }
	.ccrx .ccrx-panel__body h2 { font-size: 48px; }
	.ccrx a.ccrx-seal { position: relative; left: auto; top: auto; transform: none; margin: 0 auto; width: 156px; height: 156px; }
	.ccrx-seal__title { font-size: 22px; }
	.ccrx-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; }
	.ccrx-stat__n { font-size: 56px; }
	.ccrx .ccrx-head h2 { font-size: 44px; }
	.ccrx-months { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.ccrx-cards, .ccrx-steps { grid-template-columns: 1fr; gap: 20px; }
	.ccrx-summit__wrap { flex-direction: column; align-items: flex-start; }
	.ccrx-venn { width: 100%; max-width: 420px; }
	.ccrx.ccrx-summit h2 { font-size: 56px; }
	.ccrx-courses { grid-template-columns: 1fr; }
	.ccrx-testimonial__wrap { padding-bottom: 72px; }
	.ccrx .ccrx-quote { padding: 56px 28px; }
	.ccrx .ccrx-quote blockquote { font-size: 30px; }
	.ccrx-sponsors__row { gap: 32px; }
	.ccrx-fcols { flex-wrap: wrap; gap: 40px; }
	.ccrx-signup__row { flex-direction: column; }
}


/* ==========================================================================
   Shared building blocks (used by the section, shop and data widgets)
   ========================================================================== */

/* Color worlds. A widget picks one with .ccrx-theme--{name}; everything inside reads these variables. */
.ccrx-theme--paper, .ccrx-skin--paper { --ccrx-surface: var(--ccrx-paper);      --ccrx-on: var(--ccrx-ink);   --ccrx-on-soft: var(--ccrx-body); --ccrx-on-muted: var(--ccrx-muted); --ccrx-rule: var(--ccrx-line); --ccrx-card: #fff;                  --ccrx-em: var(--ccrx-accent); }
.ccrx-theme--white, .ccrx-skin--white { --ccrx-surface: #fff;                   --ccrx-on: var(--ccrx-ink);   --ccrx-on-soft: var(--ccrx-body); --ccrx-on-muted: var(--ccrx-muted); --ccrx-rule: var(--ccrx-line); --ccrx-card: var(--ccrx-paper); --ccrx-em: var(--ccrx-accent); }
.ccrx-theme--ink, .ccrx-skin--ink { --ccrx-surface: var(--ccrx-ink);        --ccrx-on: var(--ccrx-paper); --ccrx-on-soft: #D5DDE6;          --ccrx-on-muted: #A9B5C2;          --ccrx-rule: #2A4058;          --ccrx-card: rgba(247, 244, 238, .07); --ccrx-em: var(--ccrx-pink); }
.ccrx-theme--west, .ccrx-skin--west { --ccrx-surface: var(--ccrx-west);       --ccrx-on: var(--ccrx-paper); --ccrx-on-soft: #D0DFEE;          --ccrx-on-muted: #A9C4E0;          --ccrx-rule: #2B4A74;          --ccrx-card: rgba(247, 244, 238, .08); --ccrx-em: var(--ccrx-yellow); }
.ccrx-theme--east, .ccrx-skin--east { --ccrx-surface: var(--ccrx-east);       --ccrx-on: var(--ccrx-paper); --ccrx-on-soft: #D6ECE5;          --ccrx-on-muted: #B5DACF;          --ccrx-rule: #2F7F71;          --ccrx-card: rgba(247, 244, 238, .09); --ccrx-em: var(--ccrx-yellow); }
.ccrx-theme--summit, .ccrx-skin--summit { --ccrx-surface: var(--ccrx-summit-bg);  --ccrx-on: var(--ccrx-paper); --ccrx-on-soft: #E6D2DA;          --ccrx-on-muted: #D3B5C2;          --ccrx-rule: #6A3B55;          --ccrx-card: rgba(247, 244, 238, .08); --ccrx-em: var(--ccrx-pink); }

.ccrx-sec { background: var(--ccrx-surface); color: var(--ccrx-on); }
.ccrx-sec__wrap { padding: var(--ccrx-section) var(--ccrx-gutter); }

/* Heading group */
.ccrx-hd { display: flex; flex-direction: column; gap: 20px; margin-bottom: 64px; }
.ccrx-hd--center { align-items: center; text-align: center; }
.ccrx .ccrx-hd__title { font-size: clamp(44px, 5vw, 80px); line-height: 1.02; letter-spacing: -.01em; color: inherit; text-wrap: balance; max-width: 20ch; }
.ccrx .ccrx-hd--center .ccrx-hd__title { max-width: 22ch; }
.ccrx .ccrx-hd__title em { font-style: italic; color: var(--ccrx-em); }
.ccrx .ccrx-hd__lede { max-width: 62ch; font-size: 18px; line-height: 1.65; color: var(--ccrx-on-soft); text-wrap: pretty; }
.ccrx .ccrx-hd__eyebrow { color: var(--ccrx-on-muted); }

/* Button groups and theme-aware button variants */
.ccrx-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; }
.ccrx-hd + .ccrx-btns { margin-top: -16px; }
.ccrx-btns--center { justify-content: center; }
.ccrx a.ccrx-btn--outline { border-color: currentColor; color: var(--ccrx-on, var(--ccrx-ink)); }
.ccrx a.ccrx-btn--outline:hover { background: var(--ccrx-on, var(--ccrx-ink)); border-color: var(--ccrx-on, var(--ccrx-ink)); color: var(--ccrx-surface, var(--ccrx-paper)); }
.ccrx a.ccrx-btn--accent:focus-visible, .ccrx a.ccrx-btn--outline:focus-visible { outline-offset: 3px; }

/* Editor-only notices and empty states */
.ccrx-notice { max-width: 720px; margin: 16px auto; padding: 14px 18px; border-radius: 12px; background: #E3F4F9; color: #0B5F78; font-size: 14px; line-height: 1.5; }
.ccrx-notice--error { background: #FCE8EF; color: #9A1D52; }
.ccrx .ccrx-empty { padding: 56px 24px; border: 1.5px dashed var(--ccrx-line); border-radius: 20px; text-align: center; color: var(--ccrx-muted); }

/* ---------- Browser surfaces: selection, scrollbars, numerals ---------- */
.ccrx ::selection { background: var(--ccrx-yellow); color: var(--ccrx-ink); }
.ccrx { scrollbar-color: var(--ccrx-line) transparent; }
.ccrx ::-webkit-scrollbar { height: 10px; width: 10px; }
.ccrx ::-webkit-scrollbar-thumb { background: var(--ccrx-line); border-radius: 999px; border: 2px solid transparent; background-clip: padding-box; }
.ccrx ::-webkit-scrollbar-track { background: transparent; }
.ccrx-stat__n, .ccrx-credits__n, .ccrx-data__number, .ccrx-cd__n, .ccrx-ag__time, .ccrx-pkg__table, .ccrx-or, .ccrx-pcard__price, .ccrx-tier__price { font-variant-numeric: tabular-nums; }
.ccrx-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- Header: mobile menu ---------- */
.ccrx button.ccrx-menu-toggle { display: none; align-items: center; gap: 10px; height: 44px; margin: 0 0 0 auto; padding: 0 16px 0 14px; border: 1px solid var(--ccrx-line); border-radius: 999px; background: transparent; color: var(--ccrx-ink); font-family: var(--ccrx-sans); font-size: 15px; font-weight: 600; line-height: 1; letter-spacing: normal; text-transform: none; cursor: pointer; }
.ccrx button.ccrx-menu-toggle:hover { background: #ECE6DA; color: var(--ccrx-ink); }
.ccrx-menu-toggle__bars, .ccrx-menu-toggle__bars::before, .ccrx-menu-toggle__bars::after { display: block; width: 18px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .2s ease, background-color .2s ease; }
.ccrx-menu-toggle__bars { position: relative; }
.ccrx-menu-toggle__bars::before, .ccrx-menu-toggle__bars::after { content: ""; position: absolute; left: 0; }
.ccrx-menu-toggle__bars::before { top: -6px; }
.ccrx-menu-toggle__bars::after { top: 6px; }
.ccrx-header.is-open .ccrx-menu-toggle__bars { background: transparent; }
.ccrx-header.is-open .ccrx-menu-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.ccrx-header.is-open .ccrx-menu-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 900px) {
	/* The toggle only takes over when its script is running; without it the menu stays a scrollable row. */
	.ccrx-header.has-js button.ccrx-menu-toggle { display: inline-flex; order: 3; margin: 0; width: 44px; height: 40px; padding: 0; justify-content: center; }
	.ccrx-header.has-js .ccrx-menu-toggle__label { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
	.ccrx-header.has-js .ccrx-header__bar { position: relative; }
	.ccrx-header.has-js .ccrx-nav { display: none; order: 4; flex-direction: column; gap: 0; width: 100%; padding: 8px 0 12px; overflow: visible; white-space: normal; background: var(--ccrx-paper); border-top: 1px solid var(--ccrx-line); }
	.ccrx-header.has-js.is-open .ccrx-nav { display: flex; }
	.ccrx-header.has-js .ccrx-nav a { padding: 14px 4px; font-size: 18px; border-bottom: 1px solid var(--ccrx-line); }
	.ccrx-header.has-js .ccrx-nav a:last-child { border-bottom: 0; }
	.ccrx-hd { margin-bottom: 40px; }
	.ccrx .ccrx-hd__lede { font-size: 17px; }
}

@media (max-width: 360px) {
	.ccrx .ccrx-header__cta a.ccrx-btn { padding: 0 12px; font-size: 13px; }
	.ccrx-header__bar { padding-left: 12px; padding-right: 12px; }
}

@media (prefers-reduced-motion: reduce) {
	.ccrx-menu-toggle__bars, .ccrx-menu-toggle__bars::before, .ccrx-menu-toggle__bars::after { transition: none; }
}


/* ==========================================================================
   CCR skins for Elementor containers (Layout → CCR style)
   Elementor paints container padding and radius from CSS variables, so the
   skins set those variables; anything set in the container's own controls wins.
   ========================================================================== */
.e-con.ccrx-skin--panel, .e-con.ccrx-skin--soft { --border-radius: 24px; --padding-top: 40px; --padding-right: 40px; --padding-bottom: 40px; --padding-left: 40px; color: var(--ccrx-ink); font-family: var(--ccrx-sans); }
.e-con.ccrx-skin--panel { background-color: #fff; border: 1px solid var(--ccrx-line); }
.e-con.ccrx-skin--soft { background-color: var(--ccrx-paper); }
.e-con.ccrx-skin--paper, .e-con.ccrx-skin--white, .e-con.ccrx-skin--ink, .e-con.ccrx-skin--west, .e-con.ccrx-skin--east, .e-con.ccrx-skin--summit {
	--padding-top: var(--ccrx-section); --padding-bottom: var(--ccrx-section); --padding-left: var(--ccrx-gutter); --padding-right: var(--ccrx-gutter);
	background-color: var(--ccrx-surface); color: var(--ccrx-on); font-family: var(--ccrx-sans);
}
/* Dark skins: let Elementor's default heading / text colors follow the skin instead of staying dark. */
.e-con.ccrx-skin--ink .elementor-heading-title, .e-con.ccrx-skin--west .elementor-heading-title, .e-con.ccrx-skin--east .elementor-heading-title, .e-con.ccrx-skin--summit .elementor-heading-title,
.e-con.ccrx-skin--ink .elementor-widget-text-editor, .e-con.ccrx-skin--west .elementor-widget-text-editor, .e-con.ccrx-skin--east .elementor-widget-text-editor, .e-con.ccrx-skin--summit .elementor-widget-text-editor,
.e-con.ccrx-skin--ink .elementor-icon-list-text, .e-con.ccrx-skin--west .elementor-icon-list-text, .e-con.ccrx-skin--east .elementor-icon-list-text, .e-con.ccrx-skin--summit .elementor-icon-list-text { color: inherit; }
.e-con.ccrx-skin--panel .elementor-heading-title, .e-con.ccrx-skin--soft .elementor-heading-title, .e-con.ccrx-skin--paper .elementor-heading-title, .e-con.ccrx-skin--white .elementor-heading-title { font-family: var(--ccrx-serif); font-weight: 400; letter-spacing: normal; color: var(--ccrx-ink); }
.e-con.ccrx-skin--panel .elementor-widget-text-editor, .e-con.ccrx-skin--soft .elementor-widget-text-editor, .e-con.ccrx-skin--paper .elementor-widget-text-editor, .e-con.ccrx-skin--white .elementor-widget-text-editor { color: var(--ccrx-body); }
@media (max-width: 900px) {
	.e-con.ccrx-skin--panel, .e-con.ccrx-skin--soft { --padding-top: 28px; --padding-right: 24px; --padding-bottom: 28px; --padding-left: 24px; }
}

/* Header links never break onto two lines. */
.ccrx .ccrx-nav a { white-space: nowrap; }

/* Editor placeholder for an empty mission mosaic */
.ccrx-mission__image.is-placeholder { display: grid; place-items: center; background: #ECE6DA; color: var(--ccrx-muted); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
