/* Revisión local: orientación en verde oliva y ajustes de lectura. */
:root {
  --olive-ui: #606a49;
  --olive-light: #a5b18c;
  --section-label: #d38a64;
}

/* Etiquetas pequeñas: terracota oscuro sobre papel, claro sobre tinta. */
.services-page :is(.sp-hero, .sp-territory--creative, .sp-territory--ai, .sp-combination),
.about-page :is(.ap-hero, .ap-collaboration, .ap-approach),
.projects-page .pp-archive,
.notebook-main,
.single-project .single-project-copy,
.page-hero,
.contact.contact--editorial:not(.home-contact) {
  --section-label: var(--terra);
}
.contact.contact--editorial .contact-form-shell,
body.home:has(.art-home) #contacto {
  --section-label: var(--terra-light);
}

/* Navegación: página actual y contacto, con los estados móviles existentes. */
.site-header .site-nav .nav-contact > a {
  border-color: var(--olive-ui);
  color: var(--olive-ui);
}
.site-header .site-nav .nav-contact > a:is(:hover, :focus-visible, :active, [aria-current="page"], [aria-current="true"]) {
  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(--olive-ui);
}
.site-header .site-nav .wp-block-navigation-item:not(.nav-contact) > a:is([aria-current="page"], [aria-current="true"])::after {
  right: 0;
  background: currentColor;
}
.site-header .site-nav .wp-block-navigation-item > a:focus-visible {
  outline-color: var(--olive-ui);
}
.site-header .site-nav .wp-block-navigation__responsive-container-open,
.site-header .site-nav .wp-block-navigation__responsive-container-close {
  box-sizing: border-box;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 9px;
}
.site-header .site-nav .wp-block-navigation__responsive-container-open {
  color: var(--ink);
}
.site-header .site-nav .wp-block-navigation__responsive-container-open svg,
.site-header .site-nav .wp-block-navigation__responsive-container-close svg {
  width: 24px;
  height: 24px;
}
.site-header .site-nav .wp-block-navigation__responsive-container-open:focus-visible {
  outline-color: var(--ink);
}

