/* WP FIXES */
body.admin-bar nav#navbar { top: 32px; }
@media screen and (max-width:782px){ body.admin-bar nav#navbar { top:46px; } }
img { max-width:100%; }


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

:root {
  --gold:#C9A84C; --gold-light:#E8C96A; --gold-dark:#9A7230;
  --black:#0A0A0A; --dark:#111111; --dark2:#181818; --dark3:#222222;
  --gray:#888888; --gray-light:#BBBBBB; --white:#FFFFFF;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Barlow',sans-serif;
  --condensed:'Barlow Condensed',sans-serif;
}

html { scroll-behavior:smooth; }

body { font-family:var(--sans); background:var(--black); color:var(--white); overflow-x:hidden; }

/* CURSOR */
@media (pointer:fine) { body { cursor:none; } a,button,.service-card,.project-card,.feature-item,.process-step { cursor:none; } }
@media (pointer:coarse) { #cursor,#cursor-ring { display:none !important; } }

#cursor {
  position:fixed; width:10px; height:10px; background:var(--gold);
  border-radius:50%; pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%); transition:width .2s,height .2s,background .2s;
}
#cursor-ring {
  position:fixed; width:36px; height:36px;
  border:1px solid rgba(201,168,76,.6); border-radius:50%;
  pointer-events:none; z-index:9998; transform:translate(-50%,-50%);
  transition:transform .12s ease,width .3s,height .3s,border-color .3s;
}
body.cursor-hover #cursor { width:6px; height:6px; background:var(--gold-light); }
body.cursor-hover #cursor-ring { width:56px; height:56px; border-color:var(--gold); }
body.cursor-card  #cursor { width:4px; height:4px; }
body.cursor-card  #cursor-ring { width:70px; height:70px; border-color:rgba(201,168,76,.9); }

/* INTRO */
#intro-overlay {
  position:fixed; inset:0; z-index:9999; background:#000;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  transition:opacity 1.2s ease,visibility 1.2s ease;
}
#intro-overlay.fade-out { opacity:0; visibility:hidden; pointer-events:none; }
#intro-video { position:absolute; inset:-10%; width:120%; height:120%; object-fit:cover; opacity:0; transition:opacity .8s ease; }
#intro-video.visible { opacity:1; }
.intro-vignette { position:absolute; inset:0; background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.65) 100%); pointer-events:none; z-index:1; }
.intro-logo-wrap { position:absolute; z-index:2; display:flex; flex-direction:column; align-items:center; gap:20px; opacity:0; transform:translateY(16px); transition:opacity 1s ease .5s,transform 1s ease .5s; }
.intro-logo-wrap.show { opacity:1; transform:translateY(0); }
.intro-tagline { font-family:var(--condensed); font-size:12px; letter-spacing:.35em; color:rgba(255,255,255,.7); text-transform:uppercase; text-align:center; }
.intro-bar-wrap { position:absolute; bottom:48px; left:50%; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:10px; opacity:0; transition:opacity .6s ease 1s; }
.intro-bar-wrap.show { opacity:1; }
.intro-bar { width:200px; height:1px; background:rgba(255,255,255,.15); position:relative; overflow:hidden; }
.intro-bar-fill { position:absolute; left:0; top:0; bottom:0; width:0%; background:var(--gold); }
.intro-skip { font-family:var(--condensed); font-size:10px; letter-spacing:.2em; color:rgba(255,255,255,.4); text-transform:uppercase; background:none; border:none; cursor:none; transition:color .2s; padding:4px 0; }
.intro-skip:hover { color:var(--gold); }
body.intro-active { overflow:hidden; }

