/* ==========================================================================
   ALUSUR · landing v2 — bolder pass
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body, h1, h2, h3, h4, p, ol, ul, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; height: auto; }
img { color: transparent; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
a { color: inherit; text-decoration: none; }
:focus-visible { outline: 2px solid var(--ember-700); outline-offset: 3px; border-radius: 1px; }

/* ── Tokens ────────────────────────────────────────────────── */
.v2 {
    --ink:        oklch(0.18 0.04 268);
    --ink-soft:   oklch(0.40 0.03 270);
    --ink-mute:   oklch(0.58 0.025 270);

    --paper:      oklch(0.985 0.006 80);
    --paper-warm: oklch(0.96 0.014 78);
    --paper-deep: oklch(0.92 0.018 75);
    --line:       oklch(0.86 0.014 270);
    --line-soft:  oklch(0.92 0.01 270);

    --alusur-950: oklch(0.14 0.18 268);
    --alusur-900: oklch(0.20 0.20 268);
    --alusur-700: oklch(0.32 0.22 268);
    --alusur-500: oklch(0.50 0.20 265);
    --alusur-300: oklch(0.78 0.10 262);
    --alusur-100: oklch(0.94 0.04 260);

    --ember-900: oklch(0.36 0.18 28);
    --ember-700: oklch(0.52 0.24 28);
    --ember-500: oklch(0.64 0.22 28);
    --ember-300: oklch(0.88 0.08 28);

    /* Spacing · 4pt base */
    --s-1: 4px;  --s-2: 8px;  --s-3: 10px; --s-4: 14px; --s-5: 18px;
    --s-6: 24px; --s-7: 32px; --s-8: 44px; --s-9: 56px; --s-10: 72px;

    /* Tipografía */
    --font-sans: "Switzer", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

    --t-meta:    0.6875rem;
    --t-sm:      0.8125rem;
    --t-base:    0.9375rem;
    --t-body:    1rem;
    --t-lg:      1.125rem;
    --t-xl:      1.375rem;
    --t-2xl:     clamp(1.25rem, 2.1vw, 1.5rem);
    --t-3xl:     clamp(1.5rem, 3.1vw, 2.25rem);
    --t-4xl:     clamp(2rem, 4.5vw, 3.5rem);
    --t-display: clamp(2rem, 6.5vw, 5rem);
    --t-mega:    clamp(4.5rem, 13vw, 9.5rem);
    --t-numeral: clamp(2rem, 4.5vw, 4rem);

    --lh-tight:  1.0;
    --lh-snug:   1.18;
    --lh-body:   1.55;
    --lh-prose:  1.65;

    --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
    --ease-out-q:  cubic-bezier(0.22, 1, 0.36, 1);
    --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
    --d-fast:      180ms;
    --d-base:      320ms;
    --d-slow:      640ms;
    --d-hero:      900ms;

    --bezel: clamp(20px, 4.2vw, 56px);
    --max:   1480px;
    --rule:  1px solid var(--line);

    background: var(--paper);
    color: var(--ink);
    font-family: var(--font-sans);
    font-size: var(--t-body);
    line-height: var(--lh-body);
    font-feature-settings: "ss01", "cv11", "kern";
    font-optical-sizing: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: clip;
    position: relative;
}

.v2 ::selection { background: var(--ember-300); color: var(--alusur-950); }

.v2 .v2-defs dd,
.v2 .v2-services__index,
.v2 .v2-journal__date,
.v2 .v2-foot__coords,
.v2 .v2-section__numeral,
.v2 .v2-eyebrow,
.v2 .v2-overture__num,
.v2 .v2-services__bignum,
.v2 .v2-locator__sec {
    font-variant-numeric: tabular-nums;
}

/* ── Bg blobs ────────────────────────────────────────────── */
.v2-bg-blob {
    position: fixed;
    z-index: 0;
    pointer-events: none;
    border-radius: 50%;
    filter: blur(120px);
    opacity: 0.32;
    transition: transform 1.2s var(--ease-out);
    will-change: transform;
}
.v2-bg-blob--1 {
    top: -10%;
    right: -8%;
    width: 540px;
    height: 540px;
    background: radial-gradient(circle at 35% 35%, var(--alusur-500), transparent 65%);
}
.v2-bg-blob--2 {
    bottom: 30%;
    left: -10%;
    width: 480px;
    height: 480px;
    background: radial-gradient(circle at 60% 50%, var(--ember-500), transparent 65%);
    opacity: 0.22;
}

/* ── Skip link ─────────────────────────────────────────────── */
.v2-skip {
    position: fixed;
    top: var(--s-3);
    left: var(--s-3);
    padding: var(--s-2) var(--s-4);
    background: var(--alusur-900);
    color: var(--paper);
    font-size: var(--t-sm);
    transform: translateY(-200%);
    transition: transform var(--d-fast) var(--ease-out);
    z-index: 100;
}
.v2-skip:focus { transform: none; }

/* ── Scroll progress (top hairline) ───────────────────────── */
.v2-progress {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: transparent;
    z-index: 60;
    pointer-events: none;
}
.v2-progress > span {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, var(--ember-500), var(--ember-700));
    transform-origin: left;
    transform: scaleX(var(--progress, 0));
    transition: transform 80ms linear;
}

/* ── Locator stamp (bottom-right, persistent) ─────────────── */
.v2-locator {
    position: fixed;
    bottom: var(--s-4);
    right: var(--s-4);
    z-index: 40;
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    padding: 8px 14px;
    background: color-mix(in oklch, var(--alusur-950) 88%, transparent);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--paper);
    border: 1px solid color-mix(in oklch, var(--paper) 14%, transparent);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity var(--d-base) var(--ease-out), transform var(--d-base) var(--ease-out);
    pointer-events: none;
}
.v2-locator[data-visible] {
    opacity: 1;
    transform: none;
}
.v2-locator__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ember-500);
    box-shadow: 0 0 0 4px oklch(0.64 0.22 28 / 0.18);
    animation: v2-pulse 2.4s var(--ease-in-out) infinite;
}
.v2-locator__sec { color: var(--ember-500); margin-left: 4px; }

@keyframes v2-pulse {
    0%, 100% { box-shadow: 0 0 0 4px oklch(0.64 0.22 28 / 0.18); }
    50%      { box-shadow: 0 0 0 8px oklch(0.64 0.22 28 / 0); }
}

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  NAV
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 50;
    padding: var(--s-3) 0;
    transition: background var(--d-base) var(--ease-out), border-color var(--d-base) var(--ease-out), padding var(--d-base) var(--ease-out), box-shadow var(--d-base) var(--ease-out);
    color: var(--paper);
    border-bottom: 1px solid transparent;
}
.v2-nav[data-scrolled="true"] {
    background: color-mix(in oklch, var(--paper) 92%, transparent);
    backdrop-filter: blur(14px) saturate(140%);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    color: var(--ink);
    border-bottom: var(--rule);
    padding: var(--s-2) 0;
    box-shadow: 0 4px 30px -20px oklch(0.16 0.18 268 / 0.4);
}

.v2-nav__inner {
    max-width: var(--max);
    margin: 0 auto;
    padding: 0 var(--bezel);
    display: grid;
    grid-template-columns: 1fr auto 1fr auto;
    align-items: center;
    gap: var(--s-5);
}
.v2-nav__brand { justify-self: start; }
.v2-nav__actions { justify-self: end; }

.v2-nav__brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    transition: opacity var(--d-fast) var(--ease-out);
}
.v2-nav__brand:hover { opacity: 0.86; }
.v2-nav__logo {
    height: 42px;
    width: auto;
    filter: brightness(0) invert(1);
    transition: filter var(--d-base) var(--ease-out);
}
.v2-nav[data-scrolled="true"] .v2-nav__logo { filter: none; }

.v2-nav__links {
    display: flex;
    gap: var(--s-5);
    align-items: center;
    justify-self: center;
    font-size: var(--t-sm);
    font-weight: 500;
}
.v2-nav__links a {
    position: relative;
    padding: var(--s-2) 0;
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    transition: opacity var(--d-fast) var(--ease-out);
}
.v2-nav__link-num {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.08em;
    color: var(--ember-500);
    opacity: 0.7;
}
.v2-nav[data-scrolled="true"] .v2-nav__link-num { color: var(--ember-700); opacity: 1; }
.v2-nav__links a::after {
    content: "";
    position: absolute;
    inset: auto 0 -2px 0;
    height: 1.5px;
    background: var(--ember-500);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--d-base) var(--ease-out);
}
.v2-nav__links a:hover::after,
.v2-nav__links a.is-active::after { transform: scaleX(1); }
.v2-nav__links a.is-active { color: var(--ember-500); }
.v2-nav[data-scrolled="true"] .v2-nav__links a.is-active { color: var(--alusur-700); }
.v2-nav[data-scrolled="true"] .v2-nav__links a::after { background: var(--alusur-700); }

.v2-nav__actions { display: flex; align-items: center; gap: var(--s-3); }
.v2-nav__phone {
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    font-family: var(--font-mono);
    font-size: var(--t-sm);
    letter-spacing: 0.04em;
    padding: var(--s-2) var(--s-3);
    transition: opacity var(--d-fast) var(--ease-out);
}
.v2-nav__phone:hover { opacity: 0.7; }

.v2-nav__cta {
    display: inline-flex;
    align-items: center;
    gap: var(--s-3);
    padding: 11px 18px;
    background: var(--ember-700);
    color: var(--alusur-950);
    font-size: var(--t-sm);
    font-weight: 600;
    letter-spacing: -0.005em;
    transition: background var(--d-fast) var(--ease-out), transform var(--d-fast) var(--ease-out), box-shadow var(--d-fast) var(--ease-out);
    border-radius: 2px;
    box-shadow: 0 6px 24px -10px oklch(0.52 0.24 28 / 0.55);
}
.v2-nav__cta:hover {
    background: var(--ember-500);
    transform: translateY(-1px);
    box-shadow: 0 10px 28px -12px oklch(0.52 0.24 28 / 0.7);
}
.v2-nav__cta svg { transition: transform var(--d-fast) var(--ease-out); }
.v2-nav__cta:hover svg { transform: translateX(3px); }

.v2-nav__toggle {
    display: none;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
}
.v2-nav__toggle span {
    display: block;
    width: 22px;
    height: 1.5px;
    background: currentColor;
    transition: transform var(--d-base) var(--ease-out), opacity var(--d-base) var(--ease-out);
}
.v2-nav__toggle[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(45deg); }
.v2-nav__toggle[aria-expanded="true"] span:last-child  { transform: translateY(-3px) rotate(-45deg); }

.v2-nav__drawer {
    border-top: var(--rule);
    padding: var(--s-5) var(--bezel) var(--s-7);
    background: var(--paper);
    color: var(--ink);
}
.v2-nav__drawer[hidden] { display: none; }
.v2-nav__drawer nav {
    display: grid;
    gap: var(--s-3);
    font-size: var(--t-xl);
    font-weight: 600;
    letter-spacing: -0.01em;
}
.v2-nav__drawer nav a {
    padding: var(--s-2) 0;
    border-bottom: var(--rule);
    display: inline-flex;
    align-items: baseline;
    gap: var(--s-3);
}
.v2-nav__drawer nav span {
    font-family: var(--font-mono);
    font-size: var(--t-sm);
    color: var(--ember-700);
    min-width: 24px;
}
.v2-nav__drawer-call {
    display: inline-block;
    margin-top: var(--s-5);
    font-family: var(--font-mono);
    font-size: var(--t-lg);
    color: var(--alusur-700);
}

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  HERO · giant type · 1995 stamp · 3 photos · sidebar · ticker
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-hero {
    position: relative;
    min-height: clamp(300px, 40vh, 400px);
    padding: clamp(44px, 5vh, 60px) var(--bezel) clamp(20px, 2.5vh, 32px);
    background: var(--alusur-950);
    color: var(--paper);
    overflow: hidden;
    isolation: isolate;
}

