/* Paleta RIBACTIVA: gris principal, granate secundario */
:root{
  --color-bg:#f5f7fa; /* gris muy claro de fondo */
  --color-accent:#511811; /* granate principal definitivo */
  --color-secondary:#C28E2B; /* dorado quemado secundario */
  --color-ink:#0f0f0f; /* texto principal muy oscuro */
  --color-paper:#ffffff; /* blanco para superficies */
  --color-surface:#ffffff; /* tarjetas */
  --color-border:#e5e7eb; /* bordes */
  --header-h: 120px; /* altura aproximada del header */
  --radius:14px;
  --hero-image:url('/assets/img/slider1.jpg');
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: 'Outfit', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  color:var(--color-ink);
  background:linear-gradient(180deg, #f8fafc, #f3f4f6 40%, #eef2f7);
}

.site-header{
  position:absolute;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:center;
  padding:44px 24px;background:transparent;backdrop-filter:none;
  border-bottom:1px solid rgba(255,255,255,0);transition:background .25s ease, box-shadow .25s ease, transform .25s ease, border-color .25s ease
}
.site-header.scrolled{background:rgba(255,255,255,.85); box-shadow:0 8px 24px rgba(0,0,0,.08); transform:translateY(-1px); border-color:var(--color-border)}
.site-header .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;filter:drop-shadow(0 6px 22px rgba(255,255,255,.18)); margin:0 24px}
.site-header .brand .logo-3d{width:clamp(300px, 22vw, 360px);height:auto}
.site-header .brand img{filter:brightness(0) invert(1) contrast(1.02)}

