/*
Theme Name: AB Marketing Ibiza
Theme URI: https://abmarketingibiza.es
Author: AB Marketing Ibiza
Version: 4.0.0
License: GNU General Public License v2 or later
Text Domain: ab-marketing-ibiza
*/

/* Diseño migrado fielmente desde design-reference.html (aprobado) */

:root{
  --rojo:#C60726;
  --negro:#0a0908;
  --gris-osc:#1c1a18;
  --gris-med:#6b6864;
  --gris-cla:#e8e6e2;
  --blanco:#fafaf8;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Manrope',sans-serif; color:var(--negro); background:var(--blanco); line-height:1.65; font-weight:400; overflow-x:hidden;}
h1,h2,h3{font-family:'Manrope',sans-serif; font-weight:600; line-height:1.2; letter-spacing:-0.5px;}
img{max-width:100%; height:auto; display:block;}
.container{max-width:1180px; margin:0 auto; padding:0 48px;}
a{text-decoration:none; color:inherit;}
ul{list-style:none;}
.btn{display:inline-block; padding:16px 32px; border-radius:2px; font-weight:600; font-size:13px; letter-spacing:0.5px; text-transform:uppercase; transition:all .25s ease; cursor:pointer; border:none; font-family:'Manrope',sans-serif;}
.btn-rojo{background:var(--rojo); color:#fff !important;}
.btn-rojo:hover{background:#a10520; color:#fff !important;}
.btn-outline{border:1px solid rgba(255,255,255,0.3); color:#fff !important; background:transparent;}
.btn-outline:hover{border-color:#fff; background:rgba(255,255,255,0.05); color:#fff !important;}
.btn-outline-dark{border:1px solid #ccc; color:var(--negro); background:transparent;}
.full{min-height:100vh; display:flex; align-items:center; position:relative; padding:80px 0;}
.eyebrow{position:relative; color:var(--rojo); font-size:12px; letter-spacing:1px; font-weight:700; margin-bottom:18px; display:flex; align-items:baseline; gap:8px; text-transform:uppercase; font-family:'Manrope',sans-serif; min-height:16px;}
.eyebrow .idx{font-size:12px; color:var(--gris-med); font-weight:400;}
.eyebrow .tw-cursor{display:inline-block; width:2px; background:var(--rojo); animation:blink 0.8s step-end infinite; height:12px;}
/* Reserva de espacio para las animaciones de máquina de escribir: el "fantasma" invisible
   fija el ancho/alto final desde el primer instante (mide el texto completo ya escrito),
   y el texto que se va tecleando se superpone encima sin afectar el layout de alrededor */
.tw-ghost{visibility:hidden; white-space:nowrap;}
.tw-typed{position:absolute; left:0; top:0; white-space:nowrap; display:flex; align-items:baseline;}

/* LIQUID BG */
.liquid-bg{position:absolute; inset:0; overflow:hidden; z-index:0;}
.blob{position:absolute; border-radius:50%; filter:blur(60px); animation:morph 8s ease-in-out infinite;}
@keyframes morph{
  0%,100%{border-radius:42% 58% 63% 37% / 41% 44% 56% 59%; transform:scale(1) translate(0,0);}
  33%{border-radius:63% 37% 42% 58% / 55% 48% 52% 45%; transform:scale(1.18) translate(40px,-25px);}
  66%{border-radius:50% 50% 33% 67% / 62% 38% 62% 38%; transform:scale(0.9) translate(-30px,30px);}
}
.grain{position:absolute; inset:0; opacity:0.04; pointer-events:none; z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)'/%3E%3C/svg%3E");}

/* MARQUEE SERVICIOS + BENEFICIOS */
.marquee{background:var(--rojo); overflow:hidden; white-space:nowrap; padding:16px 0; position:relative; z-index:5;}
.marquee-track{display:inline-block; animation:scroll 26s linear infinite;}
.marquee-track span{color:#fff; font-size:11px; font-weight:400; letter-spacing:1.5px; margin:0 20px; text-transform:uppercase;}
.marquee-track .sep{color:rgba(255,255,255,0.45); font-size:11px; margin:0 0;}
.marquee-track .stars{color:#F5C144; font-size:10px; letter-spacing:1px; margin-right:6px;}
@keyframes scroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* NAV */
.site-header{position:absolute; top:0; left:0; right:0; z-index:20; padding:36px 0; transition:all .3s ease;}
.site-header.scrolled{background:rgba(10,9,8,0.92); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); padding:20px 0; position:fixed;}
.nav{display:flex; justify-content:space-between; align-items:center;}
.nav__logo{color:#fff; font-weight:800; font-size:20px; letter-spacing:1px; font-family:'Manrope',sans-serif;}
.nav__links{display:flex; gap:34px; align-items:center;}
.nav__links a{font-size:12px; color:#ccc; letter-spacing:0.5px; text-transform:uppercase; font-weight:500; transition:color .2s;}
.nav__links a:hover{color:#fff;}
.nav__links .btn{padding:12px 24px;}
.nav__hamburger{display:none; flex-direction:column; gap:5px; cursor:pointer; padding:5px; background:none; border:none;}
.nav__hamburger span{display:block; width:24px; height:1.5px; background:#fff; transition:all .3s ease;}
.nav__mobile{display:none; position:fixed; inset:0; background:var(--negro); z-index:999; flex-direction:column; align-items:center; justify-content:center; gap:2.2rem;}
.nav__mobile.open{display:flex;}
.nav__mobile a{font-family:'Manrope',sans-serif; font-size:2.2rem; font-weight:600; color:#fff; transition:color .2s;}
.nav__mobile a:hover{color:var(--rojo);}
.nav__mobile-close{position:absolute; top:2rem; right:2rem; background:none; border:none; color:#fff; font-size:1.8rem; cursor:pointer;}

/* HERO */
.hero{background:var(--negro); color:#fff;}
.hero .blob:nth-child(1){width:560px; height:560px; background:radial-gradient(circle, rgba(198,7,38,0.6), transparent 70%); top:-15%; right:-15%; animation-duration:7s;}
.hero .blob:nth-child(2){width:380px; height:380px; background:radial-gradient(circle, rgba(255,255,255,0.06), transparent 70%); bottom:-20%; left:0%; animation-delay:-4s; animation-duration:9s;}
.hero .blob:nth-child(3){width:260px; height:260px; background:radial-gradient(circle, rgba(198,7,38,0.35), transparent 70%); top:40%; left:30%; animation-delay:-2s; animation-duration:10s;}
.hero-content{position:relative; z-index:2; max-width:760px;}
.hero h1{font-size:clamp(38px,5.5vw,66px); margin-bottom:28px; letter-spacing:-1.5px; font-weight:700; color:#fff;}
.hero h1 .rojo{color:var(--rojo);}
.hero p{color:#bbb; font-size:16px; margin-bottom:36px; max-width:520px; line-height:1.8; font-weight:300;}
.hero-buttons{display:flex; gap:16px; flex-wrap:wrap;}
#typewriter-cursor{display:inline-block; width:2px; background:var(--rojo); animation:blink 0.8s step-end infinite; margin-left:2px;}
@keyframes blink{50%{opacity:0;}}

/* SOBRE NOSOTROS */
.about{background:var(--blanco);}
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; width:100%;}
.about h2{font-size:clamp(28px,3.5vw,44px); margin-bottom:24px;}
.about p{font-size:15px; color:#444; margin-bottom:20px; line-height:1.9; max-width:480px;}
.stats{display:flex; gap:0; margin-top:44px; border-top:1px solid #ddd;}
.stat{flex:1; padding:28px 24px 0 24px; border-right:1px solid #ddd;}
.stat:first-child{padding-left:0;}
.stat:last-child{border-right:none;}
.stat .n{font-size:36px; font-weight:700; color:var(--negro);}
.stat .n .rojo{color:var(--rojo);}
.stat .l{font-size:12px; color:#888; margin-top:6px;}
.about-visual{position:relative; height:440px; overflow:hidden; background:var(--gris-osc); border-radius:4px;}
.about-visual__img{
  position:absolute; top:-12%; left:0; width:100%; height:124%; object-fit:cover;
  opacity:0; transform:scale(1.18) translateY(var(--parallax, 0px));
  transition:opacity 1.1s ease, transform 1.3s cubic-bezier(.2,.8,.2,1);
  will-change:transform;
}
.about-visual__img.in-view{opacity:1; transform:scale(1.06) translateY(var(--parallax, 0px));}

/* SECTORES · enlace de cierre */
.sectors-more{
  display:inline-flex; align-items:center; gap:6px; margin-top:40px;
  color:var(--rojo); font-size:13px; font-weight:600; letter-spacing:0.5px;
  text-transform:uppercase; position:relative; z-index:2; transition:gap .3s ease;
}
.sectors-more:hover{gap:12px;}

/* DIFERENCIACION */
.diff{background:var(--negro); color:#fff;}
.diff .blob{background:radial-gradient(circle, rgba(198,7,38,0.3), transparent 70%);}
.diff .blob:nth-child(1){width:400px; height:400px; top:20%; right:0%;}
.diff-content{position:relative; z-index:2; max-width:820px;}
.diff h2{font-size:clamp(26px,3.8vw,46px); line-height:1.35; color:#fff;}
.diff h2 .circled-mark{position:relative; display:inline-block; white-space:nowrap; color:#fff; transition:color .5s ease .85s;}
.diff h2 .circled-mark.active{color:var(--rojo);}
.diff h2 .circled-mark svg{position:absolute; left:-10%; top:-30%; width:120%; height:165%; pointer-events:none;}
.diff h2 .circled-mark svg ellipse{transition:stroke-dashoffset 0.9s cubic-bezier(.4,0,.2,1);}
.diff-points{display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:36px;}
.diff-point{border-left:2px solid var(--rojo); padding-left:18px;}
.diff-point p{color:#aaa; font-size:13.5px; line-height:1.8; font-weight:300; margin:0;}

/* SECTORES */
.sectors{background:var(--blanco); position:relative; overflow:hidden;}
.sectors .blob{background:radial-gradient(circle, rgba(198,7,38,0.1), transparent 70%);}
.sectors .blob:nth-child(1){width:400px; height:400px; bottom:-15%; left:-10%;}
.sectors-head{max-width:600px; margin-bottom:56px; position:relative; z-index:2;}
.sectors h2{font-size:clamp(26px,3.5vw,40px);}
.sectors-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:36px 32px; width:100%; position:relative; z-index:2;}
.sector-card{background:transparent; padding:0 0 24px 0; text-decoration:none; color:inherit; display:block; position:relative; border-bottom:1px solid #e5e2dc; transition:border-color .3s ease;}
.sector-card:hover{border-color:var(--rojo);}
.sector-card i{font-size:22px; color:var(--rojo); margin-bottom:16px; display:block; transition:transform .3s ease;}
.sector-card:hover i{transform:translateX(4px);}
.sector-card h4{font-size:15px; font-weight:600; margin-bottom:8px; display:flex; align-items:center; justify-content:space-between;}
.sector-card h4::after{content:'→'; opacity:0; transition:opacity .3s ease, transform .3s ease; transform:translateX(-6px); color:var(--rojo); font-weight:400;}
.sector-card:hover h4::after{opacity:1; transform:translateX(0);}
.sector-card p{font-size:13px; color:#777; line-height:1.6;}

/* SERVICIOS */
.services{background:var(--gris-cla); position:relative; overflow:hidden;}
.services .blob{background:radial-gradient(circle, rgba(198,7,38,0.18), transparent 70%);}
.services .blob:nth-child(1){width:420px; height:420px; top:-10%; right:-8%;}
.services-head{max-width:600px; margin-bottom:56px; position:relative; z-index:2;}
.services h2{font-size:clamp(26px,3.5vw,40px);}
.services-list{width:100%; position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:2px; background:#e5e2dc;}
.svc-row{background:var(--gris-cla); padding:44px 36px; transition:background .3s ease, transform .35s ease; transform:scale(1); position:relative; z-index:1;}
.svc-row:hover{background:#eeece6; transform:scale(1.025); z-index:2; box-shadow:0 20px 40px rgba(0,0,0,0.07);}
.svc-row .icon-badge{width:64px; height:64px; display:flex; align-items:center; justify-content:center; margin-bottom:20px; transform:rotate(-4deg); transition:transform .4s ease;}
.svc-row:hover .icon-badge{transform:rotate(2deg) scale(1.1);}
.svc-row .icon-badge svg{width:56px; height:56px; stroke:var(--rojo); transition:stroke .35s ease;}
.svc-row .title-wrap{position:relative; display:inline-block; margin-bottom:10px;}
.svc-row .title-wrap svg{position:absolute; left:-10%; top:-35%; width:120%; height:180%; pointer-events:none; opacity:0; transition:opacity .4s ease .1s;}
.svc-row:hover .title-wrap svg{opacity:1;}
.svc-row h4{font-size:20px; font-weight:600; position:relative; z-index:1;}
.svc-row p{font-size:13.5px; color:#777; line-height:1.75; max-width:320px;}
.svc-row .pain{color:var(--rojo); font-weight:600;}

/* METODOLOGIA */
.method{background:var(--gris-osc); color:#fff;}
.method .blob{background:radial-gradient(circle, rgba(198,7,38,0.25), transparent 70%);}
.method .blob:nth-child(1){width:360px; height:360px; bottom:-10%; left:-5%;}
.method-head{max-width:600px; margin-bottom:56px; position:relative; z-index:2;}
.method h2{font-size:clamp(26px,3.5vw,40px); color:#fff;}
.method-steps{position:relative; z-index:2; width:100%;}
.step{display:flex; align-items:flex-start; gap:36px; padding:30px 0; border-top:1px solid #3a3733;}
.step:last-child{border-bottom:1px solid #3a3733;}
.step .num{font-size:15px; color:var(--rojo); font-weight:700; width:36px; flex-shrink:0; padding-top:4px;}
.step h4{font-size:17px; font-weight:600; margin-bottom:8px; color:#fff;}
.step p{color:#999; font-size:13px; max-width:520px; line-height:1.75; font-weight:300;}

/* PORTFOLIO */
.portfolio{background:var(--blanco); position:relative; overflow:hidden;}
.portfolio .blob{background:radial-gradient(circle, rgba(198,7,38,0.12), transparent 70%);}
.portfolio .blob:nth-child(1){width:440px; height:440px; top:-10%; right:-10%;}
.portfolio-head{max-width:600px; margin-bottom:56px; position:relative; z-index:2;}
.portfolio h2{font-size:clamp(26px,3.5vw,40px);}
.cases-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; width:100%; margin-bottom:60px;}
.clients-marquee{overflow:hidden; white-space:nowrap; border-top:1px solid #ddd; padding-top:40px; position:relative; z-index:2;}
.clients-marquee-track{display:inline-flex; align-items:center; animation:scroll 22s linear infinite;}
.client-logo{display:inline-flex; align-items:center; justify-content:center; height:42px; margin:0 34px;}
/* Regla base única aplicada a los 7 logos por igual (verificada con simulación matemática pixel a pixel
   de los archivos reales antes de desplegar, ver conversación) */
.client-logo img{height:42px; width:auto; max-width:130px; object-fit:contain; filter:grayscale(1) contrast(0.5) brightness(1.6); opacity:0.75; transition:opacity .3s ease;}
/* Única excepción objetiva: San Martino es texto blanco puro sobre transparente — sin invert() es
   matemáticamente imposible que se distinga de un fondo claro, sea cual sea el contraste/brillo aplicado */
.client-logo--invert img{filter:grayscale(1) contrast(0.5) brightness(1.6) invert(1);}
.client-logo:hover img{opacity:1;}
.case-card{position:relative; height:260px; overflow:hidden; cursor:pointer; transition:transform .3s ease; background-size:cover; background-position:center;}
.case-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.case-card:hover img{transform:scale(1.06);}
.case-card:hover{transform:scale(1.02);}
.case-card::before{content:''; position:absolute; inset:0; background:rgba(10,9,8,0.38); z-index:1; pointer-events:none; transition:background .35s ease;}
.case-card:hover::before{background:rgba(10,9,8,0.12);}
.case-card .ov{position:absolute; inset:0; z-index:2; background:linear-gradient(0deg, rgba(10,9,8,0.94) 0%, rgba(10,9,8,0.6) 40%, transparent 75%); display:flex; align-items:flex-end; padding:24px; transition:background .35s ease;}
.case-card:hover .ov{background:linear-gradient(0deg, rgba(10,9,8,0.7) 0%, rgba(10,9,8,0.32) 40%, transparent 75%);}
.case-card h4{color:#fff; font-size:16px; font-weight:600; text-shadow:0 1px 3px rgba(0,0,0,0.8);}
.case-card span{color:var(--rojo); font-size:12px; text-shadow:0 1px 3px rgba(0,0,0,0.8);}

/* RESEÑAS */
.reviews{background:var(--gris-cla);}
.reviews-head{max-width:600px; margin-bottom:56px; display:flex; align-items:center; justify-content:space-between; width:100%; flex-wrap:wrap; gap:20px;}
.reviews h2{font-size:clamp(26px,3.5vw,40px);}
.google-badge{display:inline-flex; align-items:center; gap:8px;}
.google-badge .stars{color:#F5A623; font-size:15px; letter-spacing:1px;}
.google-badge b{font-size:14px; font-weight:700; color:var(--negro);}
.google-badge span{font-size:12.5px; color:var(--gris-med);}
.reviews-marquee{overflow:hidden; white-space:nowrap; width:100%;}
.reviews-marquee-track{display:inline-flex; align-items:stretch; animation:scroll 42s linear infinite;}
.review-card{
  background:rgba(255,255,255,0.65); border:1px solid rgba(10,9,8,0.08);
  padding:28px; border-radius:10px; width:320px; flex-shrink:0;
  margin:0 10px; white-space:normal; vertical-align:top;
  transition:transform .3s ease, box-shadow .3s ease, background .3s ease;
}
.review-card:hover{transform:translateY(-3px); box-shadow:0 16px 32px rgba(0,0,0,0.06); background:rgba(255,255,255,0.9);}
.review-card__top{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.review-card .stars{color:#F5A623; font-size:14px;}
.review-card__top img{height:18px; width:auto; display:block;}
.review-card p{font-size:14px; color:#444; line-height:1.8; margin-bottom:16px; font-weight:300;}
.review-card .name{font-size:13px; font-weight:600;}

/* CONTACTO */
.contact{background:var(--negro); color:#fff;}
.contact .blob{background:radial-gradient(circle, rgba(198,7,38,0.35), transparent 70%);}
.contact .blob:nth-child(1){width:460px; height:460px; top:-10%; left:-10%;}
.contact-grid{display:grid; grid-template-columns:1fr 1.1fr; gap:70px; position:relative; z-index:2; width:100%; align-items:start;}
.contact h2{font-size:clamp(28px,4vw,48px); margin-bottom:20px; color:#fff;}
.contact-info p{color:#999; font-size:14px; margin-bottom:36px; line-height:1.8; font-weight:300; max-width:420px;}
.form-card{background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.1); border-radius:4px; padding:40px; transition:border-color .3s ease;}
.form-card:hover{border-color:rgba(198,7,38,0.35);}
.contact-channels{display:flex; flex-direction:column; gap:16px;}
.channel{display:flex; align-items:center; gap:14px; color:#ddd; font-size:14px;}
.channel i{font-size:20px; color:var(--rojo);}
.form-group{margin-bottom:20px;}
.form-group input, .form-group textarea, .form-group select{width:100%; background:transparent; border:none; border-bottom:1px solid #444; color:#fff; padding:12px 0; font-size:16px; font-family:'Manrope',sans-serif; outline:none; transition:border-color .2s;}
.form-group input:focus, .form-group textarea:focus, .form-group select:focus{border-color:var(--rojo);}
.form-group label{font-size:11px; color:#888; text-transform:uppercase; letter-spacing:1px; margin-bottom:6px; display:block;}
.form-group select option{background:#0a0908;}

/* FAQ */
.faq{background:var(--gris-cla);}
.faq-head{max-width:600px; margin-bottom:56px;}
.faq h2{font-size:clamp(26px,3.5vw,40px);}
.faq-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 60px; width:100%;}
.faq-item{padding:24px 20px; margin:0 -20px; border-bottom:1px solid #d5d2cc; display:flex; justify-content:space-between; align-items:flex-start; gap:16px; font-size:14px; font-weight:600; cursor:pointer; transition:background .25s ease, padding-left .25s ease;}
.faq-item:hover{background:rgba(198,7,38,0.05); padding-left:28px;}
.faq-item.open{background:rgba(198,7,38,0.06);}
.faq-item .answer{display:none; font-size:13px; font-weight:300; color:#666; margin-top:12px; line-height:1.7;}
.faq-item.open .answer{display:block;}
.faq-item i{color:var(--rojo); font-size:16px; transition:transform .3s ease; flex-shrink:0;}
.faq-item.open i{transform:rotate(45deg);}

/* FOOTER */
footer.site-footer{background:var(--negro); color:rgba(255,255,255,0.75); padding:70px 0 40px; font-size:13px; line-height:2;}
footer.site-footer .container{display:flex; justify-content:space-between; flex-wrap:wrap; gap:40px;}
footer.site-footer strong{color:#fff; display:block; margin-bottom:16px; font-size:14px; letter-spacing:0.5px;}
footer.site-footer a{color:rgba(255,255,255,0.75); transition:color .2s;}
footer.site-footer a:hover{color:#fff;}
.socials{display:flex; gap:14px; margin-top:16px;}
.socials a{width:36px; height:36px; border:1px solid #555; border-radius:50%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.85); transition:border-color .2s, color .2s;}
.socials a:hover{border-color:var(--rojo); color:#fff;}
.footer__bottom{border-top:1px solid rgba(255,255,255,0.09); margin-top:40px; padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:12px; color:rgba(255,255,255,0.55);}
.footer__bottom a{color:rgba(255,255,255,0.55); transition:color .2s;}
.footer__bottom a:hover{color:#fff;}

/* FLOATING BAR */
.floating{position:fixed; bottom:24px; right:24px; display:flex; gap:12px; z-index:50; align-items:center;}
.floating .wa{background:var(--negro); border:1px solid rgba(198,7,38,0.4); width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--rojo); font-size:24px; box-shadow:0 4px 14px rgba(0,0,0,0.3); transition:border-color .2s;}
.floating .wa:hover{border-color:var(--rojo);}
.floating .cta{background:var(--rojo); color:#fff; padding:15px 24px; border-radius:2px; font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:0.5px; box-shadow:0 4px 14px rgba(0,0,0,0.25); cursor:pointer;}

/* Oculta el botón flotante propio del plugin Joinchat (creame-whatsapp-me): mantenemos el
   plugin activo pero usamos nuestro propio botón de WhatsApp integrado en .floating */
.joinchat{display:none !important;}

/* SCROLL REVEAL */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1);}
.reveal.in-view{opacity:1; transform:translateY(0);}

/* COOKIES (mantenido del sitio, adaptado a la nueva paleta) */
.cookies-banner{
  position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%);
  z-index:9999; background:var(--gris-osc);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:4px; padding:1.5rem 2rem;
  box-shadow:0 20px 60px rgba(0,0,0,0.35);
  max-width:520px; width:calc(100% - 2rem);
  display:none; flex-direction:column; gap:1.2rem;
}
.cookies-banner.visible{display:flex; animation:slideUp 0.4s ease;}
@keyframes slideUp{from{transform:translateX(-50%) translateY(20px);opacity:0} to{transform:translateX(-50%) translateY(0);opacity:1}}
.cookies-banner h4{font-size:0.95rem; color:#fff;}
.cookies-banner p{font-size:0.82rem; color:rgba(255,255,255,0.5);}
.cookies-banner p a{color:var(--rojo);}
.cookies-btns{display:flex; gap:0.75rem; flex-wrap:wrap;}
.cookies-btns button{padding:0.55rem 1.4rem; border-radius:2px; font-family:'Manrope',sans-serif; font-size:0.82rem; font-weight:600; cursor:pointer; border:1.5px solid transparent; transition:all .25s ease;}
.cookies-aceptar{background:var(--rojo); color:#fff;}
.cookies-aceptar:hover{background:#a10520;}
.cookies-rechazar{background:transparent; color:rgba(255,255,255,0.55); border-color:rgba(255,255,255,0.15);}
.cookies-rechazar:hover{border-color:rgba(255,255,255,0.4); color:#fff;}
.cookies-config{background:transparent; color:var(--rojo); border-color:rgba(198,7,38,0.35);}
.cookies-config:hover{background:rgba(198,7,38,0.12);}

/* ============ TABLET (≤1024px) ============ */
@media(max-width:1024px){
  .container{padding:0 32px;}
  .full{padding:64px 0;}
  .hero{min-height:100svh;}
  .about-grid, .contact-grid{grid-template-columns:1fr; gap:40px;}
  .sectors-grid{grid-template-columns:repeat(2,1fr); gap:28px 24px;}
  .cases-grid{grid-template-columns:repeat(2,1fr);}
  .faq-grid{grid-template-columns:1fr; gap:0;}
  .diff-points{grid-template-columns:1fr; gap:20px;}
  .nav__links{display:none;}
  .nav__hamburger{display:flex;}
}

/* ============ MÓVIL (≤640px) ============ */
@media(max-width:640px){
  .container{padding:0 20px;}
  .full{padding:56px 0; min-height:auto;}
  .hero{min-height:100svh; padding:120px 0 48px;}
  .hero-content{max-width:100%;}
  .hero-buttons{width:100%;}
  .hero-buttons .btn{flex:1; text-align:center;}

  .sectors-grid{grid-template-columns:1fr; gap:0;}
  .services-list{grid-template-columns:1fr;}
  .svc-row{flex-direction:column; align-items:flex-start; gap:12px; padding:32px 22px;}
  .svc-row p{text-align:left;}
  .cases-grid{grid-template-columns:1fr;}
  .case-card{height:220px;}

  .stats{flex-wrap:wrap; gap:20px;}
  .stat{flex:1 1 45%; border-right:none; padding:16px 0 0 0; border-top:1px solid #ddd; margin-top:12px;}
  .stat:first-child{margin-top:0;}
  .about-visual{height:300px;}

  .review-card{width:260px;}
  .client-logo{margin:0 20px;}

  .form-card{padding:26px;}
  .contact-channels{gap:12px;}

  footer.site-footer .container{flex-direction:column;}
  .footer__bottom{flex-direction:column; align-items:flex-start; gap:14px;}

  .socials a{width:44px; height:44px;}
  .nav__logo img{height:22px;}

  .floating{bottom:16px; right:16px; gap:8px;}
  .floating .wa{width:46px; height:46px; font-size:20px;}
  .floating .cta{padding:12px 16px; font-size:11px;}

  .cookies-banner{padding:1.2rem 1.4rem; bottom:1rem;}
}