/* 1995 huge year stamp */
.v2-hero__year {
    position: absolute;
    top: 32%;
    right: 0;
    z-index: 3;
    line-height: 0.85;
    text-align: right;
    pointer-events: none;
    transform: translateX(20%);
}
.v2-hero__year-num {
    display: block;
    font-size: clamp(5rem, 18vw, 14rem);
    font-weight: 800;
    color: color-mix(in oklch, var(--paper) 8%, transparent);
    letter-spacing: -0.06em;
    transition: color var(--d-slow) var(--ease-out);
}
.v2-hero[data-revealed] .v2-hero__year-num {
    color: color-mix(in oklch, var(--ember-500) 18%, transparent);
}
.v2-hero__year-tag {
    display: block;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.5em;
    color: var(--ember-500);
    padding-right: 10%;
    margin-top: var(--s-2);
    opacity: 0;
    transition: opacity var(--d-slow) var(--ease-out) 600ms;
}
.v2-hero[data-revealed] .v2-hero__year-tag { opacity: 1; }

/* Main photo plate */
.v2-hero__plate {
    position: absolute;
    inset: 0;
    z-index: 0;
    margin: 0;
}
.v2-hero__plate-mask {
    position: absolute;
    inset: 0;
    overflow: hidden;
    clip-path: inset(5% 4% 5% 4%);
    transition: clip-path 1.4s var(--ease-out-q);
}
.v2-hero[data-revealed] .v2-hero__plate-mask { clip-path: inset(0 0 0 0); }
.v2-hero__plate-mask img {
    width: 100%;
    height: 110%;
    object-fit: cover;
    filter: saturate(0.78) contrast(1.04) brightness(0.78);
    transform: scale(1.06);
    transition: transform 1.6s var(--ease-out-q);
}
.v2-hero[data-revealed] .v2-hero__plate-mask img { transform: scale(1) translate3d(0, var(--parallax-y, 0), 0); }
.v2-hero__plate-tint {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(60% 70% at 18% 32%, color-mix(in oklch, var(--alusur-700) 70%, transparent) 0%, transparent 60%),
        radial-gradient(55% 65% at 82% 78%, color-mix(in oklch, var(--ember-700) 30%, transparent) 0%, transparent 55%),
        linear-gradient(180deg, color-mix(in oklch, var(--alusur-950) 50%, transparent) 0%, color-mix(in oklch, var(--alusur-950) 80%, transparent) 100%);
    mix-blend-mode: multiply;
}
.v2-hero__plate-grain {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 25% 30%, oklch(1 0 0 / 0.05) 1px, transparent 1.5px),
        radial-gradient(circle at 75% 70%, oklch(1 0 0 / 0.04) 1px, transparent 1.5px);
    background-size: 4px 4px, 5px 5px;
    opacity: 0.55;
    pointer-events: none;
}

/* Overlay photos */
.v2-hero__overlay {
    position: absolute;
    z-index: 2;
    overflow: hidden;
    border: 4px solid var(--alusur-950);
    box-shadow: 0 18px 45px -12px oklch(0 0 0 / 0.55);
    opacity: 0;
    transform: translateY(20px) scale(0.96);
    transition: opacity 900ms var(--ease-out-q) 700ms, transform 900ms var(--ease-out-q) 700ms;
}
.v2-hero[data-revealed] .v2-hero__overlay { opacity: 1; transform: none; }
.v2-hero__overlay--top {
    top: 14%;
    right: 12%;
    width: clamp(110px, 11vw, 180px);
    aspect-ratio: 1 / 1;
    transition-delay: 800ms;
}
.v2-hero__overlay--bot {
    bottom: 18%;
    right: 28%;
    width: clamp(96px, 10vw, 160px);
    aspect-ratio: 1 / 1;
    transition-delay: 1000ms;
}
.v2-hero__overlay img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.85);
}
.v2-hero__overlay-tag {
    position: absolute;
    top: 8px;
    left: 8px;
    background: oklch(0 0 0 / 0.55);
    color: var(--paper);
    padding: 3px 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.08em;
}

/* Hero grid */
.v2-hero__grid {
    position: relative;
    z-index: 3;
    max-width: var(--max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.85fr) minmax(0, 0.65fr);
    gap: clamp(var(--s-3), 3vw, var(--s-5));
    align-items: end;
}

.v2-hero__title-block {
    display: grid;
    gap: var(--s-2);
    max-width: 18ch;
}
.v2-hero__title {
    font-size: clamp(2rem, 6vw, 4.5rem);
    font-weight: 800;
    line-height: 0.88;
    letter-spacing: -0.045em;
    text-wrap: balance;
}
.v2-hero__line {
    display: block;
    overflow: hidden;
    line-height: 0.88;
}
.v2-hero__line-inner {
    display: inline-block;
    transform: translateY(110%);
    will-change: transform;
}
.v2-hero[data-revealed] .v2-hero__line-inner {
    animation: v2-line-up 1s var(--ease-out-q) forwards;
}
.v2-hero[data-revealed] .v2-hero__line:nth-child(1) .v2-hero__line-inner { animation-delay: 280ms; }
.v2-hero[data-revealed] .v2-hero__line:nth-child(2) .v2-hero__line-inner { animation-delay: 380ms; }
.v2-hero[data-revealed] .v2-hero__line:nth-child(3) .v2-hero__line-inner { animation-delay: 480ms; }
.v2-hero[data-revealed] .v2-hero__line:nth-child(4) .v2-hero__line-inner { animation-delay: 580ms; }

.v2-hero__line--accent .v2-hero__line-inner {
    color: var(--ember-500);
    font-style: italic;
    font-weight: 500;
    letter-spacing: -0.03em;
}
@keyframes v2-line-up {
    0%   { transform: translateY(110%); }
    100% { transform: translateY(0); }
}

.v2-hero__lead {
    font-size: var(--t-base);
    line-height: var(--lh-prose);
    color: color-mix(in oklch, var(--paper) 80%, transparent);
    max-width: 42ch;
    opacity: 0;
    transform: translateY(14px);
    transition: opacity var(--d-hero) var(--ease-out-q) 800ms, transform var(--d-hero) var(--ease-out-q) 800ms;
}
.v2-hero[data-revealed] .v2-hero__lead { opacity: 1; transform: none; }

.v2-hero__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-2);
    opacity: 0;
    transform: translateY(14px);
    transition: opacity var(--d-hero) var(--ease-out-q) 950ms, transform var(--d-hero) var(--ease-out-q) 950ms;
}
.v2-hero[data-revealed] .v2-hero__ctas { opacity: 1; transform: none; }

.v2-hero__eyebrow {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity var(--d-base) var(--ease-out) 200ms, transform var(--d-base) var(--ease-out) 200ms;
}
.v2-hero[data-revealed] .v2-hero__eyebrow { opacity: 1; transform: none; }

.v2-hero__meta {
    align-self: end;
    padding: var(--s-3);
    background: color-mix(in oklch, var(--alusur-950) 65%, transparent);
    border: 1px solid color-mix(in oklch, var(--paper) 18%, transparent);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    display: grid;
    gap: var(--s-2);
    opacity: 0;
    transform: translateY(20px);
    transition: opacity var(--d-hero) var(--ease-out-q) 700ms, transform var(--d-hero) var(--ease-out-q) 700ms;
    max-width: 300px;
    justify-self: end;
}
.v2-hero[data-revealed] .v2-hero__meta { opacity: 1; transform: none; }
.v2-hero__status {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 8px;
    padding-bottom: var(--s-2);
    border-bottom: 1px solid color-mix(in oklch, var(--paper) 20%, transparent);
}
.v2-hero__status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: color-mix(in oklch, var(--paper) 30%, transparent);
    transition: background var(--d-base) var(--ease-out), box-shadow var(--d-base) var(--ease-out);
}
.v2-hero__status-text {
    display: grid;
    gap: 1px;
    line-height: 1.15;
}
.v2-hero__status-label {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--paper);
}
.v2-hero__status-hours {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.04em;
    color: color-mix(in oklch, var(--paper) 60%, transparent);
}
.v2-hero__status[data-status="open"] .v2-hero__status-dot {
    background: oklch(0.72 0.18 145);
    box-shadow: 0 0 0 4px oklch(0.72 0.18 145 / 0.22);
    animation: v2-pulse-open 2.4s var(--ease-in-out) infinite;
}
.v2-hero__status[data-status="open"] .v2-hero__status-label { color: oklch(0.82 0.16 145); }

.v2-hero__status[data-status="closing"] .v2-hero__status-dot,
.v2-hero__status[data-status="opening"] .v2-hero__status-dot {
    background: var(--ember-500);
    box-shadow: 0 0 0 4px oklch(0.64 0.22 28 / 0.22);
    animation: v2-pulse-alert 1.5s var(--ease-in-out) infinite;
}
.v2-hero__status[data-status="closing"] .v2-hero__status-label,
.v2-hero__status[data-status="opening"] .v2-hero__status-label { color: var(--ember-500); }

.v2-hero__status[data-status="closed"] .v2-hero__status-dot {
    background: color-mix(in oklch, var(--paper) 40%, transparent);
}
.v2-hero__status[data-status="closed"] .v2-hero__status-label { color: color-mix(in oklch, var(--paper) 70%, transparent); }

@keyframes v2-pulse-open {
    0%, 100% { box-shadow: 0 0 0 4px oklch(0.72 0.18 145 / 0.22); }
    50%      { box-shadow: 0 0 0 9px oklch(0.72 0.18 145 / 0); }
}
@keyframes v2-pulse-alert {
    0%, 100% { box-shadow: 0 0 0 4px oklch(0.64 0.22 28 / 0.28); }
    50%      { box-shadow: 0 0 0 10px oklch(0.64 0.22 28 / 0); }
}

