/* ===== Variables ===== */

:root{

--color-bg:#0b1117;
--color-surface:#141c26;
--color-surface-alt:#1c2633;

--color-text:#e6edf3;
--color-text-muted:#94a3b8;

--color-accent:#f59e0b;
--color-accent-hover:#fbbf24;

--color-border:rgba(255,255,255,0.08);

/* Glass / transparencias consistentes */
--glass-strong:rgba(60,80,105,.95);
--glass:rgba(20,28,38,.82);
--glass-soft:rgba(20,28,38,.62);

/* Overlay global (para asegurar contraste sobre fondos) */
--bg-overlay:linear-gradient(180deg,rgba(6,10,14,.72) 0%, rgba(6,10,14,.58) 55%, rgba(6,10,14,.72) 100%);

--font-body:'Outfit',system-ui,sans-serif;
--font-heading:'Space Grotesk',system-ui,sans-serif;

--radius:12px;
--radius-lg:20px;

--transition:.3s ease;

--shadow:0 10px 30px rgba(0,0,0,.35);

}

/* ===== Reset ===== */

*,
*::before,
*::after{
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
scroll-padding-top:80px;
}

.skip-link{
position:absolute;
top:-100px;
left:1rem;
z-index:200;
padding:.6rem 1rem;
background:var(--color-accent);
color:#000;
font-weight:600;
border-radius:var(--radius);
text-decoration:none;
transition:top .2s ease;
}
.skip-link:focus{
top:1rem;
outline:2px solid #fff;
outline-offset:2px;
}

body{

margin:0;

font-family:var(--font-body);

font-size:1rem;

color:var(--color-text);

background-color:var(--color-bg);

}

/* Fondo que cambia (imágenes desde carpeta img/fondo) */
.bg-cycle{
position:fixed;
inset:0;
z-index:-1;
}

.bg-cycle::after{
content:"";
position:absolute;
inset:0;
background:var(--bg-overlay);
pointer-events:none;
}

.bg-cycle__layer{
position:absolute;
inset:0;
background-size:cover;
background-position:center;
background-repeat:no-repeat;
background-attachment:fixed;
opacity:0;
transition:opacity 1.2s ease;
}

.bg-cycle__layer--current{
opacity:1;
}

/* ===== Header ===== */

.header{

position:sticky;
top:0;

z-index:50;

background:var(--glass-strong);

backdrop-filter:blur(10px);

border-bottom:1px solid var(--color-border);

}

.header__inner{

max-width:1200px;
margin:auto;

padding:1rem 1.5rem;

display:flex;
align-items:center;
justify-content:space-between;

}

/* ===== Logo ===== */

.logo{

display:flex;
align-items:center;
gap:.7rem;

font-family:var(--font-heading);
font-weight:700;

text-decoration:none;
color:var(--color-text);

}

.logo img{
height:90px;
}
.logo__text{
white-space:nowrap;
}
@media (max-width:900px){
.logo__text{
font-size:.8rem;
white-space:normal;
max-width:140px;
line-height:1.2;
}
}
@media (max-width:600px){
.logo__text{
display:none;
}
}

/* ===== Navigation ===== */

.nav{

display:flex;
gap:.5rem;

}

.nav a{

padding:.6rem 1rem;

color:var(--color-text-muted);

text-decoration:none;

border-radius:var(--radius);

transition:var(--transition);

}

.nav a:hover{

background:var(--color-surface-alt);
color:white;

}

.nav a.nav__link--active{
color:var(--color-accent);
background:rgba(245,158,11,0.12);
}

.nav a:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:2px;
}

/* ----- Nav toggle (hamburger) - visible solo en móvil ----- */
.nav-toggle{
display:none;
flex-direction:column;
justify-content:center;
gap:6px;
width:44px;
height:44px;
padding:0;
background:transparent;
border:1px solid var(--color-border);
border-radius:var(--radius);
cursor:pointer;
color:var(--color-text);
transition:var(--transition);
}

.nav-toggle span{
display:block;
width:22px;
height:2px;
background:currentColor;
border-radius:1px;
transition:var(--transition);
margin:0 auto;
}

