:root {
    --green: #05c979;
    --ink: #02374f;
    --deep: #02374f;
    --paper: #f7f7f4;
    --line: #d9dddb;
    --muted: #617078;
    --nomada-violet: #7132f5;
    --radius: 6px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--deep); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
em { color: var(--green); font-style: normal; }

.site-header { position: sticky; top: 0; z-index: 20; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 78px; padding: 0 4vw; background: rgba(247,247,244,.95); border-bottom: 1px solid rgba(7,29,36,.1); backdrop-filter: blur(16px); }
.brand { display: block; width: 116px; }
.brand img { width: 100%; height: auto; }
.site-nav { display: flex; gap: 38px; font-size: 12px; font-weight: 700; }
.site-nav a { position: relative; padding: 30px 0; }
.site-nav a::after { content: ''; position: absolute; right: 0; bottom: 20px; left: 0; height: 2px; background: var(--green); transform: scaleX(0); transition: .25s; }
.site-nav a:hover::after { transform: scaleX(1); }
.header-cta { justify-self: end; }
.menu-toggle { display: none; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 34px; min-width: 140px; padding: 14px 22px; border-radius: 999px; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.button--green { background: var(--green); }
.button--outline { border: 1px solid currentColor; }
.section-light { background: var(--paper); }
.section-dark { background: var(--deep); color: #fff; }
.eyebrow { margin: 0 0 28px; font-size: 10px; font-weight: 800; line-height: 1.35; letter-spacing: .18em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { letter-spacing: -.055em; }

.hero { position: relative; min-height: 680px; overflow: hidden; }
.hero-copy { position: relative; z-index: 3; width: 58%; min-height: 680px; padding: 80px 3vw 72px 6vw; }
.hero h1 { max-width: 780px; margin-bottom: 24px; font-size: clamp(64px, 7vw, 118px); font-weight: 950; line-height: .84; }
.hero .lead { max-width: 500px; margin-bottom: 18px; color: var(--muted); font-size: 20px; line-height: 1.35; }
.hero-disciplines { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.hero-disciplines span { padding: 7px 11px; border: 1px solid #b9c4c3; border-radius: 999px; font-size: 10px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.text-link { display: inline-flex; align-items: center; gap: 14px; margin-top: 28px; font-size: 10px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.circle-arrow { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid #789; border-radius: 50%; font-size: 18px; }
.hero-visual { position: absolute; top: 0; right: 0; bottom: 0; z-index: 1; width: 72%; min-height: 680px; overflow: hidden; }
.hero-word { position: absolute; top: -12%; left: -2%; color: transparent; font-size: 620px; font-weight: 950; line-height: 1; -webkit-text-stroke: 1px rgba(7,29,36,.1); }
.hero-shape { position: absolute; top: 60px; left: 8%; width: 72%; height: 56%; background: var(--green); clip-path: polygon(16% 5%, 82% 0, 100% 22%, 86% 80%, 32% 100%, 0 70%); animation: shape-float 8s ease-in-out infinite alternate; }
.hero-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.84) contrast(1.03); transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.hero-visual::before { content: ''; position: absolute; inset: 0; z-index: 2; background: linear-gradient(90deg, var(--paper) 0%, rgba(247,247,244,.96) 12%, rgba(247,247,244,.72) 28%, rgba(247,247,244,.18) 48%, transparent 64%); pointer-events: none; }
.hero-visual::after { content: ''; position: absolute; inset: 0; z-index: 2; background: linear-gradient(90deg, transparent 65%, rgba(2,55,79,.08)); pointer-events: none; }
.hero-visual:hover img { transform: scale(1.025); }
.hand-note, .about-note { position: absolute; font-family: Georgia, serif; font-size: 25px; font-style: italic; line-height: 1.15; transform: rotate(-7deg); }
.hand-note { right: 4%; bottom: 18%; z-index: 3; padding: 10px 14px; border-radius: 4px; background: rgba(2,55,79,.78); color: #fff; text-shadow: 0 1px 18px rgba(0,0,0,.42); }
.vertical-note { display: none; }
.hero-statement { position: absolute; bottom: 24px; left: 20px; z-index: 3; display: flex; align-items: center; gap: 12px; max-width: 310px; margin: 0; padding: 13px 16px; background: var(--ink); color: #fff; font-size: 12px; font-weight: 800; line-height: 1.25; }
.hero-statement span { color: var(--green); font-size: 9px; letter-spacing: .14em; }
@keyframes shape-float { from { transform: rotate(-1deg) translate3d(0,0,0); } to { transform: rotate(2deg) translate3d(10px,-8px,0); } }

.client-strip { display: grid; grid-template-columns: minmax(130px, 1.2fr) repeat(9, minmax(0, 1fr)); min-height: 104px; align-items: center; gap: 4px; padding: 16px 3vw; overflow: visible; background: #fff; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); white-space: nowrap; }
.client-strip span { font-family: Arial, sans-serif; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.client-strip > a { display: grid; place-items: center; min-width: 0; width: 100%; height: 64px; padding: 10px 12px; border: 1px solid transparent; border-radius: 6px; background: #fff; transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.client-strip > a:hover { border-color: var(--green); box-shadow: 0 8px 22px rgba(2,55,79,.08); }
.client-strip > a img { width: 100%; height: 100%; max-height: 44px; object-fit: contain; object-position: 50% 50%; }

.services, .projects, .method, .about { padding: 82px 4vw; }
.section-heading { display: grid; grid-template-columns: 1.1fr .9fr auto; align-items: end; gap: 60px; margin-bottom: 48px; }
.section-heading h2, .purpose h2 { margin-bottom: 0; font-size: clamp(42px, 4.5vw, 76px); font-weight: 950; line-height: .9; }
.section-heading > p { max-width: 410px; margin-bottom: 2px; color: var(--muted); line-height: 1.45; }
.section-heading--dark > p { color: #becbce; }
.mini-link { padding-bottom: 6px; border-bottom: 2px solid var(--green); font-size: 10px; font-weight: 900; text-transform: uppercase; }

.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.service-card { position: relative; min-height: 360px; padding: 24px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.service-card--1, .service-card--3 { background: var(--ink); color: #fff; }
.service-card--3 { background: var(--deep); }
.card-number { font-size: 10px; letter-spacing: .12em; }
.service-card h3 { max-width: 220px; margin: 64px 0 14px; font-size: 29px; line-height: .92; }
.service-card p { max-width: 260px; color: #79848a; font-size: 14px; line-height: 1.4; }
.service-card--1 p, .service-card--3 p { color: #bac4c5; }
.service-card img { position: absolute; right: 0; bottom: 0; left: 0; width: 100%; height: 122px; object-fit: cover; filter: grayscale(1) brightness(.78); transition: filter .45s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
.service-card::after { content: ''; position: absolute; right: 0; bottom: 0; left: 0; z-index: 1; height: 122px; background: linear-gradient(120deg, rgba(5,201,121,.34), rgba(255,255,255,.2)); opacity: 0; pointer-events: none; transition: opacity .45s ease; }
.service-card:hover img { filter: grayscale(.1) brightness(1.2) contrast(.94) saturate(1.35); transform: scale(1.045); }
.service-card:hover::after { opacity: 1; }
.service-card .card-arrow { position: absolute; right: 16px; bottom: 16px; display: grid; place-items: center; width: 34px; height: 34px; z-index: 2; border-radius: 50%; background: #fff; color: var(--ink); transition: transform .25s ease; }
.service-card:hover .card-arrow { transform: rotate(12deg) scale(1.08); }

.nomada { display: grid; grid-template-columns: 34% 66%; min-height: 580px; overflow: hidden; border-top: 1px solid var(--line); }
.nomada-copy { position: relative; z-index: 2; align-self: center; padding: 58px 4vw; }
.nomada-copy .eyebrow { display: inline-flex; align-items: baseline; gap: 4px; margin-bottom: 24px; padding: 9px 14px 8px; background: #f0eee8; color: var(--muted); box-shadow: 0 5px 12px rgba(2,55,79,.12); clip-path: polygon(2% 8%, 98% 0, 100% 86%, 3% 100%, 0 22%); transform: rotate(-.5deg); }
.nomada-copy .eyebrow strong { color: var(--ink); font-size: 16px; letter-spacing: -.02em; }
.nomada-title-row { position: relative; display: inline-block; margin-bottom: 22px; }
.nomada-title-row h2 { position: relative; z-index: 1; max-width: 420px; margin: 0; font-size: clamp(58px, 6vw, 96px); font-weight: 950; line-height: .82; }
.nomada-title-row h2::after { content: ''; position: absolute; right: 0; bottom: -12px; left: 5%; height: 13px; background: var(--nomada-violet); clip-path: polygon(0 45%, 32% 15%, 66% 34%, 100% 9%, 98% 75%, 62% 66%, 34% 86%, 2% 74%); transform: rotate(-1deg); }
.nomada-hand-note { position: absolute; top: -64px; right: 4px; left: auto; width: 158px; margin: 0; padding: 10px 13px 13px; background: #fffefa; color: var(--ink); box-shadow: 0 5px 13px rgba(2,55,79,.14); clip-path: polygon(3% 5%, 97% 0, 100% 88%, 94% 96%, 5% 100%, 0 15%); font-family: Georgia, serif; font-size: 20px; font-style: italic; line-height: 1.12; transform: rotate(-4deg); }
.nomada-hand-note span { position: relative; display: inline-block; }
.nomada-hand-note span::after { content: ''; position: absolute; right: 0; bottom: -7px; left: 0; height: 5px; background: var(--nomada-violet); clip-path: polygon(0 40%, 100% 0, 96% 75%, 4% 100%); }
.nomada-copy h3 { max-width: 470px; margin: 0 0 14px; color: var(--green); font-size: clamp(34px, 3.4vw, 56px); font-weight: 950; line-height: .92; }
.nomada-intro { max-width: 480px; margin-bottom: 18px; color: var(--ink); font-size: 19px; line-height: 1.25; }
.nomada-disciplines { margin-bottom: 22px; color: var(--ink); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.nomada-disciplines span { color: var(--nomada-violet); }
.nomada-button { min-width: 235px; background: var(--ink); color: #fff; }
.nomada-gallery { display: grid; grid-template-columns: minmax(0, 2.35fr) minmax(190px, 1fr); grid-template-rows: repeat(2, 1fr); min-width: 0; gap: 8px; background: var(--paper); }
.nomada-gallery figure { position: relative; min-height: 0; margin: 0; overflow: hidden; }
.nomada-gallery-main { grid-row: 1 / 3; clip-path: polygon(6% 0, 100% 0, 96% 100%, 0 100%); }
.nomada-gallery figure:not(.nomada-gallery-main) { clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%); }
.nomada-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.nomada-gallery-main img { object-position: center; }
.nomada-gallery figure:hover img { transform: scale(1.025); }

.purpose { display: grid; grid-template-columns: 43% 35% 22%; min-height: 430px; }
.purpose-image { min-height: 430px; background: linear-gradient(90deg, rgba(2,55,79,.02), rgba(2,55,79,.38)), url('../images/founders-studio-crop-v4.jpg') center top/cover no-repeat; }
.purpose-copy { align-self: center; padding: 55px; }
.purpose-copy h2 { font-size: clamp(37px, 4vw, 62px); }
.purpose-copy > p:not(.eyebrow) { margin: 24px 0; color: #c1cbce; line-height: 1.45; }
.purpose-mantra { align-self: end; padding: 55px 30px; color: #d7e0e1; font-size: 11px; font-weight: 800; line-height: 1.5; letter-spacing: .15em; text-transform: uppercase; }

.projects { padding-bottom: 16px; }
.project-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.project-card { position: relative; min-height: 390px; overflow: hidden; border-radius: var(--radius); background: #23444a; }
.project-card > img:first-child, .project-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.78) contrast(1.03); transition: transform .6s cubic-bezier(.2,.7,.2,1), filter .45s ease; }
.project-card:nth-child(1) img { object-position: 52% center; }
.project-card:nth-child(2) img { object-position: 42% center; }
.project-card:nth-child(3) img { object-position: 52% center; }
.project-card:nth-child(4) > img:first-child { object-position: 55% center; }
.project-placeholder { display: grid; place-items: center; background: linear-gradient(135deg, #c6d0cd, #3d5f62); }
.project-placeholder b { color: rgba(255,255,255,.78); font-size: clamp(26px, 3vw, 48px); line-height: .86; letter-spacing: -.06em; text-align: center; }
.project-placeholder--tomate { background: radial-gradient(circle at 70% 25%, #ff674f 0 18%, transparent 19%), linear-gradient(145deg, #791c17, #e64835); }
.project-placeholder--club { background: radial-gradient(circle at 30% 32%, #e84834 0 15%, transparent 16%), linear-gradient(145deg, #f4d8bb, #8f2620); }
.project-placeholder--club b { color: #172a2e; }
.project-placeholder--silvia { background: radial-gradient(circle at 55% 38%, rgba(255,255,255,.6), transparent 22%), linear-gradient(145deg, #b5d6cf, #254c4c); }
.project-card::after { content: ''; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.78)); }
.project-card > div { position: absolute; right: 22px; bottom: 20px; left: 22px; z-index: 2; }
.project-card h3 { margin-bottom: 3px; font-size: 24px; }
.project-card p { max-width: 200px; margin-bottom: 0; color: #e2e7e5; font-size: 14px; }
.project-card .project-arrow { position: absolute; right: 18px; bottom: 18px; z-index: 3; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #fff; color: var(--ink); transform: translateY(-45px); transition: transform .25s ease; }
.project-card .project-logo-wrap { position: absolute; top: 16px; left: 16px; z-index: 3; display: grid; place-items: center; width: 104px; height: 52px; padding: 8px 10px; overflow: hidden; border-radius: 5px; background: rgba(255,255,255,.94); }
.project-card .project-logo { position: static; width: 100%; height: 100%; object-fit: contain; object-position: center; filter: none; }
.project-card--ldc .project-logo-wrap, .project-card--act .project-logo-wrap, .project-card--silvia-gauvry .project-logo-wrap, .project-card--silvia-gauvry-4 .project-logo-wrap, .project-card--ai-core .project-logo-wrap, .project-card--matise .project-logo-wrap, .project-card--info-emdr .project-logo-wrap { width: 120px; height: 64px; padding: 7px 10px; }
.project-card--act .project-logo { width: auto; height: auto; max-width: 88px; max-height: 48px; }
.project-card--silvia-gauvry .project-logo, .project-card--silvia-gauvry-4 .project-logo { width: auto; height: auto; max-width: 96px; max-height: 48px; }
.project-card--ai-core .project-logo { width: auto; height: auto; max-width: 64px; max-height: 48px; }
.project-card--matise .project-logo { width: auto; height: auto; max-width: 96px; max-height: 48px; transform: translateY(-2px); }
.project-card--info-emdr .project-logo { width: auto; height: auto; max-width: 96px; max-height: 48px; }
.project-card--info-emdr > img:first-child { object-position: 70% center; }
.project-card--cta { grid-column: span 3; background: linear-gradient(125deg, var(--green) 0%, #02b76d 54%, var(--ink) 54.2%, var(--ink) 100%); }
.project-card--cta::before { content: '↗'; position: absolute; top: 28px; right: 40px; color: rgba(255,255,255,.16); font-size: 210px; font-weight: 300; line-height: 1; }
.project-card--cta::after { background: linear-gradient(90deg, rgba(2,55,79,.14), rgba(2,55,79,.5)); }
.project-card--cta > div { right: auto; bottom: 38px; left: 38px; max-width: 620px; }
.project-card--cta .project-card-cta-kicker { display: block; margin-bottom: 35px; color: var(--ink); font-size: 10px; font-weight: 900; letter-spacing: .18em; }
.project-card--cta h3 { max-width: 580px; margin-bottom: 14px; color: #fff; font-size: 54px; line-height: .9; }
.project-card--cta p { max-width: 430px; margin-bottom: 22px; color: #eafff4; font-size: 16px; }
.project-card--cta b { display: inline-block; padding: 11px 17px; border-radius: 999px; background: #fff; color: var(--ink); font-size: 9px; letter-spacing: .1em; }
.project-card:hover > img:first-child { transform: scale(1.045); filter: saturate(1.05) contrast(1.02); }
.project-card:hover .project-arrow { transform: translateY(-45px) rotate(12deg) scale(1.08); }

.detail-back { justify-self: center; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.detail-hero { display: grid; grid-template-columns: .9fr 1.1fr; min-height: 680px; }
.detail-hero-copy { align-self: center; padding: 74px 6vw; }
.detail-hero-copy h1 { max-width: 680px; margin: 24px 0; font-size: clamp(62px, 7vw, 112px); line-height: .86; }
.detail-hero-copy h1.detail-title--compact { font-size: clamp(56px, 6vw, 94px); }
.detail-hero-copy > p:last-child { max-width: 560px; color: #c3cfd1; font-size: clamp(19px, 2vw, 28px); line-height: 1.35; }
.detail-logo-wrap { position: relative; width: 190px; height: 92px; overflow: hidden; border-radius: 7px; background: #fff; }
.detail-logo-wrap--dark { background: #111; }
.detail-logo-wrap img { position: absolute; inset: 12px 18px; width: calc(100% - 36px); height: calc(100% - 24px); object-fit: contain; object-position: center; }
.detail-cover { position: relative; min-height: 680px; margin: 0; overflow: hidden; }
.detail-cover::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2,55,79,.35), transparent 35%), linear-gradient(0deg, rgba(2,55,79,.62), transparent 44%); }
.detail-cover img { width: 100%; height: 100%; object-fit: cover; }
.detail-cover figcaption { position: absolute; right: 40px; bottom: 36px; left: 40px; z-index: 1; max-width: 540px; color: #fff; font-family: Georgia, serif; font-size: 22px; font-style: italic; line-height: 1.3; }
.detail-story { padding: 92px 6vw 108px; }
.detail-story-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.detail-story-grid article { min-height: 340px; padding: 34px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.detail-story-grid article:nth-child(2) { background: var(--ink); color: #fff; }
.detail-story-grid span { color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .15em; }
.detail-story-grid h2 { margin: 84px 0 20px; font-size: clamp(32px, 3vw, 48px); line-height: .95; }
.detail-story-grid p { color: var(--muted); font-size: 16px; line-height: 1.55; }
.detail-story-grid article:nth-child(2) p { color: #c3cfd1; }
.detail-gallery { padding: 94px 4vw 110px; }
.detail-gallery-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin: 0 2vw 46px; }
.detail-gallery-heading h2 { max-width: 780px; margin: 0; font-size: clamp(42px, 5vw, 76px); line-height: .9; }
.detail-gallery-grid { display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: repeat(2, 360px); gap: 10px; }
.detail-gallery-grid figure { margin: 0; overflow: hidden; border-radius: var(--radius); background: #173f4a; }
.detail-gallery-grid figure:first-child { grid-row: 1 / 3; }
.detail-gallery-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 620px; }
.detail-gallery-grid--two figure:first-child { grid-row: auto; }
.detail-gallery-grid img, .detail-gallery-grid video, .detail-gallery-grid iframe { width: 100%; height: 100%; border: 0; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .45s ease; }
.detail-gallery-grid .is-artwork { object-fit: contain; padding: 18px; background: #f2f0ea; }
.detail-gallery-grid .is-contained-media { object-fit: contain; background: #071f2a; }
.detail-gallery-grid figure:hover img, .detail-gallery-grid figure:hover video { transform: scale(1.035); filter: brightness(1.06) saturate(1.08); }
.detail-gallery-grid figure:hover .is-artwork { transform: scale(1.015); }
.case-ldc .detail-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; }
.case-ldc .detail-gallery-grid figure:first-child { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 16 / 9; }
.case-ldc .detail-gallery-grid figure:not(:first-child) { aspect-ratio: 16 / 9; }
.case-ldc .detail-gallery-grid img, .case-ldc .detail-gallery-grid video { object-fit: contain; background: #071f2a; }
.detail-next { display: flex; align-items: end; justify-content: space-between; gap: 50px; padding: 88px 6vw; }
.detail-next h2 { margin: 0; font-size: clamp(44px, 5vw, 76px); line-height: .9; }

.method { padding-top: 92px; }
.method-steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; }
.method-steps li { position: relative; padding: 16px 32px 0 0; border-top: 1px solid #bcc5c5; }
.method-steps li:not(:last-child)::after { content: '→'; position: absolute; top: 41px; right: 18px; color: #879496; }
.method-steps span { display: block; margin-bottom: 15px; font-size: 10px; font-weight: 900; }
.method-steps b { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 18px; border: 1px solid #bcc5c5; border-radius: 50%; font-size: 22px; }
.method-steps h3 { margin-bottom: 7px; font-size: 18px; letter-spacing: -.03em; }
.method-steps p { max-width: 190px; color: var(--muted); font-size: 13px; line-height: 1.4; }

.about { position: relative; }
.team-grid { position: relative; display: grid; grid-template-columns: 1fr; gap: 44px; max-width: 1120px; padding-right: 180px; }
.person { display: grid; grid-template-columns: minmax(180px, 44%) 1fr; align-items: end; gap: 28px; }
.person img { width: 100%; aspect-ratio: .86; object-fit: cover; object-position: center top; background: #f5f2eb; }
.person h3 { margin-bottom: 5px; font-size: 28px; }
.person span { display: block; margin-bottom: 25px; font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.person p { color: var(--muted); font-family: Georgia, serif; font-size: 15px; font-style: italic; line-height: 1.4; }
.about-note { top: 50%; right: 0; transform: translateY(-50%) rotate(-7deg); }

.site-footer { padding: 0 4vw; background: var(--deep); color: #fff; }
.contact-row { display: grid; grid-template-columns: 1fr auto 1fr auto; align-items: center; gap: 40px; min-height: 112px; border-bottom: 1px solid rgba(255,255,255,.35); }
.contact-row h2 { margin: 0; font-size: clamp(42px, 5vw, 72px); }
.contact-row h2::first-letter { color: var(--green); }
.contact-mail { justify-self: center; }
.socials { display: flex; gap: 12px; }
.socials a { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; font-size: 10px; font-weight: 900; }
.footer-bottom { display: grid; grid-template-columns: auto 1fr 1fr auto; align-items: center; gap: 26px; min-height: 92px; }
.footer-bottom strong { font-size: 26px; }
.footer-bottom p, .footer-bottom small { margin: 0; color: #b9c6c8; font-size: 10px; line-height: 1.4; }
.footer-bottom nav { display: flex; justify-content: center; gap: 24px; font-size: 10px; }
.whatsapp-button { position: fixed; right: 24px; bottom: 24px; z-index: 30; display: grid; place-items: center; width: 60px; height: 60px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: #25d366; color: #fff; box-shadow: 0 12px 32px rgba(2,55,79,.28); transition: transform .25s ease, box-shadow .25s ease, filter .25s ease; }
.whatsapp-button svg { width: 32px; height: 32px; fill: currentColor; }
.whatsapp-button:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 16px 38px rgba(2,55,79,.36); filter: brightness(1.05); }
.whatsapp-button.is-pending { cursor: default; opacity: .9; }
.whatsapp-button.is-pending::after { content: ''; position: absolute; top: 2px; right: 2px; width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; background: #f2b84b; }
.generic-page { min-height: 60vh; padding: 90px 7vw; }
.generic-page h1 { font-size: clamp(52px, 7vw, 100px); }
.entry-content { max-width: 900px; font-size: 18px; line-height: 1.6; }

@media (max-width: 1000px) {
    .site-header { grid-template-columns: 1fr auto auto; }
    .menu-toggle { display: block; padding: 10px; border: 0; background: transparent; font-weight: 800; }
    .site-nav { position: absolute; top: 78px; right: 0; left: 0; display: none; flex-direction: column; gap: 0; padding: 12px 4vw 24px; background: var(--paper); }
    .site-nav.is-open { display: flex; }
    .site-nav a { padding: 14px 0; }
    .header-cta { margin-left: 10px; }
    .hero-copy { width: 64%; }
    .hero-visual { width: 72%; min-height: 680px; }
    .client-strip { grid-template-columns: minmax(116px, 1.2fr) repeat(9, minmax(0, 1fr)); gap: 3px; padding-right: 2vw; padding-left: 2vw; }
    .section-heading { grid-template-columns: 1fr 1fr; }
    .section-heading .mini-link { justify-self: start; }
    .service-grid, .project-grid { grid-template-columns: repeat(2, 1fr); }
    .project-card--cta { grid-column: span 1; }
    .nomada { grid-template-columns: 42% 58%; }
    .nomada-hand-note { display: none; }
    .nomada-gallery { grid-template-columns: 1fr; }
    .nomada-gallery-main { grid-row: 1 / 3; clip-path: polygon(5% 0, 100% 0, 100% 100%, 0 100%); }
    .nomada-gallery figure:not(.nomada-gallery-main) { display: none; }
    .purpose { grid-template-columns: 1fr; }
    .purpose-mantra { display: none; }
    .team-grid { grid-template-columns: 1fr; padding-right: 0; }
    .about-note { display: none; }
    .detail-hero { grid-template-columns: 1fr; }
    .detail-cover { min-height: 540px; }
    .detail-story-grid { grid-template-columns: 1fr; }
    .detail-story-grid article { min-height: 270px; }
    .detail-story-grid h2 { margin-top: 46px; }
    .case-ldc .detail-gallery-grid { grid-template-columns: 1fr; }
    .case-ldc .detail-gallery-grid figure:first-child { grid-column: auto; }
}

@media (max-width: 820px) {
    .client-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 20px 4vw; }
    .client-strip > span { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
    .site-header { min-height: 66px; padding: 0 20px; }
    .site-nav { top: 66px; }
    .brand { width: 96px; }
    .header-cta { display: none; }
    .hero { display: grid; grid-template-columns: 1fr; }
    .hero-copy { width: 100%; min-height: auto; padding: 58px 22px 38px; }
    .hero h1 { font-size: 55px; }
    .hero .lead { font-size: 18px; }
    .hero-disciplines span { font-size: 9px; }
    .hero-visual { position: relative; width: 100%; min-height: 430px; }
    .hero-visual::before { display: none; }
    .hero-visual img { object-position: 65% center; }
    .hero-word { top: 0; font-size: 390px; }
    .hand-note { font-size: 19px; }
    .hero-statement { right: 20px; bottom: 16px; left: 20px; max-width: none; }
    .client-strip { grid-template-columns: repeat(2, minmax(120px, 1fr)); padding: 24px 22px; }
    .client-strip > span { grid-column: 1 / -1; }
    .services, .projects, .method, .about { padding: 62px 22px; }
    .section-heading { grid-template-columns: 1fr; gap: 22px; }
    .section-heading h2, .purpose h2 { font-size: 43px; }
    .service-grid, .project-grid { grid-template-columns: 1fr; }
    .project-card--cta h3 { font-size: 40px; }
    .service-card { min-height: 320px; }
    .nomada { grid-template-columns: 1fr; }
    .nomada-copy { padding: 62px 22px 54px; }
    .nomada-title-row h2 { font-size: 58px; }
    .nomada-hand-note { display: block; top: auto; right: 0; bottom: -2px; left: auto; width: 126px; font-size: 17px; transform: rotate(-7deg); }
    .nomada-copy h3 { max-width: 360px; margin-top: 24px; font-size: 40px; }
    .nomada-intro { font-size: 17px; }
    .nomada-gallery { grid-template-columns: 1.4fr .6fr; grid-template-rows: 210px 210px; min-height: 420px; }
    .nomada-gallery-main { grid-row: 1 / 3; clip-path: none; }
    .nomada-gallery figure:not(.nomada-gallery-main) { display: block; clip-path: none; }
    .nomada-gallery-main img { object-position: 58% center; }
    .purpose { grid-template-columns: 1fr; }
    .purpose-image { min-height: 280px; }
    .purpose-copy { padding: 48px 22px; }
    .method-steps { grid-template-columns: 1fr; }
    .method-steps li { padding: 20px 0; }
    .method-steps li:not(:last-child)::after { display: none; }
    .method-steps b { float: left; margin-right: 18px; }
    .person { grid-template-columns: 1fr; }
    .contact-row { grid-template-columns: 1fr; gap: 22px; padding: 38px 0; }
    .contact-mail { justify-self: start; }
    .footer-bottom { grid-template-columns: 1fr; padding: 30px 0; }
    .footer-bottom nav { justify-content: flex-start; flex-wrap: wrap; }
    .whatsapp-button { right: 16px; bottom: 16px; width: 54px; height: 54px; }
    .whatsapp-button svg { width: 29px; height: 29px; }
    .detail-back { justify-self: end; }
    .detail-hero-copy { padding: 64px 22px; }
    .detail-logo-wrap { width: 190px; max-width: 100%; height: 92px; }
    .detail-hero-copy h1 { font-size: 56px; }
    .detail-hero-copy h1.detail-title--compact { font-size: 52px; }
    .detail-cover { min-height: 440px; }
    .detail-cover figcaption { right: 22px; bottom: 24px; left: 22px; font-size: 18px; }
    .detail-story { padding: 62px 22px; }
    .detail-story-grid article { min-height: 250px; padding: 26px; }
    .detail-gallery { padding: 62px 22px; }
    .detail-gallery-heading { display: block; margin: 0 0 32px; }
    .detail-gallery-grid { grid-template-columns: 1fr; grid-template-rows: repeat(3, 340px); }
    .detail-gallery-grid--two { grid-template-rows: repeat(2, 340px); }
    .detail-gallery-grid figure:first-child { grid-row: auto; }
    .detail-next { align-items: start; flex-direction: column; padding: 62px 22px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .hero-shape { animation: none; }
    .hero-visual img { transition: none; }
}


/* ADECRA+CEDIM · caso y barra de marcas */
.client-strip{display:grid;grid-template-columns:minmax(145px,.9fr) minmax(0,6.1fr);min-height:104px;align-items:center;gap:14px;padding:14px 3vw;overflow:hidden;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.client-strip-label{font-family:Arial,sans-serif;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.client-strip-window{min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.client-strip-track{display:flex;width:max-content;animation:qomu-logo-ticker 34s linear infinite}
.client-strip-window:hover .client-strip-track,.client-strip-window:focus-within .client-strip-track{animation-play-state:paused}
.client-strip-group{display:flex;align-items:center;gap:8px;padding-right:8px}
.client-strip-group>a{display:grid;place-items:center;width:136px;height:68px;padding:10px 14px;border:1px solid transparent;border-radius:6px;background:#fff;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease}
.client-strip-group>a:hover{border-color:var(--green);box-shadow:0 8px 22px rgba(2,55,79,.08)}
.client-strip-group>a img{width:auto;height:auto;max-width:100%;max-height:46px;object-fit:contain;object-position:center}
@keyframes qomu-logo-ticker{to{transform:translateX(-50%)}}
.project-card--cta-span-1{grid-column:span 1}.project-card--cta-span-2{grid-column:span 2}.project-card--cta-span-3{grid-column:span 3}
.project-card--adecra-cedim>img:first-child,.project-card--adecracedim>img:first-child{object-fit:cover;object-position:center}
.project-card--adecra-cedim .project-logo-wrap,.project-card--adecracedim .project-logo-wrap{width:124px;height:64px;padding:7px 10px}
.project-card--adecra-cedim .project-logo,.project-card--adecracedim .project-logo{width:auto;height:auto;max-width:102px;max-height:48px}
.adecra-brand-stage{display:grid;grid-template-columns:1fr .52fr;grid-template-rows:1fr auto;background:linear-gradient(145deg,#dbe8ec 0 52%,#f8fbf8 52% 72%,#d9f0ea 72%)}
.adecra-brand-stage::before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 66%,rgba(11,159,215,.18) 66% 68%,transparent 68%),radial-gradient(circle at 88% 8%,rgba(76,166,68,.3),transparent 25%)}
.adecra-brand-stage::after{display:none}
.adecra-brand-stage-main{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:24px;padding:66px 54px 128px}
.adecra-brand-stage-main>span{color:#0b9fd7;font-size:10px;font-weight:900;letter-spacing:.18em}
.adecra-brand-stage-main>p{max-width:430px;margin:0;color:#51636b;font-size:16px;line-height:1.45}
.adecra-brand-stage-wordmark{color:#545150;font-family:Georgia,serif;font-weight:400;line-height:.8;letter-spacing:-.075em}
.adecra-brand-stage-wordmark b{display:block;font-size:clamp(68px,7vw,118px);font-weight:400}
.adecra-brand-stage-wordmark strong{display:flex;align-items:baseline;font-size:clamp(68px,7vw,118px);font-weight:400}
.adecra-brand-stage-wordmark i{margin-right:8px;color:#0b9fd7;font-family:Arial,sans-serif;font-size:.8em;font-style:normal;font-weight:500}
.adecra-brand-stage-project{position:relative;z-index:2;align-self:end;margin:0 34px 112px 0;padding:12px;border-radius:9px;background:#fff;box-shadow:0 18px 50px rgba(0,47,69,.22);transform:rotate(2deg)}
.adecra-brand-stage-project img{width:100%;aspect-ratio:1/1;object-fit:cover}
.adecra-brand-stage-project p{margin:12px 4px 3px;color:var(--muted);font-size:12px;line-height:1.35}
.adecra-brand-stage figcaption{color:var(--ink);font-size:21px}
.case-adecra-cedim .detail-gallery-grid,.case-adecracedim .detail-gallery-grid{grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);grid-template-rows:repeat(2,auto);align-items:start}
.case-adecra-cedim .detail-gallery-grid figure,.case-adecracedim .detail-gallery-grid figure{display:flex;flex-direction:column}
.case-adecra-cedim .detail-gallery-grid figure:first-child,.case-adecracedim .detail-gallery-grid figure:first-child{grid-row:auto}
.case-adecra-cedim .detail-gallery-grid figure:nth-child(1),.case-adecra-cedim .detail-gallery-grid figure:nth-child(2),.case-adecracedim .detail-gallery-grid figure:nth-child(1),.case-adecracedim .detail-gallery-grid figure:nth-child(2){grid-column:1}
.case-adecra-cedim .detail-gallery-grid figure:nth-child(3),.case-adecracedim .detail-gallery-grid figure:nth-child(3){grid-column:2;grid-row:1/3}
.case-adecra-cedim .detail-gallery-grid video,.case-adecracedim .detail-gallery-grid video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#071f2a}
.case-adecra-cedim .detail-gallery-grid figure:nth-child(3) video,.case-adecracedim .detail-gallery-grid figure:nth-child(3) video{aspect-ratio:9/16}
.case-adecra-cedim .detail-gallery-grid figcaption,.case-adecracedim .detail-gallery-grid figcaption{display:flex;justify-content:space-between;gap:20px;padding:16px 18px;background:#fff;color:var(--ink)}
.case-adecra-cedim .detail-gallery-grid figcaption span,.case-adecracedim .detail-gallery-grid figcaption span{color:var(--muted);font-size:13px}
.adecra-case-close{display:grid;grid-template-columns:.52fr 1.48fr;align-items:center;gap:6vw;padding:82px 8vw;border-top:1px solid var(--line)}
.adecra-close-number{display:flex;align-items:center;gap:22px}
.adecra-close-number strong{color:#0b9fd7;font-size:clamp(92px,12vw,180px);line-height:.8;letter-spacing:-.08em}
.adecra-close-number span{color:var(--muted);font-size:10px;font-weight:900;line-height:1.5;letter-spacing:.14em}
.adecra-case-close h2{margin:0;font-size:clamp(48px,5vw,76px);line-height:.92}
@media(max-width:1000px){.client-strip{grid-template-columns:130px minmax(0,1fr);padding-right:2vw;padding-left:2vw}.case-adecra-cedim .detail-gallery-grid,.case-adecracedim .detail-gallery-grid{grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr)}.adecra-brand-stage{grid-template-columns:1fr .48fr}.adecra-brand-stage-main{padding:48px 40px 110px}.adecra-brand-stage-project{margin-right:25px}}
@media(max-width:820px){.client-strip{grid-template-columns:1fr;gap:4px;padding:18px 4vw}.client-strip-label{padding:0 0 8px}}
@media(max-width:680px){.client-strip{grid-template-columns:1fr;padding:20px 22px}.client-strip-group>a{width:118px;height:64px}.case-adecra-cedim .detail-gallery-grid,.case-adecracedim .detail-gallery-grid{grid-template-columns:1fr;grid-template-rows:auto}.case-adecra-cedim .detail-gallery-grid figure:nth-child(1),.case-adecra-cedim .detail-gallery-grid figure:nth-child(2),.case-adecra-cedim .detail-gallery-grid figure:nth-child(3),.case-adecracedim .detail-gallery-grid figure:nth-child(1),.case-adecracedim .detail-gallery-grid figure:nth-child(2),.case-adecracedim .detail-gallery-grid figure:nth-child(3){grid-column:auto;grid-row:auto}.case-adecra-cedim .detail-gallery-grid figcaption,.case-adecracedim .detail-gallery-grid figcaption{display:block}.case-adecra-cedim .detail-gallery-grid figcaption span,.case-adecracedim .detail-gallery-grid figcaption span{display:block;margin-top:5px}.adecra-brand-stage{grid-template-columns:1fr;grid-template-rows:auto auto;min-height:650px;padding-bottom:92px}.adecra-brand-stage-main{padding:58px 28px 34px}.adecra-brand-stage-wordmark b,.adecra-brand-stage-wordmark strong{font-size:64px}.adecra-brand-stage-project{width:180px;margin:0 28px 40px auto;grid-column:1;grid-row:2}.adecra-brand-stage figcaption{font-size:17px}.adecra-case-close{grid-template-columns:1fr;gap:48px;padding:65px 22px}}
@media(prefers-reduced-motion:reduce){.client-strip-track{animation:none}}