/* Bottom ticker */
.v2-hero__ticker {
    position: absolute;
    bottom: var(--s-2);
    left: 0;
    right: 0;
    z-index: 4;
    overflow: hidden;
    padding: 6px 0;
    border-top: 1px solid color-mix(in oklch, var(--paper) 14%, transparent);
    border-bottom: 1px solid color-mix(in oklch, var(--paper) 14%, transparent);
    background: color-mix(in oklch, var(--alusur-950) 70%, transparent);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.v2-hero__ticker-track {
    display: flex;
    gap: 0;
    white-space: nowrap;
    animation: v2-ticker 60s linear infinite;
    color: color-mix(in oklch, var(--paper) 55%, transparent);
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.v2-hero__ticker-track > span {
    padding: 0 var(--s-4);
    flex-shrink: 0;
}
@keyframes v2-ticker {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Defs (hero meta) */
.v2-defs { display: grid; gap: var(--s-2); }
.v2-defs > div {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: var(--s-2);
    padding-bottom: 6px;
    border-bottom: 1px solid color-mix(in oklch, var(--paper) 12%, transparent);
    font-size: var(--t-sm);
}
.v2-defs > div:last-child { border: 0; padding: 0; }
.v2-hero__meta .v2-defs dt {
    font-family: var(--font-mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: color-mix(in oklch, var(--paper) 50%, transparent);
    padding-top: 1px;
}
.v2-hero__meta .v2-defs dd { color: var(--paper); line-height: var(--lh-snug); }

/* Eyebrow */
.v2-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ember-500);
    line-height: 1;
}
.v2-eyebrow__bar { display: inline-block; width: 18px; height: 1.5px; background: var(--ember-500); }
.v2-eyebrow__sep { opacity: 0.5; }

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  MARQUEES
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-marquee {
    overflow: hidden;
    padding: var(--s-2) 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    position: relative;
    z-index: 1;
}
.v2-marquee--ink {
    background: var(--ink);
    color: var(--paper);
    border-color: oklch(0 0 0 / 0);
}
.v2-marquee--ember {
    background: var(--ember-700);
    color: var(--alusur-950);
    border-color: oklch(0 0 0 / 0);
}
.v2-marquee__track {
    display: inline-flex;
    align-items: center;
    gap: var(--s-4);
    white-space: nowrap;
    font-size: clamp(1.5rem, 3.8vw, 2.5rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1;
    animation: v2-marquee 50s linear infinite;
}
.v2-marquee--ink .v2-marquee__track { font-style: italic; font-weight: 600; }
.v2-marquee--ember .v2-marquee__track { font-weight: 800; text-transform: uppercase; letter-spacing: 0.01em; }
.v2-marquee__star {
    display: inline-block;
    color: var(--ember-500);
    font-size: 0.55em;
    font-style: normal;
    transform: translateY(-0.18em);
}
.v2-marquee--ember .v2-marquee__star { color: var(--alusur-950); opacity: 0.55; }
@keyframes v2-marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.v2-marquee:hover .v2-marquee__track { animation-play-state: paused; }

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  OVERTURE · stats editorial moment
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-overture {
    background: var(--paper-warm);
    padding: clamp(14px, 2vw, 24px) var(--bezel);
    border-bottom: var(--rule);
    position: relative;
    z-index: 1;
    overflow: hidden;
}
.v2-overture__inner {
    max-width: var(--max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
}
.v2-overture__line {
    display: grid;
    grid-template-rows: auto auto;
    align-items: baseline;
    gap: var(--s-2);
    padding: 0 clamp(var(--s-3), 1.8vw, var(--s-5));
    border-right: 1px solid var(--line);
}
.v2-overture__line:first-child { padding-left: 0; }
.v2-overture__line:last-child { border-right: 0; padding-right: 0; }
.v2-overture__num-word {
    display: inline-flex;
    align-items: baseline;
    gap: var(--s-2);
    flex-wrap: wrap;
}
.v2-overture__num {
    font-size: clamp(1.5rem, 3.2vw, 2.75rem);
    font-weight: 800;
    line-height: 0.9;
    letter-spacing: -0.04em;
    color: var(--alusur-700);
}
.v2-overture__word {
    font-size: clamp(1rem, 2.2vw, 1.625rem);
    font-weight: 300;
    font-style: italic;
    letter-spacing: -0.03em;
    color: var(--ink);
    line-height: 1;
}
.v2-overture__caption {
    font-size: var(--t-sm);
    line-height: var(--lh-prose);
    color: var(--ink-soft);
    text-wrap: pretty;
    max-width: 32ch;
    text-align: left;
    justify-self: start;
}
.v2-overture__line--2 .v2-overture__word { color: var(--ember-700); }
.v2-overture__line--3 .v2-overture__num { color: var(--ember-700); }
.v2-overture__caption {
    font-size: var(--t-base);
    line-height: var(--lh-prose);
    color: var(--ink-soft);
    max-width: 38ch;
    justify-self: end;
    text-align: right;
    text-wrap: pretty;
}

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  SECTION SHELL · giant numerals
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-section {
    position: relative;
    padding: clamp(20px, 3vw, 40px) var(--bezel);
    z-index: 1;
}
.v2-section + .v2-section { border-top: var(--rule); }
.v2-section:nth-of-type(odd) { background: var(--paper); }
.v2-section:nth-of-type(even) { background: var(--paper-warm); }

.v2-section__head {
    max-width: var(--max);
    margin: 0 auto clamp(14px, 2vw, 24px);
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: end;
    gap: clamp(var(--s-2), 1.8vw, var(--s-4));
}
.v2-section__head--giant .v2-section__numeral {
    font-size: var(--t-numeral);
    font-weight: 800;
    line-height: 0.8;
    letter-spacing: -0.06em;
    color: var(--ember-700);
    font-family: var(--font-sans);
    font-feature-settings: "salt" 1;
}
.v2-section__head--split { grid-template-columns: 1fr auto; }
.v2-section__head--split .v2-section__head-left {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: end;
    gap: clamp(var(--s-3), 2.5vw, var(--s-6));
}
.v2-section__kicker {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ember-700);
    margin-bottom: var(--s-2);
}
.v2-section__label {
    font-size: var(--t-4xl);
    font-weight: 700;
    letter-spacing: -0.035em;
    line-height: 0.92;
    text-wrap: balance;
}
.v2-section__intro {
    grid-column: 2 / -1;
    max-width: 50ch;
    color: var(--ink-soft);
    font-size: var(--t-base);
    line-height: var(--lh-body);
    margin-top: var(--s-2);
}
.v2-section__intro--right { text-align: right; max-width: 32ch; justify-self: end; align-self: end; }
.v2-section__more {
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    font-size: var(--t-sm);
    font-weight: 600;
    color: var(--alusur-700);
    border-bottom: 1px solid currentColor;
    padding-bottom: 2px;
    transition: gap var(--d-fast) var(--ease-out);
}
.v2-section__more:hover { gap: var(--s-3); }
.v2-section__more svg { transition: transform var(--d-fast) var(--ease-out); }
.v2-section__more:hover svg { transform: translateX(3px); }

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  OFICIO · manifesto editorial premium
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-oficio {
    padding-block: clamp(36px, 5.5vw, 64px);
    background:
        linear-gradient(180deg, var(--paper) 0%, color-mix(in oklch, var(--paper-warm) 80%, var(--paper)) 100%);
    position: relative;
    overflow: hidden;
}
.v2-oficio::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 20% 30%, oklch(0.52 0.24 28 / 0.04) 0, transparent 40%),
        radial-gradient(circle at 80% 70%, oklch(0.32 0.22 268 / 0.05) 0, transparent 45%);
    pointer-events: none;
}
.v2-oficio__inner {
    position: relative;
    max-width: 980px;
    margin: 0 auto;
    padding-inline: var(--bezel);
}

/* Chapter header · numeral grande + kicker mono + meta */
.v2-oficio__head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: end;
    gap: clamp(var(--s-3), 2vw, var(--s-5));
    padding-bottom: clamp(var(--s-3), 1.8vw, var(--s-4));
    border-bottom: 1px solid var(--line);
    margin-bottom: clamp(var(--s-5), 4vw, var(--s-7));
}
.v2-oficio__head-mark {
    font-size: clamp(2.25rem, 4.2vw, 3.5rem);
    font-weight: 800;
    line-height: 0.85;
    color: var(--ember-700);
    letter-spacing: -0.04em;
    font-feature-settings: "salt" 1;
}
.v2-oficio__head-text { display: grid; gap: 6px; }
.v2-oficio__head-kicker {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ink-mute);
}
.v2-oficio__head-title {
    font-size: clamp(1.375rem, 2.4vw, 2rem);
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--ink);
}
.v2-oficio__head-meta {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ink-mute);
    text-align: right;
    max-width: 22ch;
    line-height: 1.4;
}

/* Quote · centro de gravedad de la sección */
.v2-oficio__quote {
    position: relative;
    margin: 0 auto clamp(var(--s-5), 4vw, var(--s-7));
    padding: clamp(var(--s-3), 2.4vw, var(--s-5)) clamp(var(--s-3), 2vw, var(--s-5));
    text-align: center;
    max-width: 680px;
}
.v2-oficio__quote-mark {
    position: absolute;
    top: -0.18em;
    left: clamp(-12px, -1vw, 0px);
    font-size: clamp(4.5rem, 10vw, 8.5rem);
    line-height: 0.7;
    font-family: Georgia, "Times New Roman", serif;
    font-style: italic;
    font-weight: 400;
    color: var(--ember-700);
    opacity: 0.12;
    user-select: none;
    z-index: 0;
}
.v2-oficio__quote-body {
    position: relative;
    z-index: 1;
    font-size: clamp(1.625rem, 4.2vw, 3rem);
    font-weight: 500;
    line-height: 1.06;
    letter-spacing: -0.035em;
    color: var(--ink);
    text-wrap: balance;
    margin: 0;
}
.v2-oficio__quote-body em {
    font-style: italic;
    font-weight: 400;
    color: var(--alusur-700);
}
.v2-oficio__quote-coda {
    margin: clamp(var(--s-2), 1.2vw, var(--s-3)) 0 0;
    font-size: clamp(1rem, 1.7vw, 1.25rem);
    font-weight: 400;
    font-style: italic;
    color: var(--ink-soft);
    letter-spacing: -0.015em;
    line-height: 1.3;
}
.v2-oficio__quote-attr {
    display: inline-flex;
    align-items: center;
    gap: var(--s-3);
    margin-top: clamp(var(--s-3), 1.8vw, var(--s-4));
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ink-mute);
}
.v2-oficio__quote-line {
    display: inline-block;
    width: 36px;
    height: 1px;
    background: var(--ember-700);
}

/* Break · separador con etiqueta */
.v2-oficio__break {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: clamp(var(--s-3), 1.8vw, var(--s-4));
    margin-bottom: clamp(var(--s-4), 3vw, var(--s-6));
}
.v2-oficio__break-rule { height: 1px; background: var(--line); }
.v2-oficio__break-text {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ember-700);
    font-weight: 600;
    white-space: nowrap;
}