/* NAVBAR */
nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 3rem; height:72px;
  background:rgba(10,10,10,0); backdrop-filter:blur(0px);
  border-bottom:1px solid rgba(201,168,76,0);
  transition:background .5s,backdrop-filter .5s,border-color .5s;
}
nav.scrolled { background:rgba(10,10,10,.92); backdrop-filter:blur(12px); border-bottom-color:rgba(201,168,76,.15); }
.logo { display:flex; align-items:center; gap:12px; text-decoration:none; }
.nav-links { display:flex; align-items:center; gap:2.5rem; list-style:none; }
.nav-links a { text-decoration:none; font-size:11px; letter-spacing:.18em; color:var(--gray-light); font-family:var(--condensed); font-weight:500; text-transform:uppercase; transition:color .2s; position:relative; }
.nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; right:0; height:1px; background:var(--gold); transform:scaleX(0); transition:transform .3s; }
.nav-links a:hover { color:var(--gold); }
.nav-links a:hover::after { transform:scaleX(1); }
.nav-cta { padding:10px 22px; border:1px solid var(--gold); background:transparent; color:var(--gold); font-family:var(--condensed); font-size:11px; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; font-weight:600; transition:all .25s; display:flex; align-items:center; gap:8px; }
.nav-cta:hover { background:var(--gold); color:var(--black); }
.nav-hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; padding:4px; }
.nav-hamburger span { display:block; width:22px; height:1.5px; background:var(--white); transition:all .3s; }
.nav-mobile { display:none; position:fixed; inset:60px 0 0 0; background:rgba(10,10,10,.98); backdrop-filter:blur(16px); z-index:99; flex-direction:column; align-items:center; justify-content:center; gap:2rem; }
.nav-mobile.open { display:flex; }
.nav-mobile a { font-family:var(--condensed); font-size:22px; letter-spacing:.15em; color:var(--white); text-decoration:none; text-transform:uppercase; transition:color .2s; }
.nav-mobile a:hover { color:var(--gold); }

/* HERO */
#inicio {
  position:relative; height:100vh; height:100svh; min-height:700px;
  display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0; background-size:cover; background-position:center;
  will-change:transform; animation:heroZoom 14s ease-out forwards;
}
@keyframes heroZoom { from{transform:scale(1.08)} to{transform:scale(1.0)} }
.hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to right,rgba(5,5,5,.93) 40%,rgba(5,5,5,.35) 100%),
             linear-gradient(to top,rgba(5,5,5,.75) 0%,transparent 55%);
}
#hero-particles { position:absolute; inset:0; pointer-events:none; z-index:1; }

.hero-content { position:relative; z-index:2; padding:180px 6rem 7rem; max-width:700px; margin-top:auto; }

.hero-h1 { font-family:var(--serif); font-size:clamp(56px,7vw,88px); font-weight:300; line-height:1.0; margin-bottom:2rem; letter-spacing:-.01em; opacity:0; animation:fadeUp .9s ease .7s forwards; }
.hero-h1 em { font-style:italic; color:var(--gray-light); display:block; }
.hero-h1 .gold { color:var(--gold); font-weight:400; }
.hero-desc { font-size:15px; font-weight:300; color:rgba(255,255,255,.7); line-height:1.7; max-width:480px; margin-bottom:3rem; opacity:0; animation:fadeUp .9s ease .9s forwards; }
.hero-actions { display:flex; gap:16px; align-items:center; opacity:0; animation:fadeUp .9s ease 1.1s forwards; }

@keyframes fadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }

.btn-primary { padding:14px 32px; background:var(--gold); color:var(--black); font-family:var(--condensed); font-size:11px; letter-spacing:.2em; text-transform:uppercase; font-weight:700; text-decoration:none; display:flex; align-items:center; gap:10px; transition:all .25s; }
.btn-primary:hover { background:var(--gold-light); transform:translateX(4px); }
.btn-secondary { padding:14px 32px; border:1px solid rgba(255,255,255,.25); color:var(--white); font-family:var(--condensed); font-size:11px; letter-spacing:.2em; text-transform:uppercase; font-weight:500; text-decoration:none; transition:all .25s; }
.btn-secondary:hover { border-color:var(--gold); color:var(--gold); }

.hero-stats { position:absolute; bottom:0; left:0; right:0; z-index:2; display:flex; align-items:stretch; border-top:1px solid rgba(201,168,76,.15); opacity:0; animation:fadeUp .9s ease 1.3s forwards; }
.stat-item { flex:1; padding:28px 40px; border-right:1px solid rgba(201,168,76,.15); transition:background .3s; }
.stat-item:last-child { border-right:none; }
.stat-item:hover { background:rgba(201,168,76,.05); }
.stat-num { font-family:var(--condensed); font-size:36px; font-weight:700; color:var(--white); letter-spacing:-.02em; line-height:1; margin-bottom:4px; }
.stat-num sup { font-size:18px; color:var(--gold); }
.stat-label { font-family:var(--condensed); font-size:10px; letter-spacing:.2em; color:var(--gray); text-transform:uppercase; }