.nav-toggle[aria-expanded="true"] span:nth-child(1){
transform:translateY(8px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] span:nth-child(2){
opacity:0;
}

.nav-toggle[aria-expanded="true"] span:nth-child(3){
transform:translateY(-8px) rotate(-45deg);
}

.nav-toggle:hover{
background:var(--color-surface-alt);
border-color:rgba(245,158,11,.3);
}

.nav-toggle:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:2px;
}

/* ===== HERO ===== */

.hero{

position:relative;

min-height:90vh;

display:flex;
align-items:center;
justify-content:center;

padding:4rem 1.5rem;

overflow:hidden;

}

.hero__bg{

position:absolute;
inset:0;

background:
linear-gradient(135deg,rgba(5,8,12,0.92) 0%,rgba(11,17,23,0.85) 50%,rgba(5,8,12,0.9) 100%),
radial-gradient(ellipse 80% 50% at 50% 0%,rgba(245,158,11,0.08),transparent);

z-index:0;

}

.hero__content{

position:relative;
z-index:2;

max-width:650px;
text-align:center;

}

.hero__eyebrow{

color:var(--color-accent);

letter-spacing:.15em;

text-transform:uppercase;

font-size:.85rem;

margin-bottom:1rem;

animation:fadeInUp .8s ease forwards;

}

@keyframes fadeInUp{

from{ opacity:0; transform:translateY(20px); }
to{ opacity:1; transform:translateY(0); }
}

.hero__title{ animation:fadeInUp .8s ease .15s both; }
.hero__desc{ animation:fadeInUp .8s ease .3s both; }
.hero .btn{ animation:fadeInUp .8s ease .45s both; }

@media (prefers-reduced-motion: reduce){
.hero__eyebrow,.hero__title,.hero__desc,.hero .btn{ animation:none; }
}

.hero__title{

font-family:var(--font-heading);

font-size:clamp(2rem,5vw,3.4rem);

margin-bottom:1.3rem;

text-shadow:0 6px 30px rgba(0,0,0,.9);

}

.hero__desc{

color:#d6dee6;

font-size:1.15rem;

margin-bottom:2rem;

}

/* ===== Hero Scroll Indicator ===== */
.hero__scroll {
position: absolute;
bottom: 2.5rem;
left: 50%;
transform: translateX(-50%);
display: flex;
flex-direction: column;
align-items: center;
gap: 0.4rem;
color: var(--color-text-muted);
font-size: 0.8rem;
text-transform: uppercase;
letter-spacing: 0.15em;
text-decoration: none;
z-index: 10;
transition: var(--transition);
animation: bounceScroll 2.5s infinite;
}
.hero__scroll:hover {
color: var(--color-accent);
}
@keyframes bounceScroll {
0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
40% { transform: translateX(-50%) translateY(-10px); }
60% { transform: translateX(-50%) translateY(-5px); }
}

/* ===== Buttons ===== */

.btn{

display:inline-flex;

align-items:center;
justify-content:center;

gap:8px;

padding:.9rem 1.7rem;

border-radius:var(--radius);

font-weight:600;

cursor:pointer;

text-decoration:none;

transition:var(--transition);

}

.btn--primary{

background:linear-gradient(135deg,#f59e0b,#fbbf24);

color:#000;

}

.btn--primary:hover{

transform:translateY(-3px);

box-shadow:0 10px 30px rgba(245,158,11,.45);

}

.btn:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:3px;
}

.btn--whatsapp{
background:#25D366;
color:#fff;
}
.btn--whatsapp:hover{
background:#20bd5a;
box-shadow:0 10px 30px rgba(37,211,102,.4);
}

/* ===== Nosotros ===== */

.nosotros{
padding:6rem 0;
background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-surface) 50%,var(--color-bg) 100%);
}

.nosotros__content{
max-width:720px;
margin:0 auto;
text-align:center;
}

.section-title--light{
background:transparent;
backdrop-filter:none;
}