/* Rules · 2x2 con números grandes ámbar/rojo */
.v2-oficio__rules {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(var(--s-4), 2.6vw, var(--s-5)) clamp(var(--s-5), 4vw, var(--s-7));
}
.v2-oficio__rules > li {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: clamp(var(--s-3), 1.4vw, var(--s-4));
    row-gap: 4px;
    align-items: start;
}
.v2-oficio__rule-num {
    font-family: var(--font-mono);
    font-size: clamp(1.125rem, 1.8vw, 1.5rem);
    font-weight: 700;
    color: var(--ember-700);
    letter-spacing: -0.02em;
    line-height: 1;
    grid-row: 1 / 3;
    padding-top: 2px;
}
.v2-oficio__rule-title {
    font-size: clamp(1rem, 1.5vw, 1.25rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: var(--ink);
}
.v2-oficio__rule-text {
    font-size: var(--t-sm);
    line-height: 1.5;
    color: var(--ink-soft);
    max-width: 32ch;
    text-wrap: pretty;
}

/* GSAP word splitting · default state */
.v2-oficio .v2-word {
    display: inline-block;
    will-change: transform, opacity, filter;
}

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  SERVICIOS · big numbers as art
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-services__list {
    max-width: var(--max);
    margin: 0 auto;
    display: grid;
    gap: 0;
}
.v2-services__item {
    border-top: var(--rule);
    transition: background var(--d-base) var(--ease-out);
    position: relative;
    overflow: hidden;
}
.v2-services__item:last-child { border-bottom: var(--rule); }
.v2-services__item:hover { background: color-mix(in oklch, var(--alusur-100) 45%, transparent); }

.v2-services__link {
    display: grid;
    grid-template-columns: clamp(40px, 5vw, 64px) minmax(0, 0.95fr) minmax(0, 1.4fr);
    align-items: center;
    gap: clamp(var(--s-2), 1.8vw, var(--s-4));
    padding: var(--s-2) 0;
    transition: padding var(--d-base) var(--ease-out);
    position: relative;
    z-index: 1;
}
.v2-services__item:nth-child(even) .v2-services__link {
    grid-template-columns: clamp(44px, 5.5vw, 72px) minmax(0, 1.4fr) minmax(0, 0.95fr);
}
.v2-services__item:nth-child(even) .v2-services__media { order: 3; }
.v2-services__link:hover { padding-inline: var(--s-2); }

.v2-services__bignum {
    font-size: clamp(1.625rem, 3.4vw, 2.75rem);
    font-weight: 700;
    color: var(--ember-700);
    letter-spacing: -0.05em;
    line-height: 0.85;
    transition: color var(--d-base) var(--ease-out), transform var(--d-base) var(--ease-out);
}
.v2-services__link:hover .v2-services__bignum { color: var(--alusur-700); transform: translateY(-2px); }

.v2-services__media {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--paper-deep);
    transform: scale(0.96);
    opacity: 0.7;
    clip-path: inset(8% 6% 8% 6%);
    transition: transform var(--d-slow) var(--ease-out-q), opacity var(--d-slow) var(--ease-out), clip-path var(--d-slow) var(--ease-out-q);
}
.v2-services__item.is-revealed .v2-services__media,
.v2-services__item:hover .v2-services__media {
    transform: scale(1);
    opacity: 1;
    clip-path: inset(0 0 0 0);
}
.v2-services__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.88);
    transition: transform var(--d-slow) var(--ease-out-q), filter var(--d-slow) var(--ease-out);
    transform: scale(1.06);
}
.v2-services__link:hover .v2-services__media img { transform: scale(1.12); filter: saturate(1); }

.v2-services__body { display: grid; gap: var(--s-1); align-content: center; }
.v2-services__title {
    font-size: clamp(1.125rem, 2.2vw, 1.625rem);
    font-weight: 700;
    line-height: var(--lh-snug);
    letter-spacing: -0.025em;
    color: var(--ink);
    text-wrap: balance;
}
.v2-services__desc {
    color: var(--ink-soft);
    font-size: var(--t-sm);
    line-height: var(--lh-prose);
    max-width: 52ch;
    text-wrap: pretty;
}
.v2-services__more {
    margin-top: var(--s-1);
    display: inline-flex;
    align-items: center;
    gap: var(--s-1);
    font-size: 11px;
    font-weight: 600;
    color: var(--alusur-700);
    transition: gap var(--d-fast) var(--ease-out);
}
.v2-services__link:hover .v2-services__more { gap: var(--s-3); }
.v2-services__more svg { transition: transform var(--d-fast) var(--ease-out); }
.v2-services__link:hover .v2-services__more svg { transform: translateX(4px); }

.v2-services__empty { padding: var(--s-5) 0; text-align: center; color: var(--ink-mute); font-style: italic; }

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  PROYECTOS · featured + rail
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-projects { padding-bottom: var(--s-3); }

/* ── Featured · spread editorial (foto + sidebar tipográfica) ─ */
.v2-projects__featured {
    display: grid;
    grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
    gap: clamp(var(--s-3), 2vw, var(--s-5));
    align-items: stretch;
    max-width: var(--max);
    margin: 0 auto var(--s-3);
    padding: var(--s-2) 0;
    position: relative;
}
.v2-projects__featured::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 1px;
    background: var(--line);
}
.v2-projects__featured::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 1px;
    background: var(--line);
}

.v2-projects__featured-figure {
    margin: 0;
    aspect-ratio: 5 / 4;
    overflow: hidden;
    background: var(--paper-deep);
    position: relative;
}
.v2-projects__featured-figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.88);
    transition: transform 1s var(--ease-out-q), filter var(--d-slow) var(--ease-out);
    transform: scale(1.03);
}
.v2-projects__featured:hover .v2-projects__featured-figure img {
    transform: scale(1.07);
    filter: saturate(1);
}

.v2-projects__featured-body {
    display: grid;
    grid-template-rows: auto auto auto 1fr auto;
    gap: var(--s-2);
    align-content: start;
    padding: var(--s-1) 0;
    max-width: 38ch;
}

.v2-projects__featured-kicker {
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--ember-700);
}
.v2-projects__featured-kicker-num {
    font-weight: 600;
    color: var(--ink);
    letter-spacing: 0.08em;
    font-size: var(--t-sm);
}
.v2-projects__featured-kicker-rule {
    width: clamp(20px, 3vw, 36px);
    height: 1px;
    background: var(--ember-700);
}

.v2-projects__featured-title {
    font-size: clamp(1.5rem, 3.4vw, 2.85rem);
    font-weight: 700;
    line-height: 0.98;
    letter-spacing: -0.035em;
    color: var(--ink);
    text-wrap: balance;
    transition: color var(--d-base) var(--ease-out);
}
.v2-projects__featured:hover .v2-projects__featured-title {
    color: var(--alusur-700);
}

.v2-projects__featured-desc {
    font-size: var(--t-base);
    line-height: var(--lh-prose);
    color: var(--ink-soft);
    max-width: 42ch;
    text-wrap: pretty;
    border-top: 1px solid var(--line-soft);
    padding-top: var(--s-2);
}

.v2-projects__featured-cta {
    align-self: end;
    margin-top: var(--s-1);
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    color: var(--alusur-700);
    font-size: var(--t-sm);
    font-weight: 600;
    letter-spacing: 0.02em;
    transition: color var(--d-fast) var(--ease-out), gap var(--d-fast) var(--ease-out);
}
.v2-projects__featured-cta-line {
    display: inline-block;
    width: 32px;
    height: 1.5px;
    background: currentColor;
    transition: width var(--d-base) var(--ease-out-q);
}
.v2-projects__featured:hover .v2-projects__featured-cta { gap: var(--s-4); color: var(--ember-700); }
.v2-projects__featured:hover .v2-projects__featured-cta-line { width: 60px; }
.v2-projects__featured-cta svg { transition: transform var(--d-base) var(--ease-out-q); }
.v2-projects__featured:hover .v2-projects__featured-cta svg { transform: translateX(6px); }

/* ── SWIPER · Projects slideshow (Swiper.js) ─────────────── */
.v2-swiper {
    position: relative;
    max-width: var(--max);
    margin: 0 auto;
    background: var(--alusur-950);
    overflow: hidden;
    isolation: isolate;
    aspect-ratio: 5 / 3;
    max-height: 640px;
    min-height: 380px;
}
.v2-swiper .swiper-wrapper { height: 100%; }
.v2-swiper__slide {
    position: relative;
    overflow: hidden;
    background: var(--alusur-950);
}
.v2-swiper__link {
    display: block;
    position: absolute;
    inset: 0;
    color: var(--paper);
    text-decoration: none;
}

/* Blurred backdrop — same image, scaled and softened to fill any aspect */
.v2-swiper__bg {
    position: absolute;
    inset: -8%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: blur(38px) saturate(0.7) brightness(0.45);
    transform: scale(1.18);
    z-index: 0;
    pointer-events: none;
}

.v2-swiper__figure {
    position: absolute;
    inset: 0;
    margin: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}
.v2-swiper__figure img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: saturate(1) brightness(0.92);
    box-shadow: 0 24px 60px -20px oklch(0 0 0 / 0.6);
}
.v2-swiper__shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, transparent 45%, oklch(0.14 0.18 268 / 0.6) 95%, oklch(0.14 0.18 268 / 0.78) 100%);
    pointer-events: none;
    z-index: 2;
}
.v2-swiper__meta {
    position: absolute;
    inset: auto 0 0 0;
    z-index: 3;
    padding: clamp(var(--s-4), 4vw, var(--s-7)) clamp(var(--s-4), 4vw, var(--s-7)) clamp(var(--s-6), 5vw, var(--s-8));
    display: grid;
    gap: var(--s-2);
    max-width: 760px;
}
.v2-swiper__num {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ember-500);
}
.v2-swiper__title {
    font-size: clamp(1.5rem, 3.6vw, 2.75rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: var(--paper);
    text-wrap: balance;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.v2-swiper__cta {
    margin-top: var(--s-3);
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--paper);
    transition: color var(--d-fast) var(--ease-out), gap var(--d-fast) var(--ease-out);
}
.v2-swiper__cta-line {
    display: inline-block;
    width: 28px;
    height: 1px;
    background: var(--ember-500);
    transition: width var(--d-base) var(--ease-out-q);
}
.v2-swiper__link:hover .v2-swiper__cta { gap: var(--s-3); color: var(--ember-500); }
.v2-swiper__link:hover .v2-swiper__cta-line { width: 48px; }
.v2-swiper__cta svg { transition: transform var(--d-base) var(--ease-out-q); }
.v2-swiper__link:hover .v2-swiper__cta svg { transform: translateX(6px); }

/* Custom prev/next buttons (override Swiper default) */
.v2-swiper__btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: clamp(46px, 4vw, 56px);
    height: clamp(46px, 4vw, 56px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in oklch, var(--alusur-950) 55%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid color-mix(in oklch, var(--paper) 22%, transparent);
    color: var(--paper);
    border-radius: 50%;
    cursor: pointer;
    transition: background 200ms ease, border-color 200ms ease, transform 200ms ease, color 200ms ease;
}
.v2-swiper__btn:hover {
    background: var(--ember-700);
    border-color: var(--ember-700);
    color: var(--alusur-950);
    transform: translateY(-50%) scale(1.06);
}
.v2-swiper__btn--prev { left: clamp(var(--s-3), 2vw, var(--s-5)); }
.v2-swiper__btn--next { right: clamp(var(--s-3), 2vw, var(--s-5)); }
.v2-swiper__btn.swiper-button-disabled { opacity: 0.35; pointer-events: none; }

/* HUD top-right */
.v2-swiper__hud {
    position: absolute;
    inset: var(--s-4) var(--s-4) auto auto;
    z-index: 9;
    display: grid;
    gap: var(--s-2);
    justify-items: end;
}
.v2-swiper__fraction {
    font-family: var(--font-mono);
    font-size: var(--t-sm);
    letter-spacing: 0.06em;
    color: var(--paper);
    background: color-mix(in oklch, var(--alusur-950) 50%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    padding: 6px 12px;
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
}
.v2-swiper__fraction-current { color: var(--ember-500); font-weight: 700; font-size: var(--t-base); }
.v2-swiper__fraction-sep,
.v2-swiper__fraction-total { color: color-mix(in oklch, var(--paper) 55%, transparent); }

/* Override Swiper pagination · custom bullets */
.v2-swiper .v2-swiper__pagination {
    position: static;
    display: inline-flex;
    gap: 6px;
}
.v2-swiper .v2-swiper__pagination .swiper-pagination-bullet {
    width: 22px;
    height: 4px;
    background: color-mix(in oklch, var(--paper) 30%, transparent);
    border-radius: 0;
    opacity: 1;
    transition: background 250ms ease, width 350ms cubic-bezier(0.22, 1, 0.36, 1);
    cursor: pointer;
    margin: 0 !important;
}
.v2-swiper .v2-swiper__pagination .swiper-pagination-bullet:hover {
    background: color-mix(in oklch, var(--paper) 70%, transparent);
}
.v2-swiper .v2-swiper__pagination .swiper-pagination-bullet-active {
    background: var(--ember-500);
    width: 40px;
}

/* Mobile tweaks */
@media (max-width: 720px) {
    .v2-swiper { aspect-ratio: 4 / 5; max-height: none; min-height: 480px; }
    .v2-swiper__title { font-size: clamp(1.25rem, 5vw, 1.75rem); -webkit-line-clamp: 4; line-clamp: 4; }
    .v2-swiper__meta { max-width: none; padding: var(--s-4) var(--s-4) var(--s-6); }
    .v2-swiper__hud { inset: auto var(--s-3) var(--s-3) auto; }
    .v2-swiper .v2-swiper__pagination { display: none; }
    .v2-swiper__btn { width: 40px; height: 40px; }
    .v2-swiper__btn--prev { left: var(--s-2); }
    .v2-swiper__btn--next { right: var(--s-2); }
    .v2-swiper__figure img { max-height: 65%; }
    .v2-swiper__bg { filter: blur(28px) saturate(0.7) brightness(0.4); }
}

/* legacy backwards-compat */

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  MURAL · asymmetric editorial photo grid
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-mural {
    background: var(--alusur-950);
    color: var(--paper);
    padding: clamp(32px, 5vw, 56px) var(--bezel);
    position: relative;
    overflow: hidden;
}
.v2-mural::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(70% 60% at 80% 10%, color-mix(in oklch, var(--alusur-700) 55%, transparent) 0%, transparent 60%),
        radial-gradient(60% 70% at 10% 90%, color-mix(in oklch, var(--ember-700) 22%, transparent) 0%, transparent 55%);
    pointer-events: none;
    opacity: 0.6;
}

.v2-mural__head {
    position: relative;
    z-index: 1;
    max-width: var(--max);
    margin: 0 auto clamp(20px, 3vw, 36px);
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    align-items: end;
    column-gap: var(--s-5);
    row-gap: 4px;
    padding-bottom: var(--s-3);
    border-bottom: 1px solid color-mix(in oklch, var(--paper) 14%, transparent);
}
.v2-mural__kicker {
    grid-column: 1;
    grid-row: 1;
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ember-500);
}
.v2-mural__title {
    grid-column: 1;
    grid-row: 2;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--paper);
}
.v2-mural__cta {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: end;
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ember-500);
    transition: color var(--d-fast) var(--ease-out), gap var(--d-fast) var(--ease-out);
}
.v2-mural__cta-line {
    display: inline-block;
    width: 20px;
    height: 1px;
    background: currentColor;
    transition: width var(--d-base) var(--ease-out-q);
}
.v2-mural__cta:hover { color: var(--paper); gap: var(--s-3); }
.v2-mural__cta:hover .v2-mural__cta-line { width: 36px; }
.v2-mural__cta svg { transition: transform var(--d-base) var(--ease-out-q); }
.v2-mural__cta:hover svg { transform: translateX(4px); }

