/*
Theme Name: Constructora J&F
Theme URI: https://jyfconstructora.com
Author: J&F Constructora
Author URI: https://jyfconstructora.com
Description: Tema a medida para Constructora J&F S.R.L. — sitio de una sola página (Inicio, Nosotros, Servicios, Proyectos, Proceso, Contacto) con calculadora de construcción integrada y catálogo de proyectos administrable desde WordPress.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: constructora-jf
*/

@font-face {
    font-family: 'AcuminPro';
    src: url('assets/fonts/site-font-01.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
  }
@font-face {
    font-family: 'GlossAndBloom';
    src: url('assets/fonts/site-font-01.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
  }

  

  

  *, *::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:'AcuminPro','DM Sans',sans-serif;
    --italic:'Cormorant Garamond',Georgia,serif;
    --sans:'AcuminPro','DM Sans',sans-serif;
    --condensed:'AcuminPro','DM Sans',sans-serif;
  }

  html { scroll-behavior:smooth; }

  body { font-family:'AcuminPro','DM Sans',sans-serif; background:var(--black); color:var(--white); overflow-x:hidden; }

  
  /* ── BOTONES ── */
  .btn-primary {
    position: relative;
    padding: 14px 32px;
    background: var(--gold);
    color: var(--black);
    font-family:var(--condensed);
    font-size: 11px;
    letter-spacing:.14em;
    text-transform: uppercase;
    font-weight: 700;
    text-decoration: none;
    border: none;
    cursor: pointer;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    overflow: hidden;
    transition: background .4s ease, transform .2s, box-shadow .3s;
  }
  .btn-primary::after {
    content: '';
    position: absolute;
    top: -50%; left: -75%;
    width: 50%; height: 200%;
    background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.35) 50%, rgba(255,255,255,0) 100%);
    transform: skewX(-20deg) translateX(0);
    opacity: 0;
    transition: none;
  }
  .btn-primary:hover::after {
    opacity: 1;
    transform: skewX(-20deg) translateX(400%);
    transition: transform .6s ease, opacity .1s;
  }
  .btn-primary:hover {
    background: var(--gold-light);
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(201,168,76,.25);
  }
  .btn-primary svg {
    width: 14px; height: 14px;
    stroke: var(--black); fill: none; stroke-width: 2.5;
    transition: transform .3s;
    position: relative; z-index: 1;
  }
  .btn-primary:hover svg { transform: translateX(5px); }
  .btn-primary span { position: relative; z-index: 1; }

  .btn-secondary {
    position: relative;
    padding: 13px 28px;
    background: transparent;
    color: rgba(255,255,255,.6);
    border: 1px solid rgba(201,168,76,.35);
    font-family:var(--condensed);
    font-size: 11px;
    letter-spacing:.14em;
    text-transform: uppercase;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    overflow: hidden;
    transition: color .3s, border-color .3s;
  }
  .btn-secondary::before {
    content: '';
    position: absolute; inset: 0;
    background: rgba(201,168,76,.06);
    transform: scaleX(0); transform-origin: left;
    transition: transform .35s cubic-bezier(.4,0,.2,1);
  }
  .btn-secondary:hover::before { transform: scaleX(1); }
  .btn-secondary:hover { color: var(--gold); border-color: var(--gold); }
  .btn-secondary svg {
    width: 13px; height: 13px;
    stroke: currentColor; fill: none; stroke-width: 2;
    transition: transform .3s;
    position: relative; z-index: 1;
  }
  .btn-secondary:hover svg { transform: translateX(4px); }
  .btn-secondary span { position: relative; z-index: 1; }

  
  
  
  
  

  /* CURSOR */
  
  

  #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); }

  /* 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
  .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:.1em; color: rgba(255,255,255,.85); 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:.1em; text-transform:uppercase; text-decoration:none; font-weight:600; transition:all .25s; display:flex; align-items:center; gap:8px; 
    border-radius: 12px;}
  .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; }

  /* HERO */
  #inicio {
    position:relative; height:100vh; height:100svh; min-height:700px;
    display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden;
  }

  #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: 0.95;
    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-family: 'GlossAndBloom', var(--serif) !important;
    font-style: normal;
    font-size: clamp(42px, 5vw, 64px);
    margin-top: -12px;
    display: block;
  }
  .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)} }

  
  
  
  

  .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:.12em; 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:.12em; 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:.14em; 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:.08em; 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); }
  
  
  
  
  
  
  
  
  
  
  
  /* SERVICIOS */
  #servicios { background:var(--black); }
  
  
  
  
  
  
  
  
  
  .service-card:hover 
  
  .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:.1em; 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:.08em; 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; }

  

  /* CONTACTO */
  #contacto { background:var(--dark); }
  
  .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-method.whatsapp:hover { background:rgba(37,211,102,.14); }
  
  .contact-method.whatsapp 
  
  .contact-method.whatsapp 
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  /* FOOTER */
  
  
  .footer-tagline::before { content:''; width:24px; height:1px; background:var(--gold); }


  /* SITE CREDIT */
  .site-credit {
    padding:24px 40px; display:flex; align-items:center; justify-content:center;
    gap:16px; flex-wrap:wrap; border-top:1px solid rgba(201,168,76,.15); background:var(--black);
  }
  .site-credit .f-copy { font-size:12px; color:var(--gray); letter-spacing:.02em; font-family:var(--sans); }
  .site-credit .f-sep { width:1px; height:14px; background:rgba(201,168,76,.35); flex-shrink:0; }
  .site-credit .f-badge {
    display:inline-flex; align-items:center; gap:9px;
    border:1px solid rgba(201,168,76,.4); border-radius:20px;
    padding:6px 16px 6px 6px; text-decoration:none;
    transition:border-color .2s,background .2s;
  }
  .site-credit .f-badge:hover { border-color:var(--gold); background:rgba(201,168,76,.08); }
  .site-credit .f-badge .dot { width:22px; height:22px; border-radius:50%; overflow:hidden; flex-shrink:0; display:block; }
  .site-credit .f-badge .dot img { width:100%; height:100%; object-fit:cover; display:block; }
  .site-credit .f-badge .txt { font-size:11px; letter-spacing:.04em; color:#DDD; text-transform:uppercase; font-family:var(--sans); }
  .site-credit .f-badge .txt b { color:var(--gold); }
  @media (max-width: 640px) {
    .site-credit { padding:24px 20px; }
    .site-credit .f-sep { display:none; }
  }

  /* 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 */
  

  /* RESPONSIVE MOBILE */
  

  /* RESPONSIVE SMALL MOBILE */
  

  

  a, button, .pf-btn, .cs-arrow, .cs-dot, .nav-cta, .btn-primary, .btn-secondary, 

  #inicio, #nosotros, #servicios, #proyectos, #proceso, #contacto {
    scroll-margin-top: 72px;
  }
  

  :focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 3px;
  }
  

  
  

  

  

  
  /* ── PROCESO ── */
  #proceso { padding:120px 6rem; background:var(--black); }
  #proceso .reveal { text-align:center; max-width:600px; margin:0 auto 70px; }

  .process-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:2px;
  }
  .process-step {
    position:relative;
    overflow:hidden;
    min-height:440px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
  }
  .process-step-bg {
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    filter:brightness(.55) saturate(.75);
    transition:filter .6s ease, transform .6s ease;
  }
  .process-step:hover .process-step-bg {
    filter:brightness(.7) saturate(.9);
    transform:scale(1.05);
  }
  /* Gold top line on hover */
  .process-step::before {
    content:'';
    position:absolute; top:0; left:0; right:0; height:2px;
    background:linear-gradient(to right,transparent,var(--gold),var(--gold2),var(--gold),transparent);
    transform:scaleX(0);
    transition:transform .45s cubic-bezier(.4,0,.2,1);
    z-index:3;
  }
  .process-step:hover::before { transform:scaleX(1); }

  /* Full overlay — dark top, clear middle, dark bottom for text */
  .process-step-overlay {
    position:absolute; inset:0;
    background:linear-gradient(
      to bottom,
      rgba(8,8,8,.3) 0%,
      rgba(8,8,8,.0) 35%,
      rgba(8,8,8,.0) 45%,
      rgba(8,8,8,.95) 100%
    );
    z-index:1;
  }

  /* Watermark number — subtle */
  .step-watermark {
    position:absolute;
    top:16px; right:20px;
    font-family:var(--serif);
    font-size:56px; font-weight:300; font-style:italic;
    color:rgba(255,255,255,.08);
    line-height:1; z-index:2;
    user-select:none;
    transition:color .4s;
    letter-spacing:-.02em;
  }
  .process-step:hover .step-watermark { color:rgba(201,168,76,.12); }

  /* Content box — with its own gradient behind text only */
  .process-step-content {
    position:relative; z-index:2;
    padding:0 28px 32px;
  }
  /* Gradient ONLY behind text area */
  .process-step-content::before {
    content:'';
    position:absolute;
    bottom:0; left:0; right:0;
    height:180px;
    background:linear-gradient(to top, rgba(8,8,8,1) 0%, rgba(8,8,8,.8) 60%, transparent 100%);
    z-index:-1;
    pointer-events:none;
  }

  
  .process-step-icon {
    width:38px; height:38px;
    border:1px solid rgba(201,168,76,.3);
    display:flex; align-items:center; justify-content:center;
    margin-bottom:14px;
    transition:border-color .3s, transform .3s;
    border-radius:8px;
  }
  .process-step:hover .process-step-icon { border-color:var(--gold); transform:rotate(5deg); }
  .process-step-icon svg { width:17px; height:17px; stroke:var(--gold); fill:none; stroke-width:1.5; }
  .process-step h4 {
    font-family:'AcuminPro','DM Sans',sans-serif;
    font-size:14px; font-weight:600;
    letter-spacing:.06em; text-transform:uppercase;
    margin-bottom:8px; color:#fff;
    transition:color .3s;
  }
  .process-step:hover h4 { color:var(--gold-light); }
  .process-step p {
    font-size:12px; color:rgba(255,255,255,.55);
    line-height:1.7; font-weight:300;
    transition:color .3s;
  }
  .process-step:hover p { color:rgba(255,255,255,.75); }

  
  
  
  

  


  /* ── Asegurar no-overflow global ── */
  html, body { overflow-x: hidden; max-width: 100vw; }
  * { box-sizing: border-box; }
  img, video, svg { max-width: 100%; height: auto; }

  /* ══ WHATSAPP FLOTANTE ══ */
  .float-btns {
    position: fixed;
    bottom: 32px;
    right: 28px;
    z-index: 9998;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
  }
  .float-wa {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #25D366;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 4px 20px rgba(37,211,102,.45);
    position: relative;
    transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
    cursor: pointer;
  }
  .float-wa:hover {
    transform: scale(1.12) translateY(-3px);
    box-shadow: 0 8px 30px rgba(37,211,102,.55);
  }
  .float-wa svg {
    width: 26px;
    height: 26px;
    stroke: #fff;
    fill: none;
    stroke-width: 1.8;
    position: relative;
    z-index: 1;
    flex-shrink: 0;
  }
  .float-wa::before,
  .float-wa::after {
    content: '';
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 2px solid rgba(37,211,102,.6);
    opacity: 0;
    animation: waRing 2.5s ease-out infinite;
    pointer-events: none;
  }
  .float-wa::after { animation-delay: .9s; }
  @keyframes waRing {
    0%   { transform: scale(1);   opacity: .7; }
    100% { transform: scale(1.9); opacity: 0;  }
  }
  .float-tip {
    position: absolute;
    right: calc(100% + 12px);
    top: 50%;
    transform: translateY(-50%);
    background: rgba(8,8,8,.92);
    backdrop-filter: blur(8px);
    color: #fff;
    font-family: 'DM Sans', sans-serif;
    font-size: 11px;
    letter-spacing: .08em;
    white-space: nowrap;
    padding: 6px 14px;
    border-radius: 6px;
    border: 1px solid rgba(255,255,255,.1);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
  }
  .float-wa:hover .float-tip { opacity: 1; }

  /* ══ 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(32px,4vw,48px);
    font-weight: 300;
    line-height: 1.1;
    margin-bottom: 8px;
  }
  .contact-left h2 em {
    display: block;
    font-style: italic;
    color: rgba(255,255,255,.35);
  }
  .contact-left > p {
    font-size: 13px;
    color: rgba(255,255,255,.45);
    line-height: 1.8;
    font-weight: 300;
    margin-bottom: 36px;
  }
  .contact-divider {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 20px 0;
  }
  .contact-divider::before {
    content: '';
    flex: 0 0 36px;
    height: 1px;
    background: linear-gradient(to right, var(--gold), transparent);
  }
  .contact-divider-dot {
    width: 4px; height: 4px;
    border-radius: 50%;
    background: var(--gold);
    opacity: .5;
  }
  .contact-methods {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .contact-method {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 15px 18px;
    background: rgba(255,255,255,.02);
    border: 1px solid rgba(255,255,255,.05);
    border-left: 2px solid transparent;
    text-decoration: none;
    color: #fff;
    transition: all .25s;
    position: relative;
    overflow: hidden;
    cursor: pointer;
  }
  .contact-method::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(201,168,76,.04);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s cubic-bezier(.4,0,.2,1);
  }
  .contact-method:hover::before { transform: scaleX(1); }
  .contact-method:hover { border-left-color: var(--gold); transform: translateX(3px); }
  .contact-method.whatsapp {
    background: rgba(37,211,102,.03);
    border-color: rgba(37,211,102,.08);
  }
  .contact-method.whatsapp:hover { border-left-color: #25D366; }
  a.contact-method { color: #fff !important; text-decoration: none !important; }
  a.contact-method:visited { color: #fff !important; }
  .method-icon {
    width: 38px; height: 38px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    transition: border-color .25s;
  }
  .contact-method:hover .method-icon { border-color: rgba(201,168,76,.4); }
  .contact-method.whatsapp .method-icon { border-color: rgba(37,211,102,.2); }
  .method-icon svg {
    width: 16px; height: 16px;
    stroke: rgba(255,255,255,.5);
    fill: none;
    stroke-width: 1.5;
    transition: stroke .25s;
  }
  .contact-method:hover .method-icon svg { stroke: var(--gold); }
  .contact-method.whatsapp .method-icon svg { stroke: #25D366; }
  .method-text {
    flex: 1;
    position: relative;
    z-index: 1;
  }
  .method-text span {
    display: block;
    font-size: 9px;
    letter-spacing: .18em;
    color: rgba(255,255,255,.3);
    text-transform: uppercase;
    margin-bottom: 2px;
  }
  .method-text strong {
    font-size: 13px;
    font-weight: 400;
    color: rgba(255,255,255,.85);
  }
  .method-arrow {
    color: rgba(255,255,255,.15);
    font-size: 12px;
    position: relative;
    z-index: 1;
    transition: transform .25s, color .25s;
  }
  .contact-method:hover .method-arrow {
    transform: translateX(4px);
    color: var(--gold);
  }

  /* ── FORMULARIO DERECHO ── */
  .cform-card {
    background: #181818;
    border: 1px solid rgba(255,255,255,.07);
    border-top: 2px solid var(--gold);
    padding: 36px 32px;
  }
  .cform-eyebrow {
    font-family: 'Cormorant Garamond', serif;
    font-size: 20px;
    font-style: italic;
    font-weight: 300;
    color: rgba(255,255,255,.75);
    margin-bottom: 6px;
  }
  .cform-sub {
    font-size: 12px;
    color: rgba(255,255,255,.3);
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(255,255,255,.06);
    line-height: 1.6;
  }
  .cform-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 10px;
  }
  .cform-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 10px;
  }
  .cform-label {
    font-size: 9px;
    letter-spacing: .2em;
    color: var(--gold);
    text-transform: uppercase;
    font-weight: 600;
  }
  .cform-input {
    width: 100%;
    padding: 10px 13px;
    background: rgba(255,255,255,.04);
    border: 1.5px solid rgba(255,255,255,.08);
    border-radius: 8px;
    color: #fff;
    font-family: 'DM Sans', sans-serif;
    font-size: 12px;
    font-weight: 300;
    outline: none;
    transition: border-color .2s, box-shadow .2s;
    -webkit-appearance: none;
  }
  .cform-input::placeholder { color: rgba(255,255,255,.18); }
  .cform-input:focus {
    border-color: rgba(201,168,76,.45);
    box-shadow: 0 0 0 3px rgba(201,168,76,.08);
  }
  .cform-input option { background: #1a1a1a; color: #fff; }
  .cform-textarea { resize: vertical; min-height: 88px; line-height: 1.6; }
  .cform-btn-wa {
    position: relative;
    width: 100%;
    padding: 13px;
    margin-top: 4px;
    background: #25D366;
    color: #000;
    font-family: 'DM Sans', sans-serif;
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-weight: 700;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    overflow: hidden;
    transition: background .3s, transform .2s;
    margin-bottom: 10px;
  }
  .cform-btn-wa svg {
    width: 15px; height: 15px;
    stroke: #000; fill: none; stroke-width: 1.8;
    flex-shrink: 0; position: relative; z-index: 1;
  }
  .cform-btn-wa::after {
    content: '';
    position: absolute;
    top: -50%; left: -75%; width: 50%; height: 200%;
    background: linear-gradient(to right,rgba(255,255,255,0),rgba(255,255,255,.25),rgba(255,255,255,0));
    transform: skewX(-20deg); opacity: 0;
  }
  .cform-btn-wa:hover::after { opacity:1; transform:skewX(-20deg) translateX(450%); transition:transform .6s ease,opacity .1s; }
  .cform-btn-wa:hover { background: #1da851; transform: translateY(-1px); }
  .cform-note {
    text-align: center;
    font-size: 10px;
    color: rgba(255,255,255,.2);
    line-height: 1.6;
  }

  /* ══ HERO GRADIENT SYSTEM ══ */

  /* Layer 1: base darkness — bottom to top, garantiza legibilidad */
  .hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;

    background:
      /* Capa 1: vignette izquierda donde está el texto — alta opacidad */
      linear-gradient(
        105deg,
        rgba(5,5,5,.92)   0%,
        rgba(8,8,8,.85)   28%,
        rgba(10,10,10,.65) 52%,
        rgba(0,0,0,.20)   75%,
        rgba(0,0,0,.05)   100%
      ),
      /* Capa 2: gradiente vertical — base oscura abajo para anclar el texto */
      linear-gradient(
        to top,
        rgba(0,0,0,.80)   0%,
        rgba(0,0,0,.45)   30%,
        rgba(0,0,0,.15)   60%,
        rgba(0,0,0,.08)   100%
      ),
      /* Capa 3: tinte dorado muy sutil en la esquina inf-izquierda */
      radial-gradient(
        ellipse 60% 50% at 0% 100%,
        rgba(201,168,76,.12) 0%,
        transparent 70%
      );
  }

  /* Línea dorada decorativa en la parte inferior del hero */
  #inicio::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(
      to right,
      rgba(201,168,76,.6) 0%,
      rgba(201,168,76,.3) 40%,
      transparent 70%
    );
    z-index: 3;
  }

  /* Partículas doradas scroll indicator */
  .hero-scroll {
    position: absolute;
    bottom: 36px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    opacity: .5;
    animation: fadeUp .9s ease 2s both;
  }
  .hero-scroll span {
    font-size: 8px;
    letter-spacing: .3em;
    color: rgba(255,255,255,.6);
    text-transform: uppercase;
  }
  .hero-scroll-line {
    width: 1px;
    height: 40px;
    background: linear-gradient(to bottom, rgba(201,168,76,.8), transparent);
    animation: scrollLine 2s ease-in-out infinite;
  }
  @keyframes scrollLine {
    0%   { transform: scaleY(0); transform-origin: top; opacity: 1; }
    50%  { transform: scaleY(1); transform-origin: top; opacity: 1; }
    51%  { transform: scaleY(1); transform-origin: bottom; }
    100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
  }

  /* ════════════ RESPONSIVE SITIO ════════════ */

  /* ── 1024px Tablet ── */
  @media (max-width: 1024px) {
    section { padding: 80px 3rem !important; }
    
    
    .process-grid  { grid-template-columns: repeat(2,1fr); gap: 2px; }
    .contact-grid  { gap: 48px; }
    .hero-content  { padding: 140px 4rem 6rem; }
    
    .section-title { font-size: clamp(32px,5vw,52px); }
  }

  /* ── MOBILE DRAWER — panel dividido con franja de marca + fondo fotográfico ── */
  .mobile-drawer {
    display: none;
    background:
      linear-gradient(180deg, rgba(8,8,8,.72) 0%, rgba(8,8,8,.85) 45%, rgba(6,6,6,.95) 100%),
      url('assets/images/site-image-01.jpg') center/cover no-repeat;
  }
  .mobile-drawer .nav-strip {
    width: 56px; flex-shrink: 0; position: relative;
    display: flex; align-items: center; justify-content: center;
    background: rgba(6,6,6,.55);
    border-right: 1px solid rgba(201,168,76,.4);
  }
  .mobile-drawer .nav-strip-text {
    writing-mode: vertical-rl; transform: rotate(180deg);
    font-size: 10px; letter-spacing: .22em; text-transform: uppercase;
    color: var(--gold); font-weight: 600; white-space: nowrap;
    font-family: var(--condensed);
  }
  .mobile-drawer .nav-col {
    flex: 1; display: flex; flex-direction: column; justify-content: center;
    padding: 0 26px; overflow-y: auto;
  }
  .mobile-drawer .nav-col-list { list-style: none; text-align: right; }
  .mobile-drawer .nav-col-list li { padding: 11px 0; }
  .mobile-drawer .nav-col-list a {
    text-decoration: none; color: var(--white);
    font-family: var(--italic); font-style: italic;
    font-size: 22px; letter-spacing: .01em; font-weight: 500;
    text-shadow: 0 2px 14px rgba(0,0,0,.55);
  }
  .mobile-drawer .nav-col-list a.active { color: var(--gold); }
  .mobile-drawer .nav-col-foot { margin-top: 24px; text-align: right; }
  .mobile-drawer .nav-col-foot .wa {
    display: block; font-size: 11px; color: var(--gray-light);
    letter-spacing: .04em; font-family: var(--sans);
  }
  .mobile-drawer .nav-col-foot .wa b { color: var(--gold); display: block; font-size: 13px; margin-top: 2px; }

  /* ── 1100px Tablet Nav Fix — collapse to hamburger earlier so the nav links and CTA button never clip or cramp/wrap on tablet widths (769–1100px, covers iPad portrait/landscape) ── */
  @media (max-width: 1100px) {
    .nav-links { display: none !important; }
    .mobile-drawer.open {
      display: flex !important;
      flex-direction: row;
      position: fixed;
      top: 64px; left: 0; right: 0;
      height: calc(100vh - 64px);
      height: calc(100dvh - 64px);
      box-sizing: border-box;
      z-index: 8999;
      overflow: hidden;
    }
    .nav-hamburger { display: flex !important; }
    .nav-cta { display: none !important; }
  }

  /* ── 768px Mobile ── */
  @media (max-width: 768px) {
    html, body { overflow-x: hidden; }

    /* Navbar */
    .nav-links { display: none !important; }
    .mobile-drawer.open {
      display: flex !important;
      flex-direction: row;
      position: fixed;
      top: 64px; left: 0; right: 0;
      height: calc(100vh - 64px);
      height: calc(100dvh - 64px);
      box-sizing: border-box;
      z-index: 8999;
      overflow: hidden;
    }
    .nav-hamburger { display: flex !important; }
    .nav-cta { display: none !important; }

    /* Hero */
    #inicio        { height: auto !important; min-height: 100svh !important; padding-bottom: 32px; }
    .hero-content  { padding: 100px 1.5rem 5rem !important; }
    .hero-h1       { font-size: clamp(36px,10vw,52px) !important; line-height: 1.05 !important; }
    .hero-desc     { font-size: 13px !important; }
    .hero-actions  { flex-direction: column; gap: 10px; }
    .btn-primary, .btn-secondary { width: 100%; justify-content: center; }
    .hero-stats    { position: relative !important; bottom: auto !important; margin-top: 28px; flex-wrap: wrap; }
    .stat-item     { flex: 1 1 50%; padding: 18px 16px; }
    .cfia-badge    { position: relative !important; bottom: auto !important; right: auto !important; margin: 24px auto 0; }
    .hero-scroll   { display: none; }

    /* Sections */
    section { padding: 64px 1.5rem !important; }

    /* Nosotros */
    
    
    .section-title { font-size: clamp(28px,8vw,42px) !important; }
    

    /* Servicios */
    
    

    /* Portfolio */
    .cs-slide { flex: 0 0 88% !important; }
    .projects-header { flex-direction: column; gap: 16px; }

    /* Proceso */
    .process-grid { grid-template-columns: 1fr 1fr !important; gap: 2px !important; }
    .process-step { min-height: 260px !important; }

    /* Contacto */
    .contact-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
    .cform-row    { grid-template-columns: 1fr !important; }
    .cform-card   { padding: 24px 18px !important; }

    /* Float WA */
    .float-btns { bottom: 20px; right: 16px; }
    .float-wa   { width: 52px !important; height: 52px !important; }
    .float-wa svg { width: 22px !important; height: 22px !important; }
    .float-tip  { display: none !important; }
  }

  /* ── 480px Mobile pequeño ── */
  @media (max-width: 480px) {
    section { padding: 48px 1.2rem !important; }
    .hero-content { padding: 80px 1.2rem 4rem !important; }
    .hero-h1      { font-size: clamp(32px,9vw,44px) !important; }
    
    .process-grid  { grid-template-columns: 1fr !important; }
    
    .process-step  { min-height: 240px !important; }
    .cs-slide      { flex: 0 0 95% !important; }
    .contact-method { padding: 12px 14px; }
  }

  /* Navbar translucent on scroll */
  #navbar {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 9000;
    height: 68px;
    padding: 0 48px;
    background: rgba(10,10,10,.96);
    backdrop-filter: blur(0px);
    -webkit-backdrop-filter: blur(0px);
    border-bottom: 1px solid rgba(201,168,76,.12);
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: background .45s ease, backdrop-filter .45s ease,
                border-color .45s ease, box-shadow .45s ease;
  }
  

  /* Navbar scroll — glass effect */
  #navbar.scrolled {
    background: rgba(10,10,10,.65);
    backdrop-filter: blur(18px) saturate(1.4);
    -webkit-backdrop-filter: blur(18px) saturate(1.4);
    border-bottom: 1px solid rgba(201,168,76,.18);
    box-shadow: 0 4px 32px rgba(0,0,0,.25);
  }

  .nav-links a.active { color: var(--gold) !important; }

  /* ══ NOSOTROS — POR QUÉ ELEGIRNOS ══ */
  #nosotros { background: var(--dark); padding: 120px 6rem; }

  .nosotros-eyebrow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 16px;
  }
  .nosotros-eyebrow span {
    font-size: 10px;
    letter-spacing: .35em;
    color: var(--gold);
    text-transform: uppercase;
    font-weight: 500;
  }
  .nosotros-eyebrow::before {
    content: '';
    display: block;
    width: 28px; height: 1px;
    background: var(--gold);
    opacity: .5;
  }

  .nosotros-title {
    font-family: var(--sans);
    font-size: clamp(34px,4.2vw,52px);
    font-weight: 700;
    color: #fff;
    line-height: 1.1;
    letter-spacing: -.02em;
    text-align: center;
    margin: 0 0 20px;
  }
  .nosotros-title em {
    font-style: italic;
    font-family: 'Cormorant Garamond', serif;
    color: var(--gold);
    font-weight: 400;
  }
  .nosotros-intro {
    text-align: center;
    max-width: 560px;
    margin: 0 auto 56px;
    font-size: 14px;
    color: rgba(255,255,255,.45);
    line-height: 1.8;
    font-weight: 300;
  }

  /* Cinta de estadísticas */
  .nosotros-stat-band {
    display: flex;
    border-top: 1px solid rgba(201,168,76,.18);
    border-bottom: 1px solid rgba(201,168,76,.18);
    margin-bottom: 64px;
  }
  .nsb-item {
    flex: 1;
    text-align: center;
    padding: 40px 20px;
    border-right: 1px solid rgba(255,255,255,.06);
  }
  .nsb-item:last-child { border-right: none; }
  .nsb-num {
    font-family: var(--sans);
    font-size: 44px;
    font-weight: 700;
    color: var(--gold);
    line-height: 1;
    letter-spacing: -.01em;
  }
  .nsb-num sup { font-size: 20px; }
  .nsb-label {
    font-size: 10.5px;
    letter-spacing: .16em;
    color: rgba(255,255,255,.4);
    text-transform: uppercase;
    margin-top: 10px;
  }

  /* Tarjetas de razones */
  .nosotros-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 2px;
    margin-bottom: 48px;
  }

  .nosotros-card {
    background: #161616;
    padding: 32px 26px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: background .3s;
  }
  .nosotros-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; right: 0;
    height: 2px;
    background: var(--gold);
    transform: scaleX(0);
    transition: transform .35s ease;
  }
  .nosotros-card:hover { background: #1a1a1a; }
  .nosotros-card:hover::before { transform: scaleX(1); }

  .nc-icon {
    width: 44px; height: 44px;
    border: 1px solid rgba(201,168,76,.25);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 18px;
  }
  .nc-icon svg {
    width: 19px; height: 19px;
    stroke: var(--gold);
    fill: none;
    stroke-width: 1.5;
  }
  .nc-title {
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    margin: 0 0 8px;
    line-height: 1.25;
  }
  .nc-desc {
    font-size: 12.5px;
    color: rgba(255,255,255,.42);
    line-height: 1.65;
    margin: 0;
  }

  /* Sello CFIA */
  .nosotros-seal-wrap { display: flex; justify-content: center; }
  .nosotros-seal {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 32px 48px;
    border: 1px solid rgba(201,168,76,.22);
    border-radius: 14px;
    background: linear-gradient(155deg,#161616,#0c0c0c);
    position: relative;
  }
  .nosotros-seal::before {
    content: '';
    position: absolute;
    inset: 8px;
    border: 1px dashed rgba(201,168,76,.18);
    border-radius: 8px;
    pointer-events: none;
  }
  .nosotros-seal img {
    width: 190px;
    height: auto;
    display: block;
    position: relative;
  }
  .nosotros-seal-divider { width: 32px; height: 1px; background: rgba(201,168,76,.4); position: relative; }
  .nosotros-seal-text {
    font-size: 10.5px;
    letter-spacing: .16em;
    color: rgba(255,255,255,.55);
    text-transform: uppercase;
    text-align: center;
    font-weight: 600;
    position: relative;
  }

  /* Responsive */
  @media (max-width: 1024px) {
    .nosotros-grid { grid-template-columns: 1fr 1fr !important; }
  }
  @media (max-width: 768px) {
    .nosotros-stat-band { flex-direction: column; }
    .nsb-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,.06); }
    .nosotros-card { padding: 28px 22px !important; }
    #nosotros { padding: 64px 1.5rem !important; }
  }
  @media (max-width: 480px) {
    .nosotros-title { font-size: clamp(28px,8vw,38px) !important; }
    .nosotros-grid { grid-template-columns: 1fr !important; }
    .nc-title { font-size: 15px !important; }
    .nosotros-seal { padding: 26px 28px !important; }
    .nosotros-seal img { width: 150px !important; }
    #nosotros { padding: 48px 1.2rem !important; }
  }

  /* ══ SERVICIOS ══ */
  #servicios { background: var(--black); padding: 120px 6rem; }

  .srv-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 56px;
  }
  .srv-desc {
    max-width: 300px;
    font-size: 13px;
    color: rgba(255,255,255,.4);
    line-height: 1.8;
    font-weight: 300;
    text-align: right;
  }

  .srv-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 2px;
    margin-bottom: 2px;
  }

  .srv-card {
    position: relative;
    overflow: hidden;
    background: #111;
    cursor: default;
  }
  .srv-img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
    transition: transform .5s, filter .5s;
    filter: brightness(.65);
  }
  .srv-card:hover .srv-img {
    transform: scale(1.06);
    filter: brightness(.85);
  }
  .srv-body {
    padding: 22px 20px 28px;
  }
  .srv-icon {
    width: 38px; height: 38px;
    border: 1px solid rgba(201,168,76,.2);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    transition: border-color .3s;
  }
  .srv-icon svg {
    width: 16px; height: 16px;
    stroke: var(--gold);
    fill: none;
    stroke-width: 1.5;
  }
  .srv-card:hover .srv-icon { border-color: rgba(201,168,76,.5); }
  .srv-name {
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    margin-bottom: 6px;
    line-height: 1.25;
  }
  .srv-text {
    font-size: 12px;
    color: rgba(255,255,255,.38);
    line-height: 1.65;
  }
  .srv-line {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 2px;
    background: var(--gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .35s;
  }
  .srv-card:hover .srv-line { transform: scaleX(1); }

  /* Highlight card */
  .srv-highlight {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    background: #111;
  }
  .srv-hi-img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    display: block;
    filter: brightness(.75);
  }
  .srv-hi-body {
    padding: 40px 36px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .srv-hi-tag {
    font-size: 9px;
    letter-spacing: .25em;
    color: rgba(201,168,76,.6);
    text-transform: uppercase;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .srv-hi-tag::before {
    content: '';
    display: block;
    width: 20px; height: 1px;
    background: var(--gold);
    opacity: .4;
  }
  .srv-hi-name {
    font-size: 22px;
    font-weight: 600;
    color: #fff;
    margin-bottom: 12px;
    line-height: 1.2;
  }
  .srv-hi-desc {
    font-size: 13px;
    color: rgba(255,255,255,.45);
    line-height: 1.75;
    font-weight: 300;
  }
  .srv-hi-footer {
    margin-top: 24px;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .srv-hi-footer svg {
    width: 13px; height: 13px;
    stroke: var(--gold);
    fill: none;
    stroke-width: 1.5;
    flex-shrink: 0;
  }
  .srv-hi-footer span {
    font-size: 10px;
    letter-spacing: .14em;
    color: rgba(255,255,255,.35);
    text-transform: uppercase;
  }

  /* Responsive */
  @media (max-width: 1024px) {
    .srv-grid { grid-template-columns: repeat(2,1fr) !important; }
  }
  @media (max-width: 768px) {
    #servicios { padding: 64px 1.5rem !important; }
    .srv-header { flex-direction: column; align-items: flex-start; gap: 16px; }
    .srv-desc { text-align: left !important; max-width: 100%; }
    .srv-grid { grid-template-columns: 1fr 1fr !important; }
    .srv-highlight { grid-template-columns: 1fr !important; }
    .srv-hi-img { height: 200px !important; }
    .srv-hi-body { padding: 28px 22px !important; }
  }
  @media (max-width: 480px) {
    .srv-grid { grid-template-columns: 1fr !important; }
    .srv-img { height: 160px !important; }
    #servicios { padding: 48px 1.2rem !important; }
  }

  /* ── LIGHTBOX: GALERÍA COMPLETA DE PROYECTOS ── */
  .cs-slide-clickable { cursor: pointer; }
  .pjf-lightbox { position: fixed; inset: 0; z-index: 9500; display: none; align-items: center; justify-content: center; }
  .pjf-lightbox.open { display: flex; }
  .pjf-lightbox-overlay { position: absolute; inset: 0; background: rgba(10,10,10,.94); backdrop-filter: blur(6px); }
  .pjf-lightbox-content { position: relative; max-width: min(92vw,1100px); max-height: 88vh; display: flex; flex-direction: column; align-items: center; z-index: 1; }
  .pjf-lightbox-content img { max-width: 100%; max-height: 76vh; object-fit: contain; border-radius: 4px; box-shadow: 0 30px 80px rgba(0,0,0,.6); }
  .pjf-lightbox-caption { margin-top: 16px; color: var(--white); font-family: var(--sans); font-size: 15px; letter-spacing: .03em; text-align: center; }
  .pjf-lightbox-counter { margin-top: 6px; color: var(--gold); font-family: var(--condensed); font-size: 11px; letter-spacing: .15em; display: flex; align-items: center; gap: 8px; }
  .pjf-lightbox-sep { width: 16px; height: 1px; background: rgba(255,255,255,.3); }
  .pjf-lightbox-close { position: absolute; top: 22px; right: 22px; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.05); color: var(--white); font-size: 24px; line-height: 1; cursor: pointer; z-index: 2; transition: background .2s ease, border-color .2s ease; display: flex; align-items: center; justify-content: center; }
  .pjf-lightbox-close:hover { background: rgba(255,255,255,.12); border-color: var(--gold); }
  .pjf-lightbox-prev, .pjf-lightbox-next { position: absolute; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.05); color: var(--white); cursor: pointer; z-index: 2; display: flex; align-items: center; justify-content: center; transition: background .2s ease, border-color .2s ease; }
  .pjf-lightbox-prev svg, .pjf-lightbox-next svg { width: 18px; height: 18px; }
  .pjf-lightbox-prev:hover, .pjf-lightbox-next:hover { background: rgba(255,255,255,.12); border-color: var(--gold); }
  .pjf-lightbox-prev { left: 18px; }
  .pjf-lightbox-next { right: 18px; }
  @media (max-width: 640px) {
    .pjf-lightbox-close { top: 12px; right: 12px; width: 36px; height: 36px; font-size: 20px; }
    .pjf-lightbox-prev, .pjf-lightbox-next { width: 38px; height: 38px; }
    .pjf-lightbox-prev { left: 8px; }
    .pjf-lightbox-next { right: 8px; }
    .pjf-lightbox-content img { max-height: 64vh; }
    .pjf-lightbox-caption { font-size: 13px; padding: 0 50px; }
  }