/* Invitaciones y vínculos editoriales. */
.contact.contact--editorial .contact-eyebrow,
.contact.contact--editorial a:hover,
.contact.contact--editorial a:focus-visible {
  color: var(--section-label);
}
.contact.contact--editorial .contact-eyebrow {
  display: block;
  margin: 0 0 28px;
  font: 700 10px/1.4 Arial, Helvetica, sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.contact.contact--editorial .contact-eyebrow::before { display: none; }
.contact.contact--editorial a:focus-visible {
  outline-color: var(--olive-ui);
}
.contact.contact--editorial.home-contact a:focus-visible,
.contact.contact--editorial .contact-form-shell a:focus-visible {
  outline-color: var(--olive-light);
}
.notebook-main .notebook-link,
.notebook-main .notebook-back,
.notebook-main .notebook-link:hover,
.notebook-main .notebook-back:hover,
.about-page .ap-related a {
  color: var(--olive-ui);
}
.notebook-main :is(.notebook-link, .notebook-back):focus-visible,
.about-page .ap-related a:focus-visible {
  outline-color: var(--olive-ui);
}
.about-page .ap-related a:hover { color: var(--ink); }
.home-work .home-work-all { color: var(--olive-light); }
.home-work .home-work-category,
.home-work .section-index { color: var(--section-label); }
.projects-page .pp-category { color: var(--section-label); }
.projects-page .pp-visit,
.projects-page .pp-project-link:hover .pp-project-title,
.projects-page .pp-project-link:focus-visible .pp-project-title,
.projects-page .pp-project-link:hover .pp-visit,
.projects-page .pp-project-link:focus-visible .pp-visit { color: var(--olive-ui); }
.projects-page .pp-project-link:focus-visible { outline-color: var(--olive-ui); }

/* Etiquetas editoriales: el tono se adapta al fondo de cada sección. */
.services-page .sp-hero .sp-eyebrow,
.services-page .sp-territory--creative .sp-eyebrow,
.services-page .sp-territory--ai .sp-eyebrow,
.services-page .sp-combination .sp-eyebrow,
.about-page .ap-eyebrow,
.notebook-main .notebook-eyebrow,
body.home .method .section-index,
body.home .method .method-item > p { color: var(--section-label); }
.services-page .sp-territory--marketing .sp-eyebrow,
.about-page .ap-direction .ap-eyebrow,
.about-page .ap-direction .ap-role { color: var(--section-label); }
.notebook-main .notebook-entry-quote,
.notebook-main .notebook-prose blockquote { border-left-color: var(--olive-ui); }

/* Etiquetas de sección: heredan el terracota de su contexto. */
.section-index,
.services-page .sp-eyebrow,
.services-page .sp-capabilities-label,
.services-page .sp-case-label,
.about-page .ap-eyebrow,
.about-page .ap-role,
.projects-page .pp-eyebrow,
.projects-page .pp-category,
.notebook-main .notebook-eyebrow,
.home-work .home-work-category,
.project-kicker,
.contact.contact--editorial .contact-eyebrow,
.contact--editorial .contact-label {
  color: var(--section-label);
}

/* El índice sobre verde recupera su color marfil original. */
.services-page .sp-entry > .sp-eyebrow,
.services-page .sp-entry .sp-entry-area {
  color: var(--cream);
}

/* El foco sobre fondos oscuros conserva contraste y un contorno completo. */
.site-footer :is(a, button):focus-visible,
.manifesto-carousel .carousel-controls button:focus-visible,
.manifesto-carousel .carousel-track:focus-visible,
.manifesto-carousel a:focus-visible {
  outline: 3px solid var(--olive-light);
  outline-offset: 4px;
}
.manifesto-carousel .carousel-progress span { background: var(--olive-light); }
.home-work .home-work-link:focus-visible,
.home-work .home-work-all:focus-visible,
.home-work.is-carousel .home-work-grid:focus-visible,
.home-work .home-work-controls button:focus-visible { outline-color: var(--olive-light); }

/* Ajustes puntuales de microtipografía, también en los tamaños móviles. */
.projects-page .pp-category,
.projects-page .pp-visit,
.about-page .ap-eyebrow,
.about-page .ap-role,
.about-page .ap-related a,
.services-page .sp-main .sp-eyebrow,
.services-page .sp-entry .sp-entry-area,
.manifesto-carousel .carousel-caption .wp-block-post-excerpt,
.manifesto-carousel .carousel-hint,
.site-footer .footer-links,
.site-footer .footer-links a { font-size: 10px; }
.manifesto-carousel .carousel-caption .wp-block-post-excerpt,
.manifesto-carousel .carousel-hint { letter-spacing: .13em; }

/* Fichas anteriores: escala de lectura y un regreso claro al índice. */
main.single-project .single-project-copy {
  padding: clamp(52px, 5.5vw, 80px) 4vw;
}
main.single-project .single-project-copy h1 {
  font: 400 clamp(52px, 6.4vw, 96px)/.98 Georgia, "Times New Roman", serif;
}
main.single-project .single-project-body { padding-block: 64px 40px; }
main.single-project .single-project-return {
  max-width: 860px;
  margin: 0 auto;
  padding-bottom: 64px;
}
main.single-project .project-back {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--olive-ui);
  font: 700 10px/1.5 Arial, Helvetica, sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
}
main.single-project .project-back:hover { color: var(--ink); }
main.single-project .project-back:focus-visible { outline-color: var(--olive-ui); }

@media (min-width: 901px) {
  .notebook-main .notebook-hero { padding: 64px 4vw 56px; }
  .notebook-main .notebook-hero h1 { font-size: clamp(62px, 7vw, 96px); }
}
@media (max-width: 900px) {
  .site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:not(.nav-contact) > a:is([aria-current="page"], [aria-current="true"]) {
    color: var(--olive-light);
  }
  .site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:not(.nav-contact) > a:is([aria-current="page"], [aria-current="true"])::after {
    bottom: 8px;
    background: var(--olive-light);
  }
  .site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .nav-contact > a {
    background: transparent;
    border-color: var(--olive-light);
    color: var(--olive-light);
  }
  .site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .nav-contact > a:is(:hover, :focus-visible, :active, [aria-current="page"], [aria-current="true"]) {
    background: var(--olive-ui);
    border-color: var(--olive-light);
    color: var(--paper);
  }
  .site-header .site-nav .wp-block-navigation__responsive-container-close {
    color: var(--olive-light);
  }
  .site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open :focus-visible {
    outline: 3px solid var(--olive-light);
    outline-offset: 3px;
  }
  main.single-project .single-project-copy { padding-inline: 22px; }
  main.single-project .single-project-return { max-width: min(860px, calc(100% - 44px)); }
}

/* 2.8.2: fichas de Servicios de la portada en el verde aprobado. */
body.home #servicios .service-territory,
body.home #servicios .service-territory[open],
body.home #servicios .service-territory:not([open]) > summary:hover {
  background: var(--olive-ui, #606a49);
  color: var(--paper);
}

