/* Everything is scoped to the catalog and its own footer; the shared header is untouched. */
.fc-catalog, .fc-catalog-footer { --fc-ink:#08234c; --fc-blue:#0644ed; --fc-muted:#536588; font-family:'Poppins',sans-serif; }
.fc-catalog *, .fc-catalog *::before, .fc-catalog *::after, .fc-catalog-footer *, .fc-catalog-footer *::before, .fc-catalog-footer *::after { box-sizing:border-box; }
.fc-catalog { position:relative; isolation:isolate; overflow:hidden; color:white; padding:38px 0 112px; background:radial-gradient(ellipse at 58% 42%,#b82a30 0%,#a01820 49%,#7c1018 100%); }
.fc-catalog::before { content:''; position:absolute; inset:0; z-index:-2; pointer-events:none; background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px),linear-gradient(124deg,transparent 58%,#ffffff06 58%,#ffffff06 65%,transparent 65%); background-size:22px 22px,22px 22px,100% 100%; }
.fc-catalog::after { content:''; position:absolute; width:650px; height:650px; border-radius:50%; bottom:-410px; left:-330px; background:#e6454b25; z-index:-1; box-shadow:50px -80px 0 #d9484a10; pointer-events:none; }
.fc-catalog-scenery { position:absolute; z-index:-1; left:-20px; top:15px; width:clamp(270px,29vw,430px); height:480px; pointer-events:none; background:url('../assets/images/formacioncontinua/catalog/lima-palacio-justicia.png') left top/cover no-repeat; mix-blend-mode:multiply; opacity:.65; mask-image:linear-gradient(90deg,#000 30%,transparent 100%),linear-gradient(transparent,#000 8%,#000 60%,transparent 100%); mask-composite:intersect; }
.fc-catalog-map { position:absolute; top:42px; right:18px; width:clamp(150px,16vw,220px); height:auto; opacity:.65; z-index:-1; pointer-events:none; }
.fc-catalog-dots { position:absolute; width:90px; height:180px; background:radial-gradient(#ffffffa0 1px,transparent 1px) 0 0/18px 18px; opacity:.55; pointer-events:none; z-index:-1; }
.fc-catalog-dots--left { top:450px; left:17px; }
.fc-catalog-dots--right { top:80px; right:85px; }
.fc-catalog-wrap { position:relative; width:min(1320px,calc(100% - 144px)); margin:0 auto; }
.fc-catalog-heading { text-align:center; margin:0 0 22px; }
.fc-catalog :is(h1,h2,p,button,select), .fc-catalog-footer :is(h2,p) { font-family:inherit; }
.fc-catalog svg:not(.fc-catalog-map):not(.fc-catalog-symbols), .fc-catalog-footer svg:not(.fc-catalog-wave) { width:21px; height:21px; flex:none; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.fc-catalog-symbols { position:absolute; width:0; height:0; overflow:hidden; }
.fc-catalog-label { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:40px; padding:8px 23px; border:1px solid #ffffff45; border-radius:50px; background:linear-gradient(135deg,#ffffff1f,#ffffff08); box-shadow:inset 0 1px 0 #ffffff18; color:white; text-transform:uppercase; letter-spacing:.07em; font-size:11px; font-weight:700; }
.fc-catalog-heading h1 { color:#fff; font-size:clamp(30px,4.5vw,58px); font-weight:800; line-height:1.16; letter-spacing:-.035em; margin:17px 0 12px; }
.fc-catalog-heading p { color:#fff; font-size:clamp(14px,1.65vw,19px); font-weight:400; line-height:1.55; margin:0 auto; }
.fc-catalog-filters { display:flex; align-items:center; justify-content:center; gap:13px; width:fit-content; max-width:100%; padding:8px; margin:0 auto 18px; border:1px solid #ffffff42; border-radius:26px; background:linear-gradient(125deg,#ffffff21,#ffffff07); box-shadow:inset 0 0 0 5px #ffffff05,0 8px 28px #66030a18; }
.fc-catalog-filters :is(button,a), .fc-catalog-select { min-height:48px; border:1px solid #ffffff50; border-radius:30px; display:flex; align-items:center; justify-content:center; gap:12px; color:#fff; font-weight:700; font-size:12px; }
.fc-catalog-select { position:relative; min-width:215px; padding:0 15px; background:#ffffff0d; }
.fc-catalog-select > svg:first-child { width:18px; padding-right:12px; box-sizing:content-box; border-right:1px solid #ffffff28; pointer-events:none; }
.fc-catalog-select select { min-width:0; flex:1; width:140px; background:transparent; border:0; appearance:none; color:white; font-size:12px; font-weight:600; height:46px; padding:0 18px 0 0; cursor:pointer; outline-offset:3px; }
.fc-catalog-select select option { background:white; color:var(--fc-ink); }
.fc-catalog-select .fc-catalog-select-chevron { position:absolute; right:15px; width:13px; transform:rotate(90deg); pointer-events:none; }
.fc-catalog-filters .fc-catalog-filter-submit { color:#0039e4; background:white; border-color:white; padding:0 25px; box-shadow:0 6px 15px #68061115; cursor:pointer; }
.fc-catalog-filters .fc-catalog-filter-reset { background:#b31b2580; padding:0 24px; text-decoration:none; color:white; }
.fc-catalog-filters :is(button,a):hover { box-shadow:0 6px 16px #48000b35; }
.fc-catalog-filters { position:relative; z-index:3; }
.fc-catalog-select.is-enhanced { display:block; padding:0; min-width:230px; border:0; background:none; }
.fc-catalog-select.is-enhanced > svg, .fc-catalog-select [hidden] { display:none !important; }
.fc-catalog-filters .fc-catalog-site-trigger { width:100%; min-height:52px; padding:7px 14px 7px 9px; gap:10px; justify-content:flex-start; text-align:left; background:#ffffff12; cursor:pointer; transition:background .2s,border-color .2s; }
.fc-catalog-filters .fc-catalog-site-trigger:hover, .fc-catalog-site-trigger[aria-expanded="true"] { background:#ffffff25; border-color:#ffffffb0; }
.fc-catalog-site-trigger:focus { outline:none; box-shadow:0 0 0 3px #ffffff18; }
.fc-catalog-site-icon { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:#ffffff16; flex:none; }
.fc-catalog-site-copy { flex:1; min-width:0; }
.fc-catalog-site-copy small { display:block; font-size:9px; font-weight:500; line-height:1.4; color:#ffe0e3; letter-spacing:.025em; }
.fc-catalog-site-copy strong { display:block; font-size:12px; line-height:1.6; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fc-catalog .fc-catalog-site-chevron { width:14px !important; height:14px !important; transform:rotate(90deg); transition:transform .2s; }
.fc-catalog-site-trigger[aria-expanded="true"] .fc-catalog-site-chevron { transform:rotate(-90deg); }
.fc-catalog-site-menu { position:absolute; top:calc(100% + 12px); left:0; width:max(100%,290px); max-width:calc(100vw - 56px); padding:8px; border:1px solid #e2e9f6; border-radius:19px; background:#fff; color:var(--fc-ink); box-shadow:0 18px 45px #39091940,0 3px 10px #39091915; }
.fc-catalog-site-menu > p { margin:0; padding:9px 11px 12px; color:var(--fc-ink); font-size:13px; font-weight:700; border-bottom:1px solid #edf1f8; }
.fc-catalog-site-menu > p small { display:block; margin-top:3px; color:#71809d; font-size:10px; font-weight:400; }
.fc-catalog-site-menu [role="listbox"] { position:relative; max-height:260px; overflow-y:auto; overscroll-behavior:contain; padding-top:6px; scrollbar-width:thin; }
.fc-catalog-site-option { display:flex; align-items:center; gap:11px; min-height:56px; margin:3px 0; padding:9px 11px; border:1px solid transparent; border-radius:12px; cursor:pointer; }
.fc-catalog-site-option-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:#f0f4fb; color:#657799; flex:none; }
.fc-catalog-site-option-copy { flex:1; min-width:0; }
.fc-catalog-site-option-copy strong { display:block; font-size:12px; font-weight:600; overflow-wrap:anywhere; }
.fc-catalog-site-option-copy small { display:block; color:#71809d; font-size:10px; margin-top:2px; }
.fc-catalog-site-option:hover, .fc-catalog-site-option.is-active { background:#f1f6ff; border-color:#d9e6ff; }
.fc-catalog-site-option[aria-selected="true"] { background:#eaf2ff; color:#0644d9; }
.fc-catalog-site-option[aria-selected="true"] .fc-catalog-site-option-icon { background:#dce8ff; color:#0644ed; }
.fc-catalog-site-option-check { width:19px; height:19px; display:grid; place-items:center; border-radius:50%; background:#0644ed; color:white; opacity:0; }
.fc-catalog-site-option[aria-selected="true"] .fc-catalog-site-option-check { opacity:1; }
.fc-catalog .fc-catalog-site-option-check svg { width:12px; height:12px; stroke-width:2.5; }
.fc-catalog-summary { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin:0 0 26px; }
.fc-catalog-summary > span { min-height:40px; display:inline-flex; align-items:center; gap:8px; padding:8px 18px; font-size:12px; font-weight:600; background:linear-gradient(125deg,#ffffff1f,#ffffff0d); border:1px solid #ffffff35; border-radius:30px; }
.fc-catalog-summary svg { width:17px !important; height:17px !important; }
.fc-catalog-summary strong { font-weight:700; }
.fc-catalog-alert { padding:18px; margin-bottom:20px; border-radius:16px; background:#fff6e9; color:#7f1823; }
.fc-catalog-carousel { --cards-per-page:3; position:relative; }
.fc-catalog-track { display:flex; align-items:stretch; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; border-radius:22px; padding:0 0 6px; }
.fc-catalog-track::-webkit-scrollbar { display:none; }
.fc-catalog-card { flex:0 0 calc((100% - 32px)/3); min-width:0; display:flex; flex-direction:column; gap:12px; padding:15px 16px 16px; background:linear-gradient(135deg,#fff,#fbfdff); color:var(--fc-ink); border:1px solid #fff; border-radius:23px; box-shadow:0 10px 26px #5e071b26; scroll-snap-align:start; }
.fc-catalog-card-top { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:30px; }
.fc-catalog-status { display:inline-flex; align-items:center; gap:8px; color:#354363; font-size:13px; font-weight:700; }
.fc-catalog-status i { width:9px; height:9px; background:#13c88b; border-radius:50%; }
.fc-catalog-type { max-width:65%; padding:7px 18px; border:1px solid #7199ff; background:linear-gradient(135deg,#2168ff,#073bea); color:white; border-radius:12px; box-shadow:0 5px 12px #1549d32b; font-size:12px; font-weight:600; text-align:center; }
.fc-catalog-cover { position:relative; display:block; aspect-ratio:1.86; overflow:hidden; border-radius:14px; background:#edf3ff; text-decoration:none; }
.fc-catalog-cover::after { content:''; position:absolute; inset:65% 0 0; background:linear-gradient(transparent,#2d4ee52d); pointer-events:none; }
.fc-catalog-cover img { display:block; width:100%; height:100%; object-fit:contain; background:#e6e9f1; }
.fc-catalog-cover-empty { display:grid; height:100%; place-items:center; background:linear-gradient(135deg,#d9e7ff,#a8bde6); color:#1644ae; }
.fc-catalog-cover-empty svg { width:70px !important; height:70px !important; }
.fc-catalog-price { position:absolute; z-index:1; top:12px; right:9px; min-width:104px; max-width:85%; padding:9px 11px 10px; text-align:center; background:#fffffff7; border-radius:13px; box-shadow:0 5px 15px #041e4c16; }
.fc-catalog-price small { display:block; color:#0c2b65; font-size:9px; line-height:1.3; text-transform:uppercase; font-weight:800; }
.fc-catalog-price strong { display:block; color:#0643e3; font-size:clamp(19px,1.8vw,25px); line-height:1.2; letter-spacing:-.04em; font-weight:800; }
.fc-catalog-course-link { color:var(--fc-ink); text-decoration:none !important; }
.fc-catalog-course-link h2 { margin:0; min-height:2.4em; font-weight:800; font-size:clamp(18px,1.75vw,23px); line-height:1.2; letter-spacing:-.035em; color:inherit; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.fc-catalog-course-link:hover { color:var(--fc-blue); }
.fc-catalog-description { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:3em; margin:0; font-size:13px; line-height:1.5; color:var(--fc-muted); }
.fc-catalog-meta { display:grid; gap:9px; margin:0; margin-top:auto; background:linear-gradient(110deg,#e8f5ff,#eef5ff); border:1px solid #e0edff; border-radius:13px; padding:14px; }
.fc-catalog-meta > div { display:flex; justify-content:space-between; align-items:center; gap:8px; min-height:18px; }
.fc-catalog-meta dt { display:flex; align-items:center; gap:12px; color:#003be4; font-size:11px; font-weight:700; margin:0; }
.fc-catalog-meta dt svg { width:18px !important; height:18px !important; }
.fc-catalog-meta dd { margin:0; max-width:60%; font-size:11px; line-height:1.35; font-weight:700; color:#082664; text-align:right; overflow-wrap:anywhere; }
.fc-catalog-enroll { display:flex; align-items:center; justify-content:center; gap:14px; min-height:48px; border:1px solid #7795ff; border-radius:40px; background:linear-gradient(110deg,#0d43e7,#1456fa); box-shadow:0 7px 14px #1345d52e; color:white !important; text-decoration:none !important; font-size:14px; line-height:1.5; font-weight:700; transition:box-shadow .2s; }
.fc-catalog-enroll:hover { box-shadow:0 8px 22px #1345d55c; }
.fc-catalog-enroll svg { width:14px !important; height:14px !important; }
.fc-catalog-teacher { display:flex; align-items:center; gap:12px; padding:9px 10px; background:linear-gradient(110deg,#edf6ff,#f4f8ff); border:1px solid #deebff; border-radius:14px; min-height:58px; }
.fc-catalog-avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:#0646f5; background:#dfeaff; flex:none; }
.fc-catalog-teacher > div { min-width:0; }
.fc-catalog-teacher small { display:block; font-size:10px; font-weight:500; color:#47618b; }
.fc-catalog-teacher strong { display:block; font-size:12px; font-weight:700; line-height:1.4; color:#0037bf; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fc-catalog-navigation[hidden] { display:none; }
.fc-catalog-arrow { position:absolute; top:46%; width:46px; height:46px; display:grid; place-items:center; padding:0; border:1px solid #ffffff70; border-radius:50%; color:white; background:linear-gradient(135deg,#2c6eff,#003bd7); box-shadow:0 5px 14px #5b061d30; cursor:pointer; }
.fc-catalog-arrow--prev { left:-56px; }
.fc-catalog-arrow--prev svg { transform:rotate(180deg); }
.fc-catalog-arrow--next { right:-56px; }
.fc-catalog-arrow:disabled { background:#ffffff15; cursor:default; box-shadow:none; opacity:.65; }
.fc-catalog-pagination { display:flex; align-items:center; justify-content:center; gap:0; margin-top:10px; min-height:32px; }
.fc-catalog-pagination button { display:grid; place-items:center; padding:0; width:24px; height:32px; background:transparent; border:0; cursor:pointer; }
.fc-catalog-pagination button::after { content:''; width:11px; height:11px; border-radius:50%; background:#e8a5ab95; transition:background .2s,transform .2s; }
.fc-catalog-pagination button[aria-current="true"]::after { background:#fff; transform:scale(1.2); }
.fc-catalog-count { display:flex; align-items:center; justify-content:center; gap:15px; font-size:13px; line-height:1.5; color:white; margin:1px 0 0; }
.fc-catalog-count strong { font-weight:600; }
.fc-catalog-empty { flex:1; text-align:center; padding:45px 24px; border-radius:22px; background:white; color:var(--fc-ink); }
.fc-catalog-empty > svg { width:40px !important; height:40px !important; color:#1647e8; }
.fc-catalog-empty h2 { font-size:23px; font-weight:700; margin:12px 0; color:inherit; }
.fc-catalog-empty p { color:var(--fc-muted); }
.fc-catalog-empty a { color:var(--fc-blue); text-decoration:underline; }
.fc-catalog-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.fc-catalog :is(a,button,select,[tabindex]):focus-visible, .fc-catalog-footer a:focus-visible { outline:3px solid #ffdc72; outline-offset:3px; }
.fc-catalog-footer { position:relative; margin:0; background:#0b1d3b; color:#e3eafa; padding:22px 0 0; }
.fc-catalog-wave { position:absolute; top:-78px; left:0; width:100%; height:80px; display:block; }
.fc-catalog-footer::before { content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(ellipse at 100% 100%,#24477b36,transparent 60%); }
.fc-catalog-footer-main { position:relative; display:grid; grid-template-columns:1.5fr 1fr .9fr 1.25fr; gap:35px; width:min(1275px,calc(100% - 180px)); margin:auto; padding:0 0 26px; }
.fc-catalog-footer a { color:#d7e0f4; text-decoration:none; font-size:12px; line-height:1.6; }
.fc-catalog-footer a:hover { color:white; text-decoration:underline; }
.fc-catalog-footer h2 { font-size:12px; font-weight:600; color:white; margin:0 0 11px; line-height:1.5; }
.fc-catalog-brand { display:flex; align-items:center; gap:18px; align-self:start; }
.fc-catalog-brand img { width:84px; height:84px; object-fit:contain; }
.fc-catalog-brand > span { display:flex; flex-direction:column; gap:5px; }
.fc-catalog-brand strong { color:white; font-size:17px; }
.fc-catalog-brand span span { font-size:12px; line-height:1.6; }
.fc-catalog-footer nav { display:flex; align-items:flex-start; flex-direction:column; gap:5px; }
.fc-catalog-footer nav h2 { margin-bottom:4px; }
.fc-catalog-footer-contact { border-left:1px solid #d3def52e; padding-left:22px; }
.fc-catalog-footer-contact a { display:flex; align-items:center; gap:8px; overflow-wrap:anywhere; }
.fc-catalog-footer-contact a svg { width:18px !important; height:18px !important; }
.fc-catalog-footer-contact > span { display:block; font-size:11px; margin-top:10px; color:#9faeca; }
.fc-catalog-footer-bottom { position:relative; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; border-top:1px solid #d3def525; padding:20px max(7.85vw,calc((100% - 1275px)/2)); font-size:10px; line-height:1.6; color:#d9e1f0; }
@media(min-width:1450px) { .fc-catalog-card { gap:15px; padding:18px; } .fc-catalog-cover { aspect-ratio:1.86; } .fc-catalog-description { font-size:14px; } .fc-catalog { padding-top:46px; } }
@media(max-width:991px) { .fc-catalog-carousel { --cards-per-page:2; } .fc-catalog-card { flex-basis:calc((100% - 16px)/2); } .fc-catalog-wrap { width:calc(100% - 112px); } .fc-catalog-heading h1 { font-size:clamp(32px,5vw,48px); } .fc-catalog-desktop-break { display:none; } .fc-catalog-arrow--prev { left:-48px; } .fc-catalog-arrow--next { right:-48px; } .fc-catalog-arrow { width:40px; height:40px; } .fc-catalog-footer-main { width:calc(100% - 80px); grid-template-columns:1.4fr 1fr; gap:28px; } .fc-catalog-footer-contact { border:0; padding:0; } .fc-catalog-footer-bottom { padding:18px 40px; } }
@media(max-width:640px) { .fc-catalog { padding:30px 0 92px; } .fc-catalog-wrap { width:calc(100% - 36px); } .fc-catalog-heading { margin-bottom:22px; } .fc-catalog-label { min-height:35px; font-size:10px; padding:6px 17px; } .fc-catalog-heading h1 { font-size:34px; margin-top:16px; } .fc-catalog-heading p { font-size:14px; } .fc-catalog-filters { display:grid; grid-template-columns:1fr 1fr; width:100%; gap:8px; border-radius:22px; padding:9px; } .fc-catalog-select { grid-column:1/-1; width:100%; min-width:0; } .fc-catalog-select select { width:100%; } .fc-catalog-filters :is(button,a) { min-height:44px; padding:0 10px; font-size:11px; gap:8px; } .fc-catalog-filters svg { width:17px !important; height:17px !important; } .fc-catalog-summary { gap:8px; margin-bottom:21px; } .fc-catalog-summary > span { font-size:10px; min-height:36px; padding:7px 11px; gap:5px; } .fc-catalog-carousel { --cards-per-page:1; } .fc-catalog-track { gap:14px; padding:0 0 6px; } .fc-catalog-card { flex-basis:100%; padding:16px; gap:12px; } .fc-catalog-course-link h2 { font-size:21px; } .fc-catalog-price strong { font-size:23px; } .fc-catalog-meta dt,.fc-catalog-meta dd { font-size:12px; } .fc-catalog-description { font-size:14px; } .fc-catalog-enroll { min-height:50px; } .fc-catalog-arrow { top:auto; bottom:-2px; width:40px; height:40px; } .fc-catalog-arrow--prev { left:0; } .fc-catalog-arrow--next { right:0; } .fc-catalog-pagination { margin-top:12px; } .fc-catalog-count { font-size:11px; padding:0 43px; gap:9px; } .fc-catalog-map { top:48px; width:110px; right:8px; opacity:.38; } .fc-catalog-scenery { width:210px; height:340px; left:-40px; opacity:.4; } .fc-catalog-footer-main { width:calc(100% - 40px); grid-template-columns:1fr 1fr; gap:26px 18px; } .fc-catalog-brand { grid-column:1/-1; } .fc-catalog-footer-contact { grid-column:1/-1; } .fc-catalog-footer-bottom { padding:18px 20px; font-size:9px; } }
@media(prefers-reduced-motion:reduce) { .fc-catalog *, .fc-catalog *::before, .fc-catalog *::after { scroll-behavior:auto !important; transition:none !important; } }
