/* ROS & SUTRIAS - minimal modern static site */
:root {
    --bg: #0d0d0d;
    --fg: #f3f3f3;
    --muted: #888;
    --accent: #c9a96e;
    --line: #2a2a2a;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
    background: var(--bg);
    color: var(--fg);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--fg); }
img { max-width: 100%; height: auto; display: block; }

/* Layout */
.site-header {
    border-bottom: 1px solid var(--line);
    padding: 18px 32px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    position: sticky;
    top: 0;
    background: var(--bg);
    z-index: 50;
}
.brand {
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--fg);
    font-size: 14px;
}
.topnav { margin-left: auto; display: flex; gap: 22px; flex-wrap: wrap; align-items: center; font-size: 14px; }
.topnav a { color: var(--muted); letter-spacing: 0.05em; }
.topnav a.active, .topnav a:hover { color: var(--fg); }
.lang-switch { margin-left: 12px; display: flex; gap: 8px; padding-left: 12px; border-left: 1px solid var(--line); }
.lang-switch a { font-size: 12px; color: var(--muted); }
.lang-switch a.active { color: var(--accent); }

main { max-width: 1280px; margin: 0 auto; padding: 32px; }
.site-footer { border-top: 1px solid var(--line); padding: 24px 32px; text-align: center; color: var(--muted); font-size: 13px; }
.muted { color: var(--muted); }

/* Landing (root) - original 2010 design with images */
.landing-body {
    background: #000;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.landing-frame {
    width: 100%;
    max-width: 990px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
}
.landing-langs-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
    line-height: 0;
}
.landing-langs-row .lang-btn {
    display: block;
    line-height: 0;
    overflow: hidden;
}
.landing-langs-row .lang-btn img {
    width: 100%;
    height: auto;
    display: block;
    transition: opacity 0.15s ease;
}
.landing-letra {
    margin: 24px 0 0;
    line-height: 0;
}
.landing-letra img {
    width: 100%;
    height: auto;
    display: block;
}
.landing-credits {
    display: block;
    margin-top: 16px;
    line-height: 0;
}
.landing-credits img {
    width: 100%;
    height: auto;
    display: block;
    transition: opacity 0.15s ease;
}
.landing-credits:hover img { opacity: 0.7; }

/* Per-language home - centered hero (no bg), intro, featured grid */
.home-hero-plain {
    text-align: center;
    padding: 80px 24px 64px;
    border-bottom: 1px solid var(--line);
}
.home-title {
    font-size: clamp(22px, 4.5vw, 44px);
    letter-spacing: 0.18em;
    margin: 0 0 16px;
    font-weight: 300;
    color: var(--fg);
}
.home-tagline {
    color: var(--muted);
    letter-spacing: 0.1em;
    font-size: 14px;
    text-transform: uppercase;
    margin: 0 0 48px;
}
.home-nav-min {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    justify-content: center;
}
.home-link {
    color: var(--fg);
    font-size: 16px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 300;
    transition: color 0.2s ease, letter-spacing 0.25s ease;
    display: inline-block;
}
.home-link:hover {
    color: var(--accent);
    letter-spacing: 0.28em;
}

.home-intro {
    max-width: 760px;
    margin: 64px auto 64px;
    text-align: center;
    color: #d8d8d8;
    font-size: 17px;
    line-height: 1.85;
    letter-spacing: 0.01em;
}
.home-intro p { margin: 0; }

.home-featured { margin-bottom: 48px; }
.home-featured-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
}
.home-featured-head h2 {
    margin: 0;
    font-size: 16px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 500;
}
.home-featured-all {
    color: var(--muted);
    font-size: 13px;
    letter-spacing: 0.1em;
}
.home-featured-all:hover { color: var(--accent); }
.home-featured-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 4px;
}
.home-featured-card {
    position: relative;
    display: block;
    aspect-ratio: 3/2;
    overflow: hidden;
    background: #111;
}
.home-featured-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.3s ease, transform 0.6s ease;
}
.home-featured-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    padding: 18px 20px;
    background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,0.85) 100%);
    color: #fff;
    font-size: 14px;
    letter-spacing: 0.04em;
    transition: background 0.3s ease;
    opacity: 0;
}
.home-featured-card:hover img { opacity: 0.55; transform: scale(1.04); }
.home-featured-card:hover .home-featured-overlay {
    opacity: 1;
    background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.85) 100%);
}
.home-featured-name { color: #fff; }
.home-featured-year { color: var(--accent); font-size: 12px; letter-spacing: 0.15em; }

@media (max-width: 700px) {
    .home-hero-plain { padding: 56px 16px 40px; }
    .home-nav-min { gap: 18px; }
    .home-link { font-size: 14px; letter-spacing: 0.18em; }
    .home-link:hover { letter-spacing: 0.22em; }
    .home-intro { margin: 40px auto; font-size: 15px; }
}

/* Page heading */
.page-head { padding: 16px 0 24px; border-bottom: 1px solid var(--line); margin-bottom: 24px; }
.page-head h1 { margin: 0 0 4px; letter-spacing: 0.15em; font-size: 28px; }

/* Project grid - image only with hover overlay */
.proj-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 4px;
}
.proj-card {
    position: relative;
    display: block;
    aspect-ratio: 1/1;
    overflow: hidden;
    background: #111;
    color: var(--fg);
}
.proj-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: opacity 0.3s ease, filter 0.3s ease, transform 0.6s ease;
}
.proj-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 24px;
    background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.9) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}
