:root {
  --ink: #12245a;
  --paper: #f4f1eb;
  --text: #1a1a1a;
  --muted: #5c5c5c;
  --line: rgba(18, 36, 90, 0.35);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Outfit", Helvetica, Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--text); font-family: var(--sans); font-weight: 300; font-size: 17px; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; }
.logo {
  position: fixed; top: 28px; left: 32px; z-index: 20;
  color: #fff; mix-blend-mode: difference;
  font-family: var(--serif); font-size: 22px; letter-spacing: 0.18em;
}
.logo small { display: block; margin-top: 4px; font-family: var(--sans); font-size: 10px; letter-spacing: 0.28em; }
.lines {
  position: fixed; right: 36px; top: 50%; transform: translateY(-50%);
  z-index: 20; display: grid; gap: 14px; min-width: 220px;
}
.lines a {
  display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center;
  color: #fff; mix-blend-mode: difference;
  font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase;
}
.lines a i { height: 1px; background: currentColor; display: block; }
.page-lines { position: static; transform: none; margin: 28px 0 8px; min-width: 0; }
.page-lines a { color: var(--ink); mix-blend-mode: normal; }
.stage { position: relative; height: 100vh; overflow: hidden; background: #111; }
.frame {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; transform: scale(1.12);
  will-change: transform, opacity;
}
.frame.on { opacity: 1; }
.logo-frame { background: #12245a; }
.end-logo {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: min(42vw, 280px); z-index: 4; opacity: 0; pointer-events: none;
}
.caption {
  position: absolute; left: 32px; bottom: 36px; z-index: 5; color: #fff;
  text-shadow: 0 10px 30px rgba(0,0,0,.35);
}
.caption span { letter-spacing: 0.24em; font-size: 11px; text-transform: uppercase; }
.caption strong { display: block; margin-top: 8px; font-family: var(--serif); font-weight: 500; font-size: clamp(36px, 5vw, 68px); }
.editorial { max-width: 820px; margin: 0 auto; padding: 88px 28px; }
.kicker { letter-spacing: 0.22em; text-transform: uppercase; font-size: 12px; color: var(--ink); }
h1, h2 { font-family: var(--serif); font-weight: 500; color: var(--ink); }
h1 { font-size: clamp(42px, 6vw, 76px); line-height: 0.95; margin: 8px 0 18px; }
.full { width: 100%; height: min(88vh, 860px); object-fit: cover; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 18px; padding: 28px; max-width: 1280px; margin: 0 auto; }
.card h3 { font-family: var(--serif); font-size: 32px; margin: 12px 0 4px; color: var(--ink); }
.card p { margin: 0; color: var(--muted); }
.card img { width: 100%; height: 420px; object-fit: cover; }
.meta { display: flex; gap: 22px; flex-wrap: wrap; letter-spacing: 0.08em; text-transform: uppercase; font-size: 12px; color: var(--ink); }
.gallery { display: grid; grid-template-columns: 1.4fr 0.8fr; gap: 12px; padding: 12px 28px 48px; }
.gallery img { width: 100%; height: 100%; object-fit: cover; min-height: 280px; }
.next { display: flex; justify-content: space-between; padding: 28px; letter-spacing: 0.14em; text-transform: uppercase; font-size: 12px; color: var(--ink); }
.portrait { width: min(420px, 100%); aspect-ratio: 4/5; object-fit: cover; }
.note { font-size: 13px; color: var(--muted); }
form { display: grid; gap: 14px; max-width: 560px; }
input, textarea { border: 0; border-bottom: 1px solid var(--ink); background: transparent; padding: 12px 0; font: inherit; color: var(--text); }
button { justify-self: start; background: var(--ink); color: #fff; border: 0; padding: 14px 22px; letter-spacing: 0.16em; text-transform: uppercase; font-size: 12px; }
.video-stage { position: relative; height: 100vh; background: #000; }
.video-stage video { width: 100%; height: 100%; object-fit: cover; }
.video-stage .caption { pointer-events: none; }
.menu-btn {
  position: fixed; top: 22px; right: 22px; z-index: 40;
  width: 36px; height: 28px; border: 0; border-radius: 0;
  background: transparent; cursor: pointer; padding: 0;
  display: flex; align-items: center; justify-content: center;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.45));
}
.menu-btn span, .menu-btn span:before, .menu-btn span:after {
  display: block; width: 22px; height: 1.5px; background: #fff; position: relative;
}
.menu-btn.dark span, .menu-btn.dark span:before, .menu-btn.dark span:after { background: #12245a; }
.menu-btn.dark { background: transparent; filter: none; }
.menu-btn span:before, .menu-btn span:after { content: ""; position: absolute; left: 0; right: 0; }
.menu-btn span:before { top: -7px; }
.menu-btn span:after { top: 7px; }
.overlay {
  position: fixed; inset: 0; z-index: 50; background: #12245a; color: #fff;
  display: none; padding: 28px 32px 36px;
}
.overlay.open { display: flex; flex-direction: column; }
.overlay-top { display: flex; justify-content: center; align-items: center; position: relative; min-height: 72px; }
.mark { width: 108px; height: auto; background: none; }
.end-logo {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: min(62vw, 280px); height: auto; z-index: 4; opacity: 0; pointer-events: none; background: none;
}
.close-line { position: absolute; right: 0; top: 18px; width: 28px; height: 22px; border: 0; background: transparent; cursor: pointer; }
.close-line span { display: block; height: 1px; background: #fff; margin-top: 10px; }
.overlay nav { margin-top: 8vh; display: grid; gap: 8px; }
.overlay nav a { font-family: var(--serif); font-size: clamp(40px, 8vw, 64px); line-height: 1.05; color: #fff; }
.langs { margin-top: 36px; display: flex; gap: 16px; letter-spacing: 0.18em; font-size: 14px; }
.langs a { color: rgba(255,255,255,.75); }
.langs button { border: 0; padding: 0 0 4px; background: transparent; color: rgba(255,255,255,.58); font: inherit; letter-spacing: inherit; cursor: pointer; border-bottom: 1px solid transparent; }
.langs button:hover, .langs button:focus-visible { color: #fff; }
.langs button.active { color: #fff; border-bottom-color: rgba(255,255,255,.9); }
.overlay-foot { margin-top: auto; display: flex; justify-content: flex-end; gap: 28px; font-family: var(--serif); font-size: 22px; }
.overlay-copy { text-align: right; margin-top: 18px; color: rgba(255,255,255,.55); font-size: 14px; }
.estudio-video { position: fixed; inset: 0; z-index: 0; height: 100vh; background: #111; }
.estudio-video video { width: 100%; height: 100%; object-fit: cover; }
.estudio-spacer { height: 100vh; }
.estudio-copy {
  position: relative; z-index: 1;
  max-width: 760px; padding: 8vh 32px 30vh; color: #fff;
  text-shadow: 0 2px 18px rgba(0,0,0,.7);
}
.estudio-copy h1, .estudio-copy p { color: #fff; }
.news-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 14px; padding: 78px 16px 24px; max-width: 1100px; margin: 0 auto; }
.news-grid img { width: 100%; height: 34vh; object-fit: cover; }
.news-grid h2 { font-size: 22px; margin: 8px 0 0; line-height: 1.1; }
@media (max-width: 800px) { .news-grid { grid-template-columns: 1fr 1fr; } .news-grid img { height: 22vh; } .news-grid h2 { font-size: 16px; } }
@media (max-width: 800px) {
  .lines { position: static; transform: none; padding: 18px 22px 8px; background: var(--paper); }
  .lines a { color: var(--ink); mix-blend-mode: normal; }
  .logo { color: var(--ink); mix-blend-mode: normal; position: sticky; top: 0; background: var(--paper); display: block; padding: 16px 22px; }
  body.home .logo { position: fixed; background: transparent; color: #fff; mix-blend-mode: difference; }
  .grid, .gallery { grid-template-columns: 1fr; }
  .card img { height: 240px; }
  .stage { height: 100svh; }
}

/* HOME V2 — intro de 4 proyectos + logo + portada viva */
body.home { background: var(--paper); }
body.home .home-hero { background: var(--ink); }
body.home .home-nav-logo { opacity: 0; pointer-events: none; transition: opacity .5s ease; }
body.home.hero-ready .home-nav-logo { opacity: 0; }

.intro-sequence, .living-background { position: absolute; inset: 0; }
.intro-sequence { z-index: 1; transition: opacity .9s ease; }
.intro-sequence.finished { opacity: 0; pointer-events: none; }
.intro-frame { transition: none; }
.logo-frame { background: var(--ink); }

.living-background { z-index: 0; opacity: 0; transition: opacity 1.6s ease; }
.living-background.visible { opacity: 1; }
.living-slide {
  position: absolute; inset: 0; opacity: 0;
  background-size: cover; background-position: center;
  transform: scale(1.045);
  transition: opacity 1.7s ease, transform 7s ease;
  will-change: opacity, transform;
}
.living-slide.active { opacity: 1; transform: scale(1); }
.hero-shade {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(180deg, rgba(5,10,25,.22) 0%, rgba(5,10,25,.02) 42%, rgba(5,10,25,.34) 100%);
}
.home-hero .end-logo {
  z-index: 6; opacity: 0; top: 50%;
  width: min(62vw, 280px);
  transition: top 1.35s cubic-bezier(.22,.8,.24,1), width 1.35s cubic-bezier(.22,.8,.24,1), opacity .45s ease;
  filter: drop-shadow(0 2px 14px rgba(0,0,0,.12));
}
.home-hero .end-logo.show { opacity: 1; }
.home-hero .end-logo.docked { top: 13%; width: min(34vw, 155px); }
.hero-copy {
  position: absolute; z-index: 7; left: clamp(24px, 5vw, 72px); bottom: clamp(42px, 8vh, 88px);
  width: min(780px, calc(100% - 48px)); color: #fff;
  opacity: 0; transform: translateY(18px);
  transition: opacity 1s ease, transform 1s ease;
  text-shadow: 0 3px 24px rgba(0,0,0,.3);
}
.hero-copy.visible { opacity: 1; transform: translateY(0); }
.hero-copy-item { display: none; }
.hero-copy-item.active { display: block; animation: heroCopyIn .9s ease both; }
.hero-copy span { display: block; margin-bottom: 9px; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; }
.hero-copy strong { display: block; max-width: 760px; font-family: var(--serif); font-size: clamp(38px, 5.5vw, 74px); font-weight: 500; line-height: .98; }
@keyframes heroCopyIn { from { opacity:0; transform:translateY(12px) } to { opacity:1; transform:none } }

body.home .menu-btn { opacity: 0; pointer-events: none; transition: opacity .5s ease; }
body.home.hero-ready .menu-btn { opacity: 1; pointer-events: auto; }

@media (max-width: 800px) {
  .home-hero .end-logo.docked { top: 12%; width: min(42vw, 140px); }
  .hero-copy { left: 22px; bottom: 44px; width: calc(100% - 44px); }
  .hero-copy strong { font-size: clamp(38px, 12vw, 58px); }
}
@media (prefers-reduced-motion: reduce) {
  .living-slide, .home-hero .end-logo, .hero-copy { transition-duration: .01ms !important; }
}


/* HOME V3 — sin bloque editorial; footer limpio tras la secuencia visual */
.home-footer {
  min-height: 210px; padding: 48px clamp(24px,5vw,72px) 28px;
  background: var(--paper); color: var(--ink);
  display: grid; grid-template-columns: 1fr auto; gap: 36px; align-items: start;
}
.home-footer-brand { font-family: var(--serif); font-size: 22px; letter-spacing: .16em; }
.home-footer-brand span { display:block; margin-top:3px; font-family:var(--sans); font-size:9px; letter-spacing:.26em; }
.home-footer-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px 28px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.home-footer-links a { border-bottom:1px solid transparent; transition:border-color .25s ease; }
.home-footer-links a:hover { border-color:currentColor; }
.home-footer > p { grid-column:1 / -1; margin:32px 0 0; padding-top:18px; border-top:1px solid rgba(18,36,90,.2); font-size:12px; letter-spacing:.08em; }
@media(max-width:800px){
  .home-footer { grid-template-columns:1fr; gap:28px; padding-top:38px; }
  .home-footer-links { justify-content:flex-start; }
  .home-footer > p { margin-top:8px; }
}

/* HOME V4 — footer integrado en la arquitectura, sin fondo crema */
.home-footer {
  position: relative;
  min-height: 300px;
  padding: 72px clamp(24px,5vw,72px) 30px;
  background-image: linear-gradient(180deg, rgba(7,16,38,.18), rgba(7,16,38,.62)), url('../assets/images/blanco.webp');
  background-size: cover;
  background-position: center;
  color: #fff;
  overflow: hidden;
}
.home-footer::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(6,15,38,.22), rgba(6,15,38,.04) 55%, rgba(6,15,38,.18));
  pointer-events: none;
}
.home-footer > * { position: relative; z-index: 1; }
.home-footer-links a { color: #fff; }
.home-footer > p { border-top-color: rgba(255,255,255,.35); }
@media(max-width:800px){
  .home-footer { min-height: 330px; background-position: center; }
}

/* HOME V5 — una sola pantalla visual, sin footer/secciones inferiores */
body.home { overflow: hidden; }
body.home .home-hero { height: 100svh; min-height: 100svh; }
.hero-signature {
  position: absolute; z-index: 8; left: clamp(24px,5vw,72px); right: clamp(24px,5vw,72px); bottom: 18px;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
  color: rgba(255,255,255,.9); opacity: 0; transform: translateY(8px);
  transition: opacity 1s ease .25s, transform 1s ease .25s;
  text-shadow: 0 2px 14px rgba(0,0,0,.32); pointer-events: none;
}
body.home.hero-ready .hero-signature { opacity: 1; transform: none; }
.hero-signature > div { font-family: var(--serif); font-size: 13px; letter-spacing: .17em; }
.hero-signature > div span { font-family: var(--sans); font-size: 8px; letter-spacing: .24em; margin-left: 7px; }
.hero-signature p { margin: 0; font-size: 10px; letter-spacing: .08em; }
.hero-copy { bottom: clamp(76px, 11vh, 112px); }
@media(max-width:800px){
  .hero-signature { left:22px; right:22px; bottom:14px; align-items:flex-start; flex-direction:column; gap:5px; }
  .hero-signature > div { font-size:11px; }
  .hero-signature > div span { font-size:7px; }
  .hero-copy { bottom:92px; }
}

/* HOME V6 — portada editorial inspirada en la referencia acordada */
:root { --sans: 'Quicksand', Helvetica, Arial, sans-serif; }
body.home { overflow: hidden; background:#111; font-family:var(--sans); }
body.home .home-hero { height:100svh; min-height:100svh; background:#111; }
body.home .living-background { z-index:0; opacity:1; }
body.home .living-slide { background-size:cover; background-position:center; transform:none; transition:opacity 1.3s ease; }
body.home .living-slide.active { transform:none; }
body.home .hero-shade { display:none; }
.home-mark { position:fixed; z-index:60; left:50%; top:22px; transform:translateX(-50%); display:block; width:clamp(300px, 32vw, 480px); transition:width .25s ease; }
.home-mark img { width:100%; height:auto; }
.home-languages { position:fixed; z-index:60; left:28px; top:27px; display:flex; align-items:center; gap:8px; color:#fff; font-size:11px; letter-spacing:.12em; text-shadow:0 1px 8px #333; }
.home-languages button { border:0; background:transparent; padding:0; color:inherit; font:inherit; letter-spacing:inherit; cursor:pointer; }
.home-languages button.active { opacity:1; }
.home-languages button:not(.active) { opacity:.72; }
body.home .menu-btn { opacity:1; pointer-events:auto; top:22px; right:24px; width:34px; height:28px; filter:none; z-index:61; }
body.home .menu-btn span, body.home .menu-btn span:before, body.home .menu-btn span:after { background:#fff; }
.side-menu { position:fixed; z-index:55; top:0; right:0; height:100svh; width:0; overflow:hidden; background:#101d43; color:#fff; display:flex; align-items:flex-start; justify-content:flex-start; transition:width .45s cubic-bezier(.22,.8,.24,1); }
.side-menu.open { width:clamp(245px,24vw,360px); }
.side-menu nav { width:100%; display:flex; flex-direction:column; align-items:flex-start; gap:24px; padding:clamp(115px, 19vh, 190px) 28px 42px; white-space:nowrap; }
.side-menu nav a { font-family:'Montserrat', 'Helvetica Neue', Arial, sans-serif; font-weight:700; font-size:clamp(17px,1.45vw,21px); line-height:1.2; letter-spacing:.09em; color:#fff; text-transform:uppercase; }
.side-menu nav a:hover { opacity:.65; }
.side-close { position:absolute; right:22px; top:18px; background:transparent; color:#fff; border:0; padding:0; font-family:var(--sans); font-size:30px; line-height:1; cursor:pointer; }
@media(max-width:800px) {
 .home-mark { top:18px; width:clamp(250px, 58vw, 340px); }
 .home-languages { left:15px; top:24px; font-size:9px; gap:5px; }
 body.home .menu-btn { right:12px; top:17px; }
 .side-menu.open { width:min(78vw,330px); }
 .side-menu nav { padding:clamp(100px, 17vh, 150px) 22px 32px; gap:22px; }
}


/* Iteració 3: logotip amb més presència i estudi audiovisual a pantalla completa */
body.study-page { background:#111; color:#161616; font-family:'Montserrat','Helvetica Neue',Arial,sans-serif; }
.study-header { position:fixed; z-index:20; top:0; left:0; right:0; height:90px; display:flex; align-items:flex-start; justify-content:center; padding-top:17px; pointer-events:none; }
.study-header a { pointer-events:auto; display:block; width:clamp(184px,18vw,264px); }
.study-header img { width:100%; height:auto; }
.study-home { position:fixed; z-index:21; top:24px; left:24px; font-size:11px; letter-spacing:.14em; color:#fff; }
.study-menu-link { position:fixed; z-index:21; top:24px; right:24px; font-size:11px; letter-spacing:.14em; color:#fff; text-transform:uppercase; }
.study-content { padding:0; max-width:none; margin:0; }
.study-videos { display:block; width:100%; }
.study-video-card { margin:0; width:100%; height:100svh; min-height:620px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#111; }
.study-video-card video { display:block; width:100%; height:100%; object-fit:contain; background:#111; }
.study-portrait-row { min-height:100svh; margin:0; padding:9vh 9vw; display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1fr); gap:clamp(28px,7vw,120px); align-items:center; max-width:none; background:#f7f6f2; }
.study-portrait-row img { width:100%; max-height:82vh; object-fit:contain; display:block; }
.study-portrait-space { min-height:100px; }
@media(max-width:700px) {
 .study-header { height:75px; padding-top:15px; }
 .study-header a { width:clamp(156px,36vw,216px); }
 .study-home { top:20px; left:14px; font-size:9px; }
 .study-menu-link { top:20px; right:14px; font-size:9px; }
 .study-video-card { min-height:100svh; height:100svh; }
 .study-video-card video { width:100%; height:100%; object-fit:contain; }
 .study-portrait-row { grid-template-columns:1fr; gap:24px; padding:100px 22px 50px; }
 .study-portrait-space { display:none; }
 .study-portrait-row img { width:100%; max-height:none; }
}


/* V5 — Estudi audiovisual a pantalla completa i presentació editorial */
body.study-page { background:#f7f6f2; color:#191919; font-family:'Montserrat','Helvetica Neue',Arial,sans-serif; }
body.study-page .study-header { position:fixed; z-index:20; top:0; left:0; right:0; height:88px; display:flex; align-items:flex-start; justify-content:center; padding-top:17px; pointer-events:none; }
body.study-page .study-header a { pointer-events:auto; display:block; width:clamp(184px,18vw,264px); }
body.study-page .study-header img { width:100%; height:auto; }
body.study-page .study-home, body.study-page .study-menu-link { position:fixed; z-index:21; top:24px; font-size:11px; font-weight:600; letter-spacing:.14em; color:#fff; text-transform:uppercase; text-shadow:0 1px 10px rgba(0,0,0,.45); }
body.study-page .study-home { left:24px; } body.study-page .study-menu-link { right:24px; }
body.study-page .study-content { padding:0; max-width:none; margin:0; }
body.study-page .study-videos { display:block; width:100%; }
body.study-page .study-video-card { margin:0; width:100%; height:100svh; min-height:560px; display:block; overflow:hidden; background:#111; }
body.study-page .study-video-card video { display:block; width:100%; height:100%; object-fit:cover; object-position:center; background:#111; }
.study-philosophy { padding:clamp(76px,11vw,160px) clamp(24px,8vw,120px) clamp(80px,12vw,170px); background:#f7f6f2; }
.study-section-label { font-size:11px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:#12245a; margin-bottom:34px; }
.study-philosophy-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.8fr); gap:clamp(36px,8vw,130px); align-items:start; }
.study-philosophy h1 { margin:0; color:#12245a; font-family:'Montserrat',Arial,sans-serif; font-weight:400; font-size:clamp(42px,6.4vw,88px); line-height:1.03; letter-spacing:-.045em; }
.study-philosophy-text { max-width:570px; font-size:clamp(15px,1.3vw,18px); line-height:1.85; color:#454545; }
.study-philosophy-text p { margin:0 0 22px; }
.study-team { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:clamp(32px,8vw,130px); align-items:center; padding:8vh clamp(24px,8vw,120px) 12vh; background:#eeece6; }
.study-team-image img { width:100%; max-height:780px; object-fit:contain; object-position:center; }
.study-team-info h2 { margin:0 0 10px; font-family:'Montserrat',Arial,sans-serif; font-size:clamp(38px,5vw,68px); line-height:1.05; font-weight:500; letter-spacing:-.04em; color:#12245a; }
.study-role { margin:0 0 28px; text-transform:uppercase; letter-spacing:.13em; font-size:12px; }
.study-description { max-width:500px; font-size:16px; line-height:1.85; color:#454545; }
.study-qualities { display:flex; flex-wrap:wrap; gap:10px 18px; margin:30px 0 42px; color:#12245a; font-size:10px; font-weight:600; letter-spacing:.14em; }
.study-formation { border-top:1px solid rgba(18,36,90,.24); padding-top:20px; }
.study-formation span { font-size:10px; font-weight:600; letter-spacing:.18em; color:#12245a; }
.study-formation p { margin:9px 0 0; font-size:14px; color:#454545; }
@media(max-width:700px) {
 body.study-page .study-header { height:72px; padding-top:14px; }
 body.study-page .study-header a { width:clamp(156px,36vw,216px); }
 body.study-page .study-home { top:19px; left:14px; font-size:9px; }
 body.study-page .study-menu-link { top:19px; right:14px; font-size:9px; }
 body.study-page .study-video-card { height:100svh; min-height:100svh; }
 body.study-page .study-video-card video { object-fit:cover; }
 .study-philosophy { padding:76px 24px 86px; }
 .study-philosophy-grid { grid-template-columns:1fr; gap:28px; }
 .study-team { grid-template-columns:1fr; gap:38px; padding:64px 24px 76px; }
 .study-team-image img { max-height:none; width:100%; }
}

/* V6 — seqüència audiovisual única a ESTUDI */
body.study-page .study-menu-link {
  position:fixed; z-index:25; top:25px; right:28px; width:34px; height:28px;
  display:flex; flex-direction:column; justify-content:center; gap:6px;
  text-decoration:none; text-shadow:none;
}
body.study-page .study-menu-link span {
  display:block; width:30px; height:2px; background:#fff;
  box-shadow:0 1px 8px rgba(0,0,0,.35);
}
body.study-page .study-sequence { position:relative; width:100%; height:100svh; min-height:560px; overflow:hidden; background:#111; }
body.study-page .study-sequence-item { position:absolute; inset:0; margin:0; width:100%; height:100%; opacity:0; visibility:hidden; transition:opacity .7s ease; }
body.study-page .study-sequence-item.is-active { opacity:1; visibility:visible; }
body.study-page .study-sequence video,
body.study-page .study-sequence img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
body.study-page .study-image-card { background:#111; }
@media(max-width:700px) {
  body.study-page .study-menu-link { top:19px; right:14px; width:28px; }
  body.study-page .study-menu-link span { width:25px; }
  body.study-page .study-sequence { height:100svh; min-height:100svh; }
}


/* V7 — portada amb presentació animada i secció editorial en scroll */
html { scroll-behavior:smooth; }
body.home { overflow-x:hidden; overflow-y:auto; background:#f7f6f2; }
body.home .home-hero { position:relative; height:100svh; min-height:620px; }
.home-mark { width:clamp(340px, 48vw, 720px); top:50%; transform:translate(-50%,-50%); transition:width 1.25s cubic-bezier(.2,.7,.2,1), top 1.25s cubic-bezier(.2,.7,.2,1), transform 1.25s cubic-bezier(.2,.7,.2,1); }
.home-mark img { display:block; width:100%; height:auto; filter:drop-shadow(0 2px 10px rgba(0,0,0,.14)); }
body.home.intro-complete .home-mark { width:clamp(190px, 19vw, 285px); top:24px; transform:translateX(-50%); }
body.home .home-languages, body.home .menu-btn { opacity:0; transition:opacity .7s ease .35s; }
body.home.intro-complete .home-languages, body.home.intro-complete .menu-btn { opacity:1; }
body.home .living-slide { background-size:cover; background-position:center; opacity:0; transform:scale(1.025); transition:opacity 1.2s ease, transform 1.7s ease; }
body.home .living-slide.active { opacity:1; transform:scale(1); }
body.home .living-background::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.2),transparent 36%,rgba(0,0,0,.12)); pointer-events:none; }
.home-hero::after { content:"Desplaça't per descobrir"; position:absolute; bottom:28px; left:50%; transform:translateX(-50%); color:#fff; font-size:10px; letter-spacing:.2em; text-transform:uppercase; opacity:.85; }
.home-editorial { position:relative; z-index:2; background:#fff; margin-top:-1px; color:#171717; }
.home-philosophy { padding:clamp(76px,9vw,140px) clamp(24px,8vw,120px) clamp(82px,10vw,145px); }
.home-eyebrow { margin:0 0 38px; font-size:10px; letter-spacing:.22em; color:#555; }
.home-philosophy-grid { display:grid; grid-template-columns:1.05fr .75fr; gap:clamp(34px,8vw,130px); align-items:start; }
.home-philosophy-grid h1 { margin:0; font-family:'Montserrat','Helvetica Neue',Arial,sans-serif; font-size:clamp(34px,5vw,68px); line-height:1.1; letter-spacing:-.045em; font-weight:400; color:#171717; }
.home-philosophy-grid p { max-width:510px; margin:7px 0 0; font-size:clamp(14px,1.2vw,17px); line-height:1.9; color:#5b5b5b; }
.home-featured { padding:0 clamp(24px,5.5vw,84px) clamp(76px,9vw,130px); }
.home-featured-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; text-transform:uppercase; font-size:10px; letter-spacing:.2em; color:#424242; }
.home-featured-heading a { color:inherit; text-decoration:none; white-space:nowrap; }
.home-featured-heading a span { margin-left:12px; font-size:16px; }
.home-featured-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.home-featured-grid a { color:#222; text-decoration:none; font-size:10px; letter-spacing:.08em; }
.home-featured-grid img { display:block; width:100%; height:clamp(150px,22vw,330px); object-fit:cover; margin-bottom:13px; transition:opacity .3s ease; }
.home-featured-grid a:hover img { opacity:.82; }
.side-menu nav a { font-family:'Montserrat','Helvetica Neue',Arial,sans-serif; font-size:clamp(20px,1.8vw,25px); font-weight:700; letter-spacing:.015em; text-transform:none; }
.side-menu nav a::first-letter { text-transform:uppercase; }
@media(max-width:800px) {
 .home-mark { width:clamp(270px,76vw,430px); }
 body.home.intro-complete .home-mark { width:clamp(170px,43vw,220px); top:20px; }
 .home-philosophy-grid { grid-template-columns:1fr; gap:24px; }
 .home-featured-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 12px; }
 .home-featured-grid img { height:clamp(170px,52vw,270px); }
 .home-hero::after { bottom:22px; font-size:9px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .home-mark,.living-slide { transition:none !important; } }

/* V8 — full-screen fixed image with a white editorial sheet rising over it */
.project-detail { background:#fff; color:#171717; }
.project-hero { position:sticky; top:0; z-index:0; height:100svh; min-height:560px; background-size:cover; background-position:center; display:flex; align-items:flex-end; padding:clamp(28px,5vw,76px); color:#fff; }
.project-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.12),transparent 42%,rgba(0,0,0,.3)); }
.project-hero-title { position:relative; font-size:clamp(48px,10vw,130px); font-weight:400; letter-spacing:.04em; }
.project-hero-scroll { position:absolute; bottom:34px; right:clamp(28px,5vw,76px); font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.project-sheet { position:relative; z-index:2; margin-top:-1px; background:#fff; padding:clamp(54px,9vw,130px) 0 0; }
.project-intro { display:grid; grid-template-columns:1.1fr .9fr; gap:8vw; padding:0 clamp(24px,8vw,130px) clamp(56px,9vw,130px); align-items:end; }
.project-kicker { font-size:10px; letter-spacing:.17em; text-transform:uppercase; color:#777; margin:0 0 24px; }
.project-intro h1,.projects-heading h1 { font-size:clamp(48px,8vw,105px); font-weight:400; line-height:.95; letter-spacing:.02em; margin:0 0 22px; }
.project-location { font-size:11px; letter-spacing:.12em; }
.project-intro dl { margin:0; display:grid; gap:20px; }
.project-intro dl div { display:flex; justify-content:space-between; gap:18px; border-bottom:1px solid #ddd; padding-bottom:10px; }
.project-intro dt { color:#777; font-size:9px; letter-spacing:.1em; }
.project-intro dd { margin:0; font-size:12px; text-align:right; }
.project-copy { max-width:900px; margin:0 auto; padding:0 28px clamp(50px,8vw,110px); font-size:clamp(17px,2vw,24px); line-height:1.65; font-weight:300; }
.project-copy p { margin:0 0 1.1em; }
.project-image { margin:0; padding:0 clamp(12px,2.5vw,36px) clamp(14px,2.5vw,36px); }
.project-image img { display:block; width:100%; height:auto; max-height:110vh; object-fit:contain; }
.project-image.wide img { width:100%; }
.project-image.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(12px,2.5vw,36px); align-items:center; }
.project-image.split img { width:100%; max-height:90vh; object-fit:contain; }

/* Project detail — minimal previous/next navigation */
.project-pager {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin: clamp(64px, 10vw, 140px) 0 0;
  padding: 28px clamp(24px, 8vw, 130px) 66px;
  border-top: 1px solid #dedede;
  background: #fff;
}
.project-pager-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  min-height: 32px;
  color: #292929;
  text-decoration: none;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: opacity .25s ease;
}
.project-pager-link:hover { opacity: .55; }
.project-pager-link svg {
  display: block; width: 40px; height: 24px; flex: 0 0 auto;
  fill: none; stroke: currentColor; stroke-width: 1.4;
  stroke-linecap: square; stroke-linejoin: miter;
  transition: transform .3s ease;
}
.project-pager-prev:hover svg { transform: translateX(-4px); }
.project-pager-next:hover svg { transform: translateX(4px); }
@media (max-width: 600px) {
  .project-pager { padding: 24px 22px 44px; gap: 12px; }
  .project-pager-link { gap: 8px; font-size: 9px; letter-spacing: .08em; }
  .project-pager-link svg { width: 28px; height: 20px; }
}

.other-projects { padding:clamp(60px,10vw,140px) clamp(24px,5vw,72px) 80px; }
.other-projects>.project-kicker { margin-bottom:34px; }
.other-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.other-grid a { color:#171717; text-decoration:none; }
.other-grid img { display:block; width:100%; aspect-ratio:1.5; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.other-grid a:hover img,.project-card:hover img { transform:scale(1.035); }
.other-grid span { display:block; margin-top:14px; font-size:11px; letter-spacing:.1em; }
.projects-page { background:#fff; }
.projects-heading { padding:clamp(150px,20vh,230px) clamp(24px,5vw,72px) 50px; }
.project-list { padding:0 clamp(12px,2.5vw,36px) 80px; display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px) 18px; }
.project-card { color:#171717; text-decoration:none; overflow:hidden; }
.project-card img { display:block; width:100%; aspect-ratio:1.35; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.project-card h2 { margin:18px 0 7px; font-size:clamp(24px,3vw,42px); font-weight:400; letter-spacing:.03em; }
.project-card p { font-size:10px; letter-spacing:.1em; color:#777; }
.home-languages button.active { opacity:.55; }
@media(max-width:700px) { .project-intro { grid-template-columns:1fr; gap:42px; } .project-image.split,.other-grid,.project-list { grid-template-columns:1fr; } .project-hero { min-height:520px; } .project-hero-scroll { left:28px; right:auto; } .projects-heading { padding-top:140px; } }
/* The homepage white editorial panel rises over a stationary hero. */
body.home .home-hero { position:sticky; top:0; z-index:0; }
body.home .home-editorial { margin-top:-1px; }
body.home .home-featured-grid img { transition:transform .7s cubic-bezier(.2,.7,.2,1); }
body.home .home-featured-grid a:hover img { opacity:1; transform:scale(1.025); }


/* V8.1 — ajustos segons referència editorial */
@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@300;400;500;600&display=swap');
body.study-page { background:#f7f6f2; }
body.study-page .study-content { position:relative !important; z-index:auto !important; }
body.study-page .study-sequence { position:sticky; top:0; z-index:0; }
body.study-page .study-philosophy,
body.study-page .study-team { position:relative; z-index:2; background:#f7f6f2; }
body.study-page .study-philosophy { margin-top:-1px; }
body.study-page .study-team { margin-top:0; }
body.study-page .study-header { z-index:2 !important; }
body.study-page .study-menu-link { z-index:71; }
/* V8.35 — selector d’idioma i controls negres a Estudi; el full blanc cobreix el logotip en desplaçar-se. */
body.study-page .study-languages { color:#111 !important; text-shadow:none !important; z-index:71; }
body.study-page .study-menu-link { color:#111 !important; text-shadow:none !important; }
body.study-page .study-content { position:relative !important; z-index:auto !important; }

body.project-detail { font-family:'Quicksand',Arial,sans-serif; }
body.project-detail .project-hero { align-items:flex-end; }
body.project-detail .project-hero-title { display:none !important; }
body.project-detail .project-sheet { padding-top:clamp(34px,5vw,76px); }
body.project-detail .project-intro { align-items:start; padding-left:clamp(24px,4vw,64px); padding-right:clamp(24px,4vw,64px); }
body.project-detail .project-intro h1.project-name {
  font-family:'Montserrat',Arial,sans-serif;
  font-size:clamp(42px,5.5vw,72px);
  line-height:1;
  letter-spacing:-.035em;
  font-weight:400;
  margin:0 0 18px;
  color:var(--ink);
}
body.project-detail .project-kicker,
body.project-detail .project-location,
body.project-detail .project-intro dt,
body.project-detail .project-intro dd { font-family:'Quicksand',Arial,sans-serif; }
body.project-detail .project-copy { max-width:none; margin:0; padding:0 clamp(24px,4vw,64px) clamp(45px,6vw,90px); font-family:'Quicksand',Arial,sans-serif; }
body.project-detail .project-image { padding-left:clamp(24px,4vw,64px); padding-right:clamp(24px,4vw,64px); padding-bottom:clamp(18px,2.5vw,36px); }
body.project-detail .project-image img { width:100%; }
body.project-detail .project-image.split { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(18px,2.5vw,36px); }
body.project-detail .project-image.split img { width:100%; height:auto; object-fit:contain; }
body.projects-page .project-list { padding-left:clamp(24px,4vw,64px); padding-right:clamp(24px,4vw,64px); gap:clamp(28px,4vw,56px); }
body.projects-page .project-card img { aspect-ratio:1/1; object-fit:cover; }
body.projects-page .project-card h2 { font-family:'Montserrat',Arial,sans-serif; font-size:clamp(24px,2.6vw,36px); font-weight:400; letter-spacing:-.025em; }
body.projects-page .project-card p { font-family:'Quicksand',Arial,sans-serif; }
body.projects-page .project-card:hover img { transform:scale(1.035); }
@media(max-width:700px) {
  body.study-page .study-sequence { height:100svh; min-height:480px; }
  body.study-page .study-philosophy { padding:76px 24px 80px; }
  body.study-page .study-philosophy-grid { grid-template-columns:1fr; gap:28px; }
  body.study-page .study-team { padding:56px 24px; }
  body.project-detail .project-hero { height:82svh; min-height:460px; }
  body.project-detail .project-intro { grid-template-columns:1fr; gap:30px; padding-left:22px; padding-right:22px; }
  body.project-detail .project-copy { padding-left:22px; padding-right:22px; font-size:16px; }
  body.project-detail .project-image { padding-left:16px; padding-right:16px; }
  body.project-detail .project-image.split { grid-template-columns:1fr; }
  body.projects-page .project-list { grid-template-columns:1fr; padding-left:18px; padding-right:18px; gap:34px; }
  body.projects-page .project-card img { aspect-ratio:1/1; }
}


/* V8.2 — correcció real de la fitxa de projectes BVR */
body.project-detail .home-mark {
  width: clamp(92px, 9vw, 132px);
  top: 18px;
  z-index: 80;
}
body.project-detail .home-mark img { display:block; width:100%; height:auto; }
body.project-detail .project-hero { background-position:center center; }
body.project-detail .project-sheet { padding-top:clamp(28px,3.5vw,52px); }
body.project-detail .project-intro { padding-left:clamp(24px,4vw,64px); padding-right:clamp(24px,4vw,64px); }
body.project-detail .project-intro h1.project-name {
  font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;
  font-size:clamp(42px,5.2vw,70px);
  font-weight:700;
  letter-spacing:-.045em;
  line-height:1;
  color:#12245a;
  margin:0 0 18px;
}
body.project-detail .project-kicker { margin-bottom:22px; }
body.project-detail .project-location { margin:0; font-size:11px; letter-spacing:.12em; }
body.project-detail .project-copy { font-size:clamp(16px,1.35vw,20px); line-height:1.65; }
body.project-detail .project-image,
body.project-detail .project-copy,
body.project-detail .project-intro,
body.project-detail .other-projects { box-sizing:border-box; }
body.projects-page .project-list { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
body.projects-page .project-card { display:block; min-width:0; }
body.projects-page .project-card img { aspect-ratio:1/1; object-fit:cover; }
body.projects-page .project-card > div { padding:0; margin:0; }
body.projects-page .project-card h2 {
  font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;
  font-weight:700;
  letter-spacing:-.035em;
  line-height:1.1;
  margin:16px 0 7px;
  color:#12245a;
}
body.projects-page .project-card p { margin:0; font-size:10px; line-height:1.5; letter-spacing:.08em; }
body.project-detail .other-projects { padding-left:clamp(24px,4vw,64px); padding-right:clamp(24px,4vw,64px); }
body.project-detail .other-grid img { aspect-ratio:1/1; }
@media(max-width:700px) {
  body.project-detail .home-mark { width:84px; top:14px; }
  body.project-detail .project-hero { background-position:58% center; }
  body.project-detail .project-intro h1.project-name { font-size:48px; }
  body.projects-page .project-list { grid-template-columns:1fr; }
}

/* V8.3 — ajustos fins de logotip, graella i alineacions */
body.project-detail .home-mark {
  position: fixed;
  top: 26px;
  left: 50%;
  transform: translateX(-50%);
  width: clamp(68px, 6.5vw, 92px);
  max-height: 74px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  z-index: 100;
}
body.project-detail .home-mark img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 74px;
  object-fit: contain;
}
/* Project cards: shared grid, square image crop, identical left/right edges. */
body.projects-page .projects-heading {
  padding-left: clamp(24px, 4vw, 64px);
  padding-right: clamp(24px, 4vw, 64px);
}
body.projects-page .project-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(16px, 2vw, 28px);
  row-gap: clamp(34px, 4vw, 58px);
  padding-left: clamp(24px, 4vw, 64px);
  padding-right: clamp(24px, 4vw, 64px);
  align-items: start;
}
body.projects-page .project-card {
  display: flex;
  flex-direction: column;
  align-self: start;
  width: 100%;
  min-width: 0;
  margin: 0;
}
body.projects-page .project-card img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  object-fit: cover;
  margin: 0;
}
body.projects-page .project-card > div {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
}
body.projects-page .project-card h2 {
  margin: 16px 0 6px;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: clamp(23px, 2.5vw, 34px);
  line-height: 1.15;
  font-weight: 600;
  letter-spacing: -.025em;
}
body.projects-page .project-card p {
  margin: 0;
  font-family: 'Quicksand', Arial, sans-serif;
  font-size: 10px;
  line-height: 1.55;
  letter-spacing: .08em;
}
/* Detail page: one consistent content edge for copy and all render frames. */
body.project-detail .project-intro,
body.project-detail .project-copy,
body.project-detail .project-image,
body.project-detail .other-projects {
  padding-left: clamp(24px, 4vw, 64px);
  padding-right: clamp(24px, 4vw, 64px);
}
body.project-detail .project-copy {
  max-width: none;
  margin: 0;
  padding-bottom: clamp(36px, 5vw, 72px);
}
body.project-detail .project-image {
  margin: 0;
  padding-top: 0;
  padding-bottom: clamp(18px, 2.2vw, 32px);
}
body.project-detail .project-image.wide img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
}
body.project-detail .project-image.split {
  align-items: start;
  gap: clamp(16px, 2vw, 28px);
}
body.project-detail .project-image.split img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
}
@media (max-width: 700px) {
  body.project-detail .home-mark { top: 18px; width: 66px; max-height: 58px; }
  body.project-detail .home-mark img { max-height: 58px; }
  body.projects-page .project-list {
    grid-template-columns: minmax(0, 1fr);
    padding-left: 20px;
    padding-right: 20px;
    row-gap: 34px;
  }
  body.projects-page .projects-heading { padding-left: 20px; padding-right: 20px; }
  body.project-detail .project-intro,
  body.project-detail .project-copy,
  body.project-detail .project-image,
  body.project-detail .other-projects { padding-left: 20px; padding-right: 20px; }
}

/* V8.4 polish: consistent typography and restrained project header mark */
body.projects-page .home-mark {
  position: fixed;
  top: 22px;
  left: 50%;
  transform: translateX(-50%);
  width: clamp(76px, 7vw, 100px);
  max-height: 76px;
  z-index: 100;
}
body.projects-page .home-mark img { display:block; width:100%; height:auto; max-height:76px; object-fit:contain; }
body.projects-page .projects-heading h1,
body.project-detail .project-intro h1,
body.home .home-editorial h1,
body.home .home-contact h2 {
  font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;
  font-weight:400;
  letter-spacing:-.035em;
}
body.projects-page .projects-heading h1 { font-size:clamp(42px,6vw,76px); line-height:1.05; }
body.projects-page .projects-heading .project-kicker,
body.projects-page .project-card p,
body.project-detail .project-kicker,
body.project-detail .project-location,
body.project-detail .project-intro dt,
body.project-detail .project-intro dd,
body.project-detail .project-copy { font-family:'Quicksand',Arial,sans-serif; }
.home-contact { padding: clamp(64px,9vw,130px) clamp(24px,5.5vw,84px) clamp(80px,10vw,140px); background:#06143a; color:#fff; }
.home-contact-inner { display:grid; grid-template-columns:minmax(0, .85fr) minmax(0, 1fr); gap:clamp(32px,7vw,110px); max-width:1500px; margin:0 auto; }
.home-contact .contact-kicker { margin:0 0 20px; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.62); }
.home-contact h2 { margin:0 0 18px; font-size:clamp(36px,5vw,68px); line-height:1.05; }
.home-contact .contact-intro { max-width:400px; font-size:15px; line-height:1.7; color:rgba(255,255,255,.84); }
.home-contact-details address { display:flex; flex-direction:column; align-items:flex-start; gap:5px; margin-top:34px; font-style:normal; font-size:15px; line-height:1.55; color:rgba(255,255,255,.92); }
.home-contact-details address a { color:inherit; text-decoration:none; transition:opacity .2s; }
.home-contact-details address a:hover { opacity:.68; }
.home-contact form { display:grid; grid-template-columns:1fr 1fr; gap:20px 18px; }
.home-contact label { display:flex; flex-direction:column; gap:8px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.home-contact input,.home-contact textarea { width:100%; box-sizing:border-box; border:0; border-bottom:1px solid rgba(255,255,255,.48); background:transparent; padding:12px 0; color:#fff; font:400 15px 'Quicksand',Arial,sans-serif; border-radius:0; outline-offset:4px; }
.home-contact textarea { resize:vertical; min-height:90px; }
.home-contact .field-full { grid-column:1 / -1; }
.home-contact button { justify-self:start; border:1px solid rgba(255,255,255,.8); background:transparent; color:white; padding:13px 30px; font:400 11px 'Montserrat',Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; transition:background .2s,color .2s; }
.home-contact button:hover { background:#fff; color:#06143a; }
.home-contact input::placeholder,.home-contact textarea::placeholder { color:rgba(255,255,255,.55); }
@media(max-width:700px) { .home-contact-inner { grid-template-columns:1fr; gap:32px; } .home-contact form { grid-template-columns:1fr; } .home-contact .field-full { grid-column:auto; } body.projects-page .home-mark { top:16px; width:68px; max-height:56px; } body.projects-page .home-mark img { max-height:56px; } }


/* V8.7 — formulari de contacte visible i graella de projectes amb capçalera respirada */
html { scroll-behavior: smooth; }
body.home {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  height: auto !important;
}
body.home .home-editorial,
body.home .home-featured,
body.home .home-contact {
  visibility: visible !important;
  opacity: 1 !important;
}
body.home .home-contact {
  display: block !important;
  position: relative;
  z-index: 5;
  width: 100%;
  min-height: 560px;
  background: #06143a !important;
  color: #fff !important;
  clear: both;
}
body.home .home-contact-inner {
  display: grid !important;
  grid-template-columns: minmax(0,.85fr) minmax(0,1fr);
  align-items: start;
}
body.home .home-contact form {
  display: grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 100%;
  max-width: none;
  color: #fff;
}
body.home .home-contact label { color: rgba(255,255,255,.88); }
body.home .home-contact input,
body.home .home-contact textarea {
  color: #fff !important;
  background: transparent !important;
}
body.home .home-contact .privacy-consent {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  grid-column: 1 / -1;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0;
  text-transform: none;
}
body.home .home-contact .privacy-consent input {
  appearance: auto;
  -webkit-appearance: checkbox;
  flex: 0 0 15px;
  width: 15px;
  height: 15px;
  margin: 2px 0 0;
  padding: 0;
  accent-color: #fff;
}
body.home .home-contact .privacy-consent a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.home .home-contact button[type="submit"] { display: inline-flex; }
body.projects-page .project-list {
  padding-top: clamp(128px, 17vh, 180px);
}
body.projects-page .home-mark {
  top: 25px;
  width: clamp(88px, 7vw, 112px);
}
@media (max-width:700px) {
  body.home .home-contact-inner { grid-template-columns: 1fr; gap: 32px; }
  body.home .home-contact form { grid-template-columns: 1fr; }
  body.home .home-contact .field-full { grid-column: auto; }
  body.projects-page .project-list { padding-top: 118px; }
  body.projects-page .home-mark { top: 17px; width: 76px; }
}


/* V8.8 — contacte coherent amb el disseny actual */
body.home .home-contact .contact-kicker { display:none !important; }
body.home .home-contact h2 { max-width:620px; }
body.home .home-contact .contact-intro { max-width:460px; }
/* Controls over light editorial surfaces switch to dark for readable contrast. */
body.home.header-on-light .home-languages { color:#101010 !important; text-shadow:none !important; }
body.home.header-on-light .menu-btn span,
body.home.header-on-light .menu-btn span:before,
body.home.header-on-light .menu-btn span:after { background:#101010 !important; }
/* El logotip conserva sempre el seu color original. */
body.home .home-mark img { filter:none !important; transition:none; }
body.home .home-languages { transition:color .25s ease, opacity .7s ease .35s; }
body.home .menu-btn span, body.home .menu-btn span:before, body.home .menu-btn span:after { transition:background .25s ease; }
body.home.header-on-light .menu-btn { filter:none !important; }
body.contact-page { min-height:100vh; overflow-x:hidden; background:#fff; color:#111; font-family:'Quicksand',Arial,sans-serif; }
body.contact-page .home-languages { color:#111; text-shadow:none; }
body.contact-page .menu-btn.dark { position:fixed; top:22px; right:24px; z-index:61; opacity:1; pointer-events:auto; filter:none; }
body.contact-page .menu-btn.dark span, body.contact-page .menu-btn.dark span:before, body.contact-page .menu-btn.dark span:after { background:#111; }
.contact-mark { position:fixed; z-index:60; top:19px; left:50%; transform:translateX(-50%); width:clamp(150px,15vw,215px); display:block; }
.contact-mark img { display:block; width:100%; height:auto; }
.contact-main { max-width:1500px; margin:0 auto; padding:clamp(130px,16vh,190px) clamp(24px,6vw,92px) 100px; }
.contact-heading { max-width:760px; margin:0 0 clamp(45px,7vw,88px); }
.contact-page-kicker { margin:0 0 20px; color:#666; font:500 10px 'Montserrat',Arial,sans-serif; letter-spacing:.2em; }
.contact-heading h1 { margin:0 0 18px; font:400 clamp(40px,6vw,76px)/1.04 'Montserrat',Arial,sans-serif; letter-spacing:-.045em; }
.contact-heading > p:last-child { max-width:520px; margin:0; color:#555; font-size:15px; line-height:1.75; }
.contact-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); gap:clamp(44px,8vw,120px); align-items:start; }
.contact-form-panel h2,.contact-info-panel h2 { margin:0 0 28px; font:400 24px 'Montserrat',Arial,sans-serif; letter-spacing:-.02em; }
.contact-page form { display:grid; grid-template-columns:1fr 1fr; gap:23px 18px; }
.contact-page form label { display:flex; flex-direction:column; gap:9px; font-size:10px; letter-spacing:.09em; text-transform:uppercase; color:#333; }
.contact-page form input:not([type=checkbox]),.contact-page form textarea { width:100%; box-sizing:border-box; border:0; border-bottom:1px solid #c9c9c9; border-radius:0; padding:12px 0; background:transparent; color:#111; outline-offset:4px; font:400 15px 'Quicksand',Arial,sans-serif; }
.contact-page form textarea { min-height:100px; resize:vertical; }
.contact-page .field-full { grid-column:1 / -1; }
.contact-page form input::placeholder,.contact-page form textarea::placeholder { color:#929292; }
.contact-page .contact-privacy { display:flex; flex-direction:row; align-items:flex-start; gap:10px; grid-column:1 / -1; font-size:12px; line-height:1.6; letter-spacing:0; text-transform:none; }
.contact-page .contact-privacy input { flex:0 0 15px; width:15px; height:15px; margin:2px 0 0; accent-color:#111; }
.contact-page .contact-privacy a { color:#111; text-underline-offset:3px; }
.contact-page form button { justify-self:start; border:1px solid #111; background:#111; color:#fff; padding:14px 28px; font:400 10px 'Montserrat',Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; transition:background .2s,color .2s; }
.contact-page form button:hover { background:#fff; color:#111; }
.contact-info-panel address { display:flex; flex-direction:column; align-items:flex-start; gap:7px; margin:0 0 28px; font-style:normal; font-size:14px; line-height:1.6; color:#333; }
.contact-info-panel address a { color:#111; text-decoration:none; }
.contact-info-panel address a:hover { text-decoration:underline; text-underline-offset:3px; }
.contact-map { width:100%; aspect-ratio:1.25; min-height:240px; background:#f2f2f2; }
.contact-map iframe { display:block; width:100%; height:100%; min-height:240px; border:0; filter:grayscale(100%); }
.contact-info-panel .map-link { display:inline-block; margin-top:13px; color:#111; font:500 10px 'Montserrat',Arial,sans-serif; letter-spacing:.09em; text-decoration:none; text-transform:uppercase; }
@media(max-width:760px) {
 .contact-mark { top:20px; width:145px; }
 body.contact-page .menu-btn.dark { top:17px; right:13px; }
 body.contact-page .home-languages { left:14px; top:24px; font-size:9px; gap:5px; }
 .contact-main { padding:120px 22px 70px; }
 .contact-layout { grid-template-columns:1fr; gap:55px; }
 .contact-page form { grid-template-columns:1fr; }
 .contact-page .field-full { grid-column:auto; }
 .contact-map,.contact-map iframe { min-height:260px; }
}

/* V8.10 — editorial presentation on the homepage */
body.home .home-philosophy {
  padding: clamp(76px, 9vw, 140px) clamp(24px, 5.5vw, 84px) clamp(72px, 8vw, 112px);
}
body.home .home-about-grid {
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
  gap: clamp(34px, 8vw, 130px);
  align-items: start;
}
body.home .home-about-tabs {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 13px;
}
body.home .home-about-tabs button {
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  color: #c2c2c2;
  text-align: left;
  font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  font-size: clamp(21px, 2.25vw, 32px);
  line-height: 1.2;
  letter-spacing: -.035em;
  font-weight: 400;
  cursor: pointer;
  transition: color .25s ease;
}
body.home .home-about-tabs button:hover,
body.home .home-about-tabs button:focus-visible,
body.home .home-about-tabs button.active { color: #555; }
body.home .home-about-tabs button:focus-visible { outline: 1px solid #777; outline-offset: 5px; }
body.home .home-about-copy {
  max-width: none;
  color: #565656;
  font-family: 'Quicksand', Arial, sans-serif;
  font-size: clamp(14px, 1.05vw, 16px);
  font-weight: 400;
  line-height: 1.9;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}
body.home .home-about-copy p { margin: 0 0 1.1em; }
body.home .home-about-copy p:last-child { margin-bottom: 0; }
body.home .home-about-copy [hidden] { display: none !important; }
body.home .home-featured { padding: 0 clamp(24px, 5.5vw, 84px) clamp(76px, 9vw, 130px); }
body.home .home-featured-heading {
  margin-bottom: 24px;
  text-transform: none;
  font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  font-size: clamp(21px, 2.25vw, 32px);
  line-height: 1.2;
  letter-spacing: -.035em;
  font-weight: 400;
  color: #555;
}
body.home .home-featured-heading a {
  font-family: 'Quicksand', Arial, sans-serif;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #777;
  transition: color .25s ease;
}
body.home .home-featured-heading a:hover { color: #222; }
@media (max-width: 800px) {
  body.home .home-about-grid { grid-template-columns: 1fr; gap: 28px; }
  body.home .home-about-tabs { gap: 10px; }
  body.home .home-about-tabs button { font-size: clamp(22px, 5vw, 30px); }
  body.home .home-about-copy { text-align: left; }
  body.home .home-featured-heading { gap: 16px; }
}


/* V8.11 — ajustos finals acordats per a la portada i contacte */
body.home .home-about-tabs button,
body.home .home-featured-heading > span {
  font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  font-size: clamp(21px, 2.25vw, 32px);
  line-height: 1.2;
  letter-spacing: -.035em;
  font-weight: 400;
  text-transform: none;
}
body.home .home-about-tabs button { color:#c2c2c2; }
body.home .home-about-tabs button:hover,
body.home .home-about-tabs button:focus-visible,
body.home .home-about-tabs button.active { color:#555; }
body.home .home-about-copy { min-height: var(--about-copy-min-height, 520px); }
body.home .home-featured-heading { display:flex; align-items:center; justify-content:space-between; text-transform:none; }
body.home .home-contact h2 { color:#f2f2f2 !important; }
/* La capçalera de Contacto és una franja blava; el logotip manté el seu fitxer/color original. */
body.contact-page::before {
  content:""; position:fixed; z-index:50; top:0; left:0; right:0; height:88px;
  background:#06143a;
}
body.contact-page .home-languages { color:#fff !important; text-shadow:none !important; z-index:62; }
body.contact-page .menu-btn.dark span,
body.contact-page .menu-btn.dark span:before,
body.contact-page .menu-btn.dark span:after { background:#fff !important; }
body.contact-page .contact-mark { z-index:62; }
body.contact-page .contact-page-kicker { display:none !important; }
body.contact-page .contact-heading { padding-top:0; }
body.contact-page .contact-layout { align-items:start; }
body.contact-page .contact-info-panel { display:flex; flex-direction:column; }
body.contact-page .contact-info-panel .contact-map { order:0; margin:0 0 26px; }
body.contact-page .contact-info-panel h2 { order:1; margin-bottom:14px; }
body.contact-page .contact-info-panel address { order:2; margin-bottom:12px; }
body.contact-page .contact-info-panel .map-link { order:3; }
@media (max-width:800px) {
  body.home .home-about-copy { min-height:var(--about-copy-min-height, 520px); }
}
@media (max-width:760px) {
  body.contact-page::before { height:76px; }
  body.contact-page .contact-main { padding-top:112px; }
}


/* V8.13 — navegació interior, estudi blanc i contacte accessible en totes les seccions */
body.study-page { background:#fff !important; }
body.study-page .study-philosophy,
body.study-page .study-team { background:#fff !important; }
body.study-page .study-header img { filter:brightness(0) !important; }
body.study-page .study-menu-link { color:#111 !important; text-shadow:none !important; }
body.study-page .study-menu-link span,
body.study-page .study-menu-link span:before,
body.study-page .study-menu-link span:after { background:#111 !important; }
body.projects-page .home-mark img,
body.project-detail .home-mark img,
body.contact-page .contact-mark img { filter:brightness(0) !important; }
body.projects-page .home-languages,
body.project-detail .home-languages { color:#111 !important; text-shadow:none !important; }
body.projects-page .menu-btn span, body.projects-page .menu-btn span:before, body.projects-page .menu-btn span:after,
body.project-detail .menu-btn span, body.project-detail .menu-btn span:before, body.project-detail .menu-btn span:after { background:#111 !important; }
body.contact-page::before { display:none !important; }
body.contact-page .home-languages { color:#111 !important; text-shadow:none !important; }
body.contact-page .menu-btn.dark span,
body.contact-page .menu-btn.dark span:before,
body.contact-page .menu-btn.dark span:after { background:#111 !important; }
body.contact-page .contact-mark img { filter:brightness(0) !important; }
body.study-page .home-contact, body.projects-page .home-contact, body.project-detail .home-contact { position:relative; z-index:3; }
body.study-page .study-sequence { background:#111; }
body.study-page .study-sequence video { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }


/* V8.14 — banda de contacto idéntica a portada y alineación del mapa */
body.study-page .home-contact h2,
body.projects-page .home-contact h2,
body.project-detail .home-contact h2 {
  color: #f2f2f2 !important;
  font-family: 'Montserrat','Helvetica Neue',Arial,sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: -.035em !important;
  font-size: clamp(36px,5vw,68px) !important;
  line-height: 1.05 !important;
}
body.study-page .home-contact .contact-intro,
body.projects-page .home-contact .contact-intro,
body.project-detail .home-contact .contact-intro {
  color: rgba(255,255,255,.84) !important;
}
body.study-page .home-contact,
body.projects-page .home-contact,
body.project-detail .home-contact {
  background: #06143a !important;
  color: #fff !important;
}
body.contact-page .contact-layout { align-items: start; }
body.contact-page .contact-form-panel { align-self: start; }
body.contact-page .contact-info-panel .contact-map {
  order: 0;
  margin: 0 0 26px;
  align-self: stretch;
}


/* V8.15 — mateix logotip en totes les pàgines interiors */
body.study-page .home-mark,
body.projects-page .home-mark,
body.project-detail .home-mark,
body.contact-page .contact-mark {
  position: fixed !important;
  top: 19px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 145px !important;
  max-width: 145px !important;
  max-height: none !important;
  z-index: 100 !important;
}
body.study-page .home-mark img,
body.projects-page .home-mark img,
body.project-detail .home-mark img,
body.contact-page .contact-mark img {
  display: block !important; width: 100% !important; height: auto !important; max-height: none !important; object-fit: contain !important;
}
/* Contacte: dues columnes ordenades, mapa a l'altura del títol principal. */
body.contact-page .contact-main { padding-top: 138px; }
body.contact-page .contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr);
  gap: clamp(44px, 8vw, 120px);
  align-items: stretch;
}
body.contact-page .contact-form-panel { min-width: 0; }
body.contact-page .contact-form-panel .contact-heading { margin: 0 0 58px; padding: 0; }
body.contact-page .contact-form-panel .contact-heading h1 { margin-top: 0; }
body.contact-page .contact-info-panel {
  display: flex; flex-direction: column; justify-content: space-between; align-items: stretch; min-width: 0; padding-top: 0;
}
body.contact-page .contact-info-panel .contact-map { order: 0; width: 100%; aspect-ratio: 1.25; min-height: 240px; margin: 0 0 28px; }
body.contact-page .contact-info-panel h2 { order: 1; margin: 0 0 14px; }
body.contact-page .contact-info-panel address { order: 2; margin: 0 0 12px; }
body.contact-page .contact-info-panel .map-link { order: 3; margin-top: 0; align-self: flex-start; }
@media (max-width: 800px) {
  body.study-page .home-mark, body.projects-page .home-mark, body.project-detail .home-mark, body.contact-page .contact-mark { width: 125px !important; max-width: 125px !important; top: 18px !important; }
  body.contact-page .contact-main { padding-top: 112px; }
  body.contact-page .contact-layout { grid-template-columns: 1fr; gap: 48px; }
  body.contact-page .contact-form-panel .contact-heading { margin-bottom: 42px; }
  body.contact-page .contact-info-panel { gap: 0; }
}


/* V8.16 — estudi editorial en dues columnes i vídeo complet */
body.study-page .study-sequence {
  position: relative !important;
  height: 100svh !important;
  min-height: 520px !important;
  background: #fff !important;
  overflow: hidden;
}
body.study-page .study-sequence-item {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
body.study-page .study-sequence video {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #fff !important;
}
body.study-page .study-philosophy.study-editorial,
body.study-page .study-team.study-editorial-team {
  background: #fff !important;
  padding: clamp(76px, 10vw, 142px) clamp(24px, 4.1vw, 66px) !important;
}
body.study-page .study-editorial-grid {
  display: grid !important;
  grid-template-columns: minmax(180px, .72fr) minmax(0, 2.28fr) !important;
  gap: clamp(34px, 7vw, 110px) !important;
  align-items: start !important;
}
body.study-page .study-editorial-title {
  margin: 0 !important;
  color: #12245a !important;
  font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: clamp(25px, 2.4vw, 34px) !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  letter-spacing: -.035em !important;
  text-align: left !important;
}
body.study-page .study-editorial-copy {
  max-width: none !important;
  color: #454545 !important;
  font-family: 'Quicksand', Arial, sans-serif !important;
  font-size: clamp(14px, 1.05vw, 16px) !important;
  line-height: 1.9 !important;
  text-align: justify !important;
  text-justify: inter-word !important;
  hyphens: auto !important;
}
body.study-page .study-editorial-copy p { margin: 0 0 1.1em !important; }
body.study-page .study-editorial-copy p:last-child { margin-bottom: 0 !important; }
body.study-page .study-team-grid { align-items: start !important; }
body.study-page .study-team-profile {
  display: grid;
  grid-template-columns: minmax(220px, .78fr) minmax(0, 1.22fr);
  gap: clamp(28px, 5vw, 76px);
  align-items: start;
}
body.study-page .study-team-image { margin: 0 !important; }
body.study-page .study-team-image img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 720px;
  object-fit: cover;
  object-position: center top;
}
body.study-page .study-team-info h3 {
  margin: 0 0 12px;
  color: #12245a;
  font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  font-size: clamp(28px, 3.3vw, 46px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.035em;
}
body.study-page .study-team-info .study-role { margin: 0 0 24px; }
body.study-page .study-team-info .study-description {
  max-width: 620px;
  color: #454545;
  font-size: clamp(14px, 1.05vw, 16px);
  line-height: 1.9;
  text-align: justify;
  text-justify: inter-word;
}
@media (max-width: 800px) {
  body.study-page .study-sequence { height: 82svh !important; min-height: 460px !important; }
  body.study-page .study-editorial-grid { grid-template-columns: 1fr !important; gap: 24px !important; }
  body.study-page .study-philosophy.study-editorial,
  body.study-page .study-team.study-editorial-team { padding: 72px 24px !important; }
  body.study-page .study-team-profile { grid-template-columns: 1fr !important; gap: 28px !important; }
  body.study-page .study-team-image img { max-height: none; width: 100%; max-width: 560px; }
}


/* V8.17 — vídeo hero a pantalla completa, sense controls visibles */
body.study-page .study-sequence {
  width: 100%;
  height: 100svh !important;
  min-height: 560px !important;
  background: #06143a !important;
}
body.study-page .study-sequence video {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  background: #06143a !important;
  pointer-events: none;
}
body.study-page .study-team-profile {
  display: grid !important;
  grid-template-columns: minmax(220px, .78fr) minmax(0, 1.22fr) !important;
  gap: clamp(28px, 5vw, 76px) !important;
  align-items: start !important;
}
body.study-page .study-team-image img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 720px !important;
  object-fit: cover !important;
  object-position: center top !important;
}
body.study-page .study-team-caption { padding-top: 18px; }
body.study-page .study-team-caption h3,
body.study-page .study-team-info h3 {
  margin: 0 0 10px !important;
  color: #12245a !important;
  font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: clamp(24px, 2.5vw, 34px) !important;
  font-weight: 400 !important;
  line-height: 1.15 !important;
  letter-spacing: -.035em !important;
}
body.study-page .study-team-caption .study-role {
  margin: 0 !important;
  color: #777 !important;
  font-family: 'Quicksand', Arial, sans-serif !important;
  font-size: 14px !important;
}
body.study-page .study-team-info { display: flex; flex-direction: column; gap: clamp(30px, 4vw, 58px); }
body.study-page .study-team-info .study-description {
  max-width: none !important;
  margin: 0 !important;
  color: #454545 !important;
  font-family: 'Quicksand', Arial, sans-serif !important;
  font-size: clamp(14px, 1.05vw, 16px) !important;
  line-height: 1.9 !important;
  text-align: justify !important;
  text-justify: inter-word !important;
}
@media (max-width: 800px) {
  body.study-page .study-sequence { height: 100svh !important; min-height: 480px !important; }
  body.study-page .study-team-profile { grid-template-columns: 1fr !important; }
  body.study-page .study-team-image img { max-width: 560px; }
}

/* V8.19 — correccions d'Estudi: menú funcional, vídeo sticky i biografia en text continu */
body.study-page .study-menu-link {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 30px;
  height: 30px;
  cursor: pointer;
  z-index: 90 !important;
}
body.study-page .study-menu-link span {
  display: block;
  width: 28px;
  height: 2px;
  background: #111 !important;
  transition: transform .25s ease, opacity .25s ease;
}
body.study-page .side-menu { z-index: 85; }
body.study-page .side-menu.open { width: clamp(245px, 24vw, 360px); }
body.study-page .side-menu .side-close { position:absolute; top:18px; right:22px; z-index:2; border:0; background:transparent; color:#fff; font-size:36px; line-height:1; cursor:pointer; }
body.study-page .study-sequence {
  position: sticky !important;
  top: 0 !important;
  z-index: 0 !important;
  height: 100svh !important;
  min-height: 480px !important;
  overflow: hidden !important;
}
body.study-page .study-content { position: relative !important; z-index: 1 !important; }
body.study-page .study-philosophy,
body.study-page .study-team { position: relative !important; z-index: 2 !important; background: #fff !important; }
body.study-page .study-philosophy { margin-top: -1px !important; }
body.study-page .study-team-info { display: block !important; }
body.study-page .study-team-info .study-description { margin: 0 0 1.1em !important; }
body.study-page .study-team-info .study-description:last-child { margin-bottom: 0 !important; }
body.study-page .study-team-caption h3 { overflow-wrap: anywhere; }
@media (max-width: 800px) {
  body.study-page .side-menu.open { width: min(78vw, 330px); }
  body.study-page .study-sequence { height: 100svh !important; min-height: 480px !important; }
}


/* V8.20 — Estudi: composició editorial, sem guionets i menú amb caixa normal */
body.study-page .study-team-grid {
  display: grid !important;
  grid-template-columns: minmax(150px, .22fr) minmax(0, .78fr) !important;
  column-gap: clamp(28px, 4vw, 64px) !important;
  align-items: start !important;
}
body.study-page .study-team-grid > .study-team-profile {
  width: 100% !important;
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(190px, .38fr) minmax(0, .62fr) !important;
  gap: clamp(24px, 4vw, 64px) !important;
  align-items: start !important;
}
body.study-page .study-team-image,
body.study-page .study-team-info { min-width: 0 !important; width: 100% !important; }
body.study-page .study-team-info .study-description {
  hyphens: none !important;
  -webkit-hyphens: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  text-align: justify !important;
  text-align-last: left;
}
body.study-page .study-menu-link,
body.study-page .side-menu a,
body.study-page .side-menu button {
  text-transform: none !important;
}
@media (max-width: 800px) {
  body.study-page .study-team-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    row-gap: 24px !important;
  }
  body.study-page .study-team-grid > .study-team-profile {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 24px !important;
  }
  body.study-page .study-team-info .study-description {
    hyphens: none !important;
    -webkit-hyphens: none !important;
    overflow-wrap: break-word !important;
  }
}


/* V8.21 — Equipo: rejilla editorial a todo el ancho en escritorio.
   La fotografía ocupa la columna intermedia y el texto todo el espacio restante. */
@media (min-width: 801px) {
  body.study-page .study-team.study-editorial-team {
    width: 100% !important;
    max-width: none !important;
  }
  body.study-page .study-team-grid {
    display: grid !important;
    grid-template-columns: minmax(190px, .28fr) minmax(180px, .22fr) minmax(0, 1fr) !important;
    column-gap: clamp(28px, 4vw, 64px) !important;
    align-items: start !important;
    width: 100% !important;
  }
  body.study-page .study-team-grid > .study-editorial-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
  body.study-page .study-team-grid > .study-team-profile {
    display: contents !important;
  }
  body.study-page .study-team-grid .study-team-image {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  body.study-page .study-team-grid .study-team-info {
    grid-column: 3 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  body.study-page .study-team-info .study-description {
    max-width: none !important;
    width: 100% !important;
    text-align: justify !important;
    text-align-last: start !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }
  body.study-page .study-team-image img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center top !important;
  }
}

/* V8.23 — alinear el bloque Equipo como una composición editorial y unificar logotipos. */
@media (min-width: 801px) {
  body.study-page .study-team.study-editorial-team {
    width: 100% !important;
    max-width: none !important;
  }
  body.study-page .study-team-grid {
    display: grid !important;
    grid-template-columns: minmax(300px, 0.32fr) minmax(0, 0.68fr) !important;
    column-gap: clamp(32px, 4vw, 72px) !important;
    row-gap: 28px !important;
    align-items: start !important;
    width: 100% !important;
  }
  body.study-page .study-team-grid > .study-editorial-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
    margin: 0 !important;
  }
  body.study-page .study-team-grid > .study-team-profile {
    display: contents !important;
  }
  body.study-page .study-team-grid .study-team-info {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  body.study-page .study-team-grid .study-team-image {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  body.study-page .study-team-image img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center top !important;
  }
  body.study-page .study-team-info .study-description {
    width: 100% !important;
    max-width: none !important;
    text-align: justify !important;
    text-align-last: start !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }
}

/* El tamaño de referencia es el de la cabecera de Estudio. */
body.study-page .study-header a,
body.projects-page .home-mark,
body.project-detail .home-mark,
body.contact-page .contact-mark {
  width: clamp(184px, 18vw, 264px) !important;
  max-width: 264px !important;
}
body.study-page .study-header img,
body.projects-page .home-mark img,
body.project-detail .home-mark img,
body.contact-page .contact-mark img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}
@media (max-width: 800px) {
  body.study-page .study-header a,
  body.projects-page .home-mark,
  body.project-detail .home-mark,
  body.contact-page .contact-mark {
    width: clamp(156px, 36vw, 216px) !important;
    max-width: 216px !important;
    top: 18px !important;
  }
  body.study-page .study-team-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
}


/* V8.24 — Equipo: mismas columnas y márgenes que el bloque Estudio. */
@media (min-width: 801px) {
  body.study-page .study-team.study-editorial-team {
    width: 100% !important;
    max-width: none !important;
  }
  body.study-page .study-team-grid {
    display: grid !important;
    grid-template-columns: minmax(180px, .72fr) minmax(0, 2.28fr) !important;
    column-gap: clamp(34px, 7vw, 110px) !important;
    row-gap: 28px !important;
    align-items: start !important;
    width: 100% !important;
  }
  body.study-page .study-team-grid > .study-editorial-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
    margin: 0 !important;
  }
  body.study-page .study-team-grid > .study-team-profile {
    display: contents !important;
  }
  body.study-page .study-team-grid .study-team-info {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  body.study-page .study-team-grid .study-team-image {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  body.study-page .study-team-image img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center top !important;
  }
  body.study-page .study-team-info .study-description {
    width: 100% !important;
    max-width: none !important;
    text-align: justify !important;
    text-justify: inter-word !important;
    text-align-last: start !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }
}


/* V8.26 — Estudi: text d'Equipo amb la mateixa retícula que Estudio; sense fotografia. */
@media (min-width: 801px) {
  body.study-page .study-team.study-editorial-team { padding: clamp(76px, 10vw, 142px) clamp(24px, 4.1vw, 66px) !important; }
  body.study-page .study-team-grid {
    display: grid !important;
    grid-template-columns: minmax(180px, .72fr) minmax(0, 2.28fr) !important;
    column-gap: clamp(34px, 7vw, 110px) !important;
    row-gap: 0 !important;
    align-items: start !important;
  }
  body.study-page .study-team-grid > .study-editorial-title { grid-column: 1 !important; grid-row: 1 !important; }
  body.study-page .study-team-grid > .study-team-profile { display: contents !important; }
  body.study-page .study-team-grid .study-team-info { grid-column: 2 !important; grid-row: 1 !important; width: 100% !important; max-width: none !important; margin: 0 !important; }
  body.study-page .study-team-grid .study-team-info .study-description { max-width: none !important; width: 100% !important; text-align: justify !important; text-align-last: start !important; hyphens: none !important; -webkit-hyphens: none !important; overflow-wrap: normal !important; }
  body.study-page .study-team-grid .study-team-image { display: none !important; }
}
body.study-page .study-languages { color: #fff; transition: color .25s ease; }
body.study-page.header-on-light .study-languages { color: #12245a !important; text-shadow: none !important; }
body.study-page .study-languages button { text-transform: none !important; }

/* V8.26 — Logotip de portada: les tres línies entren alternant esquerra/dreta. */
body.home .home-mark-animated {
  position: fixed;
  aspect-ratio: 2048 / 1325;
  height: auto;
  overflow: visible;
}
body.home .home-mark-animated .logo-piece {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  will-change: transform, opacity;
}
body.home .home-mark-animated .logo-ant { clip-path: inset(19.8% 0 58.9% 0); animation: logo-enter-left 1.05s cubic-bezier(.2,.75,.25,1) both; }
body.home .home-mark-animated .logo-oni { clip-path: inset(41.7% 0 42.5% 0); animation: logo-enter-right 1.05s cubic-bezier(.2,.75,.25,1) .28s both; }
body.home .home-mark-animated .logo-arq { clip-path: inset(58.3% 0 19.8% 0); animation: logo-enter-left 1.05s cubic-bezier(.2,.75,.25,1) .56s both; }
@keyframes logo-enter-left { from { transform: translateX(-70vw); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes logo-enter-right { from { transform: translateX(70vw); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  body.home .home-mark-animated .logo-piece { animation: none !important; }
}


/* V8.27 — selector editorial Estudio/Equipo, contacto azul y controles legibles */
body.study-page .study-switcher { background:#fff; padding:clamp(76px,9vw,140px) clamp(24px,5.5vw,84px) clamp(72px,8vw,112px); }
body.study-page .study-switcher .study-editorial-grid { display:grid; grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr); gap:clamp(34px,8vw,130px); align-items:start; }
body.study-page .study-editorial-tabs { display:flex; flex-direction:column; align-items:flex-start; gap:13px; line-height:1.2; letter-spacing:-.035em; font-weight:400; text-transform:none; }
body.study-page .study-editorial-tabs button { border:0; padding:0; background:transparent; color:#c2c2c2; font:inherit; font-size:clamp(26px,3vw,36px); letter-spacing:-.035em; text-transform:none; cursor:pointer; text-align:left; transition:color .2s ease; }
body.study-page .study-editorial-tabs button:hover, body.study-page .study-editorial-tabs button:focus-visible, body.study-page .study-editorial-tabs button.active { color:#555; }
body.study-page .study-editorial-copy { min-height:var(--study-copy-min-height,520px); color:#888; font-family:'Quicksand',Arial,sans-serif; font-size:clamp(14px,1.05vw,17px); line-height:1.8; font-weight:300; }
body.study-page .study-editorial-copy p { margin:0 0 18px; text-align:justify; hyphens:none; -webkit-hyphens:none; overflow-wrap:normal; }
body.study-page .study-editorial-copy [hidden] { display:none !important; }
@media(max-width:800px) {
 body.study-page .study-switcher { padding:58px 22px 64px; }
 body.study-page .study-switcher .study-editorial-grid { grid-template-columns:1fr; gap:24px; }
 body.study-page .study-editorial-tabs { flex-direction:row; flex-wrap:wrap; gap:18px; }
 body.study-page .study-editorial-tabs button { font-size:clamp(24px,6vw,32px); }
 body.study-page .study-editorial-copy { min-height:0; }
}

/* Contacte: fons blau integral, contingut per davall de la capçalera fixa */
body.contact-page { background:#06143a !important; color:#fff !important; }
body.contact-page::before { display:none !important; }
body.contact-page .contact-main { position:relative; z-index:1; padding-top:clamp(210px,24vh,280px) !important; color:#fff; }
body.contact-page .contact-heading h1, body.contact-page .contact-form-panel h2, body.contact-page .contact-info-panel h2,
body.contact-page .contact-heading > p:last-child, body.contact-page .contact-info-panel address,
body.contact-page .contact-info-panel address a, body.contact-page .contact-info-panel .map-link,
body.contact-page form label, body.contact-page .contact-privacy a { color:#fff !important; }
body.contact-page .contact-heading > p:last-child { opacity:.82; }
body.contact-page form input:not([type=checkbox]), body.contact-page form textarea { color:#fff !important; border-bottom-color:rgba(255,255,255,.48) !important; }
body.contact-page form input::placeholder, body.contact-page form textarea::placeholder { color:rgba(255,255,255,.62) !important; }
body.contact-page .contact-privacy input { accent-color:#fff; }
body.contact-page form button { color:#06102d !important; background:#fff !important; border-color:#fff !important; }
body.contact-page form button:hover { color:#fff !important; background:transparent !important; }
body.contact-page .contact-map { border:1px solid rgba(255,255,255,.18); }
body.contact-page .home-languages { color:#fff !important; }
body.contact-page .menu-btn.dark span, body.contact-page .menu-btn.dark span:before, body.contact-page .menu-btn.dark span:after { background:#fff !important; }
body.contact-page .contact-mark img { filter:brightness(0) invert(1) !important; }
@media(max-width:760px) {
 body.contact-page { background:#030b24 !important; }
 body.contact-page .contact-main { padding-top:178px !important; padding-left:22px; padding-right:22px; }
}


/* V8.28 — restaurar la làmina blanca sobre el vídeo d'Estudi i traduir el missatge de scroll. */
body.home .home-hero::after { content:none !important; }
body.home .home-hero { position:sticky !important; top:0 !important; z-index:0 !important; }
body.home .home-scroll-hint {
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%); z-index:2;
  color:#fff; font-size:10px; letter-spacing:.2em; text-transform:uppercase; opacity:.85;
  white-space:nowrap; pointer-events:none;
}
body.study-page { overflow-x:hidden; background:#fff !important; }
body.study-page .study-content { position:relative !important; z-index:1 !important; display:block !important; }
body.study-page .study-sequence {
  position:sticky !important; top:0 !important; z-index:0 !important;
  height:100svh !important; min-height:480px !important; margin:0 !important;
  overflow:hidden !important; background:#111 !important;
}
body.study-page .study-editorial.study-switcher {
  position:relative !important; z-index:3 !important; display:block !important;
  width:100% !important; max-width:none !important; background:#fff !important;
  margin-top:-1px !important;
}
body.study-page .study-switcher .study-editorial-grid {
  position:relative !important; z-index:3 !important;
}
body.study-page .study-editorial-copy, body.study-page .study-editorial-tabs { visibility:visible !important; opacity:1 !important; }
body.study-page .home-contact { position:relative !important; z-index:4 !important; }
@media (max-width:800px) {
  body.study-page .study-sequence { position:sticky !important; top:0 !important; height:100svh !important; min-height:100svh !important; }
  body.study-page .study-editorial.study-switcher { padding-top:58px !important; }
}


/* Retrat i signatura al final de la documentació d'Estudi; visible amb qualsevol pestanya activa. */
body.study-page .study-portrait-signature {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(52px, 7vw, 100px) clamp(24px, 4.1vw, 66px) clamp(72px, 9vw, 124px);
  text-align: center;
}
body.study-page .study-portrait-signature img {
  display: block;
  width: clamp(250px, 27vw, 390px);
  max-width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center;
}
body.study-page .study-portrait-signature p {
  margin: 18px 0 0;
  color: #06143a;
  font-family: 'Quicksand', Arial, sans-serif;
  font-size: clamp(20px, 2.2vw, 30px);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -.025em;
}
@media (max-width: 800px) {
  body.study-page .study-portrait-signature { padding: 44px 24px 72px; }
  body.study-page .study-portrait-signature img { width: min(72vw, 330px); }
}

/* V8.30 — garantir que el retrat i la signatura formen part de la làmina blanca sobre el vídeo fix. */
body.study-page .study-portrait-signature {
  position: relative !important;
  z-index: 5 !important;
  background: #fff !important;
  isolation: isolate;
  width: 100% !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  clear: both;
}
body.study-page .study-portrait-signature img {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: clamp(280px, 30vw, 420px) !important;
  max-width: min(82vw, 420px) !important;
  height: auto !important;
  aspect-ratio: 3 / 4 !important;
  object-fit: cover !important;
}
body.study-page .study-portrait-signature p {
  position: relative !important;
  z-index: 1 !important;
  color: #06143a !important;
}


/* V8.31 — Estudi en mòbil: rètols apilats verticalment com a la pàgina principal; retrat retirat. */
@media (max-width: 800px) {
  body.study-page .study-editorial-tabs {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 13px !important;
  }
}
body.study-page .study-portrait-signature { display: none !important; }


/* V8.32 — Presentación del equipo: retrato y formación, sin alterar la retícula editorial */
body.study-page .study-team-profile {
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1fr);
  gap: clamp(32px, 7vw, 110px);
  align-items: start;
}
body.study-page .study-team-portrait img {
  display: block;
  width: 100%;
  max-width: 420px;
  max-height: 620px;
  object-fit: cover;
  object-position: center top;
}
body.study-page .study-team-signature {
  margin: 14px 0 0;
  text-align: left;
}
body.study-page .study-team-portrait h2 {
  margin: 0;
  color: #12245a;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: clamp(21px, 2vw, 28px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -.02em;
}
body.study-page .study-team-signature p {
  margin: 4px 0 0;
  color: #454545;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
}
body.study-page .study-team-education p {
  margin: 0 0 18px;
  max-width: none;
  text-align: justify;
  hyphens: none;
  overflow-wrap: normal;
  font-size: clamp(15px, 1.3vw, 18px);
  line-height: 1.85;
  color: #454545;
}
@media (max-width: 700px) {
  body.study-page .study-team-profile { grid-template-columns: 1fr; gap: 26px; }
  body.study-page .study-team-portrait img { width: min(100%, 420px); max-height: none; margin-inline: auto; }
  body.study-page .study-team-portrait h2 { text-align: left; }
}


/* V8.36 — logotip visible sobre el vídeo i eclipsat per la làmina blanca en fer scroll. */
body.study-page .study-header { position:fixed !important; z-index:2 !important; }
body.study-page .study-content { position:relative !important; z-index:auto !important; }
body.study-page .study-sequence { position:sticky !important; z-index:0 !important; }
body.study-page .study-editorial.study-switcher { position:relative !important; z-index:3 !important; background:#fff !important; }
body.study-page .study-editorial.study-switcher .study-editorial-grid { position:relative !important; z-index:3 !important; }
body.study-page .study-languages { z-index:71 !important; color:#111 !important; text-shadow:none !important; }
body.study-page .study-menu-link { z-index:90 !important; color:#111 !important; text-shadow:none !important; }
body.projects-page .home-mark { z-index:2 !important; }
body.projects-page .project-list { position:relative !important; z-index:3 !important; background:#fff !important; }

/* V8.37 — mateix comportament del logotip en portada, Projectes i Estudi. */
/* Portada: el logotip queda sobre el render inicial i darrere del full editorial blanc. */
body.home .home-mark {
  z-index: 1 !important;
}
body.home .home-hero {
  position: sticky !important;
  top: 0 !important;
  z-index: 0 !important;
}
body.home .home-editorial {
  position: relative !important;
  z-index: 2 !important;
  background: #fff !important;
}
body.home .home-contact {
  position: relative !important;
  z-index: 2 !important;
}
/* Projectes: el logotip sempre està present; les targetes el van cobrint en passar per damunt. */
body.projects-page .home-mark {
  position: fixed !important;
  z-index: 2 !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.projects-page .project-list {
  position: relative !important;
  z-index: auto !important;
  background: transparent !important;
}
body.projects-page .project-card {
  position: relative !important;
  z-index: 3 !important;
  background: #fff !important;
}


/* V8.38 — fitxa BVR: seqüència editorial amb els renders facilitats. */
body.projects-page .project-card h2 {
  margin: 13px 0 5px;
  font-size: 11px;
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
}
body.project-detail .project-image-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .72fr);
  align-items: start;
  gap: clamp(12px, 2vw, 28px);
  padding: 0 clamp(24px, 4vw, 64px) clamp(18px, 2.2vw, 32px);
}
body.project-detail .project-image-pair .project-image {
  min-width: 0;
  padding: 0;
  margin: 0;
}
body.project-detail .project-image-pair img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
@media (max-width: 700px) {
  body.project-detail .project-image-pair {
    grid-template-columns: 1fr;
    gap: 16px;
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* V8.39 — composició editorial més essencial, inspirada en portfolis d'arquitectura minimalistes. */
body.project-detail .project-overview {
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(0, 1.45fr);
  align-items: start;
  gap: clamp(28px, 5.2vw, 84px);
  padding: clamp(34px, 5vw, 76px) clamp(24px, 4vw, 64px) clamp(54px, 8vw, 120px);
}
body.project-detail .project-overview-copy { min-width: 0; }
body.project-detail .project-overview .project-intro {
  display: block;
  padding: 0;
}
body.project-detail .project-overview .project-intro > div { margin-bottom: clamp(34px, 5vw, 68px); }
body.project-detail .project-overview .project-kicker {
  margin: 0 0 20px;
  font-size: 9px;
  letter-spacing: .16em;
  line-height: 1.6;
  color: #858585;
}
body.project-detail .project-overview .project-intro h1.project-name {
  font-size: clamp(42px, 5vw, 68px);
  font-weight: 400;
  letter-spacing: -.055em;
  margin: 0 0 12px;
  color: #06143a;
}
body.project-detail .project-overview .project-location {
  font-size: 10px;
  letter-spacing: .14em;
  color: #777;
}
body.project-detail .project-overview .project-intro dl { margin: 0; }
body.project-detail .project-overview .project-intro dl > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid #e7e7e7;
}
body.project-detail .project-overview .project-intro dt {
  font-size: 9px;
  letter-spacing: .08em;
  color: #929292;
}
body.project-detail .project-overview .project-intro dd {
  margin: 0;
  text-align: right;
  font-size: 11px;
  white-space: nowrap;
  color: #333;
}
body.project-detail .project-overview .project-copy {
  padding: clamp(28px, 4vw, 56px) 0 0;
  font-size: clamp(13px, 1vw, 15px);
  line-height: 1.8;
  color: #555;
}
body.project-detail .project-overview .project-copy p { margin: 0 0 18px; }
body.project-detail .project-image.overview-image {
  padding: 0;
  margin: 0;
  min-width: 0;
}
body.project-detail .project-image.overview-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
body.project-detail .project-image.gallery-image {
  padding: 0;
  margin: 0 0 clamp(44px, 7vw, 100px);
  width: calc(100% - clamp(48px, 8vw, 128px));
  max-width: 1500px;
}
body.project-detail .project-image.gallery-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
/* Les imatges alternen entre el marge esquerre i el dret, sempre alineades amb la mateixa retícula. */
body.project-detail .project-image.gallery-image-wide {
  width: calc(100% - clamp(48px, 8vw, 128px));
  margin-left: auto;
  margin-right: clamp(24px, 4vw, 64px);
}
body.project-detail .project-image.gallery-image-narrow {
  width: min(68%, 1500px);
  margin-left: clamp(24px, 4vw, 64px);
  margin-right: auto;
}
body.project-detail .project-image-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(14px, 2vw, 28px);
  width: calc(100% - clamp(48px, 8vw, 128px));
  max-width: 1500px;
  padding: 0;
  margin: 0 auto clamp(44px, 7vw, 100px);
}
body.project-detail .project-image-pair .project-image {
  width: 100%;
  min-width: 0;
  padding: 0;
  margin: 0;
}
body.project-detail .project-image-pair img {
  display: block;
  width: 100%;
  aspect-ratio: 2 / 3;
  height: auto;
  object-fit: cover;
}
@media (max-width: 700px) {
  body.project-detail .project-overview {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 30px 20px 52px;
  }
  body.project-detail .project-overview .project-intro > div { margin-bottom: 28px; }
  body.project-detail .project-overview .project-copy { padding-top: 26px; font-size: 14px; }
  body.project-detail .project-image.gallery-image,
  body.project-detail .project-image.gallery-image-wide,
  body.project-detail .project-image.gallery-image-narrow {
    width: calc(100% - 40px);
    margin: 0 auto 38px;
  }
  body.project-detail .project-image-pair {
    grid-template-columns: 1fr;
    width: calc(100% - 40px);
    gap: 24px;
    margin: 0 auto 38px;
  }
  body.project-detail .project-image-pair img {
    aspect-ratio: auto;
    height: auto;
    object-fit: contain;
  }
}

/* V8.40 — retícula alineada als marges i parelles d’imatges amb alçària homogènia. */

/* V8.41 — retícula estricta de proyecto: marges compartits, imatges grans i formats verticals sense retallar. */
@media (min-width: 701px) {
  body.project-detail {
    --project-gutter: clamp(28px, 4.2vw, 72px);
  }
  body.project-detail .project-overview {
    padding-left: var(--project-gutter);
    padding-right: var(--project-gutter);
    grid-template-columns: minmax(250px, .62fr) minmax(0, 1.7fr);
    gap: clamp(32px, 4vw, 68px);
  }
  body.project-detail .project-image.gallery-image,
  body.project-detail .project-image.gallery-image-wide,
  body.project-detail .project-image.gallery-image-narrow {
    width: calc(100% - 2 * var(--project-gutter));
    max-width: none;
    margin-left: var(--project-gutter);
    margin-right: var(--project-gutter);
    margin-bottom: clamp(48px, 7vw, 104px);
    box-sizing: border-box;
  }
  body.project-detail .project-image.gallery-image-wide { width: calc(100% - 2 * var(--project-gutter)); }
  body.project-detail .project-image.gallery-image-narrow { width: calc(100% - 2 * var(--project-gutter)); }
  body.project-detail .project-image.gallery-image img,
  body.project-detail .project-image.gallery-image-wide img,
  body.project-detail .project-image.gallery-image-narrow img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }
  body.project-detail .project-image-pair {
    width: calc(100% - 2 * var(--project-gutter));
    max-width: none;
    margin-left: var(--project-gutter);
    margin-right: var(--project-gutter);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(16px, 2vw, 32px);
  }
  body.project-detail .project-image-pair .project-image {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    background: #fff;
  }
  body.project-detail .project-image-pair img {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
    background: #fff;
  }
}

@media (max-width: 700px) {
  body.projects-page .project-list {
    grid-template-columns: minmax(0, 1fr);
    padding: 112px 18px 54px;
    gap: 34px;
  }
  body.projects-page .project-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    height: auto;
    object-fit: cover;
  }
  body.projects-page .project-card h2 {
    margin: 13px 0 5px;
    font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    font-size: clamp(22px, 6vw, 30px);
    line-height: 1.15;
    font-weight: 400;
    letter-spacing: -.025em;
    overflow-wrap: anywhere;
  }
  body.projects-page .project-card p {
    font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    font-size: 9px;
    line-height: 1.6;
    letter-spacing: .09em;
  }
  body.project-detail .project-overview { padding-left: 18px; padding-right: 18px; }
  body.project-detail .project-image.gallery-image,
  body.project-detail .project-image.gallery-image-wide,
  body.project-detail .project-image.gallery-image-narrow {
    width: calc(100% - 36px);
    margin-left: 18px;
    margin-right: 18px;
  }
  body.project-detail .project-image-pair {
    width: calc(100% - 36px);
    margin-left: 18px;
    margin-right: 18px;
  }
  body.project-detail .project-image-pair img {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
    background: #fff;
  }
}


/* V8.42 — fitxa BVR: jerarquia tipogràfica i retícula més neta. */
body.project-detail .project-overview { align-items: stretch; }
body.project-detail .project-overview-copy {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 100%;
}
body.project-detail .project-overview .project-intro > div { margin-bottom: clamp(24px, 3vw, 42px); }
body.project-detail .project-overview .project-intro h1.project-name {
  color: #858585;
  margin-bottom: 12px;
  font-weight: 300;
}
body.project-detail .project-overview .project-kicker.project-type {
  margin: 0 0 5px;
  font-size: 9px;
  letter-spacing: .13em;
  color: #858585;
}
body.project-detail .project-overview .project-location {
  margin: 0;
  font-size: 10px;
  letter-spacing: .12em;
  color: #858585;
}
body.project-detail .project-overview .project-intro dl > div {
  border: 0;
  padding: 5px 0;
  gap: 12px;
}
body.project-detail .project-overview .project-intro dt {
  font-size: 9px;
  letter-spacing: .04em;
}
body.project-detail .project-overview .project-intro dd {
  font-size: 11px;
  font-weight: 400;
}
body.project-detail .project-overview .project-copy {
  margin-top: auto;
  padding-top: clamp(26px, 3vw, 44px);
  text-align: justify;
  text-justify: inter-word;
  hyphens: none;
}
body.project-detail .project-image-pair { align-items: stretch; }
body.project-detail .project-image-pair .project-image {
  aspect-ratio: 2 / 3;
  overflow: hidden;
}
body.project-detail .project-image-pair img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: contain;
  background: #fff;
}
@media (max-width: 700px) {
  body.project-detail .project-overview-copy { display: block; min-height: 0; }
  body.project-detail .project-overview .project-copy { text-align: justify; padding-top: 26px; }
  body.project-detail .project-image-pair .project-image { aspect-ratio: auto; }
  body.project-detail .project-image-pair img { height: auto; object-fit: contain; }
}

/* V8.43 — retícula de les fitxes MHAR i MHC: parelles d'imatges amb alçària comuna i imatge completa. */
body.project-detail .project-image-pair { align-items: stretch; }
body.project-detail .project-image-pair .project-image { height: clamp(280px, 38vw, 620px); overflow: hidden; }
body.project-detail .project-image-pair img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
body.project-detail .project-image.gallery-image-wide, body.project-detail .project-image.gallery-image-narrow { border-radius: 0; }
@media (max-width:700px) { body.project-detail .project-image-pair .project-image { height: auto; } body.project-detail .project-image-pair img { height:auto; object-fit:contain; } }

/* V8.43 — retícula de les fitxes MHAR i MHC: parelles d'imatges amb alçària comuna i imatge completa. */
body.project-detail .project-image-pair { align-items: stretch; }
body.project-detail .project-image-pair .project-image { height: clamp(280px, 38vw, 620px); overflow: hidden; }
body.project-detail .project-image-pair img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
body.project-detail .project-image.gallery-image-wide, body.project-detail .project-image.gallery-image-narrow { border-radius: 0; }
@media (max-width:700px) { body.project-detail .project-image-pair .project-image { height: auto; } body.project-detail .project-image-pair img { height:auto; object-fit:contain; } }


/* V8.44 — correccions de revisió: cobrir el logotip amb la graella, tipografia coherent i imatges úniques. */
body.projects-page .project-list {
  position: relative !important;
  z-index: 3 !important;
  background: #fff !important;
  isolation: isolate;
}
body.projects-page .home-mark { z-index: 2 !important; }
body.projects-page .home-languages,
body.projects-page .menu-btn,
body.projects-page .side-menu { z-index: 90 !important; }
body.project-detail .project-sheet {
  position: relative;
  z-index: 3;
  background: #fff;
}
body.project-detail .home-mark { z-index: 2 !important; }
body.project-detail .home-languages,
body.project-detail .menu-btn,
body.project-detail .side-menu { z-index: 90 !important; }
body.project-detail .project-overview .project-copy,
body.project-detail .project-overview .project-copy p {
  font-family: 'Montserrat', sans-serif !important;
}
@media (max-width: 700px) {
  body.project-detail .project-overview .project-copy,
  body.project-detail .project-overview .project-copy p {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 14px;
    line-height: 1.8;
    font-weight: 300;
  }
}
body.home .home-featured-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 700px) { body.home .home-featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }


/* V8.45 — retícula editorial de galeries: renders grans a tot l'ample,
   imatges reduïdes alineades a l'esquerra i parelles contigües. */
@media (min-width: 701px) {
  body.project-detail { --project-gutter: clamp(28px, 4.2vw, 72px); }
  body.project-detail .project-image.gallery-image-wide {
    width: calc(100% - 2 * var(--project-gutter));
    margin-left: var(--project-gutter);
    margin-right: var(--project-gutter);
  }
  body.project-detail .project-image.gallery-image-narrow {
    width: min(52%, 900px);
    margin-left: var(--project-gutter);
    margin-right: auto;
  }
  body.project-detail .project-image-pair {
    width: min(68%, 1120px);
    margin-left: var(--project-gutter);
    margin-right: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
  }
  body.project-detail .project-image-pair .project-image {
    width: 100%;
    margin: 0;
    padding: 0;
  }
  body.project-detail .project-image-pair img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: contain;
  }
  body.project-detail.project-mhar .project-hero {
    background-position: left center;
  }
}
@media (max-width: 700px) {
  body.project-detail .project-image-pair { gap: 0; }
}


/* Carrusel de renders a sang: tres imatges visibles, alineades i arrossegables amb el ratolí. */
body.project-detail .project-render-carousel {
  width: 100vw;
  max-width: none;
  margin: 0 0 clamp(64px, 8vw, 112px) calc(50% - 50vw);
  padding: 0;
}
body.project-detail .project-render-carousel-track {
  display: flex;
  align-items: stretch;
  gap: clamp(10px, 1.2vw, 20px);
  width: 100%;
  padding: 0 clamp(18px, 3.5vw, 60px);
  box-sizing: border-box;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  touch-action: auto;
}
body.project-detail .project-render-carousel-track::-webkit-scrollbar { display: none; }
body.project-detail .project-render-carousel-track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
body.project-detail .project-render-slide {
  flex: 0 0 calc((100% - 2 * clamp(10px, 1.2vw, 20px)) / 3);
  min-width: 0;
  aspect-ratio: 4 / 3;
  margin: 0;
  overflow: hidden;
  scroll-snap-align: start;
}
body.project-detail .project-render-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  -webkit-user-drag: none;
}
@media (max-width: 700px) {
  body.project-detail .project-render-carousel { margin-bottom: 64px; }
  body.project-detail .project-render-carousel-track { padding: 0 18px; gap: 12px; }
  body.project-detail .project-render-slide { flex-basis: 82%; aspect-ratio: 4 / 3; }
}


/* V8.49: carrusel ajustat als marges de contingut, no a l'amplària total del viewport. */
body.project-detail .project-render-carousel {
  width: auto;
  max-width: none;
  margin-left: clamp(24px, 4vw, 64px);
  margin-right: clamp(24px, 4vw, 64px);
}
body.project-detail .project-render-carousel-track {
  padding-left: 0;
  padding-right: 0;
}
@media (max-width: 700px) {
  body.project-detail .project-render-carousel {
    margin-left: 16px;
    margin-right: 16px;
  }
  body.project-detail .project-render-carousel-track {
    padding-left: 0;
    padding-right: 0;
  }
}

/* V8.52 — unificació tipogràfica dels rètols de les fitxes de projecte. */
body.project-detail .project-overview .project-kicker,
body.project-detail .project-overview .project-location,
body.project-detail .project-overview .project-intro dt,
body.project-detail .project-overview .project-intro dd,
body.project-detail .other-projects > .project-kicker {
  font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
}

/* V8.53 — projecte: unificació tipogràfica dels rètols, sense alterar la composició */
body.project-detail .project-kicker,
body.project-detail .project-location,
body.project-detail .project-intro dt,
body.project-detail .project-intro dd {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: none;
}
body.project-detail .project-intro dt { color: #777; }
body.project-detail .project-intro dd { letter-spacing: .02em; }


/* V8.54 — Uniformitat dels rètols en les fitxes de projecte */
body.project-detail .project-kicker.project-type,
body.project-detail .other-projects > .project-kicker {
  font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  font-size: clamp(21px, 2.25vw, 32px);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -.035em;
  text-transform: none;
  color: #555;
  margin-bottom: 24px;
}
@media (max-width: 700px) {
  body.project-detail .project-kicker.project-type,
  body.project-detail .other-projects > .project-kicker {
    font-size: clamp(21px, 5.5vw, 28px);
  }
}


/* V8.56 — llegibilitat mòbil, indicadors del carrusel i visor ampliat */
@media (max-width: 700px) {
  body p, body .project-copy, body .project-overview-copy, body .study-editorial-copy p,
  body .home-about-copy p, body .study-description, body .contact-intro {
    hyphens: none !important;
    -webkit-hyphens: none !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
  body p:not(.project-kicker):not(.project-location):not(.project-hero-scroll) {
    text-align: justify;
    text-align-last: start;
  }
  body h1, body h2, body h3, body .project-kicker, body .project-location,
  body .project-intro dt, body .project-intro dd, body .render-carousel-hint { hyphens:none !important; -webkit-hyphens:none !important; }
}
body.project-detail .project-render-carousel { position:relative; }
body.project-detail .project-render-carousel-track { scroll-behavior:smooth; }
body.project-detail .project-render-slide img { cursor:pointer !important; }
.render-carousel-arrow {
  position:absolute; z-index:3; top:50%; transform:translateY(-50%);
  width:34px; height:34px; border:1px solid rgba(40,40,40,.22); border-radius:50%;
  display:flex; align-items:center; justify-content:center; padding:0;
  background:rgba(255,255,255,.88); color:#252525; font:300 27px/1 'Montserrat',sans-serif;
  cursor:pointer; transition:opacity .2s ease, background .2s ease;
}
.render-carousel-arrow:hover { background:#fff; }
.render-carousel-arrow:disabled { opacity:0; pointer-events:none; }
.render-carousel-prev { left:8px; }
.render-carousel-next { right:8px; }
.render-carousel-hint { position:absolute; right:0; bottom:-25px; color:#777; font:400 10px/1.4 'Montserrat',sans-serif; letter-spacing:.02em; }
.render-lightbox { position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; padding:5vh 6vw; background:rgba(14,14,14,.96); }
.render-lightbox.is-open { display:flex; }
.render-lightbox-image { display:block; max-width:88vw; max-height:86vh; width:auto; height:auto; object-fit:contain; box-shadow:0 10px 45px rgba(0,0,0,.2); }
.render-lightbox-close, .render-lightbox-arrow { position:absolute; z-index:2; border:1px solid rgba(255,255,255,.45); background:rgba(20,20,20,.28); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.render-lightbox-close { top:20px; right:22px; width:42px; height:42px; border-radius:50%; font:300 28px/1 'Montserrat',sans-serif; }
.render-lightbox-arrow { top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%; font:300 36px/1 'Montserrat',sans-serif; }
.render-lightbox-prev { left:22px; }
.render-lightbox-next { right:22px; }
.render-lightbox-arrow:disabled { opacity:.25; }
.render-lightbox-count { position:absolute; bottom:18px; left:0; right:0; text-align:center; color:rgba(255,255,255,.72); font:400 11px/1.4 'Montserrat',sans-serif; letter-spacing:.08em; }
body.lightbox-open { overflow:hidden; }
@media (max-width:700px) {
  .render-carousel-arrow { width:30px; height:30px; font-size:24px; }
  .render-carousel-prev { left:5px; } .render-carousel-next { right:5px; }
  .render-carousel-hint { font-size:9px; bottom:-22px; }
  .render-lightbox { padding:6vh 3vw; }
  .render-lightbox-image { max-width:94vw; max-height:78vh; }
  .render-lightbox-close { top:12px; right:12px; width:38px; height:38px; }
  .render-lightbox-arrow { width:36px; height:36px; font-size:29px; }
  .render-lightbox-prev { left:8px; } .render-lightbox-next { right:8px; }
}

/* V8.58 — peu de pàgina editorial i navegació secundària */
.ap-footer{position:relative;z-index:6;background:#071326;color:#f4f5f7;padding:clamp(42px,6vw,86px) clamp(24px,8vw,120px) 24px;font-family:'Quicksand',Arial,sans-serif}
.ap-footer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(22px,5vw,72px);max-width:1440px;margin:0 auto;align-items:start}
.ap-footer-col:nth-child(2){align-items:center;text-align:center}
.ap-footer-col:nth-child(2) .ap-footer-label{width:100%;text-align:center}
.ap-footer-col:nth-child(3){align-items:flex-end;text-align:right}
.ap-footer-col:nth-child(3) .ap-footer-label{width:100%;text-align:right}
.ap-footer-col{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;font-size:clamp(13px,1vw,15px);line-height:1.65;font-weight:400}
.ap-footer-label{display:block;margin-bottom:18px;color:#9ca8b7;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.ap-footer-col address{font-style:normal;display:flex;flex-direction:column}
.ap-footer-col a{color:inherit;text-decoration:none;overflow-wrap:anywhere;transition:opacity .2s ease}
.ap-footer-col a:hover{opacity:.7}
.ap-footer-social{display:flex;flex-direction:column;gap:2px;text-transform:uppercase;letter-spacing:.04em}
.ap-footer-bottom{max-width:1440px;margin:clamp(42px,7vw,92px) auto 0;padding-top:0;border-top:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;color:#aab3bf;font-size:10px;letter-spacing:.08em;text-align:center}
.ap-footer-logo{display:block;width:clamp(100px,12vw,150px);line-height:0;margin:0 auto}.ap-footer-logo img{display:block;width:100%;height:auto;filter:brightness(0) invert(1)}
.home-secondary-nav{position:relative;z-index:4;display:flex;justify-content:center;align-items:center;gap:clamp(24px,4vw,56px);padding:34px 24px;background:#fff;color:#101010}
.home-secondary-nav a{color:inherit;text-decoration:none;font-family:'Montserrat',Arial,sans-serif;font-size:11px;letter-spacing:.08em;text-transform:uppercase;transition:opacity .2s ease}
.home-secondary-nav a:hover{opacity:.55}
body.home .home-contact{display:none!important}
@media(max-width:700px){.ap-footer-grid{grid-template-columns:1fr;gap:28px}.ap-footer-col:nth-child(2),.ap-footer-col:nth-child(3){align-items:flex-start;text-align:left}.ap-footer-col:nth-child(2) .ap-footer-label,.ap-footer-col:nth-child(3) .ap-footer-label{text-align:left}.ap-footer-label{margin-bottom:4px}.ap-footer-bottom{align-items:center;flex-direction:column;margin-top:36px}.home-secondary-nav{gap:clamp(16px,5vw,28px);padding:26px 12px}.home-secondary-nav a{font-size:10px;letter-spacing:.04em}}

/* V8.60: unificar el blau dels desplegables i contacte amb el peu */
.menu-overlay,.menu-dropdown,.nav-overlay,.menu-panel,.site-menu,.fullscreen-menu{background-color:#071326!important}
body.contact-page,.contact-page,.contact-main,.contact-form-panel{--contact-navy:#071326}
body.contact-page{background:#071326;color:#f4f5f7}


/* V8.62 — tancament minimalista del menú i xarxes socials al peu del desplegable */
.side-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:0!important;}
.side-close-line{display:block;width:24px;height:1px;background:currentColor;}
.side-menu-social{position:absolute;left:28px;right:28px;bottom:clamp(24px,5vh,48px);padding-top:20px;color:#8e99a8;font-family:'Quicksand',Arial,sans-serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;}
.side-menu-social>span{display:block;margin-bottom:12px;color:#8e99a8;}
.side-menu-social>div{display:flex;flex-wrap:wrap;align-items:center;gap:0;color:#fff;}
.side-menu-social a{color:#fff!important;text-decoration:none;font-family:'Quicksand',Arial,sans-serif;font-size:12px;letter-spacing:.02em;text-transform:uppercase!important;}
.side-menu-social a+a::before{content:'·';display:inline-block;color:#8e99a8;margin:0 10px 0 8px;}
.side-menu-social a:hover{opacity:.7;}
.side-menu nav{padding-bottom:150px;}
.side-menu{background:#071326!important;}
@media(max-width:800px){.side-menu-social{left:22px;right:22px;bottom:26px}.side-menu nav{padding-bottom:145px}}


/* V8.63: un únic traç per minimitzar el menú obert, també en escriptori */
.menu-btn[aria-expanded="true"] span:before,
.menu-btn[aria-expanded="true"] span:after { display:none !important; }
.menu-btn[aria-expanded="true"] span { transform:none !important; }
.side-menu { background:#071326 !important; }

/* V8.63: Contacte comparteix exactament el blau del peu i del desplegable */
body.contact-page,
body.contact-page .contact-main,
body.contact-page .contact-form-panel,
body.contact-page .contact-info-panel { background-color:#071326 !important; }
body.contact-page { color:#f4f5f7 !important; }
body.contact-page .contact-heading h1,
body.contact-page .contact-form-panel h2,
body.contact-page .contact-info-panel h2 { color:#f4f5f7 !important; }
body.contact-page .contact-heading > p:last-child,
body.contact-page .contact-info-panel p,
body.contact-page .contact-page-kicker { color:#b5bfcc !important; }
body.contact-page form label { color:#e5e9ef !important; }
body.contact-page form input:not([type=checkbox]),
body.contact-page form textarea { color:#f4f5f7 !important; border-bottom-color:#526071 !important; }
body.contact-page form input::placeholder,
body.contact-page form textarea::placeholder { color:#9ca8b7 !important; }
body.contact-page .contact-privacy { color:#cbd3dd !important; }
body.contact-page .contact-mark { z-index:60; }

/* V8.63: logotip de Projectes fixat a la part superior durant el scroll */
body.projects-page .home-mark {
  position:fixed !important; top:22px !important; left:50% !important;
  transform:translateX(-50%) !important; z-index:100 !important;
}
body.projects-page .home-mark img { max-height:76px !important; object-fit:contain !important; }


/* V8.64 — Project logo matches Study/Contact size and fades while browsing cards */
body.projects-page > .home-mark {
  position: fixed !important;
  top: 19px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: clamp(184px, 18vw, 264px) !important;
  max-width: 264px !important;
  z-index: 100 !important;
  opacity: 1;
  visibility: visible;
  transition: opacity .28s ease, visibility .28s ease;
}
body.projects-page > .home-mark img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}
body.projects-page > .home-mark { opacity:1 !important; visibility:visible !important; pointer-events:auto !important; z-index:2 !important; }
body.projects-page .project-list { position:relative; z-index:5; background:#fff; }
@media (max-width: 700px) {
  body.projects-page > .home-mark {
    top: 18px !important;
    width: clamp(156px, 36vw, 216px) !important;
    max-width: 216px !important;
  }
}


/* V8.66: xarxes del peu de pàgina clicables i en majúscules */
.ap-footer-social a{color:inherit;text-decoration:none;transition:opacity .2s ease;text-transform:uppercase;letter-spacing:.04em}
.ap-footer-social a:hover{opacity:.7}


/* V8.67 — correcció final: logotip visible darrere la quadrícula i CTA eliminat de projectes */
body.projects-page > .home-mark {
  position: fixed !important;
  top: 19px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: clamp(184px, 18vw, 264px) !important;
  max-width: 264px !important;
  z-index: 2 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
body.projects-page > .home-mark img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}
body.projects-page .project-list {
  position: relative !important;
  z-index: 3 !important;
  background: transparent !important;
  isolation: auto !important;
}
body.projects-page .project-card {
  position: relative !important;
  z-index: 3 !important;
  background: #fff !important;
}
body.projects-page .home-contact,
body.project-detail .home-contact {
  display: none !important;
}
@media (max-width: 800px) {
  body.projects-page > .home-mark {
    top: 18px !important;
    width: clamp(156px, 36vw, 216px) !important;
    max-width: 216px !important;
  }
}

/* V8.68 refinements */
.home-secondary-nav{display:none!important}
.scroll-arrow{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:5;display:flex;width:32px;height:32px;align-items:center;justify-content:center;color:#fff;text-decoration:none;background:transparent;border:0;opacity:.9;transition:opacity .2s ease}
.scroll-arrow:hover{opacity:.6}
.scroll-arrow svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.study-scroll-arrow{position:relative;left:50%;bottom:auto;transform:translateX(-50%);margin:-44px 0 18px}
.project-intro dt,.project-intro dd{font-family:'Quicksand',Arial,sans-serif!important;font-weight:400;letter-spacing:normal!important}
.projects-page .home-mark{display:none!important}

/* V8.69 — correccions verificables de MHAR, tipografia i scroll de fitxes */
body.project-detail .project-overview .project-intro dt,
body.project-detail .project-overview .project-intro dd {
  font-family: 'Quicksand', Arial, sans-serif !important;
  font-size: clamp(16px, 1.35vw, 20px) !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
body.project-detail .project-overview .project-intro dt { color: #777 !important; }
body.project-detail .project-overview .project-intro dd { color: #555 !important; }
body.project-detail .project-render-slide img {
  pointer-events: auto !important;
  -webkit-user-drag: none;
  user-select: none;
}
body.project-detail .render-lightbox-image { pointer-events: auto !important; object-fit: contain !important; }
body.project-detail .project-hero-scroll { display: none !important; }
body.project-detail .project-hero .project-scroll-arrow { bottom: 26px; color: #fff; }
body.project-detail .project-hero .project-scroll-arrow svg { width: 22px; height: 22px; }
body.project-detail .project-hero .project-scroll-arrow:focus-visible { outline: 1px solid currentColor; outline-offset: 4px; }
@media (max-width: 700px) {
  body.project-detail .project-overview .project-intro dt,
  body.project-detail .project-overview .project-intro dd { font-size: 16px !important; }
}


/* V8.70 — ajustos finals de tipografia i controls minimalistes del visor */
body.project-detail .project-overview .project-intro dt,
body.project-detail .project-overview .project-intro dd {
  font-family: 'Quicksand', Arial, sans-serif !important;
  font-size: clamp(13px, 1vw, 15px) !important;
  font-weight: 300 !important;
  line-height: 1.8 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
body.project-detail .project-overview .project-intro dt { color: #777 !important; }
body.project-detail .project-overview .project-intro dd { color: #555 !important; }
.render-lightbox-close,
.render-lightbox-arrow {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none;
  padding: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  color: rgba(255,255,255,.92) !important;
  text-shadow: none !important;
  -webkit-tap-highlight-color: transparent;
}
.render-lightbox-close {
  width: 42px !important; height: 42px !important;
  font: 300 34px/1 'Montserrat', sans-serif !important;
}
.render-lightbox-arrow {
  width: 44px !important; height: 54px !important;
  font: 300 42px/1 'Montserrat', sans-serif !important;
}
.render-lightbox-close:hover,
.render-lightbox-arrow:hover { background: transparent !important; opacity: .7; }
@media (max-width:700px) {
  body.project-detail .project-overview .project-intro dt,
  body.project-detail .project-overview .project-intro dd {
    font-size: 14px !important;
    font-weight: 300 !important;
    line-height: 1.8 !important;
  }
  .render-lightbox-close { top: 12px !important; right: 12px !important; width: 42px !important; height: 42px !important; }
  .render-lightbox-arrow { width: 34px !important; height: 48px !important; font-size: 34px !important; }
}


/* V8.72 — controls minimalistes, zoom clicable i metadades Quicksand coherents */
body.project-detail .render-carousel-arrow {
  width: 34px !important; height: 42px !important;
  border: 0 !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important;
  color: rgba(35,35,35,.78) !important;
  font: 300 36px/1 'Quicksand', Arial, sans-serif !important;
  padding: 0 !important;
}
body.project-detail .render-carousel-arrow:hover,
body.project-detail .render-carousel-arrow:focus,
body.project-detail .render-carousel-arrow:active {
  background: transparent !important; border: 0 !important; box-shadow: none !important; opacity: .65; outline: none !important;
}
body.project-detail .project-render-slide img { cursor: pointer !important; }
body.project-detail .project-overview .project-intro dt,
body.project-detail .project-overview .project-intro dd {
  font-family: 'Quicksand', Arial, sans-serif !important;
  font-size: inherit !important; font-weight: 300 !important;
  line-height: inherit !important; letter-spacing: inherit !important;
}
body.project-detail .project-overview .project-intro dl {
  font-family: 'Quicksand', Arial, sans-serif !important;
  font-size: clamp(16px, 1.25vw, 18px) !important; font-weight: 300 !important;
}
@media (max-width:700px) {
  body.project-detail .project-overview .project-intro dl { font-size: 18px !important; }
  body.project-detail .render-carousel-arrow { width: 30px !important; height: 38px !important; font-size: 32px !important; }
}


/* V8.73 — unificació tipogràfica, sense partició automàtica i transicions discretes */
:root {
  --sans: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
}
html, body, body * {
  font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
}
html, body, body * {
  -webkit-hyphens: none !important;
  -moz-hyphens: none !important;
  hyphens: none !important;
}
body {
  background-color: #06143a;
}
body.project-detail .project-render-slide img {
  cursor: default !important;
}
body.project-detail .render-carousel-arrow {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.project-detail .render-carousel-arrow:hover,
body.project-detail .render-carousel-arrow:focus,
body.project-detail .render-carousel-arrow:active {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.render-lightbox {
  background: #06143a !important;
}
.render-lightbox-image {
  cursor: default !important;
}


/* V8.74 — metadades de projecte discretes i fons negre del zoom en tots els dispositius */
body.project-detail .project-overview .project-intro dt,
body.project-detail .project-overview .project-intro dd {
  font-size: 11px !important;
  line-height: 1.6 !important;
  font-weight: 300 !important;
}
body.project-detail .project-overview .project-intro dt {
  letter-spacing: .12em !important;
}
body.project-detail .project-overview .project-intro dl {
  font-size: 11px !important;
}
.render-lightbox,
.render-lightbox.is-open {
  background: #000 !important;
}
@media (max-width: 700px) {
  body.project-detail .project-overview .project-intro dt,
  body.project-detail .project-overview .project-intro dd,
  body.project-detail .project-overview .project-intro dl {
    font-size: 11px !important;
  }
  .render-lightbox,
  .render-lightbox.is-open {
    background: #000 !important;
  }
}


/* V8.77 — portada en vídeo, lightbox translúcid i coherència tipogràfica d'Estudi/Equip */
/* Vídeos adaptatius: no es modifica l'animació del logotip ni el JS de la portada */
.home-video-slide { overflow: hidden; }
.home-video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.home-video-mobile { display: none; }
@media (max-width: 700px) {
  .home-video-desktop { display: none; }
  .home-video-mobile { display: block; }
}

/* El zoom deixa veure discretament la pàgina i la documentació que hi ha al darrere */
.render-lightbox,
.render-lightbox.is-open {
  background: rgba(0, 0, 0, .72) !important;
  -webkit-backdrop-filter: blur(1.5px);
  backdrop-filter: blur(1.5px);
}

/* Cos de text homogeni en les seccions Estudi i Equip; els títols mantenen la jerarquia */
body.study-page .study-philosophy-text,
body.study-page .study-description,
body.study-page .study-editorial-copy {
  font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 16px !important;
  line-height: 1.85 !important;
  font-weight: 300 !important;
}
body.study-page .study-philosophy-text p,
body.study-page .study-description p,
body.study-page .study-editorial-copy p {
  font-size: 16px !important;
  line-height: 1.85 !important;
}
@media (max-width: 700px) {
  body.study-page .study-philosophy-text,
  body.study-page .study-description,
  body.study-page .study-editorial-copy,
  body.study-page .study-philosophy-text p,
  body.study-page .study-description p,
  body.study-page .study-editorial-copy p {
    font-size: 15px !important;
    line-height: 1.8 !important;
  }
}


/* V8.80 — logotip consistent i fletxa d'Estudi que s'esvaeix sobre la transició */
body.study-page .study-header img,
body.contact-page .contact-mark img {
  filter: none !important;
}
body.study-page .study-scroll-arrow {
  transition: opacity .55s ease, visibility .55s ease !important;
}
body.study-page .study-scroll-arrow.is-faded {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* V8.81 — dades de superfície integrades discretament en el text del projecte */
body.project-detail .project-surface-note { margin-top: 1em; font: inherit; }

/* V8.85 — logotip de les fitxes de projecte amb els colors originals */
body.project-detail .home-mark img { filter: none !important; }
/* Estat de l'obra sota el nom i la ubicació */
body.project-detail .project-status-line {
  margin: 12px 0 0;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #777;
}


/* V8.90 — graella de projectes més lleugera amb zoom i informació centrada en hover */
body.projects-page .project-list {
  width: 100%;
  max-width: 1680px;
  margin: 0 auto;
  padding: 0 clamp(24px, 3.2vw, 54px) 84px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 1.25vw, 22px);
}
body.projects-page .project-card {
  position: relative;
  display: block;
  aspect-ratio: 1.35 / 1;
  overflow: hidden;
  background: #17191d;
  isolation: isolate;
}
body.projects-page .project-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0,0,0,0);
  transition: background .45s ease;
  pointer-events: none;
}
body.projects-page .project-card img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  transition: transform .75s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}
body.projects-page .project-card > div {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 18px;
  text-align: center;
  color: #fff;
  opacity: 0;
  transform: translateY(5px);
  transition: opacity .35s ease, transform .45s ease;
}
body.projects-page .project-card h2 {
  margin: 0;
  color: #fff;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: clamp(13px, 1.05vw, 17px);
  line-height: 1.35;
  font-weight: 400;
  letter-spacing: .04em;
  text-transform: uppercase;
}
body.projects-page .project-card p {
  margin: 0;
  color: rgba(255,255,255,.88);
  font-family: 'Quicksand', Arial, sans-serif;
  font-size: clamp(10px, .72vw, 12px);
  line-height: 1.5;
  letter-spacing: .045em;
}
body.projects-page .project-card:hover::after,
body.projects-page .project-card:focus-visible::after { background: rgba(0,0,0,.58); }
body.projects-page .project-card:hover img,
body.projects-page .project-card:focus-visible img { transform: scale(1.045); filter: brightness(.8); }
body.projects-page .project-card:hover > div,
body.projects-page .project-card:focus-visible > div { opacity: 1; transform: translateY(0); }
body.projects-page .project-card:focus-visible { outline: 1px solid #777; outline-offset: 3px; }
@media (hover: none) {
  body.projects-page .project-card::after { background: rgba(0,0,0,.34); }
  body.projects-page .project-card > div { opacity: 1; transform: none; }
}
@media (max-width: 900px) {
  body.projects-page .project-list { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-left: 24px; padding-right: 24px; }
}
@media (max-width: 600px) {
  body.projects-page .project-list { grid-template-columns: minmax(0, 1fr); padding: 112px 18px 54px; gap: 18px; }
  body.projects-page .project-card { aspect-ratio: 4 / 3; }
  body.projects-page .project-card h2 { font-size: 15px; }
  body.projects-page .project-card p { font-size: 11px; }
}


/* V8.91 — espai vertical de la pàgina de projectes en ordinador */
@media (min-width: 701px) {
  body.projects-page {
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
  }
  body.projects-page > .project-list {
    flex: 1 0 auto;
    padding-top: clamp(110px, 14vh, 170px);
    padding-bottom: clamp(80px, 10vh, 120px);
    box-sizing: border-box;
  }
  body.projects-page > .ap-footer {
    margin-top: auto;
    flex-shrink: 0;
  }
}

/* V8.93 — títol discret i localització centrats a la part baixa de la portada */
body.project-detail .project-hero {
  position: relative;
  overflow: hidden;
  align-items: flex-end !important;
  justify-content: center !important;
  text-align: center;
  background-size: 108% auto;
  animation: apProjectHeroZoom 2.2s cubic-bezier(.2,.65,.25,1) both;
}
body.project-detail .project-hero::before {
  background: rgba(0,0,0,.34) !important;
  z-index: 1;
  pointer-events: none;
}
body.project-detail .project-hero-title {
  display: block !important;
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  bottom: 67px;
  margin: 0;
  color: #fff;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: clamp(42px, 5.2vw, 76px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: .025em;
  text-transform: uppercase;
  text-shadow: 0 1px 18px rgba(0,0,0,.12);
  animation: apProjectTitleIn 1.1s ease-out both;
}
body.project-detail .project-hero-location {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  bottom: 43px;
  color: #fff;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .18em;
  line-height: 1.2;
  text-transform: uppercase;
  text-shadow: 0 1px 12px rgba(0,0,0,.25);
  animation: apProjectTitleIn 1.2s ease-out both;
}
body.project-detail .project-scroll-arrow { z-index: 3; }
@keyframes apProjectHeroZoom {
  from { background-size: 116% auto; }
  to { background-size: 108% auto; }
}
@keyframes apProjectTitleIn {
  from { opacity: 0; transform: scale(1.025); }
  to { opacity: 1; transform: scale(1); }
}
@media (max-width: 700px) {
  body.project-detail .project-hero { background-size: cover; animation: apProjectHeroZoomMobile 2.2s ease-out both; }
  @keyframes apProjectHeroZoomMobile {
    from { background-size: 118% auto; }
    to { background-size: cover; }
  }
  body.project-detail .project-hero-title { font-size: clamp(38px, 10vw, 54px); bottom: 66px; }
  body.project-detail .project-hero-location { bottom: 43px; font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  body.project-detail .project-hero,
  body.project-detail .project-hero-title { animation: none !important; }
}

/* En mòbil, la informació de cada projecte només apareix en tocar la targeta */
@media (hover: none) and (pointer: coarse) {
  body.projects-page .project-card::after { background: rgba(0,0,0,0) !important; }
  body.projects-page .project-card > div { opacity: 0 !important; transform: translateY(5px) !important; }
  body.projects-page .project-card img { filter: none !important; }
  body.projects-page .project-card.is-touch-active::after { background: rgba(0,0,0,.58) !important; }
  body.projects-page .project-card.is-touch-active > div { opacity: 1 !important; transform: translateY(0) !important; }
  body.projects-page .project-card.is-touch-active img { filter: brightness(.8) !important; transform: scale(1.045) !important; }
}


/* V8.95 — correcció de portada MHAR i enquadrament de la targeta */
/* Evita els salts de composició durant l'animació de la portada: la imatge conserva
   una mida estable i el zoom es limita a un moviment visual suau. */
body.project-detail.project-mhar .project-hero {
  background-size: cover !important;
  background-position: center center !important;
  animation: none !important;
}
body.project-detail.project-mhar .project-hero::before {
  background: rgba(0,0,0,.34) !important;
}
/* A la graella, prioritzem el costat esquerre de la façana de MHAR. */
body.projects-page .project-card:nth-child(2) img {
  object-position: left center !important;
}

/* V8.96 — mateix efecte hover en projectes destacats de la pàgina principal */
body.home .home-featured-grid a {
  position: relative;
  display: block;
  overflow: hidden;
  isolation: isolate;
  background: #17191d;
  aspect-ratio: 4 / 3;
  color: #fff;
  font-size: 10px;
  letter-spacing: .08em;
}
body.home .home-featured-grid a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0,0,0,0);
  transition: background .45s ease;
  pointer-events: none;
}
body.home .home-featured-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  margin: 0;
  transition: transform .75s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}
body.home .home-featured-grid a > span {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  text-align: center;
  color: #fff;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: clamp(12px, .95vw, 15px);
  font-weight: 400;
  letter-spacing: .055em;
  line-height: 1.5;
  opacity: 0;
  transform: translateY(5px);
  transition: opacity .35s ease, transform .45s ease;
}
body.home .home-featured-grid a:hover::after,
body.home .home-featured-grid a:focus-visible::after,
body.home .home-featured-grid a.is-touch-active::after { background: rgba(0,0,0,.58); }
body.home .home-featured-grid a:hover img,
body.home .home-featured-grid a:focus-visible img,
body.home .home-featured-grid a.is-touch-active img { transform: scale(1.045); filter: brightness(.8); }
body.home .home-featured-grid a:hover > span,
body.home .home-featured-grid a:focus-visible > span,
body.home .home-featured-grid a.is-touch-active > span { opacity: 1; transform: translateY(0); }
body.home .home-featured-grid a:focus-visible { outline: 1px solid #777; outline-offset: 3px; }
@media (hover: none) {
  body.home .home-featured-grid a::after { background: rgba(0,0,0,0); }
  body.home .home-featured-grid a > span { opacity: 0; transform: translateY(5px); }
  body.home .home-featured-grid a img { filter: none; }
}
@media (max-width: 700px) {
  body.home .home-featured-grid a { aspect-ratio: 4 / 3; }
  body.home .home-featured-grid a > span { font-size: 12px; }
}


/* Rendiment: evita salts de maquetació i descodifica imatges sense bloquejar la pàgina. */
img { max-width: 100%; }
img[width][height] { aspect-ratio: attr(width) / attr(height); }
.project-hero { background-repeat: no-repeat; }
.home-video, .study-sequence video { backface-visibility: hidden; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}


/* v8.99 — CTA de projectes destacats en estil de text descriptiu */
body.home .home-featured-heading a {
  font-family: 'Quicksand', Arial, sans-serif;
  font-size: clamp(14px, 1.05vw, 16px);
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: #777;
}
body.home .home-featured-heading a span[aria-hidden="true"] { font-size: 1em; margin-left: 8px; }
body.project-detail.project-estudi .project-hero { background-position: center 42%; }
@media (max-width: 800px) { body.project-detail.project-estudi .project-hero { background-position: center 40%; } }

body.home .home-featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }


/* V8.100 — capçalera editorial de la pàgina de projectes */
body.projects-page .projects-page-heading {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  padding: 112px 24px 24px;
  text-align: center;
  background: #fff;
}

body.projects-page .project-list { padding-top: 8px; }
@media (max-width: 700px) {
  body.projects-page .projects-page-heading { padding: 100px 18px 20px; }
  body.projects-page .project-list { padding-top: 4px; }
}

/* V8.102 — logotip interior unificat i aparició subtil sense desplaçament */
@keyframes apLogoFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
body.projects-page > .projects-page-heading .home-mark,
body.contact-page .contact-mark,
body.study-page .study-header a {
  width: clamp(184px, 18vw, 264px) !important;
  max-width: 264px !important;
  animation: apLogoFadeIn 1.15s ease-out both !important;
}
body.projects-page > .projects-page-heading .home-mark {
  display: block !important;
  position: fixed !important;
  top: 19px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 100 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
body.projects-page > .projects-page-heading .home-mark img,
body.contact-page .contact-mark img,
body.study-page .study-header a img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}
@media (max-width: 800px) {
  body.projects-page > .projects-page-heading .home-mark,
  body.contact-page .contact-mark,
  body.study-page .study-header a {
    width: clamp(156px, 36vw, 216px) !important;
    max-width: 216px !important;
  }
  body.projects-page > .projects-page-heading .home-mark { top: 18px !important; }
}
@media (prefers-reduced-motion: reduce) {
  body.projects-page > .projects-page-heading .home-mark,
  body.contact-page .contact-mark,
  body.study-page .study-header a { animation: none !important; }
}


/* V8.103 — logo de Projectes a la mateixa escala que Estudi/Contacte i cobert per la graella en scroll */
body.projects-page > .projects-page-heading .home-mark {
  width: clamp(184px, 18vw, 264px) !important;
  max-width: 264px !important;
  top: 19px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 2 !important;
  opacity: 0;
  visibility: visible !important;
  pointer-events: auto !important;
  animation: apLogoFadeIn 1.15s ease-out both !important;
}
body.projects-page > .projects-page-heading .home-mark img {
  width: 100% !important; height: auto !important; max-height: none !important;
  object-fit: contain !important; display: block !important;
}
body.projects-page .project-list {
  position: relative !important; z-index: 3 !important; background: #fff !important;
}
@media (max-width: 800px) {
  body.projects-page > .projects-page-heading .home-mark {
    width: clamp(156px, 36vw, 216px) !important; max-width: 216px !important; top: 18px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.projects-page > .projects-page-heading .home-mark { animation: none !important; opacity: 1 !important; }
}


/* V8.105 — logo interior amb escala consistent i aparició suau sense desplaçament.
   La pàgina principal queda expressament fora d'aquesta animació. */
@keyframes apLogoFadeInV105 {
  from { opacity: 0; }
  to { opacity: 1; }
}
body.projects-page > .projects-page-heading .home-mark,
body.contact-page .contact-mark,
body.study-page .study-header a {
  width: clamp(220px, 18vw, 280px) !important;
  max-width: 280px !important;
  animation: apLogoFadeInV105 1.2s ease-out both !important;
}
body.projects-page > .projects-page-heading .home-mark {
  top: 19px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 2 !important;
}
body.projects-page > .projects-page-heading .home-mark img,
body.contact-page .contact-mark img,
body.study-page .study-header a img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}
body.projects-page .project-list {
  padding-top: 8px !important;
  position: relative !important;
  z-index: 3 !important;
  background: #fff !important;
}
@media (max-width: 800px) {
  body.projects-page > .projects-page-heading .home-mark,
  body.contact-page .contact-mark,
  body.study-page .study-header a {
    width: clamp(156px, 36vw, 216px) !important;
    max-width: 216px !important;
  }
  body.projects-page > .projects-page-heading .home-mark { top: 18px !important; }
}
@media (prefers-reduced-motion: reduce) {
  body.projects-page > .projects-page-heading .home-mark,
  body.contact-page .contact-mark,
  body.study-page .study-header a { animation: none !important; opacity: 1 !important; }
}

/* V8.106 — Projectes: el fons blanc de la graella comença després del logotip complet */
body.projects-page .project-list {
  margin-top: 30px !important;
  padding-top: 8px !important;
}


/* V8.109 — Contacte amb fons blanc, tipografia negra i titulars grisos. */
body.contact-page {
  background: #fff !important;
  color: #111 !important;
}
body.contact-page::before { display: none !important; }
body.contact-page .contact-main,
body.contact-page .contact-form-panel,
body.contact-page .contact-info-panel {
  background: #fff !important;
  color: #111 !important;
}
body.contact-page .contact-main {
  position: relative;
  z-index: 1;
  padding-top: clamp(210px, 24vh, 280px) !important;
}
body.contact-page .contact-heading h1,
body.contact-page .contact-form-panel h2,
body.contact-page .contact-info-panel h2 {
  color: #858585 !important;
  font-weight: 300 !important;
}
body.contact-page .contact-heading h1 {
  font-size: clamp(2.4rem, 4.2vw, 4.4rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
}
body.contact-page .contact-form-panel h2,
body.contact-page .contact-info-panel h2 {
  font-size: clamp(1.45rem, 2.2vw, 2rem) !important;
  line-height: 1.2 !important;
}
body.contact-page .contact-heading > p:last-child,
body.contact-page .contact-info-panel p,
body.contact-page .contact-info-panel address,
body.contact-page .contact-info-panel address a,
body.contact-page .contact-info-panel .map-link,
body.contact-page form label,
body.contact-page .contact-privacy,
body.contact-page .contact-privacy a {
  color: #111 !important;
}
body.contact-page .contact-heading > p:last-child { opacity: .78; }
body.contact-page form input:not([type=checkbox]),
body.contact-page form textarea {
  color: #111 !important;
  background: transparent !important;
  border-bottom-color: #b8b8b8 !important;
}
body.contact-page form input::placeholder,
body.contact-page form textarea::placeholder { color: #777 !important; }
body.contact-page .contact-privacy input { accent-color: #111; }
body.contact-page form button {
  color: #111 !important;
  background: #fff !important;
  border: 1px solid #111 !important;
}
body.contact-page form button:hover {
  color: #fff !important;
  background: #111 !important;
}
body.contact-page .contact-map { border: 1px solid #e2e2e2 !important; }
body.contact-page .home-languages { color: #111 !important; }
body.contact-page .home-languages button { color: #111 !important; }
body.contact-page .menu-btn.dark span,
body.contact-page .menu-btn.dark span:before,
body.contact-page .menu-btn.dark span:after { background: #111 !important; }
body.contact-page .contact-mark img { filter: none !important; }
body.contact-page .contact-mark { z-index: 60; }
body.contact-page .side-menu { background: #fff !important; color: #111 !important; }
body.contact-page .side-menu a,
body.contact-page .side-menu-social,
body.contact-page .side-close { color: #111 !important; }
body.contact-page .side-close-line,
body.contact-page .side-close-line:before,
body.contact-page .side-close-line:after { background: #111 !important; }
@media (max-width: 800px) {
  body.contact-page .contact-main { padding-top: 178px !important; padding-left: 22px; padding-right: 22px; }
}


/* V8.110 — assegurar colors originals del logotip només a Projectes: ANT/ONI negre i ARQ gris. */
body.projects-page > .projects-page-heading > .home-mark img { filter: none !important; -webkit-filter: none !important; }


/* V8.111 — Contacte: mantindre el menú desplegable blau amb tipografia blanca.
   Projectes: reutilitzar la mateixa versió del logotip que Contacte (ANT/ONI negre, ARQ gris). */
body.contact-page .side-menu { background: #071326 !important; color: #fff !important; }
body.contact-page .side-menu a,
body.contact-page .side-menu-social,
body.contact-page .side-menu-social a,
body.contact-page .side-close { color: #fff !important; }
body.contact-page .side-close-line,
body.contact-page .side-close-line:before,
body.contact-page .side-close-line:after { background: #fff !important; }
body.projects-page > .projects-page-heading > .home-mark img { filter: none !important; -webkit-filter: none !important; }

/* V8.113 — Contacte en mòbil: el contingut blanc cobreix visualment el logotip en fer scroll. */
@media (max-width: 760px) {
  body.contact-page .contact-mark {
    transition: opacity .28s ease !important;
    will-change: opacity;
  }
  body.contact-page.contact-scrolled .contact-mark {
    opacity: 0 !important;
    pointer-events: none !important;
  }
  body.contact-page .contact-main,
  body.contact-page .contact-layout,
  body.contact-page .contact-form-panel,
  body.contact-page .contact-info-panel {
    background: #fff !important;
  }
}


/* V8.114 — Refinaments finals: esvaïment progressiu, hero mòbil estable i portada ESTUDI enquadrada des de dalt. */
@media (max-width: 760px) {
  body.contact-page .contact-mark {
    opacity: var(--contact-logo-opacity, 1) !important;
    transition: none !important;
    will-change: opacity;
  }
  body.contact-page.contact-scrolled .contact-mark { opacity: var(--contact-logo-opacity, 1) !important; }
}
@media (max-width: 700px) {
  /* Evita el zoom animat que provocava un petit salt en carregar/canviar de projecte. */
  body.project-detail .project-hero {
    background-size: cover !important;
    background-position: center center;
    animation: none !important;
  }
}
@media (min-width: 701px) {
  /* La portada vertical d'ESTUDI mostra la part superior de la fotografia en la quadrícula. */
  body.projects-page .project-card[href$="proyecto-04.html"] img {
    object-position: center top !important;
  }
}


/* V8.115 — Contacte: el contingut blanc cobreix progressivament el logotip en scroll, com a Projectes. */
@media (max-width: 760px) {
  body.contact-page .contact-mark {
    z-index: 2 !important;
    opacity: 1 !important;
    transition: none !important;
  }
  body.contact-page .contact-main {
    margin-top: 150px !important;
    padding-top: 28px !important;
    position: relative !important;
    z-index: 3 !important;
    background: #fff !important;
  }
}
@media (min-width: 761px) {
  body.contact-page .contact-mark { z-index: 2 !important; }
  body.contact-page .contact-main { z-index: 3 !important; }
}
/* En la portada ESTUDI, baixem lleugerament l'enquadrament respecte al límit superior. */
@media (min-width: 701px) {
  body.projects-page .project-card[href$="proyecto-04.html"] img {
    object-position: center 8% !important;
  }
}


/* V8.116 — Contacte: logo visible en desktop; Estudi: enquadrament una mica més avall. */
@media (min-width: 761px) {
  body.contact-page .contact-mark {
    z-index: 60 !important;
    visibility: visible !important;
    display: block !important;
    opacity: 1 !important;
  }
  body.contact-page .contact-mark img {
    visibility: visible !important;
    opacity: 1 !important;
  }
}
@media (min-width: 701px) {
  body.projects-page .project-card[href$="proyecto-04.html"] img {
    object-position: center 18% !important;
  }
}

/* V8.117 — Fitxes de projecte: el full blanc puja sobre la portada i eclipsa el logotip fix, com a inici i Estudi. */
body.project-detail .project-hero {
  position: sticky !important;
  top: 0 !important;
  z-index: 0 !important;
}
body.project-detail .home-mark {
  position: fixed !important;
  z-index: 2 !important;
}
body.project-detail .project-sheet {
  position: relative !important;
  z-index: 3 !important;
  background: #fff !important;
  margin-top: -1px !important;
}
/* Els controls del menú continuen per damunt de la capa de contingut. */
body.project-detail .home-languages,
body.project-detail .menu-btn,
body.project-detail .side-menu {
  z-index: 80 !important;
}

/* V8.118 — Ajustos finals d'enquadrament de portades. */
@media (max-width: 800px) {
  body.project-detail.project-bvr .project-hero {
    background-position: left center !important;
  }
}
@media (min-width: 801px) {
  body.project-detail.project-estudi .project-hero {
    background-position: center calc(42% + 350px) !important;
  }
}


/* V8.120 — Enquadrament de portades en mòbil: MHC alineat a la dreta i MHAR a l'esquerra. */
@media (max-width: 800px) {
  body.project-detail.project-mhc .project-hero {
    background-position: right center !important;
  }
  body.project-detail.project-mhar .project-hero {
    background-position: left center !important;
  }
}

/* V8.121 — ESTUDI: enquadrament centrat en ordinador, tant a la graella com a la portada del projecte. */
@media (min-width: 801px) {
  body.projects-page .project-card[href$="proyecto-04.html"] img {
    object-position: center center !important;
  }
  body.project-detail.project-estudi .project-hero {
    background-position: center center !important;
  }
}

/* V8.37 — En mòbil, retrat d'Equip més contingut i proporcionat. */
@media (max-width: 700px) {
  body.study-page .study-team-portrait {
    width: 100% !important;
    max-width: 260px !important;
    margin-inline: auto !important;
  }
  body.study-page .study-team-portrait img {
    display: block !important;
    width: 100% !important;
    max-width: 260px !important;
    height: auto !important;
    max-height: 320px !important;
    object-fit: cover !important;
    object-position: center top !important;
    margin-inline: auto !important;
  }
}

/* V8.38 — Retrat d'Equip a mòbil de marge a marge, conservant la proporció completa. */
@media (max-width: 700px) {
  body.study-page .study-team-portrait {
    width: 100vw !important;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
  body.study-page .study-team-portrait img {
    display: block !important;
    width: 100vw !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: 0 !important;
  }
}

/* V8.39 — Retrat d'Equip en mòbil: mateix ample que el text inferior. */
@media (max-width: 700px) {
  body.study-page .study-team-profile {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
  }
  body.study-page .study-team-portrait {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body.study-page .study-team-portrait img {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center top !important;
    margin: 0 !important;
  }
}


/* v126: subtitle for the studio methodology panel */
.study-panel-subtitle{font-size:clamp(16px,1.4vw,21px);font-weight:400;letter-spacing:.015em;line-height:1.35;margin:0 0 24px;color:inherit}
/* v126: footer logo with white ANTONI and grey ARQ */
.ap-footer-logo img{filter:none!important}

/* v127: menú en gris antracita y pie de página negro */
.side-menu,
body.contact-page .side-menu,
body.study-page .side-menu {
  background-color: #292b2e !important;
  color: #fff !important;
}
.ap-footer {
  background: #000 !important;
}

/* v128 — Graella de projectes editorial: dues columnes amples en desktop i imatges a sang en mòbil. */
@media (min-width: 701px) {
  body.projects-page .project-list {
    width: 80% !important;
    max-width: 1370px !important;
    box-sizing: border-box !important;
    margin: 30px auto 0 !important;
    padding: 8px 0 80px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 14px !important;
    row-gap: 14px !important;
  }
  body.projects-page .project-card img {
    width: 100% !important;
    aspect-ratio: 1.52 / 1 !important;
    height: auto !important;
    object-fit: cover !important;
  }
}
@media (max-width: 700px) {
  body.projects-page .project-list {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
    margin: 20px 0 0 !important;
    padding: 0 0 56px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    column-gap: 0 !important;
    row-gap: 3px !important;
  }
  body.projects-page .project-card {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body.projects-page .project-card img {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: 4 / 5 !important;
    height: auto !important;
    object-fit: cover !important;
    margin: 0 !important;
  }
  body.projects-page .project-card > div {
    padding: 0 16px 18px !important;
  }
}

/* v129 — Ajustos de graella: proporció coherent en desktop i imatges completes en mòbil. */
@media (min-width: 701px) {
  body.projects-page .project-list {
    row-gap: 14px !important;
    column-gap: 14px !important;
  }
  body.projects-page .project-card {
    aspect-ratio: 1.52 / 1 !important;
    height: auto !important;
    overflow: hidden !important;
    align-self: start !important;
    background: transparent !important;
  }
  body.projects-page .project-card img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center center !important;
    margin: 0 !important;
  }
  body.projects-page .project-card > div {
    inset: 0 !important;
    height: 100% !important;
    box-sizing: border-box !important;
  }
}
@media (max-width: 700px) {
  body.projects-page .project-list {
    row-gap: 3px !important;
    column-gap: 0 !important;
  }
  body.projects-page .project-card {
    aspect-ratio: auto !important;
    height: auto !important;
    overflow: hidden !important;
    background: transparent !important;
  }
  body.projects-page .project-card img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    filter: none !important;
    margin: 0 !important;
  }
  body.projects-page .project-card:active img,
  body.projects-page .project-card.is-touch-active img {
    transform: none !important;
  }
}


/* v130 — alçada uniforme en mòbil, peu de pàgina gris i graella més ampla alineada amb el contingut. */
.ap-footer,
.ap-footer .ap-footer-grid,
.ap-footer .ap-footer-col,
.ap-footer .ap-footer-col address,
.ap-footer .ap-footer-col a,
.ap-footer .ap-footer-label,
.ap-footer .ap-footer-bottom {
  color: #999999 !important;
}
.ap-footer .ap-footer-label { color: #999999 !important; }
@media (min-width: 701px) {
  body.projects-page .project-list {
    width: 90% !important;
    max-width: 1440px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    column-gap: 14px !important;
    row-gap: 14px !important;
  }
}
@media (max-width: 700px) {
  body.projects-page .project-list {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    row-gap: 3px !important;
  }
  body.projects-page .project-card {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 5 !important;
    overflow: hidden !important;
  }
  body.projects-page .project-card img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
    margin: 0 !important;
  }
  body.projects-page .project-card.is-touch-active img,
  body.projects-page .project-card:active img {
    transform: none !important;
  }
}

/* v131 — projectes mòbil més compactes i jerarquia cromàtica del peu de pàgina. */
.ap-footer .ap-footer-label {
  color: #999999 !important;
}
.ap-footer .ap-footer-col address,
.ap-footer .ap-footer-col a,
.ap-footer .ap-footer-bottom {
  color: #ffffff !important;
}
@media (max-width: 700px) {
  body.projects-page .project-card {
    aspect-ratio: 4 / 3 !important;
    height: auto !important;
    overflow: hidden !important;
  }
  body.projects-page .project-card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
  }
}

/* v133 — enquadrament específic de BVR en la graella mòbil: cap a l’esquerra. */
@media (max-width: 700px) {
  body.projects-page .project-card:first-child img {
    object-position: left center !important;
  }
}

/* v134 — Reproducció robusta del vídeo d'Estudi en mòbil i reentrada a la pàgina. */
body.study-page .study-sequence,
body.study-page .study-video-card {
  background: #f7f6f2 !important;
}
body.study-page .study-sequence video,
body.study-page #studySequenceVideo {
  background: #f7f6f2 !important;
  -webkit-appearance: none;
  appearance: none;
  pointer-events: none;
}
body.study-page video::-webkit-media-controls,
body.study-page video::-webkit-media-controls-panel,
body.study-page video::-webkit-media-controls-start-playback-button {
  display: none !important;
  -webkit-appearance: none !important;
}


/* V135 — Portada amb seqüència de tres renders del projecte. */
body.home .home-render-slideshow { opacity: 1 !important; }
body.home .home-render-slideshow .living-slide { overflow: hidden; }
body.home .home-render-slideshow .living-slide img {
  display: block; width: 100%; height: 100%; object-fit: cover;
  object-position: center center;
}
body.home .home-render-slideshow .living-slide { transition: opacity 1.15s ease !important; }
body.home .home-render-slideshow .living-slide.active { transform: none !important; }
@media (max-width: 700px) {
  body.home .home-render-slideshow .living-slide img { object-position: center center; }
}
@media (prefers-reduced-motion: reduce) {
  body.home .home-render-slideshow .living-slide { transition: none !important; }
}
