/* EC Theme 0.2.4 — canonical public content pages. */
.ec-public-hero{padding:72px 0 58px;background:linear-gradient(180deg,#F8FAFB 0%,var(--ec-bg) 100%);border-bottom:1px solid var(--ec-line)}
.ec-public-hero--dark{position:relative;overflow:hidden;background:radial-gradient(circle at 88% 18%,rgba(205,162,44,.16),transparent 29%),linear-gradient(135deg,var(--ec-blue-950),var(--ec-blue-800));color:#fff;border:0}
.ec-public-hero--dark:after{content:"";position:absolute;right:-14%;bottom:-65%;width:620px;height:620px;border:1px solid rgba(226,204,141,.16);border-radius:50%}
.ec-public-hero__inner{position:relative;z-index:1;max-width:920px}
.ec-public-hero .ec-kicker{margin-bottom:12px}.ec-public-hero--dark .ec-kicker{color:var(--ec-gold-300)}
.ec-public-hero h1{font-size:clamp(2.8rem,5vw,4.85rem);letter-spacing:-.025em;margin:.05em 0 .2em}
.ec-public-hero--dark h1{color:#fff}.ec-public-hero p{max-width:820px;margin:0;color:var(--ec-muted);font-size:1.2rem;line-height:1.65}
.ec-public-hero--dark p{color:#D8E5EB}.ec-public-hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.ec-public-section{padding:76px 0}.ec-public-section--ivory{background:var(--ec-ivory)}.ec-public-section--tint{background:var(--ec-bg)}.ec-public-section--dark{background:var(--ec-blue-950);color:#D8E5EB}.ec-public-section--dark h2,.ec-public-section--dark h3{color:#fff}.ec-public-section--dark .ec-kicker{color:var(--ec-gold-300)}
.ec-public-intro{max-width:820px}.ec-public-intro h2{font-size:clamp(2.1rem,3.8vw,3.35rem);margin:.18em 0 .3em}.ec-public-intro p{font-size:1.125rem;color:var(--ec-muted)}.ec-public-section--dark .ec-public-intro p{color:#BFD0DA}
.ec-public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:30px}.ec-public-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ec-public-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ec-public-card{min-width:0;background:#fff;border:1px solid var(--ec-line);border-radius:18px;padding:26px;box-shadow:0 8px 28px rgba(2,9,46,.045)}.ec-public-card--accent{position:relative;overflow:hidden}.ec-public-card--accent:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--ec-card-accent,var(--ec-blue-700))}.ec-public-card .ec-icon{color:var(--ec-card-accent,var(--ec-blue-700));font-size:1.35rem}.ec-public-card h2,.ec-public-card h3{margin:.35em 0 .4em}.ec-public-card h3{font-size:1.55rem}.ec-public-card p{margin:.2em 0;color:var(--ec-muted)}
.ec-public-card__number{display:inline-grid;place-items:center;min-width:38px;height:38px;padding:0 10px;border-radius:10px;background:var(--ec-gold-100);color:var(--ec-warning);font-weight:700;font-size:.875rem}.ec-public-card__meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.ec-public-card__meta span{font-size:.82rem;color:var(--ec-muted);background:#F4F7F9;border-radius:999px;padding:5px 9px}
.ec-step-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:30px}.ec-step-card{position:relative;background:#fff;border:1px solid var(--ec-line);border-radius:16px;padding:22px;min-height:150px}.ec-step-card strong{display:block;font-family:var(--ec-serif);font-size:1.35rem;line-height:1.2;color:var(--ec-blue-950);margin-top:18px}.ec-step-card span{color:var(--ec-muted);font-size:.88rem}.ec-step-card__n{display:inline-block;color:var(--ec-gold-600)!important;font-weight:700!important;letter-spacing:.08em}
.ec-route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:30px}.ec-route-card{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:18px;align-items:center;text-decoration:none;background:#fff;border:1px solid var(--ec-line);border-radius:18px;padding:22px 24px;box-shadow:var(--ec-shadow-sm);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.ec-route-card:hover{transform:translateY(-2px);box-shadow:0 17px 38px rgba(2,9,46,.08);border-color:#B9CAD4}.ec-route-card__icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--ec-blue-100);color:var(--ec-blue-700)}.ec-route-card h3{font-size:1.45rem;margin:0 0 4px}.ec-route-card p{margin:0;color:var(--ec-muted)}.ec-route-card__arrow{color:var(--ec-blue-700);font-size:1.15rem}
.ec-principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--ec-line);border:1px solid var(--ec-line);border-radius:18px;overflow:hidden;margin-top:30px}.ec-principles div{background:#fff;padding:22px 24px;color:var(--ec-blue-950);font-family:var(--ec-serif);font-size:1.24rem}
.ec-flow{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--ec-line);border:1px solid var(--ec-line);border-radius:18px;overflow:hidden}.ec-flow li{background:#fff;padding:22px 18px;min-height:128px}.ec-flow strong{display:block;font-family:var(--ec-serif);font-size:1.2rem;color:var(--ec-blue-950)}.ec-flow span{display:block;margin-top:8px;color:var(--ec-muted);font-size:.9rem}
.ec-curriculum-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:30px}.ec-curriculum-group{background:#fff;border:1px solid var(--ec-line);border-radius:18px;padding:26px}.ec-curriculum-group h3{font-size:1.65rem;margin:.25em 0}.ec-curriculum-group>p{color:var(--ec-muted)}.ec-curriculum-items{list-style:none;padding:0;margin:18px 0 0;border-top:1px solid var(--ec-line)}.ec-curriculum-items li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--ec-line)}.ec-curriculum-items a{font-weight:650;text-decoration:none}.ec-curriculum-items small{color:var(--ec-muted);white-space:nowrap}.ec-curriculum-items .is-live small{color:var(--ec-success)}
.ec-feature-band{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:30px;align-items:center;background:linear-gradient(135deg,var(--ec-blue-950),#073D65);color:#fff;border-radius:24px;padding:38px;margin-top:32px;box-shadow:var(--ec-shadow-md)}.ec-feature-band h2,.ec-feature-band h3{color:#fff}.ec-feature-band p{color:#CADAE3}.ec-feature-band__actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.ec-editor-note{margin-top:30px;padding:24px;background:#fff;border:1px solid var(--ec-line);border-radius:16px}.ec-editor-note>:first-child{margin-top:0}.ec-editor-note>:last-child{margin-bottom:0}
.ec-instructor-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:30px}.ec-instructor-profile{background:#fff;border:1px solid var(--ec-line);border-radius:18px;overflow:hidden;box-shadow:var(--ec-shadow-sm)}.ec-instructor-profile__photo{aspect-ratio:4/3;background:#EEF3F6;display:grid;place-items:center;overflow:hidden}.ec-instructor-profile__photo img{width:100%;height:100%;object-fit:cover}.ec-instructor-profile__body{padding:22px}.ec-instructor-profile__body h2,.ec-instructor-profile__body h3{font-size:1.55rem;margin:0 0 8px}.ec-instructor-profile__body p{color:var(--ec-muted);margin:0}
.ec-library-lines{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:28px 0}.ec-library-line{background:#fff;border:1px solid var(--ec-line);border-radius:16px;padding:22px}.ec-library-line h3{font-size:1.35rem;margin:.35em 0}.ec-library-line p{color:var(--ec-muted);margin:0}
@media(max-width:1050px){.ec-public-grid--4,.ec-step-grid{grid-template-columns:repeat(3,1fr)}.ec-flow{grid-template-columns:repeat(3,1fr)}.ec-instructor-directory{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.ec-public-grid,.ec-public-grid--2,.ec-public-grid--4,.ec-route-grid,.ec-curriculum-groups,.ec-instructor-directory,.ec-library-lines{grid-template-columns:1fr}.ec-step-grid{grid-template-columns:repeat(2,1fr)}.ec-feature-band{grid-template-columns:1fr}.ec-feature-band__actions{justify-content:flex-start}.ec-route-card{grid-template-columns:48px minmax(0,1fr)}.ec-route-card__arrow{display:none}.ec-principles{grid-template-columns:1fr}.ec-flow{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.ec-public-hero{padding:54px 0 44px}.ec-public-hero h1{font-size:clamp(2.5rem,13vw,3.6rem)}.ec-public-section{padding:58px 0}.ec-step-grid,.ec-flow{grid-template-columns:1fr}.ec-public-card{padding:22px}.ec-feature-band{padding:28px 22px}.ec-public-hero__actions .ec-button{width:100%}.ec-curriculum-items li{align-items:flex-start;flex-direction:column}.ec-curriculum-items small{white-space:normal}}

/* 0.3.0 — chroma intensity system. Color guides hierarchy without replacing content imagery. */
.ec-chroma{--ec-chroma-accent:var(--ec-blue-700);background-color:#fff}
.ec-chroma--soft{background:linear-gradient(145deg,color-mix(in srgb,var(--ec-chroma-accent) 5%,white),color-mix(in srgb,var(--ec-chroma-accent) 18%,white));border-color:color-mix(in srgb,var(--ec-chroma-accent) 16%,var(--ec-line))}
.ec-chroma--medium{background:linear-gradient(145deg,color-mix(in srgb,var(--ec-chroma-accent) 12%,white),color-mix(in srgb,var(--ec-chroma-accent) 48%,white));border-color:color-mix(in srgb,var(--ec-chroma-accent) 24%,var(--ec-line))}
.ec-chroma--hero{background:linear-gradient(145deg,color-mix(in srgb,var(--ec-chroma-accent) 28%,white),color-mix(in srgb,var(--ec-chroma-accent) 68%,white));border-color:color-mix(in srgb,var(--ec-chroma-accent) 38%,var(--ec-line))}
.ec-public-card--accent{background:linear-gradient(145deg,color-mix(in srgb,var(--ec-card-accent,var(--ec-blue-700)) 5%,white),color-mix(in srgb,var(--ec-card-accent,var(--ec-blue-700)) 20%,white));border-color:color-mix(in srgb,var(--ec-card-accent,var(--ec-blue-700)) 18%,var(--ec-line))}
.ec-public-card--accent .ec-kicker,.ec-public-card--accent .ec-text-link{color:color-mix(in srgb,var(--ec-card-accent,var(--ec-blue-700)) 88%,#02092e)}
.ec-step-card{background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--ec-gold-600) 7%,white))}.ec-step-card:nth-child(3n+2){background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--ec-blue-700) 7%,white))}.ec-step-card:nth-child(3n){background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--ec-teal-700) 7%,white))}
.ec-route-card{--ec-chroma-accent:var(--ec-blue-700);background:linear-gradient(145deg,color-mix(in srgb,var(--ec-chroma-accent) 4%,white),color-mix(in srgb,var(--ec-chroma-accent) 14%,white));border-color:color-mix(in srgb,var(--ec-chroma-accent) 16%,var(--ec-line))}.ec-route-card__icon{background:color-mix(in srgb,var(--ec-chroma-accent) 12%,white);color:var(--ec-chroma-accent)}.ec-route-card__arrow{color:var(--ec-chroma-accent)}
.ec-public-card--accent.ec-chroma--medium{background:linear-gradient(145deg,color-mix(in srgb,var(--ec-card-accent,var(--ec-blue-700)) 10%,white),color-mix(in srgb,var(--ec-card-accent,var(--ec-blue-700)) 38%,white));border-color:color-mix(in srgb,var(--ec-card-accent,var(--ec-blue-700)) 25%,var(--ec-line))}