.nosotros__text{
color:var(--color-text-muted);
font-size:1.1rem;
line-height:1.75;
margin-bottom:2.5rem;
}

.nosotros__text strong{
color:var(--color-accent);
}

.nosotros__stats{
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:2rem;
}

.stat{
padding:1.25rem 1.75rem;
background:var(--color-surface);
border-radius:var(--radius);
border:1px solid var(--color-border);
min-width:160px;
transition:var(--transition);
}

.stat:hover{
border-color:rgba(245,158,11,.25);
box-shadow:0 8px 24px rgba(0,0,0,.2);
}

.stat__number{
display:block;
font-family:var(--font-heading);
font-size:1.75rem;
font-weight:700;
color:var(--color-accent);
margin-bottom:.35rem;
}

.stat__label{
font-size:.9rem;
color:var(--color-text-muted);
}

@media(max-width:768px){
.nosotros__stats{
flex-direction:column;
align-items:stretch;
}
.stat{ min-width:auto; }
}

/* ===== Trust bar ===== */
.trust-bar{
padding:3rem 0;
background:var(--color-surface);
border-top:1px solid var(--color-border);
border-bottom:1px solid var(--color-border);
}
.trust-bar__grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
gap:2rem;
align-items:center;
justify-items:center;
text-align:center;
}
.trust-bar__item{
display:flex;
flex-direction:column;
align-items:center;
gap:.6rem;
color:var(--color-text-muted);
font-size:.95rem;
}
.trust-bar__item i{
font-size:1.8rem;
color:var(--color-accent);
}

/* ===== Container ===== */

.container{

max-width:1200px;

margin:auto;

padding:0 1.5rem;

}

/* ===== Servicios ===== */

.servicios{

position:relative;

padding:7rem 0;

}

/* placa industrial para el titulo */

.section-title{

font-family:var(--font-heading);

font-size:clamp(1.8rem,4vw,2.3rem);

text-align:center;

margin-bottom:4rem;

display:inline-block;

padding:14px 40px;

background:var(--glass);

border-radius:10px;

backdrop-filter:blur(4px);

position:relative;

left:50%;

transform:translateX(-50%);

}

/* decoracion industrial */

.servicios::before{

content:"";

position:absolute;

top:60px;
left:8%;

width:90px;
height:90px;

border:2px solid rgba(245,158,11,.15);

transform:rotate(20deg);

}

.servicios::after{

content:"";

position:absolute;

bottom:80px;
right:10%;

width:70px;
height:70px;

border:2px solid rgba(245,158,11,.12);

transform:rotate(-25deg);

}

/* ===== Grid ===== */

.servicios__grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

gap:1.6rem;

}

/* ===== Cards ===== */

.card{

background:var(--glass);

border-radius:var(--radius-lg);

padding:2rem;

border:1px solid var(--color-border);

transition:var(--transition);

box-shadow:0 6px 24px rgba(0,0,0,.25);

}

.card:hover{

transform:translateY(-8px);

box-shadow:var(--shadow);

border-color:rgba(245,158,11,.35);

}

.card__icon{

font-size:2rem;

margin-bottom:1rem;

color:var(--color-accent);

}

.card h3{

margin:.5rem 0;

font-family:var(--font-heading);

}

.card p{

color:var(--color-text-muted);

font-size:.95rem;

}

.card:focus-within,
.card:focus-visible{
outline:2px solid rgba(245,158,11,.5);
outline-offset:2px;
}

.contacto__info a:focus-visible,
.footer-links a:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:2px;
}

/* ===== Scroll Animation ===== */

[data-aos]{

opacity:0;

transform:translateY(40px);

transition:opacity .6s ease, transform .6s ease;

}

[data-aos].visible{

opacity:1;

transform:translateY(0);

}

/* Retraso escalonado en tarjetas */
.servicios__grid .card:nth-child(1){ transition-delay:0.05s; }
.servicios__grid .card:nth-child(2){ transition-delay:0.1s; }
.servicios__grid .card:nth-child(3){ transition-delay:0.15s; }
.servicios__grid .card:nth-child(4){ transition-delay:0.2s; }
.servicios__grid .card:nth-child(5){ transition-delay:0.25s; }
.servicios__grid .card:nth-child(6){ transition-delay:0.3s; }