.hero-scroll { position:absolute; right:3rem; bottom:80px; z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px; font-family:var(--condensed); font-size:9px; letter-spacing:.2em; color:var(--gray); text-transform:uppercase; opacity:0; animation:fadeUp .9s ease 1.5s forwards; }
.scroll-line { width:1px; height:50px; background:linear-gradient(to bottom,var(--gold),transparent); animation:scrollLine 2s ease-in-out infinite; }
@keyframes scrollLine { 0%,100%{opacity:.3;transform:scaleY(1) translateY(0)} 50%{opacity:1;transform:scaleY(1.1) translateY(4px)} }

/* CFIA BADGE */
.cfia-badge { position:absolute; bottom:110px; right:3rem; z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; opacity:0; animation:fadeUp .9s ease 1.4s forwards; }
.cfia-badge-label { font-family:var(--condensed); font-size:9px; letter-spacing:.22em; color:rgba(255,255,255,.9); text-transform:uppercase; text-align:center; }
.cfia-badge img { width:130px; filter:drop-shadow(0 2px 8px rgba(0,0,0,.5)); transition:transform .3s,filter .3s; }
.cfia-badge:hover img { transform:scale(1.05); filter:drop-shadow(0 4px 14px rgba(201,168,76,.3)); }
.cfia-divider { width:1px; height:20px; background:rgba(255,255,255,.25); }

/* SECTIONS */
section { padding:120px 6rem; }
.section-label { display:flex; align-items:center; gap:16px; margin-bottom:1.5rem; }
.section-label::before { content:''; width:30px; height:1px; background:var(--gold); }
.section-label span { font-family:var(--condensed); font-size:11px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; }
.section-title { font-family:var(--serif); font-size:clamp(36px,5vw,58px); font-weight:300; line-height:1.1; margin-bottom:1.5rem; }
.section-desc { font-size:15px; color:rgba(255,255,255,.55); line-height:1.8; max-width:560px; font-weight:300; }

/* NOSOTROS */
#nosotros { background:var(--dark); }
.why-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; margin-top:80px; align-items:start; }
.stats-big { display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.stat-big { padding:32px 28px; background:var(--dark2); transition:background .3s,transform .3s; }
.stat-big:hover { background:var(--dark3); transform:translateY(-2px); }
.stat-big-num { font-family:var(--condensed); font-size:52px; font-weight:700; color:var(--gold); line-height:1; letter-spacing:-.02em; margin-bottom:6px; }
.stat-big-num sup { font-size:24px; }
.stat-big-label { font-family:var(--condensed); font-size:11px; letter-spacing:.18em; color:var(--gray); text-transform:uppercase; }
.features-list { display:flex; flex-direction:column; gap:2px; }
.feature-item { display:flex; gap:24px; padding:28px 32px; background:var(--dark2); transition:all .3s; border-left:2px solid transparent; }
.feature-item:hover { background:var(--dark3); border-left-color:var(--gold); padding-left:30px; }
.feature-icon { width:44px; height:44px; border:1px solid rgba(201,168,76,.3); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:border-color .3s; }
.feature-item:hover .feature-icon { border-color:var(--gold); }
.feature-icon svg { width:20px; height:20px; stroke:var(--gold); fill:none; stroke-width:1.5; }
.feature-body h4 { font-family:var(--condensed); font-size:13px; letter-spacing:.15em; font-weight:600; text-transform:uppercase; margin-bottom:4px; }
.feature-body p { font-size:13px; color:rgba(255,255,255,.5); line-height:1.6; font-weight:300; }

/* SERVICIOS */
#servicios { background:var(--black); }
.services-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:60px; }
.services-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; }
.service-card { position:relative; overflow:hidden; transform-style:preserve-3d; will-change:transform; }
.service-card img { width:100%; height:340px; object-fit:cover; display:block; transition:transform .6s ease,filter .4s ease; filter:brightness(.6) saturate(.8); }
.service-card:hover img { filter:brightness(.45) saturate(.7); }
.service-spotlight { position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle 120px at 50% 50%,rgba(201,168,76,.12),transparent 70%); opacity:0; transition:opacity .3s; }
.service-card:hover .service-spotlight { opacity:1; }
.service-card-body { position:absolute; bottom:0; left:0; right:0; padding:28px; background:linear-gradient(to top,rgba(5,5,5,.97) 0%,transparent 100%); }
.service-icon { width:42px; height:42px; background:var(--gold); display:flex; align-items:center; justify-content:center; margin-bottom:16px; transition:transform .3s; }
.service-card:hover .service-icon { transform:scale(1.1) rotate(-3deg); }
.service-icon svg { width:20px; height:20px; fill:none; stroke:var(--black); stroke-width:2; }
.service-card h3 { font-family:var(--condensed); font-size:18px; font-weight:600; letter-spacing:.05em; margin-bottom:8px; }
.service-card p { font-size:13px; color:rgba(255,255,255,.6); line-height:1.6; font-weight:300; opacity:0; transform:translateY(10px); transition:all .4s ease .05s; }
.service-card:hover p { opacity:1; transform:translateY(0); }

