:root{
  --bg:#f6f8f2;
  --surface:#ffffff;
  --ink:#090b0e;
  --ink-2:#141a20;
  --muted:#64707a;
  --line:rgba(9,11,14,.10);
  --lime:#b8ff00;
  --lime-2:#8fe600;
  --lime-dark:#517600;
  --soft-lime:rgba(184,255,0,.18);
  --shadow:0 28px 80px rgba(12,18,24,.12);
  --shadow-soft:0 14px 40px rgba(12,18,24,.08);
  --radius:32px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 12% 8%, rgba(184,255,0,.20), transparent 28rem),
    radial-gradient(circle at 90% 4%, rgba(9,11,14,.055), transparent 30rem),
    linear-gradient(145deg,#fbfcf8 0%,#f4f7ec 52%,#eef5df 100%);
  min-height:100vh;
}
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(9,11,14,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(9,11,14,.032) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 76%);
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.section{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:84px 0}
.site-header{
  position:sticky;top:0;z-index:100;height:72px;background:#050608;color:#fff;
  display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1180px)/2));
  border-bottom:1px solid rgba(255,255,255,.08);
}
.brand img{width:134px;height:auto}
.main-nav{display:flex;gap:34px;align-items:center}
.main-nav a{font-weight:850;font-size:.93rem;color:rgba(255,255,255,.72);transition:.2s ease}
.main-nav a:hover{color:#fff}
.header-cta{
  background:var(--lime);color:#050608;border-radius:999px;padding:13px 20px;font-weight:950;
  box-shadow:0 0 34px rgba(184,255,0,.20);
}
.mobile-menu-btn{display:none;border:0;background:var(--lime);color:#050608;width:42px;height:42px;border-radius:14px;font-size:1.1rem;font-weight:950}
.mobile-menu{
  position:fixed;top:72px;left:0;right:0;background:#050608;color:#fff;z-index:90;
  display:none;grid-template-columns:1fr;gap:4px;padding:10px 20px 18px;border-bottom:1px solid rgba(255,255,255,.08);
}
.mobile-menu a{padding:13px;border-radius:14px;background:rgba(255,255,255,.06);font-weight:850}
.eyebrow{
  color:var(--lime-dark);font-size:.78rem;font-weight:950;letter-spacing:.15em;text-transform:uppercase;margin-bottom:10px
}
.pill{
  display:inline-flex;gap:14px;align-items:center;background:rgba(9,11,14,.04);border:1px solid rgba(81,118,0,.28);
  color:#1c250d;border-radius:999px;padding:10px 14px;font-weight:950;font-size:.86rem;margin-bottom:28px
}
.pill span{color:var(--lime-dark)}
h1,h2,h3{letter-spacing:-.055em;line-height:.96}
h1{font-size:clamp(3.5rem,8vw,8.2rem);max-width:900px}
h2{font-size:clamp(2.2rem,5vw,5rem)}
h3{font-size:1.6rem}
.hero{
  min-height:calc(100vh - 72px);display:grid;grid-template-columns:.92fr 1.08fr;gap:42px;align-items:center;padding-top:48px;
}
.hero-text{font-size:1.18rem;line-height:1.6;color:var(--muted);max-width:640px;margin:24px 0 30px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:14px 19px;font-weight:950;border:1px solid var(--line);transition:.22s ease
}
.btn-dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-dark:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}
.btn-light{background:rgba(255,255,255,.82);color:var(--ink)}
.btn-light:hover{background:#fff;transform:translateY(-2px)}
.hero-stage{position:relative;min-height:610px}
.browser-card{
  position:absolute;left:2%;top:7%;right:3%;height:500px;border-radius:42px;background:linear-gradient(135deg,rgba(17,23,15,.94),rgba(19,29,12,.75));
  border:1px solid rgba(255,255,255,.18);box-shadow:0 40px 120px rgba(8,12,15,.18);padding:28px;overflow:hidden;
}
.browser-card::before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 70% 15%,rgba(184,255,0,.32),transparent 34rem);pointer-events:none}
.browser-dots{display:flex;gap:10px;margin-bottom:22px;position:relative;z-index:1}
.browser-dots span{width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,.35)}
.browser-inner{position:relative;z-index:1;height:410px;border-radius:34px;background:rgba(5,6,8,.72);padding:42px;display:flex;flex-direction:column;justify-content:center;border:1px solid rgba(255,255,255,.08)}
.browser-inner p{color:var(--lime);font-size:.82rem;font-weight:950;letter-spacing:.18em;margin-bottom:28px}
.browser-inner h2{color:#fff;font-size:clamp(2.2rem,4.4vw,4.9rem);max-width:590px}
.progress-line{height:16px;border-radius:999px;background:rgba(184,255,0,.18);margin-top:34px;overflow:hidden;max-width:430px}
.progress-line span{display:block;height:100%;width:54%;background:var(--lime);border-radius:inherit}
.floating-card{
  position:absolute;left:var(--x);top:var(--y);z-index:6;width:230px;padding:20px;border-radius:26px;
  background:rgba(255,255,255,.80);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.85);box-shadow:var(--shadow-soft);user-select:none;touch-action:none
}
.floating-card span{font-size:.74rem;color:var(--lime-dark);font-weight:950;letter-spacing:.14em}
.floating-card strong{display:block;margin:10px 0 4px;font-size:1.22rem}
.floating-card p{color:var(--muted);font-weight:750;font-size:.92rem}
.intro-strip{
  display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:end;padding-top:30px
}
.intro-strip p:last-child{font-size:1.08rem;line-height:1.65;color:var(--muted)}
.section-head{max-width:820px;margin-bottom:34px}
.section-head p{color:var(--muted);font-size:1.08rem;line-height:1.6;margin-top:16px}
.section-head.compact{max-width:780px}
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.service-card{
  background:rgba(255,255,255,.84);border:1px solid rgba(255,255,255,.9);border-radius:34px;padding:22px;
  display:grid;grid-template-columns:180px 1fr;gap:22px;align-items:center;box-shadow:var(--shadow-soft);transition:.22s ease
}
.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.service-card img{border-radius:24px;background:#f7f9f2}
.service-card span{color:var(--lime-dark);font-size:.74rem;font-weight:950;letter-spacing:.14em;text-transform:uppercase}
.service-card h3{margin:8px 0 10px}
.service-card p{color:var(--muted);line-height:1.55}
.service-card ul{margin:14px 0 0 18px;color:#333e47;line-height:1.65}
.impact-grid{display:grid;grid-template-columns:1.2fr 1fr .9fr;gap:18px}
.impact-card{
  background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.9);border-radius:34px;padding:26px;box-shadow:var(--shadow-soft)
}
.before-after{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.before-after div{padding:22px;border-radius:24px;background:#f2f5eb}
.before-after div:last-child{background:var(--soft-lime)}
.impact-card span{display:block;color:var(--lime-dark);font-weight:950;letter-spacing:.12em;font-size:.78rem;text-transform:uppercase;margin-bottom:12px}
.impact-card p{color:var(--muted);line-height:1.55}
.selector-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.selector-pills button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 12px;font-weight:850}
.brand-system-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 16px}
.brand-system-grid i{height:58px;border-radius:18px;background:#11161b}
.brand-system-grid i:nth-child(2),.brand-system-grid i:nth-child(5){background:var(--lime)}
.brand-system-grid i:nth-child(3),.brand-system-grid i:nth-child(4){background:#e9efdd}
.portfolio-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.project-card{border-radius:38px;overflow:hidden;border:1px solid rgba(255,255,255,.88);box-shadow:var(--shadow-soft);background:#fff}
.project-image{height:280px;display:grid;place-items:center;padding:34px;background:#f6f8f2}
.project-blue .project-image{background:#61c4ed}
.project-white .project-image{background:#fff}
.project-image img{max-height:170px;object-fit:contain}
.project-content{padding:30px}
.project-content span{color:var(--lime-dark);font-size:.76rem;font-weight:950;letter-spacing:.14em;text-transform:uppercase}
.project-content h3{font-size:2rem;margin:10px 0}
.project-content p{color:var(--muted);line-height:1.6;margin-bottom:18px}
.project-content a{font-weight:950}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.steps article{background:rgba(255,255,255,.84);border:1px solid rgba(255,255,255,.9);border-radius:30px;padding:24px;box-shadow:var(--shadow-soft)}
.steps span{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--lime);font-weight:950;margin-bottom:24px}
.steps p{color:var(--muted);line-height:1.55;margin-top:12px}
.studio-card,.contact-card{
  background:linear-gradient(135deg,#11161b,#060708);color:#fff;border-radius:44px;padding:42px;box-shadow:var(--shadow);
}
.studio-card{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}
.studio-card .eyebrow,.contact-card .eyebrow{color:var(--lime)}
.studio-card p:last-child,.contact-card p{color:rgba(255,255,255,.68);line-height:1.7;font-size:1.05rem}
.contact-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:36px}
.contact-links{display:grid;gap:10px;margin-top:24px}
.contact-links a{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.10);padding:14px 16px;border-radius:18px;font-weight:850}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.contact-form label{display:grid;gap:8px;color:rgba(255,255,255,.72);font-weight:850;font-size:.88rem}
.contact-form input,.contact-form select,.contact-form textarea{
  width:100%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);color:#fff;border-radius:18px;padding:14px;outline:none
}
.contact-form select option{color:#111}
.contact-form textarea{min-height:130px;resize:vertical}
.contact-form label:nth-child(4),.contact-form button{grid-column:1/-1}
.footer{
  width:min(1180px,calc(100% - 40px));margin:0 auto;padding:36px 0 56px;display:flex;justify-content:space-between;gap:20px;align-items:center;color:var(--muted);border-top:1px solid var(--line)
}
.footer div{display:flex;align-items:center;gap:10px}
.footer img{width:30px;height:30px}
.footer nav{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.footer a,.footer button{color:var(--muted);font-weight:800;border:0;background:transparent}
.kivobot-button{
  position:fixed;right:22px;bottom:22px;z-index:180;display:flex;align-items:center;gap:10px;border:0;border-radius:999px;padding:12px 16px;background:#11161b;color:#fff;box-shadow:var(--shadow)
}
.kivobot-button span{font-weight:950}
.kivobot-button strong{background:var(--lime);color:#111;border-radius:50%;width:34px;height:34px;display:grid;place-items:center}
.kivobot-panel header::before {

  content: "" !important;

  width: 42px !important;

  height: 42px !important;

  flex: 0 0 42px !important;

  border-radius: 0 !important;

  background: transparent !important;

  box-shadow: none !important;

  display: block !important;

  background-color: var(--lime) !important;

  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M32 7a13 13 0 1 0 0 26 13 13 0 0 0 0-26Zm0 31c-12.5 0-23 8.2-23 18.4A3.6 3.6 0 0 0 12.6 60h38.8a3.6 3.6 0 0 0 3.6-3.6C55 46.2 44.5 38 32 38Z'/%3E%3C/svg%3E") center / contain no-repeat !important;

  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M32 7a13 13 0 1 0 0 26 13 13 0 0 0 0-26Zm0 31c-12.5 0-23 8.2-23 18.4A3.6 3.6 0 0 0 12.6 60h38.8a3.6 3.6 0 0 0 3.6-3.6C55 46.2 44.5 38 32 38Z'/%3E%3C/svg%3E") center / contain no-repeat !important;

}
.kivobot-panel.open{display:grid;grid-template-rows:auto 1fr auto auto}
.kivobot-panel header{background:#11161b;color:#fff;padding:18px;display:flex;justify-content:space-between;gap:14px}
.kivobot-panel header span{display:block;color:rgba(255,255,255,.62);font-size:.82rem;margin-top:4px}
.kivobot-panel header button{border:0;background:rgba(255,255,255,.1);color:#fff;border-radius:50%;width:32px;height:32px;font-size:1.2rem}
.chat-messages{padding:18px;overflow:auto;display:grid;align-content:start;gap:10px}
.bot-message,.user-message{padding:12px 14px;border-radius:18px;line-height:1.45;max-width:88%}
.bot-message{background:#f0f4e7;color:#11161b}
.user-message{background:#11161b;color:#fff;justify-self:end}
.quick-questions{display:flex;gap:8px;padding:0 18px 14px;overflow-x:auto}
.quick-questions button{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 11px;font-size:.82rem;font-weight:850}
.chat-form{display:flex;gap:8px;padding:14px;border-top:1px solid var(--line)}
.chat-form input{flex:1;border:1px solid var(--line);border-radius:999px;padding:12px 14px;outline:none}
.chat-form button{border:0;border-radius:999px;background:var(--lime);font-weight:950;padding:0 14px}
.cookie-banner{
  position:fixed;left:22px;right:22px;bottom:22px;z-index:260;background:#11161b;color:#fff;border-radius:28px;padding:18px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;box-shadow:var(--shadow)
}
.cookie-banner p{color:rgba(255,255,255,.68);line-height:1.45;margin-top:6px}
.cookie-actions{display:flex;gap:8px;flex-wrap:wrap}
.cookie-actions button,.cookie-modal-actions button{border:0;border-radius:999px;padding:11px 14px;font-weight:950}
.cookie-actions button:last-child{background:var(--lime);color:#111}
.cookie-actions button:not(:last-child){background:rgba(255,255,255,.1);color:#fff}
.cookie-modal{position:fixed;inset:0;z-index:280;background:rgba(9,11,14,.62);backdrop-filter:blur(10px);display:grid;place-items:center;padding:20px}
.cookie-modal-card{position:relative;width:min(560px,100%);background:#fff;border-radius:32px;padding:28px;box-shadow:var(--shadow)}
.modal-close{position:absolute;right:18px;top:16px;border:0;background:#11161b;color:#fff;width:34px;height:34px;border-radius:50%;font-size:1.2rem}
.cookie-modal-card p{color:var(--muted);margin:12px 0 18px}
.cookie-option{display:flex;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--line);border-radius:20px;margin-bottom:10px}
.cookie-option small{display:block;color:var(--muted);margin-top:4px}
.cookie-option input{width:22px}
.legal-page{min-height:100vh;background:#f6f8f2}
.legal-wrap{width:min(920px,calc(100% - 40px));margin:0 auto;padding:50px 0 80px}
.legal-wrap article{background:#fff;border-radius:34px;padding:36px;box-shadow:var(--shadow-soft)}
.legal-wrap h1{font-size:clamp(2.4rem,6vw,5rem);margin-bottom:22px}
.legal-wrap h2{font-size:2rem;margin:28px 0 12px}
.legal-wrap p,.legal-wrap li{color:#4f5962;line-height:1.7}
.legal-wrap ul{margin-left:22px}
.legal-back{display:inline-flex;margin-bottom:18px;font-weight:950;color:var(--lime-dark)}
@media(max-width:980px){
  .main-nav,.header-cta{display:none}
  .mobile-menu-btn{display:block}
  .mobile-menu.open{display:grid}
  .site-header{height:68px}
  .brand img{width:126px}
  .section{width:min(100% - 28px,1180px);padding:58px 0}
  .hero{grid-template-columns:1fr;min-height:auto;padding-top:42px}
  .hero-stage{min-height:560px}
  .intro-strip,.studio-card,.contact-card{grid-template-columns:1fr}
  .service-grid,.portfolio-grid,.grid-two{grid-template-columns:1fr}
  .impact-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .contact-form{grid-template-columns:1fr}
  .footer{flex-direction:column;align-items:flex-start}
  .cookie-banner{grid-template-columns:1fr;left:14px;right:14px;bottom:14px}
}
@media(max-width:620px){
  h1{font-size:3.75rem}
  .browser-card{left:0;right:0;height:470px;padding:18px}
  .browser-inner{padding:28px}
  .floating-card{width:190px;padding:16px}
  .service-card{grid-template-columns:1fr}
  .service-card img{max-height:220px;width:100%;object-fit:cover}
  .before-after{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .project-image{height:220px}
  .contact-card,.studio-card{padding:28px;border-radius:32px}
  .kivobot-button{right:14px;bottom:14px}
  .kivobot-panel{right:14px;bottom:76px;height:calc(100vh - 110px)}
}

.chat-cta{border:0;background:var(--lime);color:#11161b;border-radius:999px;padding:10px 13px;font-weight:950;margin-top:2px}


/* --- KivoLab v3 refinements --- */
.section{padding:64px 0}
.hero{min-height:calc(100vh - 72px);padding-top:20px}
.hero-stage{min-height:560px}
.browser-card{
  top:4%;
  height:455px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(17,22,27,.08);
  box-shadow:0 38px 110px rgba(17,22,27,.13);
}
.browser-card::before{
  background:radial-gradient(circle at 78% 22%,rgba(184,255,0,.18),transparent 32rem);
}
.browser-dots span{background:#cfd8c8}
.browser-inner.hero-dashboard{
  background:rgba(255,255,255,.58);
  border:1px solid rgba(17,22,27,.08);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  height:350px;
  padding:20px;
  justify-content:initial;
}
.hero-tile{
  border:1px solid rgba(17,22,27,.10);
  border-radius:24px;
  background:#f7faf1;
  padding:24px 20px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.hero-tile.dark{background:#0c1117;color:#fff;border-color:#0c1117}
.hero-tile strong{
  display:block;
  font-size:1.45rem;
  letter-spacing:-.055em;
  margin-bottom:14px;
}
.hero-tile span{
  color:#66707a;
  font-weight:800;
  line-height:1.45;
  font-size:.96rem;
}
.hero-tile.dark span{color:rgba(255,255,255,.63)}
.floating-card{
  background:#0c1117;
  color:#fff;
  border-color:rgba(255,255,255,.10);
  box-shadow:0 22px 50px rgba(17,22,27,.20);
}
.floating-card span{color:var(--lime)}
.floating-card p{color:rgba(255,255,255,.72)}
.intro-strip{padding-top:16px}

/* Better identity visual service card */
.service-card:nth-child(2) img{
  background:#fbfcf7;
}

/* Interactive visual switch */
.visual-switch{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.visual-switch .before-box,
.visual-switch .after-box{
  padding:22px;
  border-radius:24px;
  background:#f2f5eb;
}
.visual-switch .after-box{background:rgba(184,255,0,.16)}
.visual-scene{
  height:170px;
  border-radius:22px;
  margin:10px 0 14px;
  overflow:hidden;
  position:relative;
  background:#fff;
  border:1px solid rgba(17,22,27,.08);
}
.visual-scene.web-before:before{
  content:"";
  position:absolute;
  inset:22px;
  background:
    linear-gradient(#c9d0c2 0 14px,transparent 14px),
    linear-gradient(#dfe5d8 0 10px,transparent 10px),
    linear-gradient(#dfe5d8 0 10px,transparent 10px),
    linear-gradient(90deg,#f2a7a7 0 35%,#e7eddc 35% 100%);
  background-size:70% 14px,85% 10px,50% 10px,100% 100%;
  background-position:0 0,0 44px,0 72px,0 0;
  background-repeat:no-repeat;
  filter:blur(.2px);
}
.visual-scene.web-after:before{
  content:"";
  position:absolute;
  inset:20px;
  border-radius:18px;
  background:#11161b;
}
.visual-scene.web-after:after{
  content:"";
  position:absolute;
  left:44px;top:54px;width:138px;height:18px;border-radius:9px;background:var(--lime);
  box-shadow:0 42px 0 #fff,0 70px 0 rgba(255,255,255,.55),220px 14px 0 80px rgba(184,255,0,.12);
}
.visual-scene.brand-before:before{
  content:"marca";
  position:absolute;
  left:34px;top:54px;
  font-family:serif;
  font-size:3.6rem;
  color:#d25555;
  transform:rotate(-7deg);
}
.visual-scene.brand-before:after{
  content:"";
  position:absolute;
  right:34px;bottom:30px;width:90px;height:90px;border-radius:18px;background:#ffd9d9;
}
.visual-scene.brand-after:before{
  content:"KL";
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  width:96px;height:96px;
  border-radius:22px;
  background:#11161b;
  color:var(--lime);
  display:grid;
  place-items:center;
  font-weight:950;
  font-size:2.4rem;
}
.visual-scene.food-before:before{
  content:"MENÚ\A Café 1,20\A Tapa 3,50\A Bocata 4,00";
  white-space:pre;
  position:absolute;
  left:32px;top:30px;right:32px;bottom:30px;
  background:#2a211a;
  color:#fff3d5;
  border-radius:18px;
  padding:24px;
  font-family:cursive;
  font-size:1.2rem;
  line-height:1.4;
}
.visual-scene.food-after:before{
  content:"";
  position:absolute;
  left:38px;top:34px;width:102px;height:102px;
  background:
    linear-gradient(#111 0 0) 0 0/28px 28px,
    linear-gradient(#111 0 0) 74px 0/28px 28px,
    linear-gradient(#111 0 0) 0 74px/28px 28px,
    linear-gradient(#111 0 0) 48px 48px/18px 18px,
    linear-gradient(#111 0 0) 74px 56px/28px 14px,
    linear-gradient(#111 0 0) 42px 78px/44px 16px;
  background-repeat:no-repeat;
}
.visual-scene.food-after:after{
  content:"NFC";
  position:absolute;
  right:36px;top:56px;
  width:116px;height:70px;border-radius:22px;
  background:#11161b;
  color:var(--lime);
  display:grid;
  place-items:center;
  font-weight:950;
}

/* Portfolio color */
.project-blue .project-image{background:#63C5EE}

/* KivoBot visual improvements */
.kivobot-panel header::before{
  content:"";
  width:42px;height:42px;flex:0 0 42px;border-radius:14px;
  background:url("../img/favicon.png") center/cover no-repeat;
  box-shadow:0 0 0 1px rgba(184,255,0,.25);
}
.bot-message .chat-cta{display:inline-block}

/* Mobile refinements */
@media(max-width:980px){
  .section{padding:46px 0}
  .hero{padding-top:24px}
  .browser-inner.hero-dashboard{height:auto;min-height:320px}
}
@media(max-width:620px){
  .hero-stage{min-height:620px}
  .browser-card{height:500px}
  .browser-inner.hero-dashboard{grid-template-columns:1fr}
  .hero-tile{padding:18px}
  .visual-switch{grid-template-columns:1fr}
}


/* --- KivoLab v4 tightening and realistic visuals --- */

/* Reduce vertical distances heavily */
.section{padding:22px 0}
.hero{padding-top:10px;margin-bottom:0}
.intro-strip{padding-top:8px}
.section-head{margin-bottom:18px}
.services .section-head{margin-bottom:22px}
.method .section-head{margin-bottom:18px}

/* Portfolio Canteira on clean white */
.project-blue .project-image{
  background:#fff !important;
}
.project-blue .project-image img{
  max-height:130px;
}

/* Realistic visual switch images */
.visual-scene{
  height:190px;
  background-size:cover !important;
  background-position:center !important;
}
.visual-scene.web-before{background-image:url("../img/scene-web-before.jpg") !important}
.visual-scene.web-after{background-image:url("../img/scene-web-after.jpg") !important}
.visual-scene.brand-before{background-image:url("../img/scene-brand-before.jpg") !important}
.visual-scene.brand-after{background-image:url("../img/scene-brand-after.jpg") !important}
.visual-scene.food-before{background-image:url("../img/scene-food-before.jpg") !important}
.visual-scene.food-after{background-image:url("../img/scene-food-after.jpg") !important}
.visual-scene.web-before:before,
.visual-scene.web-after:before,
.visual-scene.web-after:after,
.visual-scene.brand-before:before,
.visual-scene.brand-before:after,
.visual-scene.brand-after:before,
.visual-scene.food-before:before,
.visual-scene.food-after:before,
.visual-scene.food-after:after{
  content:none !important;
}

/* KivoBot: no horizontal scrolling and cleaner identity */
.quick-questions{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  padding:0 18px 14px;
  overflow-x:hidden;
  overflow-y:visible;
}
.quick-questions button{
  width:100%;
  text-align:left;
  white-space:normal;
}
.kivobot-panel header::before{
  content:"🤖";
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:0;
  background:var(--lime);
  color:#11161b;
  display:grid;
  place-items:center;
  font-size:1.55rem;
  box-shadow:none;
}
.kivobot-panel{
  overflow:hidden;
}
.chat-messages{
  overflow-x:hidden;
}
.bot-message,.user-message{
  overflow-wrap:anywhere;
}

/* Slightly more compact cards after global spacing reduction */
.service-grid{gap:14px}
.impact-grid{gap:14px}
.steps{gap:12px}

@media(max-width:980px){
  .section{padding:18px 0}
}
@media(max-width:620px){
  .section{padding:16px 0}
  .visual-scene{height:210px}
}


/* --- KivoLab v5 SEO + layout correction --- */

/* Cookie hard fix */
.cookie-banner[hidden],
.cookie-modal[hidden],
.cookie-banner.is-hidden,
.cookie-modal.is-hidden {
  display: none !important;
}

/* Hero tighter, rest balanced */
.hero {
  min-height: auto !important;
  padding-top: 10px !important;
  padding-bottom: 16px !important;
  margin-bottom: 0 !important;
}
.hero-stage {
  min-height: 500px !important;
}
.browser-card {
  top: 0 !important;
}
.section {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}
.intro-strip {
  padding-top: 20px !important;
}
.section-head {
  margin-bottom: 24px !important;
}

/* Más que piezas sueltas: 2-column layout */
.impact-grid {
  display: grid !important;
  grid-template-columns: minmax(280px, .72fr) minmax(680px, 1.9fr) !important;
  gap: 18px !important;
  align-items: stretch !important;
}
.selector-card {
  order: 1;
}
.visual-switch {
  order: 2;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 18px !important;
}
.visual-switch .before-box,
.visual-switch .after-box {
  min-height: 420px;
}
/* FIX imágenes antes/después sin bordes blancos */

.visual-scene {

  width: 100% !important;

  height: 280px !important;

  border-radius: 22px !important;

  margin: 10px 0 14px !important;

  overflow: hidden !important;

  background-color: transparent !important;

  background-size: cover !important;

  background-position: center center !important;

  background-repeat: no-repeat !important;

  border: none !important;

}

.visual-switch .before-box,

.visual-switch .after-box {

  display: flex !important;

  flex-direction: column !important;

  justify-content: flex-start !important;

  min-height: auto !important;

  padding: 22px !important;

  border-radius: 26px !important;

}

.visual-switch .before-box p,

.visual-switch .after-box p {

  margin-top: 4px !important;

}
.impact-card.brand-system {
  display: none !important;
}

/* Realistic scenes override old pseudo-infographics */
.visual-scene.web-before{background-image:url("../img/scene-web-before.jpg") !important}
.visual-scene.web-after{background-image:url("../img/scene-web-after.jpg") !important}
.visual-scene.brand-before{background-image:url("../img/scene-brand-before.jpg") !important}
.visual-scene.brand-after{background-image:url("../img/scene-brand-after.jpg") !important}
.visual-scene.food-before{background-image:url("../img/scene-food-before.jpg") !important}
.visual-scene.food-after{background-image:url("../img/scene-food-after.jpg") !important}
.visual-scene.web-before:before,
.visual-scene.web-after:before,
.visual-scene.web-after:after,
.visual-scene.brand-before:before,
.visual-scene.brand-before:after,
.visual-scene.brand-after:before,
.visual-scene.food-before:before,
.visual-scene.food-after:before,
.visual-scene.food-after:after{
  content:none !important;
}

/* Smaller portfolio cards */
.project-image {
  height: 210px !important;
}
.project-image img {
  max-height: 112px !important;
}
.project-content {
  padding: 22px !important;
}
.project-content h3 {
  font-size: 1.72rem !important;
}
.project-content p {
  font-size: .95rem !important;
}

/* Clean Canteira portfolio */
.project-blue .project-image {
  background: #fff !important;
}

/* KivoBot: remove option block, keep only knowledge chat */
.quick-questions {
  display: none !important;
}
.kivobot-panel.open {
  display: grid;
  grid-template-rows: auto 1fr auto !important;
}
.kivobot-panel header::before {
  content: "🤖" !important;
  width: 42px !important;
  height: 42px !important;
  flex: 0 0 42px !important;
  border-radius: 0 !important;
  background: var(--lime) !important;
  color: #11161b !important;
  display: grid !important;
  place-items: center !important;
  font-size: 1.55rem !important;
  box-shadow: none !important;
}
.chat-messages {
  overflow-x: hidden !important;
  padding-bottom: 12px !important;
}
.bot-message,
.user-message {
  overflow-wrap: anywhere !important;
}

/* Hidden SEO text helper */
.seo-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media(max-width:1200px) {
  .impact-grid {
    grid-template-columns: 1fr !important;
  }
  .visual-switch .before-box,
  .visual-switch .after-box {
    min-height: auto;
  }
}
@media(max-width:980px) {
  .section {
    padding-top: 34px !important;
    padding-bottom: 34px !important;
  }
  .hero {
    padding-top: 14px !important;
    padding-bottom: 18px !important;
  }
}
@media(max-width:620px) {
  .section {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
  }
  .visual-switch {
    grid-template-columns: 1fr !important;
  }
  .visual-scene {
    height: 230px !important;
  }
  .hero-stage {
    min-height: 590px !important;
  }
}


/* --- KivoLab v6 final requested adjustments --- */

/* More breathing room between sections, without returning to oversized gaps */
.section {
  padding-top: 52px !important;
  padding-bottom: 52px !important;
}
.hero {
  padding-top: 10px !important;
  padding-bottom: 22px !important;
}
.intro-strip {
  padding-top: 30px !important;
}

/* Hero floating cards positioned like reference screenshot */
.hero-stage .floating-card:nth-of-type(1) {
  left: 0 !important;
  top: 66% !important;
}
.hero-stage .floating-card:nth-of-type(2) {
  left: 68% !important;
  top: 33% !important;
}
.hero-stage .floating-card:nth-of-type(3) {
  left: 68% !important;
  top: 66% !important;
}

/* KivoBot robust visibility */
.kivobot-button {
  z-index: 9998 !important;
}
.kivobot-panel {
  z-index: 9999 !important;
}
.kivobot-panel.open {
  display: grid !important;
  grid-template-rows: auto 1fr auto !important;
}

/* Keep mobile manageable */
@media(max-width:980px) {
  .section {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }
  .hero-stage .floating-card:nth-of-type(1) {
    left: 2% !important;
    top: 70% !important;
  }
  .hero-stage .floating-card:nth-of-type(2) {
    left: 45% !important;
    top: 52% !important;
  }
  .hero-stage .floating-card:nth-of-type(3) {
    left: 46% !important;
    top: 78% !important;
  }
}

@media(max-width:620px) {
  .section {
    padding-top: 34px !important;
    padding-bottom: 34px !important;
  }
  .hero-stage .floating-card {
    width: 175px !important;
  }
  .hero-stage .floating-card:nth-of-type(1) {
    left: 0 !important;
    top: 73% !important;
  }
  .hero-stage .floating-card:nth-of-type(2) {
    left: 48% !important;
    top: 55% !important;
  }
  .hero-stage .floating-card:nth-of-type(3) {
    left: 48% !important;
    top: 82% !important;
  }
}


/* --- KivoLab v7 hotfix: KivoBot, cookies, spacing and draggable cards --- */

/* Hero floating cards: keep initial positions but allow JS dragging */
.hero-stage .floating-card:nth-of-type(1) {
  left: 0 !important;
  top: 66% !important;
}
.hero-stage .floating-card:nth-of-type(2) {
  left: 68% !important;
  top: 33% !important;
}
.hero-stage .floating-card:nth-of-type(3) {
  left: 68% !important;
  top: 66% !important;
}

/* Slightly more vertical breathing room */
.section {
  padding-top: 62px !important;
  padding-bottom: 62px !important;
}
.hero {
  padding-top: 14px !important;
  padding-bottom: 30px !important;
}
.intro-strip {
  padding-top: 38px !important;
}

/* KivoBot must be a compact floating panel, never a full-width bar */
.kivobot-panel {
  position: fixed !important;
  right: 22px !important;
  bottom: 92px !important;
  left: auto !important;
  top: auto !important;
  width: min(420px, calc(100vw - 32px)) !important;
  height: min(560px, calc(100vh - 120px)) !important;
  display: none !important;
  grid-template-rows: auto 1fr auto !important;
  z-index: 10020 !important;
  overflow: hidden !important;
}
.kivobot-panel.open {
  display: grid !important;
}
.kivobot-panel:not(.open) {
  display: none !important;
}
.kivobot-button {
  z-index: 10030 !important;
}

/* Cookie banner must not collide with KivoBot button */
.cookie-banner {
  bottom: 92px !important;
  right: 22px !important;
  max-width: calc(100vw - 44px) !important;
}
.cookie-banner[hidden],
.cookie-modal[hidden],
.cookie-banner.is-hidden,
.cookie-modal.is-hidden {
  display: none !important;
}

/* If the banner is visible, keep KivoBot button above it visually */
body:has(.cookie-banner:not([hidden])) .kivobot-button {
  bottom: 22px !important;
}

/* Mobile */
@media(max-width:980px) {
  .section {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  .kivobot-panel {
    right: 14px !important;
    bottom: 82px !important;
    width: calc(100vw - 28px) !important;
    height: min(560px, calc(100vh - 110px)) !important;
  }
  .cookie-banner {
    bottom: 84px !important;
    left: 14px !important;
    right: 14px !important;
    max-width: none !important;
  }
}

@media(max-width:620px) {
  .section {
    padding-top: 42px !important;
    padding-bottom: 42px !important;
  }
  .hero-stage .floating-card {
    width: 175px !important;
  }
  .hero-stage .floating-card:nth-of-type(1) {
    left: 0 !important;
    top: 73% !important;
  }
  .hero-stage .floating-card:nth-of-type(2) {
    left: 48% !important;
    top: 55% !important;
  }
  .hero-stage .floating-card:nth-of-type(3) {
    left: 48% !important;
    top: 82% !important;
  }
}


/* --- URGENT v8 FIX: KivoBot + 50% spacing reduction --- */

/* KivoBot closed/open state: no duplicated behaviour, no full-width bar */
.kivobot-panel {
  position: fixed !important;
  right: 22px !important;
  bottom: 92px !important;
  left: auto !important;
  top: auto !important;
  width: min(420px, calc(100vw - 32px)) !important;
  height: min(560px, calc(100vh - 120px)) !important;
  display: none !important;
  grid-template-rows: auto 1fr auto !important;
  z-index: 10020 !important;
  overflow: hidden !important;
}
.kivobot-panel.open {
  display: grid !important;
}
.kivobot-panel:not(.open) {
  display: none !important;
}
.kivobot-button {
  z-index: 10030 !important;
}

/* Cookie banner does not cover KivoBot */
.cookie-banner {
  bottom: 92px !important;
}
.cookie-banner[hidden],
.cookie-modal[hidden],
.cookie-banner.is-hidden,
.cookie-modal.is-hidden {
  display: none !important;
}

/* Reduce vertical spaces roughly 50% */
.section {
  padding-top: 31px !important;
  padding-bottom: 31px !important;
}
.hero {
  padding-top: 7px !important;
  padding-bottom: 15px !important;
  min-height: auto !important;
}
.intro-strip {
  padding-top: 19px !important;
}
.section-head {
  margin-bottom: 18px !important;
}

/* Keep hero cards in requested starting position, but JS can still drag using setProperty important */
.hero-stage .floating-card:nth-of-type(1) {
  left: 0 !important;
  top: 66% !important;
}
.hero-stage .floating-card:nth-of-type(2) {
  left: 68% !important;
  top: 33% !important;
}
.hero-stage .floating-card:nth-of-type(3) {
  left: 68% !important;
  top: 66% !important;
}

@media(max-width:980px) {
  .section {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }
  .kivobot-panel {
    right: 14px !important;
    bottom: 82px !important;
    width: calc(100vw - 28px) !important;
    height: min(560px, calc(100vh - 110px)) !important;
  }
}

@media(max-width:620px) {
  .section {
    padding-top: 21px !important;
    padding-bottom: 21px !important;
  }
}


/* --- KivoLab v9: professional KivoBot panel + cookie spacing --- */

/* Floating button: professional and not covered */
.kivobot-button {
  right: 22px !important;
  bottom: 22px !important;
  z-index: 10050 !important;
  border-radius: 999px !important;
  padding: 10px 12px 10px 18px !important;
  background: #0c1117 !important;
  box-shadow: 0 18px 48px rgba(9, 14, 17, .22) !important;
}
.kivobot-button strong {
  width: 38px !important;
  height: 38px !important;
  border-radius: 50% !important;
  background: url("../img/kivobot-icon.png") center / 28px 28px no-repeat, var(--lime) !important;
  color: transparent !important;
  font-size: 0 !important;
}

/* Panel compact, rounded, clean and always above the page */
.kivobot-panel {
  right: 22px !important;
  bottom: 92px !important;
  left: auto !important;
  top: auto !important;
  width: min(430px, calc(100vw - 32px)) !important;
  height: min(590px, calc(100vh - 126px)) !important;
  border-radius: 34px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255,255,255,.9) !important;
  box-shadow: 0 34px 100px rgba(9,14,17,.24) !important;
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(18px) !important;
  z-index: 10040 !important;
}
.kivobot-panel.open {
  display: grid !important;
  grid-template-rows: auto 1fr auto !important;
}
.kivobot-panel:not(.open) {
  display: none !important;
}

/* Header with custom icon, rounded top controlled by parent */
.kivobot-panel header {
  min-height: 86px !important;
  padding: 18px 20px !important;
  background: #0c1117 !important;
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
}
.kivobot-panel header::before {
  content: "" !important;
  width: 48px !important;
  height: 48px !important;
  flex: 0 0 48px !important;
  border-radius: 0 !important;
  background: url("../img/kivobot-icon.png") center / contain no-repeat !important;
  box-shadow: none !important;
}
.kivobot-panel header > div {
  flex: 1 !important;
}
.kivobot-panel header button {
  width: 38px !important;
  height: 38px !important;
  background: rgba(255,255,255,.10) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
}

/* Chat body */
.chat-messages {
  background:
    radial-gradient(circle at 80% 0%, rgba(184,255,0,.14), transparent 18rem),
    #f6f8f2 !important;
  padding: 20px !important;
}
.bot-message,
.user-message {
  max-width: 86% !important;
  border-radius: 20px !important;
  line-height: 1.48 !important;
}
.bot-message {
  background: #ffffff !important;
  box-shadow: 0 10px 28px rgba(9,14,17,.06) !important;
}
.user-message {
  background: #0c1117 !important;
}

/* Chat form */
.chat-form {
  padding: 14px !important;
  background: rgba(255,255,255,.95) !important;
  border-top: 1px solid rgba(9,14,17,.08) !important;
}
.chat-form input {
  background: #f7f9f2 !important;
  border: 1px solid rgba(9,14,17,.12) !important;
}
.chat-form button {
  background: var(--lime) !important;
  color: #0c1117 !important;
  font-weight: 950 !important;
}

/* Cookie banner: never collide with KivoBot button */
.cookie-banner {
  left: 22px !important;
  right: auto !important;
  bottom: 22px !important;
  width: min(760px, calc(100vw - 520px)) !important;
  min-width: 420px !important;
  z-index: 10010 !important;
}
.cookie-banner[hidden],
.cookie-modal[hidden],
.cookie-banner.is-hidden,
.cookie-modal.is-hidden {
  display: none !important;
}

/* On narrower screens, put cookies above KivoBot */
@media(max-width:1100px) {
  .cookie-banner {
    left: 14px !important;
    right: 14px !important;
    bottom: 92px !important;
    width: auto !important;
    min-width: 0 !important;
  }
  .kivobot-panel {
    right: 14px !important;
    bottom: 82px !important;
    width: calc(100vw - 28px) !important;
    height: min(590px, calc(100vh - 112px)) !important;
    border-radius: 28px !important;
  }
  .kivobot-button {
    right: 14px !important;
    bottom: 18px !important;
  }
}

@media(max-width:620px) {
  .kivobot-panel {
    bottom: 78px !important;
    height: min(560px, calc(100vh - 100px)) !important;
  }
  .cookie-banner {
    bottom: 86px !important;
  }
}


/* --- KivoLab v10 definitive KivoBot icon contrast fix --- */

/* Use the final icon directly: no lime background circle, no color blending */
.kivobot-button strong {
  width: 40px !important;
  height: 40px !important;
  flex: 0 0 40px !important;
  border-radius: 0 !important;
  background: url("../img/kivobot-icon-final.png") center / contain no-repeat !important;
  color: transparent !important;
  font-size: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.kivobot-button strong::before {
  content: none !important;
}

/* Header icon: same final icon, larger and clean */
.kivobot-panel header::before {
  content: "" !important;
  width: 58px !important;
  height: 58px !important;
  flex: 0 0 58px !important;
  border-radius: 0 !important;
  background: url("../img/kivobot-icon-final.png") center / contain no-repeat !important;
  box-shadow: none !important;
}

/* Keep button clean and premium */
.kivobot-button {
  gap: 9px !important;
  padding: 9px 11px 9px 18px !important;
  background: #0c1117 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
}

/* Header with enough room for the icon */
.kivobot-panel header {
  gap: 16px !important;
}


/* --- KivoLab v11 final polish: interior KivoBot icon, logo strip, section colors --- */

/*
  PALETA RÁPIDA PARA EDITAR SECCIONES:
  Cambia estos valores y toda la web ajusta fondos/superficies.
*/
:root {
  --section-bg-hero: transparent;
  --section-bg-intro: rgba(184,255,0,.075);
  --section-bg-services: rgba(255,255,255,.45);
  --section-bg-impact: rgba(17,22,27,.035);
  --section-bg-portfolio: rgba(184,255,0,.065);
  --section-bg-method: rgba(255,255,255,.50);
  --section-bg-contact: transparent;
}

/* Separación equilibrada entre bloques */
.section {
  padding-top: 42px !important;
  padding-bottom: 42px !important;
}
.hero {
  padding-top: 10px !important;
  padding-bottom: 24px !important;
}
.intro-strip {
  padding-top: 34px !important;
}

/* Fondos sutiles por sección, fáciles de cambiar desde variables */
.intro-strip,
.services,
.impact,
.portfolio,
.method {
  position: relative;
}
.intro-strip::before,
.services::before,
.impact::before,
.portfolio::before,
.method::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 8px;
  bottom: 8px;
  width: min(1240px, calc(100vw - 28px));
  transform: translateX(-50%);
  border-radius: 42px;
  z-index: -1;
  pointer-events: none;
}
.intro-strip::before { background: var(--section-bg-intro); }
.services::before { background: var(--section-bg-services); }
.impact::before { background: var(--section-bg-impact); }
.portfolio::before { background: var(--section-bg-portfolio); }
.method::before { background: var(--section-bg-method); }

/* Logo KivoLab en el espacio derecho del bloque de agencia */
.studio-strip {
  grid-template-columns: 1fr .95fr !important;
  align-items: center !important;
}
.studio-strip-right {
  display: grid;
  gap: 18px;
  align-content: center;
}
.studio-logo {
  width: min(360px, 100%);
  height: auto;
  object-fit: contain;
  padding: 20px 24px;
  border-radius: 30px;
  background: #0c1117;
  box-shadow: 0 22px 70px rgba(9,14,17,.12);
}

/* FIX definitivo: icono interior de KivoBot igual al botón exterior */
.kivobot-panel header::before {
  content: "" !important;
  width: 64px !important;
  height: 64px !important;
  flex: 0 0 64px !important;
  border-radius: 0 !important;
  background: url("../img/kivobot-icon-final.png") center / contain no-repeat !important;
  box-shadow: none !important;
  display: block !important;
}

/* Botón exterior usa exactamente el mismo icono */
.kivobot-button strong {
  width: 40px !important;
  height: 40px !important;
  flex: 0 0 40px !important;
  border-radius: 0 !important;
  background: url("../img/kivobot-icon-final.png") center / contain no-repeat !important;
  color: transparent !important;
  font-size: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.kivobot-button strong::before {
  content: none !important;
}

/* Ajustes visuales del header para que el logo respire */
.kivobot-panel header {
  gap: 16px !important;
  min-height: 96px !important;
}
.kivobot-panel header > div {
  align-self: center;
}

/* Responsive */
@media(max-width:980px) {
  .section {
    padding-top: 34px !important;
    padding-bottom: 34px !important;
  }
  .studio-strip {
    grid-template-columns: 1fr !important;
  }
  .studio-logo {
    width: min(300px, 100%);
  }
}
@media(max-width:620px) {
  .section {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
  }
  .kivobot-panel header::before {
    width: 56px !important;
    height: 56px !important;
    flex: 0 0 56px !important;
  }
}


/* --- KivoLab v12: hero logo placement + definitive KivoBot inner icon --- */

/* Hero logo: black, under 3D window, no card/background */
.hero-kivolab-logo {
  position: absolute !important;
  left: 50% !important;
  top: 88% !important;
  transform: translateX(-50%) !important;
  width: min(340px, 62%) !important;
  height: auto !important;
  z-index: 3 !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: brightness(0) saturate(100%) !important;
  opacity: .98 !important;
  pointer-events: none !important;
}

/* Remove previous logo card look in intro if browser cache keeps old node */
.studio-logo {
  display: none !important;
}

/* Make hero stage enough to contain logo below the 3D card */
.hero-stage {
  min-height: 590px !important;
}

/* Definitive KivoBot icon inside header: use the same final asset as exterior and force it over all old rules */
.kivobot-panel header::before {
  content: "" !important;
  width: 70px !important;
  height: 70px !important;
  min-width: 70px !important;
  flex: 0 0 70px !important;
  display: block !important;
  border-radius: 0 !important;
  background-image: url("../img/kivobot-icon-final.png") !important;
  background-color: transparent !important;
  background-position: center !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  box-shadow: none !important;
  mask: none !important;
  -webkit-mask: none !important;
  color: transparent !important;
  font-size: 0 !important;
}

/* Ensure exterior button also uses the same icon */
.kivobot-button strong {
  background-image: url("../img/kivobot-icon-final.png") !important;
  background-color: transparent !important;
  background-position: center !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  border-radius: 0 !important;
  mask: none !important;
  -webkit-mask: none !important;
  color: transparent !important;
  font-size: 0 !important;
}

/* Header balance after bigger icon */
.kivobot-panel header {
  min-height: 104px !important;
  padding: 16px 20px !important;
  align-items: center !important;
}

@media(max-width:980px) {
  .hero-kivolab-logo {
    top: 90% !important;
    width: min(300px, 70%) !important;
  }
  .hero-stage {
    min-height: 610px !important;
  }
}

@media(max-width:620px) {
  .hero-kivolab-logo {
    top: 92% !important;
    width: min(250px, 78%) !important;
  }
  .hero-stage {
    min-height: 660px !important;
  }
  .kivobot-panel header::before {
    width: 62px !important;
    height: 62px !important;
    min-width: 62px !important;
    flex: 0 0 62px !important;
  }
}
/* Efecto destacado en "sin ruido" */
.hero-highlight {
  display: inline-block;
  position: relative;
  color: var(--lime);
  background: #080b0e;
  padding: 0.02em 0.14em 0.08em;
  border-radius: 0.16em;
  line-height: 0.92;
  letter-spacing: -0.07em;
  box-shadow: 0 18px 42px rgba(8, 11, 14, 0.16);
}

.hero-highlight::before {
  content: "";
  position: absolute;
  inset: -0.05em;
  border-radius: 0.18em;
  background: linear-gradient(
    135deg,
    rgba(184, 255, 0, 0.18),
    transparent 42%,
    rgba(184, 255, 0, 0.08)
  );
  z-index: -1;
}

.hero-highlight::after {
  content: "";
  position: absolute;
  left: 0.12em;
  right: 0.12em;
  bottom: 0.05em;
  height: 0.08em;
  background: rgba(184, 255, 0, 0.22);
  border-radius: 999px;
  display: none !important;
  content: none !important;
}
@media (max-width: 620px) {

  .hero-highlight {

    padding: 0.03em 0.12em 0.08em;

    border-radius: 0.14em;

  }

}
/* Botón formulario contacto */
.contact-form .btn-submit {
  width: auto !important;
  min-width: 220px !important;
  max-width: 280px !important;
  justify-self: start !important;
  grid-column: 1 / -1 !important;

  background: var(--lime) !important;
  color: #0c1117 !important;
  border: 1px solid var(--lime) !important;
  border-radius: 999px !important;
  padding: 16px 28px !important;
  font-weight: 950 !important;
  box-shadow: 0 14px 34px rgba(184, 255, 0, 0.22) !important;
}

.contact-form .btn-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 42px rgba(184, 255, 0, 0.30) !important;
}
