/* ── Google Fonts ── */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300..800;1,9..40,300..800&family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&display=swap');

/* ── Variables ── */
:root {
  --bg:         hsl(45,38%,93%);
  --fg:         hsl(30,10%,20%);
  --card:       hsl(0,0%,100%);
  --card-fg:    hsl(30,10%,20%);
  --primary:    hsl(195,85%,38%);
  --primary-fg: hsl(0,0%,100%);
  --muted:      hsl(45,30%,88%);
  --muted-fg:   hsl(30,5%,40%);
  --border:     hsl(30,15%,85%);
  --secondary:  hsl(30,10%,20%);
  --secondary-fg: hsl(45,38%,93%);
  --radius: 1rem;
  --shadow: 0 4px 20px rgba(0,0,0,.08);
  --shadow-lg: 0 8px 40px rgba(0,0,0,.13);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--bg);color:var(--fg);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
.serif{font-family:'Playfair Display',Georgia,serif;font-weight:700;letter-spacing:-.02em;line-height:1.15}
.container{max-width:1280px;margin-inline:auto;padding-inline:1.5rem}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1.5rem;border-radius:.5rem;font-weight:600;font-family:inherit;font-size:.9rem;border:2px solid transparent;cursor:pointer;transition:all .2s;white-space:nowrap;line-height:1.4}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-primary:hover{background:hsl(195,85%,30%)}
.btn-primary:active{transform:scale(.98)}
.btn-outline{background:transparent;color:var(--primary);border-color:var(--primary)}
.btn-outline:hover{background:var(--primary);color:#fff}
.btn-lg{padding:.7rem 2rem;font-size:1rem}
.btn-sm{padding:.3rem 1rem;font-size:.85rem}
.btn-icon{width:2.25rem;height:2.25rem;padding:0;border-radius:50%}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:hsla(45,38%,93%,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);transition:box-shadow .2s}
.site-header.scrolled{box-shadow:0 2px 16px rgba(0,0,0,.07)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:5rem}
.site-logo img{height:3rem;width:auto}
.site-nav{display:none;align-items:center;gap:2rem}
@media(min-width:768px){.site-nav{display:flex}}
.site-nav a{font-size:.875rem;font-weight:500;position:relative;padding-bottom:2px;transition:color .2s}
.site-nav a:hover,.site-nav a.active{color:var(--primary)}
.site-nav a.active::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--primary);border-radius:1px}
.header-cta{display:none}
@media(min-width:768px){.header-cta{display:inline-flex}}
.menu-toggle{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;background:none;border:none;border-radius:.5rem;cursor:pointer;color:var(--fg)}
.menu-toggle:hover{background:var(--muted)}
@media(min-width:768px){.menu-toggle{display:none}}
.mobile-nav{display:none;position:fixed;inset:0;z-index:49;background:var(--bg);flex-direction:column;padding:5.5rem 1.5rem 2rem;gap:0}
.mobile-nav.open{display:flex}
.mobile-nav a{font-size:1.125rem;font-weight:600;padding:.875rem 0;border-bottom:1px solid var(--border);transition:color .2s}
.mobile-nav a:hover{color:var(--primary)}
.mobile-nav .btn{margin-top:1.5rem;width:100%;justify-content:center}

/* Layout helpers */
.section-py{padding:5rem 0}
@media(min-width:768px){.section-py{padding:6rem 0}}
.section-center{max-width:52rem;margin-inline:auto;text-align:center;margin-bottom:4rem}
.section-title{font-size:1.875rem;margin-bottom:1.25rem}
@media(min-width:768px){.section-title{font-size:2.25rem}}
@media(min-width:1024px){.section-title{font-size:3rem}}
.section-desc{font-size:1.0625rem;color:var(--muted-fg);line-height:1.7}
.text-balance{text-wrap:balance}
.bg-bg{background:var(--bg)}
.bg-muted{background:var(--muted)}
.bg-primary{background:var(--primary);color:#fff}
.bg-dark{background:var(--secondary);color:var(--secondary-fg)}

/* Hero */
.hero-section{background:var(--bg);padding:5rem 0}
@media(min-width:768px){.hero-section{padding:8rem 0}}
.hero-grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}
@media(min-width:1024px){.hero-grid{grid-template-columns:1fr 1fr}}
.hero-title{font-size:2.25rem;margin-bottom:1.5rem}
@media(min-width:768px){.hero-title{font-size:3rem}}
@media(min-width:1024px){.hero-title{font-size:3.75rem}}
.hero-desc{font-size:1.0625rem;color:var(--muted-fg);line-height:1.7;margin-bottom:2rem;max-width:60ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem}
.hero-images{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.hero-col{display:flex;flex-direction:column;gap:1rem}
.hero-col:last-child{padding-top:2rem}
.hero-img{width:100%;object-fit:cover;border-radius:1rem}
.h-48{height:12rem}.h-64{height:16rem}

/* About */
.about-images{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:768px){.about-images{grid-template-columns:1fr 1fr}}
.about-img{width:100%;height:24rem;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow-lg)}