/* PORTFOLIO */
#proyectos { background:var(--dark); }
.projects-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:50px; }
.portfolio-filters { display:flex; gap:2px; margin-bottom:40px; flex-wrap:wrap; }
.pf-btn { padding:10px 24px; background:var(--dark2); border:1px solid transparent; color:var(--gray); font-family:var(--condensed); font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:500; transition:all .25s; }
.pf-btn:hover { color:var(--white); background:var(--dark3); }
.pf-btn.active { background:transparent; border-color:var(--gold); color:var(--gold); }

.cs-wrap { position:relative; width:100%; overflow:hidden; }
.cs-track-wrap { overflow:hidden; }
.cs-track { display:flex; transition:transform .7s cubic-bezier(.77,0,.18,1); will-change:transform; }
.cs-slide { flex:0 0 calc(50% - 2px); margin-right:4px; position:relative; overflow:hidden; }
.cs-slide-inner { position:relative; overflow:hidden; height:480px; }
.cs-slide img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.25,.46,.45,.94),filter .5s ease; filter:brightness(.7) saturate(.85); pointer-events:none; }
.cs-slide.active img { filter:brightness(.85) saturate(1); }
.cs-slide:hover img { transform:scale(1.04); }
.cs-slide-overlay { position:absolute; bottom:0; left:0; right:0; padding:28px; background:linear-gradient(to top,rgba(5,5,5,.92) 0%,transparent 100%); transform:translateY(8px); opacity:0; transition:opacity .4s,transform .4s; }
.cs-slide.active .cs-slide-overlay, .cs-slide:hover .cs-slide-overlay { opacity:1; transform:translateY(0); }
.cs-slide-tag { font-family:var(--condensed); font-size:10px; letter-spacing:.25em; color:var(--gold); text-transform:uppercase; margin-bottom:6px; }
.cs-slide-name { font-family:var(--condensed); font-size:20px; font-weight:600; letter-spacing:.05em; color:var(--white); }
.cs-slide.active::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--gold); z-index:2; animation:slideIn .4s ease; }
@keyframes slideIn { from{transform:scaleY(0)} to{transform:scaleY(1)} }
.cs-arrow { position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; background:rgba(10,10,10,.7); border:1px solid rgba(201,168,76,.35); color:var(--white); display:flex; align-items:center; justify-content:center; z-index:10; transition:all .25s; backdrop-filter:blur(6px); }
.cs-arrow:hover { background:var(--gold); border-color:var(--gold); color:var(--black); }
.cs-arrow svg { width:20px; height:20px; }
.cs-prev { left:20px; }
.cs-next { right:20px; }
.cs-dots { display:flex; justify-content:center; gap:8px; margin-top:28px; }
.cs-dot { width:24px; height:2px; background:rgba(255,255,255,.2); border:none; transition:all .3s; }
.cs-dot.active { background:var(--gold); width:40px; }
.cs-dot:hover { background:rgba(255,255,255,.4); }
.cs-counter { position:absolute; bottom:52px; right:28px; display:flex; align-items:center; gap:10px; font-family:var(--condensed); font-size:11px; letter-spacing:.1em; color:rgba(255,255,255,.5); }
.cs-counter-sep { width:20px; height:1px; background:rgba(255,255,255,.3); }
#csCurrentNum { color:var(--gold); font-size:14px; font-weight:600; }

