/* Exploración local V01 · 2026-09-25. Materia editorial, sin alterar contenido. */
:root {
  --ls-rule: rgba(37,34,31,.22);
  --ls-ease: cubic-bezier(.22,.7,.22,1);
  --ls-paper-grain: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%2325221f' opacity='.06' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");
}

/* Cabecera como placa de vidrio: la textura queda lejos de la tipografía. */
.site-header {
  margin: 16px 2vw 0;
  min-height: 90px;
  padding: 18px 2vw;
  border: 1px solid rgba(247,207,158,.62);
  border-radius: 4px;
  background: rgba(232,174,116,.94);
  box-shadow: inset 0 1px rgba(255,240,210,.72), inset 1px 0 rgba(255,226,184,.25), inset -1px 0 rgba(119,64,30,.16), inset 0 -1px rgba(125,65,32,.24), 0 2px 4px rgba(66,36,20,.09), 0 14px 32px -24px rgba(66,36,20,.42);
  isolation: isolate;
}
@supports ((backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px))) {
  .site-header {
    /* Vidrio caramelo: absorción cálida, manteniendo visible el fondo refractado. */
    background: rgba(232,174,116,.72);
    -webkit-backdrop-filter: blur(12px) saturate(.85);
    backdrop-filter: blur(12px) saturate(.85);
  }
}
html.ls-refractive-glass .site-header {
  /* El mapa SVG refracta el contenido real situado detrás de la barra. */
  backdrop-filter: url("#ls-reeded-glass") blur(.65px) saturate(.85);
}
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  /* Brillo rasante y valles ámbar: relieve óptico sin textura granulada. */
  background:
    linear-gradient(180deg, rgba(255,240,210,.2), transparent 24%, transparent 78%, rgba(123,65,31,.07)),
    linear-gradient(112deg, transparent 17%, rgba(255,239,210,.17) 32%, transparent 48%, rgba(169,95,43,.055) 72%, transparent),
    repeating-linear-gradient(90deg,
      rgba(109,57,25,.075) 0,
      rgba(138,78,35,.025) 3px,
      rgba(255,227,181,.035) 7px,
      rgba(255,244,221,.19) 10px,
      rgba(255,235,197,.075) 12px,
      transparent 16px,
      rgba(109,57,25,.075) 20px);
  -webkit-mask-image: linear-gradient(90deg, transparent 12%, rgba(0,0,0,.35) 28%, #000 48%, rgba(0,0,0,.45) 64%, transparent 86%);
  mask-image: linear-gradient(90deg, transparent 12%, rgba(0,0,0,.35) 28%, #000 48%, rgba(0,0,0,.45) 64%, transparent 86%);
}
.site-header .site-nav .wp-block-navigation__container { gap: clamp(14px,2vw,32px); }
.site-header .site-nav .nav-contact > a,
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .nav-contact > a {
  border-radius: 2px;
  background: var(--olive-ui);
  border-color: var(--olive-ui);
  color: var(--paper);
}
.site-header .site-nav .wp-block-navigation-item:not(.nav-contact) > a:is([aria-current="page"], [aria-current="true"]) { color: var(--ink); }
.site-header .brand-copy .wp-block-site-title { font-size: clamp(27px,2.4vw,38px); }
.site-header .brand-copy .wp-block-site-tagline { letter-spacing: .21em; }
/* Isologotipo maestro completo, compartido por la entrada y la cabecera. */
.site-header:has(.brand--isologo) { padding-block:8px; }
.site-header .brand--isologo { width:clamp(245px,21vw,300px); max-width:calc(100% - 64px); flex:0 0 auto; margin:0; transform-origin:0 0; }
/* La entrada y el reposo comparten transformación: no desmontar la capa al llegar. */
body.home .site-header .brand--isologo { transform:translate3d(0,0,0) scale(1); }
.site-header .brand-isologo-link { display:block; width:100%; aspect-ratio:2175 / 656; position:relative; container-type:inline-size; }
.site-header :is(.brand-isologo-icon,.brand-isologo-name) { position:absolute; display:block; height:auto; max-width:none; }
.site-header .brand-isologo-icon { left:3.448276%; top:11.432927%; width:23.908046%; }
.site-header .brand-isologo-name { left:33.747126%; top:23.628049%; width:62.804598%; }
.site-header .brand-isologo-descriptor { position:absolute; left:34%; color:#171715; text-transform:uppercase; pointer-events:none; }
.site-header .brand-isologo-descriptor { top:66.7%; font:400 clamp(6px,3cqw,9px)/1.25 Arial,sans-serif; letter-spacing:.035em; white-space:nowrap; }
@media (max-width:600px) {
  .site-header .brand--isologo { width:min(230px,calc(100vw - 126px)); }
}
.site-header:has(.wp-block-navigation__responsive-container.is-menu-open),
html.ls-refractive-glass .site-header:has(.wp-block-navigation__responsive-container.is-menu-open) { -webkit-backdrop-filter: none; backdrop-filter: none; isolation: auto; }
.wp-site-blocks > .wp-block-template-part:has(> .site-header) {
  position: sticky;
  top: 0;
  z-index: 100;
  padding-top: 1px;
  background: transparent;
}
main section[id], #contacto { scroll-margin-top: 124px; }
@media (min-width: 1101px) {
  .site-header { margin-top: 12px; }
  main section[id] { scroll-margin-top: 124px; }
  .method .method-title { top: 136px; }
}

/* Página de cuaderno con fotografía montada a la derecha. */
#inicio.hero {
  min-height: 0;
  padding: clamp(24px,3vw,48px) 4vw clamp(48px,6vw,88px);
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: clamp(24px,4vw,64px);
  background-image: var(--ls-paper-grain);
}
#inicio .hero-copy { padding: clamp(20px,3vw,48px) 0 0; display: flex; flex-direction: column; justify-content: space-between; }
#inicio h1 { font-size: clamp(64px,7.6vw,130px); line-height: .94; letter-spacing: -.065em; }
#inicio .hero-intro { margin: 44px 0 0; padding-top: 26px; border-top: 1px solid var(--ls-rule); font-size: clamp(23px,2.2vw,34px); max-width: 20ch; }
#inicio .hero-visual { margin: 0; }
#inicio .hero-visual figure { position: relative; inset: auto; box-shadow: 0 20px 28px -24px rgba(37,34,31,.65); }
#inicio .image-note { padding: 14px 0 0; font-size: 9px; letter-spacing: .2em; }
#inicio .hero-side { position: static; grid-column: 1 / -1; transform: none; color: var(--ink); padding-top: 16px; border-top: 1px solid var(--ls-rule); font-size: 9px; letter-spacing: .2em; }
/* Texto accesible inmediatamente, sin esperar a la máquina de escribir. */
#inicio .hero-intro.is-typing .hero-type-source { opacity: 1; }
#inicio .hero-type-overlay { display: none; }
#inicio .hero-intro .hero-intro-line::after { content: none; animation: none; }

/* Ritmo propio para cada capítulo, conservando su orden. */
.manifesto-carousel { border-radius: 30px 30px 0 0; padding-top: clamp(56px,6vw,88px); }
.manifesto-carousel .carousel-heading { padding-bottom: 34px; border-bottom: 1px solid rgba(242,232,220,.2); margin-right: 4vw; padding-right: 0; }
.manifesto-carousel .carousel-caption { padding-top: 18px; }
.manifesto-carousel .carousel-controls button,
.home-work .home-work-controls button {
  border-radius: 2px;
  background: rgba(248,242,233,.05);
  box-shadow: inset 0 1px rgba(248,242,233,.12);
  transition: background .2s, color .2s;
}
.manifesto-carousel .carousel-controls button:hover,
.home-work .home-work-controls button:hover { background: var(--cream); color: var(--ink); }

body.home #servicios { padding-bottom: clamp(64px,7vw,100px); }
.service-territories { gap: 16px; border: 0; }
.service-territory { border: 1px solid rgba(37,34,31,.2); border-radius: 3px; box-shadow: inset 0 1px rgba(248,242,233,.2); }
.service-territory > summary { min-height: 330px; padding: 26px; }
.service-territory-heading { gap: 24px; }
.service-territory-toggle { width: 44px; height: 44px; border-color: rgba(248,242,233,.55); transition: background .25s, transform .25s; }
.service-territory > summary:hover .service-territory-toggle { background: rgba(248,242,233,.12); transform: rotate(90deg); }
.service-territory[open] > summary .service-territory-toggle { transform: none; }
.service-territory-panel { margin-inline: 26px; padding-inline: 0; }

.method { background-image: var(--ls-paper-grain); border-top: 1px solid var(--ls-rule); gap: 6vw; }
.method-title { top: 36px; }
.method-item { grid-template-columns: 64px minmax(0,1fr); gap: 16px; padding: 30px 0; border-top-color: var(--ls-rule); }
body.home .method .method-item > p { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--ls-rule); border-radius: 50%; background: var(--paper); font-size: 12px; }
.method-item h3 { font-size: clamp(32px,3.3vw,48px); font-weight: 400; letter-spacing: -.035em; }
.method-item > div p { max-width: 39ch; }
.home-work { border-radius: 30px 30px 0 0; padding-top: 24px; }
.home-work-heading { padding-bottom: 28px; border-bottom: 1px solid rgba(242,232,220,.22); }
.home-work-image { border-radius: 3px; }
.home-work-link { padding-bottom: 20px; }
.home-work h3 { display: inline; background: linear-gradient(currentColor,currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s; }
.home-work-link:hover h3 { text-decoration: none; background-size: 100% 1px; }
.home-work-description { margin-top: 14px; }

/* Interiores: marcos limpios, interlineados y separaciones coherentes. */
.services-page .sp-hero,
.about-page .ap-hero { background-image: var(--ls-paper-grain); }
.services-page .sp-cover,
.about-page .ap-hero-image { box-shadow: 0 20px 35px -25px rgba(37,34,31,.6); border-radius: 3px; }
.services-page .sp-entry { border-radius: 0; }
.services-page .sp-entry-links a { transition: background .2s; }
.services-page .sp-entry-links a:hover { background: rgba(248,242,233,.07); }
.services-page .sp-entry > .sp-eyebrow,
.services-page .sp-entry .sp-entry-area { color: var(--cream); }
.about-page .ap-direction { border-radius: 24px 24px 0 0; }

/* Contacto: papel a la vista, campo oscuro y luz sobre la pieza de formulario. */
.contact.contact--editorial { padding-top: clamp(56px,6vw,90px); background-image: var(--ls-paper-grain); }
.contact.contact--editorial:has(.contact-form-shell) { padding-top: 32px; }
.contact--editorial .contact-form-shell { width: 100%; margin: 0 0 40px; padding: clamp(28px,4vw,64px); border-radius: 4px; position: relative; isolation: isolate; }
.contact--editorial .contact-form-shell::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; border-radius: inherit; background: repeating-linear-gradient(90deg,transparent 0 6px,rgba(242,232,220,.025) 7px,rgba(242,232,220,.07) 8px,transparent 10px); mask-image: linear-gradient(90deg,#000,transparent 44%); }
.contact--editorial .contact-form-heading :is(h1,h2) { font: 400 clamp(48px,5.7vw,88px)/.96 Georgia,serif; letter-spacing: -.055em; max-width: 9ch; margin: 0; }
.contact-form-shell :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { border-radius: 2px; box-shadow: inset 0 2px 4px rgba(37,34,31,.08); }
.contact-form-shell :is(input,select,textarea):focus-visible { outline-color: var(--terra-light); outline-offset: 3px; }
.contact--editorial .contact-email { text-decoration-thickness: 1px; text-underline-offset: .15em; }

@media (min-width: 901px) {
  .service-territory:nth-child(2) { margin-top: 28px; }
  .service-territory:nth-child(3) { margin-top: 56px; }
}
@media (max-width: 1100px) {
  .site-header .brand-copy .wp-block-site-tagline { font-size: 8px; letter-spacing: .12em; }
  .site-header .site-nav { font-size: 10px; letter-spacing: .07em; }
}
@media (max-width: 900px) {
  .site-header { margin: 12px 14px 0; padding: 16px; min-height: 80px; }
  #inicio.hero { padding: 28px 22px 52px; gap: 28px; }
  #inicio h1 { font-size: clamp(56px,8vw,78px); }
  #inicio .hero-copy { padding: 10px 0 0; }
  #inicio .hero-intro { font-size: 23px; margin-top: 28px; }
  .service-territories { gap: 14px; }
  .service-territory > summary { min-height: 240px; }
  .method-item { grid-template-columns: 48px minmax(0,1fr); }
  .contact--editorial .contact-form-shell { width: 100%; margin-inline: 0; padding: 32px 24px; }
  .manifesto-carousel,.home-work { border-radius: 20px 20px 0 0; }
}
@media (max-width: 600px) {
  #inicio.hero { grid-template-columns: minmax(0,1fr); }
  #inicio h1 { font-size: clamp(62px,13vw,80px); max-width: 9ch; }
  #inicio .hero-intro { max-width: 26ch; font-size: 22px; }
  #inicio .hero-visual { width: 100%; }
  .site-header .brand-copy .wp-block-site-title { font-size: 27px; }
  .site-header .brand-copy .wp-block-site-tagline { max-width: 190px; font-size: 7px; }
  .manifesto-carousel .carousel-heading { padding-bottom: 24px; }
  .contact--editorial .contact-form-shell { padding: 28px 20px; }
  .contact--editorial .contact-form-heading :is(h1,h2) { font-size: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .service-territory-toggle,.home-work h3 { transition: none; transform: none !important; }
}
@media (forced-colors: active) {
  .site-header::before,.contact-form-shell::before { display: none; }
  .site-header { background: Canvas; border-color: CanvasText; }
}

/* V02 · Cuerpo de portada. La cabecera aprobada no se modifica. */
body.home #inicio.hero {
  grid-template-columns: minmax(0,1.16fr) minmax(0,.84fr);
  gap: 28px 4vw;
  padding-top: clamp(40px,5vw,80px);
  padding-bottom: clamp(56px,7vw,110px);
}
body.home #inicio h1 { font-size: clamp(76px,9.7vw,174px); line-height: .88; letter-spacing: -.075em; }
body.home #inicio .hero-copy { padding-top: 0; justify-content: flex-start; }
body.home #inicio .hero-intro { max-width: 26ch; margin-top: clamp(36px,4vw,64px); font-size: clamp(22px,2vw,31px); }
body.home #inicio .hero-visual { align-self: center; padding: 18px 10px 0; }
body.home #inicio .hero-visual figure { transform: rotate(2deg); transform-origin: center; box-shadow: 12px 16px 0 -3px var(--cream), 12px 16px 0 -2px var(--terra-light), 0 30px 50px -35px rgba(37,34,31,.6); }
body.home #inicio .image-note { padding-top: 32px; }
body.home #inicio .hero-side { margin-top: 24px; padding-top: 22px; letter-spacing: .26em; }

/* La Mesa se presenta como una apertura de exposición. */
body.home #la-mesa { border-radius: 0; padding-top: clamp(64px,7vw,112px); }
body.home #la-mesa .carousel-heading { grid-template-columns: minmax(0,1fr); gap: 32px; border-bottom: 0; padding-bottom: 0; margin-bottom: 52px; }
body.home #la-mesa .carousel-heading h2 { font-size: clamp(64px,9.7vw,164px); line-height: .92; letter-spacing: -.065em; }
body.home #la-mesa .carousel-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 7vw; max-width: none; padding-top: 32px; border-top: 1px solid rgba(242,232,220,.24); }
body.home #la-mesa .carousel-intro > p { max-width: 42ch; margin: 0; font-size: clamp(18px,1.65vw,25px); }
body.home #la-mesa .carousel-controls { grid-column: 1 / -1; margin: 0; justify-content: flex-end; }
body.home #la-mesa .carousel-caption h3 { font-size: clamp(25px,2.2vw,36px); }

/* Servicios: tres grandes entradas editoriales, abiertas con controles nativos. */
body.home #servicios { padding-top: clamp(64px,8vw,120px); }
body.home #servicios .section-heading { margin-bottom: 56px; }
body.home #servicios .section-heading h2 { font-size: clamp(52px,6.9vw,110px); }
body.home #servicios .service-territories { grid-template-columns: minmax(0,1fr); gap: 0; }
body.home #servicios .service-territory { margin: 0; border: 0; border-bottom: 1px solid rgba(248,242,233,.35); border-radius: 0; box-shadow: none; }
body.home #servicios .service-territory:first-child { border-radius: 5px 5px 0 0; }
body.home #servicios .service-territory:last-child { border-radius: 0 0 5px 5px; border-bottom: 0; }
body.home #servicios .service-territory > summary { min-height: 190px; grid-template-columns: minmax(0,1fr) 52px; grid-template-rows: auto; align-items: center; gap: 32px; padding: 32px clamp(24px,3vw,48px); }
body.home #servicios .service-territory-heading { grid-column: 1; grid-row: 1; display: grid; grid-template-columns: 1.15fr .85fr; gap: 4vw; align-items: center; }
body.home #servicios .service-territory-title { min-height: 0; font-size: clamp(36px,4.3vw,68px); line-height: 1.02; }
body.home #servicios .service-territory-intro { max-width: 32ch; font-size: clamp(17px,1.45vw,21px); }
body.home #servicios .service-territory-toggle { grid-column: 2; grid-row: 1; width: 52px; height: 52px; }
body.home #servicios .service-territory-panel { margin-inline: clamp(24px,3vw,48px); padding-bottom: 32px; }
body.home #servicios .service-territory-capabilities { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; }

/* Cinco movimientos: numeración monumental, un recorrido continuo. */
body.home .method { display: block; padding-block: clamp(64px,8vw,120px); }
body.home .method .method-title { position: static; margin-bottom: 56px; }
body.home .method h2 { font-size: clamp(56px,7.5vw,120px); max-width: 18ch; }
body.home .method .method-list { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); }
body.home .method .method-item { display: block; border-top: 1px solid var(--ls-rule); border-left: 1px solid var(--ls-rule); padding: 28px clamp(16px,2vw,32px) 0; margin: 0; }
body.home .method .method-item:first-child { border-left: 0; padding-left: 0; }
body.home .method .method-item > p { display: block; width: auto; height: auto; border: 0; border-radius: 0; background: none; font: 400 clamp(72px,8vw,128px)/1 Georgia,serif; letter-spacing: -.08em; margin: 0 0 40px; color: var(--terra); }
body.home .method .method-item h3 { font-size: clamp(26px,2.4vw,38px); }
body.home .method .method-item > div { padding-inline: 0; }
body.home .method .method-item > div > * { margin-inline: 0 !important; }
body.home .method .method-item > div p { font-size: 15px; line-height: 1.65; }

body.home .home-work { border-radius: 0; padding-top: clamp(36px,4vw,64px); }
body.home .home-work-inner { max-width: none; }
body.home .home-work h2 { font-size: clamp(60px,8.5vw,140px); }
body.home .home-work-heading { margin-bottom: 48px; padding-bottom: 40px; }
body.home .home-work-image { border-radius: 0; }
body.home .home-work h3 { font-size: clamp(34px,3.8vw,60px); }
body.home .client-strip { padding-block: 64px; }
body.home .client-strip h2 { font-size: clamp(30px,3vw,46px); }
body.home .contact.contact--editorial { padding-top: clamp(64px,8vw,120px); border-top: 1px solid var(--ls-rule); }
body.home .contact--editorial .contact-heading { grid-column: 1 / -1; }
body.home .contact--editorial .contact-heading h2 { font-size: clamp(56px,8.7vw,144px); max-width: 17ch; line-height: .96; }
body.home .contact--editorial .contact-body { grid-column: 1 / -1; max-width: 900px; width: 100%; }

@media (max-width: 1000px) {
  body.home #inicio h1 { font-size: clamp(66px,9.5vw,96px); }
  body.home .method .method-list { grid-template-columns: minmax(0,1fr); }
  body.home .method .method-item,body.home .method .method-item:first-child { display: grid; grid-template-columns: 120px minmax(0,1fr); border-left: 0; padding: 26px 0; gap: 24px; }
  body.home .method .method-item > p { font-size: 88px; margin: 0; }
  body.home .method .method-item h3 { font-size: 36px; }
  body.home .method .method-item > div p { max-width: 50ch; }
}
@media (max-width: 700px) {
  body.home #inicio.hero { grid-template-columns: minmax(0,1fr); padding-top: 36px; gap: 32px; }
  body.home #inicio h1 { font-size: clamp(62px,14vw,98px); max-width: 10ch; }
  body.home #inicio .hero-intro { margin-top: 32px; font-size: 23px; }
  body.home #inicio .hero-visual { padding: 0 8px; }
  body.home #inicio .hero-visual figure { transform: rotate(1deg); }
  body.home #la-mesa .carousel-heading h2 { font-size: clamp(48px,10.5vw,72px); }
  body.home #la-mesa .carousel-intro { grid-template-columns: minmax(0,1fr); }
  body.home #la-mesa .carousel-controls { justify-content: flex-start; }
  body.home #servicios .section-heading h2 { font-size: clamp(44px,10vw,68px); }
  body.home #servicios .service-territory > summary { padding: 28px 22px; gap: 16px; grid-template-columns: minmax(0,1fr) 44px; }
  body.home #servicios .service-territory-heading { grid-template-columns: minmax(0,1fr); gap: 20px; }
  body.home #servicios .service-territory-title { font-size: clamp(32px,7vw,46px); }
  body.home #servicios .service-territory-toggle { width: 44px; height: 44px; align-self: start; }
  body.home #servicios .service-territory-capabilities { grid-template-columns: minmax(0,1fr); }
  body.home .method h2 { font-size: clamp(48px,10vw,68px); }
  body.home .method .method-item,body.home .method .method-item:first-child { grid-template-columns: 74px minmax(0,1fr); gap: 20px; }
  body.home .method .method-item > p { font-size: 68px; }
  body.home .method .method-item h3 { font-size: 30px; }
  body.home .home-work h2 { font-size: clamp(52px,12vw,78px); }
  body.home .contact--editorial .contact-heading h2 { font-size: clamp(48px,10vw,72px); }
}