/* 2.8.3: selección íntegra de Juan, proporciones propias y colores originales. */
.hero-visual img { filter: none; }
.manifesto-carousel { --carousel-image-height: clamp(340px, 38vw, 500px); }
.manifesto-carousel .carousel-track > li {
    flex: 0 0 min(calc(var(--carousel-image-height) * var(--slide-ratio, 1)), 84vw);
    min-width: 0;
}
.manifesto-carousel .carousel-image-wrap { height: var(--carousel-image-height); }
.manifesto-carousel .carousel-image-wrap img,
.manifesto-carousel .carousel-track > li:hover img {
    object-fit: contain;
    filter: none;
    transform: none;
}
.manifesto-carousel .carousel-caption h3 { overflow-wrap: anywhere; }
.manifesto-carousel .carousel-progress span { width: 6.25%; }

/* Retoque local 2026-09-25: la portada de Servicios llena su marco sin deformarse. */
.services-page .sp-cover {
    overflow: hidden;
    padding: 0;
    aspect-ratio: 3 / 4;
}
.services-page .sp-cover img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media (max-width: 600px) {
    .manifesto-carousel { --carousel-image-height: clamp(280px, 108vw, 420px); }
}


/* 2.8.6: portada elegida por Juan, completa y sin elementos superpuestos. */
#inicio .hero-visual {
    min-height: 0;
    height: auto;
    align-self: start;
    background: transparent;
    overflow: visible;
}
#inicio .hero-visual figure {
    width: 100%;
    height: auto;
    margin: 0;
}
#inicio .hero-visual img {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: 1122 / 1402;
    object-fit: contain;
    object-position: center;
    filter: none;
    transform: none;
}
#inicio .hero-visual::after,
#inicio .terracotta-block { display: none; }
#inicio .image-note {
    position: static;
    margin: 0;
    background: transparent;
    color: var(--ink);
    text-align: right;
}

/* Retoque local 2026-09-25: Contacto integra el formulario real como pieza editorial. */
.contact.contact--editorial {
    padding-top: 0;
}
.contact--editorial .contact-form-shell {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
    gap: 26px clamp(48px, 7vw, 112px);
    width: calc(100% + 8vw);
    margin: 0 -4vw 10px;
    padding: clamp(48px, 6vw, 88px) 4vw;
    border: 0;
    background: var(--ink);
    color: var(--cream);
}
.contact--editorial .contact-form-heading {
    align-content: start;
    gap: 18px;
    margin: 0;
}
.contact--editorial .contact-form-heading .contact-label { color: #d38a64; }
.contact--editorial .contact-form-heading h2 {
    max-width: 8ch;
    color: var(--cream);
    font-size: clamp(48px, 5.7vw, 88px);
    line-height: .93;
    letter-spacing: -.055em;
}
.contact--editorial .contact-form-heading > p:last-child {
    max-width: 34ch;
    margin: 0;
    color: rgba(242,232,220,.76);
    font: 18px/1.55 Georgia, "Times New Roman", serif;
}
.contact-form-embed { grid-column: 2; min-width: 0; }
.contact-form-preview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 22px;
}
.contact-form-preview-wide { grid-column: 1 / -1; }
.contact-form-shell .ff-el-group { margin: 0; }
.contact-form-shell .ff-el-input--label label,
.contact-form-shell .contact-form-consent-title {
    display: inline-block;
    margin: 0 0 8px;
    color: var(--cream);
    font: 700 11px/1.4 Arial, Helvetica, sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.contact-form-shell .ff-el-input--label label span,
.contact-form-shell .contact-form-consent-title span { color: #d38a64; }
.contact-form-shell :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    border-color: rgba(242,232,220,.35);
    background: var(--cream);
}
.contact-form-shell textarea { min-height: 126px; }
.contact-form-shell .ff-el-form-check-label { color: rgba(242,232,220,.84); }
.contact-form-shell .ff-el-form-check-label a { color: var(--cream); text-decoration: underline; text-underline-offset: 3px; }
.contact-form-shell .ff-btn-submit {
    min-width: 190px;
    border-color: var(--cream);
    background: var(--cream);
    color: var(--ink);
}
.contact-form-shell .ff-btn-submit:hover { border-color: #d38a64; background: #d38a64; color: var(--ink); }
.contact--editorial .contact-form-privacy {
    grid-column: 2;
    margin: -4px 0 0;
    color: rgba(242,232,220,.64);
}
.contact--editorial .contact-form-privacy a { color: var(--cream); }

@media (max-width: 900px) {
    .contact--editorial .contact-form-shell {
        grid-template-columns: 1fr;
        width: calc(100% + 44px);
        margin-inline: -22px;
        padding: 48px 22px;
    }
    .contact-form-embed,
    .contact--editorial .contact-form-privacy { grid-column: 1; }
    .contact--editorial .contact-form-heading h2 { max-width: 10ch; }
}

@media (max-width: 600px) {
    .contact-form-preview-grid { grid-template-columns: 1fr; }
    .contact-form-preview-wide { grid-column: 1; }
    .contact-form-shell .ff-btn-submit { width: 100%; }
}