/* ===== Proceso de trabajo ===== */

.proceso{
padding:5rem 0;
background:var(--color-bg);
}

.proceso__intro{
max-width:600px;
margin:0 auto 3rem;
text-align:center;
color:var(--color-text-muted);
font-size:1.05rem;
line-height:1.6;
}

.proceso__list{
list-style:none;
margin:0;
padding:0;
display:grid;
grid-template-columns:repeat(4,1fr);
gap:1.5rem;
counter-reset:proceso;
}

.proceso__item{
background:var(--color-surface);
border:1px solid var(--color-border);
border-radius:var(--radius-lg);
padding:1.75rem;
position:relative;
transition:var(--transition);
counter-increment:proceso;
}

.proceso__item:hover{
border-color:rgba(245,158,11,.25);
box-shadow:0 8px 24px rgba(0,0,0,.2);
}

.proceso__num{
display:flex;
align-items:center;
justify-content:center;
width:44px;
height:44px;
background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));
color:#000;
font-family:var(--font-heading);
font-weight:700;
font-size:1.25rem;
border-radius:50%;
margin-bottom:1rem;
}

.proceso__item h3{
margin:0 0 .5rem;
font-family:var(--font-heading);
font-size:1.15rem;
color:var(--color-text);
}

.proceso__item p{
margin:0;
font-size:.95rem;
color:var(--color-text-muted);
line-height:1.55;
}

@media (max-width:900px){
.proceso__list{
grid-template-columns:repeat(2,1fr);
}
}

@media (max-width:600px){
.proceso__list{
grid-template-columns:1fr;
}
}

.casos{
padding:6.5rem 0;
background:linear-gradient(180deg,var(--color-bg) 0%,rgba(20,28,38,.85) 55%,var(--color-bg) 100%);
}

.casos__intro{
max-width:700px;
margin:-2rem auto 3rem;
text-align:center;
color:var(--color-text-muted);
line-height:1.7;
}

.casos__grid{
display:grid;
grid-template-columns:1.7fr .3fr;
gap:2rem;
align-items:stretch;
}

.casos__grid--text-only {
grid-template-columns: 1fr;
max-width: 900px;
margin: 0 auto;
}

.caso-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2rem;
margin-bottom: 4rem;
align-items: stretch;
}

.caso-row .casos__media {
min-height: auto;
height: 100%;
}

.casos__list{
display:flex;
flex-direction:column;
gap:1.6rem;
}

.casos__media{
border-radius:var(--radius-lg);
border:1px solid var(--color-border);
background:var(--color-surface);
overflow:hidden;
box-shadow:0 10px 30px rgba(0,0,0,.25);
min-height:clamp(560px, 68vh, 820px);
}

.carousel{
position:relative;
height:100%;
min-height:inherit;
}

.carousel__layer{
position:absolute;
inset:0;
background-size:cover;
background-position:center;
background-repeat:no-repeat;
opacity:0;
transform:translate3d(0,0,0);
transition:opacity .45s ease, transform .45s ease;
will-change:opacity, transform;
}

.carousel__layer--current{
opacity:1;
}

.carousel::after{
content:"";
position:absolute;
inset:0;
background:
linear-gradient(180deg,rgba(11,17,23,.05) 0%,rgba(11,17,23,.55) 80%,rgba(11,17,23,.75) 100%),
radial-gradient(ellipse 80% 60% at 50% 15%,rgba(245,158,11,.12),transparent 60%);
pointer-events:none;
}

.carousel__controls{
position:absolute;
inset:0;
display:flex;
align-items:center;
justify-content:space-between;
padding:0.75rem;
z-index:2;
pointer-events:none;
}

.carousel__btn{
pointer-events:auto;
width:44px;
height:44px;
display:inline-flex;
align-items:center;
justify-content:center;
border-radius:999px;
border:1px solid rgba(255,255,255,.12);
background:rgba(10,15,20,.55);
color:var(--color-text);
cursor:pointer;
transition:var(--transition);
backdrop-filter:blur(6px);
}

