*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:"Poppins",sans-serif;
    background:#fbf8f1;
    color:#1f1f1f;
}

/* HEADER 

.header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    min-height:92px;
    padding:18px 6%;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:38px;
    z-index:999;
    background:transparent;
    transition:.35s ease;
}

.header.scrolled{
    background:#fff;
    min-height:78px;
    padding:12px 6%;
    box-shadow:0 12px 35px rgba(0,0,0,.08);
}

.logo{
    display:flex;
    align-items:center;
    text-decoration:none;
    z-index:1000;
}

.logo-img{
    width:140px;
    height:auto;
    display:block;
    filter:drop-shadow(0 8px 18px rgba(0,0,0,.55));
}

.logo-text{
    display:none;
    color:#1f1f1f;
    line-height:1;
    text-align:center;
}

.logo-text strong{
    display:block;
    font-family:'Cormorant Garamond',serif;
    font-size:19px;
    font-weight:600;
    letter-spacing:2px;
}

.logo-text span{
    display:block;
    font-size:8px;
    letter-spacing:4px;
    margin-top:4px;
    color:#666;
}

.header.scrolled .logo-img{
    display:none;
}

.header.scrolled .logo-text{
    display:block;
}

.nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:30px;
}

.nav a{
    position:relative;
    color:#fff;
    text-decoration:none;
    font-size:11px;
    font-weight:500;
    letter-spacing:1px;
    text-transform:uppercase;
    white-space:nowrap;
    transition:.35s ease;
}

.nav a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-9px;
    width:0;
    height:1px;
    background:#c6a365;
    transition:.35s ease;
}

.nav a:hover,
.nav a.active-link{
    color:#c6a365;
}

.nav a:hover::after,
.nav a.active-link::after{
    width:100%;
}

.header.scrolled .nav a{
    color:#1f1f1f;
}

.header.scrolled .nav a:hover,
.header.scrolled .nav a.active-link{
    color:#b89a63;
}

.talk-btn{
    color:#fff;
    border:1px solid rgba(255,255,255,.75);
    padding:13px 26px;
    text-decoration:none;
    font-size:11px;
    font-weight:600;
    letter-spacing:.9px;
    text-transform:uppercase;
    white-space:nowrap;
    transition:.35s ease;
}

.talk-btn:hover{
    background:#fff;
    color:#111;
}

.header.scrolled .talk-btn{
    color:#1f1f1f;
    border:1px solid #1f1f1f;
    background:transparent;
}

.header.scrolled .talk-btn:hover{
    background:#1f1f1f;
    color:#fff;
}

.menu-btn{
    display:none;
    color:#fff;
    font-size:32px;
    cursor:pointer;
    z-index:1001;
}

.header.scrolled .menu-btn{
    color:#1f1f1f;
}

/* HERO ECOSISTEMA */

.ecosystem-hero{
    min-height:100vh;
    position:relative;
    display:flex;
    align-items:center;
    padding:140px 8% 80px;
    overflow:hidden;
    background:#111;
}

.ecosystem-hero-bg{
    position:absolute;
    inset:0;
    z-index:1;
}

.ecosystem-hero-bg img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center right;
    display:block;
}

.ecosystem-hero-overlay{
    position:absolute;
    inset:0;
    z-index:2;
    background:linear-gradient(
        90deg,
        rgba(10,10,10,.94) 0%,
        rgba(10,10,10,.82) 40%,
        rgba(10,10,10,.45) 75%,
        rgba(10,10,10,.20) 100%
    );
}

.ecosystem-hero-content{
    position:relative;
    z-index:3;
    max-width:780px;
    color:#fff;
}

.ecosystem-hero-tag{
    display:inline-block;
    font-size:10px;
    font-weight:600;
    letter-spacing:5px;
    text-transform:uppercase;
    color:#c6a365;
    margin-bottom:24px;
}

.ecosystem-hero-content h1{
    font-family:"Cormorant Garamond",serif;
    font-size:54px;
    line-height:1.18;
    font-weight:500;
    margin-bottom:36px;
    letter-spacing:-.5px;
}

.eco-lead-text{
    font-size:17px;
    line-height:1.85;
    font-weight:400;
    color:#fff;
    margin-bottom:20px;
    max-width:720px;
}

.eco-body-text{
    font-size:15px;
    line-height:1.8;
    font-weight:300;
    color:rgba(255,255,255,.75);
    margin-bottom:22px;
    max-width:660px;
}

.eco-closing-text{
    font-size:14.5px;
    line-height:1.8;
    font-style:italic;
    font-weight:400;
    color:#c6a365;
    max-width:660px;
}