/* Logo 3D: parallax + shine */
.logo-3d-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}
.logo-3d{display:block;transition:transform .25s ease, filter .25s ease}
.logo-3d-wrap::after{content:"";position:absolute;inset:-8px;border-radius:16px;background:radial-gradient(100px 40px at var(--mx,50%) var(--my,50%), rgba(255,255,255,.16), transparent 60%);opacity:.0;transition:opacity .25s ease}
.logo-3d-wrap:hover .logo-3d{transform:translate(var(--dx,0), var(--dy,0)) scale(1.02)}
.logo-3d-wrap:hover::after{opacity:1}
.main-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;width:100%;max-width:1200px;position:relative}
.main-nav > ul:not(.mobile-menu){list-style:none;margin:0;padding:0;display:flex;gap:22px}
.main-nav .mobile-menu{display:none !important}
.main-nav .nav-left{justify-self:start}
.main-nav .nav-right{justify-self:end}
.main-nav a{color:#fff;text-decoration:none;font-weight:700;letter-spacing:.02em;opacity:.9;position:relative}
.main-nav a:link,.main-nav a:visited{color:#fff}
.main-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:2px;background:var(--color-accent);transition:right .25s ease}
.main-nav a:hover::after{right:0}
.main-nav a:hover,.main-nav a:focus{opacity:1;color:var(--color-secondary)}
.site-header.scrolled .main-nav a:hover{color:var(--color-secondary)}
.nav-toggle{display:none}
.nav-toggle::before{content:""}

@media (max-width: 900px){
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:rgba(0,0,0,.04);border:1px solid var(--color-border);color:var(--color-ink);padding:10px 12px;border-radius:10px}
  .nav-toggle::before{content:"\2630";font-size:18px;line-height:1}
  .main-nav .nav-left,.main-nav .nav-right,.main-nav .brand{display:none}
  .main-nav .mobile-menu{display:none !important;position:absolute;top:64px;right:16px;background:#111;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:12px;flex-direction:column;box-shadow:0 18px 40px rgba(0,0,0,.35)}
  .main-nav[aria-expanded="true"] .mobile-menu{display:flex !important}
}

.hero{
  min-height:calc(100vh + var(--header-h));
  margin-top:calc(-1 * var(--header-h));
  display:flex;align-items:center;position:relative;overflow:hidden;
  background-image:linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.68)), var(--hero-image);
  background-size:cover;background-position:center;
}
.hero::after{content:"";position:absolute;inset:-1px;background:radial-gradient(800px 400px at 20% -10%, rgba(139,30,63,.28), transparent 60%);pointer-events:none}
.hero .effects{position:absolute;inset:0;pointer-events:none;z-index:1}
.orb{position:absolute;width:48vmin;height:48vmin;border-radius:50%;filter:blur(24px);opacity:.25}
.orb--accent{background:radial-gradient(circle at 30% 30%, rgba(139,30,63,.9), rgba(139,30,63,.0) 60%)}
.orb--cyan{background:radial-gradient(circle at 70% 70%, rgba(200,200,200,.85), rgba(200,200,200,.0) 60%)}
.hero-card{position:absolute;right:6%;bottom:10%;background:rgba(22,22,22,.75);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:16px;box-shadow:0 18px 48px rgba(0,0,0,.4)}
.hero .container{max-width:1100px;padding:80px 20px}
.badge{display:inline-flex;align-items:center;gap:10px;background:rgba(194,142,43,.10);border:1px solid rgba(194,142,43,.28);padding:8px 12px;border-radius:999px}
.title-xl{font-size:clamp(34px,6vw,64px);line-height:1.06;margin:12px 0 10px}
.subtitle{font-size:clamp(16px,2.3vw,20px);opacity:.9}
.cta-row{display:flex;gap:14px;margin-top:22px}
.btn{appearance:none;border:none;border-radius:12px;padding:12px 18px;font-weight:700;cursor:pointer}
.btn-primary{background:linear-gradient(135deg, var(--color-accent), #7A140E);color:#fff;box-shadow:0 8px 28px rgba(81,24,17,.35)}
.btn-secondary{background:linear-gradient(135deg, var(--color-secondary), #E1AF4A);color:#fff;box-shadow:0 8px 24px rgba(194,142,43,.28)}
.btn-ghost{background:transparent;border:1px solid var(--color-border);color:var(--color-ink)}
.hero .btn-ghost{border-color:rgba(255,255,255,.7);color:#fff}
.stats{display:grid;grid-template-columns: repeat(3,1fr);gap:14px;margin-top:26px}
.stat-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);padding:16px;border-radius:14px}
.stat-card strong{font-size:28px}

.hero-visual{display:block}

/* Carrusel de fondo para hero */
.hero .slider{position:absolute;inset:0;z-index:0}
.hero .slider, .hero .slide{transform:none !important}
.hero .slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1s ease}
.hero .slide.is-active{opacity:1}
.hero .slide::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.68))}
.tilt--hero{transform-style:preserve-3d}
.hero .container{position:relative;z-index:2;color:#fff}
.hero .slider-controls{z-index:3}
.hero-captions{position:relative}
.hero-captions .caption{display:none !important}
.hero-captions .caption.is-active{display:block !important}

/* Controles del slider */
.slider-controls{position:absolute;inset:auto 0 20px 0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 20px}
.slider-controls button{cursor:pointer}
.slider-prev,.slider-next{background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;transition:transform .2s ease, background .2s ease}
.slider-prev:hover,.slider-next:hover{transform:scale(1.06);background:rgba(0,0,0,.5)}
.slider-dots{display:flex;align-items:center;gap:8px}
.dot{width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:transparent;cursor:pointer;transition:background .2s ease, transform .2s ease}
.dot.is-active{background:var(--color-secondary);border-color:var(--color-secondary);transform:scale(1.2)}

/* Hero alternativo para páginas internas */
.hero--alt{min-height:62vh;display:flex;align-items:end;position:relative;padding:90px 20px;background-size:cover;background-position:center}
.hero--alt .container{max-width:1100px;color:#fff}
.hero--alt .overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.85));}
.hero--alt .badge{position:relative;background:rgba(26,26,26,.6);border:1px solid rgba(255,255,255,.2)}
.hero--alt .title-xl{ text-shadow:0 6px 18px rgba(0,0,0,.45); }
.hero--alt .subtitle{ background:rgba(7,32,41,.55); padding:8px 12px; border-radius:10px }
.hero--alt h1{position:relative;margin:0 0 10px}