.carousel__btn:hover{
transform:translateY(-2px);
border-color:rgba(245,158,11,.35);
color:var(--color-accent-hover);
background:rgba(10,15,20,.7);
}

.carousel__btn:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:3px;
}

.carousel.is-sliding .carousel__layer{
transition:transform .5s cubic-bezier(.22,.61,.36,1), opacity .25s ease;
}

.carousel.is-sliding[data-dir="1"] .carousel__layer--current{
transform:translate3d(-14%,0,0);
opacity:.55;
}
.carousel.is-sliding[data-dir="1"] .carousel__layer--next{
transform:translate3d(0,0,0);
opacity:1;
}

.carousel.is-sliding[data-dir="-1"] .carousel__layer--current{
transform:translate3d(14%,0,0);
opacity:.55;
}
.carousel.is-sliding[data-dir="-1"] .carousel__layer--next{
transform:translate3d(0,0,0);
opacity:1;
}

@media (prefers-reduced-motion: reduce){
.carousel__layer,
.carousel.is-sliding .carousel__layer{
transition:none !important;
}
}

.caso.card{
padding:2.2rem;
display:flex;
flex-direction:column;
}

.caso__meta{
display:flex;
align-items:center;
justify-content:space-between;
gap:1rem;
margin-bottom:1rem;
color:var(--color-text-muted);
font-size:.95rem;
}

.caso__tag{
display:inline-flex;
align-items:center;
padding:.35rem .7rem;
border-radius:999px;
border:1px solid rgba(245,158,11,.28);
background:rgba(245,158,11,.12);
color:var(--color-accent-hover);
font-weight:600;
letter-spacing:.02em;
}

.caso__title{
margin:.2rem 0 .6rem;
font-family:var(--font-heading);
}

.caso__desc{
margin:0 0 1.25rem;
color:var(--color-text-muted);
line-height:1.65;
}

.caso__kpis{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:1rem;
margin:0 0 1.4rem;
padding:0;
}

.caso__kpi{
background:rgba(255,255,255,.03);
border:1px solid var(--color-border);
border-radius:14px;
padding:1rem;
}

.caso__kpi dt{
color:var(--color-text-muted);
font-size:.85rem;
margin-bottom:.2rem;
}

.caso__kpi dd{
margin:0;
font-family:var(--font-heading);
font-weight:700;
color:var(--color-text);
}

.caso__quote{
margin:0;
padding:1.1rem 1.2rem;
border-left:3px solid rgba(245,158,11,.6);
background:rgba(0,0,0,.12);
border-radius:14px;
color:#d6dee6;
line-height:1.65;
}

.testimonials{
display:flex;
flex-direction:column;
gap:.9rem;
}

.testimonials__viewport{
position:relative;
min-height:130px;
}

.testimonial{
position:absolute;
inset:0;
opacity:0;
transform:translate3d(10px,0,0);
transition:opacity .35s ease, transform .35s ease;
pointer-events:none;
}

.testimonial.is-active{
opacity:1;
transform:translate3d(0,0,0);
pointer-events:auto;
}

.testimonials__controls{
display:flex;
align-items:center;
justify-content:space-between;
gap:.75rem;
}

.testimonials__btn{
width:40px;
height:40px;
display:inline-flex;
align-items:center;
justify-content:center;
border-radius:999px;
border:1px solid rgba(255,255,255,.12);
background:rgba(10,15,20,.35);
color:var(--color-text);
cursor:pointer;
transition:var(--transition);
}

.testimonials__btn:hover{
transform:translateY(-1px);
border-color:rgba(245,158,11,.35);
color:var(--color-accent-hover);
background:rgba(10,15,20,.5);
}

.testimonials__btn:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:3px;
}

.testimonials__dots{
flex:1;
display:flex;
align-items:center;
justify-content:center;
gap:.45rem;
}

.testimonials__dot{
width:8px;
height:8px;
border-radius:999px;
border:1px solid rgba(255,255,255,.16);
background:rgba(255,255,255,.12);
cursor:pointer;
transition:var(--transition);
}