/* RESPONSIVE */

@media(max-width:1280px){

    

    

    

    

    

    

    .ecosystem-hero-content h1{
        font-size:48px;
    }
}

@media(max-width:1024px){

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    .ecosystem-hero{
        min-height:850px;
        padding:120px 7% 70px;
        align-items:flex-start;
    }

    .ecosystem-hero-bg img{
        object-fit:cover;
        object-position:center center;
    }

    .ecosystem-hero-overlay{
        background:linear-gradient(
            180deg,
            rgba(10,10,10,.88) 0%,
            rgba(10,10,10,.68) 45%,
            rgba(10,10,10,.84) 100%
        );
    }

    .ecosystem-hero-content{
        max-width:100%;
    }

    .ecosystem-hero-content h1{
        font-size:40px;
        line-height:1.15;
    }

    .eco-lead-text{
        font-size:16px;
    }

    .eco-body-text,
    .eco-closing-text{
        font-size:14px;
    }
}

@media(max-width:768px){

    .ecosystem-hero{
        min-height:760px;
        padding:110px 7% 60px;
    }

    .ecosystem-hero-bg{
        display:flex;
        align-items:flex-end;
        justify-content:center;
    }

    .ecosystem-hero-bg img{
        width:100%;
        height:100%;
        object-fit:contain;
        object-position:center bottom;
        background:#111;
    }

    .ecosystem-hero-overlay{
        background:linear-gradient(
            180deg,
            rgba(10,10,10,.85) 0%,
            rgba(10,10,10,.58) 45%,
            rgba(10,10,10,.86) 100%
        );
    }

    .ecosystem-hero-tag{
        font-size:8px;
        letter-spacing:3px;
        line-height:1.7;
    }

    .ecosystem-hero-content h1{
        font-size:32px;
        line-height:1.18;
        margin-bottom:26px;
    }

    .eco-lead-text{
        font-size:14.5px;
        line-height:1.75;
    }

    .eco-body-text{
        font-size:14px;
        line-height:1.7;
    }

    .eco-closing-text{
        display:none;
    }
}

@media(max-width:480px){

    

    

    

    

    

    

    .ecosystem-hero{
        min-height:700px;
        padding:100px 7% 50px;
    }

    .ecosystem-hero-bg img{
        object-fit:contain;
        object-position:center bottom;
    }

    .ecosystem-hero-content h1{
        font-size:29px;
    }

    .eco-lead-text{
        font-size:14px;
    }

    .eco-body-text{
        font-size:13.5px;
    }
}
/*=========================================
        SECCIÓN 2 / ECOSISTEMA COLABORATIVO
=========================================

.collab-section{
    background:#fbf8f1;
    padding:125px 8%;
    border-bottom:1px solid rgba(0,0,0,.08);
}

.collab-container{
    max-width:1250px;
    margin:0 auto;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:90px;
    align-items:start;
}

.collab-tag{
    display:block;
    font-size:11px;
    letter-spacing:5px;
    text-transform:uppercase;
    color:#b89a63;
    font-weight:600;
    margin-bottom:22px;
}

.collab-left h2{
    font-family:'Cormorant Garamond',serif;
    font-size:62px;
    line-height:1.05;
    font-weight:500;
    color:#1f1f1f;
}

.collab-right{
    padding-top:46px;
}

.collab-right p{
    font-size:17px;
    line-height:2;
    color:#555;
    margin-bottom:24px;
}

.collab-highlight{
    font-family:'Cormorant Garamond',serif;
    font-size:38px !important;
    line-height:1.15 !important;
    color:#1f1f1f !important;
    margin-top:42px;
}

/* RESPONSIVE 

@media(max-width:900px){

    .collab-section{
        padding:90px 7%;
    }

    .collab-container{
        grid-template-columns:1fr;
        gap:40px;
    }

    .collab-left h2{
        font-size:42px;
    }

    .collab-right{
        padding-top:0;
    }

    .collab-right p{
        font-size:15.5px;
        line-height:1.85;
    }

    .collab-highlight{
        font-size:32px !important;
    }
}
*/

/*SECCION 3*/

/*=========================================
        SECCIÓN 3 / ECOSISTEMA DE CAPACIDADES
=========================================*/
/* =========================================
   SECCIÓN 3 / ECOSISTEMA DE CAPACIDADES
========================================= */

.capacity-section {
    position: relative;

    padding: 130px 7%;

    background: #ffffff;
    color: #1f1f1f;

    overflow: hidden;
}


/* Decoración suave de fondo */

