/* Fab Lab BUAP public interface colors are an interface palette, not official BUAP brand specifications. */
body.public-site {
    --fl-navy: #071d3b;
    --fl-navy-2: #0d2b51;
    --fl-blue: #134b91;
    --fl-electric: #1765d1;
    --fl-cyan: #4bd2e5;
    --fl-white: #ffffff;
    --fl-surface: #f3f7fb;
    --fl-muted: #52677d;
    --fl-border: #d8e4ed;
    --fl-shadow: 0 14px 40px rgba(7, 29, 59, .08);
    color: var(--fl-navy);
    background: #f9fbfd;
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.6;
    overflow-x: clip;
}
body.public-site main { min-width: 0; }
body.public-site a { text-underline-offset: .2em; }
body.public-site :focus-visible { outline: 3px solid var(--fl-electric); outline-offset: 3px; border-radius: 4px; }
body.public-site .skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 1100; padding: .7rem 1rem; background: var(--fl-white); color: var(--fl-navy); font-weight: 700; border-radius: .5rem; box-shadow: var(--fl-shadow); }
body.public-site .skip-link:focus { top: .7rem; }
body.public-site .container { max-width: 1240px; }
body.public-site .section-space { padding: clamp(4rem, 7vw, 7.5rem) 0; }
body.public-site .eyebrow { display: inline-flex; align-items: center; gap: .6rem; color: var(--fl-blue); font-size: .73rem; font-weight: 800; letter-spacing: .17em; line-height: 1.3; text-transform: uppercase; }
body.public-site .eyebrow-light { color: var(--fl-cyan); }
body.public-site h1, body.public-site h2, body.public-site h3 { color: inherit; letter-spacing: -.035em; line-height: 1.12; }
body.public-site em { font-style: normal; color: var(--fl-electric); }