.testimonials__dot[aria-selected="true"]{
width:20px;
background:rgba(245,158,11,.5);
border-color:rgba(245,158,11,.6);
}

.testimonials__dot:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:3px;
}

.caso__quoteFooter{
margin-top:.6rem;
color:var(--color-text-muted);
font-size:.9rem;
}

.caso__cta{
margin-top:auto;
padding-top:1.2rem;
}

@media (max-width:900px){
.casos__grid{
grid-template-columns:1fr;
}
.caso-row {
grid-template-columns: 1fr;
}
.caso-row .casos__media {
min-height: 400px;
}
.casos__media, .carousel{
min-height:clamp(420px, 52vh, 640px);
}
.caso__kpis{
grid-template-columns:1fr;
}
.casos__list{
gap:1.25rem;
}
}

/* ===== Contacto ===== */

.contacto{

padding:7rem 0;

background:rgba(11,17,23,.95);

}

.contacto__grid{
display:grid;
grid-template-columns:1fr;
gap:1.5rem;
align-items:start;
}

.contacto__card,
.contacto__mapCard{

background:var(--glass);

padding:2.25rem;

border-radius:var(--radius-lg);

border:1px solid var(--color-border);

box-shadow:0 20px 50px rgba(0,0,0,.35), 0 0 0 1px rgba(245,158,11,0.06);

text-align:left;

}

@media (min-width:768px){
.contacto__grid{
grid-template-columns:1fr 1.2fr;
gap:2rem;
}
.contacto__info{
align-items:flex-start;
}

.contacto__mapCard{
padding:1.5rem;
}
.contacto__info span{
justify-content:flex-start;
}
}

.contacto__card h2{

font-family:var(--font-heading);

margin:0 0 .5rem;

color:var(--color-text);

}

.contacto__card > p{

color:var(--color-text-muted);

margin:0 0 1.5rem;

line-height:1.5;

}

.contacto__info{

display:flex;

flex-direction:column;

gap:1rem;

margin:0 0 1.5rem;

align-items:center;

}

.contacto__info span{
display:flex;
align-items:center;
justify-content:center;
gap:.6rem;
color:var(--color-text-muted);
text-align:left;
}
.contacto__info i{
flex-shrink:0;
color:var(--color-accent);
width:1.2em;
text-align:center;
}
.contacto__info a{
color:var(--color-text);
text-decoration:none;
transition:color .2s ease;
white-space:normal;
word-break:break-word;
}
.contacto__info a:hover{
color:var(--color-accent);
}
.contacto__info a:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:2px;
border-radius:4px;
}

.contacto__card .btn--whatsapp{
display:flex;
width:100%;
max-width:360px;
margin:0 auto;
justify-content:center;
}

.map-embed{
position:relative;
width:100%;
aspect-ratio:16/12;
border-radius:16px;
overflow:hidden;
border:1px solid var(--color-border);
box-shadow:0 10px 26px rgba(0,0,0,.22);
background:rgba(0,0,0,.12);
}

.map-embed iframe{
position:absolute;
inset:0;
width:100%;
height:100%;
border:0;
filter:grayscale(10%) contrast(1.05) saturate(1.05);
}

.contacto__mapLink{
display:inline-flex;
margin-top:.75rem;
color:var(--color-text-muted);
text-decoration:none;
font-size:.95rem;
transition:var(--transition);
}
.contacto__mapLink:hover{
color:var(--color-accent-hover);
}
.contacto__mapLink:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:2px;
border-radius:6px;
}

/* ===== Footer ===== */

.footer{

padding:2rem 1.5rem;

text-align:center;

border-top:1px solid var(--color-border);

background:var(--color-bg);

font-size:.85rem;

color:var(--color-text-muted);

}

.footer .container{

display:flex;

flex-direction:column;

gap:1rem;

align-items:center;

}

.footer p{

margin:0;

}

.footer-social{
display:flex;
gap:.75rem;
align-items:center;
justify-content:center;
}