/* Stats */
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 3rem}
@media(min-width:768px){.stats-grid{grid-template-columns:repeat(4,1fr)}}
.stat-item{text-align:center}
.stat-number{font-family:'Playfair Display',serif;font-weight:700;font-size:2.5rem;line-height:1;margin-bottom:.5rem}
@media(min-width:768px){.stat-number{font-size:3.5rem}}
.stat-label{font-size:.875rem;opacity:.9}

/* Values */
.values-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;max-width:62rem;margin-inline:auto}
@media(min-width:768px){.values-grid{grid-template-columns:1fr 1fr}}
.value-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:all .3s;cursor:pointer}
.value-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.value-inner{display:flex;align-items:flex-start;gap:1rem}
.value-icon{padding:.75rem;border-radius:.75rem;background:hsl(195 85% 38% / .1);color:var(--primary);flex-shrink:0}
.value-icon svg{width:1.5rem;height:1.5rem;display:block}
.value-title{font-size:1.0625rem;font-weight:600;margin-bottom:.25rem}
.value-desc{font-size:.875rem;color:var(--muted-fg);display:none;margin-top:.5rem;line-height:1.6}
.value-card.open .value-desc{display:block}

/* Team */
.team-grid{display:grid;grid-template-columns:1fr;gap:2rem;max-width:56rem;margin-inline:auto}
@media(min-width:768px){.team-grid{grid-template-columns:1fr 1fr}}
.team-grid.four{max-width:none}
@media(min-width:1024px){.team-grid.four{grid-template-columns:repeat(4,1fr)}}
.team-card{background:var(--card);border-radius:var(--radius);overflow:hidden;transition:all .3s}
.team-card:hover{box-shadow:var(--shadow-lg)}
.team-photo-wrap{aspect-ratio:1/1;overflow:hidden}
.team-photo{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.team-card:hover .team-photo{transform:scale(1.05)}
.team-info{padding:1.25rem}
.team-name{font-size:1rem;font-weight:600;margin-bottom:.2rem}
.team-role{font-size:.875rem;color:var(--primary);margin-bottom:.15rem}
.team-uni{font-size:.8125rem;color:var(--muted-fg)}

/* Projects */
.projects-grid{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:768px){.projects-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.projects-grid{grid-template-columns:repeat(3,1fr)}}
.project-card{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:all .3s}
.project-card:hover{box-shadow:var(--shadow-lg)}
.project-img-wrap{aspect-ratio:4/3;overflow:hidden}
.project-img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.project-card:hover .project-img{transform:scale(1.05)}
.project-info{padding:1.5rem}
.project-title{font-size:1.125rem;font-weight:600;margin-bottom:.4rem}
.project-location{font-size:.85rem;color:var(--primary);margin-bottom:.75rem}
.project-desc{font-size:.9rem;color:var(--muted-fg);line-height:1.6}

/* Accordion */
.accordion-wrap{max-width:56rem;margin-inline:auto;display:flex;flex-direction:column;gap:1rem}
.accordion-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:0 1.5rem;transition:all .3s}
.accordion-item.open{box-shadow:var(--shadow)}
.accordion-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1.5rem 0;background:none;border:none;text-align:left;font-size:1rem;font-weight:600;font-family:inherit;color:var(--fg);cursor:pointer;transition:color .2s;gap:1rem}
.accordion-trigger:hover{color:var(--primary)}
.accordion-icon{flex-shrink:0;color:var(--muted-fg);transition:transform .2s}
.accordion-item.open .accordion-icon{transform:rotate(180deg)}
.accordion-content{display:none;padding-bottom:1.5rem;font-size:.9375rem;color:var(--muted-fg);line-height:1.7}
.accordion-item.open .accordion-content{display:block}