/* Hero estrecho para páginas internas (mejor lectura del menú) */
.hero--thin{min-height:38vh;display:flex;align-items:end;position:relative;padding:90px 20px;background-size:cover;background-position:center;margin-top:calc(-1 * var(--header-h))}
.hero--thin .overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.65), rgba(0,0,0,.35))}
.hero--thin .container{color:#fff}

.section{padding:80px 20px}
.container{max-width:1100px;margin:0 auto}
.section h2{font-size:clamp(26px,4.4vw,42px);margin:0 0 10px;color:var(--color-accent)}
.kicker{color:var(--color-accent);font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width: 900px){.grid-3{grid-template-columns:1fr}}
.card{background:var(--color-paper);border:1px solid var(--color-border);padding:18px;border-radius:14px;transition:transform .4s ease, box-shadow .4s ease}
.card h3{color:var(--color-accent)}
.card p{color:var(--color-secondary)}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.28)}

.news-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width: 1100px){.news-list{grid-template-columns:repeat(2,1fr)}}
@media (max-width: 700px){.news-list{grid-template-columns:1fr}}
.news-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--color-border);border-radius:14px;overflow:hidden}
.news-card img{width:100%;height:240px;object-fit:cover;transition:transform .4s ease}
.news-card:hover img{transform:scale(1.06)}
.news-card .content{padding:14px;background:#fff}
.news-card--feature{grid-column:span 2}
@media (max-width: 700px){.news-card--feature{grid-column:span 1}}
.news-card--feature img{height:360px}
.news-card--feature .overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.22), rgba(0,0,0,.7));}
.news-card--feature .headline{position:absolute;left:14px;right:14px;bottom:14px;color:#fff}
.news-card--feature .headline h3,.news-card--feature .headline p{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.45)}
.news-card .content .news-badge{background:var(--color-accent);border-color:var(--color-accent)}
.news-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(139,30,63,.9);border:1px solid rgba(139,30,63,.95);color:#fff;padding:6px 10px;border-radius:999px;font-size:12px}
.news-card .content h3{color:var(--color-accent)}
.news-card .content p{color:var(--color-secondary)}