.capacity-section::before {
    content: "";

    position: absolute;
    top: -180px;
    right: -180px;

    width: 420px;
    height: 420px;

    border-radius: 50%;

    background: radial-gradient(
        circle,
        rgba(180, 138, 76, 0.1) 0%,
        rgba(180, 138, 76, 0.03) 45%,
        transparent 72%
    );

    pointer-events: none;
}

.capacity-container {
    position: relative;
    z-index: 2;

    width: min(100%, 1280px);

    margin: 0 auto;
}


/* =========================================
   CABECERA
========================================= */

.capacity-header {
    max-width: 880px;

    margin: 0 auto 80px;

    text-align: center;
}

.capacity-tag {
    display: inline-flex;
    align-items: center;

    gap: 14px;

    margin-bottom: 20px;

    color: #b48a4c;

    font-size: 10px;
    font-weight: 600;
    line-height: 1.6;

    letter-spacing: 4px;
    text-transform: uppercase;
}

.capacity-tag::before,
.capacity-tag::after {
    content: "";

    width: 38px;
    height: 1px;

    background: rgba(180, 138, 76, 0.65);
}

.capacity-header h2 {
    max-width: 820px;

    margin: 0 auto 26px;

    color: #1f1f1f;

    font-family: "Cormorant Garamond", serif;

    font-size: clamp(48px, 5vw, 66px);
    font-weight: 500;
    line-height: 1.02;

    letter-spacing: -0.8px;

    text-wrap: balance;
}

.capacity-header p {
    max-width: 760px;

    margin: 0 auto;

    color: #686868;

    font-size: 14.5px;
    font-weight: 300;
    line-height: 1.85;
}


/* =========================================
   GRID DE CAPACIDADES
========================================= */

.capacity-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);

    border-top: 1px solid #e8e3db;
    border-left: 1px solid #e8e3db;

    background: #ffffff;
}


/* =========================================
   TARJETAS
========================================= */

.capacity-card {
    position: relative;

    min-height: 440px;

    display: flex;
    flex-direction: column;

    padding: 40px 34px 38px;

    background: #ffffff;

    border-right: 1px solid #e8e3db;
    border-bottom: 1px solid #e8e3db;

    overflow: hidden;

    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease,
        background-color 0.35s ease;
}

.capacity-card::before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    height: 3px;

    background: #b48a4c;

    transform: scaleX(0);
    transform-origin: left;

    transition: transform 0.35s ease;
}

.capacity-card::after {
    content: "";

    position: absolute;
    right: -65px;
    bottom: -65px;

    width: 150px;
    height: 150px;

    border: 1px solid rgba(180, 138, 76, 0.11);
    border-radius: 50%;

    transition:
        transform 0.45s ease,
        opacity 0.45s ease;
}

.capacity-card:hover {
    z-index: 3;

    background: #fdfbf7;

    transform: translateY(-8px);

    box-shadow:
        0 20px 50px rgba(30, 30, 30, 0.08),
        0 4px 15px rgba(30, 30, 30, 0.04);
}

.capacity-card:hover::before {
    transform: scaleX(1);
}

.capacity-card:hover::after {
    opacity: 1;
    transform: scale(1.15);
}


/* =========================================
   NÚMERO
========================================= */

.capacity-number {
    display: block;

    margin-bottom: 25px;

    color: #b48a4c;

    font-family: "Cormorant Garamond", serif;

    font-size: 17px;
    font-weight: 600;
    line-height: 1;

    letter-spacing: 3px;
}


/* =========================================
   ICONO
========================================= */

.capacity-icon {
    width: 60px;
    height: 60px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 30px;

    color: #b48a4c;
    background: #ffffff;

    border: 1px solid rgba(180, 138, 76, 0.36);
    border-radius: 50%;

    transition:
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        transform 0.35s ease;
}

.capacity-card:hover .capacity-icon {
    color: #ffffff;
    background: #b48a4c;
    border-color: #b48a4c;

    transform: rotate(-5deg) scale(1.04);
}

.capacity-icon svg {
    width: 26px;
    height: 26px;

    stroke-width: 1.4;
}


/* =========================================
   TÍTULO DE TARJETA
========================================= */

.capacity-card h3 {
    min-height: 78px;

    margin-bottom: 24px;

    color: #202020;

    font-family: "Cormorant Garamond", serif;

    font-size: 33px;
    font-weight: 500;
    line-height: 1.05;

    letter-spacing: -0.25px;

    transition: color 0.35s ease;
}


/* =========================================
   ETIQUETA QUÉ HACEMOS
========================================= */

.capacity-card h4 {
    margin-bottom: 13px;

    color: #b48a4c;

    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;

    letter-spacing: 2.8px;
    text-transform: uppercase;
}