.footer-social__link{
width:42px;
height:42px;
display:inline-flex;
align-items:center;
justify-content:center;
border-radius:999px;
border:1px solid var(--color-border);
background:rgba(255,255,255,.03);
color:var(--color-text);
text-decoration:none;
transition:var(--transition);
}

.footer-social__link:hover{
transform:translateY(-2px);
border-color:rgba(245,158,11,.35);
color:var(--color-accent-hover);
background:rgba(255,255,255,.05);
}

.footer-social__link:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:3px;
}

/* ===== WhatsApp Floating Button ===== */

.whatsapp-float{

position:fixed;

bottom:25px;
right:16px;

width:60px;
height:60px;

display:flex;
align-items:center;
justify-content:center;

background:#25D366;

color:white;

font-size:28px;

border-radius:50%;

box-shadow:0 6px 25px rgba(37,211,102,.45);

text-decoration:none;

z-index:100;

transition:var(--transition);

}

.whatsapp-float:hover{

transform:scale(1.1);

box-shadow:0 10px 35px rgba(37,211,102,.55);

}

.whatsapp-float:focus-visible{
outline:2px solid #fff;
outline-offset:3px;
}

/* ===== Botón volver arriba ===== */

.back-to-top{
position:fixed;
bottom:100px;
right:25px;
width:48px;
height:48px;
display:flex;
align-items:center;
justify-content:center;
background:var(--color-surface);
color:var(--color-text);
border:1px solid var(--color-border);
border-radius:50%;
text-decoration:none;
z-index:99;
opacity:0;
visibility:hidden;
transition:var(--transition);
box-shadow:0 4px 20px rgba(0,0,0,.3);
}

.back-to-top.is-visible{
opacity:1;
visibility:visible;
}

.back-to-top:hover{
background:var(--color-surface-alt);
color:var(--color-accent);
border-color:rgba(245,158,11,.3);
}

.back-to-top:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:2px;
}

/* ===== Responsive ===== */

@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
[data-aos], .card { transition-duration: 0.01ms !important; }
.hero__eyebrow, .hero__title, .hero__desc, .hero .btn { animation: none !important; }
}

@media(max-width:768px){

.nav-toggle{
display:flex;
}

.nav{
display:flex;
position:fixed;
top:0;
right:0;
bottom:0;
width:min(300px,85vw);
flex-direction:column;
align-items:stretch;
padding:5rem 1.5rem 2rem;
background:var(--color-surface);
border-left:1px solid var(--color-border);
box-shadow:-10px 0 40px rgba(0,0,0,.4);
transform:translateX(100%);
transition:transform .3s ease;
z-index:40;
}

.nav.is-open{
transform:translateX(0);
}

.nav a{
padding:1rem 1.2rem;
font-size:1.05rem;
border-radius:var(--radius);
}

.nav-toggle{
position:relative;
z-index:51;
}

.trust-bar__grid{
grid-template-columns:1fr;
gap:1.5rem;
}
.hero{
min-height:75vh;
}

.servicios__grid{
grid-template-columns:1fr;
}

.section-title{
font-size:1.6rem;
}

}

/* Overlay cuando menú abierto */
.nav-overlay{
display:none;
position:fixed;
inset:0;
background:rgba(0,0,0,.5);
backdrop-filter:blur(2px);
z-index:39;
opacity:0;
transition:opacity .3s ease;
}

.nav-overlay.is-visible{
display:block;
opacity:1;
}

@media(min-width:769px){
.nav-overlay{ display:none !important; }
}
/* ===== PAGINAS LEGALES ===== */

.legal{
padding:80px 0;
background:#0b1117;
}

.legal h1{
margin-bottom:20px;
}

.legal h2{
margin-top:30px;
}

.legal p{
color:var(--color-text-muted);
line-height:1.7;
}

.footer-links{
margin-top:10px;
display:flex;
justify-content:center;
gap:20px;
}

.footer-links a{
color:var(--color-text-muted);
text-decoration:none;
font-size:0.85rem;
}

.footer-links a:hover{
color:white;
}