/* Nube de etiquetas */
.tag-cloud-card{display:flex;flex-direction:column}
.tag-cloud-card .content{padding:14px}
.tag-cloud{display:flex;flex-wrap:wrap;gap:10px}
.tag{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;border:1px solid var(--color-border);background:#fff;color:var(--color-ink);cursor:pointer;transition:transform .2s ease, background .2s ease, box-shadow .2s ease}
.tag:hover{transform:translateY(-2px);background:linear-gradient(135deg, var(--color-accent), #c44d6a);box-shadow:0 10px 24px rgba(139,30,63,.35)}
.tag[data-size="lg"]{font-size:16px;font-weight:800}
.tag[data-size="md"]{font-size:14px;font-weight:700}
.tag[data-size="sm"]{font-size:12px;font-weight:600}

/* Calendario de actividades */
.calendar-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;margin-top:14px}
@media (max-width: 1000px){.calendar-grid{grid-template-columns:1fr}}
.calendar-card{position:relative;background:#fff;border:1px solid var(--color-border);border-radius:16px;overflow:hidden}
.cal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:linear-gradient(135deg, rgba(139,30,63,.12), rgba(0,0,0,.02))}
.cal-title{font-weight:800;letter-spacing:.02em}
.cal-prev,.cal-next{background:#fff;border:1px solid var(--color-border);color:var(--color-ink);border-radius:10px;width:40px;height:36px;cursor:pointer}
.cal-prev:hover,.cal-next:hover{background:#f7fafc}
.cal-body{padding:12px}
.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-head div{opacity:.8;text-align:center;font-weight:700;color:var(--color-ink)}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:6px}
.cal-day{height:84px;background:#ffffff;border:1px solid var(--color-border);border-radius:12px;padding:8px;position:relative;cursor:pointer;transition:transform .2s ease, box-shadow .2s ease}
.cal-day:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(0,0,0,.10)}
.cal-day .num{font-weight:800}
.cal-day .dot{position:absolute;right:8px;bottom:8px;width:8px;height:8px;border-radius:50%;background:var(--color-accent)}
.cal-day.is-today{outline:2px solid rgba(139,30,63,.5); background:linear-gradient(180deg, #fff, #fafafa)}
.cal-day.is-selected{border-color:rgba(139,30,63,.85);box-shadow:0 0 0 3px rgba(139,30,63,.28) inset}
.cal-day:focus-visible{outline:3px solid rgba(139,30,63,.5); outline-offset:2px}

.event-detail .event-card{background:var(--color-paper);border:1px solid var(--color-border);border-radius:16px;padding:14px}
.event-kicker{color:var(--color-accent);font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.event-title{margin:6px 0 10px}
.event-info{display:grid;gap:6px;margin-top:8px}

/* Directorio: grid de tarjetas chulas */
.dir-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media (max-width: 1100px){.dir-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width: 800px){.dir-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width: 520px){.dir-grid{grid-template-columns:1fr}}
.dir-card{position:relative;background:var(--color-paper);border:1px solid var(--color-border);border-radius:16px;padding:14px;overflow:hidden;transition:transform .25s ease, box-shadow .25s ease}
.dir-card:hover{transform:translateY(-4px);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.dir-card .logo{width:72px;height:72px;border-radius:12px;background:var(--color-bg);display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:8px;border:1px solid var(--color-border)}
.dir-card .logo img{max-width:62px;max-height:62px;filter:grayscale(100%)}
.dir-card h3{margin:6px 0 6px;color:var(--color-accent)}
.dir-card .meta{font-size:13px;opacity:.95;color:var(--color-secondary)}
.dir-card .shine{content:"";position:absolute;top:-60%;left:-40%;width:180%;height:180%;background:linear-gradient(130deg, rgba(255,255,255,0) 40%, rgba(255,255,255,.22) 50%, rgba(255,255,255,0) 60%);opacity:0;transform:translateX(-50%)}
.dir-card:hover .shine{opacity:1;animation:shine-sweep 1.1s ease}

/* Ficha empresa: logo + galería */
.company-header{display:grid;grid-template-columns:.7fr 1.3fr;gap:20px;margin:10px 0}
@media (max-width: 900px){.company-header{grid-template-columns:1fr}}
.logo-pane{position:relative;background:var(--color-paper);border:1px solid var(--color-border);border-radius:16px;padding:16px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.logo-pane .logo-wrap{width:180px;height:180px;border-radius:22px;background:var(--color-bg);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:inset 0 0 0 1px var(--color-border)}
.logo-pane .logo-wrap img{max-width:150px;max-height:150px;filter:none}
.logo-pane .logo-caption{margin-top:10px;opacity:.95;color:var(--color-secondary)}
.company-sheet{min-height:180px}
.gallery-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.gallery-strip .thumb{background:transparent;border:1px solid var(--color-border);border-radius:12px;padding:0;cursor:pointer;overflow:hidden}
.gallery-strip img{display:block;width:100%;height:110px;object-fit:cover;transition:transform .25s ease;}
.gallery-strip .thumb:hover img{transform:scale(1.06)}

.lightbox{max-width:90vw;max-height:90vh;background:#0000;border:none;border-radius:16px;padding:0;display:flex;align-items:center;justify-content:center}
.lightbox img{max-width:85vw;max-height:85vh;border-radius:12px}
.lightbox .nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.14);color:#fff;border-radius:999px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer}
.lightbox .prev{left:12px}
.lightbox .next{right:12px}
/* Parallax contenedor */
.parallax-wrap{position:relative;overflow:hidden;border-radius:14px}
.parallax-wrap img{will-change:transform}

/* Barra progreso scroll */
.scroll-progress{position:fixed;left:0;top:0;height:3px;background:linear-gradient(90deg, var(--color-accent), var(--color-secondary));width:0;z-index:100}

.contact{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}
@media (max-width: 1000px){.contact{grid-template-columns:1fr}}
.form-card{background:#ffffff;border:1px solid var(--color-border);border-radius:14px;padding:18px}
.form-card h3{color:var(--color-accent)}
.form-card p, .form-card label{color:var(--color-secondary)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width: 700px){.form-row{grid-template-columns:1fr}}
label{display:block;margin:8px 0 6px;font-weight:600;color:var(--color-ink)}
input,select,textarea{width:100%;padding:12px 12px;border-radius:10px;background:#ffffff;border:1px solid var(--color-border);color:var(--color-ink)}
/* Select estilizado con flecha */
select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23000000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px}
/* Estados de foco accesibles */
input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(139,30,63,.95);box-shadow:0 0 0 3px rgba(139,30,63,.28)}
textarea{min-height:120px}

.site-footer{padding:30px 20px;border-top:1px solid var(--color-border);background:var(--color-bg)}
.site-footer .container{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--color-ink)}
.site-footer a{color:var(--color-ink);opacity:.85}

/* Animaciones */
@keyframes floatIn{0%{transform:translateY(12px);opacity:.0}100%{transform:translateY(0);opacity:1}}
.reveal{opacity:0;transform:translateY(10px)}
.reveal.in{animation:floatIn .7s ease forwards}

/* Tilt efecto tarjetas */
.tilt{transform-style:preserve-3d;transition:transform .2s ease}
.tilt:hover{transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)); filter:drop-shadow(0 12px 30px rgba(255,255,255,.1))}
.tilt--h:hover{transform:perspective(900px) rotateY(var(--ry,0))}

/* Chatbot */
.chatbot-toggle{position:fixed;right:18px;bottom:18px;z-index:80;width:54px;height:54px;border-radius:50%;border:1px solid var(--color-border);background:#ffffffcc;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.15)}
.chatbot-toggle.has-notif{position:fixed}
.chatbot-toggle.has-notif::before{content:"";position:absolute;top:6px;right:6px;width:10px;height:10px;border-radius:999px;background:var(--color-accent);border:2px solid #fff}
.chatbot-toggle.has-notif::after{content:"";position:absolute;top:4px;right:4px;width:14px;height:14px;border-radius:999px;border:2px solid rgba(139,30,63,.5);animation:chat-ping 1.4s ease-out infinite}
.chatbot{position:fixed;right:18px;bottom:86px;width:360px;max-width:92vw;background:#ffffff;border:1px solid var(--color-border);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.15);z-index:80;display:flex;flex-direction:column;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px) scale(.98);transition:opacity .25s ease, transform .25s ease}
.chatbot--open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}
.chatbot--open ~ #chatbot-toggle.has-notif::before,.chatbot--open ~ #chatbot-toggle.has-notif::after{display:none}

@keyframes chat-ping{0%{transform:scale(.8);opacity:1}80%{transform:scale(1.8);opacity:0}100%{transform:scale(1.8);opacity:0}}
.chatbot__header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:linear-gradient(135deg, rgba(139,30,63,.12), rgba(0,0,0,.02))}
.chatbot__agent{display:flex;align-items:center;gap:8px;color:var(--color-ink)}
.chatbot__messages{padding:12px;display:grid;gap:8px;max-height:360px;overflow:auto;background:#fff}
.chatbot__form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--color-border);background:#f8fafc}
.chatbot__form input{flex:1;background:#fff;border:1px solid var(--color-border);color:var(--color-ink)}
.msg{display:flex}
.msg--bot span{background:#f4f6fa;border:1px solid var(--color-border);padding:8px 10px;border-radius:12px;color:var(--color-ink)}
.msg--user{justify-content:end}
.msg--user span{background:linear-gradient(135deg, var(--color-accent), #c44d6a);padding:8px 10px;border-radius:12px;color:#fff}
/* Carrusel partners */
.partners{padding:70px 0;background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03))}
.partners{width:100vw;margin-left:50%;transform:translateX(-50%)}
.partners .track{display:flex;gap:48px;flex-wrap:wrap;justify-content:center}
.partner-card{position:relative;overflow:visible;background:var(--color-paper);border:1px solid var(--color-border);padding:18px 22px;border-radius:16px;transition:transform .4s ease, box-shadow .4s ease;will-change:transform;perspective:800px}
.tilt--soft:hover{transform:perspective(800px) rotateY(var(--ry,0))}
.partner-card:hover{box-shadow:0 20px 60px rgba(0,0,0,.35)}
.partner-card::after{content:"";position:absolute;top:-80%;left:-60%;width:220%;height:220%;background:linear-gradient(120deg, rgba(255,255,255,0) 46%, rgba(255,255,255,.28) 50%, rgba(255,255,255,0) 54%);opacity:0;transform:translateX(-60%);pointer-events:none;z-index:0}
.partner-card:hover::after{opacity:1;animation:shine-sweep 1.2s ease}
.partner-card:active{transform:translateZ(10px)}
.partner-logo{height:84px;opacity:.95;filter:grayscale(100%);transition:filter .3s ease, opacity .3s ease, transform .4s ease}
.partner-logo{height:72px;opacity:.95;filter:grayscale(100%);transition:filter .3s ease, opacity .3s ease, transform .4s ease}
.partner-card:hover .partner-logo{filter:none;opacity:1;transform:translateZ(20px)}

/* Tooltip eco */
.partner-info{position:absolute;right:12px;bottom:calc(100% + 12px);display:grid;grid-auto-rows:min-content;gap:6px;min-width:240px;
  padding:12px 14px;border-radius:14px;opacity:0;visibility:hidden;transform:translateY(8px) translateZ(30px);
  background:#fff;border:1px solid var(--color-border);
  box-shadow:0 16px 36px rgba(0,0,0,.12); z-index:5; color:var(--color-ink)}
.partner-card:hover .partner-info{opacity:1;visibility:visible;transform:translateY(0) translateZ(30px);transition:opacity .28s ease, transform .28s ease}
.partner-info::after{content:"";position:absolute;right:26px;bottom:-7px;width:14px;height:14px;border:1px solid var(--color-border);border-left:none;border-top:none;
  background:#fff; transform:rotate(45deg);}
.partner-info .eco-icon{width:22px;height:22px;border-radius:8px;align-self:center;
  background:#0e1a0f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%237ed957'%3E%3Cpath d='M5 13c7 0 9-6 14-6-2 5-6 9-11 10 1 2 3 3 5 4-6 1-10-3-8-8z'/%3E%3C/svg%3E") no-repeat center/16px; box-shadow:0 0 0 3px rgba(126,217,87,.12), 0 8px 20px rgba(126,217,87,.18);}
.partner-info div{font-size:13px;opacity:.95}
.partner-info strong{color:var(--color-ink)}
.partner-info .dist-user,.partner-info .save-mad,.partner-info .save-de{font-weight:700;color:var(--color-accent)}

/* Forzar que el tooltip interno no se muestre; usaremos portal flotante */
.partner-card .partner-info{display:none !important}

/* Tooltip portal flotante */
.partner-tooltip{position:fixed;top:0;left:0;transform:translateY(8px);opacity:0;visibility:hidden;pointer-events:none;z-index:9999;
  background:#fff;border:1px solid var(--color-border);border-radius:14px;
  box-shadow:0 20px 50px rgba(0,0,0,.12);padding:12px 14px;min-width:240px;display:grid;gap:6px;color:var(--color-ink)}
.partner-tooltip::after{content:"";position:absolute;right:26px;bottom:-7px;width:14px;height:14px;border:1px solid var(--color-border);border-left:none;border-top:none;
  background:#fff; transform:rotate(45deg)}
.partner-tooltip.show{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .22s ease, transform .22s ease}
.partner-tooltip .bar{width:100%;height:10px;border-radius:999px;background:#f3f4f6;border:1px solid var(--color-border);position:relative;overflow:hidden;margin-top:6px}
.partner-tooltip .bar .seg{position:absolute;left:0;top:0;bottom:0}
.partner-tooltip .bar .seg-mad{background:linear-gradient(90deg, #c44d6a, #e07b97);width:0}
.partner-tooltip .bar .seg-de{background:linear-gradient(90deg, #8B1E3F, #a33a5d);right:0;left:auto;width:0}

@keyframes shine-sweep{from{transform:translateX(-70%) rotate(0.001deg)}to{transform:translateX(70%) rotate(0.001deg)}}
/* Fondo animado de nodos */
.partners{position:relative;overflow:hidden}
.partners .partners-bg{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none}
.partners .container{position:relative;z-index:1}

/* Timeline simple */
.timeline{position:relative;margin:20px 0;padding-left:24px}
.timeline::before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--color-border)}
.tl-item{position:relative;margin:14px 0;padding-left:14px}
.tl-item::before{content:"";position:absolute;left:-2px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 4px rgba(139,30,63,.15)}