/* =========================================
   DESCRIPCIÓN
========================================= */

.capacity-card p {
    color: #696969;

    font-size: 13.5px;
    font-weight: 300;
    line-height: 1.8;

    transition: color 0.35s ease;
}

.capacity-card:hover p {
    color: #555555;
}


/* =========================================
   PANTALLAS MEDIANAS
========================================= */

@media (max-width: 1100px) {

    .capacity-section {
        padding: 105px 6%;
    }

    .capacity-header {
        margin-bottom: 65px;
    }

    .capacity-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .capacity-card {
        min-height: 410px;
    }

    .capacity-card h3 {
        min-height: auto;

        font-size: 31px;
    }

}


/* =========================================
   TABLET
========================================= */

@media (max-width: 820px) {

    .capacity-section {
        padding: 90px 6%;
    }

    .capacity-header {
        max-width: 100%;

        margin-bottom: 55px;

        text-align: left;
    }

    .capacity-tag {
        letter-spacing: 3px;
    }

    .capacity-tag::after {
        display: none;
    }

    .capacity-tag::before {
        width: 30px;
    }

    .capacity-header h2 {
        max-width: 680px;

        margin-left: 0;

        font-size: clamp(42px, 7vw, 56px);
    }

    .capacity-header p {
        max-width: 680px;

        margin-left: 0;
    }

    .capacity-card {
        min-height: 390px;

        padding: 36px 30px;
    }

}


/* =========================================
   MÓVIL
========================================= */

@media (max-width: 620px) {

    .capacity-section {
        padding: 78px 6%;
    }

    .capacity-header {
        margin-bottom: 45px;
    }

    .capacity-tag {
        gap: 10px;

        font-size: 8.5px;
        line-height: 1.7;

        letter-spacing: 2.2px;
    }

    .capacity-tag::before {
        width: 22px;
    }

    .capacity-header h2 {
        margin-bottom: 20px;

        font-size: clamp(36px, 10vw, 45px);
        line-height: 1.04;
    }

    .capacity-header p {
        font-size: 13.5px;
        line-height: 1.75;
    }

    .capacity-grid {
        grid-template-columns: 1fr;
    }

    .capacity-card {
        min-height: auto;

        padding: 34px 27px 36px;
    }

    .capacity-number {
        margin-bottom: 21px;
    }

    .capacity-icon {
        width: 56px;
        height: 56px;

        margin-bottom: 25px;
    }

    .capacity-icon svg {
        width: 24px;
        height: 24px;
    }

    .capacity-card h3 {
        margin-bottom: 21px;

        font-size: 30px;
    }

    .capacity-card p {
        font-size: 13px;
        line-height: 1.75;
    }

}


/* =========================================
   MÓVIL PEQUEÑO
========================================= */

@media (max-width: 390px) {

    .capacity-section {
        padding: 68px 18px;
    }

    .capacity-header h2 {
        font-size: 34px;
    }

    .capacity-card {
        padding: 31px 24px 33px;
    }

    .capacity-card h3 {
        font-size: 28px;
    }

}


/* =========================================
   ACCESIBILIDAD
========================================= */

@media (prefers-reduced-motion: reduce) {

    .capacity-card,
    .capacity-card::before,
    .capacity-card::after,
    .capacity-icon {
        transition: none;
    }

    .capacity-card:hover {
        transform: none;
    }

}

/*SECCION 4*/

/* =========================================
   SECCIÓN 4 / ECOSISTEMA DE MARCAS
========================================= */

.ecosystem-diagram {
    position: relative;
    padding: 130px 6%;
    color: #ffffff;

    background:
        radial-gradient(
            circle at 10% 15%,
            rgba(198, 163, 101, 0.09),
            transparent 27%
        ),
        radial-gradient(
            circle at 90% 86%,
            rgba(255, 255, 255, 0.035),
            transparent 25%
        ),
        #101010;

    overflow: hidden;
}

.diagram-container {
    position: relative;
    z-index: 5;

    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}


/* =========================================
   CABECERA
========================================= */

.diagram-header {
    max-width: 920px;
    margin: 0 auto 95px;

    text-align: center;
}

.diagram-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 22px;
    padding: 9px 17px;

    border: 1px solid rgba(198, 163, 101, 0.32);
    border-radius: 50px;

    color: #c6a365;
    background: rgba(198, 163, 101, 0.06);

    font-size: 10px;
    font-weight: 600;
    letter-spacing: 3.5px;
    text-transform: uppercase;
}