.v2-mural__grid {
    position: relative;
    z-index: 1;
    max-width: var(--max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(2, clamp(160px, 20vw, 260px));
    grid-template-areas:
        "a a a b b c"
        "a a a d e e";
    gap: clamp(4px, 0.6vw, 10px);
}
.v2-mural__tile {
    position: relative;
    overflow: hidden;
    background: oklch(0.22 0.18 268);
    display: block;
}
.v2-mural__tile--1 { grid-area: a; }
.v2-mural__tile--2 { grid-area: b; }
.v2-mural__tile--3 { grid-area: c; }
.v2-mural__tile--4 { grid-area: d; }
.v2-mural__tile--5 { grid-area: e; }

.v2-mural__index {
    position: absolute;
    top: var(--s-3);
    left: var(--s-3);
    z-index: 2;
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.06em;
    color: var(--ember-500);
    background: oklch(0 0 0 / 0.35);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    padding: 4px 8px;
    line-height: 1;
}
.v2-mural__tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.85) brightness(0.86);
    transition: transform 900ms var(--ease-out-q), filter var(--d-base) var(--ease-out);
    transform: scale(1.03);
}
.v2-mural__tile:hover img,
.v2-mural__tile:focus-visible img {
    transform: scale(1.08);
    filter: saturate(1) brightness(1);
}

.v2-mural__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 4px;
    padding: var(--s-4) var(--s-4) var(--s-4);
    color: var(--paper);
    background: linear-gradient(180deg, transparent 35%, oklch(0 0 0 / 0.7) 100%);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity var(--d-base) var(--ease-out), transform var(--d-base) var(--ease-out);
}
.v2-mural__tile:hover .v2-mural__overlay,
.v2-mural__tile:focus-visible .v2-mural__overlay {
    opacity: 1;
    transform: none;
}
.v2-mural__overlay-tag {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ember-500);
}
.v2-mural__overlay-title {
    font-size: clamp(0.875rem, 1.2vw, 1.0625rem);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.015em;
    text-wrap: balance;
}
.v2-mural__overlay-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--paper);
}

/* GSAP initial state */
[data-mural-anim] .v2-mural__tile { opacity: 0; }
[data-mural-anim].is-revealed .v2-mural__tile { opacity: 1; }

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  CLIENTES DESTACADOS · spreads editoriales con slideshow por marca
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-clientes__list {
    max-width: var(--max);
    margin: 0 auto;
    display: grid;
    gap: 0;
}
.v2-cliente {
    padding: clamp(var(--s-4), 2.6vw, var(--s-6)) 0;
    border-top: var(--rule);
}
.v2-cliente:last-child { border-bottom: var(--rule); }

.v2-cliente__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--s-4);
    margin-bottom: var(--s-4);
}
.v2-cliente__brand {
    display: inline-flex;
    align-items: center;
    gap: clamp(var(--s-3), 1.6vw, var(--s-5));
    min-width: 0;
}
.v2-cliente__logo {
    width: clamp(48px, 5vw, 72px);
    height: clamp(48px, 5vw, 72px);
    flex-shrink: 0;
    background: var(--paper-deep);
    border-radius: 4px;
    padding: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.v2-cliente__logo img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}
.v2-cliente__id {
    display: grid;
    gap: 2px;
}
.v2-cliente__nombre {
    font-size: clamp(1.25rem, 2.4vw, 1.875rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.05;
    color: var(--ink);
}
.v2-cliente__lugar {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ink-mute);
}
.v2-cliente__more {
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    font-size: var(--t-sm);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--alusur-700);
    transition: color var(--d-fast) var(--ease-out), gap var(--d-fast) var(--ease-out);
}
.v2-cliente__more-line {
    width: 20px;
    height: 1.5px;
    background: currentColor;
    transition: width var(--d-base) var(--ease-out-q);
}
.v2-cliente__more:hover { color: var(--ember-700); gap: var(--s-3); }
.v2-cliente__more:hover .v2-cliente__more-line { width: 36px; }
.v2-cliente__more svg { transition: transform var(--d-base) var(--ease-out-q); }
.v2-cliente__more:hover svg { transform: translateX(4px); }

.v2-cliente__slider {
    position: relative;
}
.v2-cliente__rail {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: clamp(220px, 22vw, 320px);
    gap: var(--s-3);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding-bottom: var(--s-1);
}
.v2-cliente__rail::-webkit-scrollbar { display: none; }

.v2-cliente__obra {
    position: relative;
    scroll-snap-align: start;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--paper-deep);
    border-radius: 2px;
    display: block;
}
.v2-cliente__obra img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.9);
    transition: transform 900ms var(--ease-out-q), filter var(--d-slow) var(--ease-out);
    transform: scale(1.03);
}
.v2-cliente__obra:hover img { transform: scale(1.08); filter: saturate(1); }
.v2-cliente__obra::after {
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(180deg, transparent 60%, oklch(0.14 0.18 268 / 0.55) 100%);
    opacity: 0;
    transition: opacity var(--d-base) var(--ease-out);
    pointer-events: none;
}
.v2-cliente__obra:hover::after { opacity: 1; }
.v2-cliente__obra-tag {
    position: absolute;
    inset: auto var(--s-3) var(--s-3) var(--s-3);
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.04em;
    color: var(--paper);
    text-shadow: 0 1px 4px oklch(0 0 0 / 0.5);
    opacity: 0;
    transform: translateY(6px);
    transition: opacity var(--d-base) var(--ease-out), transform var(--d-base) var(--ease-out);
    z-index: 1;
}
.v2-cliente__obra:hover .v2-cliente__obra-tag { opacity: 1; transform: none; }

.v2-cliente__controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--s-3);
    margin-top: var(--s-3);
}
.v2-cliente__counter {
    font-family: var(--font-mono);
    font-size: var(--t-sm);
    letter-spacing: 0.06em;
    color: var(--ink-mute);
}
.v2-cliente__counter [data-cliente-counter] { color: var(--alusur-700); font-weight: 700; }
.v2-cliente__buttons { display: inline-flex; gap: var(--s-2); }
.v2-cliente__nav {
    width: 36px; height: 36px;
    display: inline-flex; align-items: center; justify-content: center;
    border: var(--rule); border-radius: 50%;
    color: var(--ink);
    transition: background var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out), border-color var(--d-fast) var(--ease-out);
}
.v2-cliente__nav:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.v2-cliente__nav[disabled] { opacity: 0.25; pointer-events: none; }

.v2-cliente__empty {
    font-style: italic;
    color: var(--ink-mute);
    font-size: var(--t-sm);
    padding: var(--s-3) 0;
}

/* CLIENTES (fallback línea simple cuando no hay clientes destacados) */
.v2-clients__line {
    max-width: var(--max);
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: clamp(var(--s-2), 1.6vw, var(--s-4));
    border-top: var(--rule);
    border-bottom: var(--rule);
    padding: clamp(var(--s-2), 1.6vw, var(--s-4)) 0;
}
.v2-clients__line li {
    display: inline-flex;
    align-items: baseline;
    gap: var(--s-2);
    transition: color var(--d-fast) var(--ease-out), transform var(--d-fast) var(--ease-out);
    cursor: default;
}
.v2-clients__line li:hover { color: var(--alusur-700); transform: translateY(-1px); }
.v2-clients__num {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    color: var(--ember-700);
    letter-spacing: 0.06em;
    align-self: flex-start;
    padding-top: 2px;
}
.v2-clients__name {
    font-size: clamp(1rem, 1.9vw, 1.5rem);
    font-weight: 600;
    letter-spacing: -0.015em;
    line-height: 1;
    color: inherit;
}

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  DIARIO / BLOG
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-journal__list {
    max-width: var(--max);
    margin: 0 auto;
}
.v2-journal__item { border-top: var(--rule); }
.v2-journal__item:last-child { border-bottom: var(--rule); }

.v2-journal__link {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr) auto;
    gap: var(--s-4);
    align-items: center;
    padding: var(--s-3) 0;
    transition: background var(--d-base) var(--ease-out), padding-inline var(--d-base) var(--ease-out);
}
.v2-journal__link:hover {
    background: color-mix(in oklch, var(--alusur-100) 35%, transparent);
    padding-inline: var(--s-3);
}