/* PROCESO */
#proceso { background:var(--black); }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-top:70px; }
.process-step { padding:40px 32px; background:var(--dark2); position:relative; transition:background .3s,transform .3s; }
.process-step:hover { background:var(--dark3); transform:translateY(-4px); }
.process-step::after { content:''; position:absolute; top:50px; right:0; width:1px; height:40px; background:rgba(201,168,76,.2); }
.process-step:last-child::after { display:none; }
.step-num { font-family:var(--condensed); font-size:64px; font-weight:700; color:rgba(201,168,76,.1); line-height:1; margin-bottom:24px; letter-spacing:-.03em; transition:color .3s; }
.process-step:hover .step-num { color:rgba(201,168,76,.25); }
.step-icon { width:40px; height:40px; border:1px solid rgba(201,168,76,.3); display:flex; align-items:center; justify-content:center; margin-bottom:20px; transition:border-color .3s,transform .3s; }
.process-step:hover .step-icon { border-color:var(--gold); transform:rotate(5deg); }
.step-icon svg { width:18px; height:18px; stroke:var(--gold); fill:none; stroke-width:1.5; }
.process-step h4 { font-family:var(--condensed); font-size:14px; letter-spacing:.12em; font-weight:600; text-transform:uppercase; margin-bottom:10px; }
.process-step p { font-size:13px; color:rgba(255,255,255,.5); line-height:1.7; font-weight:300; }

/* CONTACTO */
#contacto { background:var(--dark); }
.contact-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:80px; margin-top:70px; align-items:start; }
.contact-left h2 { font-family:var(--serif); font-size:clamp(40px,5vw,62px); font-weight:300; line-height:1.1; margin-bottom:1.5rem; }
.contact-left p { font-size:14px; color:rgba(255,255,255,.55); line-height:1.8; font-weight:300; margin-bottom:3rem; }
.contact-methods { display:flex; flex-direction:column; gap:2px; }
.contact-method { display:flex; align-items:center; gap:18px; padding:20px 24px; background:var(--dark2); text-decoration:none; color:var(--white); transition:all .3s; border-left:2px solid transparent; }
.contact-method:hover { background:var(--dark3); border-left-color:var(--gold); padding-left:22px; }
.contact-method.whatsapp { background:rgba(37,211,102,.08); border-left-color:#25D366; }
.contact-method.whatsapp:hover { background:rgba(37,211,102,.14); }
.method-icon { width:38px; height:38px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.05); flex-shrink:0; }
.contact-method.whatsapp .method-icon { background:rgba(37,211,102,.15); }
.method-icon svg { width:18px; height:18px; stroke:var(--gold); fill:none; stroke-width:1.5; }
.contact-method.whatsapp .method-icon svg { stroke:#25D366; }
.method-text span { display:block; font-size:10px; letter-spacing:.15em; color:var(--gray); font-family:var(--condensed); text-transform:uppercase; margin-bottom:2px; }
.method-text strong { font-size:14px; font-weight:500; font-family:var(--condensed); letter-spacing:.05em; }
.contact-form { padding:48px; background:var(--dark2); border:1px solid rgba(201,168,76,.1); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-family:var(--condensed); font-size:10px; letter-spacing:.2em; color:var(--gray); text-transform:uppercase; margin-bottom:8px; }
.form-group input,.form-group select,.form-group textarea { width:100%; padding:12px 16px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); color:var(--white); font-family:var(--sans); font-size:14px; font-weight:300; outline:none; transition:border-color .25s; -webkit-appearance:none; border-radius:0; }
.form-group select option { background:var(--dark2); }
.form-group input::placeholder,.form-group textarea::placeholder { color:rgba(255,255,255,.2); }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color:var(--gold); }
.form-group textarea { resize:vertical; min-height:120px; }
.btn-submit { width:100%; padding:16px; background:var(--gold); color:var(--black); font-family:var(--condensed); font-size:12px; letter-spacing:.2em; text-transform:uppercase; font-weight:700; border:none; display:flex; align-items:center; justify-content:center; gap:10px; margin-top:24px; transition:all .25s; overflow:hidden; position:relative; }
.btn-submit:hover { background:var(--gold-light); }
.btn-submit svg { width:16px; height:16px; stroke:var(--black); fill:none; stroke-width:2; }

/* FOOTER */
footer { background:var(--black); border-top:1px solid rgba(201,168,76,.1); padding:48px 6rem; display:flex; align-items:center; justify-content:space-between; }
.footer-tagline { font-family:var(--serif); font-size:18px; font-weight:300; font-style:italic; color:rgba(255,255,255,.4); display:flex; align-items:center; gap:16px; }
.footer-tagline::before { content:''; width:24px; height:1px; background:var(--gold); }
.footer-copy { font-family:var(--condensed); font-size:10px; letter-spacing:.15em; color:rgba(255,255,255,.25); text-transform:uppercase; }

