/* RANUK.DEV visual refresh — premium technical editorial system */
:root{--refresh-bg:#080b12;--refresh-surface:#0f1520;--refresh-surface-2:#131b28;--refresh-line:rgba(189,211,226,.14);--refresh-ink:#eef4f6;--refresh-muted:#92a2af;--refresh-mint:#6fffd1;--refresh-lime:#c8f56a;--refresh-orange:#ff8b63;--refresh-serif:'Fraunces',Georgia,serif}
html{background:var(--refresh-bg)}body{background:radial-gradient(900px 520px at 82% -5%,rgba(43,107,120,.2),transparent 62%),radial-gradient(780px 520px at 0 28%,rgba(23,47,91,.18),transparent 65%),var(--refresh-bg);color:var(--refresh-ink)}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.035;background-image:linear-gradient(rgba(255,255,255,.9) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.9) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,black,transparent 75%)}
.navbar{padding:1rem max(1.25rem,4vw);background:rgba(8,11,18,.7)!important;border-bottom:1px solid var(--refresh-line);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.navbar.scrolled{background:rgba(8,11,18,.94)!important;box-shadow:0 12px 40px rgba(0,0,0,.24)}.nav-container{max-width:1240px}.nav-logo{font-size:1rem;letter-spacing:.08em}.logo-bracket{color:var(--refresh-orange)}.nav-menu{gap:.35rem}.nav-link{font-family:var(--font-main);font-size:.9rem;font-weight:500;letter-spacing:-.005em;color:var(--refresh-muted);padding:.5rem .78rem;border-radius:999px}.nav-link:hover,.nav-link.active{color:var(--refresh-ink);background:rgba(111,255,209,.08)}.nav-link-primary{border:1px solid rgba(111,255,209,.35);color:var(--refresh-mint)!important;background:rgba(111,255,209,.05)}.lang-switcher{border-color:var(--refresh-line)!important;background:rgba(255,255,255,.03)!important}.theme-toggle{border-color:var(--refresh-line)!important;background:rgba(255,255,255,.03)!important;color:var(--refresh-mint)!important}
.hero{position:relative;min-height:calc(100vh - 10px);padding:9rem 0 6rem}.hero:after{content:"";position:absolute;width:30rem;height:30rem;right:4%;top:15%;border:1px solid rgba(111,255,209,.1);border-radius:50%;box-shadow:0 0 0 70px rgba(111,255,209,.018),0 0 0 140px rgba(111,255,209,.012);pointer-events:none}.hero-content{position:relative;z-index:1}.hero-label{color:var(--refresh-mint)!important;letter-spacing:.1em!important}.hero-label-dot{box-shadow:0 0 0 5px rgba(111,255,209,.11)!important}.hero-name-mini{font-family:var(--font-mono);color:var(--refresh-muted);letter-spacing:.22em}.hero-headline{font-size:clamp(3.5rem,8vw,8rem)!important;line-height:.92!important;letter-spacing:-.07em!important;max-width:960px}.headline-line{display:block}.headline-line em{font-family:var(--refresh-serif);font-weight:400}.line-code em{color:var(--refresh-mint)}.line-biz em{color:var(--refresh-orange)}.line-story em{color:var(--refresh-lime)}.hero-subline{max-width:560px!important;color:var(--refresh-muted)!important;font-size:1.05rem!important;line-height:1.75!important}.hero-cta{gap:.8rem!important}.hero-cta .btn{border-radius:999px!important;min-height:48px;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background:var(--refresh-mint)!important;color:#071313!important;box-shadow:0 12px 36px rgba(111,255,209,.18)}.btn-primary:hover{background:#b6ffe6!important;transform:translateY(-3px)}.btn-outline{border-color:rgba(111,255,209,.42)!important;color:var(--refresh-ink)!important}.btn-outline:hover{background:rgba(111,255,209,.09)!important;border-color:var(--refresh-mint)!important}.btn-ghost{color:var(--refresh-muted)!important}.hero-stats{border-top:1px solid var(--refresh-line)!important;max-width:760px;margin-top:3.4rem!important;padding-top:1.4rem!important}.stat-number{color:var(--refresh-ink)!important;font-size:2rem!important}.stat-plus{color:var(--refresh-orange)!important}.stat-label{color:var(--refresh-muted)!important;font-family:var(--font-mono);font-size:.66rem!important;text-transform:uppercase;letter-spacing:.05em}.scroll-indicator{color:var(--refresh-muted)!important}.mouse{border-color:var(--refresh-mint)!important}.wheel{background:var(--refresh-mint)!important}
.section{position:relative;padding:8rem 0}.section-title{font-size:clamp(2.5rem,5vw,5rem)!important;letter-spacing:-.065em!important;line-height:1!important}.title-number{color:var(--refresh-orange)!important;font-family:var(--font-mono);font-size:.62em}.section-subtitle{color:var(--refresh-muted)!important;max-width:660px;line-height:1.8!important}.nav-section-pill{border-color:var(--refresh-line)!important;background:rgba(111,255,209,.05)!important;color:var(--refresh-mint)!important;border-radius:999px!important;font-family:var(--font-mono);font-size:.68rem!important;letter-spacing:.08em;padding:.5rem .8rem!important}.story{border-top:1px solid var(--refresh-line)}
.story-act,.skill-card,.experience-card,.project-card,.service-card,.pricing-card,.feature-card,.bot-card,.faq-item,.testimonial-card,.lab-panel,.certificate-card{background:linear-gradient(145deg,rgba(19,27,40,.88),rgba(10,14,23,.82))!important;border:1px solid var(--refresh-line)!important;border-radius:22px!important;box-shadow:0 20px 60px rgba(0,0,0,.16)!important}.story-act:hover,.skill-card:hover,.experience-card:hover,.project-card:hover,.service-card:hover,.pricing-card:hover,.bot-card:hover{border-color:rgba(111,255,209,.42)!important;transform:translateY(-6px)}.story-act,.skill-card,.experience-card,.project-card,.service-card,.pricing-card,.bot-card{transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}.project-card{overflow:hidden}.project-card .project-image,.project-card .project-visual{background:linear-gradient(135deg,#152936,#0c101a)!important}.service-featured,.bot-card-featured{border-color:rgba(111,255,209,.52)!important;background:linear-gradient(145deg,rgba(25,55,55,.8),rgba(10,18,25,.9))!important}.service-badge,.bot-badge{background:var(--refresh-mint)!important;color:#071313!important;border-radius:999px!important}.service-tech span,.tech-tag{border-color:var(--refresh-line)!important;background:rgba(255,255,255,.035)!important;color:var(--refresh-muted)!important;border-radius:999px!important}.service-link,.bot-link,.project-link{color:var(--refresh-mint)!important}.kicker,.eyebrow{font-family:var(--font-mono);color:var(--refresh-orange)}
.contact-section{background:linear-gradient(125deg,rgba(111,255,209,.07),transparent 50%)}.contact-form,.contact-info{background:rgba(15,21,32,.7)!important;border-color:var(--refresh-line)!important;border-radius:22px!important}.form-control,.contact-form input,.contact-form textarea,.contact-form select{background:rgba(255,255,255,.045)!important;border-color:var(--refresh-line)!important;color:var(--refresh-ink)!important;border-radius:12px!important}.form-control:focus,.contact-form input:focus,.contact-form textarea:focus{border-color:var(--refresh-mint)!important;box-shadow:0 0 0 3px rgba(111,255,209,.1)!important}.footer{border-top-color:var(--refresh-line)!important;color:var(--refresh-muted)!important}.footer a{color:var(--refresh-mint)!important}
/* Keep the compact ADA page inside the same design language. */
body:not(.ranuk-it-page) .section-header{background:rgba(8,11,18,.88)!important;border-bottom:1px solid var(--refresh-line)!important}.section-header h1{font-family:var(--refresh-serif)!important;color:var(--refresh-mint)!important}.section-header .container{max-width:1180px}.rkc-card,.rkc-feature,.rkc-pricing-card{background:var(--refresh-surface)!important;border:1px solid var(--refresh-line)!important;border-radius:20px!important}
@media(max-width:800px){.hero{padding-top:7rem;min-height:auto}.hero:after{width:17rem;height:17rem;right:-7rem;top:20%}.hero-headline{font-size:clamp(3rem,15vw,5rem)!important}.hero-stats{display:grid!important;grid-template-columns:repeat(2,1fr);gap:1.2rem!important}.nav-menu{background:rgba(8,11,18,.98)!important;border:1px solid var(--refresh-line);border-radius:0 0 18px 18px}.section{padding:5.5rem 0}.section-title{font-size:clamp(2.3rem,11vw,4rem)!important}.hero-cta{flex-wrap:wrap}.hero-cta .btn{width:100%;justify-content:center}.project-grid,.ranuk-services-grid{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Final interaction polish */
button,a,.btn,.nav-link,.filter-btn{cursor:pointer!important}.nav-link:focus-visible,.btn:focus-visible,.filter-btn:focus-visible,.lang-btn:focus-visible{outline:2px solid var(--refresh-lime)!important;outline-offset:4px}.nav-toggle{border-radius:12px!important;background:rgba(111,255,209,.06)!important;border:1px solid var(--refresh-line)!important}.nav-toggle span{background:var(--refresh-mint)!important}.form-group label,.form-select-label{color:var(--refresh-muted)}input::placeholder,textarea::placeholder{color:#71818d}.contact-form .btn,.ranuk-form .btn,.rk-form .btn{min-height:48px}.service-card p,.bot-card p,.project-card p,.authority-card p{max-width:62ch}.footer-social a{width:42px;height:42px;display:inline-grid;place-items:center;border:1px solid var(--refresh-line);border-radius:50%;color:var(--refresh-muted)}.footer-social a:hover{color:var(--refresh-mint);border-color:var(--refresh-mint);transform:translateY(-2px)}
@media(max-width:800px){.navbar{padding-left:1rem;padding-right:1rem}.nav-menu{z-index:999;padding:5rem 1.5rem 7rem!important;gap:.6rem!important;justify-content:flex-start!important;overflow-y:auto!important}.nav-menu .nav-link{width:min(100%,340px);padding:1rem 1.2rem!important;font-size:1rem!important;border-bottom:1px solid rgba(189,211,226,.1);border-radius:0;text-align:left}.nav-menu .nav-link-primary{border:1px solid rgba(111,255,209,.4)!important;border-radius:14px;text-align:center;margin-top:1rem}.nav-actions{gap:.35rem}.lang-btn{min-width:38px!important;padding:6px 8px!important}.theme-toggle,.nav-toggle{min-width:40px!important;min-height:40px!important}.contact-form,.ranuk-form,.rk-form{padding:1.25rem!important}.project-card,.service-card,.bot-card{border-radius:18px!important}}
.story-card-media{margin:0;overflow:hidden;background:linear-gradient(135deg,#142b37,#101521);position:relative}.story-card-media img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.95) contrast(1.04);transition:transform .6s cubic-bezier(.16,1,.3,1),filter .6s ease}.story-card:hover .story-card-media img{transform:scale(1.05);filter:saturate(1.05) contrast(1.08)}

/* ===== STORY TIMELINE — FULL-WIDTH CARDS + FLOATING KNOTS ===== */
/* Ditch the 3-col grid. Each act = block with card at full width, knot floating on the center thread. */
.story-act{display:block!important;position:relative!important;margin-bottom:4rem!important}
.story-act:last-child{margin-bottom:0!important}
/* Knot: absolutely positioned, centered horizontally on the thread line */
.story-act .story-knot{position:absolute!important;top:0!important;left:50%!important;transform:translateX(-50%)!important;z-index:4!important;margin:0!important}
/* Card: full width, with top padding so the knot doesn't overlap text */
.story-act .story-card{width:100%!important;overflow:hidden!important;padding:0!important;display:grid!important;align-items:stretch!important;background:linear-gradient(145deg,rgba(19,27,40,.94),rgba(10,14,23,.88))!important;border:1px solid var(--refresh-line)!important;border-radius:20px!important;box-shadow:0 20px 50px rgba(0,0,0,.22)!important;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease!important;margin-top:28px!important}
.story-act .story-card-media{margin:0!important;width:100%!important;height:100%!important;min-height:300px!important;position:relative!important;overflow:hidden!important}
.story-act .story-card-copy{padding:2rem 2rem!important;display:flex!important;flex-direction:column!important;justify-content:center!important}
.story-act .story-act-meta{justify-content:space-between!important;text-align:left!important}
.story-act .story-tags{justify-content:flex-start!important}
.story-act .story-card p{max-width:62ch!important}
/* Etapa I: Foto izquierda (38%), Texto derecha — pedido de Emilio (17/08). El ritmo queda
   foto-izq / foto-der / foto-izq bajando por el hilo. */
.story-act:nth-of-type(1) .story-card{grid-template-columns:minmax(200px,38%) 1fr!important}
.story-act:nth-of-type(1) .story-card-media{grid-column:1!important;grid-row:1!important;border-right:1px solid var(--refresh-line)!important}
.story-act:nth-of-type(1) .story-card-copy{grid-column:2!important;grid-row:1!important}
.story-act:nth-of-type(1) .story-card-media img{object-position:center 25%!important}
/* Act II: Text left (60%), Photo right (40%) */
.story-act:nth-of-type(2) .story-card{grid-template-columns:1fr minmax(200px,38%)!important}
.story-act:nth-of-type(2) .story-card-copy{grid-column:1!important;grid-row:1!important}
.story-act:nth-of-type(2) .story-card-media{grid-column:2!important;grid-row:1!important;border-left:1px solid var(--refresh-line)!important}
.story-act:nth-of-type(2) .story-card-media img{object-position:center 85%!important}
/* Act III: Photo left (38%), Text right (62%) */
.story-act:nth-of-type(3) .story-card{grid-template-columns:minmax(200px,38%) 1fr!important}
.story-act:nth-of-type(3) .story-card-media{grid-column:1!important;grid-row:1!important;border-right:1px solid var(--refresh-line)!important}
.story-act:nth-of-type(3) .story-card-copy{grid-column:2!important;grid-row:1!important}
.story-act:nth-of-type(3) .story-card-media img{object-position:center 75%!important}
/* Mobile: stack vertically, photo on top, knot floats at top-left of card */
@media(max-width:768px){
/* El hilo baja por la izquierda; el nudo (44px desde left:12px) queda centrado sobre el a 34px. */
.story-thread{left:34px!important}
.story-act .story-knot{left:12px!important;top:-8px!important;transform:none!important;width:44px!important;height:44px!important;font-size:1rem!important}
.story-act .story-card{display:flex!important;flex-direction:column!important;margin-top:20px!important;margin-left:0!important;width:100%!important}
.story-act .story-card-media,.story-act:nth-of-type(1) .story-card-media,.story-act:nth-of-type(2) .story-card-media,.story-act:nth-of-type(3) .story-card-media{width:100%!important;height:220px!important;min-height:220px!important;max-height:220px!important;grid-column:auto!important;grid-row:auto!important;border-left:none!important;border-right:none!important;border-bottom:1px solid var(--refresh-line)!important;order:-1!important}
.story-act .story-card-copy,.story-act:nth-of-type(1) .story-card-copy,.story-act:nth-of-type(2) .story-card-copy,.story-act:nth-of-type(3) .story-card-copy{grid-column:auto!important;grid-row:auto!important;order:1!important;padding:1.25rem 1.1rem!important}
.story-act-title{font-size:1.2rem!important}
}
/* Ranuk IT CTA: premium mint treatment, no gold glow or sweep. */
.navbar .nav-link-primary,.navbar .nav-link-primary:hover,.navbar .nav-link-primary:focus-visible{color:var(--refresh-mint)!important;background:rgba(111,255,209,.06)!important;border:1px solid rgba(111,255,209,.45)!important;box-shadow:none!important;transform:translateY(-1px);transition:background .25s ease,border-color .25s ease,color .25s ease,transform .25s ease}.navbar .nav-link-primary:hover{background:rgba(111,255,209,.14)!important;border-color:var(--refresh-mint)!important;color:var(--refresh-ink)!important}.navbar .nav-link-primary::before{display:none!important}

/* Global Telemetry Bar */
.global-telemetry-bar{background:rgba(10,14,23,.95);border-bottom:1px solid var(--refresh-line);padding:.4rem 1rem;font-family:var(--font-mono);font-size:.72rem;color:var(--refresh-muted);display:flex;align-items:center;justify-content:center;gap:1.2rem;letter-spacing:.04em;position:relative;z-index:1001}.telemetry-dot{width:7px;height:7px;border-radius:50%;background:var(--refresh-mint);box-shadow:0 0 10px var(--refresh-mint);display:inline-block;animation:pulse 2s infinite}.telemetry-stat em{color:var(--refresh-mint);font-style:normal;font-weight:600}

/* Tech Radar & Matrix */
.radar-filter-bar{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2rem}.radar-filter-btn{font-family:var(--font-mono);font-size:.75rem;padding:.5rem 1rem;border-radius:999px;border:1px solid var(--refresh-line);background:rgba(255,255,255,.02);color:var(--refresh-muted);transition:all .25s ease}.radar-filter-btn:hover,.radar-filter-btn.active{background:rgba(111,255,209,.12);border-color:var(--refresh-mint);color:var(--refresh-mint);box-shadow:0 0 16px rgba(111,255,209,.15)}
.radar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1.25rem}
.radar-card{background:linear-gradient(145deg,rgba(19,27,40,.88),rgba(10,14,23,.82));border:1px solid var(--refresh-line);border-radius:16px;padding:1.4rem;transition:all .3s ease}.radar-card:hover{border-color:rgba(111,255,209,.4);transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,.3)}
.radar-card-header{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}.radar-card-icon{width:38px;height:38px;border-radius:10px;background:rgba(111,255,209,.08);border:1px solid rgba(111,255,209,.25);display:grid;place-items:center;color:var(--refresh-mint);font-size:1.1rem}
.radar-card-title{font-size:1.05rem;font-weight:600;color:var(--refresh-ink)}
.radar-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}
.radar-badge{font-family:var(--font-mono);font-size:.68rem;padding:3px 9px;border-radius:6px;background:rgba(111,255,209,.06);border:1px solid rgba(111,255,209,.2);color:var(--refresh-mint)}.radar-badge-gold{background:rgba(212,165,116,.08);border-color:rgba(212,165,116,.25);color:var(--accent-gold,#D4A574)}

/* ML Telemetry Dashboard */
.telemetry-dashboard{background:rgba(10,14,23,.92);border:1px solid var(--refresh-line);border-radius:20px;padding:1.6rem;margin-top:1.5rem;box-shadow:0 20px 40px rgba(0,0,0,.3)}
.telemetry-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--refresh-line);padding-bottom:.8rem;margin-bottom:1.2rem}
.telemetry-title{font-family:var(--font-mono);font-size:.85rem;color:var(--refresh-mint);letter-spacing:.05em;display:flex;align-items:center;gap:.5rem}
.telemetry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.2rem}
.telemetry-metric{background:rgba(255,255,255,.025);border:1px solid var(--refresh-line);border-radius:12px;padding:.8rem 1rem}
.telemetry-label{font-family:var(--font-mono);font-size:.65rem;color:var(--refresh-muted);text-transform:uppercase;display:block}
.telemetry-val{font-family:var(--font-mono);font-size:1.4rem;font-weight:700;color:var(--refresh-ink);margin-top:.2rem;display:block}

/* ROI Architecture Estimator Widget */
.roi-estimator-box{background:linear-gradient(145deg,rgba(19,27,40,.94),rgba(10,14,23,.9));border:1px solid rgba(111,255,209,.3);border-radius:22px;padding:2.2rem;box-shadow:0 24px 60px rgba(0,0,0,.35);margin-top:2rem}
.roi-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:2rem;align-items:center}
@media(max-width:850px){.roi-grid{grid-template-columns:1fr}}
.roi-control-group{margin-bottom:1.2rem}.roi-control-group label{display:block;font-family:var(--font-mono);font-size:.78rem;color:var(--refresh-muted);margin-bottom:.4rem}
.roi-select{width:100%;padding:.75rem 1rem;background:rgba(255,255,255,.04);border:1px solid var(--refresh-line);border-radius:12px;color:var(--refresh-ink);font-family:var(--font-main);font-size:.9rem;outline:none;transition:border-color .25s ease}.roi-select:focus{border-color:var(--refresh-mint);box-shadow:0 0 0 3px rgba(111,255,209,.1)}
.roi-output-card{background:rgba(15,21,32,.8);border:1px solid var(--refresh-line);border-radius:16px;padding:1.4rem}
.roi-output-item{margin-bottom:1rem}.roi-output-item:last-child{margin-bottom:0}
.roi-output-title{font-family:var(--font-mono);font-size:.68rem;color:var(--refresh-muted);text-transform:uppercase;letter-spacing:.05em}
.roi-output-val{font-size:1.15rem;font-weight:600;color:var(--refresh-mint);margin-top:.25rem;display:block}

/* ==========================================================================
   MOBILE RESPONSIVENESS AUDIT & ADAPTATION BLOCK (320px - 768px)
   ========================================================================== */
html,body{overflow-x:hidden!important;max-width:100vw!important}

@media(max-width:768px){
.global-telemetry-bar{flex-direction:column!important;gap:.25rem!important;text-align:center!important;padding:.5rem .75rem!important;font-size:.68rem!important}
.container{padding-left:1.1rem!important;padding-right:1.1rem!important}
.hero{padding-top:6.5rem!important;padding-bottom:4rem!important;min-height:auto!important}
.hero-headline{font-size:clamp(2.4rem,10vw,4.2rem)!important;line-height:1.05!important;letter-spacing:-.04em!important}
.hero-subline{font-size:.95rem!important;line-height:1.6!important}
.hero-cta{flex-direction:column!important;width:100%!important;gap:.65rem!important}
.hero-cta .btn{width:100%!important;justify-content:center!important}
.hero-stats{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:.8rem 1rem!important;margin-top:2rem!important}
.section{padding:4.5rem 0!important}
.section-title{font-size:clamp(2rem,8vw,3.2rem)!important}
.radar-filter-bar{gap:.4rem!important}
.radar-filter-btn{padding:.4rem .75rem!important;font-size:.7rem!important}
.radar-grid{grid-template-columns:1fr!important;gap:1rem!important}
.radar-card{padding:1.15rem!important}
.telemetry-dashboard{padding:1.15rem!important;border-radius:16px!important}
.telemetry-header{flex-direction:column!important;align-items:flex-start!important;gap:.4rem!important}
.telemetry-grid{grid-template-columns:repeat(2,1fr)!important;gap:.6rem!important}
.telemetry-metric{padding:.65rem .75rem!important}
.telemetry-val{font-size:1.15rem!important}
.roi-estimator-box{padding:1.25rem!important;border-radius:18px!important;margin-top:1.4rem!important}
.roi-grid{grid-template-columns:1fr!important;gap:1.2rem!important}
.roi-output-card{padding:1.1rem!important}
.roi-output-val{font-size:1.05rem!important}
.contact-form,.ranuk-form,.rk-form{padding:1.2rem!important;border-radius:18px!important}
}

@media(max-width:480px){
.global-telemetry-bar{font-size:.65rem!important}
.hero-headline{font-size:2.2rem!important}
.hero-stats{grid-template-columns:1fr 1fr!important;gap:.8rem!important}
.stat-number{font-size:1.6rem!important}
.telemetry-grid{grid-template-columns:1fr 1fr!important}
}


/* ===== ECOSISTEMA RANUK — Gambeta + Ranuk Orbit =====
   Productos propios, no trabajo de cliente. Cada tarjeta toma el acento de su marca
   (Gambeta: celeste y dorado del juego; Orbit: el dorado de sus brand guidelines) sobre
   el mismo radio, la misma linea y el mismo mono que el resto de la pagina. */
.eco-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:1.5rem;margin-top:3rem}
.eco-card{--eco-accent:var(--refresh-mint);display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(145deg,rgba(19,27,40,.9),rgba(10,14,23,.86));border:1px solid var(--refresh-line);border-radius:22px;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}
.eco-card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--eco-accent) 45%,transparent);box-shadow:0 24px 60px rgba(0,0,0,.28)}
.eco-gambeta{--eco-accent:#7EA6D9}
.eco-orbit{--eco-accent:#C9A227}
.eco-media{position:relative;overflow:hidden;border-bottom:1px solid var(--refresh-line)}
.eco-media img{display:block;width:100%;height:100%;aspect-ratio:1200/630;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1)}
/* El OG de Gambeta ya trae las cifras impresas abajo: se recorta la franja de arriba (marca +
   titular) para no repetirlas contra la tira de stats del cuerpo. */
.eco-gambeta .eco-media img{aspect-ratio:1200/360;object-position:center top}
.eco-card:hover .eco-media img{transform:scale(1.04)}
.eco-stamp{position:absolute;right:1rem;top:1rem;display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .8rem;border-radius:999px;background:rgba(10,14,23,.86);backdrop-filter:blur(8px);border:1px solid color-mix(in srgb,var(--eco-accent) 50%,transparent);color:var(--eco-accent);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}
.eco-body{display:flex;flex-direction:column;gap:1rem;padding:1.6rem 1.6rem 1.8rem}
.eco-brand{display:flex;align-items:center;gap:.9rem}
.eco-logo{flex:none;width:56px;height:56px;border-radius:14px}
.eco-eyebrow{margin:0 0 .15rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--eco-accent)}
.eco-name{margin:0;font-size:1.6rem;font-weight:700;letter-spacing:-.02em;color:var(--refresh-ink)}
.eco-desc{margin:0;color:var(--refresh-muted);font-size:.95rem;line-height:1.7;max-width:56ch}
.eco-desc strong{color:var(--refresh-ink);font-weight:600}
.eco-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin:0;padding:.9rem 0 0;list-style:none;border-top:1px dashed var(--refresh-line)}
.eco-stats li{display:flex;flex-direction:column;gap:.15rem}
.eco-stats b{font-size:1.35rem;font-weight:700;color:var(--eco-accent);letter-spacing:-.02em}
.eco-stats span{font-family:var(--font-mono);font-size:.65rem;line-height:1.3;text-transform:uppercase;letter-spacing:.04em;color:var(--refresh-muted)}
.eco-cta{align-self:flex-start;display:inline-flex;align-items:center;gap:.5rem;margin-top:auto;padding:.7rem 1.3rem;border-radius:999px;background:var(--eco-accent);color:#071313;font-weight:600;font-size:.9rem;text-decoration:none;transition:transform .3s ease,filter .3s ease}
.eco-cta:hover{transform:translateY(-2px);filter:brightness(1.08)}

@media(max-width:900px){
.eco-grid{grid-template-columns:1fr}
}
@media(max-width:768px){
.eco-body{padding:1.25rem 1.15rem 1.5rem}
.eco-name{font-size:1.35rem}
.eco-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem .6rem}
}