.v2-journal__photo {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--paper-deep);
}
.v2-journal__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.85);
    transition: transform var(--d-slow) var(--ease-out-q);
    transform: scale(1.04);
}
.v2-journal__link:hover .v2-journal__photo img { transform: scale(1.1); }

.v2-journal__copy { display: grid; gap: var(--s-1); }
.v2-journal__date {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    color: var(--ember-700);
    letter-spacing: 0.06em;
}
.v2-journal__title {
    font-size: var(--t-lg);
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: var(--lh-snug);
    color: var(--ink);
    text-wrap: balance;
}
.v2-journal__excerpt {
    font-size: var(--t-sm);
    line-height: var(--lh-prose);
    color: var(--ink-soft);
    text-wrap: pretty;
    max-width: 56ch;
}
.v2-journal__cta {
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--alusur-700);
}
.v2-journal__cta svg { transition: transform var(--d-fast) var(--ease-out); }
.v2-journal__link:hover .v2-journal__cta svg { transform: translateX(4px); }

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  CONTACTO drenched
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-contact {
    position: relative;
    padding: clamp(40px, 6vw, 80px) var(--bezel);
    background: var(--alusur-950);
    color: var(--paper);
    overflow: hidden;
    isolation: isolate;
}
.v2-contact__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        radial-gradient(60% 60% at 80% 20%, color-mix(in oklch, var(--alusur-700) 80%, transparent) 0%, transparent 60%),
        radial-gradient(50% 70% at 10% 90%, color-mix(in oklch, var(--ember-700) 35%, transparent) 0%, transparent 55%),
        linear-gradient(180deg, var(--alusur-950), var(--alusur-900));
}
.v2-contact > *:not(.v2-contact__bg) { position: relative; z-index: 1; }

.v2-contact__head { color: var(--paper); margin-bottom: var(--s-4); }
.v2-contact__head .v2-section__numeral { color: var(--ember-500); }
.v2-contact__head .v2-section__kicker { color: var(--ember-500); }
.v2-contact__head .v2-section__label { color: var(--paper); }

.v2-contact__grid {
    max-width: var(--max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.95fr);
    gap: clamp(var(--s-4), 3vw, var(--s-6));
    align-items: start;
}

.v2-contact__pitch { display: grid; gap: var(--s-3); }
.v2-contact__heading {
    font-size: clamp(1.5rem, 3.6vw, 2.75rem);
    font-weight: 700;
    line-height: 1.0;
    letter-spacing: -0.035em;
    text-wrap: balance;
}
.v2-contact__heading-accent {
    display: block;
    color: var(--ember-500);
    font-style: italic;
    font-weight: 500;
    margin-top: 2px;
}
.v2-contact__sub {
    font-size: var(--t-base);
    line-height: var(--lh-prose);
    color: color-mix(in oklch, var(--paper) 78%, transparent);
    max-width: 46ch;
    text-wrap: pretty;
}

.v2-contact__channels {
    display: grid;
    gap: 0;
    border-top: 1px solid color-mix(in oklch, var(--paper) 22%, transparent);
}
.v2-contact__channels li {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: var(--s-3);
    padding: var(--s-2) 0;
    border-bottom: 1px solid color-mix(in oklch, var(--paper) 12%, transparent);
    align-items: baseline;
    font-size: var(--t-base);
}
.v2-contact__field {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: color-mix(in oklch, var(--paper) 55%, transparent);
}
.v2-contact__big {
    font-size: var(--t-xl);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--paper);
    transition: color var(--d-fast) var(--ease-out);
}
.v2-contact__big:hover { color: var(--ember-500); }
.v2-contact__big--alt { font-size: var(--t-base); font-weight: 500; }
.v2-contact__instagram {
    color: color-mix(in oklch, var(--paper) 70%, transparent);
    font-size: var(--t-sm);
    border-top: 1px solid color-mix(in oklch, var(--paper) 14%, transparent);
    padding-top: var(--s-2);
}
.v2-contact__instagram a { color: var(--ember-500); border-bottom: 1px solid currentColor; }

.v2-contact__form {
    display: grid;
    gap: var(--s-2);
    padding: var(--s-4);
    background: color-mix(in oklch, var(--paper) 5%, transparent);
    border: 1px solid color-mix(in oklch, var(--paper) 18%, transparent);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.v2-contact__form-eyebrow {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ember-500);
    margin-bottom: var(--s-1);
}
.v2-contact__form-note {
    font-size: var(--t-sm);
    color: color-mix(in oklch, var(--paper) 60%, transparent);
    text-align: center;
    margin-top: var(--s-1);
}
.v2-field { display: grid; gap: 3px; }
.v2-field__label {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: color-mix(in oklch, var(--paper) 65%, transparent);
}
.v2-field input,
.v2-field textarea {
    width: 100%;
    padding: var(--s-2) 0;
    background: transparent;
    border: 0;
    border-bottom: 1px solid color-mix(in oklch, var(--paper) 22%, transparent);
    color: var(--paper);
    font-family: inherit;
    font-size: var(--t-base);
    transition: border-color var(--d-fast) var(--ease-out);
    resize: vertical;
}
.v2-field input:focus,
.v2-field textarea:focus { outline: 0; border-bottom-color: var(--ember-500); }
.v2-field input::placeholder,
.v2-field textarea::placeholder { color: color-mix(in oklch, var(--paper) 35%, transparent); }

/* Buttons */
.v2-button {
    display: inline-flex;
    align-items: center;
    gap: var(--s-3);
    padding: 14px 22px;
    font-size: var(--t-base);
    font-weight: 600;
    letter-spacing: -0.005em;
    border-radius: 2px;
    transition: transform var(--d-fast) var(--ease-out), background var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out), box-shadow var(--d-fast) var(--ease-out);
}
.v2-button svg { transition: transform var(--d-base) var(--ease-out); }
.v2-button:hover svg { transform: translateX(4px); }
.v2-button--big { padding: 18px 28px; font-size: var(--t-lg); }
.v2-button--primary {
    background: var(--ember-700);
    color: var(--alusur-950);
    box-shadow: 0 8px 28px -10px oklch(0.52 0.24 28 / 0.55);
}
.v2-button--primary:hover {
    background: var(--ember-500);
    transform: translateY(-1px);
    box-shadow: 0 12px 32px -10px oklch(0.52 0.24 28 / 0.7);
}
.v2-button--ghost-light {
    background: transparent;
    color: var(--paper);
    border: 1px solid color-mix(in oklch, var(--paper) 35%, transparent);
}
.v2-button--ghost-light:hover {
    background: color-mix(in oklch, var(--paper) 10%, transparent);
    border-color: var(--paper);
}
.v2-button--full { width: 100%; justify-content: space-between; }

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  FOOTER · ALUSUR mega
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-foot {
    background: var(--ink);
    color: color-mix(in oklch, var(--paper) 75%, transparent);
    padding: var(--s-5) var(--bezel) var(--s-4);
    position: relative;
    z-index: 1;
    overflow: hidden;
}
.v2-foot__monogram {
    pointer-events: none;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    line-height: 0.72;
    margin: 0 calc(var(--bezel) * -1) var(--s-3);
    overflow: hidden;
}
.v2-foot__monogram span {
    font-size: clamp(3.5rem, 11vw, 7rem);
    font-weight: 800;
    letter-spacing: -0.06em;
    color: transparent;
    background:
        linear-gradient(180deg,
            color-mix(in oklch, var(--paper) 22%, transparent),
            color-mix(in oklch, var(--paper) 5%, transparent) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    white-space: nowrap;
    transform: translateY(8%);
    user-select: none;
}

.v2-foot__top {
    max-width: var(--max);
    margin: 0 auto var(--s-5);
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.6fr);
    gap: clamp(var(--s-4), 3vw, var(--s-6));
}
.v2-foot__brand { display: grid; gap: var(--s-2); align-content: start; }
.v2-foot__logo { height: 32px; width: auto; filter: brightness(0) invert(1); }
.v2-foot__legal { font-weight: 600; color: var(--paper); font-size: var(--t-base); }
.v2-foot__brand p { font-size: var(--t-sm); }

.v2-foot__cols {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--s-4);
}
.v2-foot__cols section { display: grid; gap: var(--s-2); align-content: start; }
.v2-foot__cols h4 {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ember-500);
    font-weight: 500;
}
.v2-foot__cols ul { display: grid; gap: 4px; }
.v2-foot__cols a {
    font-size: var(--t-sm);
    color: color-mix(in oklch, var(--paper) 80%, transparent);
    transition: color var(--d-fast) var(--ease-out);
}
.v2-foot__cols a:hover { color: var(--ember-500); }

.v2-foot__bottom {
    max-width: var(--max);
    margin: 0 auto;
    border-top: 1px solid color-mix(in oklch, var(--paper) 14%, transparent);
    padding-top: var(--s-3);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: var(--s-3);
    align-items: center;
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: color-mix(in oklch, var(--paper) 55%, transparent);
}
.v2-foot__coords { justify-self: center; color: var(--ember-500); }
.v2-foot__legacy { justify-self: end; transition: color var(--d-fast) var(--ease-out); }
.v2-foot__legacy:hover { color: var(--paper); }

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  CLIENTE DETALLE · página dedicada
   ╚══════════════════════════════════════════════════════════════════════╝ */

.v2-cdh {
    padding: clamp(96px, 12vh, 132px) var(--bezel) clamp(36px, 5vw, 56px);
    background: var(--paper-warm);
    border-bottom: var(--rule);
}
.v2-cdh__breadcrumb {
    max-width: var(--max);
    margin: 0 auto var(--s-5);
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-mute);
    display: flex; flex-wrap: wrap; gap: var(--s-2);
    align-items: center;
}
.v2-cdh__breadcrumb a { color: var(--alusur-700); }
.v2-cdh__breadcrumb-current { color: var(--ink); }
.v2-cdh__inner {
    max-width: var(--max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr);
    gap: clamp(var(--s-5), 4vw, var(--s-8));
    align-items: end;
}
.v2-cdh__logo {
    width: clamp(64px, 7vw, 96px);
    height: clamp(64px, 7vw, 96px);
    background: var(--paper);
    border: 1px solid var(--line);
    padding: 12px;
    margin-bottom: var(--s-4);
    display: inline-flex; align-items: center; justify-content: center;
}
.v2-cdh__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.v2-cdh__title {
    font-size: clamp(2.5rem, 6.5vw, 5rem);
    font-weight: 700;
    line-height: 0.96;
    letter-spacing: -0.035em;
    color: var(--ink);
    text-wrap: balance;
}
.v2-cdh__lugar {
    margin-top: var(--s-2);
    font-family: var(--font-mono);
    font-size: var(--t-sm);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ember-700);
}
.v2-cdh__descripcion {
    margin-top: var(--s-4);
    font-size: var(--t-lg);
    line-height: var(--lh-prose);
    color: var(--ink-soft);
    max-width: 56ch;
    text-wrap: pretty;
}
.v2-cdh__meta {
    padding: var(--s-4);
    border: 1px solid var(--line);
    background: var(--paper);
}
.v2-cdh__defs > div {
    grid-template-columns: 80px 1fr;
    border-bottom-color: var(--line-soft);
}
.v2-cdh__defs dt { color: var(--ink-mute); padding-top: 1px; }
.v2-cdh__defs dd { color: var(--ink); }