/* REVEAL ANIMATIONS */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .75s ease,transform .75s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }
.reveal-delay-4 { transition-delay:.4s; }

/* RESPONSIVE TABLET */
@media (max-width:1024px) {
  section { padding:80px 3rem; }
  nav { padding:0 2rem; }
  .nav-links { gap:1.5rem; }
  .hero-content { padding:100px 3rem 9rem; }
  .hero-scroll { display:none; }
  .cfia-badge { right:2rem; bottom:120px; }
  .cfia-badge img { width:100px; }
  .why-grid { grid-template-columns:1fr; gap:48px; }
  .stats-big { grid-template-columns:1fr 1fr; }
  .services-grid { grid-template-columns:repeat(2,1fr) !important; }
  .process-grid { grid-template-columns:repeat(2,1fr); }
  .process-step::after { display:none; }
  .contact-grid { grid-template-columns:1fr; gap:48px; }
  .contact-form { padding:32px; }
  footer { padding:36px 3rem; flex-direction:column; gap:12px; text-align:center; }
  .cs-slide { flex:0 0 calc(65% - 2px); }
  .cs-slide-inner { height:380px; }
}

/* RESPONSIVE MOBILE */
@media (max-width:768px) {
  section { padding:64px 1.5rem; }
  nav { padding:0 1.5rem; height:60px; }
  .nav-links { display:none; }
  .nav-cta { padding:8px 14px; font-size:10px; }
  .nav-hamburger { display:flex; }
  .hero-content { padding:100px 1.5rem 7rem; max-width:100%; }
  .hero-h1 { font-size:clamp(40px,11vw,60px); }
  .hero-desc { font-size:14px; }
  .hero-actions { flex-direction:column; align-items:flex-start; gap:12px; }
  .btn-primary,.btn-secondary { width:100%; justify-content:center; padding:14px 20px; }
  .hero-stats { flex-wrap:wrap; }
  .stat-item { flex:1 1 50%; padding:18px 20px; border-right:none; border-top:1px solid rgba(201,168,76,.15); }
  .stat-num { font-size:26px; }
  .cfia-badge { bottom:auto; top:70px; right:1rem; }
  .cfia-badge img { width:70px; }
  .cfia-badge-label { font-size:7px; }
  .stats-big { grid-template-columns:1fr 1fr; gap:2px; }
  .stat-big { padding:22px 18px; }
  .stat-big-num { font-size:36px; }
  .services-grid { grid-template-columns:1fr !important; }
  .services-header { flex-direction:column; gap:16px; align-items:flex-start; }
  .service-card p { opacity:1; transform:none; }
  .projects-header { flex-direction:column; gap:16px; align-items:flex-start; }
  .cs-slide { flex:0 0 calc(90% - 2px); }
  .cs-slide-inner { height:260px; }
  .cs-arrow { width:40px; height:40px; }
  .cs-prev { left:10px; }
  .cs-next { right:10px; }
  .cs-counter { display:none; }
  .cs-dot { width:16px; }
  .cs-dot.active { width:28px; }
  .process-grid { grid-template-columns:1fr 1fr; }
  .process-step { padding:28px 20px; }
  .step-num { font-size:44px; }
  .contact-form { padding:24px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  footer { padding:28px 1.5rem; flex-direction:column; gap:10px; text-align:center; }
  .footer-tagline { font-size:15px; justify-content:center; }
  .intro-logo-wrap img { width:160px !important; height:160px !important; }
}

/* RESPONSIVE SMALL MOBILE */
@media (max-width:480px) {
  .hero-h1 { font-size:clamp(32px,9vw,44px); }
  .section-title { font-size:clamp(28px,8vw,40px); }
  .process-grid { grid-template-columns:1fr; }
  .stats-big { grid-template-columns:1fr; }
  .stat-big-num { font-size:44px; }
  .cs-slide-inner { height:220px; }
  .btn-primary,.btn-secondary { font-size:10px; padding:12px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .hero-bg { animation: none !important; }
  .scroll-line { animation: none !important; }
  #intro-video { display: none; }
  #intro-overlay { display: none !important; }
}

a, button, .pf-btn, .cs-arrow, .cs-dot, .nav-cta, .btn-primary, .btn-secondary, .btn-submit {
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(201,168,76,0.15);
}

#inicio, #nosotros, #servicios, #proyectos, #proceso, #contacto {
  scroll-margin-top: 72px;
}
@media (max-width: 768px) {
  #inicio, #nosotros, #servicios, #proyectos, #proceso, #contacto {
    scroll-margin-top: 60px;
  }
}

:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
.form-group input:focus-visible,
.form-group select:focus-visible,
.form-group textarea:focus-visible {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.15);
}

@media (max-width: 1024px) {
  .service-card[style*="grid-column:span 4"],
  .service-card[style*="grid-column: span 4"] {
    grid-column: 1 / -1 !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .service-card[style*="grid-column:span 4"] img,
  .service-card[style*="grid-column: span 4"] img {
    height: 220px !important;
    width: 100% !important;
  }
}
@media (max-width: 768px) {
  .service-card[style*="grid-column:span 4"],
  .service-card[style*="grid-column: span 4"] {
    grid-column: 1 / -1 !important;
  }
  .service-card[style*="grid-column:span 4"] > div,
  .service-card[style*="grid-column: span 4"] > div {
    padding: 24px !important;
  }
}

@media (max-width: 768px) {

  /* Touch targets min 44px */
  .pf-btn { padding: 12px 20px; min-height: 44px; }
  .cs-arrow { width: 44px; height: 44px; }
  .cs-dot { height: 8px; min-width: 20px; }
  .cs-dot.active { min-width: 32px; }
  .nav-cta { min-height: 44px; padding: 10px 16px; }
  .btn-primary, .btn-secondary { min-height: 48px; }
  .btn-submit { min-height: 52px; font-size: 13px; letter-spacing: 0.15em; }

  /* CFIA badge mobile */
  .cfia-badge { top: 68px; right: 12px; gap: 4px; }
  .cfia-badge img { width: 60px; }
  .cfia-badge-label { font-size: 6.5px; letter-spacing: 0.08em; }
  .cfia-divider { height: 14px; }

  /* Services header stack */
  .services-header { flex-direction: column; gap: 12px; align-items: flex-start; margin-bottom: 32px; }
  .services-header > p { text-align: left !important; max-width: 100% !important; font-size: 13px; }

  /* Portfolio header stack */
  .projects-header { flex-direction: column; gap: 12px; align-items: flex-start; }
  .projects-header > p { text-align: left !important; max-width: 100% !important; }

  /* Carousel improvements */
  .cs-wrap { padding-bottom: 60px; }
  .cs-dots { position: absolute; bottom: 16px; left: 0; right: 0; margin-top: 0; }
  .portfolio-filters { gap: 4px; }
  .pf-btn { font-size: 10px; letter-spacing: 0.12em; }

  /* Footer */
  footer { flex-direction: column; gap: 14px; text-align: center; padding: 32px 1.5rem; }
  .footer-tagline { justify-content: center; font-size: 14px; }
  .footer-copy { font-size: 9px; }

  /* Contact form */
  .contact-left p { margin-bottom: 2rem; }
  .method-text strong { font-size: 13px; }

  /* Process grid */
  .process-grid { grid-template-columns: 1fr 1fr; gap: 2px; }
  .step-num { font-size: 40px; margin-bottom: 16px; }
  .process-step h4 { font-size: 12px; }
  .process-step p { font-size: 12px; }
}

@media (max-width: 480px) {
  section { padding: 56px 1.25rem; }

  /* Hero */
  .hero-actions { gap: 10px; }
  .btn-primary, .btn-secondary { font-size: 10px; padding: 13px 18px; letter-spacing: 0.15em; }

  /* Stats */
  .hero-stats { display: grid; grid-template-columns: 1fr 1fr; }
  .stat-item:last-child { grid-column: span 2; border-right: none; border-top: 1px solid rgba(201,168,76,.15); }
  .stat-num { font-size: 24px; }

  /* Nosotros */
  .stats-big { grid-template-columns: 1fr; }
  .stat-big-num { font-size: 40px; }

  /* Services */
  .services-grid { grid-template-columns: 1fr !important; }
  .service-card img { height: 220px; }

  /* Carousel */
  .cs-slide { flex: 0 0 calc(95% - 2px); }
  .cs-slide-inner { height: 200px; }

  /* Process */
  .process-grid { grid-template-columns: 1fr; }
  .process-step { padding: 24px 20px; }

  /* Form */
  .contact-form { padding: 20px; }
  .form-row { grid-template-columns: 1fr; }
}