/* Blog */
.blog-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem;flex-wrap:wrap;gap:1rem}
.blog-grid{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:768px){.blog-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.blog-grid{grid-template-columns:repeat(3,1fr)}}
.blog-featured{grid-column:1}
@media(min-width:768px){.blog-featured{grid-column:span 2}}
.blog-card{display:block;background:var(--card);border-radius:var(--radius);overflow:hidden;transition:all .3s;color:var(--fg)}
.blog-card:hover{box-shadow:var(--shadow-lg)}
.blog-img-wrap{overflow:hidden}
.blog-img-wrap.r16-9{aspect-ratio:16/9}
.blog-img-wrap.r4-3{aspect-ratio:4/3}
.blog-img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.blog-card:hover .blog-img{transform:scale(1.05)}
.blog-body{padding:1.5rem}
.blog-body.lg{padding:1.5rem 2rem 2rem}
.blog-tag{display:inline-block;padding:.2rem .75rem;border-radius:9999px;background:hsl(195 85% 38% / .1);color:var(--primary);font-size:.75rem;font-weight:500;margin-bottom:.75rem}
.blog-title{font-weight:600;margin-bottom:.6rem;line-height:1.35;transition:color .2s}
.blog-card:hover .blog-title{color:var(--primary)}
.blog-title.xl{font-size:1.5rem}
@media(min-width:768px){.blog-title.xl{font-size:1.875rem}}
.blog-excerpt{color:var(--muted-fg);font-size:.9rem;line-height:1.6;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.blog-meta{display:flex;align-items:center;justify-content:space-between}
.blog-date{display:flex;align-items:center;gap:.4rem;font-size:.8125rem;color:var(--muted-fg)}
.blog-date svg{width:1rem;height:1rem}
.blog-arrow{color:var(--primary);transition:transform .2s}
.blog-card:hover .blog-arrow{transform:translateX(4px)}
.blog-mobile-link{text-align:center;margin-top:2rem}
@media(min-width:768px){.blog-mobile-link{display:none}}
.blog-cats{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:3rem}
.cat-btn{padding:.35rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:500;border:2px solid var(--border);background:var(--card);color:var(--fg);cursor:pointer;transition:all .2s;font-family:inherit}
.cat-btn:hover,.cat-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}

