/* CHARME 2.0 / 2026-10-29 — visual and responsive refinement only.
   Loaded after public theme sheets. No changes to membership, media or payment logic. */
:root{
  --cm-ui-ink:#193c32;--cm-ui-text:#31473f;--cm-ui-muted:#53665e;
  --cm-ui-line:#dce5dd;--cm-ui-soft:#f7f8f4;--cm-ui-paper:#fff;
  --cm-ui-accent:#a78248;--cm-ui-green:#164b3a;
  --cm-ui-radius:18px;--cm-ui-shadow:0 10px 34px rgba(20,55,42,.065);
}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body:is(.homepage,.subpage){color:var(--cm-ui-text);overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%;font-size:16px;line-height:1.7}
body:is(.homepage,.subpage) *,body:is(.homepage,.subpage) *::before,body:is(.homepage,.subpage) *::after{box-sizing:border-box}
body:is(.homepage,.subpage) :is(p,li,dd,dt,figcaption,small,.cm20-muted,.cm20-help){overflow-wrap:break-word;word-break:keep-all}
body:is(.homepage,.subpage) :is(h1,h2,h3,h4){color:var(--cm-ui-ink);overflow-wrap:break-word;word-break:keep-all;line-height:1.35;text-wrap:balance}
body:is(.homepage,.subpage) :is(p,li){line-height:1.75}
body:is(.homepage,.subpage) :is(img,video,svg){max-width:100%}
body:is(.homepage,.subpage) img{height:auto}
body:is(.homepage,.subpage) :is(iframe,embed,object){max-width:100%}
body:is(.homepage,.subpage) :is(.wrap,.cm20-wrap,.ls-wrap){width:min(100% - 44px,1240px);max-width:1240px;margin-inline:auto;min-width:0}
body:is(.homepage,.subpage) :is(.wrap,.cm20-wrap,.ls-wrap) > *{min-width:0}
body:is(.homepage,.subpage) :is(.section,.company-section,.cm20-main){scroll-margin-top:92px}
body:is(.homepage,.subpage) a:not(.btn):focus-visible,body:is(.homepage,.subpage) button:focus-visible,body:is(.homepage,.subpage) :is(input,select,textarea):focus-visible{outline:3px solid #b8863c!important;outline-offset:3px}
body:is(.homepage,.subpage) .skip-link:focus{position:fixed;z-index:99999;top:10px;left:10px;padding:12px 18px;background:#fff;color:#173d30;border:2px solid #173d30;border-radius:9px}
/* Clear primary navigation while retaining the existing menu scripts. */
body:is(.homepage,.subpage) .top .wrap{display:flex;align-items:center;gap:clamp(12px,1.5vw,24px);min-height:78px}
body:is(.homepage,.subpage) .top .nav{min-width:0;gap:clamp(10px,1.3vw,24px)}
body:is(.homepage,.subpage) .top .nav a{font-size:clamp(12px,.9vw,15px);font-weight:700;white-space:nowrap;line-height:1.55}
body:is(.homepage,.subpage) .top :is(.header-cta,.menu-btn,.v12-header-search){flex-shrink:0}
body:is(.homepage,.subpage) .top .logo{flex-shrink:0}
body:is(.homepage,.subpage) .v12-logo-text{min-width:0}
body:is(.homepage,.subpage) .top .nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:#b48e54;text-decoration-thickness:2px;text-underline-offset:7px}
body:is(.homepage,.subpage) .drawer-panel{max-width:min(88vw,390px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
body:is(.homepage,.subpage) .drawer-panel nav a{min-height:47px;display:flex;align-items:center;word-break:keep-all}
/* Editorial hierarchy and readable content sections. */
body:is(.homepage,.subpage) .cm20-main{padding-top:clamp(78px,8vw,124px);padding-bottom:clamp(50px,7vw,96px)}
body:is(.homepage,.subpage) .cm20-title{margin-bottom:clamp(25px,4vw,48px)}
body:is(.homepage,.subpage) .cm20-title h1{font-size:clamp(30px,4.1vw,54px);letter-spacing:-.035em;margin-block:10px 14px}
body:is(.homepage,.subpage) .cm20-title p{font-size:clamp(15px,1.3vw,18px);max-width:74ch;line-height:1.85;color:#52665b}
body:is(.homepage,.subpage) .cm20-crumb{font-size:13px;line-height:1.5}
body:is(.homepage,.subpage) .cm20-main h2{font-size:clamp(22px,2.5vw,31px)}
body:is(.homepage,.subpage) .cm20-main h3{font-size:clamp(18px,1.8vw,23px)}
body:is(.homepage,.subpage) :is(.cm20-card,.cm20-d-panel,.cm20-ir-panel,.ls-panel,.ls-course,.cm20-s10-card,.company-feature-card,.app-settings-card){min-width:0;border-color:var(--cm-ui-line);box-shadow:var(--cm-ui-shadow)}
body:is(.homepage,.subpage) :is(.cm20-card,.cm20-d-panel,.cm20-ir-panel,.ls-panel){border-radius:var(--cm-ui-radius)}
body:is(.homepage,.subpage) :is(.cm20-grid,.cm20-cards,.cm20-d-grid,.ls-grid,.cm20-s10-grid,.cm20-bnf__grid){min-width:0;gap:clamp(12px,1.8vw,23px)}
body:is(.homepage,.subpage) :is(.cm20-grid,.cm20-cards,.cm20-d-grid,.ls-grid,.cm20-s10-grid,.cm20-bnf__grid) > *{min-width:0;max-width:100%}
body:is(.homepage,.subpage) :is(.cm20-card,.cm20-d-panel,.cm20-ir-panel) :is(p,li,small){font-size:max(14px,1em);line-height:1.75}
/* Universal form layout; explicit check-box exclusions avoid the prior broken sign-up UI. */
body:is(.homepage,.subpage) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea){max-width:100%;min-width:0;font:inherit;color:#173b31}
body:is(.homepage,.subpage) :is(.cm20-main,.form,.cm20-ir-form,.cm20-d-form) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea){border-radius:11px;min-height:46px;border:1px solid #c8d6cd;background:#fff;box-sizing:border-box}
body:is(.homepage,.subpage) :is(.cm20-main,.form,.cm20-ir-form,.cm20-d-form) textarea{min-height:110px;resize:vertical;line-height:1.65}
body:is(.homepage,.subpage) :is(input[type="checkbox"],input[type="radio"]){width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important;max-width:19px!important;max-height:19px!important;display:inline-block!important;flex:0 0 19px!important;vertical-align:middle;margin:0;accent-color:#14533d;appearance:auto;-webkit-appearance:auto}
body:is(.homepage,.subpage) :is(.cm20-check,.cm20-org-consent label,.cm20-learner-check,.cm20-d-consent,.consent){display:flex;align-items:flex-start;justify-content:flex-start;flex-wrap:nowrap;gap:11px;min-width:0;max-width:100%;height:auto;line-height:1.6;font-size:15px;white-space:normal}
body:is(.homepage,.subpage) :is(.cm20-check,.cm20-org-consent label,.cm20-learner-check,.cm20-d-consent,.consent) > input[type="checkbox"]{margin-top:3px}
body:is(.homepage,.subpage) :is(.cm20-check,.cm20-org-consent label,.cm20-learner-check,.cm20-d-consent,.consent) > span{flex:1;min-width:0;overflow-wrap:break-word;white-space:normal}
body:is(.homepage,.subpage) :is(fieldset,.cm20-org-consent){min-width:0;max-width:100%}
body:is(.homepage,.subpage) :is(.cm20-button,.btn,.ls-btn,button[type="submit"],input[type="submit"]){min-height:44px;max-width:100%;font-weight:700;line-height:1.5;white-space:normal;word-break:keep-all;touch-action:manipulation}
body:is(.homepage,.subpage) :is(.cm20-button,.btn,.ls-btn,button[type="submit"]):not(:disabled){transition:filter .17s ease,transform .17s ease}
body:is(.homepage,.subpage) :is(.cm20-button,.btn,.ls-btn,button[type="submit"]):not(:disabled):hover{filter:brightness(1.06)}
body:is(.homepage,.subpage) :is(.cm20-button,.btn,.ls-btn,button[type="submit"]):disabled{cursor:not-allowed;opacity:.65}
body:is(.homepage,.subpage) :is(.pair,.cm20-ir-photo-row,.cm20-d-flex,.cm20-flex,.cm20-actions,.hero-actions){min-width:0}
body:is(.homepage,.subpage) .cm20-ir :is(.cm20-ir-steps,.cm20-ir-panel,.cm20-ir-form){max-width:100%}
body:is(.homepage,.subpage) .cm20-ir .cm20-ir-step{min-width:0}
body:is(.homepage,.subpage) :is(.cm20-s10-subnav,.ls-tabs,.cm20-tabs){display:flex;flex-wrap:wrap;max-width:100%;gap:8px}
body:is(.homepage,.subpage) :is(.cm20-s10-subnav,.ls-tabs,.cm20-tabs) a{min-height:42px;display:inline-flex;align-items:center}
/* Restrict oversized visual blocks without distorting video playback. */
body:is(.homepage,.subpage) :is(.ls-course,.cm20-card,.cm20-d-panel) img{object-position:center}
body:is(.homepage,.subpage) .hero video,body:is(.homepage,.subpage) .cm20-hero-video{width:100%;height:100%;object-fit:cover}
body:is(.homepage,.subpage) :is(.company-story-grid,.service-hero-grid,.cm-sc-intro-grid)>*{min-width:0}
body:is(.homepage,.subpage) :is(.cm-sc-categories,.cm-sc-fields,.cm-sc-topic-list){max-width:100%}
body:is(.homepage,.subpage) :is(.cm-sc-topic,.cm-sc-field){min-width:0}
/* Long status, policy, contract and instructor tables stay on screen. */
body:is(.homepage,.subpage) .cm20-ui-table-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border-radius:12px;scrollbar-width:thin;margin-block:12px 22px}
body:is(.homepage,.subpage) .cm20-ui-table-scroll > table{width:100%;min-width:600px;margin:0;max-width:none}
body:is(.homepage,.subpage) :is(pre,code,.cm20-admin-pre){max-width:100%;overflow-wrap:anywhere}
body:is(.homepage,.subpage) pre{overflow:auto}
body:is(.homepage,.subpage) .site-footer{padding-bottom:max(20px,env(safe-area-inset-bottom,0px))}
body:is(.homepage,.subpage) .footer-main,body:is(.homepage,.subpage) .footer-bottom{gap:22px}
body:is(.homepage,.subpage) .footer-links{display:flex;flex-wrap:wrap;gap:12px 22px}
body:is(.homepage,.subpage) :is(.footer-tagline,.footer-bottom,.footer-ecosystem){line-height:1.7}
body:is(.homepage,.subpage) .float{z-index:80;bottom:max(18px,env(safe-area-inset-bottom,0px) + 12px)}
/* Tablet navigation and two-column readability. */
@media(max-width:1120px){
 body:is(.homepage,.subpage) .top .wrap{min-height:70px}
 body:is(.homepage,.subpage) .top .nav{display:none!important}
 body:is(.homepage,.subpage) .top .menu-btn{display:flex!important;align-items:center;justify-content:center;min-width:46px;min-height:44px;margin-left:auto}
 body:is(.homepage,.subpage) .top .v12-header-search{margin-left:auto}
 body:is(.homepage,.subpage) .top .header-cta{margin-left:0}
 body:is(.homepage,.subpage) :is(.cm20-main,.subpage-hero){padding-top:clamp(83px,9vw,110px)}
 body:is(.homepage,.subpage) :is(.cm20-ir-steps,.cm20-bnf__grid,.cm20-d-grid){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 html{scroll-padding-top:74px}
 body:is(.homepage,.subpage){font-size:15.5px}
 body:is(.homepage,.subpage) :is(.wrap,.cm20-wrap,.ls-wrap){width:calc(100% - 30px)}
 body:is(.homepage,.subpage) .top .wrap{min-height:64px;gap:10px}
 body:is(.homepage,.subpage) .top .v12-logo-mark{font-size:24px}
 body:is(.homepage,.subpage) .top .logo-word{font-size:24px}
 body:is(.homepage,.subpage) .top .logo-english{font-size:8px;letter-spacing:.08em}
 body:is(.homepage,.subpage) .top .header-cta{display:none!important}
 body:is(.homepage,.subpage) .top .v12-header-search{width:36px;min-width:36px}
 body:is(.homepage,.subpage) .cm20-main{padding-top:88px;padding-bottom:54px}
 body:is(.homepage,.subpage) .cm20-title h1{font-size:clamp(29px,7vw,39px)}
 body:is(.homepage,.subpage) .cm20-title p{font-size:15px;line-height:1.8}
 body:is(.homepage,.subpage) :is(.cm20-grid,.cm20-cards,.cm20-d-grid,.ls-grid,.cm20-s10-grid,.cm20-bnf__grid,.cm20-ir-steps,.cm20-ir-photo-row,.cm20-d-flex,.pair,.cm20-flex,.cm20-actions,.service-hero-grid,.cm-sc-intro-grid){grid-template-columns:minmax(0,1fr);max-width:100%}
 body:is(.homepage,.subpage) :is(.cm20-card,.cm20-d-panel,.cm20-ir-panel,.ls-panel,.ls-course){padding:clamp(17px,4vw,25px)}
 body:is(.homepage,.subpage) :is(.cm20-ir-steps,.cm20-d-grid,.cm20-bnf__grid){display:grid;grid-template-columns:1fr!important}
 body:is(.homepage,.subpage) .cm20-ir .cm20-ir-step{width:100%}
 body:is(.homepage,.subpage) :is(.cm20-actions,.hero-actions){display:flex;flex-wrap:wrap;gap:10px}
 body:is(.homepage,.subpage) :is(.cm20-actions,.hero-actions) > *{min-width:0;flex:1 1 175px}
 body:is(.homepage,.subpage) .cm20-ui-table-scroll > table{min-width:520px}
 body:is(.homepage,.subpage) .footer-main,body:is(.homepage,.subpage) .footer-bottom{flex-wrap:wrap}
 body:is(.homepage,.subpage) .site-footer{padding-bottom:80px}
 body:is(.homepage,.subpage) .float{left:15px;right:15px;width:auto;max-width:none;text-align:center;bottom:max(12px,env(safe-area-inset-bottom,0px) + 8px);border-radius:14px}
 body:is(.homepage,.subpage) .modal .sheet{width:min(100vw - 20px,520px);max-height:calc(100dvh - 20px);overflow-y:auto}
}
@media(max-width:410px){
 body:is(.homepage,.subpage) :is(.wrap,.cm20-wrap,.ls-wrap){width:calc(100% - 24px)}
 body:is(.homepage,.subpage) .top .v12-header-search{display:none!important}
 body:is(.homepage,.subpage) :is(.cm20-card,.cm20-d-panel,.cm20-ir-panel){padding:16px}
 body:is(.homepage,.subpage) .cm20-main h2{font-size:21px}
 body:is(.homepage,.subpage) .cm20-ui-table-scroll > table{min-width:450px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body:is(.homepage,.subpage) :is(.cm20-button,.btn,.ls-btn){transition:none!important}}
@media print{
 body:is(.homepage,.subpage) :is(.top,.drawer,.float,.back-top,.site-footer,.page-progress){display:none!important}
 body:is(.homepage,.subpage) .cm20-main{padding:0!important}
 body:is(.homepage,.subpage) .wrap{max-width:none;width:100%}
 body:is(.homepage,.subpage) :is(.cm20-card,.cm20-d-panel){box-shadow:none;break-inside:avoid}
 body:is(.homepage,.subpage) .cm20-ui-table-scroll{overflow:visible}
}
/* Homepage service panels and final eight-step on-site journey. */
body.homepage :is(.cm-home-education-grid,.cm20-online-panel-grid,.cm20-onsite-steps,.cm20-onsite-roadmap,.cm20-ai-shell),
body.subpage :is(.company-hero-grid,.company-story-grid,.business-grid,.connection-grid,.service-hero-grid,.cm-sc-intro-grid){min-width:0;max-width:100%}
body.homepage :is(.cm-home-education-grid,.cm20-online-panel-grid,.cm20-onsite-steps) > *,
body.subpage :is(.company-hero-grid,.company-story-grid,.business-grid,.connection-grid) > *{min-width:0;max-width:100%;overflow-wrap:break-word}
body.homepage .cm20-onsite-steps :is(p,small){font-size:max(14px,.94rem);line-height:1.75;color:#4e6258;word-break:keep-all}
body.homepage .cm20-onsite-steps :is(h3,strong){font-size:clamp(16px,1.2vw,19px);line-height:1.5}
body.homepage .cm20-onsite-roadmap :is(p,.cm20-onsite-end){line-height:1.8}
body.homepage :is(.cm-home-education-head,.cm20-focus-heading,.cm20-onsite-roadmap-title) :is(h2,h3){font-size:clamp(24px,3vw,39px)}
body.subpage :is(.business-grid,.connection-grid,.cm-sc-categories) :is(p,small){font-size:clamp(14px,1.05vw,16px);line-height:1.8}
body.subpage :is(.company-page,.services-page) .eyebrow{font-size:max(12px,.78rem);letter-spacing:.08em}
body.subpage .company-directory-note{font-size:14px;line-height:1.9}
@media(max-width:1050px){
 body.homepage :is(.cm-home-education-grid,.cm20-online-panel-grid,.cm20-onsite-steps){grid-template-columns:repeat(2,minmax(0,1fr))}
 body.subpage :is(.company-hero-grid,.company-story-grid,.business-grid,.connection-grid,.service-hero-grid,.cm-sc-intro-grid){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 body.homepage :is(.cm-home-education-grid,.cm20-online-panel-grid,.cm20-onsite-steps){grid-template-columns:minmax(0,1fr)}
 body.subpage :is(.company-hero-grid,.company-story-grid,.business-grid,.connection-grid,.service-hero-grid,.cm-sc-intro-grid){grid-template-columns:minmax(0,1fr)}
 body.homepage :is(.cm-home-education,.cm20-online-focus,.cm20-onsite-focus,.cm20-ai-promo){padding-block:clamp(35px,8vw,62px)}
 body.homepage .cm20-onsite-steps > *{min-width:0}
 body.homepage .cm20-onsite-steps :is(p,small){font-size:14.5px}
 body.subpage .business-grid > *{padding:clamp(17px,4vw,25px)}
}


/* FINAL READABILITY PASS — public & member pages, 2026-10-29.
   Structural/readability only: no layout refactor of interactive players, authentication or payment. */
body:is(.homepage,.subpage){--cm-ui-ink:#18372d;--cm-ui-text:#233c32;--cm-ui-muted:#465e52;--cm-ui-line:#d7e2d9;--cm-ui-green:#145039;--cm-ui-shadow:0 12px 38px rgba(21,54,40,.07);font-size:16px;line-height:1.75}
body:is(.homepage,.subpage) :is(p,li,dd,dt,blockquote){color:inherit;line-height:1.8}
body:is(.homepage,.subpage) :is(.cm20-muted,.cm20-help,.cm20-caption,.muted,small){color:#4c6156;line-height:1.65}
body:is(.homepage,.subpage) :is(h1,h2,h3){letter-spacing:-.034em;line-height:1.34}
body:is(.homepage,.subpage) .cm20-main h1{font-size:clamp(31px,3.5vw,50px)}
body:is(.homepage,.subpage) .cm20-main h2{font-size:clamp(23px,2.4vw,31px)}
body:is(.homepage,.subpage) .cm20-main h3{font-size:clamp(19px,1.65vw,23px)}
body:is(.homepage,.subpage) :is(.cm20-card,.cm20-d-panel,.cm20-ir-panel,.company-feature-card,.ls-panel,.cm20-s10-card){border-radius:clamp(14px,1.6vw,20px);border-color:var(--cm-ui-line);box-shadow:var(--cm-ui-shadow)}
body:is(.homepage,.subpage) :is(.cm20-card,.cm20-d-panel,.cm20-ir-panel,.company-feature-card,.ls-panel,.cm20-s10-card) :is(p,li){font-size:clamp(15px,1.05vw,17px);line-height:1.78}
body:is(.homepage,.subpage) :is(.cm20-card,.cm20-d-panel,.cm20-ir-panel,.company-feature-card,.ls-panel) :is(small,.muted,.cm20-muted){font-size:clamp(13px,.88vw,15px)}
body:is(.homepage,.subpage) :is(.cm20-main,.cm20-ir,.cm20-d-panel,.ls-panel,.cm20-card) label{line-height:1.6;word-break:keep-all}
body:is(.homepage,.subpage) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){min-height:46px;line-height:1.55}
body:is(.homepage,.subpage) :is(.cm20-main,.cm20-ir,.cm20-d-form) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){font-size:16px}
body:is(.homepage,.subpage) :is(input[type=checkbox],input[type=radio]){height:20px!important;width:20px!important;min-height:20px!important;min-width:20px!important;max-height:20px!important;max-width:20px!important;flex:0 0 20px!important}
body:is(.homepage,.subpage) :is(.cm20-check,.cm20-org-consent label,.cm20-learner-check,.consent){font-size:15px;gap:11px;align-items:flex-start;min-width:0;overflow-wrap:anywhere}
body:is(.homepage,.subpage) :is(.cm20-form-grid,.cm20-d-grid,.cm20-grid,.cm20-ir-grid,.company-story-grid,.service-hero-grid)>*{min-width:0}
body:is(.homepage,.subpage) :is(.cm20-main,.cm20-ir,.cm20-d-panel) :is(button,.btn,a.btn,input[type=submit]){min-height:46px;line-height:1.5}
body:is(.homepage,.subpage) :is(.cm20-ui-table-scroll,.cm20-table-wrap,.cm20-tables,.table-scroll){overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
body:is(.homepage,.subpage) :is(.cm20-ui-table-scroll,.cm20-table-wrap,.table-scroll) :is(th,td){padding:12px 14px;line-height:1.6}
body:is(.homepage,.subpage) :is(.cm20-hero,.cm20-s10-hero,.cm20-auth-hero) p{line-height:1.8}
body:is(.homepage,.subpage) a:not(.btn){text-underline-offset:3px}
@media(max-width:1024px){body:is(.homepage,.subpage) :is(.company-story-grid,.service-hero-grid){gap:20px}}
@media(max-width:760px){
 body:is(.homepage,.subpage){font-size:16px;line-height:1.7}
 body:is(.homepage,.subpage) :is(.cm20-card,.cm20-d-panel,.cm20-ir-panel,.company-feature-card,.ls-panel){padding:clamp(16px,4.3vw,22px)}
 body:is(.homepage,.subpage) :is(.cm20-main,.cm20-ir) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){width:100%;max-width:100%;min-width:0}
 body:is(.homepage,.subpage) :is(.cm20-main,.cm20-ir) :is(button,.btn,input[type=submit]){min-height:46px}
 body:is(.homepage,.subpage) :is(.cm20-form-grid,.cm20-ir-grid,.cm20-d-grid,.company-story-grid,.service-hero-grid){grid-template-columns:minmax(0,1fr)}
 body:is(.homepage,.subpage) .cm20-ui-table-scroll{margin-inline:0}
 body:is(.homepage,.subpage) :is(.cm20-title h1,.cm20-main h1){line-height:1.25}
}
@media(max-width:380px){body:is(.homepage,.subpage) :is(.wrap,.cm20-wrap,.ls-wrap){width:calc(100% - 24px)}body:is(.homepage,.subpage) :is(.cm20-main,.cm20-ir){padding-inline:0}}
@media(prefers-reduced-motion:reduce){body:is(.homepage,.subpage) *{scroll-behavior:auto!important}}
