/* Ofelia original para títulos; ofelia-espanol.css completa los caracteres españoles. */
@font-face {
  font-family:Ofelia;
  unicode-range:U+0020,U+002C-002E,U+0030-0039,U+0041-005A,U+0061-007A;
  src:url('../fonts/ofelia-display-regular.otf') format('opentype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face {
  font-family:Ofelia;
  unicode-range:U+0020,U+002C-002E,U+0030-0039,U+0041-005A,U+0061-007A;
  src:url('../fonts/ofelia-display-extrabold.otf') format('opentype');
  font-weight:800;
  font-style:normal;
  font-display:swap;
}
@font-face {
  font-family:Quicksand;
  src:url('../fonts/quicksand-variable.ttf') format('truetype');
  font-weight:300 700;
  font-style:normal;
  font-display:swap;
}
:root {
  --yellow:#f9b233;
  --black:#000;
  --text:#333;
  --muted:#666;
  --line:#d6d6d2;
  --paper:#f6f6f2;
  --title:Ofelia,Arial,sans-serif;
  --body:Quicksand,'Trebuchet MS',Arial,sans-serif;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:24px;
}
body {
  margin:0;
  background:#fff;
  color:var(--text);
  font:500 17px/1.7 var(--body);
  -webkit-font-smoothing:antialiased;
}
a {
  color:inherit;
  text-underline-offset:5px;
}
img {
  display:block;
  max-width:100%;
  height:auto;
}
button {
  font:inherit;
  cursor:pointer;
}
h1,h2,h3,p,figure {
  margin:0;
}
h1,h2,h3 {
  font-family:var(--title);
  color:var(--black);
  font-weight:800;
  line-height:1.12;
  letter-spacing:-.045em;
}
h1 {
  font-size:clamp(42px,5.6vw,76px);
}
h2 {
  font-size:clamp(32px,3.7vw,48px);
}
h3 {
  font-size:28px;
}
p+p {
  margin-top:1em;
}
::selection {
  background:var(--yellow);
  color:#000;
}
:focus-visible {
  outline:3px solid #000;
  outline-offset:5px;
}
button:focus-visible {
  outline:3px solid var(--yellow);
  outline-offset:5px;
}
.container {
  width:min(1232px,calc(100% - 96px));
  margin-inline:auto;
}
.skip-link {
  position:fixed;
  top:12px;
  left:12px;
  z-index:100;
  background:#000;
  color:#fff;
  padding:10px 18px;
  transform:translateY(-160%);
}
.skip-link:focus {
  transform:translateY(0);
}
.eyebrow {
  font-size:12px;
  font-weight:700;
  line-height:1.6;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#333;
}
.eyebrow>span:not(.yellow-dash) {
  margin-right:12px;
}
.lead {
  font-size:20px;
  line-height:1.65;
  max-width:640px;
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:20px;
  font-weight:700;
  text-decoration:none;
  border-bottom:1px solid #999;
  padding-bottom:4px;
  font-size:15px;
}
.text-link>span {
  font-family:Arial,sans-serif;
  font-size:24px;
  line-height:1;
}
.text-link:hover {
  border-color:#000;
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:24px;
  padding:14px 21px;
  background:var(--yellow);
  color:#000;
  font-size:15px;
  line-height:1.5;
  text-decoration:none;
  font-weight:700;
  border:1px solid transparent;
  min-height:50px;
}
.button>span {
  font-size:23px;
  line-height:1;
}
.button:hover {
  background:#000;
  color:#fff;
}
.button-dark {
  background:#000;
  color:#fff;
}
.button-dark:hover {
  background:#fff;
  color:#000;
  border-color:#000;
}
.site-header {
  border-bottom:1px solid var(--line);
}
@media screen and (min-width:961px) {
  html {
    scroll-padding-top:130px;
  }
  .site-header {
    position:sticky;
    top:0;
    z-index:30;
    background:#fff;
  }
}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  min-height:106px;
  position:relative;
}
.brand {
  display:flex;
  align-items:center;
  gap:14px;
  color:#000;
  text-decoration:none;
  flex-shrink:0;
}
.brand>img {
  width:73px;
  height:56px;
  object-fit:contain;
}
.brand strong {
  display:block;
  font-family:var(--title);
  font-size:19px;
  font-weight:800;
  letter-spacing:.025em;
  line-height:1.4;
}
.brand small {
  display:block;
  font-size:11px;
  letter-spacing:.16em;
  line-height:1.4;
}
.main-nav {
  display:flex;
  align-items:center;
  gap:26px;
}
.main-nav>a {
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  padding:10px 0;
  position:relative;
}
.main-nav>a::after {
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:2px;
  height:3px;
  background:var(--yellow);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .18s;
}
.main-nav>a:hover::after,.main-nav>a[aria-current]::after {
  transform:scaleX(1);
}
.main-nav>a:last-child {
  margin-left:6px;
}
.menu-toggle {
  display:none;
}
.home-hero {
  display:grid;
  grid-template-columns:1.18fr 1fr;
  gap:64px;
  padding-top:62px;
  padding-bottom:76px;
  align-items:center;
}
.hero-copy .eyebrow {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:24px;
}
.yellow-dash {
  width:28px;
  height:6px;
  display:inline-block;
  background:var(--yellow);
}
.home-hero h1 {
  font-size:clamp(62px,7.1vw,98px);
  line-height:1.02;
  letter-spacing:-.065em;
  margin-bottom:30px;
}
.marked-word {
  position:relative;
  z-index:0;
  white-space:nowrap;
}
.marked-word::after {
  content:'';
  position:absolute;
  bottom:.02em;
  left:0;
  right:0;
  height:.15em;
  background:var(--yellow);
  z-index:-1;
}
.hero-copy .lead {
  max-width:480px;
  font-size:18px;
  line-height:1.75;
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:30px;
  margin-top:30px;
}
.hero-location {
  font-size:12px;
  color:var(--muted);
  margin-top:30px;
}
.hero-brand {
  position:relative;
  overflow:hidden;
  max-width:460px;
  width:min(100%,calc(76vh * var(--brand-aspect-value)));
  width:min(100%,calc(76svh * var(--brand-aspect-value)));
  justify-self:center;
  align-self:center;
}
.hero-brand>img {
  width:100%;
  height:auto;
  transform:translateY(var(--brand-offset-y,0px));
}
.hero-brand>.brand-motion {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
  pointer-events:none;
  transform:translateY(var(--brand-offset-y,0px));
}
.hero-brand.is-finished>.brand-motion {
  visibility:hidden;
}
.video-block {
  /* Ancho disponible, sin superar un 76% de la altura visible. */
  width:min(100%,calc(76vh * var(--video-aspect-value,.5625)));
  max-width:100%;
  min-width:0;
  margin-inline:auto;
}
@supports (height:1svh) {
  .video-block { width:min(100%,calc(76svh * var(--video-aspect-value,.5625))); }
}
.video-shell {
  width:100%;
  aspect-ratio:var(--video-ratio,9/16);
  position:relative;
  background:transparent;
  isolation:isolate;
}
.video-shell>video {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.video-cover {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  color:#fff;
}
.video-cover,.brand-photo {
  isolation:isolate;
  background:#000;
  overflow:hidden;
}
.video-cover>img {
  width:100%;
  height:100%;
  object-fit:contain;
}
.video-cover>img,.brand-photo>img {
  filter:grayscale(1) brightness(1.06) contrast(1.12);
  mix-blend-mode:luminosity;
  opacity:1;
}
.video-cover::after,.brand-photo::after {
  content:'';
  position:absolute;
  inset:0;
  background:var(--yellow);
  mix-blend-mode:multiply;
  pointer-events:none;
}
.brand-photo {
  position:relative;
  -webkit-touch-callout:none;
}
.brand-photo>img {
  width:100%;
  height:auto;
}
/* Color original durante la interacción; el filtro vuelve al terminar. */
.brand-photo.is-color-revealed>img,
.brand-photo:not(.uses-touch):focus-visible>img {
  filter:none;
  mix-blend-mode:normal;
}
.brand-photo.is-color-revealed::after,
.brand-photo:not(.uses-touch):focus-visible::after {
  opacity:0;
}
@media(hover:hover) {
  /* La marca táctil evita el :hover persistente de los equipos híbridos. */
  .brand-photo:not(.uses-touch):hover>img {
    filter:none;
    mix-blend-mode:normal;
  }
  .brand-photo:not(.uses-touch):hover::after {
    opacity:0;
  }
}
.play-icon {
  position:absolute;
  z-index:2;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  padding-left:4px;
  background:#fff;
  color:#000;
  border-radius:50%;
  font:22px Arial,sans-serif;
}
.play-label {
  position:absolute;
  z-index:2;
  left:0;
  right:0;
  bottom:22px;
  text-align:center;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:700;
  text-shadow:0 1px 3px #000;
}
.video-shell.is-active .video-cover {
  display:none;
}
.video-summary {
  font-size:12px;
  line-height:1.5;
  color:#555;
  margin-top:9px;
}
.video-error {
  position:absolute;
  bottom:42px;
  left:10px;
  right:10px;
  background:#fff;
  color:#000;
  font-size:13px;
  padding:12px;
  z-index:5;
}
[hidden] {
  display:none!important;
}
.areas-section {
  padding-top:28px;
  padding-bottom:84px;
}
.section-heading {
  margin-bottom:34px;
}
.section-heading .eyebrow {
  margin-bottom:12px;
}
.section-heading>p:not(.eyebrow) {
  max-width:700px;
  margin-top:18px;
}
.areas-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:38px;
}
.area-link {
  --area-lockup-max:340px;
  container-type:inline-size;
  border-top:1px solid #000;
  padding:48px 0 30px;
  text-decoration:none;
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
}
.section-symbol {
  width:66px;
  height:66px;
  object-fit:contain;
}
.area-link .area-heading {
  font-size:27px;
  line-height:1;
  width:100%;
  max-width:var(--area-lockup-max);
  margin-inline:auto;
}
.area-lockup {
  /* Figura y texto comparten un único SVG: su separación escala íntegra. */
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:315.3726/258.4042;
}
.area-description {
  font-size:15px;
  line-height:1.7;
  /* Mismo hueco visual que figura→título: descontar los 4 u del SVG
     y el espacio sobre la primera línea de Quicksand (15px / 1.7). */
  margin-top:48px;
  margin-top:calc(min(100cqw,var(--area-lockup-max)) * .1624037726 - .5em);
  text-align:justify;
  text-align-last:start;
  text-justify:inter-word;
  hyphens:none;
  overflow-wrap:normal;
  word-break:normal;
}
.area-arrow {
  display:block;
  font-size:27px;
  color:#000;
  line-height:1;
  margin-top:24px;
  transition:transform .2s;
}
.area-link:hover .area-arrow {
  transform:translate(5px,-3px);
}
.brand-divider {
  height:44px;
  background:url('../images/cenefa.webp') left center/545px 44px repeat-x;
  opacity:1;
  margin:0;
}
.featured-section {
  padding-block:82px;
}
.split-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:30px;
}
.split-heading>p {
  font-size:15px;
  line-height:1.7;
  margin:0!important;
}
.feature-story {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px;
  align-items:center;
  padding-block:46px;
  border-top:1px solid var(--line);
}
.feature-story:last-child {
  padding-bottom:0;
}
.feature-media {
  width:100%;
  max-width:360px;
  justify-self:center;
}
.feature-media .video-block {
  max-width:320px;
  margin-inline:auto;
}
.feature-media .video-summary {
  display:none;
}
.feature-story.has-video { gap:60px; }
.feature-media.has-video { justify-self:end; }
.cover-art {
  width:100%;
  height:auto;
  aspect-ratio:1;
  object-fit:contain;
}
.feature-copy {
  max-width:460px;
}
.feature-copy h3 {
  font-size:43px;
  margin-top:16px;
  margin-bottom:22px;
}
.feature-copy h3 a,.catalog-copy h2 a {
  text-decoration:none;
}
.feature-copy>p:not(.eyebrow) {
  font-size:17px;
}
.feature-copy>.text-link {
  margin-top:26px;
}
.price {
  font-family:var(--body);
  font-size:22px!important;
  color:#000;
  margin-top:24px!important;
  font-weight:800;
  line-height:1.5;
}
.status {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:13px!important;
  font-weight:700;
  margin-top:20px!important;
  color:#333;
}
.status>span {
  height:7px;
  width:7px;
  border-radius:100%;
  background:#000;
  display:inline-block;
  flex-shrink:0;
}
.home-about {
  background:var(--paper);
  padding-block:64px;
}
.home-about-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px 90px;
}
.home-about-inner>.eyebrow {
  grid-column:1/-1;
}
.home-about h2 {
  font-size:43px;
}
.home-about-inner>div>p {
  font-size:16px;
  margin-bottom:20px;
}
.contact-band {
  background:var(--yellow);
  padding-block:56px;
}
.contact-band-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
}
.contact-band h2 {
  margin-block:12px 14px;
  font-size:43px;
}
.contact-band p:not(.eyebrow) {
  font-size:16px;
  max-width:670px;
}
.contact-band .button {
  flex-shrink:0;
}
.site-footer {
  background:#fff;
  padding-top:60px;
}
.footer-main {
  display:grid;
  grid-template-columns:1fr 1.5fr .6fr;
  gap:60px;
  padding-bottom:52px;
}
.footer-brand {
  display:block;
  width:145px;
  max-width:100%;
}
.footer-brand>img {
  width:100%;
  height:auto;
}
.footer-main>div>p:not(.eyebrow) {
  font-size:13px;
  line-height:1.8;
  margin-top:20px;
}
.footer-main>div:nth-child(2)>a {
  display:block;
  font-size:15px;
  overflow-wrap:anywhere;
  margin-top:12px;
  text-decoration:none;
}
.footer-email {
  font-weight:700;
}
.footer-socials {
  display:flex;
  align-items:start;
  flex-direction:column;
  gap:13px;
}
.footer-socials .text-link {
  font-size:12px;
  gap:15px;
}
.footer-socials .text-link>span {
  font-size:18px;
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--line);
  padding-block:20px;
  font-size:11px;
}
.footer-bottom a {
  text-decoration:none;
}
.page-hero {
  padding-block:68px 60px;
  display:grid;
  grid-template-columns:1fr 170px;
  align-items:center;
  gap:64px;
  border-bottom:1px solid #000;
}
.page-hero h1 {
  margin-block:20px 28px;
}
.page-hero .lead {
  max-width:780px;
  font-size:18px;
}
.hero-symbol {
  width:150px;
  height:150px;
  object-fit:contain;
  justify-self:end;
}
.section-space {
  padding-block:64px;
}
.work-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:54px 42px;
}
.work-story {
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  gap:28px;
  align-items:start;
}
.work-story .video-summary {
  display:none;
}
.work-copy {
  padding-top:8px;
}
.work-copy h3 {
  font-size:28px;
  margin-block:10px 20px;
}
.work-copy>p:not(.project-place) {
  font-size:14px;
  line-height:1.7;
}
.project-place {
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
  line-height:1.5;
  color:#555;
}
.photo-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:44px 32px;
}
.photo-work>.brand-photo>img {
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  object-fit:cover;
}
.photo-work>.photo-copy {
  padding-block:20px;
}
.photo-work h3 {
  font-size:25px;
  margin-block:9px 12px;
}
.photo-work p:not(.project-place) {
  font-size:14px;
}
.pending {
  font-size:12px!important;
  color:#555;
  line-height:1.6;
  background:#f3f3ee;
  border-left:3px solid var(--yellow);
  padding:10px 13px;
  margin-top:15px;
}
.catalog-list {
  padding-top:14px;
  padding-bottom:70px;
}
.catalog-story {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  align-items:center;
  gap:90px;
  border-bottom:1px solid var(--line);
  padding-block:52px;
}
.catalog-story:last-child {
  border:0;
}
.catalog-media {
  width:100%;
  max-width:310px;
  justify-self:center;
}
.catalog-item-number {
  display:block;
  margin-bottom:8px;
  font-size:13px;
  font-weight:700;
  line-height:1.5;
  color:var(--muted);
}
.catalog-media .video-block {
  max-width:310px;
  margin-inline:auto;
}
.catalog-media .video-summary {
  display:none;
}
.catalog-story.has-video { gap:60px; }
.catalog-media.has-video { justify-self:end; }
.catalog-copy h2 {
  font-size:42px;
  margin-block:18px 24px;
}
.catalog-copy>.eyebrow.activity-type {
  font-size:15px;
}
.catalog-copy>p:not(.eyebrow):not(.status) {
  font-size:17px;
}
.catalog-copy .text-link {
  margin-top:24px;
}
.credits .credit-link {
  font-weight:600;
  white-space:nowrap;
  text-decoration-line:underline;
  text-decoration-color:var(--yellow);
  text-decoration-thickness:3px;
  text-underline-offset:.22em;
}
.credits .credit-link:hover,
.credits .credit-link:focus-visible {
  text-decoration-color:currentColor;
}
.credits {
  font-size:13px!important;
  line-height:1.65;
  color:#555;
}
.breadcrumb {
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  font-size:12px;
  padding-top:28px;
}
.breadcrumb a {
  text-decoration:none;
}
.breadcrumb a:hover {
  text-decoration:underline;
}
.detail-layout {
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:100px;
  padding-block:48px 72px;
  align-items:start;
}
.detail-copy h1 {
  font-size:clamp(40px,4.4vw,62px);
  margin-block:18px 26px;
  overflow-wrap:anywhere;
}
.detail-copy .lead {
  font-size:19px;
}
.detail-copy .credits {
  margin-top:18px;
}
.detail-media {
  max-width:310px;
  width:100%;
  justify-self:center;
  padding-top:8px;
}
.detail-media>.video-block {
  max-width:360px;
  margin-inline:auto;
}
.detail-layout.has-video { grid-template-columns:1.3fr 1fr; gap:64px; }
.detail-media.has-video { max-width:360px; }
.detail-media .video-summary {
  font-size:12px;
}
.project-mark {
  width:130px;
  height:130px;
  object-fit:contain;
  margin:30px auto 45px;
}
.fact-list {
  margin:32px 0;
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);
  gap:0 25px;
}
.fact-list>div {
  border-bottom:1px solid var(--line);
  padding-block:16px;
}
.fact-list dt {
  font-size:11px;
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:.09em;
  color:#555;
}
.fact-list dd {
  margin:6px 0 0;
  font-size:16px;
  font-weight:700;
  line-height:1.5;
}
.fact-list:empty {
  display:none;
}
.detail-description>p {
  font-size:16px;
}
.detail-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:22px;
  margin-top:30px;
}
.small-note {
  font-size:12px;
  margin-top:20px;
}
.steps {
  padding:0;
  list-style:none;
  margin:35px 0;
}
.steps>li {
  display:flex;
  gap:20px;
  margin-block:22px;
}
.step-number {
  font-family:var(--body);
  font-weight:800;
  color:#000;
  flex-shrink:0;
  font-size:21px;
  border-top:4px solid var(--yellow);
  padding-top:4px;
}
.steps h3 {
  font-size:21px;
  letter-spacing:-.02em;
  margin-bottom:8px;
}
.steps p {
  font-size:15px;
}
.related {
  border-left:4px solid var(--yellow);
  background:var(--paper);
  padding:28px 32px 32px;
  margin-bottom:48px;
}
.related h2 {
  font-size:30px;
  margin-top:12px;
}
.related-links {
  display:flex;
  flex-wrap:wrap;
  gap:28px 60px;
  margin-top:28px;
}
.related-links .text-link {
  max-width:100%;
}
.related-links .text-link>span {
  flex-shrink:0;
}
.about-layout {
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:100px;
  padding-block:70px 80px;
  align-items:start;
}
.about-copy h1 {
  font-size:76px;
  margin-block:20px 30px;
}
.about-copy>.lead {
  font-size:25px;
  margin-bottom:25px;
}
.about-copy>p:not(.lead):not(.eyebrow) {
  font-size:17px;
}
.person-bio {
  border-top:1px solid var(--line);
  margin-top:35px;
  padding-top:28px;
  margin-bottom:28px;
}
.person-bio h2 {
  font-size:32px;
  margin-block:12px 18px;
}
.person-bio>p:last-child {
  font-size:16px;
}
.portrait {
  max-width:365px;
  justify-self:end;
  margin-top:40px;
}
.portrait img {
  aspect-ratio:544/768;
  object-fit:cover;
}
.portrait figcaption {
  font-size:12px;
  margin-top:12px;
}
.about-method {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px;
  align-items:center;
}
.about-method h2 {
  font-size:40px;
  margin-top:15px;
}
.about-method>p {
  font-size:17px;
}
.contact-hero {
  padding-top:72px;
  padding-bottom:48px;
}
.contact-hero h1 {
  font-size:clamp(44px,6vw,82px);
  margin-block:20px 28px;
}
.contact-hero .lead {
  font-size:19px;
}
.yellow-dot {
  color:var(--yellow);
}
.contact-grid {
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:100px;
  padding-block:26px 84px;
}
.contact-primary .eyebrow {
  margin-bottom:10px;
}
.big-contact {
  display:block;
  font-size:clamp(20px,2.8vw,34px);
  line-height:1.5;
  letter-spacing:-.04em;
  font-family:var(--body);
  font-weight:400;
  text-decoration:none;
  overflow-wrap:anywhere;
  color:#000;
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
  margin-bottom:26px;
}
.big-contact>span {
  white-space:nowrap;
}
.contact-primary .button {
  margin-top:8px;
}
.contact-location {
  border-left:1px solid var(--line);
  padding-left:48px;
}
.contact-location>.section-symbol {
  width:55px;
  height:55px;
  margin-bottom:20px;
}
.contact-location h2 {
  font-size:30px;
  margin-bottom:15px;
}
.contact-location>p {
  font-size:15px;
}
.contact-location>.contact-address-label {
  font-size:12px;
}
.contact-location>.text-link {
  margin-top:16px;
}
.social-links {
  margin-top:30px;
  display:flex;
  flex-direction:column;
  align-items:start;
  gap:12px;
}
.social-links .eyebrow {
  margin-bottom:6px;
}
.social-links .text-link {
  font-size:14px;
}
.social-links .text-link>span {
  font-size:20px;
}
@media(min-width:1600px) {
  .container {
    width:1320px;
  }
  .home-hero {
    padding-block:80px;
  }
  .hero-brand {
    max-width:480px;
  }
  .home-hero h1 {
    font-size:108px;
  }
}
@media(max-width:1180px) {
  .container {
    width:calc(100% - 64px);
  }
  .main-nav {
    gap:18px;
  }
  .main-nav>a {
    font-size:12px;
  }
  .brand {
    gap:9px;
  }
  .brand strong {
    font-size:16px;
  }
  .brand small {
    font-size:10px;
  }
  .brand>img {
    width:62px;
    height:50px;
  }
  .home-hero {
    gap:40px;
  }
  .work-story {
    grid-template-columns:200px minmax(0,1fr);
    gap:22px;
  }
  .work-copy h3 {
    font-size:25px;
  }
  .catalog-story {
    gap:70px;
  }
  .detail-layout,.about-layout,.contact-grid {
    gap:60px;
  }
  .detail-layout.has-video { gap:50px; }
  .areas-grid {
    gap:25px;
  }
  .footer-main {
    gap:30px;
  }
}
@media(max-width:960px) {
  .header-inner {
    min-height:90px;
    flex-wrap:wrap;
    gap:0;
  }
  .brand strong {
    font-size:18px;
  }
  .brand>img {
    width:67px;
    height:54px;
  }
  .has-menu .menu-toggle {
    display:flex;
    align-items:center;
    gap:15px;
    padding:12px 0 12px 16px;
    background:none;
    border:0;
    font-size:13px;
    font-weight:700;
    color:#000;
  }
  .menu-lines {
    display:block;
    width:22px;
    height:14px;
    border-top:2px solid;
    border-bottom:2px solid;
    position:relative;
  }
  .menu-lines::before {
    content:'';
    position:absolute;
    top:5px;
    left:0;
    width:100%;
    height:2px;
    background:currentColor;
  }
  .menu-toggle[aria-expanded=true] .menu-lines {
    border-bottom:0;
    transform:rotate(45deg);
    height:0;
  }
  .menu-toggle[aria-expanded=true] .menu-lines::before {
    top:-2px;
    transform:rotate(90deg);
  }
  .main-nav {
    flex-basis:100%;
    display:flex;
    flex-wrap:wrap;
    gap:8px 25px;
    padding-block:18px;
  }
  .main-nav>a {
    font-size:14px;
  }
  .has-menu .main-nav {
    display:none;
    position:absolute;
    z-index:20;
    top:100%;
    left:-32px;
    right:-32px;
    background:#fff;
    padding:20px 32px 26px;
    border-bottom:1px solid #000;
    box-shadow:0 15px 20px #00000009;
  }
  .has-menu .main-nav.is-open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:3px;
  }
  .main-nav>a:last-child {
    margin:0;
  }
  .main-nav>a::after {
    right:auto;
    width:28px;
  }
  .home-hero h1 {
    font-size:clamp(58px,8.8vw,82px);
  }
  .home-hero {
    gap:28px;
    padding-top:48px;
    padding-bottom:55px;
  }
  .hero-copy .lead {
    font-size:16px;
  }
  .hero-copy .eyebrow {
    font-size:10px;
    letter-spacing:.1em;
  }
  .hero-actions {
    gap:20px;
    flex-wrap:wrap;
  }
  .hero-actions .button {
    font-size:13px;
    gap:16px;
    padding:12px 16px;
  }
  .hero-actions .text-link {
    font-size:13px;
  }
  .areas-grid {
    grid-template-columns:1fr;
    gap:0;
  }
  .area-link {
    --area-lockup-max:320px;
    padding-block:48px 30px;
  }
  .area-description {
    width:100%;
    max-width:480px;
    margin-inline:auto;
    padding:0;
  }
  .area-link .area-arrow {
    align-self:center;
  }
  .section-symbol {
    width:52px;
    height:52px;
  }
  .feature-story {
    gap:50px;
  }
  .feature-story.has-video { gap:36px; }
  .feature-copy h3 {
    font-size:35px;
  }
  .feature-copy>p:not(.eyebrow) {
    font-size:16px;
  }
  .home-about-inner {
    gap:24px 50px;
  }
  .home-about h2 {
    font-size:34px;
  }
  .contact-band h2 {
    font-size:36px;
  }
  .footer-main {
    grid-template-columns:1fr 1.5fr;
  }
  .footer-socials {
    grid-column:1/-1;
    flex-direction:row;
    flex-wrap:wrap;
    gap:30px;
  }
  .page-hero {
    grid-template-columns:1fr 110px;
    gap:30px;
    padding-block:50px;
  }
  .page-hero h1 {
    font-size:48px;
  }
  .hero-symbol {
    width:105px;
    height:105px;
  }
  .work-grid {
    grid-template-columns:1fr;
    gap:35px;
  }
  .work-story {
    grid-template-columns:260px minmax(0,1fr);
    gap:28px;
    border-top:1px solid var(--line);
    padding-top:30px;
  }
  .work-copy h3 {
    font-size:32px;
  }
  .work-copy>p:not(.project-place) {
    font-size:16px;
  }
  .photo-grid {
    grid-template-columns:1fr 1fr;
  }
  .catalog-story {
    gap:45px;
    grid-template-columns:.85fr 1.2fr;
  }
  .catalog-copy h2 {
    font-size:33px;
  }
  .catalog-copy>p:not(.eyebrow):not(.status) {
    font-size:15px;
  }
  .detail-layout {
    grid-template-columns:1.3fr .8fr;
    gap:38px;
  }
  .detail-layout.has-video { grid-template-columns:1.1fr 1fr; gap:32px; }
  .detail-copy h1 {
    font-size:42px;
  }
  .detail-copy .lead {
    font-size:17px;
  }
  .fact-list {
    grid-template-columns:1fr;
  }
  .about-layout {
    gap:45px;
  }
  .about-copy h1 {
    font-size:58px;
  }
  .contact-grid {
    gap:40px;
  }
  .contact-location {
    padding-left:30px;
  }
  .about-method {
    gap:45px;
  }
}
@media(max-width:640px) {
  body {
    font-size:16px;
  }
  .container {
    width:calc(100% - 40px);
  }
  .header-inner {
    min-height:84px;
  }
  .brand>img {
    width:55px;
    height:43px;
  }
  .brand {
    gap:10px;
  }
  .brand strong {
    font-size:16px;
  }
  .brand small {
    font-size:9px;
  }
  .has-menu .main-nav {
    left:-20px;
    right:-20px;
    padding-inline:20px;
  }
  .home-hero {
    display:block;
    padding-block:39px 42px;
  }
  .home-hero h1 {
    font-size:clamp(54px,13.5vw,78px);
    margin-bottom:26px;
    line-height:1.04;
  }
  .hero-copy .eyebrow {
    font-size:10px;
    letter-spacing:.12em;
    margin-bottom:20px;
  }
  .hero-copy .lead {
    font-size:17px;
    line-height:1.7;
    max-width:450px;
  }
  .hero-actions {
    margin-top:25px;
    gap:25px;
  }
  .hero-actions .button {
    font-size:14px;
  }
  .hero-actions .text-link {
    font-size:14px;
  }
  .hero-location {
    margin-top:22px;
  }
  .hero-brand {
    margin:36px auto 0;
    max-width:260px;
    width:min(78%,calc(60vh * var(--brand-aspect-value)));
    width:min(78%,calc(60svh * var(--brand-aspect-value)));
  }
  .areas-section {
    padding-top:18px;
    padding-bottom:48px;
  }
  .section-heading {
    margin-bottom:25px;
  }
  .section-heading .eyebrow {
    font-size:10px;
  }
  .areas-grid {
    display:block;
  }
  .area-link {
    padding:40px 0 28px;
  }
  .area-description {
    font-size:15px;
  }
  .area-link .area-arrow {
    margin-top:20px;
  }
  .brand-divider {
    height:30px;
    background-size:372px 30px;
  }
  .featured-section {
    padding-block:44px;
  }
  .split-heading {
    display:block;
  }
  .split-heading>p {
    font-size:14px;
    margin-top:16px!important;
  }
  .feature-story {
    display:flex;
    flex-direction:column;
    gap:28px;
    padding-block:32px;
    align-items:stretch;
  }
  .feature-media {
    max-width:290px;
    align-self:center;
  }
  .feature-copy {
    max-width:none;
  }
  .feature-copy h3 {
    font-size:34px;
    margin-block:14px 18px;
  }
  .feature-copy .eyebrow {
    font-size:10px;
  }
  .feature-copy>p:not(.eyebrow) {
    font-size:16px;
  }
  .feature-copy>.text-link {
    margin-top:20px;
  }
  .feature-media .video-block {
    max-width:320px;
  }
  .feature-media.has-video { max-width:320px; }
  .feature-story.has-video { gap:28px; }
  .home-about {
    padding-block:40px;
  }
  .home-about-inner {
    display:block;
  }
  .home-about h2 {
    font-size:34px;
    margin-block:18px 24px;
  }
  .home-about-inner>div>p {
    font-size:16px;
  }
  .contact-band {
    padding-block:38px;
  }
  .contact-band-inner {
    display:block;
  }
  .contact-band h2 {
    font-size:34px;
    margin-block:15px;
  }
  .contact-band p:not(.eyebrow) {
    font-size:15px;
  }
  .contact-band .button {
    margin-top:24px;
  }
  .site-footer {
    padding-top:40px;
  }
  .footer-main {
    display:block;
    padding-bottom:30px;
  }
  .footer-main>div {
    margin-bottom:28px;
  }
  .footer-main>div:last-child {
    margin-bottom:0;
  }
  .footer-brand {
    width:140px;
  }
  .footer-main>div>p:not(.eyebrow) {
    margin-top:13px;
  }
  .footer-socials {
    flex-direction:row;
    gap:22px;
    flex-wrap:wrap;
  }
  .footer-bottom {
    font-size:10px;
    flex-wrap:wrap;
    gap:12px;
  }
  .footer-bottom>p {
    flex-basis:100%;
  }
  .footer-bottom a:last-child {
    margin-left:auto;
  }
  .page-hero {
    display:block;
    position:relative;
    padding-block:38px 35px;
  }
  .page-hero .eyebrow {
    font-size:10px;
    padding-right:35px;
  }
  .page-hero h1 {
    font-size:38px;
    margin-block:24px;
  }
  .page-hero .lead {
    font-size:16px;
    line-height:1.75;
  }
  .hero-symbol {
    position:absolute;
    top:32px;
    right:0;
    width:38px;
    height:38px;
  }
  .section-space {
    padding-block:40px;
  }
  .section-heading>p:not(.eyebrow) {
    font-size:15px;
  }
  .work-story {
    display:flex;
    flex-direction:column;
    gap:20px;
    padding-top:25px;
  }
  .work-story .video-block {
    max-width:320px;
    align-self:center;
  }
  .work-copy {
    padding:0;
  }
  .work-copy h3 {
    font-size:29px;
    margin-block:10px 15px;
  }
  .work-copy>p:not(.project-place) {
    font-size:15px;
  }
  .work-grid {
    gap:30px;
  }
  .photo-grid {
    display:block;
  }
  .photo-work {
    margin-bottom:24px;
  }
  .photo-work>.brand-photo>img {
    aspect-ratio:4/3;
  }
  .photo-work>.photo-copy {
    padding-block:16px 10px;
  }
  .photo-work h3 {
    font-size:25px;
  }
  .photo-work p:not(.project-place) {
    font-size:15px;
  }
  .catalog-list {
    padding-top:0;
    padding-bottom:30px;
  }
  .catalog-story {
    display:flex;
    flex-direction:column;
    gap:25px;
    align-items:stretch;
    padding-block:34px;
  }
  .catalog-media {
    align-self:center;
    max-width:275px;
  }
  .catalog-media .video-block {
    max-width:320px;
  }
  .catalog-media.has-video { max-width:320px; }
  .catalog-story.has-video { gap:25px; }
  .catalog-copy h2 {
    font-size:33px;
    margin-block:14px 18px;
  }
  .catalog-copy>.eyebrow {
    font-size:10px;
  }
  .catalog-copy>.eyebrow.activity-type {
    font-size:13px;
  }
  .catalog-copy>p:not(.eyebrow):not(.status) {
    font-size:16px;
  }
  .catalog-copy .text-link {
    margin-top:20px;
  }
  .breadcrumb {
    font-size:11px;
    gap:10px;
    padding-top:22px;
  }
  .detail-layout {
    display:flex;
    flex-direction:column;
    padding-block:30px 45px;
    gap:36px;
  }
  .detail-copy h1 {
    font-size:39px;
    margin-block:15px 23px;
    overflow-wrap:normal;
  }
  .detail-copy .eyebrow {
    font-size:10px;
  }
  .detail-copy .lead {
    font-size:18px;
  }
  .detail-description>p {
    font-size:16px;
  }
  .detail-media {
    max-width:290px;
    align-self:center;
    order:-1;
    padding:0;
  }
  .detail-media .video-block {
    max-width:320px;
  }
  .detail-media.has-video { max-width:320px; }
  .detail-media>.cover-art {
    max-width:240px;
    margin:auto;
  }
  .detail-media .project-mark {
    display:none;
  }
  .detail-media>.video-block~.video-block {
    margin-top:28px;
  }
  .detail-copy {
    width:100%;
  }
  .fact-list {
    grid-template-columns:1fr 1fr;
    gap:0 18px;
    margin-block:25px;
  }
  .fact-list dd {
    font-size:14px;
  }
  .fact-list dt {
    font-size:10px;
  }
  .detail-actions .button {
    font-size:14px;
    gap:16px;
    padding-inline:18px;
  }
  .detail-actions {
    gap:18px;
  }
  .related {
    padding:22px 18px 24px;
    margin-bottom:32px;
  }
  .related-links {
    flex-direction:column;
    align-items:start;
    gap:22px;
  }
  .about-layout {
    display:flex;
    flex-direction:column;
    padding-block:40px;
    gap:30px;
  }
  .about-copy h1 {
    font-size:57px;
    margin-block:20px 25px;
  }
  .about-copy>.lead {
    font-size:23px;
  }
  .portrait {
    max-width:290px;
    align-self:center;
    margin-top:0;
    justify-self:auto;
  }
  .about-method {
    display:block;
    padding-block:38px;
  }
  .about-method h2 {
    font-size:33px;
    margin-bottom:25px;
  }
  .about-method>p {
    font-size:16px;
  }
  .contact-hero {
    padding-block:40px 30px;
  }
  .contact-hero h1 {
    font-size:43px;
    line-height:1.1;
    margin-block:20px 25px;
  }
  .contact-hero .lead {
    font-size:17px;
  }
  .contact-grid {
    display:block;
    padding-block:15px 40px;
  }
  .big-contact {
    font-size:clamp(18px,5.4vw,29px);
    letter-spacing:-.03em;
    padding-bottom:17px;
    margin-bottom:22px;
  }
  .contact-location {
    padding:30px 0 0;
    margin-top:35px;
    border-left:0;
    border-top:1px solid var(--line);
  }
  .contact-location>.section-symbol {
    width:45px;
    height:45px;
  }
  .contact-location h2 {
    font-size:31px;
  }
  .social-links {
    margin-top:26px;
  }
  .play-icon {
    width:58px;
    height:58px;
    font-size:20px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
}
@media print {
  .menu-toggle,.main-nav,.video-cover,.site-footer,.contact-band,.brand-divider {
    display:none!important;
  }
  .container {
    width:100%;
  }
  .video-shell {
    max-width:180px;
  }
  .site-header {
    padding-bottom:20px;
  }
  a {
    text-decoration:underline;
  }
  .detail-layout {
    gap:30px;
  }
  .home-hero {
    padding-block:25px;
  }
  .page-hero {
    padding-block:25px;
  }
  body {
    font-size:12px;
  }
}
button:focus-visible {
  outline-color:#000;
  box-shadow:0 0 0 2px #fff;
}
.play-label {
  left:50%;
  right:auto;
  transform:translateX(-50%);
  width:max-content;
  background:#000;
  padding:5px 10px;
  text-shadow:none;
}
.how-it-works {
  margin-top:35px;
}
.how-it-works>h2 {
  font-size:27px;
  letter-spacing:-.03em;
}
@media(max-width:640px) {
  .detail-layout {
    gap:0;
  }
  .detail-layout.has-video { gap:0; }
  .detail-copy {
    display:contents;
  }
  .detail-copy>.eyebrow {
    order:-5;
  }
  .detail-copy>h1 {
    order:-4;
    width:100%;
  }
  .detail-copy>.lead {
    order:-3;
  }
  .detail-media {
    order:-2;
    margin:28px 0;
  }
  .fact-list {
    width:100%;
  }
  .detail-actions {
    width:100%;
  }
  .detail-copy>.credits,.detail-copy>.status {
    margin-block:10px;
  }
  .detail-copy>.detail-description {
    width:100%;
  }
  .detail-copy>.small-note {
    margin-bottom:15px;
  }
}

/* Descargas y datos prácticos incorporados a la versión existente. */
.detail-dossiers .dossier-download--primary {
  font-size:15px;
  max-width:100%;
  text-align:left;
}
@media(max-width:640px) {
  .detail-copy>.detail-dossiers {
    order:-3;
    width:100%;
    margin-bottom:24px;
  }
  .detail-dossiers .dossier-download--primary {
    font-size:14px;
    gap:18px;
  }
}
.dossier-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:22px}.dossier-download{font-size:14px}.lead-actions{margin-top:24px}.activity-poster{margin-top:32px}.activity-poster img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain}.activity-poster figcaption{font-size:12px;line-height:1.6;color:#555;margin-top:10px}.detail-registration .lead-actions .button{max-width:100%;text-align:left}.detail-registration .detail-actions .button{max-width:100%;text-align:left}@media(max-width:640px){.detail-registration .lead-actions{order:-2;width:100%;margin-top:24px}.detail-registration .fact-list{order:-2}.detail-registration .detail-media{order:-1}.lead-actions .button{font-size:14px;gap:18px}.activity-poster{margin-top:25px}}