/* Header */
body.public-site .public-header { position: sticky; top: 0; z-index: 1050; background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(216,228,237,.85); transition: box-shadow .2s ease, background-color .2s ease; }
@supports (backdrop-filter: blur(12px)) { body.public-site .public-header { background: rgba(255,255,255,.88); backdrop-filter: blur(12px); } }
body.public-site .public-header.is-scrolled { box-shadow: 0 10px 30px rgba(7,29,59,.1); background: rgba(255,255,255,.98); }
body.public-site .public-nav { min-height: 78px; gap: 1rem; }
body.public-site .public-brand { display: inline-flex; align-items: center; gap: .72rem; margin: 0; color: var(--fl-navy); white-space: nowrap; font-size: 1.02rem; letter-spacing: .06em; }
body.public-site .public-brand:hover { color: var(--fl-blue); }
body.public-site .brand-name strong { color: var(--fl-blue); font-weight: 800; }
body.public-site .brand-mark { position: relative; display: grid; grid-template-columns: repeat(2, 11px); grid-template-rows: repeat(2, 11px); gap: 4px; transform: rotate(-12deg); }
body.public-site .brand-mark span { display: block; background: var(--fl-blue); border-radius: 2px; }
body.public-site .brand-mark span:nth-child(2), body.public-site .brand-mark span:nth-child(3) { background: var(--fl-cyan); }
body.public-site .brand-logo { display:block; flex:0 0 auto; width:auto; height:30px; max-width:72px; object-fit:contain; }
body.public-site .public-nav-links { gap: clamp(.05rem, .3vw, .45rem); }
body.public-site .public-nav .nav-link { position: relative; padding: .7rem .57rem; color: #344b64; font-size: .83rem; font-weight: 700; white-space: nowrap; transition: color .2s ease; }
body.public-site .public-nav .nav-link::after { content: ""; position: absolute; left: .57rem; right: .57rem; bottom: .32rem; height: 2px; background: var(--fl-electric); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
body.public-site .public-nav .nav-link:hover, body.public-site .public-nav .nav-link.is-active { color: var(--fl-blue); }
body.public-site .public-nav .nav-link:hover::after, body.public-site .public-nav .nav-link.is-active::after { transform: scaleX(1); }
body.public-site .public-menu-toggle { border: 1px solid var(--fl-border); padding: .45rem .62rem; background: var(--fl-surface); }
body.public-site .public-menu-toggle:focus-visible { box-shadow: none; }

/* Buttons and section headings */
body.public-site .button { display: inline-flex; align-items: center; justify-content: center; gap: .85rem; min-height: 48px; padding: .72rem 1.25rem; border: 1px solid transparent; border-radius: .55rem; font-weight: 750; font-size: .94rem; text-decoration: none; transition: transform .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
body.public-site .button:hover { transform: translateY(-2px); }
body.public-site .button-primary { color: var(--fl-white); background: var(--fl-electric); box-shadow: 0 10px 24px rgba(23,101,209,.2); }
body.public-site .button-primary:hover { color: var(--fl-white); background: var(--fl-blue); }
body.public-site .button-ghost { border-color: rgba(255,255,255,.35); color: var(--fl-white); background: rgba(255,255,255,.07); }
body.public-site .button-ghost:hover { color: var(--fl-white); background: rgba(255,255,255,.15); }
body.public-site .button-full { width: 100%; margin-top: 1.5rem; }
body.public-site .text-action { display: inline-flex; align-items: center; gap: .65rem; color: var(--fl-blue); font-size: .9rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
body.public-site .text-action:hover { color: var(--fl-electric); }
body.public-site .text-action span { font-size: 1.2rem; transition: transform .2s ease; }
body.public-site .text-action:hover span { transform: translate(2px,-2px); }
body.public-site .section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2.2rem; }
body.public-site .section-heading h2 { margin: .55rem 0 .6rem; font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 790; }
body.public-site .section-heading p { max-width: 34rem; margin: 0; color: var(--fl-muted); }
body.public-site .section-heading .text-action { margin-bottom: .4rem; }

/* Home hero */
body.public-site .home-hero, body.public-site .page-hero, body.public-site .detail-header { position: relative; isolation: isolate; overflow: hidden; color: var(--fl-white); background: var(--fl-navy); }
body.public-site .home-hero::before, body.public-site .page-hero::before, body.public-site .detail-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(circle at 75% 35%, rgba(23,101,209,.32), transparent 35%), radial-gradient(circle at 10% 90%, rgba(75,210,229,.12), transparent 38%), linear-gradient(115deg, #071d3b, #0d3159); }
body.public-site .home-hero::after, body.public-site .page-hero::after, body.public-site .detail-header::after { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .13; background-image: linear-gradient(rgba(145,209,241,.4) 1px, transparent 1px), linear-gradient(90deg, rgba(145,209,241,.4) 1px, transparent 1px); background-size: 58px 58px; mask-image: linear-gradient(90deg, transparent, #000 52%); }
body.public-site .hero-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; min-height: 660px; gap: clamp(1rem, 3vw, 3rem); padding-top: 5.5rem; padding-bottom: 4rem; }
body.public-site .hero-copy { position: relative; z-index: 2; }
body.public-site .hero-copy .eyebrow { max-width: 100%; flex-wrap: wrap; }
body.public-site .signal-dot { width: .5rem; height: .5rem; border-radius: 50%; background: var(--fl-cyan); box-shadow: 0 0 0 4px rgba(75,210,229,.14); }
body.public-site .hero-brand-title { width: min(100%, 420px); margin: 1.2rem 0 .7rem; line-height: 0; }
body.public-site .hero-brand-title img { display: block; width: 100%; height: auto; max-width: 100%; }
body.public-site .hero-phrase { margin: 1.65rem 0 .8rem; font-size: clamp(1.6rem, 3.4vw, 2.8rem); font-weight: 700; line-height: 1.15; letter-spacing: -.04em; }
body.public-site .hero-intro { max-width: 32rem; color: #c0d3e5; font-size: 1.05rem; }
body.public-site .hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
body.public-site .hero-bottom { display: flex; justify-content: space-between; align-items: center; padding-bottom: 1.2rem; color: #9bbbd2; font-size: .7rem; font-weight: 800; letter-spacing: .16em; }
body.public-site .hero-bottom a { color: var(--fl-white); text-decoration: none; }
body.public-site .hero-bottom a:hover { color: var(--fl-cyan); }
body.public-site .hero-visual { position: relative; width: min(100%, 530px); aspect-ratio: 1; justify-self: end; border: 1px solid rgba(75,210,229,.22); border-radius: 50%; background: radial-gradient(circle at center, rgba(23,101,209,.28), transparent 42%), repeating-radial-gradient(circle at center, transparent 0 50px, rgba(75,210,229,.11) 51px 52px, transparent 53px 103px); box-shadow: inset 0 0 100px rgba(75,210,229,.05), 0 0 90px rgba(23,101,209,.13); }
body.public-site .visual-grid { position: absolute; inset: 12%; border-radius: 50%; background-image: linear-gradient(rgba(75,210,229,.11) 1px, transparent 1px), linear-gradient(90deg, rgba(75,210,229,.11) 1px, transparent 1px); background-size: 25px 25px; mask-image: radial-gradient(circle, #000 20%, transparent 75%); }
body.public-site .visual-orbit { position: absolute; border: 1px dashed rgba(75,210,229,.36); border-radius: 50%; transform: rotate(-23deg); }
body.public-site .orbit-one { inset: 14%; }
body.public-site .orbit-two { inset: 27%; transform: rotate(36deg); border-style: solid; border-color: rgba(75,210,229,.18); }
body.public-site .visual-core { position: absolute; inset: 35%; display: grid; place-items: center; border: 1px solid rgba(75,210,229,.5); border-radius: 18%; background: linear-gradient(145deg, #0e477e, #082544); transform: rotate(45deg); box-shadow: 0 0 55px rgba(75,210,229,.27); }
body.public-site .core-label { color: var(--fl-white); text-align: center; font-size: clamp(1.5rem, 3vw, 3rem); font-weight: 850; line-height: .9; letter-spacing: -.08em; transform: rotate(-45deg); }
body.public-site .core-cross { position: absolute; inset: 8%; border: 1px solid rgba(255,255,255,.1); border-radius: 17%; }
body.public-site .visual-node { position: absolute; width: .62rem; height: .62rem; border: 2px solid var(--fl-cyan); border-radius: 50%; background: var(--fl-navy); box-shadow: 0 0 0 7px rgba(75,210,229,.08); }
body.public-site .node-one { left: 12%; top: 30%; } body.public-site .node-two { right: 11%; top: 47%; } body.public-site .node-three { left: 39%; bottom: 9%; }
body.public-site .visual-note { position: absolute; display: flex; align-items: center; gap: .7rem; padding: .55rem .75rem; color: #dffaff; border: 1px solid rgba(75,210,229,.24); border-radius: .35rem; background: rgba(7,29,59,.9); font-size: .65rem; font-weight: 750; letter-spacing: .12em; white-space: nowrap; }
body.public-site .visual-note i { display: block; width: 1.7rem; height: 1px; background: var(--fl-cyan); }
body.public-site .note-one { top: 8%; right: 7%; } body.public-site .note-two { left: -4%; bottom: 30%; } body.public-site .note-three { right: -1%; bottom: 13%; }
body.public-site .visual-coordinate { position: absolute; left: 5%; top: 5%; color: #7ba4be; font-size: .6rem; letter-spacing: .15em; }

/* About and home sections */
body.public-site .home-about { background: var(--fl-white); }
body.public-site .about-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(2rem, 6vw, 7rem); }
body.public-site .about-intro h2 { max-width: 10ch; margin: .65rem 0 1.25rem; font-size: clamp(2.5rem, 5vw, 4.6rem); font-weight: 780; }
body.public-site .about-intro p { max-width: 32rem; color: var(--fl-muted); font-size: 1.12rem; }
body.public-site .about-intro .text-action { margin-top: 1rem; }
body.public-site .about-pattern { min-height: 330px; padding: clamp(1.2rem, 3vw, 2.6rem); border: 1px solid var(--fl-border); border-radius: 1.3rem; background: linear-gradient(135deg, rgba(23,101,209,.08), transparent 50%), repeating-linear-gradient(90deg, transparent 0 31px, rgba(19,75,145,.05) 32px 33px), var(--fl-surface); }
body.public-site .about-pattern-inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; height: 100%; min-height: 260px; }
body.public-site .about-card { position:relative; min-width:0; overflow:hidden; border:1px solid rgba(19,75,145,.18); border-radius:.75rem; background:var(--fl-navy-2); } body.public-site .about-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,20,45,.08),rgba(4,20,45,.76)); } body.public-site .about-card img { display:block; width:100%; height:100%; object-fit:cover; } body.public-site .about-card span { position:absolute; z-index:1; right:1.1rem; bottom:1.1rem; left:1.1rem; color:var(--fl-white); font-size:.8rem; font-weight:800; letter-spacing:.1em; }
body.public-site .section-proyectos { background: var(--fl-surface); }
body.public-site .section-eventos { background: var(--fl-white); }
body.public-site .section-comunicados { background: linear-gradient(180deg, #edf4fa, #f8fbfd); }
body.public-site .section-capacitaciones { background: var(--fl-white); }
body.public-site .section-talleres { background: var(--fl-surface); }

/* Cards */
body.public-site .public-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.35rem; }
body.public-site .public-card { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--fl-border); border-radius: .9rem; background: var(--fl-white); box-shadow: 0 7px 24px rgba(7,29,59,.045); transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
@media (hover:hover) { body.public-site .public-card:hover { transform: translateY(-5px); border-color: #91bce7; box-shadow: var(--fl-shadow); } body.public-site .public-card:hover .public-card-media img { transform: scale(1.035); } }
body.public-site .public-card-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--fl-navy-2); }
body.public-site .public-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
body.public-site .public-card-media-activity { background: var(--fl-surface); }
body.public-site .public-card-media-activity img { object-fit: contain; }
body.public-site .public-card:hover .public-card-media-activity img { transform: none; }
body.public-site .media-placeholder { position: relative; display: grid; place-items: center; width: 100%; height: 100%; min-height: 180px; isolation: isolate; overflow: hidden; color: var(--fl-white); background: radial-gradient(circle at 70% 25%, rgba(75,210,229,.22), transparent 32%), linear-gradient(140deg, #0d3159, #071d3b); }
body.public-site .placeholder-grid { position: absolute; inset: 0; z-index: -1; opacity: .25; background-image: linear-gradient(rgba(75,210,229,.4) 1px, transparent 1px), linear-gradient(90deg, rgba(75,210,229,.4) 1px, transparent 1px); background-size: 27px 27px; }
body.public-site .placeholder-mark { padding: 1rem; border: 1px solid rgba(75,210,229,.35); border-radius: .45rem; color: #e6f9fc; text-align: center; font-size: 1.4rem; font-weight: 850; line-height: .9; letter-spacing: -.08em; transform: rotate(-8deg); }
body.public-site .type-badge { position: absolute; left: 1rem; top: 1rem; padding: .34rem .65rem; border: 1px solid rgba(255,255,255,.4); border-radius: .35rem; color: var(--fl-navy); background: rgba(255,255,255,.95); font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
body.public-site .public-card-body { display: flex; flex-direction: column; flex: 1; padding: 1.35rem 1.4rem 1.25rem; }
body.public-site .feature-label { align-self: flex-start; margin-bottom: .65rem; color: var(--fl-blue); font-size: .73rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
body.public-site .public-card-title { margin: 0 0 .7rem; font-size: clamp(1.2rem, 1.7vw, 1.5rem); font-weight: 780; overflow-wrap: anywhere; }
body.public-site .public-card-title a { color: var(--fl-navy); text-decoration: none; }
body.public-site .public-card-title a:hover { color: var(--fl-blue); }
body.public-site .public-card-summary { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; color: var(--fl-muted); font-size: .91rem; }
body.public-site .public-card-meta { margin-top: auto; padding-top: .4rem; }
body.public-site .public-card-meta p { display: grid; gap: .08rem; margin: .5rem 0; font-size: .79rem; }
body.public-site .public-card-meta p span { color: var(--fl-muted); font-weight: 650; }
body.public-site .public-card-meta p strong { color: #263f59; font-weight: 700; overflow-wrap: anywhere; }
body.public-site .activity-label { display: inline-block; margin-top: .45rem; padding: .2rem .55rem; border-radius: .25rem; color: var(--fl-blue); background: #eaf3fc; font-size: .7rem; font-weight: 800; }
body.public-site .card-action { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-top: 1.1rem; padding-top: .9rem; border-top: 1px solid var(--fl-border); color: var(--fl-blue); font-size: .84rem; font-weight: 800; }
body.public-site .card-action span { font-size: 1.2rem; }
body.public-site .featured-grid.count-3 { grid-template-columns: 1.55fr 1fr 1fr; }
body.public-site .featured-grid.count-2 { grid-template-columns: 1.3fr 1fr; }
body.public-site .featured-grid.count-1 { grid-template-columns: 1fr; }
body.public-site .public-card-featured .public-card-media { aspect-ratio: 16 / 11; }
body.public-site .public-card-featured .public-card-title { font-size: clamp(1.4rem, 2.1vw, 1.9rem); }
body.public-site .public-card-comunicados .public-card-media { aspect-ratio: 16 / 8.5; }
body.public-site .public-card-comunicados .public-card-body { border-top: 3px solid var(--fl-electric); }

/* Empty state, location and footer */
body.public-site .empty-state { display: grid; justify-items: start; gap: .3rem; min-height: 190px; padding: 2rem; border: 1px dashed #9bbbd2; border-radius: .8rem; background: rgba(255,255,255,.68); }
body.public-site .empty-state p { margin: 0; color: var(--fl-muted); font-weight: 650; }
body.public-site .empty-icon { color: var(--fl-electric); font-size: 2.3rem; line-height: 1; }
body.public-site .empty-state-large { min-height: 260px; align-content: center; justify-items: center; text-align: center; }
body.public-site .location-section { color: var(--fl-white); background: linear-gradient(110deg, var(--fl-navy), #103b6a); }
body.public-site .location-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
body.public-site .location-layout h2 { margin: .6rem 0 1rem; font-size: clamp(2.5rem, 5vw, 4.3rem); font-weight: 780; }
body.public-site .location-layout em { color: var(--fl-cyan); }
body.public-site .location-layout p { max-width: 29rem; color: #c4d7e8; }
body.public-site .location-action { margin-top: 1rem; }
body.public-site .location-map { min-width: 0; overflow: hidden; border: 1px solid rgba(75,210,229,.32); border-radius: .85rem; box-shadow: 0 18px 45px rgba(0,0,0,.2); }
body.public-site .location-map__frame { display: block; width: 100%; min-height: 360px; border: 0; }
body.public-site #quienes-somos, body.public-site #donde-estamos, body.public-site #redes-sociales { scroll-margin-top:96px; } body.public-site .social-section { background: #f1f8fc; } body.public-site .social-section h2 { margin:.55rem 0 1.5rem; color:var(--fl-navy); font-size:clamp(2.1rem,4vw,3.4rem); font-weight:780; } body.public-site .social-section h2 em { color:var(--fl-electric); } body.public-site .social-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; } body.public-site .social-link { display:flex; align-items:center; gap:.8rem; min-height:76px; padding:1rem; border:1px solid var(--fl-border); border-radius:.75rem; color:var(--fl-navy); background:#fff; box-shadow:0 8px 22px rgba(7,29,59,.06); font-weight:750; text-decoration:none; } body.public-site .social-link:hover,body.public-site .social-link:focus-visible { border-color:var(--fl-cyan); color:var(--fl-navy); box-shadow:0 12px 28px rgba(7,29,59,.12); outline:0; } body.public-site .social-link img,body.public-site .social-link b { flex:0 0 auto; } body.public-site .social-link img { width:32px; height:32px; } body.public-site .social-link span { flex:1 1 auto; min-width:0; overflow-wrap:normal; word-break:normal; } body.public-site .social-link b { margin-left:auto; color:var(--fl-electric); }
body.public-site .public-footer { padding: 3.5rem 0 1.3rem; color: #a9bfd1; background: #06172e; }
body.public-site .footer-inner { display: flex; justify-content: space-between; gap: 2rem; padding-bottom: 2.7rem; }
body.public-site .footer-brand { color: var(--fl-white); font-size: 1.15rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; }
body.public-site .footer-brand strong { color: var(--fl-cyan); }
body.public-site .footer-inner p { margin: .8rem 0 0; }
body.public-site .footer-inner nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .7rem 1.5rem; max-width: 35rem; }
body.public-site .public-footer a { color: #d8e6f0; text-decoration: none; }
body.public-site .public-footer a:hover { color: var(--fl-cyan); }
body.public-site .footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.14); font-size: .8rem; }
body.public-site .footer-contact { min-width:0; max-width:25rem; color:#c7d9e6; font-size:.84rem; }
body.public-site .footer-contact h2 { margin:0 0 .65rem; color:var(--fl-white); font-size:1rem; font-weight:760; }
body.public-site .footer-contact p { margin:.32rem 0; overflow-wrap:anywhere; }
body.public-site .footer-contact p > span { color:#8fb5cd; font-weight:750; }
body.public-site .footer-contact small { color:#a9bfd1; font-size:inherit; }
body.public-site .footer-contact-extensions { display:grid; gap:.25rem; padding:0; margin:.45rem 0 .55rem; list-style:none; }
body.public-site .footer-contact-extensions li { overflow-wrap:anywhere; }
body.public-site .footer-contact strong { color:#d8e6f0; }

/* Listings and details */
body.public-site .page-hero { padding: 2.7rem 0 3.5rem; }
body.public-site .page-hero h1, body.public-site .detail-header h1 { max-width: 17ch; margin: .6rem 0 .9rem; font-size: clamp(2.6rem, 6vw, 5rem); font-weight: 820; overflow-wrap: anywhere; }
body.public-site .page-hero p { max-width: 35rem; margin: 0; color: #bfd2e4; }
body.public-site .breadcrumbs { margin-bottom: 2.3rem; font-size: .8rem; }
body.public-site .breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .45rem; padding: 0; margin: 0; list-style: none; }
body.public-site .breadcrumbs li { color: #bbd2e6; overflow-wrap: anywhere; }
body.public-site .breadcrumbs li + li::before { content: "/"; margin-right: .45rem; color: var(--fl-cyan); }
body.public-site .breadcrumbs a { color: var(--fl-white); text-decoration: none; }
body.public-site .breadcrumbs a:hover { color: var(--fl-cyan); }
body.public-site .listing-section { background: var(--fl-surface); }
body.public-site .public-pagination { margin-top: 2.5rem; }
body.public-site .public-pagination .pagination { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: center; }
body.public-site .public-pagination .page-link, body.public-site .public-pagination a { color: var(--fl-blue); border-color: var(--fl-border); border-radius: .45rem; background: var(--fl-white); font-weight: 700; }
body.public-site .public-pagination .active .page-link, body.public-site .public-pagination .active a { color: var(--fl-white); background: var(--fl-blue); border-color: var(--fl-blue); }
body.public-site .detail-header { padding: 2.6rem 0 5rem; }
body.public-site .detail-header h1 { max-width: 20ch; }
body.public-site .detail-lead { max-width: 50rem; color: #d3e4f1; font-size: clamp(1.05rem, 2vw, 1.35rem); }
body.public-site .detail-main { padding-bottom: clamp(4rem, 6vw, 7rem); }
body.public-site .detail-cover { position: relative; width: 100%; max-height: 540px; margin-top: -2.6rem; aspect-ratio: 16 / 8; overflow: hidden; border: 5px solid var(--fl-white); border-radius: .95rem; background: var(--fl-navy-2); box-shadow: var(--fl-shadow); }
body.public-site .detail-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.public-site .detail-cover-activity { background: var(--fl-surface); }
body.public-site .detail-cover-activity img { object-fit: contain; }
body.public-site .registration-form { max-width: 640px; }
body.public-site .registration-notice { max-width: 980px; margin: 0 auto 1.5rem; overflow-wrap: anywhere; }
body.public-site .detail-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(270px, .75fr); align-items: start; gap: clamp(2rem, 5vw, 6rem); margin-top: clamp(3rem, 5vw, 5rem); }
body.public-site .detail-article { min-width: 0; }
body.public-site .detail-article h2 { margin: .5rem 0 1.5rem; font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 770; }
body.public-site .reading-copy { max-width: 69ch; color: #344b64; font-size: 1.06rem; line-height: 1.9; overflow-wrap: anywhere; }
body.public-site .detail-panel { padding: 1.8rem; border: 1px solid var(--fl-border); border-top: 4px solid var(--fl-electric); border-radius: .8rem; background: var(--fl-white); box-shadow: var(--fl-shadow); }
body.public-site .detail-panel h2 { margin: .5rem 0 1rem; font-size: 1.5rem; font-weight: 770; }
body.public-site .detail-panel p { color: var(--fl-muted); }
body.public-site .detail-fact { display: grid; gap: .1rem; padding: .9rem 0; border-top: 1px solid var(--fl-border); }
body.public-site .detail-fact span { color: var(--fl-muted); font-size: .75rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
body.public-site .detail-fact strong { color: var(--fl-navy); font-size: .92rem; font-weight: 700; overflow-wrap: anywhere; }
body.public-site .project-gallery { margin-top: clamp(4rem, 6vw, 6rem); padding-top: 2.5rem; border-top: 1px solid var(--fl-border); }
body.public-site .project-gallery h2 { margin: .5rem 0 1.5rem; font-size: clamp(2rem, 4vw, 3rem); font-weight: 780; }
body.public-site .gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
body.public-site .gallery-grid figure { margin: 0; overflow: hidden; border-radius: .7rem; background: var(--fl-surface); }
body.public-site .gallery-grid img { display: block; width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
body.public-site .gallery-grid figcaption { padding: .75rem 1rem; color: var(--fl-muted); font-size: .82rem; }
body.public-site .detail-back { margin-top: 3.5rem; }

/* Responsive */
@media (max-width: 1199.98px) { body.public-site #quienes-somos, body.public-site #donde-estamos, body.public-site #redes-sociales { scroll-margin-top:84px; } body.public-site .public-nav { min-height: 70px; } body.public-site .public-nav .navbar-collapse { padding: .7rem 0 1.2rem; border-top: 1px solid var(--fl-border); } body.public-site .public-nav .nav-link { padding: .62rem .4rem; } body.public-site .public-nav .nav-link::after { left: .4rem; right: auto; width: 2rem; } }
@media (max-width: 991.98px) { body.public-site .hero-layout { min-height: 0; grid-template-columns: 1fr; padding-top: 5rem; gap: 3rem; } body.public-site .hero-visual { width: min(70vw, 460px); justify-self: center; } body.public-site .public-card-grid, body.public-site .featured-grid.count-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.public-site .featured-grid.count-1 { grid-template-columns: 1fr; } body.public-site .social-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } body.public-site .about-layout { gap: 2rem; } body.public-site .detail-layout { grid-template-columns: 1fr; } body.public-site .detail-panel { max-width: 650px; width: 100%; } }
@media (max-width: 767.98px) { body.public-site .about-layout, body.public-site .location-layout { grid-template-columns: minmax(0, 1fr); } body.public-site .location-map__frame { min-height: 280px; } body.public-site .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.public-site .footer-inner { flex-direction: column; } body.public-site .footer-inner nav { justify-content: flex-start; } body.public-site .footer-contact { max-width:none; } body.public-site .detail-cover { aspect-ratio: 4 / 3; } }
@media (max-width: 575.98px) { body.public-site .container { padding-left: 1.15rem; padding-right: 1.15rem; } body.public-site .hero-layout { padding-top: 4rem; } body.public-site .hero-brand-title { width: 100%; } body.public-site .hero-actions { flex-direction: column; align-items: stretch; } body.public-site .hero-visual { width: min(82vw, 350px); } body.public-site .visual-note { font-size: .5rem; padding: .35rem .4rem; } body.public-site .visual-note i { width: .7rem; } body.public-site .note-two { left: -1%; } body.public-site .section-heading { align-items: flex-start; flex-direction: column; } body.public-site .public-card-grid, body.public-site .featured-grid.count-2, body.public-site .featured-grid.count-3, body.public-site .gallery-grid, body.public-site .social-grid { grid-template-columns: 1fr; } body.public-site .page-hero, body.public-site .detail-header { padding-top: 2rem; } body.public-site .breadcrumbs { margin-bottom: 1.6rem; } body.public-site .detail-cover { aspect-ratio: 5 / 4; } body.public-site .footer-bottom { flex-direction: column; } }
@media (max-width: 360px) { body.public-site .public-brand { font-size: .88rem; } body.public-site .brand-mark { grid-template-columns: repeat(2, 9px); grid-template-rows: repeat(2, 9px); } body.public-site .hero-brand-title { width: 100%; } body.public-site .hero-visual { width: 82vw; } }
@media (prefers-reduced-motion: reduce) { body.public-site *, body.public-site *::before, body.public-site *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }
