/* =========================================================
   MAR SALVATGE — ESPÈCIES
========================================================= */


/* =========================================================
   VARIABLES
========================================================= */

:root{

    --color-primario:#123A63;
    --color-secundario:#2B6E8A;
    --color-acento:#5FA8D3;

    --color-fondo:#FFFFFF;
    --color-fondo-claro:#F7F9FB;

    --color-texto:#2F3A45;
    --color-texto-suave:#6B7280;

    --fuente-titulos:"Montserrat", sans-serif;
    --fuente-texto:"Source Sans 3", sans-serif;

    --ancho-maximo:1280px;

}


/* =========================================================
   RESET
========================================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

html,
body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}

body{
    font-family:var(--fuente-texto);
    color:var(--color-texto);
    background:var(--color-fondo);
    line-height:1.6;
}

img{
    max-width:100%;
    display:block;
}

a{
    color:inherit;
}

.container{
    width:90%;
    max-width:var(--ancho-maximo);
    margin:0 auto;
}


/* =========================================================
   TEXTOS GENERALES
========================================================= */

.section-subtitle{
    display:block;

    font-family:var(--fuente-titulos);
    font-size:.78rem;
    font-weight:700;
    letter-spacing:2.5px;

    color:var(--color-acento);

    text-transform:uppercase;
}

.section-heading{
    max-width:720px;
    margin:0 auto 60px;
    text-align:center;
}

.section-heading h2{
    margin:15px 0 18px;

    font-family:var(--fuente-titulos);
    font-size:2.7rem;
    line-height:1.2;

    color:var(--color-primario);
}

.section-heading p{
    max-width:650px;
    margin:0 auto;

    font-size:1.08rem;
    color:var(--color-texto-suave);
}


/* =========================================================
   HEADER
========================================================= */

.header{
    position:fixed;

    top:0;
    left:0;

    width:100%;
    height:95px;

    z-index:1000;

    transition:.35s ease;
}

.header::before{

    content:"";

    position:absolute;
    inset:0;

    background:linear-gradient(
        to bottom,
        rgba(0,0,0,.45),
        rgba(0,0,0,.15),
        transparent
    );

    z-index:-1;

    transition:.35s;
}

.header.scrolled{

    background:rgba(255,255,255,.96);

    backdrop-filter:blur(14px);

    box-shadow:
        0 10px 30px rgba(0,0,0,.08);
}

.header.scrolled::before{
    opacity:0;
}

.header-container{

    height:95px;

    display:flex;
    align-items:center;
}

.logo{

    flex:0 0 18%;

    display:flex;
    align-items:center;

    margin-top:22px;
}

.logo img{

    height:95px;
    width:auto;

    display:block;
}

.main-nav{

    flex:1;

    display:flex;
    justify-content:center;

    margin-top:3px;
}

.nav-menu{

    display:flex;

    list-style:none;

    gap:42px;

    margin:0;
    padding:0;
}

.nav-menu a{

    color:white;

    text-decoration:none;

    font-family:var(--fuente-titulos);

    font-size:.95rem;
    font-weight:600;

    transition:.3s;
}

.nav-menu a:hover{
    color:#D7F2FF;
}

.header-actions{

    display:flex;
    align-items:center;

    gap:28px;
}

.header-actions a{

    color:white;

    text-decoration:none;

    font-family:var(--fuente-titulos);

    font-size:.92rem;

    transition:.3s;

    display:flex;
    align-items:center;

    gap:8px;
}

.header-actions a:hover{
    color:#D7F2FF;
}

.header-actions i{

    font-size:.85rem;

    opacity:.9;
}

.language-selector{

    display:flex;
    gap:8px;
    align-items:center;
}

.language-selector span{
    color:rgba(255,255,255,.5);
}

.header.scrolled .nav-menu a,
.header.scrolled .header-actions a{
    color:var(--color-primario);
}

.header.scrolled .language-selector span{
    color:#B5BBC2;
}

.current{
    position:relative;
}

.current::after{

    content:"";

    position:absolute;

    left:0;
    bottom:-8px;

    width:100%;
    height:2px;

    background:white;

    border-radius:50px;
}

.header.scrolled .current::after{
    background:var(--color-secundario);
}

.mobile-extra{
    display:none;
}

.menu-toggle{
    display:none;
}


/* =========================================================
   BOTONES
========================================================= */

.btn{

    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:12px;

    padding:14px 28px;

    border-radius:4px;

    background:var(--color-acento);
    color:white;

    text-decoration:none;

    font-family:var(--fuente-titulos);
    font-size:.9rem;
    font-weight:600;

    transition:.3s ease;
}

.btn:hover{

    background:var(--color-secundario);

    transform:translateY(-2px);
}

.btn span{
    font-size:1.1rem;
}


/* =========================================================
   HERO
========================================================= */

.especies-hero{

    min-height:65vh;

    background-image:
        linear-gradient(
            rgba(8,34,56,.55),
            rgba(8,34,56,.55)
        ),
        url("../images/especies/hero.jpg");

    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;

    display:flex;
    align-items:center;
}

.especies-hero-overlay{

    width:100%;

    padding:100px 0 70px;
}

.especies-hero-content{
    max-width:1000px;
}

.especies-hero .section-subtitle{
    color:#BEE8F6;
}

.especies-hero h1{

    color:white;

    font-family:var(--fuente-titulos);

    font-size:3.8rem;
    line-height:1.1;

    margin:20px 0;
}

.especies-hero p{

    max-width:650px;

    color:white;

    font-size:1.15rem;
    line-height:1.8;
}


/* =========================================================
   INTRODUCCIÓ
========================================================= */

.especies-intro{

    padding:100px 0 90px;

    text-align:center;

    background:var(--color-fondo);
}

.especies-intro .container{
    max-width:850px;
}

.especies-intro h2{

    margin:15px 0 25px;

    font-family:var(--fuente-titulos);

    font-size:2.7rem;
    line-height:1.2;

    color:var(--color-primario);
}

.especies-intro p{

    max-width:720px;

    margin:0 auto 15px;

    font-size:1.1rem;

    color:var(--color-texto-suave);
}

.especies-intro .intro-lead{

    font-size:1.25rem;
    line-height:1.75;

    color:var(--color-texto);
}


/* =========================================================
   CATEGORIES
========================================================= */

.species-categories{

    padding:100px 0;

    background:var(--color-fondo-claro);
}

.categories-grid{

    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:25px;
}

.category-card{

    position:relative;

    padding:40px 35px 35px;

    background:white;

    border-radius:18px;

    text-decoration:none;

    border:1px solid rgba(18,58,99,.06);

    box-shadow:
        0 8px 25px rgba(18,58,99,.05);

    transition:.35s ease;
}

.category-card:hover{

    transform:translateY(-7px);

    box-shadow:
        0 18px 40px rgba(18,58,99,.12);
}

.category-icon{

    width:58px;
    height:58px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin-bottom:25px;

    border-radius:50%;

    background:rgba(95,168,211,.12);

    color:var(--color-acento);

    font-size:1.45rem;

    transition:.3s ease;
}

.category-card:hover .category-icon{

    background:var(--color-acento);

    color:white;
}

.category-card h3{

    margin-bottom:10px;

    font-family:var(--fuente-titulos);

    font-size:1.35rem;

    color:var(--color-primario);
}

.category-card p{

    margin-bottom:22px;

    font-size:1rem;

    line-height:1.65;

    color:var(--color-texto-suave);
}

.category-link{

    display:inline-flex;
    align-items:center;

    gap:8px;

    color:var(--color-secundario);

    font-family:var(--fuente-titulos);

    font-size:.85rem;
    font-weight:600;
}

.category-link span{
    transition:.3s ease;
}

.category-card:hover .category-link span{
    transform:translateX(5px);
}


/* =========================================================
   ESPÈCIES DESTACADES
========================================================= */

.featured-species{

    padding:110px 0 100px;

    background:white;
}

.species-grid{

    display:grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:28px;
}


/* TARJETA */

.species-card{

    position:relative;

    height:420px;

    overflow:hidden;

    border-radius:20px;

    background:#DDEAF0;
}

.species-card img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:
        transform .6s ease;
}

.species-card:hover img{
    transform:scale(1.06);
}


/* OVERLAY */

.species-overlay{

    position:absolute;

    inset:0;

    display:flex;
    flex-direction:column;
    justify-content:flex-end;

    padding:35px;

    background:
        linear-gradient(
            to top,
            rgba(8,34,56,.82),
            rgba(8,34,56,.25) 55%,
            transparent
        );

    color:white;
}

.species-category{

    margin-bottom:8px;

    font-family:var(--fuente-titulos);

    font-size:.7rem;
    font-weight:700;

    letter-spacing:2px;

    color:#BEE8F6;
}

.species-overlay h3{

    margin-bottom:12px;

    font-family:var(--fuente-titulos);

    font-size:2rem;

    line-height:1.15;

    color:white;
}

.species-discover{

    display:flex;
    align-items:center;

    gap:8px;

    font-family:var(--fuente-titulos);

    font-size:.85rem;
    font-weight:600;

    opacity:0;

    transform:translateY(10px);

    transition:.35s ease;
}

.species-card:hover .species-discover{

    opacity:1;

    transform:translateY(0);
}

.species-discover span{
    transition:.3s;
}

.species-card:hover .species-discover span{
    transform:translateX(5px);
}


/* =========================================================
   TARJETAS PLACEHOLDER
========================================================= */

.species-placeholder{

    display:flex;
    align-items:center;
    justify-content:center;

    background:
        linear-gradient(
            135deg,
            #EAF4F8,
            #DCEEF4
        );
}

.species-placeholder-content{

    text-align:center;

    padding:30px;

    color:var(--color-secundario);
}

.species-placeholder-content i{

    display:block;

    margin-bottom:20px;

    font-size:2.2rem;

    color:var(--color-acento);
}

.species-placeholder-content .species-category{

    display:block;

    color:var(--color-secundario);
}

.species-placeholder-content h3{

    margin:8px 0 10px;

    font-family:var(--fuente-titulos);

    font-size:1.8rem;

    color:var(--color-primario);
}

.species-placeholder-content p{

    font-size:1rem;

    color:var(--color-texto-suave);
}


/* =========================================================
   ENLLAÇ MÉS ESPÈCIES
========================================================= */

.species-more{

    margin-top:55px;

    text-align:center;
}

.text-link{

    display:inline-flex;
    align-items:center;

    gap:10px;

    color:var(--color-secundario);

    text-decoration:none;

    font-family:var(--fuente-titulos);

    font-size:.95rem;
    font-weight:600;

    transition:.3s ease;
}

.text-link span{

    font-size:1.15rem;

    transition:.3s ease;
}

.text-link:hover{
    color:var(--color-primario);
}

.text-link:hover span{
    transform:translateX(5px);
}


/* =========================================================
   CONSERVACIÓ
========================================================= */

.species-conservation{

    position:relative;

    min-height:550px;

    background-image:
        linear-gradient(
            rgba(8,34,56,.72),
            rgba(8,34,56,.72)
        ),
        url("../images/especies/conservacio.jpg");

    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;

    display:flex;
    align-items:center;
}

.species-conservation-overlay{

    width:100%;

    padding:110px 0;
}

.conservation-content{

    max-width:650px;

    color:white;
}

.conservation-content .section-subtitle{
    color:#BEE8F6;
}

.conservation-content h2{

    margin:20px 0;

    font-family:var(--fuente-titulos);

    font-size:3rem;
    line-height:1.15;

    color:white;
}

.conservation-content p{

    margin-bottom:30px;

    font-size:1.1rem;
    line-height:1.8;

    color:rgba(255,255,255,.9);
}


/* =========================================================
   CTA FINAL
========================================================= */

.species-cta{

    padding:100px 0;

    text-align:center;

    background:var(--color-fondo);
}

.species-cta .container{
    max-width:850px;
}

.species-cta h2{

    margin:18px 0;

    font-family:var(--fuente-titulos);

    font-size:2.6rem;
    line-height:1.2;

    color:var(--color-primario);
}

.species-cta p{

    max-width:650px;

    margin:0 auto 30px;

    font-size:1.08rem;

    color:var(--color-texto-suave);
}


/* =========================================================
   FOOTER
========================================================= */

.footer{

    position:relative;

    overflow:hidden;

    background:var(--color-primario);
}

.footer::before{

    content:"";

    position:absolute;

    inset:0;

    background-image:
        url("../images/footer/tiburon.jpg");

    background-size:cover;

    background-position:center center;

    background-repeat:no-repeat;

    opacity:1;

    z-index:0;
}

.footer::after{

    content:"";

    position:absolute;

    inset:0;

    background:rgba(18,58,99,.78);

    z-index:1;
}

.footer-container{

    position:relative;

    z-index:2;

    width:90%;
    max-width:var(--ancho-maximo);

    margin:0 auto;

    padding:70px 0 60px;

    display:grid;

    grid-template-columns:
        1.4fr 1fr 1fr 1.2fr;

    gap:50px;
}


/* FOOTER BRAND */

.footer-brand img{

    width:127px;
    height:auto;

    margin-bottom:20px;
}

.footer-brand p{

    max-width:300px;

    margin-bottom:25px;

    color:rgba(255,255,255,.85);

    font-size:1.15rem;

    line-height:1.6;
}


/* SOCIAL */

.footer-social{

    display:flex;

    gap:12px;
}

.footer-social a{

    width:42px;
    height:42px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:1px solid rgba(255,255,255,.35);

    border-radius:50%;

    color:white;

    text-decoration:none;

    transition:.3s ease;
}

.footer-social a:hover{

    background:white;

    color:var(--color-primario);
}


/* FOOTER COLUMNES */

.footer-column h3{

    margin-bottom:20px;

    font-family:var(--fuente-titulos);

    font-size:1rem;

    color:white;
}

.footer-column ul{

    list-style:none;
}

.footer-column li{
    margin-bottom:10px;
}

.footer-column li a{

    color:rgba(255,255,255,.75);

    text-decoration:none;

    font-size:.95rem;

    transition:.3s ease;
}

.footer-column li a:hover{
    color:white;
}


/* CONTACTE */

.footer-contact p{

    display:flex;
    align-items:flex-start;

    gap:10px;

    margin-bottom:12px;

    color:rgba(255,255,255,.75);

    font-size:.95rem;
}

.footer-contact i{

    margin-top:5px;

    width:15px;

    color:#BEE8F6;
}


/* FOOTER BOTTOM */

.footer-bottom{

    position:relative;

    z-index:2;

    border-top:
        1px solid rgba(255,255,255,.15);
}

.footer-bottom-container{

    width:90%;
    max-width:var(--ancho-maximo);

    margin:0 auto;

    padding:22px 0;

    display:flex;

    align-items:center;
    justify-content:space-between;

    gap:30px;
}

.footer-bottom p{

    color:rgba(255,255,255,.55);

    font-size:.82rem;
}

.footer-bottom-container > div{

    display:flex;

    gap:20px;
}

.footer-bottom a{

    color:rgba(255,255,255,.55);

    text-decoration:none;

    font-size:.82rem;

    transition:.3s;
}

.footer-bottom a:hover{
    color:white;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width:1100px){

    .nav-menu{
        gap:25px;
    }

    .header-actions{
        gap:18px;
    }

    .especies-hero h1{
        font-size:3.2rem;
    }

    .categories-grid{
        grid-template-columns:
            repeat(2,1fr);
    }

    .species-card{
        height:380px;
    }

    .conservation-content h2{
        font-size:2.6rem;
    }

}


/* =========================================================
   MÒBIL
========================================================= */

@media (max-width:768px){


    /* -------------------------
       HEADER
    ------------------------- */

    .header{
        height:80px;
    }

    .header-container{

        width:100%;
        height:80px;

        display:flex;
        align-items:center;
        justify-content:space-between;

        padding:0 20px;
    }

    .logo{
        flex:0 0 auto;
    }

    .logo img{

        height:70px;

        margin-top:8px;
    }

    .menu-toggle{

        display:block;

        margin-left:auto;

        padding:8px;

        background:transparent;

        border:none;

        color:var(--color-primario);

        font-size:1.6rem;

        cursor:pointer;

        position:relative;

        z-index:1100;
    }

    .main-nav{
        display:none;
    }

    .main-nav.mobile-open{

        display:block;

        position:absolute;

        top:80px;
        left:0;

        width:100%;

        padding:25px 0 30px;

        background:rgba(18,58,99,.97);

        backdrop-filter:blur(12px);

        box-shadow:
            0 15px 30px rgba(0,0,0,.15);

        z-index:1000;
    }

    .main-nav.mobile-open .nav-menu{

        display:flex;

        flex-direction:column;

        align-items:center;
        justify-content:center;

        gap:20px;

        list-style:none;

        margin:0;
        padding:0;
    }

    .main-nav.mobile-open
    .nav-menu > li:not(.mobile-extra) a{

        color:white;

        text-decoration:none;

        font-family:var(--fuente-titulos);

        font-size:1rem;
        font-weight:600;
    }

    .main-nav.mobile-open .mobile-extra{
        display:flex;
    }

    .main-nav.mobile-open .mobile-extra a{

        display:flex;

        align-items:center;
        justify-content:center;

        gap:8px;

        color:white;

        text-decoration:none;

        font-family:var(--fuente-titulos);

        font-size:1rem;
        font-weight:600;
    }

    .main-nav.mobile-open
    .mobile-extra:first-of-type{

        margin-top:8px;

        padding-top:20px;

        border-top:
            1px solid rgba(255,255,255,.18);

        width:150px;

        justify-content:center;
    }

    .main-nav.mobile-open
    .mobile-extra i{

        font-size:.9rem;
    }

    .main-nav.mobile-open
    .mobile-language{

        display:flex;

        align-items:center;
        justify-content:center;

        gap:8px;

        margin-top:2px;
    }

    .main-nav.mobile-open
    .mobile-language span{

        color:rgba(255,255,255,.45);
    }

    .header-actions{
        display:none;
    }


    /* -------------------------
       GENERAL
    ------------------------- */

    .container{
        width:90%;
    }

    .section-heading{
        margin-bottom:45px;
    }

    .section-heading h2{
        font-size:2.15rem;
    }


    /* -------------------------
       HERO
    ------------------------- */

    .especies-hero{

        min-height:65svh;

        background-position:center center;
    }

    .especies-hero-overlay{

        min-height:65svh;

        padding:100px 20px 70px;

        display:flex;
        align-items:flex-end;
    }

    .especies-hero-content{
        width:100%;
    }

    .especies-hero h1{

        font-size:2.5rem;

        line-height:1.1;

        margin:15px 0;
    }

    .especies-hero p{

        max-width:100%;

        font-size:1.05rem;

        line-height:1.65;
    }


    /* -------------------------
       INTRO
    ------------------------- */

    .especies-intro{

        padding:75px 0 70px;
    }

    .especies-intro h2{
        font-size:2.2rem;
    }

    .especies-intro p{
        font-size:1rem;
    }

    .especies-intro .intro-lead{
        font-size:1.1rem;
    }


    /* -------------------------
       CATEGORIES
    ------------------------- */

    .species-categories{

        padding:75px 0;
    }

    .categories-grid{

        grid-template-columns:1fr;

        gap:18px;
    }

    .category-card{

        padding:30px;
    }


    /* -------------------------
       ESPECIES
    ------------------------- */

    .featured-species{

        padding:80px 0 75px;
    }

    .species-grid{

        grid-template-columns:1fr;

        gap:18px;
    }

    .species-card{

        height:330px;

        border-radius:16px;
    }

    .species-overlay{

        padding:25px;
    }

    .species-overlay h3{
        font-size:1.7rem;
    }

    .species-discover{

        opacity:1;

        transform:none;
    }


    /* -------------------------
       CONSERVACIÓ
    ------------------------- */

    .species-conservation{

        min-height:auto;

        background-attachment:scroll;

        background-position:center center;
    }

    .species-conservation-overlay{

        padding:80px 0;
    }

    .conservation-content{
        max-width:100%;
    }

    .conservation-content h2{

        font-size:2.25rem;

        line-height:1.2;
    }

    .conservation-content p{

        font-size:1rem;

        line-height:1.7;
    }


    /* -------------------------
       CTA
    ------------------------- */

    .species-cta{

        padding:75px 0;
    }

    .species-cta h2{

        font-size:2.15rem;
    }

    .species-cta p{
        font-size:1rem;
    }


    /* -------------------------
       FOOTER
    ------------------------- */

    .footer::before{

        background-image:
            url("../images/footer/tiburon-vertical.jpg");

        background-size:cover;

        background-position:center center;

        opacity:1;
    }

    .footer::after{
        background:rgba(18,58,99,.82);
    }

    .footer-container{

        display:grid;

        grid-template-columns:1fr;

        gap:45px;

        padding:60px 0 50px;

        text-align:center;
    }

    .footer-brand p{

        max-width:320px;

        margin:0 auto 25px;
    }

    .footer-social{
        justify-content:center;
    }

    .footer-column h3{
        margin-bottom:15px;
    }

    .footer-contact p{
        justify-content:center;
    }

    .footer-bottom-container{

        flex-direction:column;

        text-align:center;

        gap:15px;
    }

    .footer-bottom-container > div{

        flex-wrap:wrap;

        justify-content:center;

        gap:12px 18px;
    }

}
/* Destinacions dels botons Explora */
.species-card[id], #protagonistes, #descobreix-especies {
    scroll-margin-top: 120px;
}
.category-card:focus-visible, .text-link:focus-visible {
    outline: 3px solid var(--color-primario);
    outline-offset: 5px;
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}

/* Pàgina de protagonistes: capçalera clara sobre el llistat */
.protagonistes-page .featured-species { padding-top: 160px; }
.protagonistes-page .header { background: rgba(255,255,255,.96); }
.protagonistes-page .header::before { opacity: 0; }
.protagonistes-page .nav-menu a,
.protagonistes-page .header-actions a { color: var(--color-primario); }
.protagonistes-page .language-selector span { color: #6B7280; }
@media (max-width: 768px) {
    .protagonistes-page .featured-species { padding-top: 120px; }
    .protagonistes-page .main-nav.mobile-open .nav-menu a { color: white; }
    .protagonistes-page .main-nav.mobile-open .mobile-language span { color: rgba(255,255,255,.65); }
}


/* Fitxes clicables, amb el mateix aspecte visual. */
a.species-card{
    display:block;
    color:inherit;
    text-decoration:none;
}
a.species-card:focus-visible{
    outline:3px solid var(--color-secundario);
    outline-offset:5px;
}
a.species-card:focus-visible .species-discover{
    opacity:1;
    transform:translateY(0);
}
@media (hover:none){
    a.species-card .species-discover{
        opacity:1;
        transform:translateY(0);
    }
}
