/* ============================================================
   0) FUENTES — DM Sans + Manrope (autoalojadas, sin CDN)
   ============================================================ */

/* DM Sans 400 (latin-ext) */
@font-face { font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(vendor/fonts/dmsans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* DM Sans 400 (latin) */
@font-face { font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(vendor/fonts/dmsans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* DM Sans 500 (latin-ext) */
@font-face { font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(vendor/fonts/dmsans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* DM Sans 500 (latin) */
@font-face { font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(vendor/fonts/dmsans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* DM Sans 600 (latin-ext) */
@font-face { font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(vendor/fonts/dmsans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* DM Sans 600 (latin) */
@font-face { font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(vendor/fonts/dmsans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* DM Sans 700 (latin-ext) */
@font-face { font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(vendor/fonts/dmsans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* DM Sans 700 (latin) */
@font-face { font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(vendor/fonts/dmsans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Manrope 500 (latin-ext) */
@font-face { font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(vendor/fonts/manrope-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* Manrope 500 (latin) */
@font-face { font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(vendor/fonts/manrope-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Manrope 600 (latin-ext) */
@font-face { font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(vendor/fonts/manrope-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* Manrope 600 (latin) */
@font-face { font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(vendor/fonts/manrope-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Manrope 700 (latin-ext) */
@font-face { font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(vendor/fonts/manrope-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* Manrope 700 (latin) */
@font-face { font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(vendor/fonts/manrope-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Manrope 800 (latin-ext) */
@font-face { font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(vendor/fonts/manrope-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* Manrope 800 (latin) */
@font-face { font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(vendor/fonts/manrope-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }


/* ============================================================
   NEXTPYME · Hoja de estilos principal (style.css)
   Secciones: 0) Fuentes  ·  1) Base y sistema  ·  2) Capa visual
   ------------------------------------------------------------
   1) BASE Y SISTEMA  — variables, reset, layout, componentes
   ============================================================ */

:root {
    --ink: #171522;
    --ink-soft: #5f5b6b;
    --paper: #ffffff;
    --soft: #f6f5f8;
    --soft-warm: #f5f2ed;
    --dark: #12121d;
    --dark-2: #1d1b2b;
    --primary: #a6525c;
    --primary-dark: #7f3540;
    --primary-soft: #f1e1e3;
    --cyan: #39b9c7;
    --line: #e6e3ea;
    --success: #138b72;
    --radius-sm: 12px;
    --radius: 20px;
    --radius-lg: 32px;
    --shadow-sm: 0 12px 30px rgba(27, 22, 41, .07);
    --shadow: 0 24px 70px rgba(27, 22, 41, .12);
    --container: 1180px;
    --font-body: "DM Sans", system-ui, -apple-system, sans-serif;
    --font-display: "Manrope", var(--font-body);
    --bg-light: var(--soft);
    --text-dark: var(--ink);
    --text-body: var(--ink-soft);
    --text-muted: #777281;
    --secondary: var(--cyan);
    --border-radius: var(--radius-sm);
    --border-radius-lg: var(--radius);
    --shadow-lg: var(--shadow);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-body); line-height: 1.65; -webkit-font-smoothing: antialiased; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
#particles-canvas { display: none; }
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-display); letter-spacing: -.035em; line-height: 1.08; }
h1 { font-size: clamp(3.1rem, 6vw, 6.2rem); }
h2 { font-size: clamp(2.15rem, 4vw, 4.35rem); }
h3 { font-size: 1.35rem; }
p { color: var(--ink-soft); }
::selection { color: #fff; background: var(--primary); }
:focus-visible { outline: 3px solid rgba(57, 185, 199, .65); outline-offset: 4px; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section-soft { background: var(--soft); }
.section-dark { color: #fff; background: var(--dark); }
.section-dark p { color: rgba(255, 255, 255, .68); }
.skip-link { position: fixed; z-index: 1001; top: 12px; left: 12px; padding: 10px 16px; color: #fff; background: var(--dark); border-radius: 10px; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 20px; border: 1px solid transparent; border-radius: 999px; font-weight: 750; line-height: 1.2; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { color: #fff; background: linear-gradient(135deg, var(--primary), #bd6972); box-shadow: 0 12px 30px rgba(166, 82, 92, .25); }
.btn-primary:hover { box-shadow: 0 16px 38px rgba(166, 82, 92, .34); }
.btn-ghost, .btn-outline { color: var(--ink); background: #fff; border-color: var(--line); }
.btn-outline-white, .btn-white { color: #fff; background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .25); }
.btn-lg { min-height: 56px; padding: 15px 25px; }
.text-link { display: inline-flex; align-items: center; gap: 9px; color: var(--primary); font-weight: 800; }
.text-link i { transition: transform .2s ease; }
.text-link:hover i { transform: translateX(4px); }
.section-kicker, .section-subtitle { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 18px; color: var(--primary); font-size: .76rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.section-kicker::before, .section-subtitle::before { width: 28px; height: 2px; background: currentColor; content: ""; }
.section-heading { max-width: 760px; margin-bottom: 48px; }
.section-heading h2, .section-title { margin-bottom: 18px; }
.section-heading p { max-width: 680px; font-size: 1.08rem; }
.section-heading.compact { max-width: 610px; }

/* Header */
.site-header { position: sticky; z-index: 100; top: 0; height: 82px; background: rgba(255, 255, 255, .92); border-bottom: 1px solid rgba(23, 21, 34, .07); backdrop-filter: blur(18px); transition: box-shadow .2s ease, height .2s ease; }
.site-header.scrolled { box-shadow: 0 10px 35px rgba(24, 20, 35, .08); }
.nav-shell { display: flex; align-items: center; height: 100%; gap: 30px; }
.brand { flex: 0 0 auto; }
.brand img { width: 144px; max-height: 58px; object-fit: contain; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: 25px; margin-left: auto; }
.main-nav > a, .nav-service > a { position: relative; padding: 29px 0 27px; font-size: .92rem; font-weight: 720; }
.main-nav > a::after, .nav-service > a::after { position: absolute; right: 0; bottom: 21px; left: 0; height: 2px; background: var(--primary); transform: scaleX(0); content: ""; transition: transform .2s ease; }
.main-nav > a:hover::after, .main-nav > a.active::after, .nav-service:hover > a::after, .nav-service.active > a::after { transform: scaleX(1); }
.nav-service { position: relative; display: flex; align-items: center; gap: 6px; }
.service-menu-toggle { width: 24px; height: 30px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.service-menu-toggle i { font-size: .66rem; transition: transform .2s ease; }
.nav-service.menu-open .service-menu-toggle i { transform: rotate(180deg); }
.mega-menu { position: absolute; top: calc(100% - 4px); left: 50%; display: grid; grid-template-columns: .78fr 1.5fr; width: min(700px, 80vw); padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow); opacity: 0; visibility: hidden; transform: translate(-50%, 12px); transition: .2s ease; }
.nav-service:hover .mega-menu, .nav-service:focus-within .mega-menu, .nav-service.menu-open .mega-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.mega-intro { display: flex; flex-direction: column; align-items: flex-start; padding: 24px; color: #fff; background: linear-gradient(145deg, var(--dark), #28233c); border-radius: 16px; }
.mega-intro span { margin-bottom: 15px; color: #d5a0a6; font-size: .72rem; font-weight: 850; letter-spacing: .13em; }
.mega-intro strong { font-family: var(--font-display); font-size: 1.28rem; line-height: 1.25; }
.mega-intro a { margin-top: auto; color: #fff; font-size: .8rem; font-weight: 750; }
.mega-links { display: grid; grid-template-columns: 1fr 1fr; padding: 8px; gap: 4px; }
.mega-links a { display: flex; align-items: center; gap: 11px; padding: 11px 12px; border-radius: 11px; font-size: .86rem; font-weight: 700; }
.mega-links a:hover { color: var(--primary); background: var(--primary-soft); }
.mega-links i { width: 18px; color: var(--primary); text-align: center; }
.nav-actions { display: flex; align-items: center; gap: 14px; }
.nav-phone { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; font-size: .88rem; font-weight: 800; }
.nav-phone i { color: var(--primary); }
.btn-nav { min-height: 44px; padding-inline: 17px; font-size: .84rem; }
.nav-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 0; background: transparent; cursor: pointer; }
.nav-toggle span { display: block; width: 23px; height: 2px; margin: 5px auto; background: var(--ink); transition: .2s ease; }

/* Home hero */
.hero { position: relative; overflow: hidden; padding: 76px 0 0; background: radial-gradient(circle at 78% 18%, rgba(57, 185, 199, .13), transparent 28%), radial-gradient(circle at 14% 78%, rgba(166, 82, 92, .16), transparent 30%), var(--dark); }
.hero::before { position: absolute; inset: 0; opacity: .28; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 46px 46px; mask-image: linear-gradient(to bottom, #000, transparent 88%); content: ""; }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; gap: 52px; min-height: 660px; padding-bottom: 76px; }
.hero-copy { position: relative; z-index: 4; color: #fff; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 22px; color: #d5a0a6; font-size: .76rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow span { width: 32px; height: 2px; background: currentColor; }
.hero h1 { max-width: 680px; margin-bottom: 22px; font-size: clamp(3.25rem, 5.6vw, 5.8rem); }
.hero-lead { max-width: 590px; margin-bottom: 28px; color: rgba(255,255,255,.72); font-size: 1.1rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-bubbles { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 22px; }
.hero-bubbles span { padding: 7px 11px; color: rgba(255,255,255,.75); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 999px; font-size: .72rem; font-weight: 700; }
.hero-visual { min-width: 0; }
.diorama-map { position: relative; aspect-ratio: 4 / 3; background: #fff; border: 1px solid rgba(255,255,255,.16); border-radius: 28px; box-shadow: 0 34px 90px rgba(0,0,0,.36); transform: perspective(1100px) rotateY(-2deg) rotateX(1deg); }
.diorama-image { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.diorama-vignette { position: absolute; inset: 0; pointer-events: none; border-radius: inherit; box-shadow: inset 0 0 45px rgba(18,18,29,.12); }
.diorama-hotspot { position: absolute; z-index: 4; display: block; border-radius: 8px; outline: none; }
.hotspot-monitor { left: 36.8%; top: 24.1%; width: 18.5%; height: 16.8%; --bubble-x: 104%; --bubble-y: -58%; }
.hotspot-server { left: 67.2%; top: 20.8%; width: 12.8%; height: 27%; --bubble-x: -86%; --bubble-y: -60%; }
.hotspot-laptop { left: 61.5%; top: 47%; width: 19%; height: 15.5%; --bubble-x: -60%; --bubble-y: 105%; }
.hotspot-camera { left: 19.6%; top: 18.3%; width: 5.8%; height: 5.9%; --bubble-x: -120%; --bubble-y: -140%; }
.hotspot-board { left: 19.1%; top: 30.2%; width: 7.9%; height: 13.8%; --bubble-x: -135%; --bubble-y: -24%; }
.hotspot-software { left: 48.8%; top: 43.2%; width: 10.8%; height: 8.6%; --bubble-x: -20%; --bubble-y: -142%; }
.hotspot-sales { left: 55.6%; top: 36.5%; width: 9.2%; height: 12.6%; --bubble-x: 80%; --bubble-y: -30%; }
.hotspot-target { position: absolute; inset: 0; border: 1px solid transparent; border-radius: 8px; transition: .2s ease; }
.hotspot-target::after { position: absolute; top: 50%; left: 50%; width: 12px; height: 12px; background: var(--primary); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 8px rgba(166,82,92,.18); opacity: 0; transform: translate(-50%,-50%) scale(.6); content: ""; transition: .2s ease; }
.diorama-hotspot:hover .hotspot-target, .diorama-hotspot:focus .hotspot-target, .diorama-hotspot.active .hotspot-target { border-color: rgba(166,82,92,.65); box-shadow: 0 0 22px rgba(166,82,92,.28); }
.diorama-hotspot:hover .hotspot-target::after, .diorama-hotspot:focus .hotspot-target::after, .diorama-hotspot.active .hotspot-target::after { opacity: 1; transform: translate(-50%,-50%) scale(1); }
.hotspot-line { display: none; }
.hotspot-bubble { position: absolute; z-index: 8; top: var(--bubble-y); left: var(--bubble-x); display: grid; width: 210px; gap: 5px; padding: 14px; color: #fff; background: rgba(18,18,29,.95); border: 1px solid rgba(255,255,255,.12); border-radius: 13px; box-shadow: 0 16px 35px rgba(0,0,0,.28); opacity: 0; pointer-events: none; transform: translateY(8px) scale(.96); transition: .2s ease; }
.hotspot-bubble strong { font-family: var(--font-display); font-size: .98rem; }
.hotspot-bubble small { color: rgba(255,255,255,.68); line-height: 1.35; }
.hotspot-bubble em { color: #d5a0a6; font-size: .65rem; font-style: normal; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.diorama-hotspot:hover .hotspot-bubble, .diorama-hotspot:focus .hotspot-bubble, .diorama-hotspot.active .hotspot-bubble { opacity: 1; transform: translateY(0) scale(1); }
.mini-office { display: none !important; }
.signal-row { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 18px; padding: 20px 24px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 18px; }
.signal-row div { display: grid; gap: 1px; padding-inline: 18px; border-right: 1px solid rgba(255,255,255,.12); }
.signal-row div:last-child { border-right: 0; }
.signal-row strong { color: #fff; font-family: var(--font-display); font-size: 1.55rem; }
.signal-row span { color: rgba(255,255,255,.56); font-size: .7rem; }
.tech-strip { position: relative; z-index: 2; overflow: hidden; padding: 15px 0; color: rgba(255,255,255,.52); background: rgba(0,0,0,.18); border-top: 1px solid rgba(255,255,255,.08); }
.strip-track { display: flex; width: max-content; gap: 34px; animation: marquee 30s linear infinite; }
.strip-track span { position: relative; font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.strip-track span::before { position: absolute; top: 50%; left: -19px; width: 4px; height: 4px; background: var(--primary); border-radius: 50%; content: ""; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* Home sections */
.services, .about, .clients, .proof, .contact-band, .section, .content-section, .legal-content { padding: 110px 0; }
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.service-grid .service-card { position: relative; display: flex; flex-direction: column; min-height: 370px; padding: 18px; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); transform: perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.service-grid .service-card:hover { border-color: rgba(166,82,92,.32); box-shadow: var(--shadow); transform: perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateY(-5px); }
.service-grid .service-card img { width: 100%; height: 170px; margin-bottom: 18px; object-fit: cover; background: var(--soft); border-radius: 14px; }
.service-grid .service-card > span { color: var(--primary); font-size: .7rem; font-weight: 850; letter-spacing: .12em; }
.service-grid .service-card h3 { margin: 8px 0 10px; }
.service-grid .service-card p { margin-bottom: 20px; font-size: .91rem; line-height: 1.55; }
.service-grid .service-card > i { margin-top: auto; color: var(--primary); }
.service-grid .service-card-cta { justify-content: flex-end; color: #fff; background: linear-gradient(145deg, var(--primary), #82214f); border-color: transparent; }
.service-grid .service-card-cta p { color: rgba(255,255,255,.72); }
.service-grid .service-card-cta > span, .service-grid .service-card-cta > strong { color: #fff; }
.proof { position: relative; overflow: hidden; background: radial-gradient(circle at 78% 32%, rgba(57,185,199,.15), transparent 30%), var(--dark); }
.proof-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 80px; }
.proof-copy h2 { max-width: 580px; }
.ops-panel { padding: 26px; color: #fff; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius); box-shadow: var(--shadow); }
.ops-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.1); }
.ops-header span { color: rgba(255,255,255,.48); font-family: monospace; font-size: .8rem; }
.ops-lines { display: grid; gap: 10px; padding-top: 20px; }
.ops-lines p { display: flex; align-items: center; gap: 14px; margin: 0; padding: 13px 14px; color: rgba(255,255,255,.78); background: rgba(255,255,255,.04); border-radius: 10px; }
.ops-lines span { display: grid; place-items: center; width: 28px; height: 28px; color: #fff; background: var(--primary); border-radius: 50%; font-size: .7rem; font-weight: 800; }
.about { background: var(--soft-warm); }
.about-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: start; gap: 80px; }
.about-cards { display: grid; gap: 16px; }
.about-card { padding: 26px; background: rgba(255,255,255,.78); border: 1px solid rgba(23,21,34,.08); border-radius: var(--radius); }
.about-card strong { display: block; color: var(--primary); font-family: var(--font-display); font-size: 2rem; }
.about-card span { display: block; margin-bottom: 10px; color: var(--ink); font-weight: 750; }
.about-card p { margin: 0; }
.logo-slider { display: grid; grid-template-columns: 46px 1fr 46px; align-items: center; gap: 12px; }
.logo-window { overflow: hidden; }
.logo-track { display: flex; gap: 18px; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.logo-card { flex: 0 0 calc((100% - 54px) / 4); display: grid; place-items: center; min-height: 130px; padding: 20px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.logo-card img { max-width: 125px; max-height: 62px; object-fit: contain; filter: grayscale(1); opacity: .72; transition: .2s ease; }
.logo-card:hover img { filter: grayscale(0); opacity: 1; }
.slider-btn { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; background: #fff; border: 1px solid var(--line); border-radius: 50%; cursor: pointer; }
.testimonial-stage { position: relative; display: grid; grid-template-columns: 46px 1fr 46px; align-items: center; gap: 14px; max-width: 870px; margin: 42px auto 0; }
.testimonial-window { position: relative; min-height: 280px; }
.testimonial { position: absolute; inset: 0; display: grid; grid-template-columns: 90px 1fr; align-content: center; gap: 24px; padding: 36px; background: var(--dark); border-radius: var(--radius-lg); opacity: 0; pointer-events: none; transform: translateY(10px); transition: .35s ease; }
.testimonial.active { opacity: 1; pointer-events: auto; transform: none; }
.testimonial img { grid-row: 1 / span 3; width: 82px; height: 82px; padding: 12px; object-fit: contain; background: #fff; border-radius: 16px; }
.testimonial p { color: #fff; font-family: var(--font-display); font-size: 1.3rem; line-height: 1.4; }
.testimonial strong { color: #d5a0a6; }
.testimonial span { color: rgba(255,255,255,.55); }
.testimonial-dots { position: absolute; right: 82px; bottom: 22px; display: flex; gap: 7px; }
.testimonial-dots button { width: 8px; height: 8px; padding: 0; background: rgba(255,255,255,.3); border: 0; border-radius: 50%; }
.testimonial-dots button.active { width: 25px; background: var(--primary); border-radius: 99px; }
.contact-band { background: linear-gradient(135deg, #171522, #29223c); }
.contact-grid { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 70px; }
.contact-card { display: grid; gap: 10px; padding: 28px; background: #fff; border-radius: var(--radius); }
.contact-card > a:not(.btn) { display: flex; align-items: center; gap: 12px; padding: 10px; color: var(--ink); font-weight: 750; }
.contact-card > a i { color: var(--primary); }

/* Service pages */
.service-hero { position: relative; overflow: hidden; padding: 86px 0 76px; background: radial-gradient(circle at 88% 25%, rgba(166,82,92,.12), transparent 28%), var(--soft-warm); }
.service-hero-grid { display: grid; grid-template-columns: 1fr .82fr; align-items: center; gap: 75px; }
.service-hero h1 { max-width: 720px; margin: 0 0 24px; font-size: clamp(3rem, 5.5vw, 5.4rem); }
.service-hero p { max-width: 650px; font-size: 1.12rem; }
.service-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.service-pills span { padding: 8px 12px; color: var(--primary-dark); background: #fff; border: 1px solid rgba(166,82,92,.15); border-radius: 999px; font-size: .75rem; font-weight: 750; }
.service-hero-image { position: relative; }
.service-hero-image::before { position: absolute; inset: 8% -4% -4% 8%; background: var(--primary); border-radius: 32px; content: ""; transform: rotate(3deg); opacity: .12; }
.service-hero-image img { position: relative; width: 100%; aspect-ratio: 1 / .82; object-fit: cover; background: #fff; border: 1px solid var(--line); border-radius: 30px; box-shadow: var(--shadow); }
.service-detail { padding: 70px 0; }
.service-detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.service-detail-card { padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.service-detail-card strong { display: block; margin-bottom: 12px; font-family: var(--font-display); font-size: 1.32rem; }
.service-detail-card p { margin: 0; }
.service-scope, .service-method, .faq-section { padding: 100px 0; }
.scope-grid { display: grid; grid-template-columns: .92fr 1.08fr; align-items: center; gap: 85px; }
.scope-copy h2 { margin-bottom: 22px; font-size: clamp(2.3rem, 4vw, 4rem); }
.scope-copy p { margin-bottom: 24px; font-size: 1.04rem; }
.check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.check-grid > div { display: flex; align-items: center; gap: 12px; min-height: 62px; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: 13px; font-weight: 700; }
.check-grid i { display: grid; place-items: center; flex: 0 0 27px; width: 27px; height: 27px; color: #fff; background: var(--success); border-radius: 50%; font-size: .7rem; }
.method-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.method-step { position: relative; padding: 30px; border-top: 1px solid var(--line); }
.method-step > span { color: var(--primary); font-family: var(--font-display); font-size: .75rem; font-weight: 850; }
.method-step h3 { margin: 26px 0 12px; font-size: 1.55rem; }
.faq-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; }
.faq-list details { border-top: 1px solid #d9d5de; }
.faq-list details:last-child { border-bottom: 1px solid #d9d5de; }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; font-family: var(--font-display); font-size: 1.08rem; font-weight: 750; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list details[open] summary i { transform: rotate(45deg); }
.faq-list summary i { color: var(--primary); transition: transform .2s ease; }
.faq-list p { padding-right: 30px; padding-bottom: 22px; margin: -6px 0 0; }
.service-next { padding: 30px 0 100px; }
.service-next-panel { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 45px 50px; color: #fff; background: linear-gradient(135deg, var(--dark), #302542); border-radius: var(--radius-lg); }
.service-next-panel h2 { margin-bottom: 8px; font-size: clamp(2rem, 3.5vw, 3.2rem); }
.service-next-panel p { margin: 0; color: rgba(255,255,255,.66); }

/* Legacy/content pages */
.page-header { position: relative; overflow: hidden; padding: 95px 0 80px; color: #fff; background: radial-gradient(circle at 80% 20%, rgba(57,185,199,.18), transparent 28%), linear-gradient(135deg, var(--dark), #2b233b); }
.page-header::after { position: absolute; right: -90px; bottom: -160px; width: 390px; height: 390px; border: 1px solid rgba(255,255,255,.11); border-radius: 50%; content: ""; }
.page-header h1 { margin-bottom: 15px; font-size: clamp(3rem, 6vw, 5.4rem); }
.page-header p { max-width: 680px; color: rgba(255,255,255,.67); font-size: 1.08rem; }
.breadcrumb { display: flex; gap: 10px; color: rgba(255,255,255,.55); font-size: .82rem; }
.breadcrumb a { color: #fff; }
.content-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 75px; }
.content-text p { font-size: 1rem !important; line-height: 1.75 !important; }
.content-image img { width: 100%; border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.section-header { max-width: 760px; margin: 0 auto 48px; text-align: center; }
.section-title { font-size: clamp(2.2rem, 4vw, 4rem); }
.services-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.services-grid .service-card { padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.service-icon { color: var(--primary); }
.clients-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.client-logo { display: grid; place-items: center; min-height: 130px; padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.client-logo img { max-width: 140px; max-height: 66px; object-fit: contain; }
.cta-section { padding: 85px 0; color: #fff; background: linear-gradient(135deg, var(--primary-dark), var(--primary)); }
.cta-content { max-width: 800px; margin-inline: auto; text-align: center; }
.cta-content h2 { font-size: clamp(2.2rem, 4vw, 3.8rem); }
.cta-content p { color: rgba(255,255,255,.75); }
.cta-buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 25px; }
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.news-card { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }
.news-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.news-card-image { aspect-ratio: 1.55 / 1; overflow: hidden; background: var(--soft); }
.news-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.news-card:hover img { transform: scale(1.04); }
.news-card-content { padding: 25px; }
.news-card-date { color: var(--primary); font-size: .73rem; font-weight: 800; }
.news-card-title { margin: 13px 0 10px; font-size: 1.36rem; }
.news-card-excerpt { font-size: .9rem; }
.news-card-link { color: var(--primary); font-weight: 800; }
.legal-content { background: var(--soft); }
.legal-wrapper { max-width: 900px; margin-inline: auto; }
.legal-section { margin-bottom: 18px; padding: 30px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.legal-section h2 { margin-bottom: 16px; font-size: 1.55rem; letter-spacing: -.02em; }
.legal-section p, .legal-section li { color: var(--ink-soft); }
.legal-info-box { padding: 20px; background: var(--soft); border-radius: 14px; }
.legal-info-box ul { margin: 0; padding-left: 20px; }
.contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 60px; }
.contact-info { display: grid; gap: 14px; }
.contact-item { display: flex; gap: 16px; padding: 20px; background: #fff; border: 1px solid var(--line); border-radius: 15px; }
.contact-item i, .feature-icon { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; color: #fff; background: var(--primary); border-radius: 12px; }
.contact-form { padding: 38px !important; background: #fff !important; border: 1px solid var(--line); border-radius: var(--radius) !important; box-shadow: var(--shadow-sm) !important; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group { display: grid; gap: 7px; margin-bottom: 17px; }
.form-group label { font-size: .84rem; font-weight: 750; }
.form-group input, .form-group select, .form-group textarea { width: 100%; min-height: 50px; padding: 12px 14px; color: var(--ink); background: #fff; border: 1px solid #d8d5dd; border-radius: 11px; outline: 0; transition: border .2s ease, box-shadow .2s ease; }
.form-group textarea { min-height: 140px; resize: vertical; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 4px rgba(166,82,92,.1); }
.form-consent { display: flex; align-items: flex-start; gap: 10px; margin: 2px 0 20px; color: var(--ink-soft); font-size: .82rem; cursor: pointer; }
.form-consent input { margin-top: 5px; accent-color: var(--primary); }
.form-consent a { color: var(--primary); text-decoration: underline; }

/* Footer */
.site-footer { position: relative; padding: 78px 0 20px; color: #fff; background: #0e0e16; }
.footer-top { display: grid; grid-template-columns: 1.55fr .75fr .9fr 1fr; gap: 55px; }
.footer-logo { width: 150px; max-height: 64px; margin-bottom: 20px; object-fit: contain; }
.footer-brand-block p { max-width: 360px; color: rgba(255,255,255,.6); }
.footer-contact-quick { display: flex; flex-wrap: wrap; gap: 8px; color: #fff; font-size: .85rem; font-weight: 700; }
.footer-contact-quick span { color: rgba(255,255,255,.28); }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.footer-column h3 { margin-bottom: 12px; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; }
.footer-column a, .footer-column p { color: rgba(255,255,255,.6); font-size: .84rem; }
.footer-column a:hover { color: #fff; }
.footer-funding { display: flex; align-items: center; gap: 20px; margin-top: 52px; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.09); }
.footer-funding img { width: 170px; max-height: 54px; padding: 5px; object-fit: contain; background: #fff; border-radius: 6px; }
.footer-funding p { max-width: 900px; margin: 0; color: rgba(255,255,255,.4); font-size: .65rem; line-height: 1.45; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 18px; color: rgba(255,255,255,.42); border-top: 1px solid rgba(255,255,255,.09); font-size: .72rem; }
.footer-bottom div { display: flex; flex-wrap: wrap; gap: 18px; }
.footer-bottom button { padding: 0; color: inherit; background: 0; border: 0; cursor: pointer; }
.back-to-top { position: fixed; z-index: 90; right: 24px; bottom: 24px; display: grid; place-items: center; width: 44px; height: 44px; color: #fff; background: var(--primary); border: 0; border-radius: 50%; box-shadow: 0 12px 30px rgba(166,82,92,.3); opacity: 0; pointer-events: none; transform: translateY(10px); transition: .2s ease; }
.back-to-top.visible { opacity: 1; pointer-events: auto; transform: none; }

/* Cookie consent */
.cookie-banner { position: fixed; z-index: 500; right: 20px; bottom: 20px; left: 20px; display: flex; align-items: center; justify-content: space-between; gap: 26px; max-width: 980px; margin-inline: auto; padding: 20px 22px; color: #fff; background: rgba(18,18,29,.97); border: 1px solid rgba(255,255,255,.13); border-radius: 18px; box-shadow: 0 22px 70px rgba(0,0,0,.35); opacity: 0; transform: translateY(18px); transition: .25s ease; backdrop-filter: blur(18px); }
.cookie-banner.visible { opacity: 1; transform: none; }
.cookie-banner strong { font-family: var(--font-display); }
.cookie-banner p { margin: 4px 0 3px; color: rgba(255,255,255,.66); font-size: .82rem; line-height: 1.45; }
.cookie-banner a { color: #d5a0a6; font-size: .75rem; text-decoration: underline; }
.cookie-actions { display: flex; flex: 0 0 auto; gap: 9px; }
.cookie-actions .btn { min-height: 42px; padding: 10px 15px; font-size: .76rem; }

.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease var(--reveal-delay,0ms), transform .65s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms); }
.js .reveal.visible { opacity: 1; transform: none; }

@media (max-width: 1080px) {
    .main-nav { gap: 17px; }
    .nav-phone span { display: none; }
    .hero-grid { grid-template-columns: 1fr 1.15fr; gap: 34px; }
    .service-grid { grid-template-columns: repeat(3, 1fr); }
    .footer-top { grid-template-columns: 1.35fr 1fr 1fr; }
    .footer-column:last-child { grid-column: 2 / span 2; }
}

@media (max-width: 900px) {
    .site-header { height: 72px; }
    .brand img { width: 124px; }
    .nav-toggle { display: block; }
    .btn-nav, .nav-phone { display: none; }
    .main-nav { position: absolute; z-index: 99; top: 100%; right: 0; left: 0; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; width: 100%; height: calc(100vh - 72px); padding: 24px 22px 40px; overflow-y: auto; background: #fff; opacity: 0; visibility: hidden; transform: translateY(-10px); transition: .2s ease; }
    .nav-open .main-nav { opacity: 1; visibility: visible; transform: none; }
    .main-nav > a, .nav-service > a { display: block; padding: 15px 2px; font-size: 1.1rem; border-bottom: 1px solid var(--line); }
    .main-nav > a::after, .nav-service > a::after { display: none; }
    .nav-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
    .nav-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    .nav-service { display: grid; grid-template-columns: 1fr 42px; align-items: center; }
    .service-menu-toggle { width: 42px; height: 48px; }
    .mega-menu { position: static; grid-column: 1 / -1; display: none; grid-template-columns: 1fr; width: 100%; padding: 8px 0 12px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
    .nav-service.menu-open .mega-menu { display: grid; }
    .mega-intro { display: none; }
    .mega-links { grid-template-columns: 1fr 1fr; }
    .hero { padding-top: 58px; }
    .hero-grid { grid-template-columns: 1fr; min-height: 0; }
    .hero-copy { max-width: 720px; }
    .diorama-map { transform: none; }
    .service-grid { grid-template-columns: 1fr 1fr; }
    .proof-grid, .about-grid, .contact-grid, .service-hero-grid, .scope-grid, .faq-grid, .content-grid { grid-template-columns: 1fr; gap: 45px; }
    .service-hero-image { max-width: 650px; }
    .services-grid, .clients-grid { grid-template-columns: 1fr 1fr !important; }
    .news-grid { grid-template-columns: 1fr 1fr; }
    .footer-top { grid-template-columns: 1.3fr 1fr 1fr; gap: 36px; }
    .footer-brand-block { grid-column: 1 / -1; }
    .footer-column:last-child { grid-column: auto; }
}

@media (max-width: 640px) {
    .container { width: min(calc(100% - 28px), var(--container)); }
    .hero, .services, .about, .clients, .proof, .contact-band, .section, .content-section, .legal-content, .service-scope, .service-method, .faq-section { padding-top: 78px; padding-bottom: 78px; }
    .hero h1 { font-size: clamp(2.75rem, 14vw, 4.2rem); }
    .hero-bubbles span:nth-child(n+6) { display: none; }
    .diorama-map { border-radius: 20px; }
    .hotspot-bubble { display: none; }
    .signal-row { padding: 16px 8px; }
    .signal-row div { padding-inline: 8px; }
    .signal-row strong { font-size: 1.25rem; }
    .signal-row span { font-size: .58rem; line-height: 1.25; }
    .service-grid, .service-detail-grid, .method-grid, .news-grid, .services-grid, .clients-grid { grid-template-columns: 1fr !important; }
    .service-grid .service-card { min-height: 0; }
    .service-grid .service-card img { height: 210px; }
    .service-hero { padding: 65px 0; }
    .service-hero h1, .page-header h1 { font-size: clamp(2.65rem, 13vw, 4.2rem); }
    .check-grid { grid-template-columns: 1fr; }
    .service-next-panel { flex-direction: column; align-items: flex-start; padding: 32px 25px; }
    .logo-slider { grid-template-columns: 1fr; }
    .logo-slider > .slider-btn { display: none; }
    .logo-card { flex-basis: calc((100% - 18px) / 2); }
    .testimonial-stage { grid-template-columns: 1fr; }
    .testimonial-stage > .slider-btn { display: none; }
    .testimonial { grid-template-columns: 1fr; min-height: 330px; padding: 27px; }
    .testimonial img { grid-row: auto; width: 68px; height: 68px; }
    .testimonial p { font-size: 1.12rem; }
    .testimonial-dots { right: 28px; bottom: 20px; }
    .form-row { grid-template-columns: 1fr; gap: 0; }
    .contact-form { padding: 25px !important; }
    .legal-section { padding: 22px; }
    .footer-top { grid-template-columns: 1fr 1fr; }
    .footer-brand-block { grid-column: 1 / -1; }
    .footer-column:last-child { grid-column: 1 / -1; }
    .footer-funding { align-items: flex-start; flex-direction: column; }
    .footer-bottom { align-items: flex-start; flex-direction: column; }
    .cookie-banner { align-items: stretch; flex-direction: column; gap: 15px; }
    .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}


/* ============================================================
   2) CAPA VISUAL — overrides y estilos de la versión actual
   ============================================================ */

:root {
    --ink: #11182a;
    --ink-soft: #5d6471;
    --paper: #fffdf9;
    --soft: #f3efe7;
    --soft-warm: #eae3d7;
    --dark: #111827;
    --dark-2: #192238;
    --primary: #a6525c;
    --primary-dark: #7f3540;
    --primary-soft: #f1e1e3;
    --primary-on-dark: #c47f87;
    --cyan: #88a9a5;
    --line: #d7d0c5;
    --gold: #d2aa62;
    --font-body: "DM Sans", system-ui, sans-serif;
    --font-display: "Manrope", var(--font-body);
    --radius-sm: 6px;
    --radius: 10px;
    --radius-lg: 18px;
    --shadow-sm: 0 10px 30px rgba(17, 24, 39, .06);
    --shadow: 0 28px 80px rgba(17, 24, 39, .16);
}

body { background: var(--paper); }
h1, h2, h3 { letter-spacing: -.055em; }
.container { width: min(calc(100% - 56px), 1240px); }
.section-kicker, .section-subtitle, .v2-overline, .v2-section-number { letter-spacing: .17em; }
.btn { border-radius: 4px; }
.btn-primary { background: var(--primary); box-shadow: none; }
.btn-primary:hover { background: #eb3d83; box-shadow: none; }
.text-link { color: var(--primary-dark); }

/* Navigation: precise, architectural, quiet */
.site-header { height: 88px; background: rgba(255, 253, 249, .96); border-bottom: 1px solid rgba(17, 24, 42, .13); backdrop-filter: blur(20px); }
.site-header.scrolled { box-shadow: 0 8px 30px rgba(17, 24, 42, .06); }
.nav-shell { gap: 40px; }
.brand img { width: 138px; }
.main-nav { gap: 32px; }
.main-nav > a, .nav-service > a { padding-block: 32px 29px; font-size: .84rem; font-weight: 700; letter-spacing: .015em; }
.main-nav > a::after, .nav-service > a::after { bottom: 24px; height: 1px; background: var(--ink); }
.nav-phone { font-size: .82rem; }
.nav-phone i { color: var(--primary); }
.btn-nav { min-height: 42px; padding: 11px 17px; border-radius: 3px; font-size: .78rem; }
.nav-phone, .btn-nav { flex-shrink: 0; }
.mega-menu { padding: 0; overflow: hidden; border-color: rgba(17,24,42,.15); border-radius: 8px; }
.mega-intro { padding: 30px; background: var(--dark); border-radius: 0; }
.mega-intro span { color: #f57cad; }
.mega-links { padding: 14px; }
.mega-links a { border-radius: 4px; }

/* Prevent the legacy homepage flashing while the new experience is composed */
.js .home-page-v2:not(.home-ready) > main { visibility: hidden; }

/* New homepage */
.v2-hero { position: relative; min-height: calc(100vh - 88px); overflow: hidden; color: #fff; background: var(--dark); }
.v2-hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.v2-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,15,28,.98) 0%, rgba(9,15,28,.9) 28%, rgba(9,15,28,.38) 62%, rgba(9,15,28,.08) 100%), linear-gradient(0deg, rgba(9,15,28,.58), transparent 45%); }
.v2-hero-content { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr .42fr; align-items: end; gap: 50px; min-height: calc(100vh - 160px); padding-top: 100px; padding-bottom: 84px; }
.v2-hero-copy { max-width: 830px; }
.v2-overline, .v2-section-number { display: block; margin-bottom: 26px; color: var(--primary); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.v2-hero h1 { max-width: 920px; margin-bottom: 26px; font-size: clamp(3.8rem, 7vw, 7.4rem); line-height: .98; }
.v2-hero h1 em { color: #fff; font-style: normal; font-weight: 500; }
.v2-hero-copy > p { max-width: 620px; margin-bottom: 34px; color: rgba(255,255,255,.72); font-size: clamp(1rem, 1.5vw, 1.18rem); }
.v2-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.v2-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 15px 22px; border: 1px solid transparent; border-radius: 3px; font-size: .84rem; font-weight: 800; transition: .2s ease; }
.v2-button:hover { transform: translateY(-2px); }
.v2-button-primary { color: #fff; background: var(--primary); }
.v2-button-primary:hover { background: #91434d; }
.v2-button-light { color: #fff; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.35); backdrop-filter: blur(10px); }
.v2-button-light:hover { color: var(--ink); background: #fff; }
.v2-hero-note { align-self: end; max-width: 270px; margin-left: auto; padding: 22px 0 22px 24px; border-left: 1px solid rgba(255,255,255,.35); }
.v2-hero-note > span { color: #f278ab; font-size: .68rem; font-weight: 800; }
.v2-hero-note p { margin: 13px 0 0; color: rgba(255,255,255,.68); font-size: .9rem; }
.v2-hero-note strong { color: #fff; font-weight: 700; }
.v2-trust-row { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; min-height: 72px; color: rgba(255,255,255,.58); border-top: 1px solid rgba(255,255,255,.2); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.v2-trust-row span + span::before { margin-right: 38px; color: var(--primary); content: "âœ¦"; }

.v2-intro { padding: 145px 0; background: var(--paper); }
.v2-intro-grid { display: grid; grid-template-columns: .25fr 1fr; align-items: start; gap: 50px; }
.v2-section-number { color: var(--primary-dark); }
.v2-intro h2 { max-width: 970px; margin-bottom: 30px; font-size: clamp(3rem, 6.2vw, 6.7rem); line-height: 1.02; }
.v2-intro h2 span { color: #a49d91; font-weight: 500; }
.v2-intro p { max-width: 650px; margin-left: auto; font-size: 1.1rem; }

.v2-services-section { padding: 125px 0; color: #fff; background: var(--dark); }
.v2-section-head { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 60px; margin-bottom: 58px; }
.v2-section-head h2 { margin: 0; font-size: clamp(3rem, 5.5vw, 5.6rem); }
.v2-section-head > p { max-width: 480px; margin: 0 0 10px auto; color: rgba(255,255,255,.58); }
.v2-bento { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(150px, auto); gap: 12px; }
.v2-service { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 270px; padding: 30px; overflow: hidden; color: #fff; background: #1a2336; border: 1px solid rgba(255,255,255,.1); border-radius: 5px; transition: transform .25s ease, border-color .25s ease, background .25s ease; }
.v2-service:hover { z-index: 2; border-color: rgba(255,255,255,.35); transform: translateY(-4px); }
.v2-service-main { grid-column: span 7; grid-row: span 2; min-height: 520px; background: #202b42; }
.v2-service-web { grid-column: span 5; min-height: 330px; color: #fff; background: var(--primary); border-color: transparent; }
.v2-service-code { grid-column: span 5; min-height: 330px; background: #e9e2d8; color: var(--ink); }
.v2-service-small { grid-column: span 3; min-height: 230px; }
.v2-service-last { grid-column: span 3; background: #263148; }
.v2-service-top { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; color: rgba(255,255,255,.56); font-size: .68rem; }
.v2-service-code .v2-service-top { color: var(--ink-soft); }
.v2-service h3 { position: relative; z-index: 2; max-width: 520px; margin: 8px 0 12px; font-size: clamp(1.7rem, 3.1vw, 3.2rem); }
.v2-service-small h3 { font-size: 1.45rem; }
.v2-service p { position: relative; z-index: 2; max-width: 480px; margin-bottom: 0; color: rgba(255,255,255,.62); }
.v2-service-code p { color: var(--ink-soft); }
.v2-service-label { color: #f47cab !important; font-size: .67rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.v2-service-web .v2-service-label { color: rgba(255,255,255,.75) !important; }
.v2-status-board { position: absolute; right: 34px; bottom: 34px; width: 250px; padding: 20px; background: rgba(9,15,28,.75); border: 1px solid rgba(255,255,255,.15); box-shadow: 0 20px 50px rgba(0,0,0,.25); backdrop-filter: blur(12px); }
.v2-status-board .online { display: inline-block; width: 8px; height: 8px; margin-right: 8px; background: #61d19a; border-radius: 50%; box-shadow: 0 0 0 5px rgba(97,209,154,.12); }
.v2-status-board b { font-size: .76rem; }
.v2-status-board small { display: block; margin: 8px 0 20px; color: rgba(255,255,255,.45); }
.v2-status-board div { display: flex; align-items: end; height: 46px; gap: 7px; }
.v2-status-board i { flex: 1; height: 30%; background: var(--primary); }
.v2-status-board i:nth-child(2) { height: 58%; }.v2-status-board i:nth-child(3) { height: 42%; }.v2-status-board i:nth-child(4) { height: 82%; }.v2-status-board i:nth-child(5) { height: 68%; }
.v2-browser-art { position: absolute; right: -30px; bottom: -34px; width: 260px; height: 170px; padding: 16px; color: var(--primary); background: #fffaf3; box-shadow: 0 24px 50px rgba(116,13,56,.3); transform: rotate(-4deg); }
.v2-browser-art span { display: inline-block; width: 6px; height: 6px; margin-right: 3px; background: var(--primary); border-radius: 50%; }
.v2-browser-art strong { display: block; margin-top: 38px; font-size: 1.8rem; letter-spacing: -.08em; }
.v2-service-code code { position: absolute; right: 25px; bottom: 28px; padding: 12px 15px; color: #fff; background: var(--dark); font-size: .78rem; }
.v2-service-code code span { color: #f278ab; }

.v2-partner { padding: 140px 0; background: var(--soft); }
.v2-partner-grid { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 100px; }
.v2-partner-visual .v2-section-number { margin-bottom: 42px; }
.v2-diorama-wrap { position: relative; padding: 42px; background: #fff; border: 1px solid var(--line); }
.v2-diorama-wrap::before { position: absolute; inset: 14px; border: 1px solid #e8e1d7; content: ""; }
.v2-diorama-wrap img { position: relative; z-index: 1; }
.v2-diorama-wrap > span { position: absolute; z-index: 2; right: -32px; bottom: 28px; padding: 18px 22px; color: #fff; background: var(--primary); font-size: .78rem; font-weight: 800; line-height: 1.35; }
.v2-partner-copy .v2-overline { margin-bottom: 22px; }
.v2-partner-copy h2 { margin-bottom: 28px; font-size: clamp(2.8rem, 4.8vw, 5rem); }
.v2-partner-copy > p { font-size: 1.06rem; }
.v2-partner-copy ul { margin: 36px 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.v2-partner-copy li { display: flex; gap: 22px; padding: 17px 0; border-bottom: 1px solid var(--line); font-weight: 700; }
.v2-partner-copy li span { color: var(--primary); font-size: .7rem; }
.v2-text-link { display: inline-flex; align-items: center; gap: 12px; color: var(--primary-dark); font-weight: 800; border-bottom: 1px solid currentColor; }

.v2-method-section { padding: 125px 0; background: var(--paper); }
.v2-method-section .v2-section-head { color: var(--ink); }
.v2-method-section .v2-section-head > p { color: var(--ink-soft); }
.v2-method-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.v2-method-grid article { min-height: 260px; padding: 28px; border-right: 1px solid var(--line); }
.v2-method-grid article:last-child { border-right: 0; }
.v2-method-grid article > span { color: var(--primary); font-size: .68rem; font-weight: 800; }
.v2-method-grid h3 { margin-top: 68px; font-size: 1.55rem; }
.v2-method-grid p { font-size: .9rem; }

.v2-proof { padding: 120px 0; color: #fff; background: var(--primary); }
.v2-proof .v2-section-number { color: rgba(255,255,255,.65); }
.v2-logos { display: grid; grid-template-columns: repeat(5, 1fr); margin: 42px 0 95px; border-top: 1px solid rgba(255,255,255,.35); border-bottom: 1px solid rgba(255,255,255,.35); }
.v2-logos img { width: 100%; height: 115px; padding: 26px; object-fit: contain; filter: brightness(0) invert(1); opacity: .72; border-right: 1px solid rgba(255,255,255,.25); }
.v2-logos img:last-child { border-right: 0; }
.v2-proof blockquote { max-width: 1000px; margin: 0; }
.v2-proof blockquote > p { color: #fff; font-family: var(--font-display); font-size: clamp(2.2rem, 4.6vw, 4.6rem); font-weight: 600; letter-spacing: -.055em; line-height: 1.1; }
.v2-proof blockquote footer { display: flex; gap: 14px; color: rgba(255,255,255,.68); font-size: .8rem; }
.v2-proof blockquote footer strong { color: #fff; }

.v2-closing { padding: 130px 0; color: #fff; background: var(--dark); }
.v2-closing-grid { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 80px; }
.v2-closing h2 { max-width: 830px; margin: 0; font-size: clamp(3.2rem, 6vw, 6.4rem); }
.v2-closing p { color: rgba(255,255,255,.58); }
.v2-phone { display: block; width: max-content; margin-top: 22px; color: #fff; font-size: 1.05rem; font-weight: 800; border-bottom: 1px solid rgba(255,255,255,.4); }

/* Interior pages inherit the same editorial system */
.page-header { padding: 115px 0 100px; color: var(--ink); background: var(--soft); border-bottom: 1px solid var(--line); }
.page-header::after { right: 5%; bottom: -240px; width: 500px; height: 500px; border-color: rgba(17,24,42,.13); }
.page-header h1 { max-width: 1050px; font-size: clamp(3.6rem, 7vw, 7rem); }
.page-header p { color: var(--ink-soft); }
.breadcrumb { color: var(--ink-soft); }
.breadcrumb a { color: var(--ink); }
.service-hero { padding: 110px 0; background: var(--soft); border-bottom: 1px solid var(--line); }
.service-hero-grid { grid-template-columns: 1.08fr .92fr; }
.service-hero h1 { font-size: clamp(3.5rem, 6.5vw, 6.6rem); }
.service-hero-image::before { background: var(--gold); border-radius: 0; }
.service-hero-image img { border-radius: 0; box-shadow: 24px 28px 0 #ded5c8; }
.diorama-float-prototype .service-hero { overflow: hidden; isolation: isolate; }
.diorama-float-prototype .service-hero-grid { grid-template-columns: minmax(0, .82fr) minmax(430px, 1.18fr); gap: 28px; }
.diorama-float-prototype .service-hero-image { position: relative; isolation: isolate; transform: translateX(3%); }
.diorama-float-prototype .service-hero-image::before { display: none; content: none; }
.diorama-float-prototype .service-hero-image::after { position: absolute; z-index: -1; right: 3%; bottom: 2%; left: 8%; height: 14%; background: radial-gradient(ellipse, rgba(17,24,42,.2), transparent 68%); content: ""; filter: blur(16px); transform: translateY(22px); }
.diorama-float-prototype .service-hero-image img { width: 112%; max-width: none; margin-left: -6%; background: transparent !important; filter: drop-shadow(0 25px 22px rgba(17,24,42,.16)) saturate(.96) contrast(1.02); border: 0; box-shadow: none; transform: translateY(-3px) scale(var(--diorama-scale, 1)); transform-origin: center; }
.service-pills span { color: var(--ink); background: transparent; border-color: #bdb5a9; border-radius: 2px; }
.service-detail-card, .legal-section, .news-card, .contact-form, .contact-item { border-radius: 4px !important; box-shadow: none !important; }
.service-detail-card { border-top: 3px solid var(--primary); }
.service-scope.section-soft, .faq-section.section-soft, .legal-content { background: var(--soft); }
.check-grid > div { border-radius: 3px; }
.method-step { border-top-color: var(--ink); }
.service-next-panel { border-radius: 5px; background: var(--dark); }
.news-card-image { background: #e8e1d7; }
.news-card-date, .news-card-link { color: var(--primary-dark); }
.cta-section { background: var(--primary); }

.site-footer { background: #0b1220; border-top: 5px solid var(--primary); }
.footer-top { padding-top: 12px; }
.footer-column h3 { color: #fff; }
.footer-social { display: flex; gap: 12px; margin-top: 20px; }
.footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .16); color: rgba(255, 255, 255, .72); font-size: 1rem; transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease; }
.footer-social a:hover, .footer-social a:focus-visible { color: #fff; border-color: transparent; background: var(--primary); transform: translateY(-2px); }
.footer-funding img { border-radius: 2px; }
.cookie-banner { border-radius: 4px; }

@media (max-width: 1000px) {
    .v2-hero-content { grid-template-columns: 1fr; }
    .v2-hero-note { display: none; }
    .v2-service-main { grid-column: span 12; }
    .v2-service-web, .v2-service-code { grid-column: span 6; }
    .v2-service-small { grid-column: span 6; }
    .v2-partner-grid, .v2-closing-grid { grid-template-columns: 1fr; gap: 60px; }
    .v2-method-grid { grid-template-columns: 1fr 1fr; }
    .v2-method-grid article:nth-child(2) { border-right: 0; }
    .v2-method-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 1180px) and (min-width: 901px) {
    .nav-shell { gap: 22px; }
    .main-nav { gap: 21px; }
    .brand img { width: 122px; }
    .btn-nav { padding-inline: 13px; }
}

@media (max-width: 900px) {
    .site-header { height: 72px; }
    .main-nav { top: 100%; }
    .main-nav > a, .nav-service > a { padding: 16px 2px; }
    .v2-hero { min-height: calc(100vh - 72px); }
    .v2-hero-media { object-position: 62% center; }
    .v2-hero-shade { background: linear-gradient(90deg, rgba(9,15,28,.97), rgba(9,15,28,.6)), linear-gradient(0deg, rgba(9,15,28,.65), transparent); }
    .v2-hero-content { min-height: calc(100vh - 145px); padding-top: 70px; }
    .v2-intro-grid { grid-template-columns: 1fr; gap: 20px; }
    .v2-section-head { grid-template-columns: 1fr; gap: 25px; }
    .v2-section-head > p { margin-left: 0; }
    .service-hero-grid { grid-template-columns: 1fr; }
    .diorama-float-prototype .service-hero-grid { grid-template-columns: 1fr; gap: 34px; }
    .diorama-float-prototype .service-hero-image { transform: none; }
}

@media (max-width: 640px) {
    .container { width: min(calc(100% - 32px), 1240px); }
    .v2-hero-media { object-position: 69% center; }
    .v2-hero-shade { background: linear-gradient(90deg, rgba(9,15,28,.97), rgba(9,15,28,.72)), linear-gradient(0deg, rgba(9,15,28,.8), transparent); }
    .v2-hero-content { align-items: end; padding-top: 54px; padding-bottom: 42px; }
    .v2-hero h1 { font-size: clamp(3.2rem, 15vw, 5.1rem); }
    .v2-hero-copy > p { font-size: .97rem; }
    .v2-actions { display: grid; }
    .v2-button { width: 100%; }
    .v2-trust-row { flex-direction: column; align-items: flex-start; justify-content: center; gap: 11px; min-height: 112px; padding-block: 19px; white-space: normal; }
    .v2-trust-row span { margin-right: 0; }
    .v2-trust-row span + span::before { margin-right: 12px; }
    .mega-links { grid-template-columns: 1fr; padding: 6px 0 10px; }
    .mega-links a { min-width: 0; padding: 10px 4px; }
    .nav-service:hover .mega-menu,
    .nav-service:focus-within .mega-menu,
    .nav-service.menu-open .mega-menu { transform: none; }
    .v2-intro, .v2-services-section, .v2-partner, .v2-method-section, .v2-proof, .v2-closing { padding: 88px 0; }
    .v2-intro h2 { font-size: clamp(2.8rem, 13vw, 4.2rem); }
    .v2-service-main, .v2-service-web, .v2-service-code, .v2-service-small { grid-column: span 12; min-height: 280px; }
    .v2-service-main { min-height: 430px; }
    .v2-status-board { right: 22px; bottom: 22px; width: calc(100% - 44px); }
    .v2-browser-art { width: 210px; height: 125px; }
    .v2-partner-grid { gap: 55px; }
    .v2-diorama-wrap { padding: 20px; }
    .v2-diorama-wrap > span { right: -4px; bottom: -24px; }
    .v2-method-grid { grid-template-columns: 1fr; }
    .v2-method-grid article { min-height: 220px; border-right: 0; border-bottom: 1px solid var(--line); }
    .v2-method-grid h3 { margin-top: 48px; }
    .v2-logos { grid-template-columns: repeat(2, 1fr); margin-bottom: 65px; }
    .v2-logos img { border-bottom: 1px solid rgba(255,255,255,.25); }
    .v2-logos img:last-child { grid-column: 1 / -1; }
    .v2-closing h2 { font-size: clamp(3rem, 13vw, 4.6rem); }
    .page-header { padding: 80px 0 70px; }
    .page-header h1, .service-hero h1 { font-size: clamp(3rem, 13vw, 4.8rem); }
    .diorama-float-prototype .service-hero-image img { width: 108%; margin-left: -4%; }
}

/* V3 editorial system for company, contact and secondary pages */
.editorial-page-v3 .page-header { position: relative; overflow: hidden; padding: 120px 0 105px; background: var(--soft); border-bottom: 1px solid var(--line); }
.editorial-page-v3 .page-header::after { position: absolute; right: 5%; bottom: -42%; width: 42vw; aspect-ratio: 1; border: 1px solid rgba(17,24,42,.12); border-radius: 50%; content: ""; }
.editorial-page-v3 .page-header .container { position: relative; z-index: 1; }
.editorial-page-v3 .page-header h1 { max-width: 1000px; font-size: clamp(4rem, 8vw, 8rem); line-height: .94; }
.editorial-page-v3 .page-header p { max-width: 700px; font-size: 1.1rem; }

.about-v3-hero { padding: 96px 0 110px; overflow: hidden; color: #fff; background: var(--dark); }
.about-v3-grid { display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 80px; }
.about-v3-copy h1 { margin-bottom: 30px; font-size: clamp(4.2rem, 7.3vw, 7.7rem); line-height: .94; }
.about-v3-copy h1 em { color: #aca99f; font-style: normal; font-weight: 500; }
.about-v3-copy > p { max-width: 610px; margin-bottom: 36px; color: rgba(255,255,255,.65); font-size: 1.08rem; }
.about-v3-visual { position: relative; }
.about-v3-visual::before { position: absolute; top: -18px; right: -18px; bottom: 18px; left: 18px; border: 1px solid rgba(255,255,255,.18); content: ""; }
.about-v3-visual img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: saturate(.78) contrast(1.04); }
.about-v3-stamp { position: absolute; z-index: 2; right: -26px; bottom: -28px; display: flex; align-items: center; gap: 13px; width: 185px; height: 185px; padding: 26px; color: var(--ink); background: var(--primary); border-radius: 50%; transform: rotate(-7deg); }
.about-v3-stamp strong { font-family: var(--font-display); font-size: 2.65rem; line-height: 1; }
.about-v3-stamp span { font-size: .7rem; font-weight: 800; line-height: 1.35; text-transform: uppercase; }

.about-v3-manifesto { padding: 150px 0; background: var(--paper); }
.about-v3-manifesto-grid { display: grid; grid-template-columns: .25fr 1fr; gap: 56px; }
.about-v3-manifesto h2 { max-width: 980px; margin-bottom: 38px; font-size: clamp(3.2rem, 6.4vw, 6.7rem); line-height: 1; }
.about-v3-manifesto h2 span { color: #aaa398; font-weight: 500; }
.about-v3-manifesto p { max-width: 650px; margin-left: auto; font-size: 1.08rem; }
.about-v3-history { padding: 125px 0; color: var(--ink); background: var(--soft); }
.about-v3-history-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 75px; }
.about-v3-history header { position: sticky; top: 130px; align-self: start; }
.about-v3-history h2 { max-width: 450px; font-size: clamp(2.8rem, 3.8vw, 3.85rem); line-height: 1; }
.about-v3-timeline { border-top: 1px solid var(--line); }
.about-v3-timeline article { display: grid; grid-template-columns: 115px 1fr; gap: 34px; padding: 34px 0 38px; border-bottom: 1px solid var(--line); }
.about-v3-timeline article > span { padding-top: 5px; color: var(--primary-dark); font-size: .67rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.about-v3-timeline h3 { max-width: 620px; margin-bottom: 13px; font-size: clamp(1.35rem, 2.1vw, 2rem); line-height: 1.08; letter-spacing: -.04em; }
.about-v3-timeline p { max-width: 660px; color: var(--ink-soft); font-size: .94rem; }
.about-v3-facts { padding: 105px 0; background: var(--paper); }
.about-v3-fact-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.about-v3-fact-grid article { min-height: 330px; padding: 42px 38px; border-right: 1px solid var(--line); }
.about-v3-fact-grid article:last-child { border-right: 0; }
.about-v3-fact-grid span { display: block; margin-bottom: 64px; color: var(--primary); font-family: var(--font-display); font-size: clamp(2.8rem, 5vw, 5.2rem); font-weight: 700; letter-spacing: -.06em; }
.about-v3-fact-grid h3 { margin-bottom: 14px; font-size: 1.35rem; }
.about-v3-values { padding: 130px 0; color: #fff; background: var(--dark); }
.about-v3-values .v2-section-head > p { color: rgba(255,255,255,.56); }
.about-v3-value-grid { --active-step: 0; position: relative; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.about-v3-value-grid::before { position: absolute; z-index: 3; top: -2px; left: 0; width: 25%; height: 3px; background: var(--primary); content: ""; transform: translateX(calc(var(--active-step) * 100%)); transition: transform .48s cubic-bezier(.2,.8,.2,1); }
.about-v3-value-grid article { position: relative; min-height: 350px; padding: 32px 28px; border-right: 1px solid rgba(255,255,255,.18); cursor: default; opacity: .48; transition: opacity .28s ease, background .28s ease, transform .28s ease; }
.about-v3-value-grid article:last-child { border-right: 0; }
.about-v3-value-grid article.active { opacity: 1; background: linear-gradient(180deg, rgba(166,82,92,.16), transparent 76%); transform: translateY(-3px); }
.js .about-v3-value-grid article.reveal.visible { opacity: .48; transform: none; }
.js .about-v3-value-grid article.reveal.visible.active { opacity: 1; transform: translateY(-3px); }
.about-v3-value-grid article:focus-visible { outline: 1px solid var(--primary); outline-offset: -6px; }
.about-v3-value-grid i { color: var(--primary); font-size: 1.5rem; transition: transform .28s ease, filter .28s ease; }
.about-v3-value-grid article.active i { filter: drop-shadow(0 0 12px rgba(166,82,92,.42)); transform: scale(1.12); }
.about-v3-value-grid span { position: absolute; top: 32px; right: 28px; color: rgba(255,255,255,.36); font-size: .7rem; }
.about-v3-value-grid h3 { margin-top: 145px; margin-bottom: 18px; font-size: 1.75rem; transition: color .28s ease, transform .28s ease; }
.about-v3-value-grid article.active h3 { color: #fff; transform: translateX(4px); }
.about-v3-value-grid p { color: rgba(255,255,255,.58); }
.about-v3-proof { padding: 130px 0; background: var(--soft-warm); }
.about-v3-proof-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 80px; }
.about-v3-proof h2 { max-width: 560px; font-size: clamp(2.8rem, 5vw, 5rem); line-height: 1.02; }
.about-v3-logo-wall { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.about-v3-logo-wall img { width: 100%; height: 150px; padding: 38px; object-fit: contain; filter: grayscale(1); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: .25s ease; }
.about-v3-logo-wall img:hover { filter: grayscale(0); background: #fff; }
.about-v3-closing { color: var(--ink); background: var(--paper); border-top: 1px solid var(--line); }
.about-v3-closing p { color: var(--ink-soft); }

.contact-v3-hero { padding: 120px 0 115px; color: #fff; background: var(--dark); }
.contact-v3-hero-grid { display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 90px; }
.contact-v3-hero h1 { font-size: clamp(4.5rem, 8.2vw, 8.6rem); line-height: .92; }
.contact-v3-hero h1 em { color: #aaa79e; font-style: normal; font-weight: 500; }
.contact-v3-intro { padding-bottom: 12px; }
.contact-v3-intro p { margin-bottom: 30px; color: rgba(255,255,255,.66); font-size: 1.13rem; }
.contact-v3-intro span { color: #fff; font-size: .8rem; font-weight: 700; }
.contact-v3-intro i { margin-right: 8px; color: var(--primary); }
.contact-v3-main { padding: 130px 0; background: var(--paper); }
.contact-v3-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 100px; }
.contact-v3-details h2 { margin-bottom: 18px; font-size: clamp(2.8rem, 4.5vw, 4.7rem); line-height: 1; }
.contact-v3-details > p { max-width: 460px; margin-bottom: 44px; }
.contact-v3-channel { display: flex; align-items: center; gap: 18px; padding: 23px 0; color: var(--ink); border-top: 1px solid var(--line); }
.contact-v3-channel:hover strong { color: var(--primary-dark); }
.contact-v3-channel > i { display: grid; place-items: center; width: 44px; height: 44px; color: #fff; background: var(--primary); border-radius: 50%; }
.contact-v3-channel span { display: grid; gap: 2px; }
.contact-v3-channel small, .contact-v3-address small { color: var(--ink-soft); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.contact-v3-channel strong { font-size: 1.05rem; }
.contact-v3-address { padding: 30px; margin-top: 30px; background: var(--soft); border-left: 3px solid var(--primary); }
.contact-v3-address strong { display: block; margin: 12px 0; }
.contact-v3-address p { margin-bottom: 18px; font-size: .9rem; }
.contact-v3-address a { color: var(--primary-dark); font-size: .82rem; font-weight: 800; }
.contact-v3-form-wrap { padding: 48px; background: #fff; border: 1px solid var(--line); }
.contact-form-v3 { display: grid; gap: 22px; }
.contact-form-v3 .form-row { gap: 18px; }
.contact-form-v3 .form-group { margin: 0; }
.contact-form-v3 label:not(.contact-v3-privacy) { display: block; margin-bottom: 9px; color: var(--ink); font-size: .75rem; font-weight: 800; letter-spacing: .035em; }
.contact-form-v3 input, .contact-form-v3 select, .contact-form-v3 textarea { width: 100%; padding: 15px 0; background: transparent; border: 0; border-bottom: 1px solid #aaa69f; border-radius: 0; box-shadow: none; }
.contact-form-v3 input:focus, .contact-form-v3 select:focus, .contact-form-v3 textarea:focus { border-color: var(--primary); outline: 0; box-shadow: 0 1px 0 var(--primary); }
.contact-form-v3 textarea { min-height: 130px; resize: vertical; }
.contact-v3-privacy { display: flex; align-items: flex-start; gap: 10px; color: var(--ink-soft); font-size: .78rem; }
.contact-v3-privacy input { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 2px; accent-color: var(--primary); }
.contact-v3-privacy a { color: var(--primary-dark); text-decoration: underline; }
.contact-v3-submit { justify-self: start; min-width: 210px; }
.contact-v3-note { margin: 0; color: var(--ink-soft); font-size: .78rem; }
.contact-v3-note i { margin-right: 7px; color: var(--primary); }
.contact-v3-reassurance { color: #fff; background: var(--primary); }
.contact-v3-reassurance .container { display: grid; grid-template-columns: repeat(4, 1fr); }
.contact-v3-reassurance span { padding: 28px 16px; font-size: .73rem; font-weight: 800; letter-spacing: .09em; text-align: center; text-transform: uppercase; border-right: 1px solid rgba(255,255,255,.3); }
.contact-v3-reassurance span:last-child { border-right: 0; }

.legal-page-v3 .page-header { padding-block: 95px 75px; }
.legal-page-v3 .page-header h1 { max-width: 880px; font-size: clamp(3.5rem, 6.5vw, 6.4rem); }
.legal-page-v3 .legal-content { background: var(--paper); }
.legal-page-v3 .legal-content .container { max-width: 900px; }
.legal-page-v3 .legal-content h2 { padding-top: 18px; margin-top: 48px; border-top: 1px solid var(--line); }

@media (min-width: 1001px) {
    .privacy-page-v3 .page-header h1 { max-width: none; font-size: clamp(3.5rem, 6vw, 6rem); white-space: nowrap; }
}

@media (max-width: 1000px) {
    .about-v3-grid, .about-v3-history-grid, .about-v3-proof-grid, .contact-v3-grid { grid-template-columns: 1fr; }
    .about-v3-grid { gap: 65px; }
    .about-v3-history-grid { gap: 48px; }
    .about-v3-history header { position: static; }
    .about-v3-visual { max-width: 680px; }
    .about-v3-visual img { aspect-ratio: 16 / 10; }
    .about-v3-value-grid { grid-template-columns: 1fr 1fr; }
    .about-v3-value-grid::before { display: none; }
    .about-v3-value-grid article:nth-child(2) { border-right: 0; }
    .about-v3-value-grid article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.18); }
    .contact-v3-grid { gap: 70px; }
}

@media (max-width: 760px) {
    .about-v3-hero, .contact-v3-hero { padding: 78px 0 82px; }
    .about-v3-grid, .about-v3-manifesto-grid, .contact-v3-hero-grid { grid-template-columns: 1fr; gap: 42px; }
    .about-v3-copy h1, .contact-v3-hero h1 { font-size: clamp(3.5rem, 15vw, 5.3rem); }
    .about-v3-stamp { right: -8px; width: 145px; height: 145px; padding: 20px; }
    .about-v3-stamp strong { font-size: 2rem; }
    .about-v3-manifesto { padding: 92px 0; }
    .about-v3-history { padding: 90px 0; }
    .about-v3-manifesto h2 { font-size: clamp(2.8rem, 12vw, 4rem); }
    .about-v3-history h2 { font-size: clamp(2.65rem, 11vw, 3.8rem); }
    .about-v3-timeline article { grid-template-columns: 1fr; gap: 12px; }
    .about-v3-fact-grid, .about-v3-value-grid, .contact-v3-reassurance .container { grid-template-columns: 1fr; }
    .about-v3-fact-grid article, .about-v3-value-grid article { min-height: 260px; border-right: 0; border-bottom: 1px solid var(--line); }
    .about-v3-fact-grid article:last-child, .about-v3-value-grid article:last-child { border-bottom: 0; }
    .about-v3-fact-grid span { margin-bottom: 35px; }
    .about-v3-proof-grid { gap: 48px; }
    .about-v3-logo-wall img { height: 115px; padding: 28px; }
    .contact-v3-main { padding: 88px 0; }
    .contact-v3-form-wrap { padding: 28px 22px; }
    .contact-form-v3 .form-row { grid-template-columns: 1fr; }
    .contact-v3-reassurance span { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.3); }
    .contact-v3-reassurance span:last-child { border-bottom: 0; }
}

/* V4 â€” immersive homepage, fewer boxes and tighter editorial rhythm */
.home-page-v4 { background: #0e1627; }
.home-page-v4 h1, .home-page-v4 h2, .home-page-v4 h3 { text-wrap: balance; }
.home-page-v4 .site-header::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--primary); transform: scaleX(var(--page-progress, 0)); transform-origin: left; content: ""; }
.v4-hero { --pointer-x: 0; --pointer-y: 0; position: relative; min-height: min(760px, calc(100vh - 88px)); overflow: hidden; color: #fff; background: #0e1627; isolation: isolate; }
.v4-hero-media { position: absolute; z-index: -3; inset: -2%; }
.v4-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.045) translate(calc(var(--pointer-x) * -8px), calc(var(--pointer-y) * -6px)); transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.v4-hero::before { position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, rgba(10,17,31,.99) 0%, rgba(10,17,31,.9) 35%, rgba(10,17,31,.3) 67%, rgba(10,17,31,.08) 100%), linear-gradient(0deg, rgba(10,17,31,.65), transparent 45%); content: ""; }
.v4-hero-grid { position: absolute; z-index: -1; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.09) 1px, transparent 1px); background-size: 84px 84px; mask-image: linear-gradient(90deg, #000, transparent 72%); }
.v4-hero-glow { position: absolute; z-index: -1; top: 18%; left: 45%; width: 240px; height: 240px; background: rgba(166,82,92,.14); border-radius: 50%; filter: blur(70px); transform: translate(calc(var(--pointer-x) * 18px), calc(var(--pointer-y) * 14px)); }
.v4-hero-inner { display: grid; grid-template-columns: 1fr .3fr; align-items: end; gap: 70px; min-height: min(700px, calc(100vh - 148px)); padding-top: 84px; padding-bottom: 72px; }
.v4-eyebrow, .v4-section-code { display: block; color: var(--primary-on-dark); font-size: .65rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.v4-hero h1 { max-width: 820px; margin: 22px 0 24px; font-size: clamp(3.5rem, 5.7vw, 5.55rem); line-height: .96; }
.v4-hero h1 em { color: #b7b4ac; font-style: normal; font-weight: 500; }
.v4-hero-copy > p { max-width: 580px; margin-bottom: 30px; color: rgba(255,255,255,.68); font-size: 1.02rem; }
.v4-actions { display: flex; align-items: center; gap: 25px; }
.v4-actions a { color: #fff; font-size: .78rem; font-weight: 800; }
.v4-actions a:first-child { display: inline-flex; align-items: center; gap: 14px; min-height: 50px; padding: 13px 19px; background: var(--primary); }
.v4-actions a:last-child { padding-bottom: 5px; border-bottom: 1px solid rgba(255,255,255,.45); }
.v4-hero-index { align-self: end; padding: 22px 0 22px 25px; border-left: 1px solid rgba(255,255,255,.3); }
.v4-hero-index span { display: block; margin-bottom: 12px; color: var(--primary-on-dark); font-size: .65rem; font-weight: 800; }
.v4-hero-index strong { font-size: .88rem; }
.v4-scroll-cue { position: absolute; right: 30px; bottom: 24px; display: flex; align-items: center; gap: 11px; color: rgba(255,255,255,.45); font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; writing-mode: vertical-rl; }
.v4-scroll-cue span { width: 1px; height: 42px; background: linear-gradient(var(--primary) 50%, rgba(255,255,255,.2) 50%); background-size: 100% 200%; animation: v4-scroll-line 1.8s ease infinite; }
@keyframes v4-scroll-line { 0% { background-position: 0 100%; } 100% { background-position: 0 -100%; } }

.v4-signal-strip { overflow: hidden; color: #fff; background: var(--primary); }
.v4-signal-strip::-webkit-scrollbar, .services-v4-index::-webkit-scrollbar { display: none; }
.v4-signal-track { display: flex; align-items: center; justify-content: center; min-height: 54px; min-width: max-content; }
.v4-signal-group { display: flex; align-items: center; justify-content: center; gap: 24px; padding-inline: 30px; min-width: max-content; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.v4-signal-group + .v4-signal-group { display: none; }
.v4-signal-group > i:last-child { display: none; }
.v4-signal-strip i { flex: none; width: 4px; height: 4px; background: #fff; border-radius: 50%; opacity: .75; }
@keyframes v4-signal-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .v4-signal-track { animation: none !important; } }

.v4-manifesto { padding: 90px 0; color: var(--ink); background: var(--paper); }
.v4-manifesto-grid { display: grid; grid-template-columns: .22fr 1fr .28fr; align-items: end; gap: 48px; }
.v4-manifesto h2, .v4-section-head h2, .v4-method-head h2 { margin: 0; font-size: clamp(2.7rem, 4.5vw, 4.7rem); line-height: .99; }
.v4-manifesto h2 em, .v4-section-head h2 em, .v4-method-head h2 em { color: #a59f95; font-style: normal; font-weight: 500; }
.v4-manifesto p { max-width: 630px; margin: 25px 0 0 auto; }
.v4-manifesto-stat { display: flex; align-items: end; gap: 12px; padding-bottom: 5px; }
.v4-manifesto-stat strong { color: var(--primary); font-family: var(--font-display); font-size: 4.3rem; line-height: .8; letter-spacing: -.07em; }
.v4-manifesto-stat span { font-size: .66rem; font-weight: 800; line-height: 1.35; text-transform: uppercase; }

.v4-service-lab { padding: 90px 0 98px; color: #fff; background: #0e1627; }
.v4-section-head { display: grid; grid-template-columns: .24fr 1fr; align-items: start; gap: 48px; margin-bottom: 62px; }
.v4-section-head h2 { max-width: 850px; font-size: clamp(2.55rem, 3.9vw, 4.05rem); }
.v4-service-experience { display: grid; grid-template-columns: 300px 1fr; min-height: 600px; border-top: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.v4-service-nav { display: flex; flex-direction: column; border-right: 1px solid rgba(255,255,255,.18); }
.v4-service-nav button { position: relative; display: flex; align-items: center; flex: 1; gap: 18px; padding: 14px 20px 14px 0; color: rgba(255,255,255,.5); background: none; border: 0; border-bottom: 1px solid rgba(255,255,255,.12); font-family: var(--font-display); font-size: 1rem; font-weight: 700; text-align: left; cursor: pointer; transition: .25s ease; }
.v4-service-nav button:last-child { border-bottom: 0; }
.v4-service-nav button::after { position: absolute; right: -1px; width: 3px; height: 0; background: var(--primary); content: ""; transition: height .25s ease; }
.v4-service-nav button span { width: 26px; color: rgba(255,255,255,.28); font-family: var(--font-body); font-size: .58rem; }
.v4-service-nav button:hover, .v4-service-nav button.active { color: #fff; padding-left: 12px; }
.v4-service-nav button.active::after { height: 55%; }
.v4-service-nav button.active span { color: var(--primary); }
.v4-service-stage { display: grid; grid-template-columns: 1.08fr .92fr; min-width: 0; overflow: hidden; background: #121c30; transition: opacity .18s ease, transform .18s ease; }
.v4-service-stage.changing { opacity: .2; transform: translateY(5px); }
.v4-service-visual { position: relative; height: 600px; min-height: 0; overflow: hidden; }
.v4-service-visual::after { position: absolute; z-index: 2; inset: 0; pointer-events: none; background: linear-gradient(90deg, transparent 55%, #121c30), linear-gradient(0deg, rgba(18,28,48,.62), transparent 50%); content: ""; }
.v4-service-visual img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(1.05); transition: opacity .2s ease, transform 8s ease; }
.v4-service-stage:hover .v4-service-visual img { transform: scale(1.04); }
.v4-service-outline { z-index: 1; opacity: 0; pointer-events: none; }
.v4-service-visual.has-outline .v4-service-outline { opacity: 1; clip-path: inset(0 98% 0 0); will-change: clip-path; animation: v4-outline-reveal 7.2s cubic-bezier(.45,.02,.2,1) infinite alternate; }
.v4-scan-line { position: absolute; z-index: 3; top: -30%; bottom: -30%; left: 15%; width: 1px; background: linear-gradient(transparent, #8fd4df, transparent); box-shadow: 0 0 14px #8fd4df; animation: v4-scan 5.5s ease-in-out infinite alternate; }
.v4-service-visual.has-outline .v4-scan-line { left: 2%; width: 2px; background: linear-gradient(transparent 8%, rgba(143,212,223,.85) 30%, #fff 50%, rgba(166,82,92,.9) 70%, transparent 92%); box-shadow: 0 0 10px #8fd4df, 0 0 24px rgba(166,82,92,.45); will-change: left; animation: v4-outline-line 7.2s cubic-bezier(.45,.02,.2,1) infinite alternate; }
@keyframes v4-scan { to { left: 78%; } }
@keyframes v4-outline-reveal { from { clip-path: inset(0 98% 0 0); } to { clip-path: inset(0 2% 0 0); } }
@keyframes v4-outline-line { from { left: 2%; } to { left: 98%; } }
@media (prefers-reduced-motion: reduce) {
    .v4-service-visual.has-outline .v4-service-outline { clip-path: inset(0 50% 0 0); animation: none; }
    .v4-service-visual.has-outline .v4-scan-line { left: 50%; animation: none; }
}
.v4-service-copy { align-self: end; padding: 48px 42px; }
.v4-service-copy > span { color: var(--primary); font-size: .64rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.v4-service-copy h3 { max-width: 390px; margin: 15px 0 18px; font-size: clamp(2rem, 2.7vw, 3rem); line-height: 1.02; }
.v4-service-copy > p { color: rgba(255,255,255,.6); }
.v4-service-points { display: grid; margin: 27px 0; border-top: 1px solid rgba(255,255,255,.16); }
.v4-service-points span { padding: 10px 0; color: rgba(255,255,255,.78); border-bottom: 1px solid rgba(255,255,255,.16); font-size: .75rem; }
.v4-service-points span::before { margin-right: 9px; color: var(--primary); content: "+"; }
.v4-service-copy a { color: #fff; font-size: .76rem; font-weight: 800; }
.v4-service-copy a i { margin-left: 8px; color: var(--primary); }

.v4-ai { position: relative; min-height: 760px; overflow: hidden; color: #fff; background: #0b1323; isolation: isolate; }
.v4-ai-image { position: absolute; z-index: -3; top: -10%; right: 0; width: 58%; height: 120%; object-fit: cover; object-position: center; opacity: .92; }
.v4-ai-shade { position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, #0b1323 0%, #0b1323 35%, rgba(11,19,35,.72) 58%, rgba(11,19,35,.08) 100%), linear-gradient(0deg, rgba(11,19,35,.65), transparent); }
.v4-ai::after { position: absolute; z-index: -1; inset: 0; opacity: .15; background-image: radial-gradient(circle at center, #fff 1px, transparent 1px); background-size: 34px 34px; mask-image: linear-gradient(90deg, #000, transparent 65%); content: ""; }
.v4-ai-layout { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: 95px; min-height: 760px; padding-block: 85px; }
.v4-ai h2 { margin: 20px 0 25px; font-size: clamp(2.8rem, 4.15vw, 4.35rem); line-height: .98; }
.v4-ai h2 em { color: #b3afa5; font-style: normal; font-weight: 500; }
.v4-ai-copy > p { max-width: 530px; color: rgba(255,255,255,.62); }
.v4-ai-count { display: flex; align-items: end; gap: 15px; margin-top: 38px; }
.v4-ai-count strong { color: var(--primary); font-family: var(--font-display); font-size: 4.8rem; line-height: .8; letter-spacing: -.08em; }
.v4-ai-count span { font-size: .65rem; font-weight: 800; line-height: 1.4; text-transform: uppercase; }
.v4-ai-selector { padding: 30px 34px; background: rgba(10,18,32,.78); border-left: 1px solid rgba(255,255,255,.22); backdrop-filter: blur(16px); }
.v4-ai-selector button { display: grid; grid-template-columns: 28px 1fr 20px; align-items: center; width: 100%; padding: 18px 0; color: rgba(255,255,255,.55); background: none; border: 0; border-bottom: 1px solid rgba(255,255,255,.16); text-align: left; cursor: pointer; }
.v4-ai-selector button span { color: rgba(255,255,255,.3); font-size: .58rem; }
.v4-ai-selector button strong { font-family: var(--font-display); font-size: 1rem; }
.v4-ai-selector button i { color: var(--primary); transition: transform .2s ease; }
.v4-ai-selector button.active { color: #fff; }
.v4-ai-selector button.active i { transform: rotate(45deg); }
.v4-ai-selector > p { min-height: 82px; margin: 25px 0; color: rgba(255,255,255,.65); transition: .16s ease; }
.v4-ai-selector > p.changing { opacity: 0; transform: translateY(4px); }
.v4-ai-selector > a { color: #fff; font-size: .76rem; font-weight: 800; }
.v4-ai-selector > a i { margin-left: 8px; color: var(--primary); }

.v4-method { padding: 90px 0; background: var(--paper); }
.v4-method-head { display: grid; grid-template-columns: .24fr 1fr; gap: 48px; margin-bottom: 55px; }
.v4-method-head h2 { max-width: 760px; font-size: clamp(2.6rem, 3.9vw, 4.05rem); }
.v4-method-line { --active-step: 0; position: relative; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.v4-method-line::before { position: absolute; z-index: 2; top: -2px; left: 0; width: 25%; height: 3px; background: var(--primary); content: ""; transform: translateX(calc(var(--active-step) * 100%)); transition: transform .48s cubic-bezier(.2,.8,.2,1); }
.v4-method-line article { position: relative; min-height: 230px; padding: 28px 25px; border-right: 1px solid var(--line); cursor: default; opacity: .5; transition: opacity .28s ease, background .28s ease, transform .28s ease; }
.v4-method-line article:last-child { border-right: 0; }
.v4-method-line article.active { opacity: 1; background: linear-gradient(180deg, rgba(166,82,92,.075), transparent 72%); transform: translateY(-3px); }
.v4-method-line span { display: inline-grid; place-items: center; width: 28px; height: 28px; color: var(--primary); border: 1px solid rgba(166,82,92,.35); border-radius: 50%; font-size: .58rem; font-weight: 800; transition: .28s ease; }
.v4-method-line article.active span { color: #fff; background: var(--primary); border-color: var(--primary); box-shadow: 0 0 0 7px rgba(166,82,92,.1); }
.v4-method-line h3 { margin: 65px 0 10px; font-size: 1.55rem; transition: color .28s ease, transform .28s ease; }
.v4-method-line article.active h3 { color: var(--primary-dark); transform: translateX(4px); }
.v4-method-line p { font-size: .86rem; }

.v4-proof { padding: 95px 0; overflow: hidden; color: #fff; background: #18233a; }
.v4-proof-grid { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: 72px; }
.v4-proof-copy { min-width: 0; }
.v4-proof-testimonial-stage { display: grid; min-height: 315px; margin-top: 22px; }
.v4-proof-testimonial { display: none; grid-area: 1 / 1; align-content: start; }
.v4-proof-testimonial.active { display: grid; animation: v4-proof-testimonial-in .5s cubic-bezier(.2,.8,.2,1) both; }
.v4-proof blockquote { max-width: 720px; margin: 0; font-family: var(--font-display); font-size: clamp(1.65rem, 2.55vw, 2.75rem); font-weight: 600; line-height: 1.14; letter-spacing: -.045em; }
.v4-proof-testimonial p { display: flex; align-items: center; gap: 12px; margin-top: 25px; color: rgba(255,255,255,.55); }
.v4-proof-testimonial p strong { color: #fff; }
.v4-proof-testimonial p span::before { margin-right: 12px; color: var(--primary-on-dark); content: "—"; }
.v4-proof-testimonial-nav { display: flex; align-items: center; justify-content: space-between; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.18); }
.v4-proof-testimonial-nav > span { color: rgba(255,255,255,.48); font-size: .64rem; font-weight: 800; letter-spacing: .16em; }
.v4-proof-testimonial-nav > div { display: flex; gap: 8px; }
.v4-proof-testimonial-nav button { display: grid; place-items: center; width: 42px; height: 42px; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; cursor: pointer; transition: .22s ease; }
.v4-proof-testimonial-nav button:hover, .v4-proof-testimonial-nav button:focus-visible { color: var(--dark); background: #fff; border-color: #fff; outline: 0; transform: translateY(-2px); }
@keyframes v4-proof-testimonial-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
.v4-proof-logos { min-width: 0; }
.v4-proof-logo-source { display: none; }
.v4-proof-slot-machine { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; background: var(--line); border: 1px solid rgba(255,255,255,.28); box-shadow: 22px 22px 0 rgba(8,13,25,.28); }
.v4-proof-slot-machine::before, .v4-proof-slot-machine::after { position: absolute; z-index: 3; right: 0; left: 0; height: 34px; pointer-events: none; content: ""; }
.v4-proof-slot-machine::before { top: 0; background: linear-gradient(var(--paper), transparent); }
.v4-proof-slot-machine::after { bottom: 0; background: linear-gradient(transparent, var(--paper)); }
.v4-proof-reel { height: 132px; overflow: hidden; background: var(--paper); }
.v4-proof-reel-track { will-change: transform; }
.v4-proof-reel figure { display: grid; place-items: center; height: 132px; padding: 25px 20px; margin: 0; background: var(--paper); }
.v4-proof-reel img { width: 100%; max-width: 135px; height: 66px; object-fit: contain; filter: grayscale(1) brightness(0); opacity: .8; }
.v4-proof-reel img[data-logo-key="area"] { max-width: 112px; height: 86px; }
.v4-proof-reel img[data-logo-key="argenia"], .v4-proof-reel img[data-logo-key="hiprosol"] { max-width: 150px; height: 48px; }
.v4-proof-reel img[data-logo-key="vidra"] { max-width: 128px; height: 58px; }
.v4-proof-logos.is-spinning .v4-proof-reel img { opacity: .66; }
.v4-proof-logo-meta { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 20px; color: rgba(255,255,255,.6); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.v4-proof-logo-meta > span { display: grid; gap: 4px; }
.v4-proof-logo-meta small { color: rgba(255,255,255,.34); font-size: .54rem; letter-spacing: .08em; }
.v4-proof-logo-meta button { display: grid; flex: 0 0 auto; place-items: center; width: 44px; height: 44px; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.34); border-radius: 50%; cursor: pointer; transition: .2s ease; }
.v4-proof-logo-meta button:hover, .v4-proof-logo-meta button:focus-visible { color: var(--dark); background: #fff; outline: 0; }
.v4-proof-logo-meta button:disabled { cursor: wait; opacity: .78; }
.v4-proof-logos.is-spinning .v4-proof-logo-meta button i { animation: v4-proof-spin-button .42s linear infinite; }
@keyframes v4-proof-spin-button { to { transform: rotate(1turn); } }
.v4-final { padding: 90px 0; color: var(--ink); background: var(--primary); }
.v4-final span { font-size: .65rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.v4-final h2 { max-width: 880px; margin: 18px 0 28px; font-size: clamp(2.9rem, 4.55vw, 4.7rem); line-height: .97; }
.v4-final a { display: inline-flex; align-items: center; gap: 12px; padding-bottom: 5px; color: var(--ink); border-bottom: 1px solid var(--ink); font-size: .8rem; font-weight: 800; }

.v4-projects { padding: 105px 0 120px; color: var(--ink); background: var(--paper); }
.v4-projects-head { display: grid; grid-template-columns: .34fr 1.18fr .48fr; align-items: end; gap: 50px; margin-bottom: 55px; }
.v4-projects-head h2 { font-size: clamp(2.8rem, 4.35vw, 4.45rem); line-height: .98; }
.v4-projects-head h2 em { color: #aaa398; font-style: normal; font-weight: 500; }
.v4-projects-head > p { padding-bottom: 7px; font-size: .94rem; }
.v4-project-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(205px, auto)); grid-auto-flow: column; border-top: 1px solid var(--line); }
.v4-project { position: relative; isolation: isolate; display: grid; grid-template-columns: 52px minmax(0, 1fr); align-content: center; gap: 12px 18px; min-height: 205px; padding: 28px 34px 28px 20px; overflow: hidden; border-bottom: 1px solid var(--line); cursor: default; transition: color .4s ease, padding .4s cubic-bezier(.2,.8,.2,1); }
.v4-project:nth-child(-n+4) { border-right: 1px solid var(--line); }
.v4-project::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(10,17,31,.93), rgba(10,17,31,.62)); content: ""; opacity: 0; transition: opacity .38s ease; }
.v4-project-media { position: absolute; z-index: -2; inset: 0; clip-path: inset(0 100% 0 0); transition: clip-path .65s cubic-bezier(.2,.8,.2,1); }
.v4-project-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) contrast(1.08); transform: scale(1.045); transition: transform .8s cubic-bezier(.2,.8,.2,1); }
.v4-project-number { position: absolute; z-index: 4; top: 30px; left: 20px; color: var(--primary-dark); font-size: .64rem; font-weight: 800; line-height: 1; letter-spacing: .15em; transition: top .5s cubic-bezier(.2,.8,.2,1), left .5s cubic-bezier(.2,.8,.2,1), font-size .5s cubic-bezier(.2,.8,.2,1), letter-spacing .5s ease, color .4s ease; }
.v4-project > div:not(.v4-project-media) { position: relative; z-index: 3; grid-column: 2; }
.v4-project > p { position: relative; z-index: 3; }
/* Cuarto de circunferencia que envuelve al número al hacer hover */
.v4-project::before { content: ""; position: absolute; z-index: 1; bottom: -2px; left: -2px; width: 92px; height: 92px; background: transparent; border: 2px solid rgba(255,255,255,.9); border-top-right-radius: 100%; transform: scale(0); transform-origin: bottom left; transition: transform .55s cubic-bezier(.2,.8,.2,1); pointer-events: none; }
.v4-project small { display: block; margin-bottom: 9px; color: var(--primary-dark); font-size: .59rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; transition: color .35s ease; }
.v4-project h3 { font-size: clamp(1.55rem, 2.25vw, 2.35rem); line-height: 1; transition: transform .4s cubic-bezier(.2,.8,.2,1); }
.v4-project > p { grid-column: 2; max-width: 470px; font-size: .84rem; transition: color .35s ease, transform .4s cubic-bezier(.2,.8,.2,1); }
.v4-project-logo { position: absolute; z-index: 2; top: 26px; right: 28px; width: 82px; height: 58px; padding: 8px; object-fit: contain; background: rgba(255,255,255,.88); border: 1px solid rgba(17,24,42,.12); border-radius: 5px; transition: background .35s ease, transform .4s cubic-bezier(.2,.8,.2,1); }
.v4-project-has-logo > div:not(.v4-project-media), .v4-project-has-logo > p { padding-right: 92px; }
.v4-project:hover, .v4-project:focus-visible { padding-left: 24px; padding-right: 30px; color: #fff; outline: 0; }
.v4-project:hover::after, .v4-project:focus-visible::after { opacity: 1; }
.v4-project:hover .v4-project-media, .v4-project:focus-visible .v4-project-media { clip-path: inset(0); }
.v4-project:hover .v4-project-media img, .v4-project:focus-visible .v4-project-media img { transform: scale(1); }
.v4-project:hover .v4-project-number, .v4-project:focus-visible .v4-project-number, .v4-project:hover small, .v4-project:focus-visible small { color: var(--primary-on-dark); }
.v4-project:hover h3, .v4-project:focus-visible h3, .v4-project:hover > p, .v4-project:focus-visible > p { transform: translateX(8px); }
.v4-project:hover > p, .v4-project:focus-visible > p { color: rgba(255,255,255,.78); }
.v4-project:hover .v4-project-logo, .v4-project:focus-visible .v4-project-logo { background: rgba(255,255,255,.96); transform: translateX(-4px); }
.v4-project:hover::before, .v4-project:focus-visible::before { transform: scale(1); }
.v4-project:hover .v4-project-number, .v4-project:focus-visible .v4-project-number { top: auto; bottom: 14px; left: 11px; font-size: 2.3rem; letter-spacing: 0; color: #fff; }

/* More compact internal pages */
.editorial-page-v3 .page-header { padding: 88px 0 76px; }
.editorial-page-v3 .page-header h1 { font-size: clamp(3.3rem, 6.2vw, 6.2rem); }
.service-hero { padding-block: 78px; }
.service-hero h1 { font-size: clamp(3.1rem, 5vw, 5.1rem); }
.about-v3-hero { padding: 76px 0 88px; }
.about-v3-copy h1 { font-size: clamp(3.4rem, 5.1vw, 5.3rem); }
.about-v3-manifesto { padding: 105px 0; }
.about-v3-manifesto h2 { font-size: clamp(2.8rem, 5vw, 5.2rem); }
.about-v3-values, .about-v3-proof { padding: 100px 0; }
.contact-v3-hero { padding: 86px 0 82px; }
.contact-v3-hero h1 { font-size: clamp(3.6rem, 5.4vw, 5.5rem); }
.contact-v3-main { padding: 95px 0; }

/* Partner ecosystem: editorial rows, not isolated cards */
.sales-partners { padding: 110px 0; color: #fff; background: #121c30; }
.sales-partners-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 90px; }
.sales-partners-heading { position: sticky; top: 130px; align-self: start; }
.sales-partners-heading .section-kicker { color: var(--primary); }
.sales-partners-heading h2 { max-width: 540px; margin: 18px 0 24px; color: #fff; font-size: clamp(2.5rem, 3.7vw, 3.85rem); line-height: 1; text-wrap: balance; }
.sales-partners-heading p { max-width: 500px; color: rgba(255,255,255,.62); }
.sales-partners-list { border-top: 1px solid rgba(255,255,255,.2); }
.sales-partners-list article { display: grid; grid-template-columns: 170px 1fr; gap: 38px; padding: 31px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.sales-partners-list article > div:last-child > span { color: var(--primary); font-size: .62rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.sales-partners-list h3 { margin: 8px 0 10px; color: #fff; font-size: 1.45rem; }
.sales-partners-list p { color: rgba(255,255,255,.58); font-size: .86rem; }
.partner-wordmark { display: flex; align-items: flex-start; flex-direction: column; justify-content: center; min-height: 82px; font-family: Arial, sans-serif; }
.partner-wordmark strong { color: #fff; font-size: 1.55rem; line-height: 1; letter-spacing: -.04em; }
.partner-wordmark span { margin-top: 8px; color: rgba(255,255,255,.46); font-size: .55rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.partner-wordmark-eset strong { color: #23d1c5; font-size: 1.9rem; letter-spacing: .03em; }
.partner-wordmark-tsplus strong { color: #ff675c; }
.partner-wordmark-pdfx strong { color: #f18a21; font-size: 1.24rem; letter-spacing: -.02em; }
.sales-partners-legal { grid-column: 2; margin-top: -58px; color: rgba(255,255,255,.32); font-size: .62rem; }

/* Hosting comparison table */
.hosting-pricing { padding: 108px 0; background: var(--paper); }
.hosting-pricing-heading { display: grid; grid-template-columns: .72fr 1.25fr .75fr; align-items: end; gap: 40px; margin-bottom: 48px; }
.hosting-pricing-heading h2 { margin: 0; font-size: clamp(2.6rem, 4vw, 4.1rem); line-height: 1; text-wrap: balance; }
.hosting-pricing-heading p { margin-bottom: 7px; }
.hosting-table-wrap { overflow-x: auto; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); scrollbar-color: var(--primary) var(--soft); }
.hosting-table { width: 100%; min-width: 940px; border-collapse: collapse; table-layout: fixed; }
.hosting-table th, .hosting-table td { padding: 17px 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; vertical-align: middle; }
.hosting-table tr > *:last-child { border-right: 0; }
.hosting-table thead th { position: relative; height: 150px; color: var(--ink); background: var(--soft); }
.hosting-table thead th:first-child { width: 195px; font-size: .68rem; letter-spacing: .12em; text-align: left; text-transform: uppercase; }
.hosting-table thead span { display: block; font-family: var(--font-display); font-size: 1.2rem; }
.hosting-table thead strong { display: inline-block; margin-top: 13px; font-family: var(--font-display); font-size: 2.35rem; line-height: 1; }
.hosting-table thead small { color: var(--muted); font-size: .62rem; }
.hosting-table .recommended { background: rgba(166,82,92,.09); }
.hosting-table thead .recommended { border-top: 3px solid var(--primary); }
.hosting-table thead em { position: absolute; top: 13px; left: 50%; color: var(--primary); font-size: .53rem; font-style: normal; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; transform: translateX(-50%); }
.hosting-table tbody th, .hosting-table tfoot th { color: var(--ink); font-size: .74rem; font-weight: 800; text-align: left; }
.hosting-table tbody td { color: var(--ink); font-size: .8rem; }
.hosting-table tbody td:nth-child(4), .hosting-table tfoot td:nth-child(4) { background: rgba(166,82,92,.045); }
.hosting-table tbody small { color: var(--muted); font-size: .61rem; }
.hosting-table tbody i { color: var(--primary); }
.hosting-table tfoot th, .hosting-table tfoot td { padding-block: 22px; border-bottom: 0; }
.hosting-table tfoot a { display: inline-flex; padding-bottom: 4px; color: var(--ink); border-bottom: 1px solid var(--primary); font-size: .68rem; font-weight: 800; }
.hosting-table tfoot td:nth-child(4) a { padding: 10px 14px; color: #fff; background: var(--primary); border: 0; }
.hosting-pricing-note { max-width: 820px; margin: 20px 0 0; color: var(--muted); font-size: .67rem; }

@media (max-width: 1000px) {
    .v4-hero-inner, .v4-manifesto-grid, .v4-section-head, .v4-method-head, .v4-projects-head { grid-template-columns: 1fr; }
    .v4-hero-index { display: none; }
    .v4-manifesto-grid { gap: 25px; }
    .v4-manifesto-stat { margin-top: 15px; }
    .v4-service-experience { grid-template-columns: 230px 1fr; }
    .v4-service-stage { grid-template-columns: 1fr; }
    .v4-service-visual { height: 310px; }
    .v4-service-copy { padding: 35px; }
    .v4-ai-layout { grid-template-columns: 1fr; gap: 55px; }
    .v4-ai-image { width: 100%; opacity: .48; }
    .v4-ai-shade { background: linear-gradient(90deg, rgba(11,19,35,.97), rgba(11,19,35,.68)); }
    .sales-partners-layout { grid-template-columns: 1fr; gap: 48px; }
    .sales-partners-heading { position: static; }
    .sales-partners-legal { grid-column: 1; margin-top: -20px; }
    .hosting-pricing-heading { grid-template-columns: 1fr 1.4fr; }
    .hosting-pricing-heading p { grid-column: 2; }
    .v4-projects-head { gap: 20px; }
}

@media (max-width: 700px) {
    .v4-hero { min-height: 690px; }
    .v4-hero-inner { min-height: 635px; padding-top: 64px; padding-bottom: 45px; }
    .v4-hero-media { inset: 0; }
    .v4-hero-media img { object-position: 66% center; }
    .v4-hero::before { background: linear-gradient(90deg, rgba(10,17,31,.98), rgba(10,17,31,.73)); }
    .v4-hero h1 { font-size: clamp(3rem, 13.4vw, 4.2rem); }
    .v4-actions { align-items: stretch; flex-direction: column; gap: 15px; }
    .v4-actions a:first-child { justify-content: center; }
    .v4-actions a:last-child { align-self: center; }
    .v4-scroll-cue { display: none; }
    .v4-signal-strip { overflow: hidden; }
    .v4-signal-track { justify-content: flex-start; width: max-content; animation: v4-signal-scroll 24s linear infinite; }
    .v4-signal-group + .v4-signal-group { display: flex; }
    .v4-signal-group > i:last-child { display: block; }
    .v4-manifesto, .v4-service-lab, .v4-method, .v4-proof, .v4-final, .v4-projects { padding-block: 78px; }
    .v4-manifesto h2, .v4-section-head h2, .v4-method-head h2 { font-size: clamp(2.55rem, 11vw, 3.7rem); }
    .v4-service-experience { grid-template-columns: 1fr; }
    .v4-service-nav { display: grid; grid-template-columns: 1fr 1fr; border-right: 0; }
    .v4-service-nav button { min-height: 58px; padding: 10px; border-right: 1px solid rgba(255,255,255,.12); }
    .v4-service-nav button:hover, .v4-service-nav button.active { padding-left: 15px; }
    .v4-service-nav button::after { right: auto; bottom: -1px; left: 0; width: 0; height: 2px; transition: width .25s ease; }
    .v4-service-nav button.active::after { width: 60%; height: 2px; }
    .v4-service-visual { height: 280px; }
    .v4-service-copy { padding: 28px 22px; }
    .v4-ai, .v4-ai-layout { min-height: 0; }
    .v4-ai-layout { padding-block: 78px; }
    .v4-ai-image { top: 0; width: 100%; height: 100%; object-position: 62% center; }
    .v4-ai h2 { font-size: clamp(2.9rem, 12vw, 4rem); }
    .v4-ai-selector { padding: 20px; }
    .v4-method-line { grid-template-columns: 1fr 1fr; }
    .v4-method-line::before { display: none; }
    .v4-method-line article { min-height: 190px; border-bottom: 1px solid var(--line); }
    .v4-method-line article:nth-child(2) { border-right: 0; }
    .v4-method-line h3 { margin-top: 45px; }
    .v4-proof-grid { grid-template-columns: 1fr; gap: 50px; }
    .v4-proof-testimonial-stage { min-height: 340px; }
    .v4-projects-head h2 { font-size: clamp(2.55rem, 11vw, 3.7rem); }
    .v4-project-list { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-flow: row; }
    .v4-project { grid-template-columns: 42px 1fr; gap: 12px 16px; min-height: 0; padding: 27px 10px; border-right: 0 !important; }
    .v4-project > p { grid-column: 2; }
    .v4-project:hover, .v4-project:focus-visible { padding-left: 16px; }
    .v4-project-logo { top: 22px; right: 10px; width: 72px; height: 50px; }
    .v4-project-has-logo > div:not(.v4-project-media), .v4-project-has-logo > p { padding-right: 75px; }
    .v4-final h2 { font-size: clamp(3rem, 12vw, 4.2rem); }
    .editorial-page-v3 .page-header { padding: 68px 0 58px; }
    .editorial-page-v3 .page-header h1 { font-size: clamp(2.8rem, 11vw, 4rem); }
    .service-hero { padding-block: 60px; }
    .service-hero h1 { font-size: clamp(2.8rem, 11vw, 4.1rem); }
    .about-v3-copy h1, .contact-v3-hero h1 { font-size: clamp(3rem, 12vw, 4.3rem); }
    .sales-partners, .hosting-pricing { padding-block: 78px; }
    .sales-partners-list article { grid-template-columns: 115px 1fr; gap: 20px; }
    .partner-wordmark strong { font-size: 1.25rem; }
    .partner-wordmark-eset strong { font-size: 1.55rem; }
    .hosting-pricing-heading { grid-template-columns: 1fr; gap: 18px; }
    .hosting-pricing-heading p { grid-column: 1; }
    .hosting-pricing-heading h2 { font-size: clamp(2.55rem, 11vw, 3.7rem); }
}

/* V4 services directory: chapters instead of cards */
.services-v4-hero { padding: 92px 0 82px; color: var(--ink); background: var(--soft); border-bottom: 1px solid var(--line); }
.services-v4-hero-grid { display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 80px; }
.services-v4-hero h1 { margin: 18px 0 0; font-size: clamp(3.4rem, 5.2vw, 5.35rem); line-height: .96; }
.services-v4-hero h1 em { color: #a39d93; font-style: normal; font-weight: 500; }
.services-v4-hero p { margin-bottom: 10px; font-size: 1.02rem; }
.services-v4-index { position: sticky; z-index: 20; top: 88px; color: #fff; background: var(--primary); }
.services-v4-index { scrollbar-width: none; }
.services-v4-index .container { display: grid; grid-template-columns: repeat(4, 1fr); }
.services-v4-index a { padding: 17px 13px; color: #fff; border-right: 1px solid rgba(255,255,255,.3); font-size: .65rem; font-weight: 800; text-align: center; text-transform: uppercase; }
.services-v4-index a:last-child { border-right: 0; }
.services-v4-chapter { position: relative; min-height: 670px; overflow: hidden; color: #fff; background: #0e1627; isolation: isolate; }
.services-v4-chapter > img { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.services-v4-chapter .services-v4-shade { position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, rgba(10,17,31,.98), rgba(10,17,31,.76) 48%, rgba(10,17,31,.2)); }
.services-v4-intelligence > img { left: auto; width: 58%; object-position: center; }
.services-v4-intelligence .services-v4-shade { background: linear-gradient(90deg, #0b1323 0%, #0b1323 42%, rgba(11,19,35,.62) 70%, rgba(11,19,35,.12)); }
.services-v4-chapter-grid { display: grid; grid-template-columns: 1fr .9fr; align-items: center; gap: 100px; min-height: 670px; padding-block: 78px; }
.services-v4-chapter h2, .services-v4-paper h2, .services-v4-network h2 { margin: 20px 0 24px; font-size: clamp(2.9rem, 4.5vw, 4.7rem); line-height: .99; }
.services-v4-chapter p { max-width: 560px; color: rgba(255,255,255,.62); }
.services-v4-rows { border-top: 1px solid rgba(255,255,255,.28); }
.services-v4-rows a { display: grid; grid-template-columns: 1fr 1fr 20px; align-items: center; gap: 20px; padding: 24px 0; color: #fff; border-bottom: 1px solid rgba(255,255,255,.28); transition: padding .2s ease, color .2s ease; }
.services-v4-rows a:hover { padding-left: 12px; color: #fff; }
.services-v4-rows span { font-family: var(--font-display); font-size: 1.05rem; font-weight: 700; }
.services-v4-rows small { color: rgba(255,255,255,.5); font-size: .7rem; }
.services-v4-rows i { color: var(--primary); }
.services-v4-inline-link { display: inline-flex; gap: 10px; margin-top: 22px; color: #fff; font-size: .75rem; font-weight: 800; }
.services-v4-inline-link i { color: var(--primary); }
.services-v4-paper { padding: 100px 0; background: var(--paper); }
.services-v4-paper-grid { display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 90px; }
.services-v4-paper-grid p { margin-bottom: 28px; }
.services-v4-paper-grid a { display: flex; justify-content: space-between; padding: 18px 0; color: var(--ink); border-top: 1px solid var(--line); font-size: .82rem; font-weight: 800; }
.services-v4-paper-grid a:last-child { border-bottom: 1px solid var(--line); }
.services-v4-paper-grid a i { color: var(--primary); }
.services-v4-network { padding: 100px 0; color: #fff; background: #18233a; }
.services-v4-network-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 90px; }
.services-v4-network p { max-width: 560px; color: rgba(255,255,255,.6); }
.services-v4-network a { display: inline-flex; gap: 10px; margin-top: 22px; color: #fff; font-size: .76rem; font-weight: 800; }
.services-v4-network a i { color: var(--primary); }
.services-v4-network-visual { position: relative; overflow: hidden; }
.services-v4-network-visual img { width: 100%; height: 430px; object-fit: cover; }
.services-v4-network-visual::after { position: absolute; inset: 0; background: linear-gradient(90deg, #18233a, transparent 35%); content: ""; }
.services-v4-network-visual span { position: absolute; z-index: 2; right: 20px; bottom: 18px; color: rgba(255,255,255,.7); font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.services-page-v4 .v4-final p { max-width: 570px; margin-bottom: 25px; }

/* Remove boxed treatment from service detail pages */
.service-detail { background: var(--paper); }
.service-detail-grid { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.service-detail-card { min-height: 230px; padding: 34px 30px; background: transparent; border: 0; border-right: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.service-detail-card:last-child { border-right: 0; }
.service-detail-card::before { display: none; }
.service-detail-card strong { color: var(--ink); font-size: 1.2rem; }
.service-next-panel { border-radius: 0; box-shadow: none; }

@media (max-width: 900px) {
    .services-v4-index { top: 72px; overflow-x: auto; }
    .services-v4-index .container { width: max-content; grid-template-columns: repeat(4, 190px); }
    .services-v4-hero-grid, .services-v4-chapter-grid, .services-v4-paper-grid, .services-v4-network-grid { grid-template-columns: 1fr; gap: 45px; }
    .services-v4-chapter-grid { align-content: center; }
    .services-v4-intelligence > img { width: 100%; opacity: .5; }
    .services-v4-network-visual { order: -1; }
}

@media (max-width: 640px) {
    .services-v4-hero { padding: 68px 0 58px; }
    .services-v4-hero h1 { font-size: clamp(3rem, 12vw, 4.2rem); }
    .services-v4-chapter { min-height: 0; }
    .services-v4-chapter-grid { min-height: 0; padding-block: 75px; }
    .services-v4-chapter h2, .services-v4-paper h2, .services-v4-network h2 { font-size: clamp(2.8rem, 11vw, 3.8rem); }
    .services-v4-rows a { grid-template-columns: 1fr 18px; }
    .services-v4-rows small { display: none; }
    .services-v4-paper, .services-v4-network { padding-block: 78px; }
    .services-v4-network-visual img { height: 280px; }
    .service-detail-grid { grid-template-columns: 1fr; }
    .service-detail-card { min-height: 180px; border-right: 0; border-bottom: 1px solid var(--line); }
    .service-detail-card:last-child { border-bottom: 0; }
}

/* Mensajes de estado del formulario de contacto */
.form-feedback { margin-top: 16px; padding: 0; font-size: .95rem; line-height: 1.5; }
.form-feedback.is-success,
.form-feedback.is-error { padding: 14px 18px; border-radius: 12px; border: 1px solid transparent; }
.form-feedback.is-success { color: #1c6b4a; background: #e7f6ee; border-color: #b7e4cd; }
.form-feedback.is-error { color: #9a2c3a; background: #fbeaec; border-color: #f0c2c9; }

/* ============================================================
   3) BLOG / ACTUALIDAD
   ============================================================ */
.blog-hero { padding: 118px 0 40px; background: var(--paper); }
.blog-eyebrow { display: inline-block; color: var(--primary); font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 14px; }
.blog-hero h1 { font-family: var(--font-display); font-size: clamp(2.6rem, 6vw, 4.3rem); line-height: 1.02; letter-spacing: -.035em; margin: 0 0 16px; }
.blog-hero-lead { max-width: 560px; color: var(--ink-soft); font-size: 1.12rem; line-height: 1.6; }
@media (min-width: 992px) {
    .blog-hero-oneline { white-space: nowrap; font-size: clamp(2.6rem, 5vw, 4rem); }
    .blog-hero-lead--wide { max-width: none; white-space: nowrap; }
}

.blog-main { padding: 24px 0 96px; background: var(--paper); }
.blog-filters { display: flex; flex-wrap: wrap; gap: 10px; padding-bottom: 40px; border-bottom: 1px solid #ece8f0; margin-bottom: 44px; }
.blog-filters a { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; color: var(--ink-soft); font-size: .9rem; font-weight: 600; border: 1px solid #e4e0ea; border-radius: 999px; transition: .2s ease; }
.blog-filters a span { color: #a9a3b4; font-size: .78rem; }
.blog-filters a:hover { border-color: var(--primary); color: var(--primary); }
.blog-filters a.is-active { color: #fff; background: var(--primary); border-color: var(--primary); }
.blog-filters a.is-active span { color: rgba(255,255,255,.7); }

.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 15px; grid-auto-rows: 8px; align-items: start; }
.blog-grid .blog-card { align-self: start; }
.blog-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid #ece8f0; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.blog-card:hover { transform: translateY(-5px); box-shadow: 0 22px 45px rgba(14,22,39,.12); border-color: transparent; }
.blog-card-media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #0e1627; }
.blog-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.blog-card:hover .blog-card-media img { transform: scale(1.06); }
.blog-card--text .blog-card-body { padding-top: 28px; }
.blog-card--text .blog-card-cat { font-size: .74rem; }
.blog-card-body { display: flex; flex-direction: column; flex: 1; padding: 22px 22px 20px; }
.blog-card-cat { color: var(--primary); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 10px; }
.blog-card h3 { font-family: var(--font-display); font-size: 1.24rem; line-height: 1.25; letter-spacing: -.02em; margin: 0 0 10px; }
.blog-card h3 a { color: var(--ink); }
.blog-card h3 a:hover { color: var(--primary); }
.blog-card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.blog-card:hover h3 .blog-card-link { color: var(--primary); }
.blog-card-body p { flex: 1; color: var(--ink-soft); font-size: .95rem; line-height: 1.55; margin: 0 0 18px; }
.blog-card-foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 14px; border-top: 1px solid #f0edf3; }
.blog-card-foot time { color: #a9a3b4; font-size: .82rem; }
.blog-card-more { color: var(--primary); font-size: .85rem; font-weight: 700; }
.blog-card-more i { transition: transform .2s ease; }
.blog-card:hover .blog-card-more i { transform: translateX(4px); }

.blog-pagination { display: flex; align-items: center; justify-content: center; gap: 24px; margin-top: 56px; }
.blog-pagination a { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-weight: 700; }
.blog-pagination a:hover { color: var(--primary); }
.blog-pagination .page-info { color: var(--ink-soft); font-size: .9rem; }
.blog-empty { color: var(--ink-soft); padding: 40px 0; }

/* --- Artículo individual --- */
.post-hero { position: relative; padding: 116px 0 46px; background: #0e1627; color: #fff; overflow: hidden; }
.post-hero.has-image { padding: 200px 0 46px; }
.post-hero-media { position: absolute; inset: 0; z-index: 0; }
.post-hero-media img { width: 100%; height: 100%; object-fit: cover; opacity: .38; }
.post-hero-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(14,22,39,.55), rgba(14,22,39,.92)); }
.post-hero-inner { position: relative; z-index: 2; max-width: 800px; }
.post-back { display: inline-flex; align-items: center; gap: 8px; color: rgba(255,255,255,.72); font-size: .85rem; font-weight: 600; margin-bottom: 22px; }
.post-back:hover { color: #fff; }
.post-cat { display: inline-block; color: #fff; background: var(--primary); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; padding: 6px 13px; border-radius: 999px; margin-bottom: 18px; }
.post-hero h1 { font-family: var(--font-display); font-size: clamp(2.1rem, 5vw, 3.4rem); line-height: 1.08; letter-spacing: -.03em; margin: 0 0 20px; }
.post-meta { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.75); font-size: .92rem; }
.post-meta-sep { opacity: .5; }

.post-body { max-width: 760px; padding-top: 52px; padding-bottom: 20px; }
.post-content { color: #2c2836; font-size: 1.08rem; line-height: 1.78; }
.post-content > *:first-child { margin-top: 0; }
.post-content h2 { font-family: var(--font-display); font-size: 1.7rem; letter-spacing: -.02em; margin: 42px 0 16px; }
.post-content h3 { font-family: var(--font-display); font-size: 1.32rem; margin: 34px 0 14px; }
.post-content p { margin: 0 0 22px; }
.post-content a { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.post-content img { max-width: 100%; height: auto; margin: 12px 0; }
.post-content ul, .post-content ol { margin: 0 0 22px; padding-left: 24px; }
.post-content li { margin-bottom: 8px; }
.post-content blockquote { margin: 26px 0; padding: 6px 0 6px 22px; border-left: 3px solid var(--primary); color: var(--ink-soft); font-size: 1.18rem; font-style: italic; }
.post-content iframe { max-width: 100%; border: 0; margin: 14px 0; }
.post-content figure { margin: 20px 0; }
.post-content figcaption { color: #a9a3b4; font-size: .85rem; text-align: center; margin-top: 8px; }

.post-share { display: flex; align-items: center; gap: 12px; margin-top: 46px; padding-top: 26px; border-top: 1px solid #ece8f0; }
.post-share span { color: var(--ink-soft); font-size: .88rem; font-weight: 600; }
.post-share a { display: inline-grid; place-items: center; width: 40px; height: 40px; color: var(--ink-soft); border: 1px solid #e4e0ea; border-radius: 50%; transition: .2s ease; }
.post-share a:hover { color: #fff; background: var(--primary); border-color: var(--primary); transform: translateY(-2px); }

.post-related { padding: 70px 0 96px; background: var(--soft-warm); }
.post-related h2 { font-family: var(--font-display); font-size: 1.8rem; letter-spacing: -.02em; margin: 0 0 30px; }

@media (max-width: 900px) { .blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .blog-grid { grid-template-columns: 1fr; } .post-hero.has-image { padding-top: 150px; } }

/* Bloque de partners en la home (orientado a conversión) */
.home-partners { padding: 100px 0; color: #fff; background: #0e1627; }
.home-partners-head { max-width: 640px; }
.home-partners-head h2 { font-family: var(--font-display); font-size: clamp(2.2rem, 4.2vw, 3.35rem); line-height: 1.04; letter-spacing: -.03em; margin: 14px 0 16px; }
.home-partners-head p { color: rgba(255,255,255,.6); font-size: 1.06rem; line-height: 1.6; }
.home-partners-marks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 46px; }
.home-partners-marks .partner-wordmark { min-height: 0; padding: 26px 22px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.03); transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.home-partners-marks .partner-wordmark:hover { border-color: rgba(255,255,255,.32); background: rgba(255,255,255,.06); transform: translateY(-4px); }
.home-partners-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 40px; color: #fff; font-weight: 700; }
.home-partners-link i { transition: transform .2s ease; }
.home-partners-link:hover { color: var(--primary); }
.home-partners-link:hover i { transform: translateX(5px); }
@media (max-width: 820px) { .home-partners { padding: 78px 0; } .home-partners-marks { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .home-partners-marks { grid-template-columns: 1fr; } }

/* Dirección clicable en la página de contacto */
.contact-v3-map { display: block; width: fit-content; }
.contact-v3-map strong { transition: color .2s ease; }
.contact-v3-map:hover strong { color: var(--primary); }