.proj-overlay h3 {
    margin: 0 0 4px;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.3;
    color: #fff;
    letter-spacing: 0.02em;
}
.proj-overlay-year {
    color: var(--accent);
    font-size: 12px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}
.proj-card:hover .proj-thumb-img {
    opacity: 0.55;
    filter: grayscale(0.2);
    transform: scale(1.03);
}
.proj-card:hover .proj-overlay {
    opacity: 1;
    background: linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.85) 100%);
}

/* Project detail */
.project { max-width: 980px; margin: 0 auto; }
.back { display: inline-block; margin-bottom: 24px; color: var(--muted); font-size: 14px; }
.proj-header { padding-bottom: 16px; border-bottom: 1px solid var(--line); margin-bottom: 24px; }
.proj-tag { color: var(--accent); margin: 0 0 8px; font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase; }
.proj-header h1 { margin: 0; font-size: 28px; line-height: 1.25; }
.proj-datos { background: #161616; padding: 16px 20px; margin-bottom: 24px; border-left: 2px solid var(--accent); font-size: 14px; }
.proj-memoria { font-size: 16px; line-height: 1.75; max-width: 720px; }
.proj-memoria p { margin-bottom: 1em; }
.proj-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin-top: 32px; }
.gal-item { display: block; background: #111; aspect-ratio: 4/3; overflow: hidden; }
.gal-item img { width: 100%; height: 100%; object-fit: cover; }
.gal-item:hover img { opacity: 0.85; }
.premio { margin-top: 24px; padding: 16px; border: 1px solid var(--line); background: #111; max-width: 600px; }

/* Team */
.equipo-intro { max-width: 720px; margin: 0 auto 32px; font-size: 16px; line-height: 1.75; color: #d0d0d0; }
.team-section { margin-bottom: 40px; }
.team-section h2 { font-size: 18px; letter-spacing: 0.1em; border-bottom: 1px solid var(--line); padding-bottom: 8px; margin-bottom: 16px; }
.team-list { list-style: none; padding: 0; margin: 0; }
.team-list li { padding: 8px 0; border-bottom: 1px solid var(--line); }
.tema-h3 { font-size: 13px; letter-spacing: 0.15em; color: var(--accent); margin-top: 16px; margin-bottom: 8px; text-transform: uppercase; }
.ext-list { list-style: none; padding: 0; margin: 0 0 16px; }
.ext-list li { padding: 4px 0; color: #d0d0d0; }

/* Docencia */
.doc-list { max-width: 800px; margin: 0 auto; }
.doc-item { padding: 24px 0; border-bottom: 1px solid var(--line); }
.doc-item h3 { color: var(--accent); margin: 0 0 12px; font-size: 15px; letter-spacing: 0.1em; }
.doc-body { line-height: 1.75; color: #d0d0d0; }

/* News */
.news-item { padding: 16px 0; border-bottom: 1px solid var(--line); margin-bottom: 16px; max-width: 720px; }
.news-date { color: var(--muted); font-size: 12px; letter-spacing: 0.1em; margin: 0 0 4px; }
.news-item h2 { margin: 0 0 12px; font-size: 22px; }

/* Contact */
.contact { padding: 24px 0; }
.contact p { font-size: 18px; }
.contact a { font-size: 22px; }

/* novaWeb gallery */
.nova-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 8px; }
.nova-item { display: block; aspect-ratio: 3/2; overflow: hidden; background: #111; }
.nova-item img { width: 100%; height: 100%; object-fit: cover; }

/* Mobile */
@media (max-width: 700px) {
    .site-header { padding: 12px 16px; }
    main { padding: 16px; }
    .topnav { gap: 14px; }
    .lang-switch { padding-left: 8px; margin-left: 4px; }
    .hero h1 { font-size: 26px; letter-spacing: 0.18em; }
    .landing-title { font-size: 32px; }
}
