/* Usa la InteligencIA: accessible editorial catalog. */
:root{--bg:#f6f8fc;--paper:#fff;--ink:#17192d;--muted:#535d73;--line:#dce2ec;--soft:#edf2f8;--accent:#ad1765;--action-ink:#fff;--cyan:#12667a;--selected:#d9f3f7;--selected-ink:#104f60;--header-bg:#f6f8cf00;--cert-bg:#e2f3f4;--cert-ink:#155a65;--paid-bg:#f9e6f0;--paid-ink:#8c2458;--glow:#dbeff6;--pink-glow:#f3deed;--shadow:0 5px 20px #26334f06;--header-height:86px;color-scheme:light}
:root[data-theme="dark"]{--bg:#101421;--paper:#1a2234;--ink:#f2f5fc;--muted:#c0cadc;--line:#354159;--soft:#243149;--accent:#f49bc9;--action-ink:#291224;--cyan:#87dfed;--selected:#87dfed;--selected-ink:#112b37;--cert-bg:#193f48;--cert-ink:#b3edf2;--paid-bg:#422c40;--paid-ink:#ffc3e1;--glow:#183747;--pink-glow:#352439;--shadow:0 5px 20px #00000016;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:160px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 'Segoe UI',Arial,sans-serif;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}button:focus:not(:focus-visible){outline:none}h1,h3,p{margin-top:0}main,section,.catalog-main,.course,.course-main{min-width:0}[hidden]{display:none!important}.container{width:100%;max-width:1280px;margin-inline:auto;padding-inline:40px}.icon{display:inline-block;width:20px;height:20px;flex-shrink:0;vertical-align:middle}.skip{position:fixed;top:-100px;left:16px;background:var(--paper);padding:12px 18px;z-index:100;border-radius:10px}.skip:focus{top:12px}
header{position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid var(--line)}.nav{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:20px}.owner-logo{position:relative;display:block;width:182px;flex-shrink:0;background:#fff;border:1px solid #e3e7ee;border-radius:14px;padding:8px 12px;perspective:650px;overflow:hidden}.owner-logo img{width:100%;height:auto;display:block;transform-origin:center;animation:logo-turn 14s ease-in-out infinite}.owner-logo:after{content:'';position:absolute;inset:-15% auto -15% -55%;width:35%;background:linear-gradient(100deg,transparent,#ffffffa8,transparent);transform:skewX(-18deg);opacity:0;pointer-events:none;animation:logo-shine 14s ease-in-out infinite}.outline{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--paper);border:1px solid var(--line);border-radius:100px;padding:9px 16px;font-size:16px;transition:background .18s}.outline:hover{background:var(--soft)}#theme-icon{display:flex}.theme-toggle{min-width:112px}
.hero{position:relative;isolation:isolate;padding-top:30px;padding-bottom:24px}.hero:before{content:'';position:absolute;z-index:-1;inset:0 0 -125px;pointer-events:none;background:radial-gradient(ellipse at 88% 30%,var(--glow),transparent 57%),radial-gradient(ellipse at 55% 10%,var(--pink-glow),transparent 60%);opacity:.65}.hero h1{max-width:920px;margin:0;font-size:clamp(36px,4.2vw,56px);line-height:1.12;letter-spacing:-2px;font-weight:760;text-wrap:balance}.hero h1 span{color:var(--accent)}
.numbers{padding-bottom:22px}.stats-band{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:18px 0;background:var(--paper);border:1px solid var(--line);border-radius:19px;box-shadow:var(--shadow)}.stats-band>div{display:flex;align-items:center;justify-content:center;gap:12px;min-width:0;padding:4px 16px;text-align:center}.stats-band>div+div{border-left:1px solid var(--line)}.stats-band strong{font-size:32px;line-height:1.2;color:var(--accent);font-weight:750;letter-spacing:-1px;font-variant-numeric:tabular-nums}.stats-band span{font-size:19px;line-height:1.4}:root[data-theme="dark"] .stats-band{background:linear-gradient(110deg,#152b40,#192338 55%,#2b2039);border-color:#3b566b}:root[data-theme="dark"] .stats-band strong{color:var(--cyan)}
.catalog{position:relative;padding-bottom:28px}.search{display:flex;align-items:center;gap:13px;min-height:62px;padding:13px 18px;margin-bottom:22px;background:var(--paper);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);transition:border-color .18s,box-shadow .18s}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--pink-glow)}.search>span{display:flex;color:var(--accent)}.search .icon{width:24px;height:24px}.search input{min-width:0;width:100%;border:0;background:transparent;color:var(--ink);font-size:17px;line-height:1.5}.search input:focus-visible{outline:none}.search input::placeholder{color:var(--muted);opacity:1}.search kbd{display:grid;place-items:center;min-width:27px;height:28px;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:var(--bg);font-size:13px}.catalog-layout{display:grid;grid-template-columns:218px minmax(0,1fr);gap:26px}aside{align-self:start;position:sticky;top:calc(var(--header-height) + 20px);padding:7px;background:var(--paper);border:1px solid var(--line);border-radius:16px}#categories{display:grid;gap:5px}.category{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:53px;text-align:left;padding:12px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);font-size:16px;line-height:1.4;transition:background .18s,color .18s}.category b{font-size:14px;font-weight:650;min-width:25px;text-align:center;border-radius:5px;background:var(--soft);padding:2px 5px}.category.active{background:var(--selected);color:var(--selected-ink);font-weight:650}.category.active>span:before{content:'✓';margin-right:6px}.category.active b{background:#ffffff40;color:inherit}.filters{position:sticky;top:var(--header-height);z-index:15;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:10px 0 12px;background:var(--bg);border-bottom:1px solid var(--line)}.filters button{min-height:46px;font-size:15px;font-weight:600;padding:10px 12px;line-height:1.4;border:1px solid var(--line);border-radius:100px;background:var(--paper);color:var(--muted);transition:background .18s,color .18s}.filters button[aria-pressed=true]{background:var(--selected);border-color:var(--selected);color:var(--selected-ink)}.filters button[aria-pressed=true]:before{content:'✓';margin-right:6px}.results-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px;margin-bottom:14px;font-size:15px;color:var(--muted)}#results{font-weight:600}.results-bar button{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;color:var(--accent);font-size:15px;min-height:44px}.results-bar>div:has(#reset[hidden]){display:none}.mobile-filter-bar{display:none}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}.course{display:flex;flex-direction:column;position:relative;background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s,border-color .18s;animation:card-arrive .2s ease-out}.course-main{padding:24px 24px 21px;flex:1;display:flex;flex-direction:column}.course-top{display:flex;align-items:center;gap:11px;margin-bottom:17px;min-height:40px}.org-icon{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;background:var(--soft);color:var(--cyan);border:1px solid var(--line);border-radius:11px;font-size:14px;font-weight:750;letter-spacing:-.3px}.org-name{font-size:14px;font-weight:600;line-height:1.45;color:var(--muted)}.course h3{font-size:21px;font-weight:700;line-height:1.35;letter-spacing:-.45px;margin:0 0 12px;text-wrap:pretty}.course p{font-size:16px;line-height:1.65;color:var(--muted);margin-bottom:22px}.course-details{margin-top:auto}.metadata{display:flex;flex-wrap:wrap;gap:10px 17px;font-size:14px;color:var(--muted);margin-bottom:14px}.metadata>span{display:flex;align-items:center;gap:7px}.metadata .icon{width:17px;height:17px}.badge{display:inline-block;font-size:13px;font-weight:600;line-height:1.5;padding:5px 9px;border-radius:7px;background:var(--cert-bg);color:var(--cert-ink)}.badge.paid{background:var(--paid-bg);color:var(--paid-ink)}.badge.none,.badge.unknown{background:var(--soft);color:var(--muted)}.course-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.course-bottom>span{max-width:47%;line-height:1.45}.course-bottom a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;flex-shrink:0;padding:10px 15px;background:var(--accent);border:1px solid transparent;border-radius:10px;font-size:16px;font-weight:650;color:var(--action-ink);text-decoration:none;transition:filter .18s,transform .18s}.course-bottom a:hover{filter:brightness(1.1)}.course:focus-within{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan),0 5px 24px var(--glow)}.empty{grid-column:1/-1;padding:40px 24px;border:1px dashed var(--line);background:var(--paper);border-radius:18px;text-align:center}.empty h3{font-size:23px;line-height:1.3}.empty p{color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--ink);font-size:16px;font-weight:600;text-decoration:none;transition:background .18s}.button:hover{background:var(--selected);color:var(--selected-ink)}.share{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;padding-top:16px;padding-bottom:16px;border-top:1px solid var(--line)}.share .button{min-height:50px;font-size:16px}.back-top{min-height:48px;padding:10px 16px;border:0;background:transparent;color:var(--muted);font-size:16px;border-radius:10px}.back-top:hover{background:var(--soft);color:var(--ink)}footer.container{padding-top:0;padding-bottom:24px;text-align:center}.site-credit{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);font-size:14px;text-decoration:none;text-underline-offset:5px}.site-credit:hover{color:var(--accent);text-decoration:underline}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;width:max-content;padding:14px 22px;border:1px solid var(--line);border-radius:12px;background:var(--ink);color:var(--bg);z-index:50;box-shadow:var(--shadow);font-size:15px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.course:hover{transform:translateY(-3px);border-color:var(--cyan);box-shadow:0 0 0 1px color-mix(in srgb,var(--cyan) 25%,transparent),0 10px 28px var(--glow)}}
@keyframes card-arrive{from{opacity:.65;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes logo-turn{0%,84%{transform:rotateY(0)}100%{transform:rotateY(360deg)}}@keyframes logo-shine{0%,87%{left:-55%;opacity:0}89%{opacity:.5}100%{left:125%;opacity:0}}
@media(max-width:1100px){.container{padding-inline:26px}.catalog-layout{grid-template-columns:190px minmax(0,1fr);gap:20px}.course-main{padding:21px}.course-bottom{padding:13px 17px}.category{font-size:15px}}
@media(max-width:900px){.catalog-layout{display:block}aside{position:static;margin-bottom:14px}#categories{grid-template-columns:repeat(3,minmax(0,1fr))}.category{min-height:49px}.hero h1{font-size:46px}.stats-band span{font-size:17px}}
@media(max-width:600px){:root{--header-height:76px}.container{padding-inline:18px}.owner-logo{width:156px;padding:7px 10px;border-radius:12px}.theme-toggle{min-width:104px;padding:9px 12px;font-size:15px}.nav{gap:12px}.hero{padding-top:24px;padding-bottom:20px}.hero h1{font-size:36px;letter-spacing:-1.2px;line-height:1.13}.numbers{padding-bottom:18px}.stats-band{padding:15px 0;border-radius:15px}.stats-band>div{flex-direction:column;padding:0 7px;gap:4px}.stats-band strong{font-size:27px}.stats-band span{font-size:14px;max-width:100px}.search{min-height:58px;padding:12px 13px;gap:9px;margin-bottom:12px}.search input{font-size:16px}.search kbd{display:none}.mobile-filter-bar{position:sticky;top:var(--header-height);z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg);padding:10px 0;border-bottom:1px solid var(--line);margin-bottom:12px}.mobile-filter-bar .outline{font-weight:600}.filter-chevron{transition:transform .18s}.filters-open .filter-chevron{transform:rotate(180deg)}.jump-results{font-size:14px;color:var(--cyan);padding:10px 0;text-underline-offset:4px}#topic-panel,#quick-filters{display:none}.filters-open #topic-panel{display:block}.filters-open #quick-filters{display:grid}.filters{position:static;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 0 14px;margin-bottom:8px}.filters button{font-size:14px;padding:10px 7px}#categories{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.category{font-size:15px;min-height:48px}.category[data-category="all"]{grid-column:1/-1}.results-bar{font-size:14px;gap:8px;margin-bottom:12px;min-height:36px}.results-bar button{font-size:14px}.cards{grid-template-columns:1fr;gap:16px}.course{border-radius:16px}.course-main{padding:21px}.course p{font-size:16px}.course-bottom{padding:13px 19px}.course-bottom a{font-size:16px}.share{gap:4px;padding-top:18px}.share .button{width:100%;font-size:15px}.back-top{font-size:15px}.site-credit{font-size:13px}html{scroll-padding-top:155px}}
@media(max-width:360px){.container{padding-inline:14px}.owner-logo{width:140px}.theme-toggle{min-width:98px}.hero h1{font-size:32px}.course-main{padding:19px}.course-bottom{padding:13px 16px;gap:8px}.course-bottom a{padding-inline:12px}.course h3{font-size:20px}.stats-band span{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.owner-logo:after{display:none}}

/* Expanded phone controls travel together, beneath their sticky toggle. */
@media(max-width:600px){
 .mobile-filter-bar{height:67px;margin-bottom:0}
 .catalog-layout{padding-top:12px}
 .filters-open #topic-panel{position:sticky;top:calc(var(--header-height) + 67px);z-index:19;max-height:42vh;max-height:42dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);box-shadow:0 10px 24px #00000018;margin-bottom:14px;scrollbar-width:thin}
 #topic-panel .filters{background:transparent;padding:12px 2px 2px;margin:10px 0 0;border-top:1px solid var(--line);border-bottom:0}
 #cards{scroll-margin-top:12px}
 .filters-open #cards{scroll-margin-top:calc(42vh + 12px)}
}

/* Use the desktop viewport instead of a fixed 1280px page. */
@media(min-width:901px){
 .container{max-width:none;padding-inline:clamp(26px,2.2vw,48px)}
 .catalog-layout{grid-template-columns:218px minmax(0,1fr);gap:24px}
 .cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}
}

.results-bar{justify-content:space-between}.results-bar:has(#reset[hidden]){min-height:0;margin-bottom:12px}

/* Search stays above the catalog controls while the course list scrolls. */
:root{--search-dock-height:84px}
.search-dock{position:sticky;top:var(--header-height);z-index:22;height:var(--search-dock-height);padding:10px 0 12px;margin-bottom:10px;background:var(--bg)}
.search-dock .search{margin-bottom:0}
.filters{top:calc(var(--header-height) + var(--search-dock-height))}
html{scroll-padding-top:calc(var(--header-height) + var(--search-dock-height) + 90px)}
@media(min-width:901px){
 aside{top:calc(var(--header-height) + var(--search-dock-height) + 10px)}
}
@media(max-width:600px){
 :root{--search-dock-height:78px}
 .search-dock{padding-bottom:10px;margin-bottom:0}
 .mobile-filter-bar{top:calc(var(--header-height) + var(--search-dock-height))}
 .filters-open #topic-panel{top:calc(var(--header-height) + var(--search-dock-height) + 67px);max-height:min(42dvh,calc(100dvh - var(--header-height) - var(--search-dock-height) - 79px))}
}