/* Obras list */
.v2-cdobras__list {
    max-width: var(--max);
    margin: 0 auto;
    display: grid;
    gap: 0;
}
.v2-cdobra {
    border-top: var(--rule);
}
.v2-cdobra:last-child { border-bottom: var(--rule); }
.v2-cdobra__link {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.5fr);
    gap: clamp(var(--s-4), 3vw, var(--s-6));
    align-items: center;
    padding: clamp(var(--s-4), 2.4vw, var(--s-5)) 0;
    transition: padding var(--d-base) var(--ease-out);
}
.v2-cdobra:nth-child(even) .v2-cdobra__link {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.1fr);
}
.v2-cdobra:nth-child(even) .v2-cdobra__media { order: 2; }
.v2-cdobra__link:hover { padding-inline: var(--s-3); }
.v2-cdobra__media {
    aspect-ratio: 5 / 4;
    overflow: hidden;
    background: var(--paper-deep);
}
.v2-cdobra__media img {
    width: 100%; height: 100%;
    object-fit: cover;
    filter: saturate(0.88);
    transform: scale(1.03);
    transition: transform 900ms var(--ease-out-q), filter var(--d-slow) var(--ease-out);
}
.v2-cdobra__link:hover .v2-cdobra__media img { transform: scale(1.08); filter: saturate(1); }
.v2-cdobra__media-empty {
    width: 100%; height: 100%;
    background: linear-gradient(135deg, var(--paper-deep) 0%, var(--paper-warm) 100%);
}
.v2-cdobra__body { display: grid; gap: var(--s-3); }
.v2-cdobra__num {
    font-family: var(--font-mono);
    font-size: var(--t-meta);
    color: var(--ember-700);
    letter-spacing: 0.06em;
}
.v2-cdobra__titulo {
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.025em;
    color: var(--ink);
    text-wrap: balance;
}
.v2-cdobra__descripcion {
    font-size: var(--t-base);
    line-height: var(--lh-prose);
    color: var(--ink-soft);
    max-width: 56ch;
    text-wrap: pretty;
}
.v2-cdobra__more {
    margin-top: var(--s-2);
    display: inline-flex;
    align-items: center;
    gap: var(--s-3);
    font-size: var(--t-sm);
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--alusur-700);
    transition: color var(--d-fast) var(--ease-out);
}
.v2-cdobra__more-line {
    width: 28px; height: 1.5px;
    background: currentColor;
    transition: width var(--d-base) var(--ease-out-q);
}
.v2-cdobra__link:hover .v2-cdobra__more { color: var(--ember-700); }
.v2-cdobra__link:hover .v2-cdobra__more-line { width: 52px; }
.v2-cdobra__more svg { transition: transform var(--d-base) var(--ease-out-q); }
.v2-cdobra__link:hover .v2-cdobra__more svg { transform: translateX(4px); }