/* Footer */
.site-footer{background:var(--secondary);color:var(--secondary-fg)}
.footer-top{border-bottom:1px solid rgba(255,255,255,.1);padding:5rem 0}
.footer-top-grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:start}
@media(min-width:1024px){.footer-top-grid{grid-template-columns:1fr 1fr}}
.footer-title{font-size:1.875rem;margin-bottom:1rem}
@media(min-width:768px){.footer-title{font-size:2.25rem}}
.footer-desc{font-size:1.0625rem;color:var(--muted-fg);line-height:1.7}
.form-row{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1rem}
@media(min-width:640px){.form-row{grid-template-columns:1fr 1fr}}
.form-group{display:flex;flex-direction:column;gap:.4rem}
.form-label{font-size:.875rem;font-weight:500}
.form-input{height:2.25rem;padding:.25rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--card-fg);font-size:.875rem;font-family:inherit;transition:all .2s;width:100%}
.form-input::placeholder{color:var(--muted-fg)}
.form-input:focus{outline:none;box-shadow:0 0 0 2px var(--primary);border-color:var(--primary)}
.form-submit{margin-top:.5rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.form-msg{font-size:.875rem}
.form-msg.success{color:#4ade80}
.form-msg.error{color:#f87171}
.footer-links-grid{display:grid;grid-template-columns:1fr;gap:2rem;margin-bottom:3rem}
@media(min-width:768px){.footer-links-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.footer-links-grid{grid-template-columns:repeat(4,1fr)}}
.footer-col-title{font-size:1.0625rem;font-weight:600;margin-bottom:1rem}
.footer-col-desc{font-size:.875rem;color:var(--muted-fg);line-height:1.7}
.footer-nav{display:flex;flex-direction:column;gap:.5rem}
.footer-nav a{font-size:.875rem;color:var(--muted-fg);transition:color .2s}
.footer-nav a:hover{color:var(--primary)}
.contact-list{display:flex;flex-direction:column;gap:.75rem}
.contact-item{display:flex;align-items:flex-start;gap:.5rem;font-size:.875rem;color:var(--muted-fg)}
.contact-item svg{width:1rem;height:1rem;margin-top:.125rem;color:var(--primary);flex-shrink:0}
.social-links{display:flex;gap:.75rem;flex-wrap:wrap}
.social-link{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.5rem;background:var(--muted);color:var(--fg);transition:all .2s}
.social-link:hover{background:var(--primary);color:#fff}
.social-link svg{width:1.25rem;height:1.25rem}
.footer-bar{padding:2rem 0;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;align-items:center;gap:1rem}
@media(min-width:768px){.footer-bar{flex-direction:row;justify-content:space-between}}
.footer-bar p{font-size:.875rem;color:var(--muted-fg)}
.footer-legal{display:flex;gap:1.5rem}
.footer-legal a{font-size:.875rem;color:var(--muted-fg);transition:color .2s}
.footer-legal a:hover{color:var(--primary)}

/* Eventos */
.event-card{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:all .3s;margin-bottom:2rem}
.event-card:hover{box-shadow:var(--shadow-lg)}
.event-img{width:100%;height:20rem;object-fit:cover}
.event-body{padding:2rem}
.event-title{font-size:1.375rem;font-weight:700;margin-bottom:.75rem;line-height:1.3}
.event-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}
.event-meta-item{display:flex;align-items:center;gap:.4rem;font-size:.875rem;color:var(--muted-fg)}
.event-meta-item svg{width:1rem;height:1rem;color:var(--primary);flex-shrink:0}
.event-desc{color:var(--muted-fg);line-height:1.7;font-size:.9375rem;margin-bottom:1rem}
.event-participants{font-size:.875rem;color:var(--muted-fg)}
.event-participants strong{color:var(--fg)}
.badge{display:inline-flex;align-items:center;padding:.2rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;margin-bottom:.75rem}
.badge-green{background:hsl(150,80%,90%);color:hsl(150,60%,25%)}
.badge-gray{background:var(--muted);color:var(--muted-fg)}
.past-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media(min-width:768px){.past-grid{grid-template-columns:1fr 1fr}}
.past-card{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:all .3s}
.past-card:hover{box-shadow:var(--shadow-lg)}
.past-img{width:100%;height:12rem;object-fit:cover}
.past-body{padding:1.25rem}
.past-title{font-size:1rem;font-weight:600;margin-bottom:.5rem;line-height:1.3}
.past-loc{font-size:.8125rem;color:var(--primary);margin-bottom:.35rem}
.past-desc{font-size:.875rem;color:var(--muted-fg);line-height:1.6}

/* Investigacion */
.research-area-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media(min-width:768px){.research-area-grid{grid-template-columns:1fr 1fr}}
.research-area-card{background:var(--card);border-radius:var(--radius);padding:1.75rem;border:1px solid var(--border);transition:all .3s}
.research-area-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.research-icon{padding:.75rem;border-radius:.75rem;background:hsl(195 85% 38% / .1);color:var(--primary);width:fit-content;margin-bottom:1rem}
.research-icon svg{width:1.5rem;height:1.5rem;display:block}
.research-title{font-size:1.125rem;font-weight:700;margin-bottom:.5rem}
.research-desc{font-size:.9rem;color:var(--muted-fg);line-height:1.6;margin-bottom:1rem}
.research-projects{display:flex;flex-direction:column;gap:.4rem}
.research-project-item{display:flex;align-items:flex-start;gap:.5rem;font-size:.8125rem;color:var(--muted-fg)}
.research-project-item::before{content:'•';color:var(--primary);flex-shrink:0}

/* Nosotros */
.mv-grid{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:768px){.mv-grid{grid-template-columns:1fr 1fr}}
.mv-card{background:var(--card);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow)}
.mv-icon{padding:.75rem;border-radius:.75rem;background:hsl(195 85% 38% / .1);color:var(--primary);width:fit-content;margin-bottom:1.5rem}
.mv-icon svg{width:2rem;height:2rem;display:block}
.mv-title{font-size:1.5rem;margin-bottom:1rem}
.mv-desc{font-size:.9375rem;color:var(--muted-fg);line-height:1.7}
.history-grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}
@media(min-width:1024px){.history-grid{grid-template-columns:1fr 1fr}}
.history-images{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.history-img{width:100%;height:16rem;object-fit:cover;border-radius:var(--radius)}
.history-img:last-child{margin-top:2rem}
.history-text-icon{padding:.75rem;border-radius:.75rem;background:hsl(195 85% 38% / .1);color:var(--primary);width:fit-content;margin-bottom:1.5rem}
.history-text-icon svg{width:2rem;height:2rem;display:block}
.history-body{display:flex;flex-direction:column;gap:1rem;color:var(--muted-fg);line-height:1.7;font-size:.9375rem}
.cta-strip{padding:5rem 0}
.cta-strip-inner{max-width:48rem;margin-inline:auto;text-align:center}
.cta-strip-desc{font-size:1.0625rem;opacity:.9;line-height:1.7;margin-bottom:2rem}

/* Page hero */
.page-hero{background:var(--bg);padding:5rem 0}
@media(min-width:768px){.page-hero{padding:8rem 0}}
.page-hero-inner{max-width:56rem;margin-inline:auto;text-align:center}
.page-hero-title{font-size:2.5rem;margin-bottom:1.25rem}
@media(min-width:768px){.page-hero-title{font-size:3.5rem}}
.page-hero-desc{font-size:1.0625rem;color:var(--muted-fg);line-height:1.7;max-width:48ch;margin-inline:auto}

/* Animation */
.fade-up{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.fade-up.visible{opacity:1;transform:none}

/* Misc */
.hidden-md{display:none}
@media(min-width:768px){.hidden-md{display:inline-flex}}
.show-mobile-only{display:block}
@media(min-width:768px){.show-mobile-only{display:none}}