.diagram-header h2 {
    margin-bottom: 28px;

    color: #ffffff;

    font-family: "Cormorant Garamond", serif;
    font-size: clamp(55px, 6vw, 84px);
    font-weight: 500;
    line-height: 0.96;
    letter-spacing: -1.5px;

    text-wrap: balance;
}

.diagram-header h2 span {
    display: block;

    color: #c6a365;
    font-style: italic;
}

.diagram-header p {
    max-width: 790px;
    margin: 0 auto 15px;

    color: rgba(255, 255, 255, 0.7);

    font-size: 15px;
    line-height: 1.85;

    text-wrap: pretty;
}


/* =========================================
   DIAGRAMA
========================================= */

.diagram {
    position: relative;

    min-height: 1260px;

    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 50%;

    background:
        radial-gradient(
            circle at center,
            rgba(198, 163, 101, 0.055),
            transparent 31%
        );

    isolation: isolate;
}


/* Círculos interiores */

.diagram::before,
.diagram::after {
    content: "";

    position: absolute;
    top: 50%;
    left: 50%;

    border-radius: 50%;

    transform: translate(-50%, -50%);

    pointer-events: none;
}

.diagram::before {
    width: 72%;
    height: 72%;

    border: 1px solid rgba(255, 255, 255, 0.055);
}

.diagram::after {
    width: 45%;
    height: 45%;

    border: 1px dashed rgba(198, 163, 101, 0.12);
}


/* =========================================
   CENTRO
========================================= */

.diagram-center {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 7;

    width: 330px;
    min-height: 330px;
    padding: 42px 33px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(198, 163, 101, 0.38);
    border-radius: 50%;

    background:
        radial-gradient(
            circle at 30% 25%,
            rgba(198, 163, 101, 0.14),
            transparent 38%
        ),
        #151515;

    box-shadow:
        0 30px 85px rgba(0, 0, 0, 0.38);

    text-align: center;

    transform: translate(-50%, -50%);

    transition:
        border-color 0.4s ease,
        box-shadow 0.4s ease,
        transform 0.4s ease;
}

.diagram-center.is-changing {
    transform: translate(-50%, -50%) scale(0.97);
}

.diagram-center-label {
    display: block;
    margin-bottom: 15px;

    color: #c6a365;

    font-size: 8px;
    font-weight: 600;
    letter-spacing: 2.5px;
    text-transform: uppercase;
}

.diagram-center h3 {
    margin-bottom: 17px;

    color: #ffffff;

    font-family: "Cormorant Garamond", serif;
    font-size: 39px;
    font-weight: 500;
    line-height: 0.98;

    text-wrap: balance;
}

.diagram-center h3 span {
    display: block;
    color: #c6a365;
    font-style: italic;
}

.diagram-center p {
    color: rgba(255, 255, 255, 0.65);

    font-size: 11px;
    line-height: 1.65;
}


/* Servicios dinámicos del centro */

.diagram-center-services {
    width: 100%;
    max-height: 0;
    margin-top: 0;

    opacity: 0;
    overflow: hidden;

    transition:
        max-height 0.45s ease,
        margin-top 0.45s ease,
        opacity 0.45s ease;
}

.diagram-center-services.visible {
    max-height: 180px;
    margin-top: 15px;
    opacity: 1;
}

.diagram-center-services span {
    display: block;
    margin-bottom: 8px;

    color: #c6a365;

    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.diagram-center-services ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;

    list-style: none;
}

.diagram-center-services li {
    padding: 5px 8px;

    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 50px;

    color: rgba(255, 255, 255, 0.67);
    background: rgba(255, 255, 255, 0.025);

    font-size: 7px;
    line-height: 1.2;
}


/* =========================================
   NODOS
========================================= */

.brand-node {
    position: absolute;
    z-index: 6;

    width: 310px;
    min-height: 295px;
    padding: 31px 28px 29px;

    display: flex;
    flex-direction: column;

    border: 1px solid rgba(255, 255, 255, 0.09);

    color: #ffffff;
    background: rgba(24, 24, 24, 0.96);

    box-shadow:
        0 22px 60px rgba(0, 0, 0, 0.22);

    cursor: pointer;

    transition:
        transform 0.4s ease,
        border-color 0.4s ease,
        background 0.4s ease,
        box-shadow 0.4s ease;
}

.brand-node:hover,
.brand-node:focus-visible,
.brand-node.active {
    border-color: rgba(198, 163, 101, 0.62);

    background: #1b1b1b;

    transform: translateY(-8px);

    box-shadow:
        0 28px 75px rgba(0, 0, 0, 0.32);
}

.brand-node:focus-visible {
    outline: 2px solid #c6a365;
    outline-offset: 4px;
}


/* Posición de cada nodo */

