/* Dynamic VDC Studio · Premium V5
   Capa de presentación sobre V4. Tokens del Manual de Identidad V3.0 (pp. 43-58):
   naranja profundo #B93A21 para acciones, hover #9E3019, gris texto #5B636B,
   línea #D8DDDE, tarjetas blancas sobre marfil (radio 8), controles radio 4,
   Inter Display Bold solo en titulares grandes, Lato en lectura e interfaz. */

@font-face{font-family:'DVS Inter Display';src:url('/assets/v5/fonts/InterDisplay-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

:root{
  --orange:#db4a2b;
  --action:#b93a21;
  --action-hover:#9e3019;
  --accent-text:#b93a21;
  --ink:#20262d;
  --ivory:#f5f3ee;
  --muted:#5b636b;
  --line:#d8ddde;
  --tint:#fbe2d9;
  --v4-focus:#3554d1;
  --surface:#fff;
  --radius-card:8px;
  --radius-control:4px;
  --display:'DVS Inter Display','DVS Lato',Arial,sans-serif;
  --shadow-soft:0 1px 2px rgba(32,38,45,.04),0 8px 24px -12px rgba(32,38,45,.12);
  --shadow-lift:0 2px 4px rgba(32,38,45,.05),0 22px 44px -22px rgba(32,38,45,.28);
  --ease:cubic-bezier(.2,.7,.2,1);
}

html,body{overflow-x:clip}
body{background:var(--ivory);color:var(--ink);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:'kern' 1}
::selection{background:var(--tint);color:var(--ink)}

/* ---------- Titulares: Inter Display Bold, interlineado ajustado ---------- */
.home-intro h1,
main h2,
.de-page h1,
.page-hero h1{font-family:var(--display);font-weight:700;letter-spacing:-.025em;font-kerning:normal}
.home-intro h1{font-size:clamp(42px,5.1vw,76px);line-height:1.02;letter-spacing:-.032em}
.home-intro h1 em{font-style:normal;color:var(--orange)}
main h2{font-size:clamp(32px,3.6vw,54px);line-height:1.06}
main h3{font-weight:700;letter-spacing:-.01em}

/* ---------- Sobretítulos con nodo de conexión (pp. 52-53) ---------- */
.eyebrow{letter-spacing:.12em;font-weight:700;color:var(--accent-text)}
.section-heading>.eyebrow,
.about-intro .eyebrow,
.contact-copy>.eyebrow,
.home-intro .eyebrow,
.digital-section .section-heading>.eyebrow{display:inline-flex;align-items:center;gap:12px}
.section-heading>.eyebrow::before,
.about-intro .eyebrow::before,
.contact-copy>.eyebrow::before,
.home-intro .eyebrow::before{content:"";flex:none;width:28px;height:8px;background:
  radial-gradient(circle at 24px 4px,var(--orange) 3.5px,transparent 4px),
  linear-gradient(var(--orange),var(--orange)) 0 3px/22px 2px no-repeat}
.digital-section .eyebrow{color:#f0b3a1}
.digital-section .section-heading>.eyebrow::before{content:"";flex:none;width:28px;height:8px;background:
  radial-gradient(circle at 24px 4px,#f0b3a1 3.5px,transparent 4px),
  linear-gradient(#f0b3a1,#f0b3a1) 0 3px/22px 2px no-repeat}

/* ---------- Cabecera ---------- */
.site-header{background:rgba(245,243,238,.82);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom-color:transparent;transition:border-color .3s,box-shadow .3s,background .3s}
.site-header.is-scrolled{border-bottom-color:var(--line);box-shadow:0 10px 30px -24px rgba(32,38,45,.35);background:rgba(245,243,238,.92)}
.site-header nav a:not(.nav-contact){position:relative}
.site-header nav a:not(.nav-contact)::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:1.5px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.site-header nav a:not(.nav-contact):hover::after,
.site-header nav a[aria-current]::after,
.site-header nav a.is-active::after{transform:scaleX(1)}
.site-header nav .nav-contact{background:var(--action);border-color:var(--action);color:#fff;border-radius:var(--radius-control);transition:background .2s,transform .2s}
.site-header nav a[aria-current=location]{text-decoration:none}
.site-header nav a.nav-contact,.site-header nav a.nav-contact[aria-current]{color:#fff}
.site-header nav .nav-contact:hover{background:var(--action-hover);border-color:var(--action-hover);color:#fff}
.logo img{min-width:180px}

/* Barra de progreso: barrido de conexión (línea + nodo, p. 93) */
.dvs-progress{position:fixed;left:0;top:0;height:2px;width:calc(var(--p,0) * 100%);z-index:40;pointer-events:none;background:linear-gradient(90deg,var(--orange),var(--action))}
.dvs-progress::after{content:"";position:absolute;right:-3px;top:-2px;width:6px;height:6px;border-radius:50%;background:var(--orange)}

/* ---------- Botones y enlaces (p. 58) ---------- */
.button{background:var(--action);border-color:var(--action);border-radius:var(--radius-control);box-shadow:0 1px 0 rgba(255,255,255,.15) inset,0 10px 24px -14px rgba(185,58,33,.75);transition:background .2s,box-shadow .3s,transform .3s var(--ease)}
.button:hover{background:var(--action-hover);border-color:var(--action-hover);transform:translateY(-2px);box-shadow:0 1px 0 rgba(255,255,255,.15) inset,0 16px 30px -14px rgba(158,48,25,.8)}
.button span[aria-hidden],.text-link span[aria-hidden],.nav-contact span[aria-hidden]{display:inline-block;transition:transform .3s var(--ease)}
.button:hover span[aria-hidden],.text-link:hover span[aria-hidden],.nav-contact:hover span[aria-hidden]{transform:translate(3px,-3px)}
.button:disabled,.button[disabled]{background:#e6e8e4;border-color:#d8ddde;color:#5b636b;box-shadow:none;transform:none;cursor:not-allowed}
.text-link{border-bottom-color:currentColor;border-bottom-color:color-mix(in srgb,currentColor 35%,transparent);transition:color .2s,border-color .2s}
.text-link:hover{color:var(--action);border-bottom-color:var(--action)}
.digital-section .text-link:hover,.site-footer .text-link:hover{color:#f0b3a1;border-bottom-color:#f0b3a1}

/* ---------- Hero ---------- */
.home-hero{position:relative}
.home-hero::before{content:"";position:absolute;inset:-40px -5vw auto;height:640px;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 70% at 78% 0%,rgba(219,74,43,.07),transparent 70%),
    linear-gradient(rgba(32,38,45,.045) 1px,transparent 1px) 0 0/64px 64px,
    linear-gradient(90deg,rgba(32,38,45,.045) 1px,transparent 1px) 0 0/64px 64px;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.6) 45%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.6) 45%,transparent 100%)}
.home-lead>p:first-child{font-size:17px;line-height:1.65;color:#3d454d}
.home-availability span{box-shadow:0 0 0 4px rgba(219,74,43,.14);animation:dvs-pulse 2.6s ease-in-out infinite}
@keyframes dvs-pulse{50%{box-shadow:0 0 0 7px rgba(219,74,43,0)}}
.home-viewer{border-radius:var(--radius-card)}

/* Franja de credenciales bajo el visor */
.home-context-grid p{position:relative;padding:22px 24px 22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);color:var(--muted);line-height:1.7}
.home-context-grid p strong{color:var(--ink);font-size:15px;margin-bottom:6px}
.home-context-grid p::before{content:"";position:absolute;left:24px;top:-1px;width:32px;height:2px;background:var(--orange)}

/* ---------- Soluciones ---------- */
.solution-tabs button{transition:color .2s,border-color .3s}
.solution-tabs button:hover{color:var(--ink)}
.service-grid{border:0;gap:16px}
.service-card{position:relative;background:var(--surface);border:1px solid var(--line)!important;border-radius:var(--radius-card);box-shadow:var(--shadow-soft);overflow:hidden;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.service-card::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:linear-gradient(90deg,var(--orange),var(--action));transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.service-card.is-featured::before{transform:scaleX(1)}
.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:#c9cfd0!important}
.service-card:hover::before{transform:scaleX(1)}
.service-top img{box-sizing:content-box;padding:10px;border-radius:var(--radius-card);background:var(--ivory);border:1px solid var(--line);transition:background .3s,border-color .3s}
.service-card:hover .service-top img{background:var(--tint);border-color:#f3c7b8}
.service-top>span{font-variant-numeric:tabular-nums;letter-spacing:.08em;color:var(--muted)}
.service-kicker{color:var(--accent-text)!important;letter-spacing:.04em}
.service-card,[data-area=projects] .service-card:nth-last-child(-n+2){background:var(--surface)}
.service-card.is-featured{background:linear-gradient(160deg,#fff 55%,#fdf3ef)}

/* ---------- Nosotros y método: trayectoria con nodos ---------- */
.about-section{background:linear-gradient(180deg,#efece5,var(--ivory));border-color:var(--line)}
.about-copy>p:first-child{color:var(--ink);line-height:1.6}
.about-signature{display:inline-flex!important;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-control);background:rgba(255,255,255,.6);letter-spacing:.12em!important}
.method-grid{position:relative}
.method-step{position:relative;padding-top:34px!important;border-top:0!important}
.method-step::before{content:"";position:absolute;left:0;right:-24px;top:7px;height:2px;background:var(--line)}
.method-step:last-child::before{right:0}
.method-step::after{content:"";position:absolute;left:0;top:2px;width:12px;height:12px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 5px var(--ivory)}
.method-step:nth-child(even)::after{background:var(--ivory);border:2px solid var(--ink);border-radius:2px;width:9px;height:9px;top:3px}
.method-number{font-variant-numeric:tabular-nums;letter-spacing:.12em;font-weight:700}
.method-step h3{font-family:var(--display);font-size:24px;letter-spacing:-.02em}

/* ---------- Digital Engineering ---------- */
.digital-section{position:relative;overflow:hidden;background:
  radial-gradient(50% 60% at 85% 0%,rgba(219,74,43,.16),transparent 70%),
  linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0/64px 64px,
  linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/64px 64px,
  var(--ink)}
.bim-experience{border-radius:var(--radius-card);box-shadow:0 40px 80px -40px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.06)}
.digital-section .demo-label{border-color:rgba(240,179,161,.55);color:#f0b3a1}

/* ---------- Experiencias: placa informativa (pp. 83, 88) ---------- */
.work-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.work-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.work-image{border-radius:0}
.work-image>img{transition:transform .9s var(--ease)}
.work-copy{padding:22px 24px 26px}
.work-copy h3{font-family:var(--display);letter-spacing:-.02em}
.work-image .image-index{padding:5px 10px;background:rgba(245,243,238,.94);color:var(--ink);border-left:3px solid var(--orange);border-radius:0 3px 3px 0;letter-spacing:.12em;font-weight:700;font-variant-numeric:tabular-nums}
.work-image .image-arrow{transition:transform .35s var(--ease),background .3s}
.work-card:hover .image-arrow{transform:translate(2px,-2px)}

/* ---------- Contacto ---------- */
.contact-form-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-lift);padding:clamp(22px,3vw,40px)}
.contact-form-wrap input,.contact-form-wrap select,.contact-form-wrap textarea{border-radius:var(--radius-control);border-color:#c9cfd0;background:#fff;transition:border-color .2s,box-shadow .2s}
.contact-form-wrap input:hover,.contact-form-wrap select:hover,.contact-form-wrap textarea:hover{border-color:#9aa2a6}
.contact-form-wrap input:focus,.contact-form-wrap select:focus,.contact-form-wrap textarea:focus{border-color:var(--v4-focus);box-shadow:0 0 0 3px rgba(53,84,209,.14)}
.contact-data{padding:24px;border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:0 var(--radius-card) var(--radius-card) 0;background:rgba(255,255,255,.55);max-width:420px}
.contact-data a{color:var(--action);font-weight:700}

/* ---------- Pie ---------- */
.site-footer{position:relative;background:
  linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px) 0 0/64px 64px,
  linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px) 0 0/64px 64px,
  var(--ink)}
.site-footer::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--orange) 0 18%,rgba(219,74,43,0) 60%)}
.site-footer .logo img{min-width:180px;width:200px}
.footer-social-links a{border-radius:var(--radius-control);transition:background .2s,border-color .2s,transform .3s var(--ease)}
.footer-social-links a:hover{background:rgba(255,255,255,.06);border-color:rgba(240,179,161,.6);transform:translateY(-2px)}

/* ---------- Aparición: fundido ≤ 0,5 s (p. 93) ---------- */
.reveal{transition:opacity .5s var(--ease),transform .5s var(--ease)!important}

/* ---------- Páginas interiores ---------- */
main>section.section>h1,main>article>h1{font-family:var(--display);font-weight:700;letter-spacing:-.03em;font-size:clamp(36px,4.6vw,64px);line-height:1.04;margin:0 0 28px}
main>section.section>.eyebrow,main>article>.eyebrow{display:inline-flex;align-items:center;gap:12px}
main>section.section>.eyebrow::before,main>article>.eyebrow::before{content:"";flex:none;width:28px;height:8px;background:
  radial-gradient(circle at 24px 4px,var(--orange) 3.5px,transparent 4px),
  linear-gradient(var(--orange),var(--orange)) 0 3px/22px 2px no-repeat}
main>section.section>h1+p{max-width:68ch;font-size:17px;line-height:1.7;color:#3d454d}
main>section.section>.concept-frame{border-radius:var(--radius-card);box-shadow:var(--shadow-lift);border:1px solid var(--line);margin:40px 0 24px;background:#fff}
main>section.section>.concept-frame+p{max-width:80ch;color:var(--muted);font-size:14px;line-height:1.7}
main>article>h2{font-family:var(--display);font-weight:700;letter-spacing:-.02em;font-size:26px;margin-top:44px}
main>article>p,main>article li{max-width:72ch;line-height:1.75}
.not-found{min-height:56vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.legal-draft{border-left-color:var(--orange);background:rgba(251,226,217,.45);padding:12px 16px!important;border-radius:0 var(--radius-control) var(--radius-control) 0}

@media(max-width:720px){
  .home-intro h1{font-size:clamp(36px,10.4vw,48px)}
  main h2{font-size:clamp(30px,8.4vw,40px)!important;letter-spacing:-.025em!important}
  .logo img,.site-header .logo img{width:180px!important}
  .home-hero::before{height:420px;background-size:auto,48px 48px,48px 48px}
  .method-step::before{right:0}
  main h2 br{display:none}
  .contact-form-wrap{padding:20px}
  .service-grid{gap:12px}
}
@media(prefers-reduced-motion:reduce){
  .home-availability span{animation:none}
  .service-card,.work-card,.button,.service-card::before,.work-image>img{transition:none!important}
  .service-card:hover,.work-card:hover,.button:hover{transform:none}
  .dvs-progress{display:none}
}
@media(forced-colors:active){.dvs-progress,.home-hero::before{display:none}}
