/* The redesign (design canvas, 2026-10-01): header, footer and every page. Scoped under .ch so
   the Crafto stylesheets still loaded beneath it cannot reach in. */

@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url(../s/plusjakartasans/jakarta-400.woff2) format('woff2'), url(../s/plusjakartasans/jakarta-400.ttf) format('truetype'); }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url(../s/plusjakartasans/jakarta-500.woff2) format('woff2'), url(../s/plusjakartasans/jakarta-500.ttf) format('truetype'); }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url(../s/plusjakartasans/jakarta-600.woff2) format('woff2'), url(../s/plusjakartasans/jakarta-600.ttf) format('truetype'); }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url(../s/plusjakartasans/jakarta-700.woff2) format('woff2'), url(../s/plusjakartasans/jakarta-700.ttf) format('truetype'); }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 800; font-display: swap; src: url(../s/plusjakartasans/jakarta-800.woff2) format('woff2'), url(../s/plusjakartasans/jakarta-800.ttf) format('truetype'); }

.ch {
    --ch-green: #313e3b;
    --ch-deep: #27322f;
    --ch-ink: #1f2826;
    --ch-orange: #f89010;
    --ch-gold: #f8c000;
    --ch-accent-ink: #a85c00;
    --ch-muted: #5f6b67;
    --ch-soft: #f6f6f3;
    --ch-cream: #fdf1de;
    --ch-line: #ecece7;
    --ch-font: 'Plus Jakarta Sans', sans-serif;
}

/* Resets are scoped to section: on phones Crafto's main.js moves the footer and mobile menu inside .ch. */
.ch section { padding: 112px 0; }
.ch :where(section) { font: 400 16px/1.6 var(--ch-font); color: var(--ch-green); }
.ch :where(section) :is(h1, h2, h3, h4, h5) { font-family: var(--ch-font); color: inherit; margin: 0; }
.ch :where(section) p { margin: 0; }
.ch :where(section) a { color: var(--ch-green); text-decoration: none; }
.ch :where(section) a:hover { color: var(--ch-accent-ink); }
.ch :where(section ul, section ol) { list-style: none; margin: 0; padding: 0; }
.ch :where(section) blockquote { margin: 0; padding: 0; border: 0; }

.ch-wrap { max-width: 1248px; margin: 0 auto; padding: 0 24px; }
.ch-stack { display: flex; flex-direction: column; }

/* Type scale */
.ch-h1 { font-weight: 800; font-size: 68px; line-height: 1.04; letter-spacing: -2.4px; }
.ch-h2 { font-weight: 800; font-size: 46px; line-height: 1.1; letter-spacing: -1.6px; }
.ch-h3 { font-weight: 700; font-size: 30px; line-height: 1.18; letter-spacing: -.8px; }
.ch-h4 { font-weight: 700; font-size: 20px; line-height: 1.3; letter-spacing: -.3px; }
.ch-h5 { font-weight: 700; font-size: 17px; line-height: 1.3; }
.ch-num { font-weight: 800; font-size: 52px; line-height: 1; letter-spacing: -1.5px; }
.ch-lead { font-size: 18px; line-height: 1.6; }
.ch-small { font-size: 15px; line-height: 1.5; }
.ch-meta { font-size: 13px; font-weight: 500; line-height: 1.3; }
.ch-label { font-weight: 600; font-size: 13px; line-height: 1; letter-spacing: .14em; text-transform: uppercase; color: var(--ch-accent-ink); }
.ch-muted { color: var(--ch-muted); }
.ch-dark .ch-label, .ch-label-bright { color: var(--ch-orange); }