.node1 {
    top: 40px;
    left: 50%;

    transform: translateX(-50%);
}

.node1:hover,
.node1:focus-visible,
.node1.active {
    transform: translateX(-50%) translateY(-8px);
}

.node2 {
    top: 220px;
    right: 3%;
}

.node3 {
    right: 4%;
    bottom: 200px;
}

.node4 {
    bottom: 35px;
    left: 50%;

    transform: translateX(-50%);
}

.node4:hover,
.node4:focus-visible,
.node4.active {
    transform: translateX(-50%) translateY(-8px);
}

.node5 {
    bottom: 200px;
    left: 4%;
}

.node6 {
    top: 220px;
    left: 3%;
}


/* =========================================
   CONTENIDO DE NODOS
========================================= */

.brand-number {
    display: block;
    margin-bottom: 20px;

    color: rgba(198, 163, 101, 0.62);

    font-family: "Cormorant Garamond", serif;
    font-size: 32px;
    line-height: 1;
}

.brand-node h3 {
    margin-bottom: 8px;

    color: #ffffff;

    font-family: "Cormorant Garamond", serif;
    font-size: 31px;
    font-weight: 500;
    line-height: 1.03;

    text-wrap: balance;
}

.brand-node h4 {
    min-height: 35px;
    margin-bottom: 15px;

    color: #c6a365;

    font-size: 8px;
    font-weight: 600;
    line-height: 1.45;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.brand-node p {
    margin-bottom: 22px;

    color: rgba(255, 255, 255, 0.65);

    font-size: 11px;
    line-height: 1.65;
}

.brand-node > a {
    margin-top: auto;

    display: inline-flex;
    align-items: center;
    gap: 8px;

    color: #c6a365;

    font-size: 9px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-decoration: none;
    text-transform: uppercase;
}

.brand-node > a svg {
    width: 14px;
    height: 14px;

    transition: transform 0.35s ease;
}

.brand-node > a:hover svg {
    transform: translate(4px, -4px);
}


/* =========================================
   SERVICIOS SIGNATURE PRODUCTIONS
========================================= */

.brand-services {
    margin-bottom: 21px;
    padding: 13px;

    border-left: 2px solid #c6a365;

    background: rgba(198, 163, 101, 0.045);
}

.brand-services h5 {
    margin-bottom: 9px;

    color: #c6a365;

    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.brand-services ul {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;

    list-style: none;
}

.brand-services li {
    padding: 5px 7px;

    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 50px;

    color: rgba(255, 255, 255, 0.62);

    font-size: 7px;
    line-height: 1.2;
}

.node6 {
    min-height: 410px;
}


/* =========================================
   LÍNEAS DEL DIAGRAMA
========================================= */

.diagram-line {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;

    width: 1px;
    height: 310px;

    background:
        linear-gradient(
            180deg,
            rgba(198, 163, 101, 0),
            rgba(198, 163, 101, 0.28),
            rgba(198, 163, 101, 0)
        );

    transform-origin: top center;

    pointer-events: none;
}

.diagram-line-1 {
    transform: rotate(0deg);
}

.diagram-line-2 {
    transform: rotate(60deg);
}

.diagram-line-3 {
    transform: rotate(120deg);
}

.diagram-line-4 {
    transform: rotate(180deg);
}

.diagram-line-5 {
    transform: rotate(240deg);
}

.diagram-line-6 {
    transform: rotate(300deg);
}


/* =========================================
   INSTRUCCIÓN
========================================= */

.diagram-instruction {
    margin: 35px auto 0;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    color: rgba(255, 255, 255, 0.48);

    text-align: center;
}

.diagram-instruction svg {
    width: 15px;
    height: 15px;

    color: #c6a365;
}

.diagram-instruction p {
    font-size: 9px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}


/* =========================================
   CIERRE
========================================= */

.diagram-result {
    max-width: 850px;
    margin: 90px auto 0;

    text-align: center;
}

.diagram-result-line {
    display: block;

    width: 1px;
    height: 70px;
    margin: 0 auto 30px;

    background:
        linear-gradient(
            180deg,
            rgba(198, 163, 101, 0),
            #c6a365
        );
}

.diagram-result h3 {
    margin-bottom: 20px;

    color: #ffffff;

    font-family: "Cormorant Garamond", serif;
    font-size: clamp(40px, 4.5vw, 62px);
    font-weight: 500;
    line-height: 1;

    text-wrap: balance;
}

.diagram-result p {
    max-width: 760px;
    margin: 0 auto;

    color: rgba(255, 255, 255, 0.65);

    font-size: 14px;
    line-height: 1.85;
}


/* =========================================
   DECORACIONES
========================================= */

.ecosystem-decoration {
    position: absolute;

    border-radius: 50%;

    pointer-events: none;
}

.ecosystem-decoration-one {
    top: -180px;
    right: -150px;

    width: 420px;
    height: 420px;

    border: 1px solid rgba(198, 163, 101, 0.12);
}

.ecosystem-decoration-two {
    left: -160px;
    bottom: -190px;

    width: 390px;
    height: 390px;

    border: 1px dashed rgba(255, 255, 255, 0.07);
}


/* =========================================
   ANIMACIONES SEGURAS
========================================= */

.reveal-ecosystem {
    opacity: 1;
    transform: translateY(0);

    transition:
        opacity 0.9s ease,
        transform 0.9s ease;
}

html.ecosystem-animation-active .reveal-ecosystem {
    opacity: 0;
    transform: translateY(42px);
}

html.ecosystem-animation-active .reveal-ecosystem.visible {
    opacity: 1;
    transform: translateY(0);
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1200px) {

    .diagram {
        min-height: auto;
        padding: 40px;

        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 25px;

        border-radius: 0;
    }

    .diagram::before,
    .diagram::after,
    .diagram-line {
        display: none;
    }

    .diagram-center {
        position: relative;
        top: auto;
        left: auto;

        width: 100%;
        min-height: 330px;

        grid-column: 1 / -1;

        border-radius: 0;

        transform: none;
    }

    .diagram-center.is-changing {
        transform: scale(0.98);
    }

    .brand-node,
    .node1,
    .node2,
    .node3,
    .node4,
    .node5,
    .node6 {
        position: relative;
        top: auto;
        right: auto;
        bottom: auto;
        left: auto;

        width: 100%;
        min-height: 330px;

        transform: none;
    }

    .brand-node:hover,
    .brand-node:focus-visible,
    .brand-node.active,
    .node1:hover,
    .node1:focus-visible,
    .node1.active,
    .node4:hover,
    .node4:focus-visible,
    .node4.active {
        transform: translateY(-7px);
    }

    .node6 {
        min-height: 430px;
    }

}


@media (max-width: 750px) {

    .ecosystem-diagram {
        padding: 90px 6%;
    }

    .diagram-header {
        margin-bottom: 62px;

        text-align: left;
    }

    .diagram {
        padding: 0;

        grid-template-columns: 1fr;

        border: 0;
        background: transparent;
    }

    .diagram-center {
        grid-column: auto;
    }

    .brand-node,
    .node6 {
        min-height: auto;
    }

    .diagram-instruction {
        align-items: flex-start;

        text-align: left;
    }

}


@media (max-width: 600px) {

    .ecosystem-diagram {
        padding: 80px 20px;
    }

    .diagram-tag {
        padding: 8px 13px;

        font-size: 8px;
        letter-spacing: 2.5px;
    }

    .diagram-header h2 {
        font-size: clamp(44px, 13vw, 60px);
    }

    .diagram-header h2 span {
        display: inline;
    }

    .diagram-header p {
        font-size: 14px;
        line-height: 1.75;
    }

    .diagram-center {
        min-height: 300px;
        padding: 38px 25px;
    }

    .diagram-center h3 {
        font-size: 35px;
    }

    .brand-node {
        padding: 28px 22px;
    }

    .brand-node h3 {
        font-size: 29px;
    }

    .diagram-result {
        margin-top: 65px;
    }

}


@media (max-width: 400px) {

    .ecosystem-diagram {
        padding-right: 16px;
        padding-left: 16px;
    }

    .diagram-center {
        min-height: 285px;
    }

    .brand-node {
        padding-right: 18px;
        padding-left: 18px;
    }

}

/*SECCION 5*/

.partnership-cta-section{
    background:#fbf8f1;
    padding:135px 7%;
    border-top:1px solid rgba(0,0,0,.08);
    text-align:center;
}

.partnership-cta-container{
    max-width:900px;
    margin:0 auto;
}

.partnership-cta-tag{
    display:block;
    font-size:11px;
    letter-spacing:5px;
    text-transform:uppercase;
    color:#b89a63;
    font-weight:600;
    margin-bottom:22px;
}

.partnership-cta-section h2{
    font-family:"Cormorant Garamond",serif;
    font-size:66px;
    line-height:1.05;
    font-weight:500;
    color:#1f1f1f;
    margin-bottom:38px;
}

.partnership-cta-text{
    max-width:740px;
    margin:0 auto 58px;
}

.partnership-cta-text p{
    font-size:16px;
    line-height:2;
    color:#555;
    margin-bottom:18px;
}

.partnership-cta-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:18px 44px;
    background:#b89a63;
    color:#fff;
    text-decoration:none;
    text-transform:uppercase;
    letter-spacing:2px;
    font-size:11px;
    font-weight:600;
    border:1px solid #b89a63;
    transition:.35s ease;
}

.partnership-cta-btn:hover{
    background:#1f1f1f;
    border-color:#1f1f1f;
    transform:translateY(-3px);
}

/* RESPONSIVE */

@media(max-width:900px){

    .partnership-cta-section{
        padding:90px 7%;
        text-align:left;
    }

    .partnership-cta-section h2{
        font-size:44px;
    }

    .partnership-cta-text{
        margin-bottom:45px;
    }

    .partnership-cta-text p{
        font-size:15px;
        line-height:1.9;
    }

    .partnership-cta-btn{
        width:100%;
        text-align:center;
        padding:16px 24px;
    }
}

@media(max-width:480px){

    .partnership-cta-section h2{
        font-size:38px;
    }

    .partnership-cta-btn{
        font-size:10px;
        letter-spacing:1.5px;
    }
}


/*=========================================
                FOOTER
=========================================*/
.footer { 
    background: #111; 
    color: #fff; 
    padding: 90px 7% 0; 
} 
.footer-container { 
    max-width: 1400px; 
    margin: auto; 
    display: grid; 
    grid-template-columns: 1.4fr 1fr 1fr .8fr; 
    gap: 70px; 
    align-items: start; /* Alinea los techos de todas las columnas */
} 
.footer-brand { 
    display: flex; 
    flex-direction: column; 
    align-items: flex-start; 
    justify-content: flex-start; 
    margin: 0;
    padding: 0;
} 
.footer-logo { 
    width: 200px; 
    height: auto; 
    display: block; 
    /* El primer valor (-35px) jala la imagen hacia arriba cancelando su espacio vacío */
    margin: -70px 0 25px; 
}

.footer-slogan { 
    font-size: 15px; 
    line-height: 2; 
    color: #fff; 
    margin: 0; 
} 
.footer-column { 
    margin: 0;
    padding: 0;
} 
.footer-column h4 { 
    color: #c6a365; 
    font-size: 11px; 
    text-transform: uppercase; 
    letter-spacing: 6px; 
    margin: 0 0 32px; /* Elimina cualquier margen superior */
    padding: 0;
    font-weight: 600; 
    line-height: 1; /* Forzamos a que el texto ocupe solo su tamaño real */
} 

/* Estilos nuevos para resetear las listas del menú */
.footer-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.footer-nav li {
    margin: 0;
    padding: 0;
}
.footer-nav a { 
    display: block; 
    text-decoration: none; 
    color: #fff; 
    font-size: 16px; 
    line-height: 1.6; 
    margin-bottom: 14px; 
    transition: .3s ease; 
} 
.footer-nav a:hover { 
    color: #c6a365; 
    padding-left: 5px; 
} 

.social-icons { 
    display: flex; 
    gap: 18px; 
    align-items: center; 
} 
.social-icons a { 
    width: 48px; 
    height: 48px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    border: 1px solid rgba(255,255,255,.18); 
    color: #fff; 
    text-decoration: none; 
    font-size: 18px; 
    transition: .35s ease; 
} 
.social-icons a i { 
    color: #fff; 
    font-size: 18px; 
} 
.social-icons a:hover { 
    background: #c6a365; 
    border-color: #c6a365; 
} 
.social-icons a:hover i { 
    color: #111; 
} 
.footer-bottom { 
    max-width: 1400px; 
    margin: 75px auto 0; 
    padding: 28px 0; 
    text-align: center; 
    border-top: 1px solid rgba(255,255,255,.10); 
    color: #aaa; 
    font-size: 14px; 
} 
.footer-bottom p {
    margin: 0;
}

/* Responsivo */
@media(max-width:1100px){ 
    .footer-container { 
        grid-template-columns: 1fr 1fr; 
        gap: 60px; 
    } 
    .footer-logo { 
        width: 170px; 
    } 
} 
@media(max-width:768px) { 
    .footer { 
        padding: 70px 8% 0; 
    } 
    .footer-container { 
        grid-template-columns: 1fr; 
        gap: 45px; 
    } 
    .footer-brand, .footer-column { 
        text-align: left; 
    } 
    .footer-logo { 
        width: 155px; 
        margin-bottom: 28px; 
    } 
    .footer-column h4 { 
        margin-bottom: 24px; 
    } 
    .social-icons { 
        justify-content: flex-start; 
    } 
    .footer-bottom { 
        text-align: left; 
        font-size: 13px; 
    } 
}