/* ===== SEPARACION ENTRE APARTADOS =====
   --bg-primary (#0a0a1a) y --bg-secondary (#0f0f23) se diferencian en cinco puntos de
   luminancia: la alternancia de fondos no se percibe, y el border-top de 1px que habia
   (en solo algunas secciones, y una de ellas con una clase que no existe) tampoco. Al
   scrollear de Voces a Servicios a Contacto no habia corte visible.
   Ahora cada apartado abre con una regla explicita y su titulo lleva marca de acento. */
.section-rule{
  position:relative;
  width:min(1120px,88vw);
  height:1px;
  margin:0 auto;
  background:linear-gradient(90deg,transparent,var(--refresh-line) 14%,var(--refresh-line) 86%,transparent);
}
/* Rombo al medio: el nodo que dice "aca empieza otra cosa". */
.section-rule::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:9px;
  height:9px;
  transform:translate(-50%,-50%) rotate(45deg);
  background:var(--bg-primary);
  border:1px solid var(--refresh-mint);
  box-shadow:0 0 0 5px var(--bg-primary),0 0 18px rgba(111,255,209,.5);
}

/* Marca de acento sobre el titulo: el numero mono ya numera, esto separa visualmente.
   .section-title esta centrado globalmente (styles.css:929), asi que la marca tambien. */