.ch-ico { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.ch-star { width: 18px; height: 18px; fill: var(--ch-gold); flex-shrink: 0; }
.ch-stars { display: flex; gap: 2px; }

/* Buttons */
.ch-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 26px; border-radius: 8px; border: 0; font: 600 16px/1.2 var(--ch-font); white-space: nowrap; cursor: pointer; transition: background-color .2s, color .2s; }
.ch-btn .ch-ico { width: 20px; height: 20px; }
.ch-btn-sm { min-height: 44px; padding: 0 16px; font-size: 14px; }
.ch a.ch-btn-orange { background: var(--ch-orange); color: var(--ch-green); }
.ch a.ch-btn-orange:hover { background: var(--ch-gold); color: var(--ch-green); }
.ch a.ch-btn-dark { background: var(--ch-green); color: #fff; }
.ch a.ch-btn-dark:hover { background: var(--ch-ink); color: #fff; }
.ch a.ch-btn-white { background: #fff; color: var(--ch-green); }
.ch a.ch-btn-white:hover { background: var(--ch-cream); color: var(--ch-green); }
.ch a.ch-btn-ghost { box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.62); color: #fff; }
.ch a.ch-btn-ghost:hover { background: rgba(255,255,255,.1); color: #fff; }
.ch a.ch-btn-line { box-shadow: inset 0 0 0 1.5px var(--ch-green); color: var(--ch-green); }
.ch a.ch-btn-line:hover { background: var(--ch-green); color: #fff; }
.ch-btns { display: flex; flex-wrap: wrap; gap: 12px; }

.ch a:focus-visible, .ch button:focus-visible, .ch summary:focus-visible { outline: 3px solid var(--ch-orange); outline-offset: 3px; }

/* Shared pieces */
.ch-dark { background-color: var(--ch-green); background-image: repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 160px); color: #fff; }
.ch-card { background: #fff; border-radius: 12px; box-shadow: 0 12px 32px rgba(49,62,59,.07); }
.ch-badge { width: 60px; height: 60px; border-radius: 50%; background: var(--ch-orange); color: var(--ch-green); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ch-pill { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 13px; font: 600 12px/1 var(--ch-font); letter-spacing: .04em; white-space: nowrap; }
.ch-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px 60px; margin-bottom: 56px; }
.ch-head-center { flex-direction: column; align-items: center; text-align: center; }
.ch-head > .ch-stack { gap: 16px; max-width: 720px; }
.ch-check { display: flex; gap: 12px; align-items: flex-start; }
.ch-check .ch-ico { color: var(--ch-accent-ink); margin-top: 1px; }

/* Thumbnail tile: a solid subject colour with a line icon, in the slot a photo can later fill. */
.ch-thumb { position: relative; aspect-ratio: 3 / 2; max-height: 150px; width: 100%; border-radius: 10px; overflow: hidden; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ch-thumb::before { content: ''; position: absolute; inset: 0; background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.09) 0 2px, transparent 2px 14px); }
.ch-thumb::after { content: ''; position: absolute; right: -24px; bottom: -24px; width: 116px; height: 116px; border-radius: 50%; background: rgba(255,255,255,.14); }
.ch-thumb > .ch-ico { position: relative; z-index: 1; width: 54px; height: 54px; stroke-width: 1.4; }
.ch-thumb-tag { position: absolute; left: 12px; bottom: 12px; z-index: 1; padding: 5px 9px; border-radius: 6px; background: #fff; color: var(--ch-green); font: 700 11px/1 var(--ch-font); letter-spacing: .06em; text-transform: uppercase; }
.ch-thumb .ch-pill { position: absolute; right: 12px; top: 12px; z-index: 1; }
/* .ch-prefixed so the tile colour beats the `.ch a` link colour when the tile is a link. */
.ch .th-cream { background: var(--ch-cream); color: var(--ch-green); }
.ch .th-dark { background: var(--ch-deep); color: var(--ch-gold); }
.ch .th-green { background: var(--ch-green); color: var(--ch-orange); }
.ch .th-orange { background: var(--ch-orange); color: var(--ch-green); }
.ch .th-gold { background: var(--ch-gold); color: var(--ch-green); }
.ch .th-sage { background: #dfe9e4; color: var(--ch-green); }
.ch .th-sand { background: #f3e6d6; color: var(--ch-green); }

/* ---- Hero ---- */
.ch section.ch-hero { padding: 0; }
.ch-hero-grid { display: grid; grid-template-columns: 1fr 560px; gap: 40px; }
.ch-hero-copy { padding: 72px 0 88px; display: flex; flex-direction: column; justify-content: center; gap: 28px; }
.ch-kicker { align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; min-height: 36px; padding: 0 16px; border-radius: 18px; background: rgba(248,144,16,.14); border: 1px solid rgba(248,144,16,.4); color: #fff; font-size: 14px; font-weight: 500; }
.ch-kicker::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--ch-orange); }
.ch-hero .ch-h1 { color: #fff; }
.ch-hero .ch-h1 span { color: var(--ch-orange); }
.ch-hero .ch-lead { color: rgba(255,255,255,.85); max-width: 540px; }
.ch-hero .ch-btn { min-height: 60px; padding: 0 30px; }
.ch-popular { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; color: rgba(255,255,255,.75); }
.ch .ch-popular a { color: #fff; padding: 8px 12px; border-radius: 16px; background: rgba(255,255,255,.08); }
.ch .ch-popular a:hover { background: rgba(255,255,255,.16); color: #fff; }

.ch-art { position: relative; min-height: 640px; }
.ch-art-ring { position: absolute; left: 50%; top: 60px; width: 520px; height: 520px; margin-left: -260px; border-radius: 50%; border: 2px dashed rgba(248,192,0,.45); }
.ch-art-disc { position: absolute; left: 50%; top: 100px; width: 440px; height: 440px; margin-left: -220px; border-radius: 50%; background: var(--ch-orange); }
.ch-art-browser { position: absolute; left: 30px; top: 120px; width: 460px; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 30px 60px rgba(0,0,0,.3); color: var(--ch-green); }
.ch-art-bar { height: 38px; background: #eef0ed; display: flex; align-items: center; gap: 7px; padding: 0 14px; }
.ch-dot { width: 10px; height: 10px; border-radius: 50%; }
.ch-art-url { margin-left: 12px; flex-grow: 1; height: 22px; border-radius: 11px; background: #fff; display: flex; align-items: center; padding: 0 12px; color: var(--ch-muted); font-size: 13px; }
.ch-art-body { padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.ch-art-hero { background: var(--ch-green); border-radius: 10px; padding: 22px; display: flex; flex-direction: column; gap: 10px; color: #fff; }
.ch-art-hero b { font-size: 22px; font-weight: 700; line-height: 1.3; }
.ch-art-cta { display: flex; gap: 8px; margin-top: 6px; font-size: 13px; font-weight: 600; }
.ch-art-cta span { padding: 8px 14px; border-radius: 6px; }
.ch-bar { display: block; height: 8px; border-radius: 4px; background: #d9ddd9; }
.ch-art-float { position: absolute; border-radius: 14px; padding: 18px 20px; box-shadow: 0 20px 40px rgba(0,0,0,.3); }
.ch-art-course { left: 0; bottom: 30px; width: 290px; background: var(--ch-ink); border: 1px solid rgba(255,255,255,.14); display: flex; flex-direction: column; gap: 12px; font-size: 13px; }
.ch-art-course .ch-ico { width: 16px; height: 16px; color: var(--ch-orange); }
.ch-art-rating { right: -16px; top: 40px; background: #fff; color: var(--ch-green); display: flex; flex-direction: column; gap: 8px; }
.ch-art-services { right: -16px; bottom: 70px; background: var(--ch-ink); border: 1px solid rgba(255,255,255,.14); display: flex; align-items: center; gap: 14px; }

.ch-trust { background: var(--ch-deep); border-top: 1px solid rgba(255,255,255,.08); padding: 28px 0; }
.ch-trust-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.ch-trust-item { display: flex; align-items: center; gap: 14px; }
.ch-trust-item .ch-ico { width: 28px; height: 28px; color: var(--ch-orange); }
.ch-trust-item b { display: block; font-weight: 600; font-size: 15px; color: #fff; }
.ch-trust-item span { display: block; font-size: 14px; color: rgba(255,255,255,.75); }

/* ---- Audience chooser ---- */
.ch-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.ch-side { border-radius: 16px; padding: 48px; display: flex; flex-direction: column; gap: 24px; }
.ch-side-learn { background: var(--ch-soft); border: 1px solid #ebebe6; }
.ch-side-top { display: flex; align-items: center; gap: 18px; }
.ch-side-top .ch-badge { width: 68px; height: 68px; }
.ch-side-top .ch-ico { width: 30px; height: 30px; }
.ch-side-top > div { display: flex; flex-direction: column; gap: 8px; }
.ch-chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ch .ch-chip { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 8px 16px; border-radius: 8px; font-weight: 500; font-size: 15px; line-height: 1.2; background: #fff; }
.ch-chip .ch-ico { width: 20px; height: 20px; color: var(--ch-accent-ink); }
.ch .ch-dark .ch-chip { background: rgba(255,255,255,.08); color: #fff; }
.ch .ch-dark .ch-chip:hover { background: rgba(255,255,255,.14); }
.ch-dark .ch-chip .ch-ico { color: var(--ch-orange); }
.ch-note { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 8px; background: var(--ch-cream); font-weight: 500; font-size: 15px; line-height: 1.4; }
.ch-note .ch-ico { width: 20px; height: 20px; color: var(--ch-accent-ink); }
.ch-dark .ch-note { background: rgba(248,192,0,.12); color: #fff; }
.ch-dark .ch-note .ch-ico { color: var(--ch-gold); }
.ch-side .ch-btns { margin-top: auto; }

/* ---- Services ---- */
.ch-soft { background: var(--ch-soft); }
.ch-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ch-svc { padding: 12px 12px 30px; display: flex; flex-direction: column; gap: 14px; }
.ch-svc > *:not(.ch-thumb) { margin: 0 20px; }
.ch-svc > .ch-thumb { margin-bottom: 8px; }
.ch-svc-hot { outline: 2px solid var(--ch-orange); outline-offset: -2px; }
.ch-svc-for { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; border-radius: 8px; background: var(--ch-soft); font-weight: 500; font-size: 13.5px; line-height: 1.4; color: #444f4c; }
.ch-svc-for b { font-weight: 700; color: var(--ch-green); }
.ch-svc-for .ch-ico { width: 16px; height: 16px; color: var(--ch-accent-ink); margin-top: 1px; }
.ch-svc-actions { margin-top: auto !important; padding-top: 18px; border-top: 1px solid var(--ch-line); display: flex; gap: 10px; }
.ch-svc-actions .ch-btn { flex: 1; padding: 0 12px; }
.ch-center { display: flex; justify-content: center; margin-top: 40px; }
.ch-process { display: grid; grid-template-columns: 1fr 380px; overflow: hidden; margin-top: 56px; }
.ch-process-steps { padding: 40px 44px; display: flex; flex-direction: column; gap: 28px; }
.ch-steps3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.ch-step { display: flex; gap: 16px; }
.ch-step .ch-num { font-size: 36px; color: #c46f00; flex-shrink: 0; }
.ch-step > div { display: flex; flex-direction: column; gap: 6px; }
.ch-process-cta { padding: 40px; display: flex; flex-direction: column; justify-content: center; gap: 14px; }
.ch-process-cta .ch-btn { min-height: 48px; padding: 0 20px; }

/* ---- Proof ---- */
.ch-proof { display: grid; grid-template-columns: 560px 1fr; gap: 72px; align-items: center; }
.ch-proof-img { position: relative; }
.ch-proof-img img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 16px; display: block; }
.ch-proof-seal { position: absolute; left: 24px; bottom: -28px; background: var(--ch-orange); border-radius: 12px; padding: 16px 20px; display: flex; align-items: center; gap: 12px; box-shadow: 0 12px 32px rgba(49,62,59,.18); font-weight: 700; line-height: 1.3; }
.ch-proof-seal .ch-ico { width: 28px; height: 28px; }
.ch-proof-copy { display: flex; flex-direction: column; gap: 22px; }
.ch-proof-copy .ch-h2 { font-size: 42px; }
.ch-proof-list { display: flex; flex-direction: column; gap: 14px; font-weight: 500; }
.ch-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; border-top: 1px solid #e6e6e1; padding-top: 44px; margin-top: 72px; }
.ch-stats > div { display: flex; flex-direction: column; gap: 10px; }
.ch-stats .ch-num small { font-size: 26px; color: var(--ch-accent-ink); }
.ch-stats span:last-child { font-weight: 500; font-size: 15px; color: var(--ch-muted); }

/* ---- Course finder (Bootstrap tabs, already in vendors.min.js) ---- */
.ch-finder { display: grid; grid-template-columns: 330px 1fr; gap: 28px; align-items: start; }
.ch-finder > * { min-width: 0; }
.ch-finder-side { display: flex; flex-direction: column; gap: 20px; }
.ch-tabs { padding: 10px; display: flex; flex-direction: column; gap: 4px; }
.ch-tab { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 50px; padding: 0 14px; border: 0; border-radius: 10px; background: transparent; color: var(--ch-green); font: 500 15px/1.2 var(--ch-font); cursor: pointer; text-align: left; }
.ch-tab:hover { background: var(--ch-soft); }
.ch-tab .ch-ico { width: 20px; height: 20px; }
.ch-tab > span:first-of-type { flex-grow: 1; }
.ch-tab-count { font: 600 12px/1 var(--ch-font); padding: 5px 9px; border-radius: 10px; background: #f1f1ec; color: #444f4c; }
.ch-tab.active { background: var(--ch-green); color: #fff; font-weight: 600; }
.ch-tab.active .ch-tab-count { background: var(--ch-orange); color: var(--ch-green); }
.ch-help { border-radius: 14px; padding: 26px; display: flex; flex-direction: column; gap: 12px; }
.ch-help .ch-btn { min-height: 48px; }
.ch-panel { padding: 0 32px; }
.ch-panel-head { min-height: 112px; padding: 20px 0; border-bottom: 1px solid var(--ch-line); display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.ch-panel-head > div { display: flex; flex-direction: column; gap: 8px; }
.ch-panel-head .ch-pill { background: var(--ch-soft); color: var(--ch-green); min-height: 32px; padding: 0 14px; border-radius: 16px; font-size: 13px; }
.ch-row { padding: 16px 0; border-bottom: 1px solid var(--ch-line); display: grid; grid-template-columns: 180px 1fr auto; gap: 24px; align-items: center; }
.ch-row .ch-thumb { height: 120px; max-height: none; }
.ch-row .ch-thumb > .ch-ico { width: 46px; height: 46px; }
.ch-row .ch-thumb::after { width: 92px; height: 92px; right: -18px; bottom: -18px; }
.ch-row .ch-thumb-tag { left: 10px; bottom: 10px; padding: 4px 8px; font-weight: 600; letter-spacing: .04em; }
.ch-row-body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ch-row-title { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ch-row-title a { font-size: 19px; }
.ch-row-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; color: #444f4c; }
.ch-row-meta span { display: flex; align-items: center; gap: 6px; }
.ch-row-meta .ch-ico { width: 15px; height: 15px; color: var(--ch-accent-ink); }
.ch-row-actions { display: flex; gap: 8px; }
.ch-clamp2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ch-panel-foot { min-height: 56px; padding: 12px 0; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 16px; }
.ch-panel-foot > span { display: flex; align-items: center; gap: 10px; color: #444f4c; font-size: 14px; }
.ch-panel-foot .ch-ico { width: 18px; height: 18px; color: var(--ch-accent-ink); }
.ch .ch-more { font-weight: 600; font-size: 15px; color: #8a4b00; }
.ch-kids { background: var(--ch-cream); color: #8a4b00; }

/* ---- Student journey ---- */
.ch-warm { background: #fbf7f1; }
.ch-who-key { display: flex; gap: 10px; padding-bottom: 6px; }
.ch-who { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; min-height: 24px; padding: 0 10px; border-radius: 12px; font: 700 11px/1 var(--ch-font); letter-spacing: .06em; text-transform: uppercase; }
.ch-who::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ch-who-you { background: var(--ch-cream); color: #8a4b00; }
.ch-who-us { background: #e7ecea; color: var(--ch-green); }
.ch-who-prize { background: var(--ch-green); color: var(--ch-gold); }
.ch-nodes { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; margin-bottom: 28px; }
.ch-nodes::before { content: ''; position: absolute; left: 10%; right: 10%; top: 25px; height: 3px; border-radius: 2px; background: var(--ch-orange); }
.ch-node { width: 52px; height: 52px; border-radius: 50%; background: #fff; border: 2px solid var(--ch-orange); display: flex; align-items: center; justify-content: center; font: 800 16px/1 var(--ch-font); position: relative; z-index: 1; box-shadow: 0 0 0 8px #fbf7f1; margin: 0 auto; }
.ch-node-last { background: var(--ch-green); border-color: var(--ch-green); color: var(--ch-gold); }
.ch-node .ch-ico { width: 22px; height: 22px; }
.ch-stages { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.ch-stage { background: #fff; border: 1px solid #efe8dc; border-radius: 16px; padding: 10px 10px 26px; display: flex; flex-direction: column; gap: 12px; box-shadow: 0 16px 36px rgba(49,62,59,.08); }
.ch-stage > *:not(.ch-thumb) { margin: 0 12px; }
.ch-stage > .ch-thumb { margin-bottom: 6px; }
.ch-stage-last { border-color: var(--ch-gold); box-shadow: 0 18px 40px rgba(248,144,16,.22); }
.ch-stage .ch-h4 { font-size: 19px; }
.ch-stage-num { display: none; }
.ch-intern { border-radius: 20px; padding: 56px; display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; margin-top: 56px; }
.ch-intern > div { display: flex; flex-direction: column; gap: 18px; }
.ch-intern p { color: rgba(255,255,255,.84); }
.ch-takes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; font-size: 15px; }
.ch-takes .ch-check .ch-ico { color: var(--ch-orange); width: 20px; height: 20px; }
.ch-cred { display: flex; align-items: center; gap: 16px; padding: 16px 18px; border-radius: 14px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); }
.ch-cred-ico { width: 52px; height: 52px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--ch-green); }
.ch-cred > div { display: flex; flex-direction: column; gap: 5px; }
.ch-cred span { font-size: 14px; color: rgba(255,255,255,.78); }
.ch-paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; font-weight: 600; font-size: 15px; }
.ch-paths span { min-height: 52px; border-radius: 10px; background: rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; gap: 8px; }
.ch-paths .ch-ico { width: 18px; height: 18px; color: var(--ch-orange); }

/* ---- Testimonials ---- */
.ch-rating { padding: 18px 24px; display: flex; align-items: center; gap: 16px; border-radius: 12px; border: 1px solid rgba(255,255,255,.16); }
.ch-rating .ch-num { font-size: 40px; }
.ch-grid4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.ch-quote { background: #fff; color: var(--ch-green); border-radius: 12px; padding: 30px; display: flex; flex-direction: column; gap: 18px; margin: 0; }
.ch-quote > svg { width: 34px; height: 34px; fill: var(--ch-orange); }
.ch-quote figcaption { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--ch-line); }
.ch-quote .ch-badge { width: 44px; height: 44px; font-weight: 700; }
.ch-quote figcaption b { display: block; font-weight: 600; font-size: 15px; }
.ch-quote figcaption div span { display: block; font-size: 13px; color: var(--ch-muted); }

/* ---- FAQ: native details/summary, no script ---- */
.ch-faq { display: grid; grid-template-columns: 420px 1fr; gap: 80px; align-items: start; }
.ch-faq-list { border-top: 1px solid #e6e6e1; }
.ch-faq-list details { border-bottom: 1px solid #e6e6e1; }
.ch-faq-list summary { list-style: none; padding: 22px 0; display: flex; justify-content: space-between; align-items: center; gap: 20px; cursor: pointer; font-weight: 700; font-size: 19px; line-height: 1.3; }
.ch-faq-list summary::-webkit-details-marker { display: none; }
.ch-faq-toggle { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: #f1f1ec; }
.ch-faq-toggle .ch-ico { width: 16px; height: 16px; }
.ch-faq-list details[open] .ch-faq-toggle { background: var(--ch-green); color: #fff; }
.ch-faq-list details[open] .ch-faq-v { display: none; }
.ch-faq-list details p { margin: 0 0 22px; max-width: 660px; }

/* ---- Visit + areas ---- */
.ch section.ch-visit { padding: 96px 0; background: var(--ch-orange); }
.ch-visit .ch-two { gap: 72px; align-items: center; }
.ch-visit .ch-label { color: var(--ch-green); }
.ch-visit .ch-h2 { font-size: 44px; }
.ch-areas { background: #fff; border-radius: 16px; padding: 36px; display: flex; flex-direction: column; gap: 20px; box-shadow: 0 20px 40px rgba(49,62,59,.16); }
.ch-areas ul { display: flex; flex-wrap: wrap; gap: 8px; }
.ch-areas li { display: inline-flex; align-items: center; min-height: 36px; padding: 0 16px; border-radius: 18px; font-weight: 600; font-size: 14px; background: var(--ch-soft); }
.ch-areas li:first-child { background: var(--ch-green); color: #fff; }

/* ---- Responsive ---- */
@media (max-width: 1199px) {
    .ch-hero-grid { grid-template-columns: 1fr 460px; }
    .ch-art { transform: scale(.85); transform-origin: top center; min-height: 560px; }
    .ch-h1 { font-size: 56px; letter-spacing: -1.8px; }
    .ch-proof { grid-template-columns: 1fr 1fr; gap: 48px; }
    .ch-stages { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ch-nodes { display: none; }
    .ch-stage-num { display: inline; }
    .ch-grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ch-faq { grid-template-columns: 340px 1fr; gap: 48px; }
    .ch-finder { grid-template-columns: 280px 1fr; }
    .ch-row { grid-template-columns: 140px 1fr; }
    .ch-row .ch-thumb { height: 96px; }
    .ch-row-actions { grid-column: 2; }
}

@media (max-width: 991px) {
    .ch section { padding: 80px 0; }
    .ch-hero-grid { grid-template-columns: 1fr; }
    .ch-hero-copy { padding: 48px 0 56px; }
    .ch-art { display: none; }
    .ch-h2 { font-size: 36px; letter-spacing: -1px; }
    .ch-proof-copy .ch-h2, .ch-visit .ch-h2 { font-size: 34px; }
    .ch-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ch-head { flex-direction: column; align-items: flex-start; margin-bottom: 40px; }
    .ch-head-center { align-items: center; }
    .ch-two, .ch-proof, .ch-faq, .ch-intern, .ch-process { grid-template-columns: 1fr; }
    .ch-side { padding: 32px; }
    .ch-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ch-steps3 { grid-template-columns: 1fr; gap: 20px; }
    .ch-proof { gap: 64px; }
    .ch-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 56px; }
    .ch-finder { grid-template-columns: minmax(0, 1fr); }
    .ch-tabs { flex-direction: row; overflow-x: auto; }
    .ch-tab { width: auto; flex-shrink: 0; white-space: nowrap; }
    .ch-help { display: none; }
    .ch-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ch-intern { padding: 36px; gap: 40px; }
    .ch-faq { gap: 32px; }
    .ch-visit .ch-two { gap: 40px; }
}

@media (max-width: 767px) {
    .ch section { padding: 64px 0; }
    .ch section.ch-visit { padding: 64px 0; }
    .ch-wrap { padding-left: 16px; padding-right: 16px; }
    .ch-h1 { font-size: 40px; letter-spacing: -1.2px; }
    .ch-h2, .ch-proof-copy .ch-h2, .ch-visit .ch-h2 { font-size: 30px; letter-spacing: -.8px; }
    .ch-h3 { font-size: 24px; }
    .ch-lead { font-size: 17px; }
    .ch-hero-copy { padding: 36px 0 44px; gap: 22px; }
    .ch-kicker { font-size: 12.5px; min-height: 32px; padding: 0 12px; gap: 8px; }
    .ch-hero .ch-btn { width: 100%; min-height: 54px; }
    .ch-btns > .ch-btn { flex: 1 1 100%; }
    .ch-btn { min-height: 50px; }
    .ch-grid3, .ch-grid4, .ch-stages, .ch-takes { grid-template-columns: 1fr; }
    .ch-popular { font-size: 13px; gap: 8px; }
    .ch .ch-popular a { padding: 6px 11px; }

    .ch-trust { padding: 20px 0; }
    .ch-trust-grid { gap: 18px 14px; }
    .ch-trust-item { flex-direction: column; align-items: flex-start; gap: 6px; }
    .ch-trust-item .ch-ico { width: 24px; height: 24px; }
    .ch-trust-item b { font-size: 14px; line-height: 1.3; }
    .ch-trust-item span { font-size: 12.5px; line-height: 1.4; }

    .ch-side { padding: 22px; gap: 18px; }
    .ch-side-top .ch-badge { width: 52px; height: 52px; }
    .ch-side-top .ch-ico { width: 24px; height: 24px; }
    .ch-chips { display: flex; flex-wrap: wrap; gap: 8px; }
    .ch .ch-chip { min-height: 40px; padding: 6px 12px; font-size: 14px; gap: 8px; border-radius: 20px; }
    .ch-chip .ch-ico { width: 16px; height: 16px; }
    .ch-note { font-size: 14px; padding: 12px 14px; }

    /* Phone: the compact rows from the phone artboard, so the page isn't five screens of tiles. */
    .ch-grid3 { gap: 12px; }
    .ch-svc { padding: 12px; display: grid; grid-template-columns: 72px 1fr; gap: 12px 14px; align-items: center; }
    .ch-svc > *:not(.ch-thumb) { margin: 0; }
    .ch-svc > .ch-thumb { margin: 0; height: 54px; max-height: none; aspect-ratio: auto; border-radius: 8px; }
    .ch-svc .ch-thumb > .ch-ico { width: 26px; height: 26px; }
    .ch-svc .ch-thumb::after, .ch-svc .ch-thumb-tag, .ch-svc .ch-thumb .ch-pill, .ch-svc > p, .ch-svc-for { display: none; }
    .ch-svc { grid-template-columns: 56px 1fr; padding: 12px 12px 14px; }
    .ch-svc > .ch-thumb { height: 48px; }
    .ch-svc .ch-thumb > .ch-ico { width: 24px; height: 24px; }
    .ch-svc .ch-h4 { font-size: 16.5px; }
    .ch-svc-actions { grid-column: 1 / -1; padding-top: 12px; }
    .ch-svc-actions .ch-btn, .ch-row-actions .ch-btn { min-height: 42px; font-size: 14.5px; }
    .ch-process { margin-top: 32px; }
    .ch-process-steps { display: none; }
    .ch-process-cta { padding: 24px; }

    .ch-proof { gap: 44px; }
    .ch-proof-seal { left: 12px; bottom: -20px; padding: 10px 14px; font-size: 14px; }
    .ch-proof-seal .ch-ico { width: 22px; height: 22px; }
    .ch-proof-copy > p, .ch-proof-list { display: none; }
    .ch-stats { gap: 12px; border-top: 0; padding-top: 0; margin-top: 32px; }
    .ch-stats > div { background: var(--ch-soft); border-radius: 10px; padding: 16px; gap: 6px; }
    .ch-stats .ch-num { font-size: 32px; }
    .ch-stats .ch-num small { font-size: 20px; }
    .ch-stats span:last-child { font-size: 13px; }

    .ch-tab { min-height: 42px; border-radius: 21px; background: #fff; box-shadow: inset 0 0 0 1px #e3e3de; font-size: 14px; }
    .ch-tab .ch-ico { display: none; }
    .ch-tab.active { box-shadow: none; }
    .ch-tabs { padding: 4px 16px; margin: 0 -16px; background: transparent; box-shadow: none; gap: 8px; scrollbar-width: none; }
    .ch-tabs::-webkit-scrollbar { display: none; }
    .ch-panel { padding: 4px 16px; }
    .ch-panel-head { display: none; }
    .ch-row { grid-template-columns: 96px 1fr; gap: 10px 14px; align-items: start; padding: 18px 0; }
    .ch-row .ch-thumb { height: 64px; border-radius: 8px; }
    .ch-row .ch-thumb > .ch-ico { width: 30px; height: 30px; }
    .ch-row .ch-thumb::after, .ch-row .ch-thumb-tag, .ch-row-body > p { display: none; }
    .ch-row-title a { font-size: 17px; }
    .ch-row-actions { grid-column: 1 / -1; }
    .ch-row-actions .ch-btn { flex: 1; }

    .ch-stages { gap: 12px; }
    .ch-stage { flex-direction: row; flex-wrap: wrap; align-items: center; padding: 12px; gap: 6px 12px; border-radius: 12px; }
    .ch-stage > *:not(.ch-thumb) { margin: 0; }
    .ch-stage > .ch-thumb { width: 56px; height: 56px; max-height: none; aspect-ratio: auto; margin: 0; border-radius: 8px; }
    .ch-stage .ch-thumb > .ch-ico { width: 26px; height: 26px; }
    .ch-stage .ch-thumb::after, .ch-stage .ch-thumb-tag { display: none; }
    .ch-stage > .ch-who { align-self: center; }
    .ch-stage .ch-h4 { flex-basis: 100%; font-size: 17px; }
    .ch-stage > p { flex-basis: 100%; }
    .ch-intern { padding: 24px 20px; margin-top: 32px; gap: 32px; }
    .ch-cred { padding: 12px 14px; gap: 14px; }
    .ch-cred-ico { width: 44px; height: 44px; }
    .ch-paths { gap: 8px; font-size: 13.5px; }
    .ch-paths span { flex-direction: column; gap: 6px; min-height: 72px; padding: 10px 4px; text-align: center; line-height: 1.2; }

    .ch-rating { align-self: flex-start; }
    .ch-grid4 { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 16px; gap: 12px; margin: 0 -16px; padding: 0 16px 8px; scrollbar-width: none; }
    .ch-grid4::-webkit-scrollbar { display: none; }
    .ch-quote { flex: 0 0 86%; scroll-snap-align: start; padding: 22px; }

    .ch-faq-list summary { font-size: 17px; }
    .ch-areas { padding: 24px; }
}

/* ==== Company pages: About, Team, Testimonials, Contact, FAQs ==== */

.ch section.ch-title { position: relative; padding: 56px 0 64px; background: #fbf7f1; border-bottom: 1px solid #efe8dc; }
.ch-title-grid { display: grid; grid-template-columns: 1fr 360px; gap: 40px 64px; align-items: end; }
.ch-title-grid > .ch-stack { gap: 18px; }
.ch-title .ch-h1 { font-size: 56px; letter-spacing: -2px; line-height: 1.06; }
.ch-title .ch-lead { color: var(--ch-muted); max-width: 680px; }
.ch-crumbs ol { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; font-weight: 500; color: var(--ch-muted); }
.ch-crumbs li + li::before { content: '/'; margin-right: 8px; }
.ch .ch-crumbs a { color: var(--ch-muted); }
.ch .ch-crumbs a:hover { color: var(--ch-accent-ink); }
.ch-crumbs [aria-current] { color: var(--ch-green); }

.ch-box { background: #fff; border: 1px solid var(--ch-line); border-radius: 14px; }
.ch-title-card { padding: 24px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.ch-title-card .ch-small { color: var(--ch-muted); }
.ch-rate { display: flex; align-items: center; gap: 14px; }
.ch-rate .ch-num { font-size: 40px; }
.ch-tile { width: 56px; height: 56px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ch-sec-head { display: flex; flex-direction: column; gap: 14px; max-width: 720px; margin-bottom: 44px; }
.ch-sec-head-row { max-width: none; flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 24px 48px; }
.ch-sec-head-row > div { display: flex; flex-direction: column; gap: 14px; max-width: 720px; }
.ch section.ch-pad { padding: 96px 0; }

/* Grids that collapse 4 → 2 → 1 (unlike .ch-grid4, which turns into a swipe row on phones). */
.ch-cols4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.ch-cols3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ch-cols2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }

/* About */
.ch-about { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px 80px; align-items: start; }
.ch-about > .ch-stack { gap: 20px; }
.ch-about p { font-size: 17px; }
.ch-aud { padding: 28px; display: flex; gap: 20px; align-items: flex-start; }
.ch-aud + .ch-aud { margin-top: 20px; }
.ch-aud > div { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.ch-media { display: grid; grid-template-columns: minmax(0, 600px) 1fr; gap: 48px 72px; align-items: center; }
.ch-media img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 16px; display: block; }
.ch-media > .ch-stack { gap: 20px; }
.ch-feat { padding: 28px; display: flex; flex-direction: column; gap: 14px; }

/* People: monogram tiles until real photos arrive. */
.ch-person { padding: 12px 12px 26px; display: flex; flex-direction: column; gap: 8px; }
.ch-person > *:not(.ch-ava) { margin: 0 14px; }
.ch-person .ch-h4 { margin-top: 14px; }
.ch-person .ch-meta { color: var(--ch-accent-ink); }
.ch-ava { position: relative; height: 180px; border-radius: 10px; overflow: hidden; display: flex; align-items: center; justify-content: center; font: 800 72px/1 var(--ch-font); letter-spacing: -2px; }
.ch-ava::before { content: ''; position: absolute; inset: 0; background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.09) 0 2px, transparent 2px 14px); }
.ch-ava span { position: relative; z-index: 1; }
.ch-person .ch-leads .ch-meta { color: var(--ch-muted); }
.ch-leads { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-top: 10px !important; padding-top: 16px; border-top: 1px solid var(--ch-line); }
.ch-women { display: grid; grid-template-columns: 1fr 2fr; gap: 48px 64px; align-items: center; }
.ch-women > .ch-stack { gap: 18px; align-items: flex-start; }

/* Reviews */
.ch-review { padding: 28px; display: flex; flex-direction: column; gap: 16px; margin: 0; }
.ch-review figcaption { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--ch-line); }
.ch-review figcaption b { display: block; font-weight: 700; font-size: 15px; }
.ch-review figcaption span span { display: block; font-size: 13px; color: var(--ch-muted); }
.ch-mono { width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-weight: 700; }
.ch-aside-note { display: flex; align-items: flex-start; gap: 10px; margin-top: 32px !important; font-size: 15px; color: #444f4c; }
.ch-aside-note .ch-ico { width: 18px; height: 18px; color: var(--ch-accent-ink); margin-top: 2px; }

/* Contact */
.ch-way { padding: 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.ch-way .ch-meta { color: var(--ch-muted); }
.ch-way .ch-btn { margin-top: auto; }
.ch-way-value { font-weight: 700; font-size: 24px; line-height: 1.2; letter-spacing: -.5px; overflow-wrap: anywhere; }
.ch-way-value-sm { font-size: 19px; letter-spacing: -.2px; }
.ch-contact { display: grid; grid-template-columns: 1.35fr 1fr; gap: 32px; align-items: stretch; margin-top: 32px; }
.ch-form-card { padding: 40px; display: flex; flex-direction: column; gap: 24px; }
.ch-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ch-fld { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ch-fld-wide, .ch-form-foot { grid-column: 1 / -1; }
.ch-fld label { font-weight: 600; font-size: 15px; line-height: 1.2; }
.ch .ch-inp { width: 100%; min-height: 52px; padding: 0 16px; border-radius: 8px; border: 1px solid #b9beb8; background: #fff; font: 400 16px/1.4 var(--ch-font); color: var(--ch-green); box-shadow: none; }
.ch textarea.ch-inp { min-height: 140px; padding: 14px 16px; resize: vertical; }
.ch .ch-inp:focus { outline: 3px solid var(--ch-orange); outline-offset: 1px; border-color: var(--ch-green); }
.ch .ch-inp.input-validation-error { border-color: #b3261e; }
.ch-err { font-size: 14px; color: #b3261e; }
.ch-err:empty, .ch .validation-summary-valid { display: none; }
.ch-form-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.ch-form-foot .ch-small { color: var(--ch-muted); }
.ch button.ch-btn-dark { background: var(--ch-green); color: #fff; }
.ch button.ch-btn-dark:hover { background: var(--ch-ink); }
.ch-map { border-radius: 14px; background: #dfe9e4; padding: 40px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; text-align: center; }
.ch-map-pin { width: 88px; height: 88px; border-radius: 50%; background: var(--ch-green); color: var(--ch-orange); display: flex; align-items: center; justify-content: center; }
.ch-map-pin .ch-ico { width: 40px; height: 40px; }
.ch-map address { font-style: normal; max-width: 320px; margin: 0; }
.ch-socials { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ch .ch-socials a { min-height: 40px; padding: 0 14px; border-radius: 20px; background: #fff; display: inline-flex; align-items: center; font-weight: 600; font-size: 14px; }

/* FAQ page */
.ch-faqpage { display: grid; grid-template-columns: 340px minmax(0, 1fr); grid-template-areas: "nav list" "help list"; grid-template-rows: auto 1fr; gap: 32px 80px; align-items: start; }
.ch-faq-nav { grid-area: nav; display: flex; flex-direction: column; }
.ch-faq-nav .ch-label { margin-bottom: 8px; }
.ch .ch-jump { display: flex; justify-content: space-between; align-items: center; min-height: 48px; border-bottom: 1px solid var(--ch-line); font-weight: 600; }
.ch-jump span { font-size: 13px; font-weight: 500; color: var(--ch-muted); }
.ch-faq-help { grid-area: help; border-radius: 14px; padding: 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.ch-faq-help p { color: rgba(255,255,255,.84); }
.ch-faq-groups { grid-area: list; display: flex; flex-direction: column; gap: 64px; }
.ch-faq-group { display: flex; flex-direction: column; gap: 12px; scroll-margin-top: 110px; }
.ch-faq-list details p { color: var(--ch-muted); }

/* Closing bands */
.ch section.ch-band { padding: 72px 0; }
.ch-band-orange { background: var(--ch-orange); }
.ch-band-row { display: flex; justify-content: space-between; align-items: center; gap: 28px 48px; }
.ch-band-row > .ch-stack { gap: 10px; max-width: 720px; }
.ch-band .ch-h2 { font-size: 36px; letter-spacing: -1px; }
.ch-band.ch-dark p { color: rgba(255,255,255,.84); }
.ch-band .ch-btns { flex-shrink: 0; }
.ch-split { display: grid; grid-template-columns: 1fr 1px 1fr; gap: 32px 56px; align-items: center; }
.ch-split-rule { align-self: stretch; background: rgba(49,62,59,.25); }
.ch-split > div:not(.ch-split-rule) { display: flex; justify-content: space-between; align-items: center; gap: 24px 32px; }
.ch-split .ch-stack { gap: 8px; }
.ch-band-orange .ch-label { color: var(--ch-green); }
.ch-paths2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 36px; }
.ch-path { border-radius: 14px; padding: 36px; display: flex; justify-content: space-between; align-items: center; gap: 24px; color: var(--ch-green); }
.ch-path > div { display: flex; flex-direction: column; gap: 8px; }
.ch-path-orange { background: var(--ch-orange); }
.ch-path-white { background: #fff; }
.ch-path-white p { color: var(--ch-muted); }

@media (max-width: 1199px) {
    .ch-title .ch-h1 { font-size: 48px; }
    .ch-cols4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ch-media { grid-template-columns: 1fr 1fr; gap: 48px; }
    .ch-faqpage { grid-template-columns: 280px minmax(0, 1fr); gap: 32px 48px; }
    .ch-path { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 991px) {
    .ch section.ch-title { padding: 40px 0 48px; }
    .ch-title-grid, .ch-about, .ch-media, .ch-women, .ch-contact { grid-template-columns: 1fr; }
    .ch-title-card { max-width: 480px; }
    .ch section.ch-pad { padding: 72px 0; }
    .ch-cols3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ch-sec-head-row { flex-direction: column; align-items: flex-start; }
    .ch-faqpage { grid-template-columns: minmax(0, 1fr); grid-template-areas: "nav" "list" "help"; }
    .ch-band-row { flex-direction: column; align-items: flex-start; }
    .ch-split { grid-template-columns: 1fr; }
    .ch-split-rule { height: 1px; }
    .ch-paths2 { grid-template-columns: 1fr; }
    .ch-path { flex-direction: row; align-items: center; }
}

@media (max-width: 767px) {
    .ch section.ch-title { padding: 20px 0 36px; }
    .ch-title-grid { gap: 24px; }
    .ch-title-grid > .ch-stack { gap: 14px; }
    .ch-title .ch-h1 { font-size: 34px; letter-spacing: -1px; line-height: 1.1; }
    .ch-title .ch-lead { font-size: 16px; }
    .ch-title-card { padding: 18px; max-width: none; }
    .ch-rate .ch-num { font-size: 32px; }
    .ch section.ch-pad { padding: 56px 0; }
    .ch-sec-head { margin-bottom: 28px; gap: 10px; }
    .ch-sec-head-row > div { gap: 10px; }
    .ch-cols4, .ch-cols3, .ch-cols2 { grid-template-columns: 1fr; gap: 12px; }
    .ch-about p, .ch-media p, .ch-women p { font-size: 16px; }
    .ch-tile { width: 44px; height: 44px; border-radius: 10px; }
    .ch-tile .ch-ico { width: 20px; height: 20px; }

    /* Cards become compact rows: icon left, copy right. */
    .ch-aud, .ch-feat { padding: 18px; flex-direction: row; gap: 14px; }
    .ch-aud + .ch-aud { margin-top: 12px; }
    .ch-feat { display: grid; grid-template-columns: 44px 1fr; gap: 4px 14px; align-items: start; }
    .ch-feat > .ch-tile { grid-row: span 2; }
    .ch-feat .ch-h4 { font-size: 17px; }
    .ch-media img { border-radius: 12px; }

    .ch-person { display: grid; grid-template-columns: 64px 1fr; gap: 2px 14px; padding: 12px; align-items: center; }
    .ch-person > *:not(.ch-ava) { margin: 0; grid-column: 2; }
    .ch-person > .ch-ava { grid-row: span 3; height: 64px; font-size: 28px; letter-spacing: 0; border-radius: 10px; }
    .ch-person .ch-h4 { margin-top: 0; font-size: 17px; }
    .ch-person .ch-small { font-size: 14px; }
    .ch-person .ch-leads { grid-column: 1 / -1; margin-top: 8px !important; padding-top: 12px; }
    .ch-leads .ch-btn { min-height: 40px; padding: 0 14px; }

    .ch-review { padding: 20px; gap: 12px; }
    .ch-aside-note { font-size: 14px; }

    .ch-way { display: grid; grid-template-columns: 44px 1fr; gap: 2px 14px; padding: 18px; align-items: center; }
    .ch-way > .ch-tile { grid-row: span 2; }
    .ch-way > .ch-small, .ch-way > .ch-btn { grid-column: 1 / -1; }
    .ch-way > .ch-small { margin-top: 8px; }
    .ch-way > .ch-btn { width: 100%; margin-top: 8px; }
    .ch-way-value { font-size: 20px; }
    .ch-way-value-sm { font-size: 16px; }
    .ch-contact { gap: 16px; margin-top: 16px; }
    .ch-form-card { padding: 22px 18px; gap: 18px; }
    .ch-form { grid-template-columns: 1fr; gap: 16px; }
    .ch-form-foot .ch-btn { width: 100%; }
    .ch-map { padding: 28px 20px; }
    .ch-map-pin { width: 64px; height: 64px; }
    .ch-map-pin .ch-ico { width: 30px; height: 30px; }

    .ch-faq-nav { flex-direction: row; flex-wrap: wrap; gap: 8px; }
    .ch-faq-nav .ch-label { flex-basis: 100%; margin-bottom: 0; }
    .ch .ch-jump { min-height: 40px; padding: 0 14px; border: 0; border-radius: 20px; background: var(--ch-soft); gap: 8px; font-size: 14px; }
    .ch-faq-groups { gap: 40px; }
    .ch-faq-help { padding: 22px; }
    .ch-faq-help .ch-btn { width: 100%; }

    .ch section.ch-band { padding: 56px 0; }
    .ch-band .ch-h2 { font-size: 28px; letter-spacing: -.6px; }
    .ch-band .ch-btns { width: 100%; }
    .ch-split > div:not(.ch-split-rule) { flex-direction: column; align-items: flex-start; gap: 16px; }
    .ch-split .ch-btn { width: 100%; }
    .ch-paths2 { gap: 12px; margin-top: 24px; }
    .ch-path { flex-direction: column; align-items: flex-start; padding: 22px; gap: 16px; }
    .ch-path .ch-btn { width: 100%; }
}

/* ==== Courses and services ==== */

.ch-title-grid.ch-title-art { grid-template-columns: 1fr 440px; gap: 40px 72px; align-items: center; }
.ch-thumb.ch-thumb-big { aspect-ratio: auto; max-height: none; height: 300px; border-radius: 16px; }
.ch-thumb-big > .ch-ico { width: 96px; height: 96px; stroke-width: 1.2; }
.ch-thumb-big::after { width: 180px; height: 180px; right: -40px; bottom: -40px; }
.ch-thumb-big .ch-thumb-tag { left: 16px; bottom: 16px; font-size: 12px; padding: 6px 10px; }

.ch section.ch-facts { padding: 32px 0; border-bottom: 1px solid var(--ch-line); }
.ch-facts-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px 32px; }
.ch-facts dl { display: flex; flex-wrap: wrap; row-gap: 20px; margin: 0; }
.ch-fact { display: flex; flex-direction: column; gap: 8px; padding: 0 28px; border-left: 1px solid var(--ch-line); flex-shrink: 0; }
.ch-fact:first-child { padding-left: 0; border-left: 0; }
.ch-fact dt { font-weight: 700; font-size: 12px; line-height: 1; letter-spacing: .12em; text-transform: uppercase; color: var(--ch-muted); }
.ch-fact dd { margin: 0; font-weight: 700; font-size: 17px; line-height: 1.3; }
.ch-facts-rate { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 10px; background: var(--ch-soft); min-width: 0; }

/* About + outcomes, written in each course view */
.ch-cabout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 96px; align-items: start; }
.ch-cabout > .ch-stack { gap: 20px; }
.ch-cabout > .ch-stack > p { font-size: 17px; color: var(--ch-muted); }
.ch-cabout .ch-h2, .ch-curric .ch-h2, .ch-related .ch-h2 { font-size: 36px; letter-spacing: -1.2px; }
.ch-cabout .ch-h5 { margin-top: 12px; }
.ch-tools { display: flex; flex-wrap: wrap; gap: 8px; }
.ch-tools span { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 18px; background: var(--ch-soft); font-weight: 600; font-size: 14px; }
.ch-trainer { margin-top: 12px; padding: 20px 24px; border-radius: 12px; background: var(--ch-soft); display: flex; align-items: center; gap: 16px; }
.ch-trainer .ch-mono { width: 52px; height: 52px; background: var(--ch-green); color: var(--ch-gold); font-weight: 800; font-size: 20px; }
.ch-trainer > div { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.ch-trainer .ch-small { color: var(--ch-muted); }
.ch-outcomes { padding: 40px; display: flex; flex-direction: column; gap: 18px; background: #fbf7f1; border-color: #efe8dc; }
.ch-outcomes .ch-check .ch-ico, .ch-curric .ch-check .ch-ico { width: 20px; height: 20px; margin-top: 2px; }
.ch-outcomes-white { background: #fff; border-color: var(--ch-line); }
.ch-ruled .ch-check:not(:last-child) { padding-bottom: 18px; border-bottom: 1px solid var(--ch-line); }
.ch-track-list { display: flex; flex-direction: column; gap: 10px; }
.ch-track-list p, .ch-bullets li { position: relative; padding-left: 18px; color: var(--ch-muted); }
.ch-track-list p::before, .ch-bullets li::before { content: ''; position: absolute; left: 0; top: .65em; width: 6px; height: 6px; border-radius: 50%; background: var(--ch-orange); }
.ch-track-list b, .ch-outcomes b { font-weight: 700; color: var(--ch-green); }
.ch-bullets { display: flex; flex-direction: column; gap: 10px; }
.ch .ch-tools a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 20px; background: var(--ch-soft); font-weight: 600; font-size: 14px; }
.ch .ch-tools a:hover { background: var(--ch-green); color: #fff; }
.ch-trainer-note { flex-wrap: wrap; }
.ch-trainer-note a:not(.ch-btn) { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* Curriculum */
.ch-curric { display: grid; grid-template-columns: 400px minmax(0, 1fr); gap: 48px 80px; align-items: start; }
.ch-curric-side { gap: 20px; }
.ch-curric > * { min-width: 0; }
.ch-curric-side > p { font-size: 16px; }
.ch-track-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.ch-track-tab { min-height: 44px; padding: 0 18px; border-radius: 22px; border: 1px solid #e3e3de; background: #fff; color: var(--ch-green); font: 600 15px/1.2 var(--ch-font); cursor: pointer; }
.ch-track-tab:hover { border-color: var(--ch-green); }
.ch-track-tab.active { background: var(--ch-green); border-color: var(--ch-green); color: #fff; }
.ch-track-head { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; }
.ch-track-count { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 15px; }
.ch-track-count .ch-ico { width: 20px; height: 20px; color: var(--ch-accent-ink); }
.ch-mods { border-top: 1px solid #e3e3de; }
.ch-mods details { border-bottom: 1px solid #e3e3de; }
.ch-mods summary { list-style: none; display: grid; grid-template-columns: 44px minmax(0, 1fr) 34px; gap: 16px; align-items: center; padding: 20px 0; cursor: pointer; }
.ch-mods summary::-webkit-details-marker { display: none; }
.ch-mod-n { font-weight: 800; font-size: 13px; color: var(--ch-accent-ink); }
.ch-mod-t { font-weight: 700; font-size: 18px; line-height: 1.3; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
.ch-mod-w { font-weight: 500; font-size: 13px; color: var(--ch-muted); }
.ch-mods details[open] .ch-faq-toggle { background: var(--ch-green); color: #fff; }
.ch-mods details[open] .ch-faq-v { display: none; }
.ch-mod-body { padding: 0 50px 22px 60px; }
.ch-mod-note { margin-bottom: 10px !important; }
.ch-mod-body ul { columns: 2; column-gap: 32px; }
.ch-mod-body li { break-inside: avoid; position: relative; padding: 0 0 6px 16px; font-size: 15px; line-height: 1.5; color: var(--ch-muted); }
.ch-mod-body li::before { content: ''; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--ch-orange); }

/* For businesses signpost */
.ch section.ch-forbiz-sec { padding: 72px 0 0; }
.ch-forbiz { padding: 32px 40px; border-radius: 14px; border: 1px solid #e3e3de; display: grid; grid-template-columns: 72px 1fr auto; gap: 24px 28px; align-items: center; }
.ch-forbiz > .ch-tile { width: 72px; height: 72px; }
.ch-forbiz > .ch-stack { gap: 8px; }
.ch-forbiz p { max-width: 720px; }

/* Course cards: tile beside the copy */
.ch section.ch-related { padding: 72px 0 96px; }
.ch-ccard { padding: 14px; display: grid; grid-template-columns: 168px minmax(0, 1fr); gap: 20px; align-items: center; }
.ch-ccard .ch-thumb { height: 132px; max-height: none; aspect-ratio: auto; }
.ch-ccard .ch-thumb > .ch-ico { width: 44px; height: 44px; }
.ch-ccard .ch-thumb::after { width: 96px; height: 96px; right: -22px; bottom: -22px; }
.ch-ccard .ch-thumb-tag { left: 10px; bottom: 10px; padding: 4px 8px; font-size: 10.5px; }
.ch-ccard-body { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding-right: 8px; }
.ch-ccard-body .ch-h5 { font-size: 18px; }
.ch-ccard-meta { color: #444f4c; }
.ch-ccard .ch-btns { gap: 8px; margin-top: 4px; }
.ch-ccard-sm { padding: 12px; grid-template-columns: 112px minmax(0, 1fr); gap: 16px; }
.ch-ccard-sm .ch-thumb { height: 112px; }
.ch-ccard-sm .ch-h5 { font-size: 17px; }
.ch-ccard-sm .ch-btn { min-height: 36px; padding: 0 12px; font-size: 13px; }
.ch [hidden] { display: none !important; }

/* Course catalogue */
.ch section.ch-catalogue { padding-top: 56px; }
.ch-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.ch-filter-btn { display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 8px 0 18px; border-radius: 23px; border: 1px solid #e3e3de; background: #fff; color: var(--ch-green); font: 600 15px/1 var(--ch-font); cursor: pointer; white-space: nowrap; }
.ch-filter-btn span { padding: 6px 9px; border-radius: 12px; background: #f1f1ec; color: #444f4c; font-size: 12px; font-weight: 700; }
.ch-filter-btn:hover { border-color: var(--ch-green); }
.ch-filter-btn.active { background: var(--ch-green); border-color: var(--ch-green); color: #fff; }
.ch-filter-btn.active span { background: var(--ch-orange); color: var(--ch-green); }
.ch-catalogue-grid { gap: 20px; }

/* Service pages */
.ch-svc-side { gap: 14px; }
.ch-svc-side .ch-thumb-big { height: 250px; border-radius: 14px; }
.ch-svc-facts { margin: 0; padding: 4px 22px; }
.ch-svc-facts > div { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--ch-line); font-size: 15px; font-weight: 500; }
.ch-svc-facts > div:last-child { border-bottom: 0; }
.ch-svc-facts dt { display: flex; align-items: center; gap: 10px; font-weight: 500; color: var(--ch-muted); }
.ch-svc-facts dt .ch-ico { width: 18px; height: 18px; color: var(--ch-accent-ink); }
.ch-svc-facts dd { margin: 0; font-weight: 700; text-align: right; }
.ch-sinv { display: grid; grid-template-columns: minmax(0, 1fr) 480px; gap: 48px 96px; align-items: start; }
.ch-sinv-main { gap: 18px; }
.ch-sinv-main p { font-size: 17px; color: var(--ch-muted); max-width: 620px; }
.ch-sinv-side { gap: 32px; padding-top: 8px; }
.ch-sinv-side > .ch-stack { gap: 14px; }
.ch-trainer-warm { margin-top: 0; background: #fbf7f1; border: 1px solid #efe8dc; }
.ch-offer { padding: 28px; border-radius: 14px; background: #dfe9e4; display: flex; gap: 20px; align-items: flex-start; }
.ch-offer > .ch-stack { gap: 10px; }
.ch-offer .ch-tools a { background: #fff; }
.ch-gets { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.ch-get { padding: 26px 22px; display: flex; flex-direction: column; gap: 12px; }
.ch-get > .ch-ico { width: 30px; height: 30px; color: var(--ch-accent-ink); }
.ch-runs { margin-top: 32px; padding: 40px 44px; display: flex; flex-direction: column; gap: 28px; }
.ch-runs .ch-h4 { font-size: 22px; }
.ch-learn { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px 24px; padding: 16px 20px; border-radius: 10px; background: var(--ch-cream); }
.ch-learn > span { display: flex; align-items: center; gap: 12px; font-weight: 600; font-size: 15px; }
.ch-learn > span .ch-ico { color: var(--ch-accent-ink); }
.ch-srows { display: flex; flex-direction: column; gap: 14px; }
.ch-srow { padding: 12px; display: grid; grid-template-columns: 132px minmax(0, 1fr) auto; gap: 24px; align-items: center; }
.ch-srow .ch-thumb { height: 96px; max-height: none; aspect-ratio: auto; }
.ch-srow .ch-thumb > .ch-ico { width: 36px; height: 36px; }
.ch-srow .ch-thumb::after { width: 80px; height: 80px; right: -20px; bottom: -20px; }
.ch-srow .ch-thumb-tag { left: 8px; bottom: 8px; padding: 4px 7px; font-size: 10px; }
.ch-srow-body { display: flex; flex-direction: column; gap: 6px; }
.ch-srow-body .ch-h5 { font-size: 18px; }
.ch-srow > .ch-btns { gap: 8px; padding-right: 12px; flex-wrap: nowrap; }
.ch-sec-aside { max-width: 420px; text-align: right; }
.ch-starts { gap: 24px; }
.ch-starts li { padding: 28px; border-radius: 14px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); display: flex; flex-direction: column; gap: 10px; }
.ch-starts .ch-num { font-size: 36px; color: var(--ch-orange); }
.ch-starts p { color: rgba(255,255,255,.8); }

/* Enrol */
.ch button.ch-btn-orange { background: var(--ch-orange); color: var(--ch-green); }
.ch button.ch-btn-orange:hover { background: var(--ch-gold); }
.ch-talk { border-radius: 14px; padding: 40px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.ch-talk p { color: rgba(255,255,255,.84); }
.ch-talk-visit { margin-top: auto; padding-top: 22px; width: 100%; border-top: 1px solid rgba(255,255,255,.14); display: flex; flex-direction: column; gap: 8px; }
.ch-talk-visit p { display: flex; gap: 10px; align-items: flex-start; }
.ch-talk-visit .ch-ico { width: 20px; height: 20px; color: var(--ch-orange); margin-top: 2px; }
.ch-next li { padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.ch-next .ch-num { font-size: 36px; color: var(--ch-accent-ink); }

/* Legal pages and other single-column titles */
.ch-title-solo { gap: 18px; max-width: 820px; }
.ch-legal { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 40px 80px; align-items: start; }
.ch-toc { position: sticky; top: 130px; display: flex; flex-direction: column; }
.ch-toc .ch-label { margin-bottom: 8px; }
.ch .ch-toc a { padding: 12px 0; border-bottom: 1px solid var(--ch-line); font-weight: 600; font-size: 15px; }
.ch-legal-text { max-width: 720px; }
.ch-legal-text .ch-h4 { margin: 40px 0 12px !important; scroll-margin-top: 120px; }
.ch-legal-text .ch-h4:first-child { margin-top: 0 !important; }
.ch-legal-text p { font-size: 17px; line-height: 1.7; color: #444f4c; }
.ch .ch-legal-text a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* Service areas */
.ch-towns { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ch-towns li { min-height: 120px; padding: 24px; border-radius: 14px; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; }
.ch-towns li > .ch-ico { color: var(--ch-accent-ink); margin-bottom: auto; }
.ch-towns li.ch-dark > .ch-ico { color: var(--ch-orange); }
.ch-towns li.ch-dark .ch-small { color: rgba(255,255,255,.8); }
.ch-towns .ch-town-other { border: 1.5px dashed #c9cdc6; align-items: flex-start; }
.ch-visit-grid { display: grid; grid-template-columns: minmax(0, 520px) 1fr; gap: 48px 72px; align-items: center; }
.ch-visit-grid > .ch-stack { gap: 18px; align-items: flex-start; }
.ch-visit-grid .ch-map { min-height: 300px; }

/* Empty blog and error pages */
.ch-empty { padding: 40px; display: flex; gap: 28px; align-items: flex-start; }
.ch-empty > .ch-stack { gap: 14px; max-width: 680px; }
.ch section.ch-lost { padding-bottom: 112px; }
.ch-lost-box { gap: 20px; max-width: 760px; }
.ch-lost-code { font-weight: 800; font-size: 120px; line-height: 1; letter-spacing: -4px; color: var(--ch-orange); }
.ch .ch-lost-call { display: inline-flex; align-items: center; gap: 10px; font-weight: 500; }
.ch-lost-call .ch-ico { width: 20px; height: 20px; color: var(--ch-accent-ink); }

@media (max-width: 1199px) {
    .ch-title-grid.ch-title-art { grid-template-columns: 1fr 360px; gap: 40px; }
    .ch-cabout { gap: 48px; }
    .ch-curric { grid-template-columns: 320px minmax(0, 1fr); gap: 48px; }
    .ch-cols3:has(.ch-ccard-sm) { grid-template-columns: 1fr; }
    .ch-ccard-sm { grid-template-columns: 140px minmax(0, 1fr); }
    .ch-sinv { grid-template-columns: minmax(0, 1fr) 400px; gap: 48px; }
    .ch-gets { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ch-srow { grid-template-columns: 132px minmax(0, 1fr); }
    .ch-srow > .ch-btns { grid-column: 2; padding-right: 0; }
}

@media (max-width: 991px) {
    .ch-title-grid.ch-title-art { grid-template-columns: 1fr; }
    .ch-thumb.ch-thumb-big { height: 220px; }
    .ch-cabout, .ch-curric { grid-template-columns: minmax(0, 1fr); }
    .ch-forbiz { grid-template-columns: 72px 1fr; }
    .ch-forbiz > .ch-btns { grid-column: 1 / -1; }
    .ch-catalogue-grid { grid-template-columns: 1fr; }
    .ch-svc-side { flex-direction: row; }
    .ch-svc-side > * { flex: 1; }
    .ch-sinv { grid-template-columns: 1fr; }
    .ch-gets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ch-runs { padding: 32px; }
    .ch-sec-aside { text-align: left; }
    .ch-legal { grid-template-columns: 1fr; }
    .ch-toc { position: static; }
    .ch-towns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ch-visit-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
    .ch-thumb.ch-thumb-big { height: 180px; border-radius: 14px; }
    .ch-thumb-big > .ch-ico { width: 72px; height: 72px; }
    .ch section.ch-facts { padding: 24px 0 32px; }
    .ch-facts-row { gap: 12px; }
    .ch-facts dl { flex-direction: column; width: 100%; row-gap: 0; }
    .ch-fact { flex-direction: row; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px 0; border-left: 0; border-bottom: 1px solid var(--ch-line); }
    .ch-fact:last-child { border-bottom: 0; }
    .ch-fact dd { font-size: 15px; text-align: right; }
    .ch-facts-rate { width: 100%; flex-wrap: wrap; padding: 12px 14px; }
    .ch-cabout .ch-h2, .ch-curric .ch-h2, .ch-related .ch-h2 { font-size: 28px; letter-spacing: -.6px; }
    .ch-cabout > .ch-stack { gap: 16px; }
    .ch-cabout > .ch-stack > p { font-size: 16px; }
    .ch-outcomes { padding: 24px 20px; gap: 14px; }
    .ch-trainer { flex-wrap: wrap; padding: 18px; }
    .ch-trainer .ch-btn { width: 100%; }
    .ch-track-tabs { flex-wrap: nowrap; overflow-x: auto; margin-right: -16px; padding-right: 16px; scrollbar-width: none; }
    .ch-track-tab { flex-shrink: 0; white-space: nowrap; }
    .ch-mods summary { grid-template-columns: 30px minmax(0, 1fr) 34px; gap: 10px; padding: 16px 0; }
    .ch-mod-t { font-size: 16px; flex-direction: column; align-items: flex-start; }
    .ch-mod-body { padding: 0 0 18px 40px; }
    .ch-mod-body ul { columns: 1; }
    .ch section.ch-forbiz-sec { padding: 56px 0 0; }
    .ch-forbiz { grid-template-columns: 1fr; padding: 22px 18px; gap: 16px; }
    .ch-forbiz > .ch-tile { width: 56px; height: 56px; }
    .ch-forbiz .ch-btn { flex: 1; }
    .ch section.ch-related { padding: 56px 0; }
    .ch-ccard { grid-template-columns: 104px minmax(0, 1fr); gap: 14px; padding: 10px; align-items: start; }
    .ch-ccard .ch-thumb { height: 104px; }
    .ch-ccard .ch-thumb > .ch-ico { width: 36px; height: 36px; }
    .ch-ccard .ch-thumb-tag { display: none; }
    .ch-ccard-body { padding-right: 0; gap: 6px; }
    .ch-ccard-body .ch-h5 { font-size: 16px; }
    .ch-ccard .ch-btns { margin-top: 2px; }
    .ch-ccard .ch-btn { min-height: 38px; padding: 0 12px; font-size: 13px; }
    .ch section.ch-catalogue { padding-top: 32px; }
    .ch-filter { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px 20px; padding: 0 16px 4px; scrollbar-width: none; }
    .ch-filter::-webkit-scrollbar { display: none; }
    .ch-filter-btn { flex-shrink: 0; min-height: 42px; font-size: 14px; }
    .ch-catalogue-grid { gap: 12px; }
    .ch-svc-side { flex-direction: column; }
    .ch-svc-side .ch-thumb-big { height: 160px; }
    .ch-svc-facts { padding: 2px 16px; }
    .ch-sinv-main p { font-size: 16px; }
    .ch-sinv-side { gap: 24px; padding-top: 0; }
    .ch-offer { padding: 20px; flex-direction: column; gap: 14px; }
    .ch-gets { grid-template-columns: 1fr; gap: 10px; }
    .ch-get { display: grid; grid-template-columns: 30px 1fr; gap: 4px 14px; padding: 18px; }
    .ch-get > .ch-ico { grid-row: span 2; width: 26px; height: 26px; }
    .ch-runs { margin-top: 16px; padding: 22px 18px; gap: 20px; }
    .ch-runs .ch-h4 { font-size: 19px; }
    .ch-learn { padding: 16px; }
    .ch-learn .ch-btns, .ch-learn .ch-btn { width: 100%; }
    .ch-srow { grid-template-columns: 72px minmax(0, 1fr); gap: 14px; padding: 10px; align-items: start; }
    .ch-srow .ch-thumb { height: 72px; }
    .ch-srow .ch-thumb > .ch-ico { width: 28px; height: 28px; }
    .ch-srow .ch-thumb-tag, .ch-srow-body .ch-small { display: none; }
    .ch-srow-body .ch-h5 { font-size: 16px; }
    .ch-srow > .ch-btns { grid-column: 1 / -1; }
    .ch-srow .ch-btn { flex: 1; }
    .ch-starts li { padding: 20px; }
    .ch-talk { padding: 24px 20px; }
    .ch-talk .ch-btns, .ch-talk .ch-btn { width: 100%; }
    .ch-next li { padding: 20px; }
    .ch-next .ch-num { font-size: 28px; }
    .ch-title-solo { gap: 14px; }
    .ch-legal-text p { font-size: 16px; }
    .ch-legal-text .ch-h4 { margin-top: 32px !important; }
    .ch-towns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .ch-towns li { min-height: 96px; padding: 16px; }
    .ch-towns .ch-h4 { font-size: 16px; }
    .ch-towns .ch-town-other { grid-column: 1 / -1; }
    .ch-visit-grid .ch-map { min-height: 0; }
    .ch-visit-grid .ch-btns, .ch-visit-grid .ch-btn { width: 100%; }
    .ch-empty { padding: 22px 18px; flex-direction: column; gap: 16px; }
    .ch-lost-code { font-size: 80px; }
    .ch section.ch-lost { padding-bottom: 64px; }
    .ch-lost-box .ch-btns > .ch-btn { flex: 1 1 40%; }
}

/* ==== Site header and footer ==== */

.chh, .chf { font: 400 16px/1.5 var(--ch-font); }
.chh { position: sticky; top: 0; z-index: 100; background: var(--ch-green); color: #fff; }
header.chh.sticky { box-shadow: 0 6px 20px rgba(0,0,0,.18); }
.chh-bar { max-width: 1248px; margin: 0 auto; padding: 0 24px; height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ch .chh-brand { display: flex; align-items: center; gap: 12px; color: #fff; flex-shrink: 0; }
.chh-mark { width: 40px; height: 46px; overflow: hidden; display: block; flex-shrink: 0; }
.chh-mark img { height: 66px; width: auto; max-width: none; margin: -2px 0 0 -21px; display: block; }
.chh-word { display: flex; flex-direction: column; gap: 5px; }
.chh-word b { font-weight: 800; font-size: 19px; line-height: 1; letter-spacing: -.3px; color: #fff; }
.chh-word span { font-weight: 700; font-size: 10px; line-height: 1; letter-spacing: .12em; text-transform: uppercase; color: var(--ch-gold); }
.chh-nav { display: flex; gap: 32px; }
.ch .chh-nav a { color: #fff; font-weight: 500; font-size: 15px; padding: 8px 0; }
.ch .chh-nav a:hover, .ch .chh-nav a[aria-current] { color: var(--ch-orange); }
.chh-actions { display: flex; align-items: center; gap: 20px; }
.ch .chh-phone { display: flex; align-items: center; gap: 10px; color: #fff; font-weight: 700; font-size: 15px; white-space: nowrap; }
.ch .chh-phone:hover { color: var(--ch-orange); }
.chh-phone .ch-ico { width: 20px; height: 20px; color: var(--ch-orange); }
.ch .chh-enrol { min-height: 46px; padding: 0 20px; font-size: 15px; }
.ch .chh-icon { width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; list-style: none; }
.chh-icon::-webkit-details-marker { display: none; }
.chh-icon::marker { content: ''; }
.ch .chh-call { background: rgba(248,144,16,.18); color: var(--ch-orange); }
.chh-menu summary { background: rgba(255,255,255,.1); color: #fff; }
.ch .chh-call, .ch .chh-menu { display: none; }
.chh-menu .ch-ico { width: 22px; height: 22px; }
.chh-menu:not([open]) .chh-close, .chh-menu[open] .chh-open { display: none; }
.chh-panel { position: fixed; top: 76px; left: 0; right: 0; bottom: 0; overflow-y: auto; background: var(--ch-green); padding: 8px 20px 32px; display: flex; flex-direction: column; gap: 24px; border-top: 1px solid rgba(255,255,255,.1); }
.chh-panel nav { display: flex; flex-direction: column; }
.ch .chh-mlink { display: flex; justify-content: space-between; align-items: center; min-height: 56px; border-bottom: 1px solid rgba(255,255,255,.1); color: #fff; font-weight: 600; font-size: 18px; }
.chh-mlink .ch-ico { width: 20px; height: 20px; color: var(--ch-orange); }
.chh-panel-btns { display: flex; flex-direction: column; gap: 10px; }
.chh-talk { display: flex; flex-direction: column; gap: 12px; }
.ch .chh-talk a { display: flex; align-items: center; gap: 12px; color: #fff; font-weight: 600; }
.chh-talk .ch-ico { width: 20px; height: 20px; color: var(--ch-orange); }
body:has(.chh-menu[open]) { overflow: hidden; }

.ch.chf { padding: 0; background: var(--ch-ink); color: #fff; }
.chf-grid { max-width: 1248px; margin: 0 auto; padding: 64px 24px 56px; display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr 1.3fr; gap: 40px 40px; }
.chh-word span { white-space: nowrap; }
.chf-brand { display: flex; flex-direction: column; gap: 20px; }
.chf-mark { width: 50px; height: 57px; }
.chf-mark img { height: 82px; margin: -2px 0 0 -26px; }
.chf-brand .chh-word b { font-size: 22px; letter-spacing: -.4px; }
.chf-brand .chh-word span { font-size: 11px; }
.chf p { margin: 0; font-size: 15px; line-height: 1.5; color: #b7c1bf; }
.chf-social { display: flex; gap: 10px; }
.ch .chf-social a { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); display: flex; align-items: center; justify-content: center; color: #fff; }
.ch .chf-social a:hover { background: rgba(255,255,255,.1); color: #fff; }
.chf-social .ch-ico { width: 20px; height: 20px; }
.chf-col { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.chf-head { font-weight: 700; font-size: 17px; line-height: 1.3; margin-bottom: 6px; color: #fff; }
.ch .chf-col a, .chf-line { color: #b7c1bf; font-size: 15px; line-height: 1.3; }
.ch .chf-col a:hover { color: var(--ch-orange); }
.ch .chf-col a.chf-all { color: var(--ch-orange); font-weight: 700; }
.chf-line { display: flex; align-items: flex-start; gap: 12px; line-height: 1.5; }
.chf-line .ch-ico { width: 20px; height: 20px; color: var(--ch-orange); margin-top: 1px; }
.ch .chf-col a.chf-phone { color: #fff; font-weight: 700; }
.ch .chf-contact a.ch-btn-orange { color: var(--ch-green); margin-top: 4px; }
.ch .chf-contact a.ch-btn-orange:hover { color: var(--ch-green); }
.chf-legal { padding: 24px max(24px, calc((100% - 1200px) / 2)); border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px 28px; font-size: 14px; color: #b7c1bf; }
.chf-legal nav { display: flex; flex-wrap: wrap; gap: 8px 28px; }
.ch .chf-legal a { color: #b7c1bf; }
.ch .chf-legal a:hover { color: var(--ch-orange); }

@media (max-width: 1199px) {
    .chh-nav { gap: 22px; }
    .chh-phone span { display: none; }
    .chf-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .chf-brand { grid-column: 1 / -1; max-width: 560px; }
}

@media (max-width: 991px) {
    .chh-bar { height: 76px; padding: 0 20px; gap: 12px; }
    .chh-nav, .chh-actions { display: none; }
    .ch .chh-menu { display: block; }
    .ch .chh-call { display: flex; margin-left: auto; }
    .chh-mark { width: 34px; height: 39px; }
    .chh-mark img { height: 56px; margin: -2px 0 0 -18px; }
    .chh-word b { font-size: 16px; }
    .chh-word span { font-size: 8.5px; letter-spacing: .1em; }
}

@media (max-width: 767px) {
    .chh-bar { padding: 0 16px; }
    .chf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 48px 16px 40px; gap: 32px 24px; }
    .chf-contact { grid-column: 1 / -1; }
    .chf-legal { padding: 20px 16px 88px; flex-direction: column; align-items: flex-start; }
}
