/* Studio layer: deliberate editorial engineering system, loaded after legacy styles. */
:root { --vbm-red:#c34e38; --vbm-stone:#e8e4d8; --vbm-panel:#f9f7ef; }
html,body { max-width:100%; overflow-x:clip; }
body { background:var(--vbm-stone); }
.site-header { min-height:76px; }
.hero { min-height:760px; }
.hero::before { border:0; background:linear-gradient(90deg,rgba(4,33,39,.98) 0%,rgba(4,33,39,.86) 33%,rgba(4,33,39,.22) 69%,rgba(4,33,39,.36) 100%); height:100%; inset:0; opacity:1; width:100%; }
.hero::after { background-image:radial-gradient(circle at 72% 30%, rgba(217,226,77,.45) 0 1px, transparent 1.5px), linear-gradient(110deg, transparent 0 49%, rgba(217,226,77,.22) 49.1% 49.25%, transparent 49.35%); background-size:36px 36px,100% 100%; inset:0; opacity:.34; transform:none; }
.hero-grid { background-image:linear-gradient(rgba(217,226,77,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(217,226,77,.11) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(90deg,#000 0 36%,transparent 64%); }
.hero-bim-visual { right:0; width:min(71vw,1120px); }
.hero-bim-visual img { filter:saturate(.66) contrast(1.12) brightness(.82); transform:scale(1.02); transition:transform 1.3s cubic-bezier(.2,.7,.2,1); }
.hero:hover .hero-bim-visual img { transform:scale(1.07); }
.hero-bim-visual video { filter:saturate(.7) contrast(1.08) brightness(.78); height:100%; object-fit:cover; transform:scale(1.02); transition:transform 1.3s cubic-bezier(.2,.7,.2,1); width:100%; }
.hero:hover .hero-bim-visual video { transform:scale(1.06); }
.hero-copy { padding-top:130px; padding-bottom:62px; z-index:2; }
.hero-copy h1 { font-size:clamp(54px,6vw,88px); letter-spacing:-.02em; max-width:10.7ch; text-wrap:balance; }
.hero-lead { max-width:56ch; }
.hero-proof { border-top:1px solid rgba(255,255,255,.28); display:grid; gap:14px; grid-template-columns:repeat(3,1fr); margin:42px 0 0; max-width:620px; padding:14px 0 0; }
.hero-proof div { min-width:0; }
.hero-proof dt { color:var(--amber-light); font:500 11px 'DM Mono',monospace; letter-spacing:.1em; }
.hero-proof dd { color:rgba(255,255,255,.75); font-size:11px; line-height:1.25; margin:6px 0 0; }
.hero-cv { border-left:2px solid var(--amber-light); display:grid; gap:3px; margin-top:26px; max-width:620px; padding-left:14px; }
.hero-cv strong { color:var(--amber-light); font:700 26px Newsreader,serif; line-height:1; }
.hero-cv span { color:#fff; font:600 14px Manrope,sans-serif; }
.hero-cv small { color:rgba(255,255,255,.72); font:500 10px 'DM Mono',monospace; letter-spacing:.06em; text-transform:uppercase; }
.decision-console { background:rgba(249,247,239,.97); box-shadow:16px 18px 0 rgba(0,0,0,.2); margin-right:max(24px,calc((100vw - var(--max))/2)); padding:32px 34px 28px; transform:translateY(36px); }
.decision-console::after { border:1px solid var(--vbm-red); content:""; inset:10px; pointer-events:none; position:absolute; }
.decision-console > * { position:relative; z-index:1; }
.field-readout { align-items:center; border-bottom:1px solid var(--line); color:var(--sea); display:flex; flex-wrap:wrap; font:500 9px 'DM Mono',monospace; gap:8px; letter-spacing:.1em; margin-bottom:16px; padding:0 0 12px; text-transform:uppercase; }
.field-readout i { background:var(--vbm-red); border-radius:50%; height:6px; width:6px; }
.field-readout b { color:var(--ink); font:700 10px Manrope,sans-serif; margin-left:auto; text-transform:none; }
.signal-band { background:var(--vbm-panel); border-bottom:1px solid rgba(11,32,33,.15); border-top:1px solid rgba(11,32,33,.15); }
.signal-band div:first-child { border-left:0; padding-left:0; }
.signal-band strong { font-family:Newsreader,serif; font-size:21px; line-height:1.08; }
.coast-band { background:#123f42; color:white; min-height:290px; overflow:hidden; position:relative; }
.coast-band::after { background:repeating-radial-gradient(ellipse at 72% 50%, transparent 0 16px, rgba(217,226,77,.18) 17px 18px, transparent 19px 31px); content:""; height:520px; position:absolute; right:-140px; top:-120px; transform:rotate(-15deg); width:700px; }
.coast-band > * { position:relative; z-index:1; }
.solution-grid { gap:0; grid-template-columns:repeat(4,1fr); }
.solution-grid article { min-height:480px; padding:28px 24px 32px; transition:background .25s,color .25s,transform .25s; }
.solution-grid article:not(:last-child) { border-right:1px solid var(--line); }
.solution-grid article:hover { background:#0b3a3f; color:#fff; transform:translateY(-12px); }
.solution-grid article:hover .number,.solution-grid article:hover a { color:var(--amber-light); }
.solution-grid article:hover > p:not(.number),.solution-grid article:hover li { color:rgba(255,255,255,.74); }
.solution-grid h3 { font-size:31px; }
.tender-section { background:#0c3033; position:relative; }
.tender-section::before { border:1px solid rgba(217,226,77,.4); content:"CONTRATACION · CONTROL · ENTREGABLES"; color:rgba(217,226,77,.62); font:500 10px 'DM Mono',monospace; letter-spacing:.2em; padding:9px 12px; position:absolute; right:max(24px,calc((100vw - var(--max))/2)); top:24px; }
.method-section { background:var(--vbm-panel); }
.method-grid li { min-height:190px; }
.sector-grid { grid-template-columns:1.2fr 1fr 1fr 1fr; }
.sector-grid button { background:transparent; border-color:rgba(11,32,33,.22); }
.ecosystem-band { background:#152f34; }
.contact-section { position:relative; overflow:hidden; }
.contact-section::before { background:linear-gradient(120deg,transparent 0 66%,rgba(217,226,77,.08) 66.1% 66.4%,transparent 66.5%),repeating-linear-gradient(0deg,transparent 0 48px,rgba(217,226,77,.06) 49px 50px); content:""; inset:0; position:absolute; }
.contact-section > * { position:relative; z-index:1; }
.contact-form { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.26); padding:24px; }
[data-reveal] { opacity:0; transform:translateY(28px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1); }
[data-reveal].is-visible { opacity:1; transform:none; }
@media(max-width:1020px) { .solution-grid { grid-template-columns:repeat(2,1fr); } .solution-grid article:nth-child(2) { border-right:0; } .hero-copy h1 { max-width:11ch; } }
@media(max-width:820px) { .hero { min-height:690px; } .hero::before { background:linear-gradient(180deg,rgba(4,33,39,.94),rgba(4,33,39,.78)); } .hero-bim-visual { opacity:.5; width:100%; } .hero-copy { padding-top:92px; } .hero-proof { max-width:450px; } .decision-console { margin:0 20px 54px; transform:none; } .coast-band::after { opacity:.6; right:-380px; } }
@media(max-width:620px) { .site-header { min-height:66px; } .hero { min-height:auto; } .hero-copy h1 { font-size:54px; max-width:10ch; } .hero-lead { font-size:16px; } .hero-proof { gap:8px; margin-top:32px; } .hero-proof dd { font-size:10px; } .solution-grid { grid-template-columns:1fr; margin-top:38px; } .solution-grid article { min-height:0; padding:28px 0; } .solution-grid article:not(:last-child) { border-right:0; } .solution-grid article:hover { transform:none; } .tender-section::before { display:none; } .field-readout b { margin-left:0; } }
@media(prefers-reduced-motion:reduce) { .hero-bim-visual video { display:none; } .hero-bim-visual { background:url('assets/video/vbm-territorio-bim-reference-v01.png') center / cover no-repeat; } }