/* Relatos */
.v2-cdrelatos__list {
    max-width: var(--max);
    margin: 0 auto;
    display: grid;
    gap: clamp(var(--s-5), 5vw, var(--s-8));
}
.v2-cdrelato {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(var(--s-5), 4vw, var(--s-7));
    align-items: center;
}
.v2-cdrelato--left .v2-cdrelato__media { order: 2; }
.v2-cdrelato__media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--paper-deep);
}
.v2-cdrelato__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.9); }
.v2-cdrelato__text { display: grid; gap: var(--s-3); }
.v2-cdrelato__titulo {
    font-size: clamp(1.375rem, 2.6vw, 1.875rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: var(--ink);
}
.v2-cdrelato__contenido {
    font-size: var(--t-base);
    line-height: var(--lh-prose);
    color: var(--ink-soft);
    text-wrap: pretty;
    max-width: 58ch;
}

/* CTA cierre */
.v2-cdcta {
    background: var(--alusur-950);
    color: var(--paper);
    padding: clamp(56px, 7vw, 96px) var(--bezel);
}
.v2-cdcta__inner {
    max-width: var(--max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) auto;
    gap: clamp(var(--s-5), 4vw, var(--s-8));
    align-items: center;
}
.v2-cdcta__heading {
    font-size: clamp(1.875rem, 4vw, 3.25rem);
    font-weight: 700;
    line-height: 1.04;
    letter-spacing: -0.03em;
    text-wrap: balance;
}
.v2-cdcta__accent {
    display: block;
    color: var(--ember-500);
    font-style: italic;
    font-weight: 500;
    margin-top: 6px;
}
.v2-cdcta__actions { display: inline-flex; gap: var(--s-3); align-items: center; flex-wrap: wrap; }

@media (max-width: 1080px) {
    .v2-cdh__inner { grid-template-columns: 1fr; gap: var(--s-5); }
    .v2-cdh__meta { max-width: 460px; }
    .v2-cdobra__link, .v2-cdobra:nth-child(even) .v2-cdobra__link {
        grid-template-columns: 1fr;
        gap: var(--s-3);
    }
    .v2-cdobra:nth-child(even) .v2-cdobra__media { order: 0; }
    .v2-cdrelato, .v2-cdrelato--left { grid-template-columns: 1fr; }
    .v2-cdrelato--left .v2-cdrelato__media { order: 0; }
    .v2-cdcta__inner { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .v2-cdh { padding: 88px var(--s-4) var(--s-5); }
    .v2-cdh__title { font-size: clamp(2rem, 9vw, 3rem); }
    .v2-cdobra__titulo { font-size: clamp(1.25rem, 6vw, 1.75rem); }
    .v2-cdrelato__titulo { font-size: clamp(1.125rem, 5vw, 1.5rem); }
    .v2-cdcta__heading { font-size: clamp(1.5rem, 7vw, 2.25rem); }
}

/* Clientes preview · mobile responsive */
@media (max-width: 720px) {
    .v2-cliente__head { flex-direction: column; align-items: flex-start; gap: var(--s-3); }
    .v2-cliente__nombre { font-size: clamp(1.125rem, 5vw, 1.5rem); }
    .v2-cliente__rail { grid-auto-columns: 65vw; }
    .v2-cliente__more { font-size: 11px; }
}

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  REVEALS
   ╚══════════════════════════════════════════════════════════════════════╝ */

[data-reveal] {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity var(--d-slow) var(--ease-out-q), transform var(--d-slow) var(--ease-out-q);
    transition-delay: calc(var(--i, 0) * 70ms);
}
[data-reveal].is-revealed { opacity: 1; transform: none; }
[data-reveal="hero"] { opacity: 1; transform: none; transition: none; }

/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  RESPONSIVE
   ╚══════════════════════════════════════════════════════════════════════╝ */

/* ── Tablet & small laptop ─────────────────────────────────── */
@media (max-width: 1080px) {
    .v2-nav__inner { grid-template-columns: auto 1fr auto; }
    .v2-nav__links { display: none; }
    .v2-nav__actions { display: none; }
    .v2-nav__toggle { display: inline-flex; }

    .v2-hero { min-height: clamp(580px, 76vh, 760px); }
    .v2-hero__overlay { display: none; }
    .v2-hero__year {
        top: auto;
        bottom: 26%;
        right: -6%;
        transform: none;
        opacity: 0.6;
    }
    .v2-hero__year-num { font-size: clamp(7rem, 26vw, 13rem); }
    .v2-hero__year-tag { display: none; }

    .v2-hero__grid { grid-template-columns: 1fr; gap: var(--s-6); align-items: start; }
    .v2-hero__title-block { max-width: 22ch; }
    .v2-hero__meta { max-width: 460px; justify-self: stretch; }

    .v2-overture__line { padding: 0 var(--s-4); }

    .v2-oficio__head { grid-template-columns: auto 1fr; row-gap: var(--s-3); }
    .v2-oficio__head-meta { grid-column: 1 / -1; text-align: left; max-width: none; padding-top: var(--s-2); border-top: 1px solid var(--line-soft); }
    .v2-oficio__quote { padding-inline: var(--s-4); }
    .v2-oficio__rules { gap: clamp(var(--s-4), 3vw, var(--s-5)) clamp(var(--s-5), 4vw, var(--s-7)); }
    .v2-oficio__rule-text { font-size: var(--t-sm); }

    .v2-services__link { grid-template-columns: clamp(48px, 7vw, 76px) 1fr 1.4fr; gap: var(--s-4); padding: var(--s-5) 0; }

    .v2-clients__line { gap: var(--s-4); padding: var(--s-4) 0; }
    .v2-clients__name { font-size: clamp(1.125rem, 2.6vw, 1.5rem); }

    .v2-journal__link { grid-template-columns: 140px 1fr auto; }

    .v2-contact__grid { grid-template-columns: 1fr; gap: var(--s-6); }

    .v2-foot__top { grid-template-columns: 1fr; }
    .v2-foot__monogram span { font-size: clamp(6rem, 22vw, 11rem); }
}

/* ── Mobile (≤ 720px): redesign every section, not scale ─── */
@media (max-width: 720px) {
    .v2 { font-size: 1rem; }
    .v2-bg-blob { display: none; }

    /* Locator: tighter, primary line only */
    .v2-locator {
        bottom: var(--s-3);
        right: var(--s-3);
        font-size: 9px;
        padding: 5px 9px;
        gap: 5px;
    }
    .v2-locator__sec { display: none; }

    /* Nav: just the logo, smaller */
    .v2-nav { padding: var(--s-2) 0; }
    .v2-nav[data-scrolled="true"] { padding: 6px 0; }
    .v2-nav__inner { padding: 0 var(--s-4); gap: var(--s-3); }
    .v2-nav__logo { height: 32px; }
    .v2-nav__toggle { width: 40px; height: 40px; }

    /* Hero: tighten without sacrificing impact */
    .v2-hero {
        padding: 88px var(--s-4) var(--s-7);
        min-height: clamp(540px, 78vh, 720px);
    }
    .v2-hero__year {
        bottom: 36%;
        right: -10%;
        opacity: 0.32;
    }
    .v2-hero__year-num { font-size: clamp(6rem, 28vw, 9rem); }
    .v2-hero__title-block { max-width: none; gap: var(--s-4); }
    .v2-hero__title { font-size: clamp(2.5rem, 13vw, 4.25rem); }
    .v2-hero__lead { font-size: var(--t-base); max-width: 38ch; }
    .v2-hero__ctas { gap: var(--s-2); }
    .v2-hero__ctas .v2-button { flex: 1 1 auto; justify-content: center; padding: 14px 18px; font-size: var(--t-sm); }
    .v2-hero__ctas .v2-button--big { font-size: var(--t-base); }
    .v2-hero__meta { padding: var(--s-4); gap: var(--s-3); max-width: none; }
    .v2-hero__status { padding-bottom: var(--s-2); }
    .v2-hero__status-label { font-size: 10px; }
    .v2-defs > div { grid-template-columns: 84px 1fr; gap: var(--s-3); padding-bottom: var(--s-2); }
    .v2-defs > div dt { font-size: 9px; }
    .v2-defs > div dd { font-size: var(--t-sm); }
    .v2-hero__ticker { padding: 8px 0; }
    .v2-hero__ticker-track { font-size: 9px; }
    .v2-hero__ticker-track > span { padding: 0 var(--s-4); }

    /* Marquees */
    .v2-marquee { padding: var(--s-2) 0; }
    .v2-marquee__track { font-size: clamp(1.375rem, 7.5vw, 2.25rem); gap: var(--s-4); }

    /* Overture · stack vertical en móvil */
    .v2-overture { padding: var(--s-6) var(--s-4); }
    .v2-overture__inner {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .v2-overture__line {
        padding: var(--s-4) 0;
        border-right: 0;
        border-bottom: 1px solid var(--line);
        gap: var(--s-2);
    }
    .v2-overture__line:first-child { padding-top: 0; }
    .v2-overture__line:last-child { padding-bottom: 0; border-bottom: 0; }
    .v2-overture__num { font-size: clamp(2.5rem, 12vw, 3.75rem); }
    .v2-overture__word { font-size: clamp(1.5rem, 6vw, 2.25rem); }
    .v2-overture__caption {
        font-size: var(--t-sm);
    }

    /* Section heads · numeral above label */
    .v2-section { padding: var(--s-5) var(--s-4); }
    .v2-section__head {
        grid-template-columns: 1fr;
        gap: var(--s-3);
        margin-bottom: var(--s-5);
    }
    .v2-section__head--giant .v2-section__numeral {
        font-size: clamp(3rem, 14vw, 4.5rem);
        line-height: 0.8;
    }
    .v2-section__head--split { grid-template-columns: 1fr; gap: var(--s-4); align-items: start; }
    .v2-section__head--split .v2-section__head-left { grid-template-columns: 1fr; gap: var(--s-2); }
    .v2-section__intro {
        grid-column: auto;
        margin-top: var(--s-2);
        font-size: var(--t-sm);
    }
    .v2-section__intro--right {
        text-align: left;
        max-width: 36ch;
        align-self: start;
        justify-self: start;
    }
    .v2-section__label { font-size: clamp(1.875rem, 8.5vw, 2.75rem); }
    .v2-section__kicker { font-size: 10px; margin-bottom: var(--s-2); }

    /* Manifesto */
    .v2-oficio { padding-block: clamp(36px, 8vw, 56px); }
    .v2-oficio__head { margin-bottom: var(--s-6); padding-bottom: var(--s-4); }
    .v2-oficio__head-mark { font-size: clamp(2.5rem, 11vw, 3.5rem); }
    .v2-oficio__head-title { font-size: clamp(1.375rem, 6.5vw, 1.875rem); }
    .v2-oficio__quote { margin-bottom: var(--s-6); padding-block: var(--s-4); padding-inline: 0; }
    .v2-oficio__quote-mark { font-size: clamp(5rem, 22vw, 7rem); top: -0.25em; left: -8px; }
    .v2-oficio__quote-body { font-size: clamp(1.625rem, 8vw, 2.5rem); }
    .v2-oficio__quote-coda { font-size: clamp(1rem, 4.5vw, 1.25rem); }
    .v2-oficio__break { margin-bottom: var(--s-5); }
    .v2-oficio__break-text { font-size: 10px; letter-spacing: 0.14em; }
    .v2-oficio__rules { grid-template-columns: 1fr; gap: var(--s-5); }
    .v2-oficio__rule-num { font-size: clamp(1.25rem, 6vw, 1.625rem); }
    .v2-oficio__rule-title { font-size: clamp(1rem, 4.5vw, 1.25rem); }

    /* Services · stack vertical */
    .v2-services__list { margin: 0 calc(var(--s-4) * -1); }
    .v2-services__item { padding: 0 var(--s-4); }
    .v2-services__link {
        grid-template-columns: 1fr;
        gap: var(--s-3);
        padding: var(--s-5) 0;
    }
    .v2-services__bignum { font-size: clamp(2.25rem, 11vw, 3rem); }
    .v2-services__media {
        aspect-ratio: 16 / 10;
        clip-path: none;
        opacity: 1;
        transform: none;
    }
    .v2-services__body { gap: var(--s-2); }
    .v2-services__title { font-size: clamp(1.375rem, 6vw, 1.875rem); }
    .v2-services__desc { font-size: var(--t-sm); }
    .v2-services__more { font-size: 11px; }
    .v2-services__link:hover { padding-inline: 0; }

    /* Featured · spread vertical en mobile */
    .v2-projects__featured {
        grid-template-columns: 1fr;
        gap: var(--s-5);
        padding: var(--s-4) 0;
        margin-bottom: var(--s-5);
    }
    .v2-projects__featured-figure { aspect-ratio: 4 / 3; }
    .v2-projects__featured-body {
        max-width: none;
        padding: 0;
        gap: var(--s-3);
    }
    .v2-projects__featured-title { font-size: clamp(1.25rem, 5.5vw, 1.85rem); }
    .v2-projects__featured-desc { font-size: var(--t-sm); padding-top: var(--s-3); }
    .v2-projects__featured-cta { font-size: var(--t-sm); }
    .v2-projects__featured-cta-line { width: 24px; }

    /* Mural · móvil: 2 columnas */
    .v2-mural { padding: var(--s-5) var(--s-4); }
    .v2-mural__head {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        row-gap: var(--s-2);
    }
    .v2-mural__cta {
        grid-column: 1;
        grid-row: 3;
        justify-self: start;
    }
    .v2-mural__grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(4, 32vw);
        grid-template-areas:
            "a a"
            "a a"
            "b c"
            "d e";
    }
    .v2-mural__overlay { padding: var(--s-3); }
    .v2-mural__overlay-tag { font-size: 9px; }

    /* Clients · simpler stack */
    .v2-clients__line {
        gap: var(--s-3) var(--s-5);
        padding: var(--s-4) 0;
    }
    .v2-clients__name { font-size: clamp(1rem, 4.5vw, 1.375rem); }

    /* Journal */
    .v2-journal__link {
        grid-template-columns: 84px 1fr;
        column-gap: var(--s-3);
        row-gap: var(--s-1);
        padding: var(--s-4) 0;
        align-items: start;
    }
    .v2-journal__link:hover { padding-inline: 0; background: transparent; }
    .v2-journal__photo {
        grid-row: 1 / 4;
        aspect-ratio: 1 / 1;
        align-self: start;
    }
    .v2-journal__date { font-size: 10px; }
    .v2-journal__title { font-size: var(--t-base); }
    .v2-journal__excerpt { display: none; }
    .v2-journal__cta { font-size: 10px; margin-top: var(--s-1); }

    /* Contact */
    .v2-contact { padding: var(--s-7) var(--s-4); }
    .v2-contact__head { margin-bottom: var(--s-5); }
    .v2-contact__heading { font-size: clamp(1.75rem, 8vw, 2.5rem); }
    .v2-contact__sub { font-size: var(--t-base); }
    .v2-contact__big { font-size: clamp(1.375rem, 6vw, 1.875rem); }
    .v2-contact__big--alt { font-size: var(--t-base); }
    .v2-contact__channels li {
        grid-template-columns: 1fr;
        gap: 4px;
        padding: var(--s-3) 0;
    }
    .v2-contact__form { padding: var(--s-4); }
    .v2-contact__form-eyebrow { font-size: 10px; }

    /* Buttons full-width on mobile for thumb-reach */
    .v2-button {
        font-size: var(--t-sm);
        padding: 12px 18px;
    }
    .v2-button--big { padding: 14px 20px; font-size: var(--t-base); }

    /* Footer */
    .v2-foot { padding: var(--s-4) var(--s-4) var(--s-3); }
    .v2-foot__monogram {
        margin: 0 calc(var(--s-4) * -1) var(--s-5);
    }
    .v2-foot__monogram span { font-size: clamp(4rem, 25vw, 8rem); }
    .v2-foot__top { margin-bottom: var(--s-4); gap: var(--s-4); }
    .v2-foot__cols { grid-template-columns: 1fr 1fr; gap: var(--s-4); }
    .v2-foot__cols section:nth-child(3) { grid-column: 1 / -1; }
    .v2-foot__bottom {
        grid-template-columns: 1fr;
        gap: var(--s-2);
        padding-top: var(--s-3);
        text-align: left;
    }
    .v2-foot__coords { justify-self: start; }
    .v2-foot__legacy { justify-self: start; }
}

/* ── Smallest phones (≤ 480px): hide decorations, max breath ── */
@media (max-width: 480px) {
    .v2-locator { display: none; }
    .v2-progress > span { background: var(--ember-700); }

    .v2-hero { padding: 80px var(--s-3) var(--s-6); }
    .v2-hero__year { display: none; }
    .v2-hero__title { font-size: clamp(2.25rem, 14vw, 3.5rem); letter-spacing: -0.04em; }
    .v2-hero__ctas { flex-direction: column; align-items: stretch; }
    .v2-hero__ctas .v2-button { width: 100%; }
    .v2-hero__ticker { display: none; }

    .v2-marquee__track { font-size: clamp(1.25rem, 7vw, 1.75rem); }

    .v2-overture { padding: var(--s-5) var(--s-3); }
    .v2-overture__num { font-size: clamp(2rem, 11vw, 3rem); }
    .v2-overture__word { font-size: clamp(1.25rem, 6vw, 1.875rem); }

    .v2-section { padding: var(--s-4) var(--s-3); }
    .v2-section__label { font-size: clamp(1.625rem, 8vw, 2.25rem); }
    .v2-section__head--giant .v2-section__numeral { font-size: clamp(2.5rem, 12vw, 3.75rem); }

    .v2-services__list { margin: 0 calc(var(--s-3) * -1); }
    .v2-services__item { padding: 0 var(--s-3); }
    .v2-services__bignum { font-size: clamp(2rem, 10vw, 3rem); }

    .v2-clients__name { font-size: clamp(0.9375rem, 4vw, 1.25rem); }

    .v2-mural__grid { grid-template-rows: repeat(4, 36vw); }

    .v2-journal__link { grid-template-columns: 64px 1fr; }
    .v2-journal__photo { aspect-ratio: 1 / 1; }

    .v2-contact { padding: var(--s-6) var(--s-3); }
    .v2-contact__form { padding: var(--s-3); }

    .v2-foot { padding: var(--s-4) var(--s-3) var(--s-2); }
    .v2-foot__monogram { margin: 0 calc(var(--s-3) * -1) var(--s-3); }
    .v2-foot__monogram span { font-size: clamp(3.5rem, 28vw, 7rem); }
    .v2-foot__cols { grid-template-columns: 1fr; }
}

/* ── No hover (touch devices): kill hover-only effects ───── */
@media (hover: none) {
    .v2-services__item:hover,
    .v2-services__item:nth-child(even):hover { background: transparent; }
    .v2-clients__line li:hover { transform: none; color: inherit; }
    .v2-marquee:hover .v2-marquee__track { animation-play-state: running; }
    .v2-mural__tile:hover .v2-mural__overlay { opacity: 1; transform: none; }
    .v2-services__media { transform: none; opacity: 1; clip-path: none; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    [data-reveal] { opacity: 1; transform: none; }
    .v2-hero__line-inner { transform: none !important; }
    .v2-hero__lead, .v2-hero__ctas, .v2-hero__meta, .v2-hero__eyebrow,
    .v2-hero__overlay, .v2-hero__year-tag, .v2-hero__year-num { opacity: 1 !important; transform: none !important; }
    .v2-hero__plate-mask { clip-path: inset(0 0 0 0) !important; }
    .v2-bg-blob { display: none; }
    .v2-marquee__track,
    .v2-hero__ticker-track { animation: none !important; }
}