.section > .container > .section-title::before{
  content:"";
  display:block;
  width:64px;
  height:2px;
  margin:0 auto 1.5rem;
  background:linear-gradient(90deg,transparent,var(--refresh-mint),transparent);
}
/* Open Lab tiene la cabecera en flex con el titulo a la izquierda: ahi la marca no se centra. */
.open-lab-header .section-title::before{
  content:"";
  display:block;
  width:64px;
  height:2px;
  margin:0 0 1.2rem;
  background:linear-gradient(90deg,var(--refresh-mint),transparent);
}

@media(max-width:768px){
.section-rule{width:calc(100% - 2.2rem)}
.section > .container > .section-title::before{margin-bottom:1rem;width:42px}
}


/* ===== BARRA DE NAVEGACION =====
   Estaba en Fira Code a 0.7rem: mono muy chico, se leia como consola y no como
   navegacion. Pasa a Inter 0.9rem/500 — misma familia que el resto del texto,
   legible de un vistazo. El caracter tecnico lo siguen dando el logo { ER } y los
   numeros de seccion en mono. */
.navbar .nav-link{font-family:var(--font-main)!important;font-size:.9rem!important;font-weight:500!important;letter-spacing:-.005em!important;text-transform:none!important}
.navbar .nav-link-primary{font-weight:600!important}
.navbar .nav-menu{gap:.15rem}
@media(max-width:900px){
.navbar .nav-link{font-size:1rem!important;padding:.7rem .9rem!important}
}


/* Radar de tecnologias: los estilos que estaban repetidos inline en cada tarjeta pasan a
   clases, para poder traducir el texto con data-i18n sin arrastrar el style. */
.radar-card-sub{font-family:var(--font-mono);font-size:.7rem;color:var(--refresh-muted)}
.radar-card-desc{font-size:.85rem;color:var(--refresh-muted);line-height:1.6}
