:root {
    --av-background: #ffffff;
    --av-bg: #ffffff;
    --av-text: #171717;
    --av-muted: #6b6b6b;
    --av-border: #e8e8e8;
    --av-accent: #6a5a77;
    --av-font-sans:
        "Helvetica Neue",
        Helvetica,
        Arial,
        system-ui,
        -apple-system,
        sans-serif;
    --av-container: 1440px;
    --av-gutter: clamp(16px, 3.35vw, 48px);
}

* {
    box-sizing: border-box;
}

/* =========================================================
   HOME DEFINITIVA / DIRECCIÓN EDITORIAL
========================================================= */

.home .site-header {
    border-color: rgba(23, 23, 23, .12);
}

.home .av-hero {
    min-height: calc(100svh - 92px);
    overflow: clip;
}

.home .av-hero-inner {
    min-height: calc(100svh - 92px);
    padding-block: clamp(30px, 4.5vw, 66px);
}

.home .av-hero-kicker,
.home .av-section-number {
    margin: 0;
    color: var(--av-muted);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.home .av-hero-title {
    width: min(100%, 1320px);
    margin-block: clamp(40px, 5vh, 80px);
    font-size: clamp(4.2rem, 7.3vw, 8rem);
    font-weight: 650;
    line-height: 1;
    letter-spacing: -.05em;
}

.home .av-hero-title span {
    color: var(--av-accent);
}

.av-hero-profile {
    display: grid;
    max-width: 340px;
    line-height: 1.35;
}

.av-hero-profile strong {
    margin-bottom: 4px;
    font-size: 1.05rem;
}

.av-hero-profile span {
    color: var(--av-muted);
    font-size: .9rem;
}

.home .av-hero-bottom {
    grid-template-columns: 1fr auto;
}

.home .av-selected-projects {
    padding-block: clamp(70px, 9.5vw, 145px);
    background: #f3f2ef;
}

.home .av-section-heading {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
}

.home .av-section-heading .av-section-number {
    margin-bottom: clamp(20px, 3vw, 38px);
}

.home .av-section-heading h2 {
    font-size: clamp(2.8rem, 4.6vw, 5rem);
}

.av-featured-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(55px, 7vw, 110px) clamp(22px, 3vw, 46px);
}

.av-featured-grid.av-featured-count-1 {
    grid-template-columns: 1fr;
}

.av-featured-count-3 .av-featured-card:first-child {
    grid-column: 1 / -1;
}

.av-featured-count-3 .av-featured-card:first-child .av-featured-image {
    aspect-ratio: 16 / 8.5;
}

.av-featured-count-4 .av-featured-card:nth-child(2),
.av-featured-count-4 .av-featured-card:nth-child(3) {
    transform: translateY(clamp(20px, 4vw, 60px));
}

.av-featured-card {
    min-width: 0;
}

.av-featured-image {
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #deddd9;
}

.av-featured-count-1 .av-featured-image {
    aspect-ratio: 16 / 8.25;
}

.av-featured-image img,
.av-featured-image .av-project-placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .65s cubic-bezier(.2, .7, .2, 1);
}

.av-featured-info {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 18px;
    align-items: start;
    padding-top: 20px;
}

.av-featured-info h3 {
    margin: 0 0 6px;
    font-size: clamp(1.8rem, 3vw, 3.25rem);
    font-weight: 600;
    line-height: .96;
    letter-spacing: -.05em;
}

.av-featured-info p,
.av-featured-year {
    margin: 0;
    color: var(--av-muted);
    font-size: .78rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.av-featured-arrow {
    font-size: 1.2rem;
    transition: transform .25s ease;
}

.av-featured-card:hover .av-featured-image img {
    transform: scale(1.025);
}

.av-featured-card:hover .av-featured-arrow {
    transform: translate(4px, -4px);
}

.home .av-specialties {
    padding-block: clamp(78px, 10.5vw, 155px);
    background: var(--av-bg);
}

.home .av-specialties-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.home .av-specialties-list > li {
    border-bottom: 1px solid var(--av-border);
}

.home .av-specialty {
    display: grid;
    grid-template-columns: minmax(45px, 80px) minmax(220px, .9fr) minmax(260px, 1fr) auto;
    gap: clamp(20px, 4vw, 70px);
    padding-block: clamp(34px, 5vw, 64px);
    border: 0;
    transition: padding .3s ease, color .3s ease;
}

.home .av-specialty h3 {
    margin: 0;
    font-size: clamp(2rem, 3.6vw, 4rem);
    font-weight: 600;
    line-height: .9;
    letter-spacing: -.06em;
}

.av-specialty-index,
.av-specialty-mark {
    color: var(--av-muted);
    font-size: .75rem;
}

.av-specialty-mark {
    font-size: 1.1rem;
    transition: transform .25s ease;
}

.home .av-specialty-content {
    align-self: center;
}

.home .av-specialty-content p {
    margin: 0;
}

.home .av-specialty:hover {
    padding-inline: 12px;
}

.home .av-specialty:hover .av-specialty-mark {
    transform: translate(4px, -4px);
}

.home .av-home-about {
    padding-block: clamp(78px, 10.5vw, 155px);
    background: #171717;
    color: #fff;
}

.home .av-home-about .av-section-number,
.home .av-home-about-copy p,
.home .av-home-about-copy h2 {
    color: #aaa;
}

.home .av-home-about-statement {
    max-width: 950px;
    margin: 0 0 clamp(42px, 6vw, 85px);
    color: #fff !important;
    font-size: clamp(2.8rem, 5.2vw, 5.5rem) !important;
    font-weight: 600;
    line-height: .9;
    letter-spacing: -.06em;
}

.home .av-home-about-copy h2 {
    margin-bottom: 18px;
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.home .av-home-about:not(.has-image) .av-home-about-copy {
    max-width: 1100px;
}

.home .av-category-list a {
    position: relative;
    margin-inline: calc(var(--av-gutter) * -1);
    padding-inline: var(--av-gutter);
    transition: background-color .25s ease, color .25s ease;
}

.home .av-home-categories {
    padding-block: clamp(78px, 9.5vw, 145px);
}

.home .av-category-list a:hover {
    background: var(--av-accent);
    color: #fff;
}

.home .av-category-list a:hover .av-category-index,
.home .av-category-list a:hover .av-category-description {
    color: currentColor;
}

.home .av-contact-cta {
    background: var(--av-accent);
}

.home .av-contact-cta h2 {
    font-size: clamp(3.5rem, 6vw, 6.5rem);
}

.home .av-contact-cta-inner {
    min-height: min(620px, 68vh);
    padding-block: clamp(78px, 9.5vw, 140px);
}

.home .site-footer {
    background: #171717;
    border-color: #343434;
    color: #aaa;
}

.home .site-footer-name,
.home .site-footer-social a,
.home .site-footer-menu a {
    color: #fff;
}

.home .site-footer-copyright {
    border-color: #343434;
}

.home .av-reveal-enter {
    animation: av-reveal-enter .65s cubic-bezier(.2, .7, .2, 1);
}

@keyframes av-reveal-enter {
    from {
        opacity: 0;
        transform: translateY(24px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@media (min-width: 1440px) {
    .av-featured-count-2 .av-featured-card:first-child {
        grid-column: span 1;
    }

    .av-featured-count-2 .av-featured-card:last-child {
        margin-top: clamp(70px, 7vw, 115px);
    }
}

@media (min-width: 1024px) and (max-width: 1439px) {
    .home .av-hero-title {
        font-size: clamp(4.8rem, 7.3vw, 6.6rem);
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .home .av-hero-title {
        font-size: clamp(4.2rem, 9vw, 5.75rem);
    }

    .home .av-specialty {
        grid-template-columns: 50px minmax(220px, .8fr) minmax(220px, 1fr) auto;
    }

    .home .av-home-about-inner {
        grid-template-columns: 90px minmax(220px, .7fr) 1fr;
    }
}

@media (max-width: 767px) {
    .home .av-hero,
    .home .av-hero-inner {
        min-height: calc(100svh - 72px);
    }

    .home .av-hero-inner {
        padding-block: 34px;
    }

    .home .av-hero-title {
        margin-block: 34px;
        font-size: clamp(3.2rem, 13vw, 4.8rem);
        line-height: 1;
        letter-spacing: -.04em;
    }

    .home .av-section-heading h2 {
        font-size: clamp(2.45rem, 10.5vw, 3.4rem);
    }

    .home .av-hero-bottom,
    .home .av-section-heading {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .home .av-section-heading > a {
        justify-self: start;
    }

    .av-featured-grid {
        grid-template-columns: 1fr;
    }

    .av-featured-count-3 .av-featured-card:first-child {
        grid-column: auto;
    }

    .av-featured-count-1 .av-featured-image,
    .av-featured-count-3 .av-featured-card:first-child .av-featured-image,
    .av-featured-image {
        aspect-ratio: 4 / 3;
    }

    .av-featured-count-4 .av-featured-card:nth-child(2),
    .av-featured-count-4 .av-featured-card:nth-child(3) {
        transform: none;
    }

    .home .av-specialty {
        grid-template-columns: 32px minmax(0, 1fr) auto;
        gap: 14px;
    }

    .home .av-specialty h3 {
        font-size: clamp(1.85rem, 8.5vw, 2.6rem);
    }

    .home .av-specialty-content {
        grid-column: 2 / -1;
    }

    .home .av-specialty:hover {
        padding-inline: 0;
    }

    .home .av-home-about-statement {
        font-size: clamp(2.5rem, 11vw, 3.65rem) !important;
    }

    .home .av-category-list a {
        margin-inline: -16px;
        padding-inline: 16px;
    }

    .home .av-contact-cta h2 {
        font-size: clamp(3rem, 13vw, 4.5rem);
    }

    .home .av-selected-projects,
    .home .av-specialties,
    .home .av-home-about,
    .home .av-home-categories {
        padding-block: 68px;
    }

    .home .av-contact-cta-inner {
        min-height: min(540px, 68vh);
        padding-block: 72px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }

    .av-featured-image img,
    .av-featured-arrow,
    .av-specialty,
    .av-specialty-mark,
    .av-category-list a,
    .av-category-arrow,
    .home .av-reveal-enter {
        transition: none;
        transform: none;
    }

    .home .av-reveal-enter {
        animation: none;
    }
}

@media print {
    .home .av-reveal-enter {
        animation: none;
    }
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--av-background);
    color: var(--av-text);

    font-family: var(--av-font-sans);

    line-height: 1.6;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
    text-decoration: none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

.site-container {
    width: min(100% - 48px, var(--av-container));
    margin-inline: auto;
}

.site-main {
    min-height: 70vh;
}


/* =========================================================
   HEADER
========================================================= */

.site-header {
    position: relative;
    z-index: 100;

    background: #ffffff;
    border-bottom: 1px solid var(--av-border);
}

.header-inner {
    min-height: 92px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 50px;
}

.site-brand {
    font-size: 1.2rem;
    font-weight: 750;
    letter-spacing: -0.045em;
}

.main-navigation ul {
    display: flex;
    align-items: center;

    gap: clamp(24px, 3vw, 42px);

    margin: 0;
    padding: 0;

    list-style: none;
}

.main-navigation a {
    position: relative;

    font-size: 0.94rem;
    font-weight: 500;
    letter-spacing: -0.015em;

    transition: opacity .2s ease;
}

.main-navigation a::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: -8px;

    width: 0;
    height: 1px;

    background: currentColor;

    transition: width .25s ease;
}

.main-navigation a:hover::after,
.main-navigation .current-menu-item > a::after {
    width: 100%;
}


/* =========================================================
   HOME / HERO
========================================================= */

.av-hero {
    min-height: calc(100vh - 92px);
}

.av-hero-inner {
    min-height: calc(100vh - 92px);

    display: grid;

    grid-template-rows:
        auto
        1fr
        auto;

    padding-top: clamp(60px, 7vw, 95px);
    padding-bottom: clamp(42px, 5vw, 70px);
}

.av-hero-kicker {
    font-size: 0.75rem;
    font-weight: 700;

    letter-spacing: 0.14em;
    text-transform: uppercase;

    color: var(--av-muted);
}

.av-hero-title {
    align-self: center;

    max-width: 1120px;

    margin: 35px 0;

    font-size: clamp(3.8rem, 7.4vw, 7.6rem);
    font-weight: 650;

    line-height: 0.91;
    letter-spacing: -0.062em;
}

.av-hero-title span {
    display: block;
    color: #737373;
}

.av-hero-bottom {
    display: grid;

    grid-template-columns:
        minmax(280px, 500px)
        auto;

    align-items: end;
    justify-content: space-between;

    gap: 80px;
}

.av-hero-text {
    margin: 0;

    max-width: 500px;

    font-size: clamp(1rem, 1.25vw, 1.18rem);
    line-height: 1.55;

    color: var(--av-muted);
}

.av-hero-link {
    display: inline-flex;
    align-items: center;

    gap: 16px;

    padding: 0 0 7px;

    border-bottom: 1px solid currentColor;

    font-size: 0.97rem;
    font-weight: 650;

    white-space: nowrap;

    transition:
        gap .2s ease,
        opacity .2s ease;
}

.av-hero-link:hover {
    gap: 22px;
    opacity: .55;
}


/* =========================================================
   CONTENIDO GENÉRICO
========================================================= */

.content-area {
    padding-top: 80px;
    padding-bottom: 80px;
}

.content-area h1 {
    margin-top: 0;
    margin-bottom: 32px;

    font-size: clamp(2.5rem, 5vw, 5rem);
    line-height: .95;
    letter-spacing: -0.05em;
}

.content-area p {
    max-width: 760px;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 768px) {

    .site-container {
        width: min(100% - 32px, var(--av-container));
    }

    .header-inner {
        min-height: 72px;
    }

    .main-navigation {
        display: none;
    }

    .av-hero {
        min-height: calc(100svh - 72px);
    }

    .av-hero-inner {
        min-height: calc(100svh - 72px);

        padding-top: 45px;
        padding-bottom: 36px;
    }

    .av-hero-title {
        align-self: center;

        margin: 32px 0;

        font-size: clamp(3.3rem, 15vw, 5rem);
        line-height: .92;
    }

    .av-hero-bottom {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .av-hero-link {
        width: max-content;
    }

    .content-area {
        padding-top: 48px;
        padding-bottom: 48px;
    }
}


/* =========================================================
   PROYECTO INDIVIDUAL / CASE STUDY
========================================================= */

.av-project-single {
    overflow: clip;
}

.av-project-hero {
    padding-top: clamp(60px, 8vw, 120px);
    padding-bottom: clamp(70px, 9vw, 140px);
}

.av-project-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    margin: 0 0 clamp(36px, 5vw, 70px);
    color: var(--av-muted);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.av-project-categories a {
    border-bottom: 1px solid transparent;
    transition: border-color .2s ease;
}

.av-project-categories a:hover {
    border-color: currentColor;
}

.av-project-hero h1 {
    max-width: 1240px;
    margin: 0 0 clamp(55px, 9vw, 130px);
    overflow-wrap: anywhere;
    font-size: clamp(4rem, 9.2vw, 9rem);
    font-weight: 650;
    line-height: .86;
    letter-spacing: -.07em;
}

.av-project-hero-bottom {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(520px, 1.15fr);
    gap: clamp(50px, 9vw, 150px);
    align-items: start;
}

.av-project-introduction p {
    max-width: 640px;
    margin: 0;
    color: var(--av-muted);
    font-size: clamp(1.2rem, 2vw, 1.65rem);
    line-height: 1.45;
    letter-spacing: -.025em;
}

.av-project-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px clamp(30px, 5vw, 70px);
    margin: 0;
}

.av-project-details div {
    min-width: 0;
    padding-top: 13px;
    border-top: 1px solid var(--av-border);
}

.av-project-details dt {
    margin-bottom: 9px;
    color: var(--av-muted);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.av-project-details dd {
    margin: 0;
    font-size: .98rem;
    line-height: 1.45;
}

.av-project-services dd {
    display: flex;
    flex-direction: column;
}

.av-project-cover {
    margin-top: 0;
    margin-bottom: clamp(90px, 13vw, 190px);
}

.av-project-cover img {
    width: 100%;
    height: auto;
}

.av-case-content {
    --av-case-gutter: max(24px, calc((100vw - var(--av-container)) / 2));
}

.av-case-content > :not(.alignwide):not(.alignfull) {
    width: min(calc(100% - (var(--av-case-gutter) * 2)), 760px);
    margin-inline: auto;
}

.av-case-content > .alignwide {
    width: min(calc(100% - (var(--av-case-gutter) * 2)), var(--av-container));
    margin-inline: auto;
}

.av-case-content > .alignfull {
    width: 100%;
    max-width: none;
}

.av-case-content img {
    width: 100%;
    height: auto;
}

.av-case-content .wp-block-image {
    margin-top: 0;
    margin-bottom: 0;
}

.av-case-section,
.av-case-text-image,
.av-case-two-images,
.av-case-panoramic,
.av-case-full-image {
    margin-top: clamp(72px, 9vw, 140px);
    margin-bottom: clamp(72px, 9vw, 140px);
}

.av-case-section > :not(.alignwide) {
    max-width: 760px;
}

.av-case-section h2,
.av-case-text-image h2 {
    max-width: min(100%, 1080px);
    margin: 0 0 clamp(26px, 4vw, 48px);
    font-size: clamp(2.7rem, 5.4vw, 5.75rem);
    font-weight: 600;
    line-height: .92;
    letter-spacing: -.055em;
}

.av-case-section > h2.wp-block-heading {
    width: 100%;
}

.av-case-section h3 {
    margin-bottom: 12px;
    font-size: clamp(1.45rem, 2.5vw, 2.3rem);
    line-height: 1.05;
    letter-spacing: -.035em;
}

.av-case-section p,
.av-case-text-image p {
    color: var(--av-muted);
    font-size: clamp(1rem, 1.25vw, 1.15rem);
}

.av-case-kicker {
    margin: 0 0 24px;
    color: var(--av-muted);
    font-size: .75rem !important;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.av-case-lead {
    font-size: clamp(1.2rem, 2vw, 1.65rem) !important;
    line-height: 1.45;
}

.av-case-two-images {
    gap: clamp(20px, 3vw, 44px);
}

.av-case-two-images .wp-block-column,
.av-case-gallery .wp-block-image {
    min-width: 0;
}

.av-case-text-image {
    gap: clamp(45px, 8vw, 120px);
}

.av-case-text-image .wp-block-media-text__content {
    padding: clamp(30px, 6vw, 90px);
}

.av-case-palette .wp-block-columns,
.av-case-type .wp-block-columns {
    gap: clamp(16px, 2.5vw, 36px);
}

.av-case-palette > .wp-block-columns,
.av-case-type > .wp-block-columns,
.av-case-applications > .av-case-gallery {
    width: 100%;
    max-width: none;
}

.av-case-palette .wp-block-column {
    display: flex;
    align-items: flex-end;
    min-height: clamp(220px, 28vw, 420px);
    padding: clamp(20px, 3vw, 36px);
}

.av-case-palette .wp-block-column p {
    margin: 0;
    color: inherit;
}

.av-case-type .wp-block-column {
    padding-top: 20px;
    border-top: 1px solid var(--av-border);
}

.av-case-type-sample {
    margin: 0 0 24px;
    color: var(--av-text) !important;
    font-size: clamp(5rem, 10vw, 10rem) !important;
    line-height: .85;
    letter-spacing: -.075em;
}

.av-case-type h2 {
    margin-bottom: clamp(32px, 4vw, 52px);
}

.av-case-type h3 {
    margin-top: 0;
    margin-bottom: 8px;
}

.av-case-type .wp-block-column > p:last-child {
    margin-top: 0;
    margin-bottom: 0;
}

.av-case-applications .av-case-gallery {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: clamp(18px, 2.5vw, 36px) !important;
    align-items: stretch;
    justify-content: center;
}

.av-case-applications .av-case-gallery .wp-block-image {
    box-sizing: border-box;
    display: flex !important;
    width: 100% !important;
    min-height: clamp(300px, 34vw, 520px);
    margin: 0 !important;
    padding: clamp(20px, 3vw, 42px);
    align-items: center;
    justify-content: center;
    background: #f2f2f0;
}

.av-case-applications .av-case-gallery .wp-block-image img {
    width: auto;
    max-width: 100%;
    max-height: 520px;
    object-fit: contain;
}

.av-case-media {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin-top: clamp(34px, 5vw, 72px);
}

.av-case-media-single {
    display: flex;
    min-height: clamp(360px, 50vw, 720px);
    padding: clamp(24px, 5vw, 72px);
    align-items: center;
    justify-content: center;
    background: #f2f2f0;
}

.av-case-media-single .wp-block-image,
.av-case-media-single .wp-block-image img {
    width: auto;
    max-width: 100%;
    max-height: 680px;
}

.av-case-media-compact .wp-block-image {
    max-width: min(100%, 820px);
}

.av-case-media-sequence {
    display: grid;
    gap: clamp(24px, 4vw, 64px);
}

.av-case-media-sequence .wp-block-image {
    display: flex;
    min-height: clamp(320px, 44vw, 640px);
    padding: clamp(24px, 4vw, 64px);
    align-items: center;
    justify-content: center;
    background: #f2f2f0;
}

.av-case-media-sequence .wp-block-image img {
    width: auto;
    max-width: 100%;
    max-height: 620px;
    object-fit: contain;
}

.av-case-section.av-case-social > .av-case-kicker,
.av-case-section.av-case-social > h2,
.av-case-section.av-case-social > p:not(.av-case-kicker) {
    width: 100%;
    max-width: 1080px;
}

.av-case-section.av-case-social > .wp-block-image.alignwide {
    width: 100%;
    max-width: none;
    margin-top: clamp(42px, 6vw, 82px);
}

.av-case-motion-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    width: min(calc(100vw - (2 * var(--av-case-gutter))), 1300px);
    max-width: 1300px;
    margin-top: clamp(42px, 6vw, 82px);
    margin-left: 50%;
    transform: translateX(-50%);
}

.av-case-motion-item {
    display: flex;
    min-width: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
    background: #f5f5f3;
}

.av-case-motion-item .wp-block-image {
    width: 100%;
    max-width: 406px;
    margin: 0;
}

.av-case-motion-item .wp-block-image img {
    display: block;
    width: 100%;
    max-width: 406px;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

@media (min-width: 1314px) {
    .av-case-motion-grid {
        grid-template-columns: repeat(3, minmax(0, 406px));
        justify-content: center;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .av-case-motion-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: center;
    }

    .av-case-motion-item .wp-block-image,
    .av-case-motion-item .wp-block-image img {
        max-width: 406px;
    }
}

@media (max-width: 767px) {
    .av-case-motion-grid {
        grid-template-columns: minmax(0, 1fr);
        justify-items: center;
    }

    .av-case-motion-item .wp-block-image,
    .av-case-motion-item .wp-block-image img {
        max-width: 406px;
    }
}

.av-case-results {
    box-sizing: border-box;
    margin-bottom: 0;
    padding: clamp(80px, 10vw, 150px) var(--av-case-gutter);
    background: var(--av-text);
    color: #ffffff;
}

.av-case-section.av-case-results > h2 {
    max-width: 1100px;
}

.av-case-results p,
.av-case-results .av-case-kicker {
    color: #b8b8b8;
}

.av-project-links {
    display: flex;
    flex-wrap: wrap;
    gap: 18px clamp(35px, 6vw, 90px);
    padding-top: clamp(65px, 9vw, 120px);
    padding-bottom: clamp(65px, 9vw, 120px);
    border-bottom: 1px solid var(--av-border);
}

.av-project-links a {
    border-bottom: 1px solid currentColor;
    font-size: clamp(1.2rem, 2vw, 1.8rem);
    font-weight: 600;
    letter-spacing: -.03em;
    transition: opacity .2s ease;
}

.av-project-links a:hover {
    opacity: .55;
}

.av-project-navigation {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px;
    padding-top: clamp(70px, 10vw, 140px);
    padding-bottom: clamp(80px, 11vw, 160px);
}

.av-project-navigation a {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.av-project-navigation-next {
    grid-column: 2;
    text-align: right;
}

.av-project-navigation a > span {
    color: var(--av-muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.av-project-navigation strong {
    font-size: clamp(1.8rem, 4vw, 4.5rem);
    font-weight: 600;
    line-height: .95;
    letter-spacing: -.05em;
    transition: opacity .2s ease;
}

.av-project-navigation a:hover strong {
    opacity: .5;
}

@media (max-width: 1023px) {
    .av-project-hero-bottom {
        grid-template-columns: minmax(240px, .8fr) minmax(400px, 1.2fr);
        gap: 50px;
    }

    .av-project-details {
        gap: 28px;
    }

    .av-case-text-image {
        gap: 35px;
    }

    .av-case-section h2,
    .av-case-text-image h2 {
        font-size: clamp(2.7rem, 7vw, 4.7rem);
    }
}

@media (max-width: 767px) {
    .av-project-hero {
        padding-top: 50px;
        padding-bottom: 75px;
    }

    .av-project-hero h1 {
        margin-bottom: 55px;
        font-size: clamp(3.4rem, 17vw, 5.5rem);
        line-height: .9;
    }

    .av-project-hero-bottom,
    .av-project-navigation {
        grid-template-columns: 1fr;
    }

    .av-project-hero-bottom {
        gap: 50px;
    }

    .av-project-details {
        grid-template-columns: 1fr;
    }

    .av-project-cover {
        width: 100%;
    }

    .av-case-content {
        --av-case-gutter: 16px;
    }

    .av-case-two-images,
    .av-case-palette .wp-block-columns,
    .av-case-type .wp-block-columns {
        flex-direction: column;
    }

    .av-case-text-image {
        grid-template-columns: 1fr !important;
    }

    .av-case-text-image .wp-block-media-text__media {
        grid-column: 1;
        grid-row: 1;
    }

    .av-case-text-image .wp-block-media-text__content {
        grid-column: 1;
        grid-row: 2;
        padding: 35px 0 0;
    }

    .av-case-palette .wp-block-column {
        min-height: 200px;
    }

    .av-case-applications .av-case-gallery {
        grid-template-columns: 1fr;
    }

    .av-case-applications .av-case-gallery .wp-block-image {
        min-height: min(100vw, 420px);
    }

    .av-project-navigation-next {
        grid-column: 1;
        text-align: left;
    }
}


/* =========================================================
   HOME / CATEGORÍAS
========================================================= */

.av-home-categories {
    padding: clamp(90px, 11vw, 170px) 0;
    border-top: 1px solid var(--av-border);
}

.av-simple-heading {
    grid-template-columns: minmax(120px, 180px) 1fr;
}

.av-category-list {
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--av-border);
    list-style: none;
}

.av-category-list li {
    border-bottom: 1px solid var(--av-border);
}

.av-category-list a {
    display: grid;
    grid-template-columns: minmax(50px, 100px) minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(20px, 4vw, 60px);
    padding: clamp(28px, 4vw, 52px) 0;
}

.av-category-index {
    color: var(--av-muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.av-category-copy {
    display: grid;
    grid-template-columns: minmax(220px, .8fr) minmax(240px, 1fr);
    align-items: center;
    gap: 35px;
}

.av-category-name {
    font-size: clamp(1.65rem, 3.2vw, 3.7rem);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.045em;
}

.av-category-description {
    max-width: 520px;
    color: var(--av-muted);
    font-size: .95rem;
}

.av-category-arrow {
    font-size: 1.2rem;
    transition: transform .2s ease;
}

.av-category-list a:hover .av-category-arrow {
    transform: translate(4px, -4px);
}


/* =========================================================
   HOME / SOBRE MÍ Y COLECCIÓN
========================================================= */

.av-home-about,
.av-home-collection {
    padding: clamp(90px, 12vw, 180px) 0;
    border-top: 1px solid var(--av-border);
}

.av-home-about {
    background: #f4f4f2;
}

.av-home-about-inner,
.av-home-collection-inner {
    display: grid;
    grid-template-columns: minmax(70px, 140px) minmax(280px, .9fr) minmax(320px, 1fr);
    align-items: start;
    gap: clamp(30px, 5vw, 80px);
}

.av-home-about:not(.has-image) .av-home-about-copy {
    grid-column: 2 / -1;
    max-width: 900px;
}

.av-home-about-image,
.av-home-collection-image {
    margin: 0;
    overflow: hidden;
    background: #e5e5e2;
}

.av-home-about-image {
    aspect-ratio: 4 / 5;
}

.av-home-collection-image {
    aspect-ratio: 4 / 3;
}

.av-home-about-image img,
.av-home-collection-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.av-home-about-copy h2,
.av-home-collection-copy h2 {
    margin: 0 0 clamp(28px, 4vw, 50px);
    font-size: clamp(3rem, 6vw, 6.8rem);
    font-weight: 600;
    line-height: .92;
    letter-spacing: -.055em;
}

.av-home-about-copy p,
.av-home-collection-copy p {
    max-width: 630px;
    margin: 0 0 35px;
    color: var(--av-muted);
    font-size: clamp(1rem, 1.25vw, 1.18rem);
}

.av-text-link {
    display: inline-flex;
    gap: 12px;
    padding-bottom: 6px;
    border-bottom: 1px solid currentColor;
    font-size: .92rem;
    font-weight: 650;
}

.av-home-collection-inner {
    grid-template-columns: minmax(70px, 140px) minmax(320px, 1fr) minmax(280px, .9fr);
}

.av-home-collection:not(.has-image) .av-home-collection-copy {
    grid-column: 2 / -1;
    max-width: 900px;
}


/* =========================================================
   HOME / CTA
========================================================= */

.av-contact-cta {
    background: var(--av-text);
    color: #ffffff;
}

.av-contact-cta-inner {
    display: grid;
    grid-template-columns: minmax(70px, 140px) minmax(0, 1fr) auto;
    align-items: end;
    gap: clamp(30px, 5vw, 80px);
    min-height: min(700px, 75vh);
    padding-top: clamp(90px, 11vw, 160px);
    padding-bottom: clamp(90px, 11vw, 160px);
}

.av-contact-cta .av-section-number {
    color: #a8a8a8;
}

.av-contact-cta h2 {
    max-width: 900px;
    margin: 0;
    font-size: clamp(3.4rem, 7.2vw, 8rem);
    font-weight: 600;
    line-height: .9;
    letter-spacing: -.06em;
}

.av-contact-cta a {
    display: inline-flex;
    gap: 14px;
    padding-bottom: 7px;
    border-bottom: 1px solid currentColor;
    font-weight: 650;
    white-space: nowrap;
}


/* =========================================================
   FOOTER
========================================================= */

.site-footer {
    padding: clamp(55px, 7vw, 90px) 0 35px;
    border-top: 1px solid var(--av-border);
    color: var(--av-muted);
}

.site-footer-inner {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) auto auto;
    gap: 40px clamp(30px, 6vw, 90px);
    align-items: start;
}

.site-footer p {
    margin: 0;
}

.site-footer-name {
    color: var(--av-text);
    font-size: 1.15rem;
    font-weight: 700;
}

.site-footer-social,
.site-footer-menu ul {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 28px;
}

.site-footer-social a,
.site-footer-menu a {
    color: var(--av-text);
    border-bottom: 1px solid transparent;
}

.site-footer-social a:hover,
.site-footer-menu a:hover {
    border-color: currentColor;
}

.site-footer-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer-copyright {
    grid-column: 1 / -1;
    padding-top: 45px;
    border-top: 1px solid var(--av-border);
    font-size: .85rem;
}


@media (max-width: 768px) {

    .av-simple-heading {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .av-category-list a {
        grid-template-columns: 35px minmax(0, 1fr) auto;
    }

    .av-category-copy {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .av-home-about-inner,
    .av-home-collection-inner {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .av-home-about:not(.has-image) .av-home-about-copy,
    .av-home-collection:not(.has-image) .av-home-collection-copy {
        grid-column: auto;
    }

    .av-home-about-image,
    .av-home-collection-image {
        max-width: 620px;
    }

    .av-home-collection-image {
        grid-row: 2;
    }

    .av-home-collection-copy {
        grid-row: 3;
    }

    .av-contact-cta-inner {
        grid-template-columns: 1fr;
        align-content: center;
        align-items: start;
        gap: 35px;
        min-height: 70svh;
    }

    .site-footer-inner {
        grid-template-columns: 1fr;
    }

    .site-footer-copyright {
        grid-column: auto;
        margin-top: 10px;
    }
}

/* =========================================================
   HOME / ESPECIALIDADES
========================================================= */

.av-specialties {
    padding-top: clamp(90px, 11vw, 170px);
    padding-bottom: clamp(100px, 12vw, 180px);
    border-top: 1px solid var(--av-border);
}

.av-section-heading.av-specialties-heading {
    grid-template-columns: minmax(120px, 180px) 1fr;
}

.av-specialties-list {
    border-top: 1px solid var(--av-border);
}

.av-specialty {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 42%);
    gap: clamp(40px, 7vw, 110px);
    align-items: center;
    padding: clamp(45px, 6vw, 85px) 0;
    border-bottom: 1px solid var(--av-border);
}

.av-specialty:not(.has-image) {
    grid-template-columns: minmax(0, 900px);
}

.av-specialty-copy h3 {
    margin: 0 0 clamp(20px, 3vw, 34px);
    font-size: clamp(2.4rem, 5.5vw, 6rem);
    font-weight: 600;
    line-height: .95;
    letter-spacing: -.055em;
}

.av-specialty-content {
    max-width: 680px;
    color: var(--av-muted);
    font-size: clamp(1rem, 1.25vw, 1.18rem);
}

.av-specialty-content > *:first-child {
    margin-top: 0;
}

.av-specialty-content > *:last-child {
    margin-bottom: 0;
}

.av-specialty-image {
    margin: 0;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #eeeeec;
}

.av-specialty-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* =========================================================
   PROYECTOS SELECCIONADOS
========================================================= */

.av-selected-projects {
    padding-top: clamp(90px, 10vw, 150px);
    padding-bottom: clamp(100px, 12vw, 180px);

    background: #f4f4f2;

    border-top: 1px solid var(--av-border);
}

.av-section-heading {
    display: grid;

    grid-template-columns:
        70px
        1fr
        auto;

    align-items: end;

    gap: 30px;

    margin-bottom: clamp(55px, 7vw, 90px);
}

.av-section-number {
    padding-bottom: 8px;

    font-size: 0.72rem;
    font-weight: 700;

    letter-spacing: 0.12em;

    color: var(--av-muted);
}

.av-section-heading h2 {
    margin: 0;

    max-width: 850px;

    font-size: clamp(3rem, 6vw, 6.8rem);
    line-height: .92;

    font-weight: 600;

    letter-spacing: -0.055em;
}

.av-section-heading > a {
    display: inline-flex;

    align-items: center;

    gap: 12px;

    padding-bottom: 6px;

    border-bottom: 1px solid currentColor;

    font-size: .92rem;
    font-weight: 600;

    white-space: nowrap;
}


/* GRID */

.av-project-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap:
        clamp(55px, 7vw, 100px)
        clamp(24px, 3vw, 44px);
}


/* CARD */

.av-project-card {
    min-width: 0;
}

.av-project-image {
    position: relative;

    display: block;

    overflow: hidden;

    aspect-ratio: 4 / 3;

    background: #e5e5e2;
}

.av-project-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform .7s cubic-bezier(.2,.7,.2,1);
}

.av-project-card:hover .av-project-image img {
    transform: scale(1.025);
}

.av-project-placeholder {
    width: 100%;
    height: 100%;

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: clamp(1.5rem, 3vw, 3rem);

    font-weight: 650;

    letter-spacing: -.05em;

    color: #989895;
}


/* INFO */

.av-project-info {
    display: flex;

    justify-content: space-between;
    align-items: flex-start;

    gap: 25px;

    padding-top: 20px;
}

.av-project-info h3 {
    margin: 0 0 5px;

    font-size: clamp(1.3rem, 2vw, 1.8rem);

    line-height: 1.1;

    letter-spacing: -.035em;
}

.av-project-client {
    margin: 0;

    font-size: .91rem;

    color: var(--av-muted);
}

.av-project-meta {
    display: flex;

    flex-direction: column;

    align-items: flex-end;

    gap: 2px;

    padding-top: 3px;

    font-size: .8rem;

    color: var(--av-muted);

    text-align: right;
}

.av-projects-empty {
    padding: 80px 0;

    border-top: 1px solid #d7d7d4;
    border-bottom: 1px solid #d7d7d4;

    color: var(--av-muted);
}

.av-projects-empty p {
    margin: 0;
}


/* =========================================================
   PROYECTOS / MOBILE
========================================================= */

@media (max-width: 768px) {

    .av-specialties {
        padding-top: 75px;
        padding-bottom: 90px;
    }

    .av-section-heading.av-specialties-heading {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .av-specialties-heading h2 {
        font-size: clamp(2.8rem, 13vw, 4.5rem);
    }

    .av-specialty,
    .av-specialty:not(.has-image) {
        grid-template-columns: 1fr;
        gap: 34px;
        padding: 48px 0;
    }

    .av-specialty-image {
        order: -1;
    }

    .av-selected-projects {
        padding-top: 75px;
        padding-bottom: 90px;
    }

    .av-section-heading {
        grid-template-columns:
            42px
            1fr;

        gap: 20px;

        margin-bottom: 55px;
    }

    .av-section-heading h2 {
        font-size: clamp(2.8rem, 13vw, 4.5rem);
    }

    .av-section-heading > a {
        grid-column: 2;

        width: max-content;

        margin-top: 10px;
    }

    .av-project-grid {
        grid-template-columns: 1fr;

        gap: 55px;
    }

    .av-project-info {
        gap: 15px;
    }
}


/* =========================================================
   PORTAFOLIO / ARCHIVO DE PROYECTOS
========================================================= */

.av-portfolio {
    min-height: calc(100vh - 92px);
    padding-top: clamp(70px, 8vw, 120px);
    padding-bottom: clamp(100px, 12vw, 180px);
}


/* CABECERA DEL PORTAFOLIO */

.av-portfolio-header {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(280px, 430px);

    grid-template-areas:
        "kicker kicker"
        "title title"
        ". description";

    gap: 0 60px;

    margin-bottom: clamp(60px, 8vw, 110px);
}


.av-portfolio-kicker {
    grid-area: kicker;

    margin-bottom: 35px;

    font-size: .75rem;
    font-weight: 700;

    letter-spacing: .14em;
    text-transform: uppercase;

    color: var(--av-muted);
}


.av-portfolio-header h1 {
    grid-area: title;

    max-width: 1100px;

    margin: 0 0 clamp(45px, 6vw, 80px);

    font-size: clamp(4rem, 8vw, 8rem);
    line-height: .9;

    font-weight: 650;

    letter-spacing: -.065em;
}


.av-portfolio-header h1 span {
    display: block;

    color: var(--av-accent);
}


.av-portfolio-header > p {
    grid-area: description;

    margin: 0;

    font-size: clamp(1rem, 1.3vw, 1.2rem);
    line-height: 1.55;

    color: var(--av-muted);
}


/* =========================================================
   FILTROS / CATEGORÍAS
========================================================= */

.av-portfolio-categories {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;

    padding-top: 24px;
    padding-bottom: 24px;

    margin-bottom: clamp(60px, 8vw, 100px);

    border-top: 1px solid var(--av-border);
    border-bottom: 1px solid var(--av-border);
}


.av-portfolio-categories a {
    display: inline-flex;
    align-items: center;

    min-height: 42px;

    padding: 8px 17px;

    border: 1px solid #d7d7d7;
    border-radius: 999px;

    font-size: .87rem;
    font-weight: 500;

    transition:
        background-color .2s ease,
        color .2s ease,
        border-color .2s ease;
}


.av-portfolio-categories a:hover {
    background: #171717;
    border-color: #171717;

    color: #ffffff;
}


.av-portfolio-categories a.is-active {
    background: #171717;
    border-color: #171717;

    color: #ffffff;
}


/* =========================================================
   GRID DEL PORTAFOLIO
========================================================= */

.av-portfolio-grid {
    margin-top: 0;
}


.av-portfolio-grid .av-project-info h2 {
    margin: 0 0 5px;

    font-size: clamp(1.3rem, 2vw, 1.8rem);
    line-height: 1.1;

    font-weight: 600;

    letter-spacing: -.035em;
}


/* =========================================================
   SIN PROYECTOS
========================================================= */

.av-portfolio-empty {
    min-height: 280px;

    display: flex;
    align-items: center;

    padding: 60px 0;

    border-top: 1px solid var(--av-border);
    border-bottom: 1px solid var(--av-border);
}


.av-portfolio-empty p {
    margin: 0;

    max-width: 550px;

    font-size: clamp(1.35rem, 2.5vw, 2.2rem);
    line-height: 1.25;

    letter-spacing: -.035em;

    color: var(--av-muted);
}


/* =========================================================
   PORTAFOLIO RESPONSIVE
========================================================= */

@media (max-width: 768px) {

    .av-portfolio {
        padding-top: 55px;
        padding-bottom: 90px;
    }


    .av-portfolio-header {
        display: block;

        margin-bottom: 55px;
    }


    .av-portfolio-kicker {
        margin-bottom: 30px;
    }


    .av-portfolio-header h1 {
        margin-bottom: 40px;

        font-size: clamp(3.6rem, 16vw, 5.5rem);
        line-height: .91;
    }


    .av-portfolio-header > p {
        max-width: 480px;
    }


    .av-portfolio-categories {
        gap: 8px;

        margin-bottom: 55px;

        padding-top: 18px;
        padding-bottom: 18px;
    }


    .av-portfolio-categories a {
        min-height: 38px;

        padding: 7px 14px;

        font-size: .81rem;
    }


    .av-portfolio-empty {
        min-height: 220px;
    }

}

/* AV KEEPPOINT MOTION GRID FINAL - START */

/*
 * Keepoint — animaciones Social Media.
 * A 1314px o más:
 * 3 x 406px + 2 x 24px = 1266px.
 */
.av-case-social > .av-case-motion-grid {
    display: grid !important;
    box-sizing: border-box !important;

    width: min(calc(100vw - 48px), 1266px) !important;
    max-width: 1266px !important;

    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 24px !important;

    position: relative !important;
    left: 50% !important;
    transform: translateX(-50%) !important;

    margin-top: clamp(42px, 6vw, 82px) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;

    padding: 0 !important;

    justify-content: center !important;
    align-items: start !important;
}

.av-case-motion-grid > .av-case-motion-item {
    box-sizing: border-box !important;

    width: 100% !important;
    max-width: 406px !important;
    min-width: 0 !important;

    padding: 0 !important;
    margin: 0 auto !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: #f5f5f3 !important;
}

.av-case-motion-item .wp-block-image {
    display: block !important;

    width: 100% !important;
    max-width: 406px !important;

    padding: 0 !important;
    margin: 0 auto !important;
}

.av-case-motion-item .wp-block-image img {
    display: block !important;

    width: 100% !important;
    max-width: 406px !important;
    height: auto !important;

    margin: 0 auto !important;

    aspect-ratio: 1 / 1 !important;
    object-fit: contain !important;
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1023px) {
    .av-case-social > .av-case-motion-grid {
        width: min(calc(100vw - 32px), 836px) !important;
        max-width: 836px !important;

        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

        gap: 24px !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .av-case-social > .av-case-motion-grid {
        width: min(calc(100vw - 32px), 406px) !important;
        max-width: 406px !important;

        grid-template-columns: minmax(0, 1fr) !important;

        gap: 20px !important;
    }

    .av-case-motion-grid > .av-case-motion-item,
    .av-case-motion-item .wp-block-image,
    .av-case-motion-item .wp-block-image img {
        max-width: 406px !important;
    }
}

/* AV KEEPPOINT MOTION GRID FINAL - END */

/* AV KEEPPOINT MOTION EXACT FINAL - START */

/* =========================================================
   KEEPPOINT MOTION GRID
   Desktop real: 3 x 406px + 2 x 24px = 1266px
   ========================================================= */

/* DESKTOP GRANDE */
@media (min-width: 1314px) {

    .av-case-motion-grid {
        display: grid !important;
        box-sizing: border-box !important;

        width: 1266px !important;
        max-width: calc(100vw - 48px) !important;

        grid-template-columns: repeat(3, 406px) !important;
        gap: 24px !important;

        justify-content: center !important;
        align-items: start !important;

        position: relative !important;
        left: 50% !important;
        transform: translateX(-50%) !important;

        padding: 0 !important;

        margin-top: clamp(42px, 6vw, 82px) !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .av-case-motion-grid > .av-case-motion-item {
        display: flex !important;
        box-sizing: border-box !important;

        width: 406px !important;
        min-width: 406px !important;
        max-width: 406px !important;

        height: auto !important;

        padding: 0 !important;
        margin: 0 !important;

        align-items: center !important;
        justify-content: center !important;

        background: #f5f5f3 !important;
    }

    .av-case-motion-item .wp-block-image {
        display: block !important;

        width: 406px !important;
        min-width: 406px !important;
        max-width: 406px !important;

        padding: 0 !important;
        margin: 0 !important;
    }

    .av-case-motion-item .wp-block-image img {
        display: block !important;

        width: 406px !important;
        min-width: 406px !important;
        max-width: 406px !important;
        height: 406px !important;

        padding: 0 !important;
        margin: 0 !important;

        object-fit: contain !important;
        aspect-ratio: 1 / 1 !important;
    }
}


/* DESKTOP INTERMEDIO */
@media (min-width: 1024px) and (max-width: 1313px) {

    .av-case-motion-grid {
        display: grid !important;

        width: calc(100vw - 48px) !important;
        max-width: 1266px !important;

        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 20px !important;

        position: relative !important;
        left: 50% !important;
        transform: translateX(-50%) !important;

        justify-content: center !important;

        padding: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .av-case-motion-grid > .av-case-motion-item {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 406px !important;

        padding: 0 !important;
        margin: 0 auto !important;
    }

    .av-case-motion-item .wp-block-image,
    .av-case-motion-item .wp-block-image img {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 406px !important;
        height: auto !important;

        margin: 0 auto !important;

        object-fit: contain !important;
        aspect-ratio: 1 / 1 !important;
    }
}


/* TABLET */
@media (min-width: 768px) and (max-width: 1023px) {

    .av-case-motion-grid {
        display: grid !important;

        width: calc(100vw - 32px) !important;
        max-width: 836px !important;

        grid-template-columns: repeat(2, minmax(0, 406px)) !important;
        gap: 24px !important;

        position: relative !important;
        left: 50% !important;
        transform: translateX(-50%) !important;

        justify-content: center !important;

        padding: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .av-case-motion-grid > .av-case-motion-item {
        width: 100% !important;
        max-width: 406px !important;

        padding: 0 !important;
        margin: 0 auto !important;
    }

    .av-case-motion-item .wp-block-image,
    .av-case-motion-item .wp-block-image img {
        width: 100% !important;
        max-width: 406px !important;
        height: auto !important;

        margin: 0 auto !important;

        object-fit: contain !important;
        aspect-ratio: 1 / 1 !important;
    }
}


/* MOBILE */
@media (max-width: 767px) {

    .av-case-motion-grid {
        display: grid !important;

        width: calc(100vw - 32px) !important;
        max-width: 406px !important;

        grid-template-columns: minmax(0, 1fr) !important;
        gap: 20px !important;

        position: relative !important;
        left: 50% !important;
        transform: translateX(-50%) !important;

        justify-items: center !important;

        padding: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .av-case-motion-grid > .av-case-motion-item {
        width: 100% !important;
        max-width: 406px !important;

        padding: 0 !important;
        margin: 0 auto !important;
    }

    .av-case-motion-item .wp-block-image,
    .av-case-motion-item .wp-block-image img {
        width: 100% !important;
        max-width: 406px !important;
        height: auto !important;

        margin: 0 auto !important;

        object-fit: contain !important;
        aspect-ratio: 1 / 1 !important;
    }
}

/* AV KEEPPOINT MOTION EXACT FINAL - END */

/* AV TWO IMAGE CASE STUDY FINAL - START */

/*
 * Case studies con exactamente dos imágenes.
 * Evita que wp-block-columns/flex genere overflow horizontal.
 */
.av-case-two-images {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;

    width: 100% !important;
    max-width: 100% !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    align-items: start !important;
}

.av-case-two-images > .wp-block-column {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
}

.av-case-two-images .wp-block-image {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
}

.av-case-two-images .wp-block-image img {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;

    object-fit: contain !important;
}

/* Móvil: una pieza debajo de la otra */
@media (max-width: 767px) {
    .av-case-two-images {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 20px !important;
    }
}

/* AV TWO IMAGE CASE STUDY FINAL - END */

/* AV TWO IMAGE ALIGN FINAL - START */

/*
 * Case studies con dos imágenes:
 * iguala visualmente la altura sin deformar las piezas.
 */
.av-case-two-images .wp-block-image {
    width: 100% !important;
    max-width: 100% !important;

    aspect-ratio: 3 / 2 !important;
    overflow: hidden !important;

    margin: 0 !important;
    padding: 0 !important;
}

.av-case-two-images .wp-block-image img {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
    object-position: center center !important;

    margin: 0 !important;
    padding: 0 !important;
}

/* AV TWO IMAGE ALIGN FINAL - END */

/* AV PROJECT LIGHTBOX FINAL - START */

/* Imagen detallada que puede ampliarse */
.av-project-zoomable {
    cursor: zoom-in !important;
    transition:
        opacity .2s ease,
        transform .2s ease;
}

.av-project-zoomable:hover {
    opacity: .9;
}

.av-project-zoomable:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 5px;
}

/* Overlay */
.av-project-lightbox {
    position: fixed;
    inset: 0;

    z-index: 999999;

    display: none;

    overflow-x: hidden;
    overflow-y: auto;

    padding:
        72px
        max(24px, calc((100vw - 1400px) / 2))
        90px;

    background: rgba(15, 15, 15, .96);

    cursor: zoom-out;
}

.av-project-lightbox.is-open {
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

body.av-lightbox-open {
    overflow: hidden !important;
}

/* Imagen ampliada */
.av-project-lightbox-image {
    display: block;

    width: auto;
    max-width: calc(100vw - 48px);
    height: auto;

    margin: 0 auto;

    background: #fff;

    box-shadow:
        0 20px 70px
        rgba(0, 0, 0, .42);

    cursor: default;
}

/* Botón cerrar */
.av-project-lightbox-close {
    position: fixed;

    top: 20px;
    right: 24px;

    z-index: 1000000;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    padding: 0;

    border: 0;
    border-radius: 50%;

    background: rgba(255, 255, 255, .96);
    color: #171717;

    font-family: Arial, sans-serif;
    font-size: 30px;
    font-weight: 400;
    line-height: 1;

    cursor: pointer;
}

.av-project-lightbox-close:hover {
    background: #fff;
}

.av-project-lightbox-close:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 4px;
}

/* Móvil */
@media (max-width: 767px) {

    .av-project-lightbox {
        padding:
            68px
            16px
            60px;
    }

    .av-project-lightbox-image {
        max-width: calc(100vw - 32px);
    }

    .av-project-lightbox-close {
        top: 14px;
        right: 14px;
    }
}

/* AV PROJECT LIGHTBOX FINAL - END */

/* AV HEADER LOGO FINAL - START */
.av-site-brand__logo {
    display: block;
    height: 58px;
    width: auto;
    max-width: none;
    object-fit: contain;
}

.site-title a,
.site-branding a,
.custom-logo-link,
.av-site-brand {
    display: inline-flex;
    align-items: center;
}

@media (max-width: 767px) {
    .av-site-brand__logo {
        height: 46px;
    }
}
/* AV HEADER LOGO FINAL - END */

/* AV UNICUM FLYER FINAL - START */

/*
 * Unicum — flyer editorial.
 * Se muestra a su ancho nativo máximo: 397px.
 */
.av-case-editorial img[src*="flyer-unicum_version-web"],
.av-case-applications img[src*="flyer-unicum_version-web"] {
    display: block !important;

    width: 397px !important;
    max-width: 100% !important;
    height: auto !important;

    margin-left: auto !important;
    margin-right: auto !important;

    cursor: zoom-in !important;
}

.av-case-editorial .wp-block-image:has(img[src*="flyer-unicum_version-web"]),
.av-case-applications .wp-block-image:has(img[src*="flyer-unicum_version-web"]) {
    width: 397px !important;
    max-width: 100% !important;

    margin-left: auto !important;
    margin-right: auto !important;
}

/* AV UNICUM FLYER FINAL - END */

/* AV BRAKOS FLYER FINAL - START */

/*
 * Brako's — volante editorial.
 *
 * Resultado validado visualmente:
 * - imagen nativa: 331x486
 * - tarjeta gris: 540px
 * - padding: 54px
 * - todo centrado
 */

.av-case-media:has(
    img[src*="volante_brakos-01"]
) {
    box-sizing: border-box !important;

    width: 540px !important;
    max-width: calc(100vw - 32px) !important;

    padding: 54px !important;

    margin-left: auto !important;
    margin-right: auto !important;
}

.av-case-media:has(
    img[src*="volante_brakos-01"]
) .wp-block-image {
    width: 331px !important;
    max-width: 100% !important;

    margin: 0 auto !important;
}

.av-case-media img[src*="volante_brakos-01"] {
    display: block !important;

    width: 331px !important;
    max-width: 100% !important;
    height: auto !important;

    margin: 0 auto !important;

    cursor: zoom-in !important;
}

@media (max-width: 600px) {

    .av-case-media:has(
        img[src*="volante_brakos-01"]
    ) {
        width: calc(100vw - 32px) !important;
        max-width: calc(100vw - 32px) !important;

        padding: 32px 20px !important;
    }

    .av-case-media:has(
        img[src*="volante_brakos-01"]
    ) .wp-block-image,

    .av-case-media img[src*="volante_brakos-01"] {
        width: min(331px, 100%) !important;
        max-width: 100% !important;
    }
}

/* AV BRAKOS FLYER FINAL - END */

/* AV HOME UNIFORM PROJECTS - START */

/*
 * Home — proyectos seleccionados.
 * Las cuatro tarjetas usan el mismo lienzo visual.
 */

#proyectos-seleccionados .av-home-uniform-card {
    display: flex !important;
    flex-direction: column !important;

    height: 100% !important;

    margin-top: 0 !important;
    top: auto !important;
    transform: none !important;

    align-self: start !important;
}

#proyectos-seleccionados .av-home-uniform-media {
    box-sizing: border-box !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;

    aspect-ratio: 4 / 3 !important;

    margin: 0 0 18px 0 !important;
    padding: 18px !important;

    overflow: hidden !important;

    background: #f0f0ee !important;
}

#proyectos-seleccionados .av-home-uniform-media img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    max-width: 100% !important;
    max-height: 100% !important;

    object-fit: contain !important;
    object-position: center center !important;

    margin: 0 !important;
}

/*
 * Max Valdes contiene fondo blanco dentro del propio raster.
 * Multiply permite integrarlo con el lienzo gris.
 */
#proyectos-seleccionados img.av-home-max-valdes {
    mix-blend-mode: multiply !important;
}

@media (max-width: 767px) {

    #proyectos-seleccionados .av-home-uniform-media {
        aspect-ratio: 4 / 3 !important;

        padding: 12px !important;
    }
}

/* AV HOME UNIFORM PROJECTS - END */

/* AV ABOUT PAGE FINAL - START */

.av-about {
    --av-about-accent: var(--av-accent);
    --av-about-soft: #f2f2f0;
    --av-about-muted: #6f6f6f;
    --av-about-line: #e7e7e7;
    --av-about-dark: #171717;
}

.av-about-container {
    width: min(calc(100% - 64px), 1440px);
    margin-inline: auto;
}


/* HERO */

.av-about-hero {
    padding: 96px 0 120px;
}

.av-about-kicker,
.av-about-number {
    margin: 0;
    color: var(--av-about-muted);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.av-about-kicker {
    margin-bottom: 48px;
}

.av-about-hero-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(280px, .65fr);
    gap: 80px;
    align-items: end;
}

.av-about-hero h1 {
    max-width: 1000px;
    margin: 0;
    font-size: clamp(64px, 8vw, 132px);
    line-height: .94;
    letter-spacing: -.06em;
}

.av-about-hero h1 span {
    display: block;
    margin-top: .12em;
    color: var(--av-about-accent);
}

.av-about-hero-intro {
    max-width: 430px;
    margin: 0 0 10px;
    color: var(--av-about-muted);
    font-size: 20px;
    line-height: 1.5;
}


/* BIO */

.av-about-bio {
    padding-bottom: 140px;
}

.av-about-bio-grid {
    display: grid;
    grid-template-columns:
        minmax(360px, .9fr)
        minmax(0, 1.1fr);
    gap: 90px;
    align-items: start;
}

.av-about-portrait {
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 680px;
    padding: 26px;

    background: var(--av-about-soft);
}

.av-about-portrait img {
    display: block;
    width: min(100%, 650px);
    height: auto;
}

.av-about-bio-copy {
    padding-top: 12px;
}

.av-about-bio-copy > .av-about-number {
    margin-bottom: 50px;
}

.av-about-bio-copy h2 {
    max-width: 760px;
    margin: 0 0 42px;

    font-size: clamp(44px, 5vw, 76px);
    line-height: .95;
    letter-spacing: -.05em;
}

.av-about-prose {
    max-width: 760px;
}

.av-about-prose p {
    margin: 0 0 25px;

    color: #444;

    font-size: 19px;
    line-height: 1.65;
}

.av-about-data {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    margin-top: 58px;

    border-top: 1px solid var(--av-about-line);
}

.av-about-data > div {
    padding: 21px 0 24px;
    border-bottom: 1px solid var(--av-about-line);
}

.av-about-data > div:nth-child(odd) {
    padding-right: 30px;
}

.av-about-data span {
    display: block;

    margin-bottom: 8px;

    color: var(--av-about-muted);

    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.av-about-data strong {
    font-size: 16px;
    font-weight: 500;
}


/* ENFOQUE */

.av-about-focus {
    padding: 110px 0 130px;
    border-top: 1px solid var(--av-about-line);
}

.av-about-focus-head {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;

    margin-bottom: 75px;
}

.av-about-focus-head h2 {
    margin: 0;

    font-size: clamp(46px, 5vw, 74px);
    line-height: .95;
    letter-spacing: -.05em;
}

.av-about-focus-head > p {
    max-width: 520px;

    margin: 8px 0 0 auto;

    color: var(--av-about-muted);

    font-size: 18px;
    line-height: 1.6;
}

.av-about-focus-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.av-about-focus-grid article {
    min-height: 300px;

    padding: 27px 27px 34px 0;

    border-top: 1px solid var(--av-about-line);
}

.av-about-focus-grid article + article {
    padding-left: 27px;
    border-left: 1px solid var(--av-about-line);
}

.av-about-focus-grid span {
    display: block;
    margin-bottom: 92px;

    color: var(--av-about-muted);
    font-size: 11px;
}

.av-about-focus-grid h3 {
    margin: 0 0 15px;

    font-size: 27px;
    line-height: 1.05;
    letter-spacing: -.035em;
}

.av-about-focus-grid p {
    max-width: 270px;
    margin: 0;

    color: var(--av-about-muted);

    font-size: 15px;
    line-height: 1.55;
}


/* PROCESO */

.av-about-process {
    background: var(--av-about-dark);
    color: #fff;
}

.av-about-process > .av-about-container {
    padding-top: 120px;
    padding-bottom: 125px;
}

.av-about-process-head {
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    gap: 70px;

    margin-bottom: 90px;
}

.av-about-process-head > p {
    margin: 0;

    color: #999;

    font-size: 11px;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.av-about-process-head h2 {
    max-width: 850px;
    margin: 0;

    font-size: clamp(48px, 5.5vw, 86px);
    line-height: .93;
    letter-spacing: -.05em;
}

.av-about-process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    border-top: 1px solid #414141;
}

.av-about-process-grid > div {
    min-height: 220px;
    padding: 32px 30px 20px 0;
}

.av-about-process-grid > div + div {
    padding-left: 30px;
    border-left: 1px solid #414141;
}

.av-about-process-grid span {
    display: block;

    margin-bottom: 85px;

    color: #888;
    font-size: 11px;
}

.av-about-process-grid strong {
    font-size: 23px;
    font-weight: 500;
}


/* ILUSTRACIÓN */

.av-about-personal {
    padding: 130px 0;
}

.av-about-personal-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 90px;
    align-items: center;
}

.av-about-personal-image {
    display: flex;
    justify-content: center;

    padding: 42px;

    background: var(--av-about-soft);
}

.av-about-personal-image img {
    display: block;
    width: min(100%, 620px);
    height: auto;
}

.av-about-personal-copy > .av-about-number {
    margin-bottom: 40px;
}

.av-about-personal-copy h2 {
    max-width: 760px;
    margin: 0 0 30px;

    font-size: clamp(44px, 5vw, 72px);
    line-height: .95;
    letter-spacing: -.05em;
}

.av-about-personal-copy > p:last-child {
    max-width: 610px;
    margin: 0;

    color: var(--av-about-muted);

    font-size: 18px;
    line-height: 1.65;
}


/* CTA */

.av-about-cta {
    background: var(--av-about-accent);
    color: #fff;
}

.av-about-cta-grid {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 60px;
    align-items: end;

    min-height: 390px;

    padding-top: 88px;
    padding-bottom: 88px;
}

.av-about-cta h2 {
    max-width: 900px;
    margin: 0;

    font-size: clamp(54px, 6vw, 92px);
    line-height: .88;
    letter-spacing: -.055em;
}

.av-about-cta-links {
    display: flex;
    gap: 28px;

    padding-bottom: 8px;
}

.av-about-cta-links a {
    padding-bottom: 6px;

    border-bottom: 1px solid rgb(255 255 255 / 80%);

    color: #fff;

    font-size: 14px;
}


/* FOOTER EN SOBRE MI */

body.page-template-page-sobre-mi .site-footer,
body.page-template-page-sobre-mi footer.site-footer {
    background: #171717;
    color: #fff;
}


/* RESPONSIVE */

@media (max-width: 900px) {

    .av-about-container {
        width: min(calc(100% - 36px), 1440px);
    }

    .av-about-hero {
        padding: 70px 0 90px;
    }

    .av-about-hero-grid,
    .av-about-bio-grid,
    .av-about-focus-head,
    .av-about-process-head,
    .av-about-personal-grid,
    .av-about-cta-grid {
        grid-template-columns: 1fr;
    }

    .av-about-hero-grid {
        gap: 36px;
    }

    .av-about-bio-grid {
        gap: 52px;
    }

    .av-about-portrait {
        min-height: auto;
        padding: 22px;
    }

    .av-about-focus-grid,
    .av-about-process-grid {
        grid-template-columns: 1fr 1fr;
    }

    .av-about-cta-links {
        margin-top: 34px;
    }
}


@media (max-width: 600px) {

    .av-about-hero h1 {
        font-size: 56px;
    }

    .av-about-data,
    .av-about-focus-grid,
    .av-about-process-grid {
        grid-template-columns: 1fr;
    }

    .av-about-data > div:nth-child(odd) {
        padding-right: 0;
    }

    .av-about-focus-grid article + article,
    .av-about-process-grid > div + div {
        padding-left: 0;
        border-left: 0;
    }

    .av-about-focus-grid span,
    .av-about-process-grid span {
        margin-bottom: 52px;
    }

    .av-about-cta-grid {
        min-height: 330px;
    }

    .av-about-cta-links {
        flex-wrap: wrap;
    }
}

/* AV ABOUT PAGE FINAL - END */

/* AV DECORATIVE NUMBERS REMOVED - START */

/*
 * Los números de orden 01/02/03/04 fueron retirados.
 * Ajustamos el ritmo de las tarjetas para no dejar el espacio
 * que anteriormente ocupaban.
 */

.av-about-focus-grid article {
    padding-top: 38px;
}

.av-about-focus-grid h3 {
    margin-top: 0;
}

.av-about-process-grid > div {
    display: flex;
    align-items: flex-end;
}

.av-about-process-grid strong {
    display: block;
    padding-bottom: 6px;
}

/* AV DECORATIVE NUMBERS REMOVED - END */

/* AV DECORATIVE HOME INDEXES HIDDEN - START */

/*
 * Numeración puramente decorativa del Home.
 *
 * Especialidades:
 * 01 Branding
 * 02 Social Media
 * 03 Web / Digital
 *
 * Categorías:
 * 01 Branding...
 * 02 Diseño Web...
 * etc.
 *
 * No afecta años ni números pertenecientes al contenido.
 */

.av-specialty-index,
.av-category-index {
    display: none !important;
}

/* AV DECORATIVE HOME INDEXES HIDDEN - END */

/* AV HOME LAYOUT POLISH FINAL - START */


/* =========================================================
   ESPECIALIDADES
   Flecha fija arriba a la derecha
========================================================= */

.home .av-specialty {
    position: relative;

    grid-template-columns:
        minmax(220px, .9fr)
        minmax(280px, 1.1fr);

    column-gap: clamp(40px, 6vw, 90px);

    padding-right: 58px;
}

.home .av-specialty h3 {
    grid-column: 1;
}

.home .av-specialty-content {
    grid-column: 2;
}

.home .av-specialty-mark {
    position: absolute;

    top: clamp(34px, 5vw, 64px);
    right: 0;

    margin: 0;

    line-height: 1;

    transform: none;
}

.home .av-specialty:hover .av-specialty-mark {
    transform: translate(4px, -4px);
}


/* =========================================================
   EXPLORAR PORTAFOLIO
   Título alineado a la izquierda
========================================================= */

.home .av-home-categories .av-section-heading {
    display: block;

    width: 100%;

    grid-template-columns: 1fr;

    text-align: left;
}

.home .av-home-categories .av-section-heading > * {
    width: 100%;

    grid-column: 1 / -1;

    justify-self: start;

    margin-left: 0;
    margin-right: 0;

    text-align: left;
}

.home .av-home-categories .av-section-heading h2 {
    width: 100%;

    margin: 24px 0 0;
    padding: 0;

    text-align: left;

    transform: none;
}


/* =========================================================
   CATEGORÍAS
   Texto a la izquierda + flecha estable a la derecha
========================================================= */

.home .av-category-list a {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto;

    align-items: center;

    column-gap: 32px;
}

.home .av-category-index {
    display: none !important;
}

.home .av-category-arrow {
    position: static;

    grid-column: 2;
    grid-row: 1;

    align-self: center;
    justify-self: end;

    margin: 0;

    transform: none;

    line-height: 1;
    white-space: nowrap;
}

.home .av-category-list a:hover .av-category-arrow {
    transform: translate(4px, -4px);
}


/* =========================================================
   CONTACTO
   Bloque más compacto
========================================================= */

.home .av-contact-cta-inner {
    position: relative;

    min-height: 430px;

    padding-top: 58px;
    padding-bottom: 58px;
}


/* Etiqueta CONTACTO arriba */

.home .av-contact-cta .av-section-number {
    position: absolute;

    top: 58px;
    left: 0;

    margin: 0;
}


/* CTA principal centrado */

.home .av-contact-cta h2 {
    position: absolute;

    top: 50%;
    left: 50%;

    width: min(720px, 58%);

    margin: 0;

    transform: translate(-50%, -50%);

    text-align: left;

    line-height: .9;
}


/* Hablemos a la derecha */

.home .av-contact-cta-inner > a {
    position: absolute;

    top: 50%;
    right: 0;

    margin: 0;

    transform: translateY(-50%);
}


/* =========================================================
   TABLET / MOBILE
========================================================= */

@media (max-width: 767px) {

    /* Especialidades */

    .home .av-specialty {
        grid-template-columns: 1fr;

        padding-right: 42px;
    }

    .home .av-specialty h3,
    .home .av-specialty-content {
        grid-column: 1;
    }

    .home .av-specialty-content {
        margin-top: 24px;
    }

    .home .av-specialty-mark {
        top: 36px;
        right: 0;
    }


    /* Explorar */

    .home .av-home-categories .av-section-heading h2 {
        margin-top: 18px;
    }

    .home .av-category-list a {
        grid-template-columns:
            minmax(0, 1fr)
            28px;

        column-gap: 18px;
    }


    /* Contacto */

    .home .av-contact-cta-inner {
        min-height: auto;

        padding-top: 54px;
        padding-bottom: 58px;

        display: grid;

        gap: 42px;
    }

    .home .av-contact-cta .av-section-number,
    .home .av-contact-cta h2,
    .home .av-contact-cta-inner > a {
        position: static;

        width: auto;

        transform: none;
    }

    .home .av-contact-cta h2 {
        margin-top: 26px;
    }

    .home .av-contact-cta-inner > a {
        justify-self: start;
    }
}


/* AV HOME LAYOUT POLISH FINAL - END */


/* AV GLOBAL TYPOGRAPHY SYSTEM - START */

button,
input,
textarea,
select {
    font-family: var(--av-font-sans);
}

.site-header,
.site-footer,
.av-portfolio,
.av-about-page,
.av-contact-cta,
.av-home-categories,
.av-specialties,
.av-selected-projects {
    font-family: var(--av-font-sans);
}

/* AV GLOBAL TYPOGRAPHY SYSTEM - END */

/* AV GLOBAL HERO ALIGNMENT - START */

/*
 * Ritmo vertical común para las páginas principales.
 * Inicio funciona como referencia visual.
 */

:root {
    --av-page-hero-top: clamp(48px, 4.5vw, 66px);
    --av-page-kicker-gap: clamp(36px, 5vh, 48px);
}


/* =========================================================
   ETIQUETAS SUPERIORES
========================================================= */

.home .av-hero-kicker,
.av-about-kicker,
.av-portfolio-kicker {
    margin-top: 0;
    margin-bottom: 0;

    font-size: .7rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .14em;
    text-transform: uppercase;

    color: var(--av-muted);
}


/* =========================================================
   INICIO
========================================================= */

.home .av-hero-inner {
    padding-top: var(--av-page-hero-top);
}

.home .av-hero-title {
    margin-top: var(--av-page-kicker-gap);
}


/* =========================================================
   SOBRE MI
========================================================= */

.av-about-hero {
    padding-top: var(--av-page-hero-top);
}

.av-about-kicker {
    margin-bottom: var(--av-page-kicker-gap);
}


/* =========================================================
   PROYECTOS
========================================================= */

.av-portfolio {
    padding-top: var(--av-page-hero-top);
}

.av-portfolio-kicker {
    margin-bottom: var(--av-page-kicker-gap);
}


/* =========================================================
   MOVIL
========================================================= */

@media (max-width: 767px) {

    :root {
        --av-page-hero-top: 42px;
        --av-page-kicker-gap: 32px;
    }

}

/* AV GLOBAL HERO ALIGNMENT - END */

/* AV STANDARD PAGES SYSTEM - START */


/* =========================================================
   SERVICIOS / CONTACTO / PAGINAS GENERICAS
========================================================= */

.av-standard-page,
.av-blog-page {
    min-height: calc(100vh - 92px);

    padding-top: var(--av-page-hero-top);
    padding-bottom: clamp(100px, 12vw, 180px);
}


.av-standard-kicker,
.av-blog-kicker {
    margin: 0 0 var(--av-page-kicker-gap);

    color: var(--av-muted);

    font-size: .7rem;
    font-weight: 700;
    line-height: 1.4;

    letter-spacing: .14em;
    text-transform: uppercase;
}


.av-standard-hero h1,
.av-blog-hero h1 {
    max-width: 1100px;

    margin: 0;

    color: var(--av-text);

    font-size: clamp(4rem, 8vw, 8rem);
    font-weight: 650;
    line-height: .94;

    letter-spacing: -.06em;
}


/* =========================================================
   CONTENIDO DE PAGINAS
========================================================= */

.av-standard-content,
.av-blog-intro {
    max-width: 820px;

    margin-top: clamp(70px, 8vw, 120px);

    font-size: clamp(1rem, 1.25vw, 1.2rem);
    line-height: 1.65;
}


.av-standard-content > :first-child,
.av-blog-intro > :first-child {
    margin-top: 0;
}


/* =========================================================
   BLOG
========================================================= */

.av-blog-list {
    margin-top: clamp(75px, 9vw, 130px);

    border-top: 1px solid var(--av-border);
}


.av-blog-card {
    display: grid;

    grid-template-columns:
        minmax(110px, .25fr)
        minmax(0, 1fr)
        auto;

    gap: clamp(25px, 4vw, 70px);

    align-items: start;

    padding: clamp(35px, 5vw, 70px) 0;

    border-bottom: 1px solid var(--av-border);
}


.av-blog-card-meta {
    color: var(--av-muted);

    font-size: .8rem;
}


.av-blog-card-copy h2 {
    margin: 0 0 18px;

    font-size: clamp(1.8rem, 3vw, 3.3rem);
    font-weight: 600;
    line-height: 1;

    letter-spacing: -.045em;
}


.av-blog-card-excerpt {
    max-width: 700px;

    color: var(--av-muted);

    line-height: 1.6;
}


.av-blog-card-excerpt p {
    margin: 0;
}


.av-blog-card-arrow {
    font-size: 1.5rem;
    line-height: 1;
}


.av-blog-empty {
    padding: 60px 0;

    color: var(--av-muted);
}


/* =========================================================
   MOVIL
========================================================= */

@media (max-width: 767px) {

    .av-standard-page,
    .av-blog-page {
        padding-bottom: 90px;
    }


    .av-standard-hero h1,
    .av-blog-hero h1 {
        font-size: clamp(
            3.6rem,
            16vw,
            5.5rem
        );

        line-height: .91;
    }


    .av-blog-card {
        grid-template-columns: 1fr auto;

        gap: 20px;
    }


    .av-blog-card-meta {
        grid-column: 1 / -1;
    }

}


/* AV STANDARD PAGES SYSTEM - END */

/* AV HOME HERO VERTICAL ALIGNMENT - START */

/*
 * El Home conserva la altura completa de pantalla,
 * pero el título comienza en la misma guía vertical
 * que Proyectos, Sobre mí y páginas estándar.
 */

.home .av-hero-inner {
    display: grid;

    grid-template-rows:
        auto
        auto
        1fr;

    align-content: stretch;
}

.home .av-hero-kicker {
    align-self: start;
}

.home .av-hero-title {
    align-self: start;

    margin-top: var(--av-page-kicker-gap);
    margin-bottom: 0;
}

.home .av-hero-bottom {
    align-self: end;
}


/* AV HOME HERO VERTICAL ALIGNMENT - END */


/* AV CONTACT PAGE - START */


/* =========================================================
   BASE
========================================================= */

.av-contact-page {
    padding-top: var(--av-page-hero-top);
    padding-bottom: 0;
}


/* =========================================================
   HERO
========================================================= */

.av-contact-kicker {
    margin: 0 0 var(--av-page-kicker-gap);

    color: var(--av-muted);

    font-size: .7rem;
    font-weight: 700;
    line-height: 1.4;

    letter-spacing: .14em;
    text-transform: uppercase;
}

.av-contact-hero {
    padding-bottom: clamp(90px, 10vw, 150px);
}

.av-contact-hero-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.55fr)
        minmax(280px, .55fr);

    gap: clamp(50px, 8vw, 140px);

    align-items: end;
}

.av-contact-title {
    margin: 0;

    font-size: clamp(4rem, 8vw, 8rem);
    font-weight: 650;
    line-height: .91;

    letter-spacing: -.065em;

    color: var(--av-text);
}

.av-contact-title span {
    display: block;
}

.av-contact-title-accent {
    color: var(--av-accent);
}

.av-contact-intro {
    max-width: 420px;

    margin: 0 0 .65em;

    color: var(--av-muted);

    font-size: clamp(1.05rem, 1.4vw, 1.3rem);
    line-height: 1.55;
}


/* =========================================================
   INFORMACION + FORMULARIO
========================================================= */

.av-contact-main {
    display: grid;

    grid-template-columns:
        minmax(250px, .62fr)
        minmax(0, 1.38fr);

    gap: clamp(60px, 9vw, 150px);

    padding:
        clamp(70px, 8vw, 115px)
        0
        clamp(100px, 11vw, 160px);

    border-top: 1px solid var(--av-border);
}

.av-contact-section-label {
    margin: 0 0 clamp(38px, 4vw, 60px);

    color: var(--av-muted);

    font-size: .7rem;
    font-weight: 700;
    line-height: 1.4;

    letter-spacing: .14em;
    text-transform: uppercase;
}

.av-contact-info-list {
    border-top: 1px solid var(--av-border);
}

.av-contact-info-row {
    display: grid;

    gap: 8px;

    padding: 25px 0;

    border-bottom: 1px solid var(--av-border);
}

.av-contact-info-row span {
    color: var(--av-muted);

    font-size: .78rem;
}

.av-contact-info-row strong,
.av-contact-info-row a {
    color: var(--av-text);

    font-size: clamp(1rem, 1.2vw, 1.15rem);
    font-weight: 500;

    text-decoration: none;
}

.av-contact-info-row a:hover {
    color: var(--av-accent);
}


/* =========================================================
   FORMULARIO
========================================================= */

.av-contact-form {
    width: 100%;
}

.av-contact-form-row {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: clamp(25px, 4vw, 55px);
}

.av-contact-form label {
    display: block;

    margin-bottom: clamp(34px, 4vw, 52px);
}

.av-contact-form label > span {
    display: block;

    margin-bottom: 12px;

    color: var(--av-muted);

    font-size: .75rem;
    font-weight: 600;

    letter-spacing: .04em;
}

.av-contact-form input,
.av-contact-form textarea {
    display: block;

    width: 100%;

    padding: 11px 0 15px;

    border: 0;
    border-bottom: 1px solid #bdbdbd;
    border-radius: 0;

    outline: none;

    background: transparent;

    color: var(--av-text);

    font: inherit;

    opacity: 1;
}

.av-contact-form textarea {
    min-height: 130px;

    resize: vertical;
}

.av-contact-form input:disabled,
.av-contact-form textarea:disabled {
    cursor: default;

    background: transparent;

    color: var(--av-text);

    -webkit-text-fill-color: var(--av-text);
}

.av-contact-submit-row {
    display: flex;

    justify-content: space-between;
    align-items: center;

    gap: 30px;

    margin-top: 5px;
}

.av-contact-submit-row button {
    display: inline-flex;

    align-items: center;

    gap: 35px;

    padding: 17px 23px;

    border: 1px solid var(--av-text);

    background: var(--av-text);

    color: #fff;

    font: inherit;
    font-size: .82rem;
    font-weight: 600;

    cursor: default;

    opacity: .4;
}

.av-contact-submit-row small {
    color: var(--av-muted);

    font-size: .72rem;
}


/* =========================================================
   CONTENIDO GUTENBERG OPCIONAL
========================================================= */

.av-contact-editor-content {
    max-width: 820px;

    margin-bottom: clamp(100px, 10vw, 150px);

    font-size: clamp(1rem, 1.25vw, 1.2rem);
    line-height: 1.65;
}


/* =========================================================
   MOVIL
========================================================= */

@media (max-width: 900px) {

    .av-contact-hero-grid,
    .av-contact-main {
        grid-template-columns: 1fr;
    }

    .av-contact-hero-grid {
        gap: 45px;
    }

    .av-contact-intro {
        max-width: 620px;
    }

    .av-contact-main {
        gap: 80px;
    }
}


@media (max-width: 767px) {

    .av-contact-title {
        font-size: clamp(
            3.6rem,
            16vw,
            5.5rem
        );

        line-height: .91;
    }

    .av-contact-hero {
        padding-bottom: 80px;
    }

    .av-contact-main {
        gap: 65px;

        padding:
            60px
            0
            90px;
    }

    .av-contact-form-row {
        grid-template-columns: 1fr;

        gap: 0;
    }

    .av-contact-submit-row {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* AV CONTACT PAGE - END */


/* AV CONTACT FORM LIVE - START */

.av-contact-form input:not(:disabled):focus,
.av-contact-form textarea:not(:disabled):focus {
    border-bottom-color: var(--av-text);
}

.av-contact-submit-row button:not(:disabled) {
    opacity: 1;
    cursor: pointer;

    transition:
        background-color .2s ease,
        color .2s ease;
}

.av-contact-submit-row button:not(:disabled):hover {
    background: var(--av-accent);
    border-color: var(--av-accent);
}

.av-contact-hp {
    position: absolute !important;

    left: -10000px !important;
    top: auto !important;

    width: 1px !important;
    height: 1px !important;

    overflow: hidden !important;
}

.av-contact-notice {
    margin: 0 0 35px;

    padding: 17px 20px;

    border: 1px solid var(--av-border);

    font-size: .85rem;
    line-height: 1.5;
}

.av-contact-notice--success {
    border-color: var(--av-accent);

    color: var(--av-text);
}

.av-contact-notice--error {
    border-color: #a0a0a0;

    color: var(--av-text);
}


/* AV CONTACT FORM LIVE - END */


/* AV CONTACT SUCCESS DIALOG - START */

.av-contact-dialog {
    width: min(
        560px,
        calc(100vw - 32px)
    );

    max-width: none;

    padding: 0;

    border: 0;

    background: transparent;

    color: var(--av-text);
}

.av-contact-dialog::backdrop {
    background: rgba(17, 17, 17, .58);

    backdrop-filter: blur(4px);
}

.av-contact-dialog-card {
    position: relative;

    padding:
        clamp(38px, 5vw, 62px)
        clamp(30px, 5vw, 56px);

    border: 1px solid var(--av-border);

    background: #fff;

    box-shadow:
        0 24px 80px rgba(0, 0, 0, .18);

    animation:
        avContactDialogIn
        .28s
        ease-out;
}

.av-contact-dialog-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 5px;

    background: var(--av-accent);
}

.av-contact-dialog-close {
    position: absolute;

    top: 18px;
    right: 20px;

    display: grid;

    width: 38px;
    height: 38px;

    padding: 0;

    place-items: center;

    border: 0;

    background: transparent;

    color: var(--av-muted);

    font-size: 1.7rem;
    font-weight: 300;
    line-height: 1;

    cursor: pointer;
}

.av-contact-dialog-close:hover {
    color: var(--av-text);
}

.av-contact-dialog-kicker {
    margin:
        0
        0
        28px;

    color: var(--av-muted);

    font-size: .68rem;
    font-weight: 700;

    letter-spacing: .14em;

    text-transform: uppercase;
}

.av-contact-dialog-card h2 {
    margin:
        0
        0
        25px;

    color: var(--av-text);

    font-size:
        clamp(
            2.5rem,
            5vw,
            4.2rem
        );

    font-weight: 600;
    line-height: .95;

    letter-spacing: -.055em;
}

.av-contact-dialog-text {
    max-width: 430px;

    margin:
        0
        0
        38px;

    color: var(--av-muted);

    font-size:
        clamp(
            .95rem,
            1.2vw,
            1.08rem
        );

    line-height: 1.6;
}

.av-contact-dialog-button {
    display: inline-flex;

    align-items: center;

    gap: 35px;

    padding:
        16px
        22px;

    border: 1px solid var(--av-text);

    background: var(--av-text);

    color: #fff;

    font: inherit;
    font-size: .8rem;
    font-weight: 600;

    cursor: pointer;
}

.av-contact-dialog-button:hover {
    border-color: var(--av-accent);

    background: var(--av-accent);
}

@keyframes avContactDialogIn {

    from {
        opacity: 0;

        transform:
            translateY(14px)
            scale(.98);
    }

    to {
        opacity: 1;

        transform:
            translateY(0)
            scale(1);
    }

}

@media (max-width: 767px) {

    .av-contact-dialog {
        width:
            calc(
                100vw - 24px
            );
    }

    .av-contact-dialog-card {
        padding:
            42px
            26px
            32px;
    }

}


/* AV CONTACT SUCCESS DIALOG - END */


/* AV CONTACT COUNTDOWN - START */

.av-contact-redirect {
    margin:
        0
        0
        34px;

    padding-top: 28px;

    border-top: 1px solid var(--av-border);
}

.av-contact-redirect > p {
    margin:
        0
        0
        14px;

    color: var(--av-muted);

    font-size: .82rem;
    line-height: 1.5;
}

.av-contact-countdown {
    display: flex;

    align-items: baseline;

    gap: 10px;

    margin-bottom: 18px;
}

.av-contact-countdown strong {
    color: var(--av-accent);

    font-size: clamp(
        2.8rem,
        6vw,
        4.5rem
    );

    font-weight: 600;
    line-height: .9;

    letter-spacing: -.05em;
}

.av-contact-countdown span {
    color: var(--av-text);

    font-size: .9rem;
    font-weight: 600;
}

.av-contact-countdown-progress {
    width: 100%;
    height: 3px;

    overflow: hidden;

    background: var(--av-border);
}

.av-contact-countdown-progress span {
    display: block;

    width: 100%;
    height: 100%;

    background: var(--av-accent);

    transform-origin: left center;

    animation:
        avContactCountdown
        5s
        linear
        forwards;
}

.av-contact-dialog-button {
    text-decoration: none;
}

@keyframes avContactCountdown {

    from {
        transform: scaleX(1);
    }

    to {
        transform: scaleX(0);
    }

}


/* AV CONTACT COUNTDOWN - END */


/* AV SPECIALTY MARKS HIDDEN - START */

.home .av-specialty-mark {
    display: none !important;
}

/* AV SPECIALTY MARKS HIDDEN - END */


/* AV BLOG REDESIGN - START */


/* =========================================================
   PAGE
========================================================= */

.av-blog-page {
    padding-top: var(--av-page-hero-top);
    padding-bottom: clamp(100px, 12vw, 180px);
}


/* =========================================================
   HERO
========================================================= */

.av-blog-kicker {
    margin: 0 0 var(--av-page-kicker-gap);

    color: var(--av-muted);

    font-size: .7rem;
    font-weight: 700;
    line-height: 1.4;

    letter-spacing: .14em;
    text-transform: uppercase;
}

.av-blog-hero {
    padding-bottom: clamp(90px, 10vw, 150px);
}

.av-blog-hero-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.5fr)
        minmax(280px, .5fr);

    gap: clamp(50px, 8vw, 140px);

    align-items: end;
}

.av-blog-title {
    margin: 0;

    color: var(--av-text);

    font-size: clamp(4rem, 8vw, 8rem);
    font-weight: 650;
    line-height: .91;

    letter-spacing: -.065em;
}

.av-blog-title span {
    display: block;
}

.av-blog-title-accent {
    color: var(--av-accent);
}

.av-blog-intro {
    max-width: 430px;

    margin: 0 0 .6em;

    color: var(--av-muted);

    font-size: clamp(1.05rem, 1.4vw, 1.3rem);
    line-height: 1.55;
}

.av-blog-intro p {
    margin: 0;
}


/* =========================================================
   LABELS
========================================================= */

.av-blog-section-label {
    margin: 0 0 clamp(38px, 4vw, 60px);

    color: var(--av-muted);

    font-size: .7rem;
    font-weight: 700;
    line-height: 1.4;

    letter-spacing: .14em;
    text-transform: uppercase;
}


/* =========================================================
   FEATURED ARTICLE
========================================================= */

.av-blog-featured {
    padding:
        clamp(70px, 8vw, 115px)
        0
        clamp(110px, 12vw, 175px);

    border-top: 1px solid var(--av-border);
}

.av-blog-featured-card {
    display: grid;

    grid-template-columns:
        minmax(0, 1.25fr)
        minmax(330px, .75fr);

    gap: clamp(45px, 7vw, 110px);

    align-items: end;
}

.av-blog-featured-image {
    display: block;

    overflow: hidden;

    aspect-ratio: 16 / 10;

    background: #eeeeec;

    text-decoration: none;
}

.av-blog-featured-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform .4s ease;
}

.av-blog-featured-image:hover img {
    transform: scale(1.02);
}

.av-blog-image-placeholder {
    display: flex;

    width: 100%;
    height: 100%;

    align-items: center;
    justify-content: center;

    color: #a1a1a1;

    font-size: .72rem;
    font-weight: 700;

    letter-spacing: .15em;
    text-transform: uppercase;
}

.av-blog-featured-meta {
    display: flex;

    gap: 9px;

    margin-bottom: 25px;

    color: var(--av-muted);

    font-size: .72rem;
    font-weight: 600;

    letter-spacing: .04em;

    text-transform: uppercase;
}

.av-blog-featured-copy h2 {
    margin: 0 0 28px;

    font-size: clamp(2.6rem, 5vw, 5.6rem);
    font-weight: 600;
    line-height: .94;

    letter-spacing: -.055em;
}

.av-blog-featured-copy h2 a {
    color: var(--av-text);

    text-decoration: none;
}

.av-blog-featured-excerpt {
    max-width: 590px;

    margin-bottom: 35px;

    color: var(--av-muted);

    font-size: clamp(1rem, 1.2vw, 1.14rem);
    line-height: 1.6;
}

.av-blog-featured-excerpt p {
    margin: 0;
}

.av-blog-read-link {
    display: inline-flex;

    gap: 35px;

    align-items: center;

    color: var(--av-text);

    font-size: .82rem;
    font-weight: 600;

    text-decoration: none;
}

.av-blog-read-link span {
    transition: transform .2s ease;
}

.av-blog-read-link:hover span {
    transform: translate(4px, -4px);
}


/* =========================================================
   LATEST
========================================================= */

.av-blog-latest {
    padding-top: clamp(70px, 8vw, 115px);

    border-top: 1px solid var(--av-border);
}

.av-blog-list {
    margin: 0;

    border-top: 1px solid var(--av-border);
}

.av-blog-card {
    display: grid;

    grid-template-columns:
        minmax(140px, .25fr)
        minmax(0, 1fr)
        auto;

    gap: clamp(25px, 4vw, 70px);

    align-items: start;

    padding: clamp(38px, 5vw, 70px) 0;

    border-bottom: 1px solid var(--av-border);
}

.av-blog-card-meta {
    display: grid;

    gap: 10px;

    color: var(--av-muted);

    font-size: .72rem;
    font-weight: 600;

    letter-spacing: .03em;

    text-transform: uppercase;
}

.av-blog-card-copy h2 {
    margin: 0 0 20px;

    font-size: clamp(2rem, 3.5vw, 4rem);
    font-weight: 600;
    line-height: .97;

    letter-spacing: -.05em;
}

.av-blog-card-copy h2 a {
    color: var(--av-text);

    text-decoration: none;
}

.av-blog-card-excerpt {
    max-width: 700px;

    color: var(--av-muted);

    font-size: 1rem;
    line-height: 1.6;
}

.av-blog-card-excerpt p {
    margin: 0;
}

.av-blog-card-arrow {
    color: var(--av-text);

    font-size: 1.25rem;

    text-decoration: none;

    transition: transform .2s ease;
}

.av-blog-card-arrow:hover {
    transform: translate(4px, -4px);
}


/* =========================================================
   EMPTY
========================================================= */

.av-blog-empty {
    padding:
        clamp(70px, 8vw, 115px)
        0;

    border-top: 1px solid var(--av-border);
}

.av-blog-empty > p:last-child {
    max-width: 700px;

    margin: 0;

    color: var(--av-muted);

    font-size: clamp(1.2rem, 2vw, 1.8rem);
    line-height: 1.5;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 900px) {

    .av-blog-hero-grid,
    .av-blog-featured-card {
        grid-template-columns: 1fr;
    }

    .av-blog-hero-grid {
        gap: 45px;
    }

    .av-blog-intro {
        max-width: 650px;
    }

    .av-blog-featured-card {
        gap: 45px;
    }

}


@media (max-width: 767px) {

    .av-blog-title {
        font-size: clamp(
            3.6rem,
            16vw,
            5.5rem
        );

        line-height: .91;
    }

    .av-blog-hero {
        padding-bottom: 80px;
    }

    .av-blog-featured {
        padding:
            60px
            0
            90px;
    }

    .av-blog-featured-image {
        aspect-ratio: 4 / 3;
    }

    .av-blog-latest {
        padding-top: 60px;
    }

    .av-blog-card {
        grid-template-columns:
            1fr
            auto;

        gap: 20px;
    }

    .av-blog-card-meta {
        grid-column: 1 / -1;

        display: flex;

        justify-content: space-between;
    }

}


/* AV BLOG REDESIGN - END */


/* AV BLOG ARTICLE - START */

.av-article-page {
    padding-top: var(--av-page-hero-top);
    padding-bottom: clamp(100px, 12vw, 180px);
}


/* HERO */

.av-article-hero {
    max-width: 1250px;

    padding-bottom: clamp(80px, 9vw, 135px);
}

.av-article-kicker {
    margin: 0 0 var(--av-page-kicker-gap);

    color: var(--av-muted);

    font-size: .7rem;
    font-weight: 700;
    line-height: 1.4;

    letter-spacing: .14em;
    text-transform: uppercase;
}

.av-article-hero h1 {
    max-width: 1200px;

    margin: 0;

    color: var(--av-text);

    font-size: clamp(4rem, 8vw, 8rem);
    font-weight: 650;
    line-height: .91;

    letter-spacing: -.065em;
}

.av-article-meta {
    display: flex;

    gap: 12px;

    margin-top: clamp(35px, 5vw, 60px);

    color: var(--av-muted);

    font-size: .76rem;
    font-weight: 600;

    letter-spacing: .04em;

    text-transform: uppercase;
}


/* FEATURED IMAGE */

.av-article-featured-image {
    width: 100%;

    margin:
        0
        0
        clamp(80px, 10vw, 150px);

    overflow: hidden;

    aspect-ratio: 16 / 8.5;

    background: #eeeeec;
}

.av-article-featured-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


/* CONTENT */

.av-article-layout {
    display: grid;

    grid-template-columns:
        minmax(150px, .28fr)
        minmax(0, 1fr);

    gap: clamp(50px, 8vw, 130px);

    max-width: 1180px;

    margin: 0 auto;
}

.av-article-aside {
    color: var(--av-muted);

    font-size: .72rem;
    font-weight: 600;

    letter-spacing: .06em;

    text-transform: uppercase;
}

.av-article-aside p {
    margin: 0 0 10px;
}

.av-article-content {
    max-width: 820px;

    color: var(--av-text);

    font-size: clamp(1.08rem, 1.35vw, 1.25rem);
    line-height: 1.72;
}

.av-article-content > :first-child {
    margin-top: 0;
}

.av-article-content p {
    margin:
        0
        0
        1.5em;
}

.av-article-content h2 {
    margin:
        clamp(60px, 7vw, 95px)
        0
        28px;

    font-size: clamp(2.2rem, 4vw, 4rem);
    font-weight: 600;
    line-height: .98;

    letter-spacing: -.045em;
}

.av-article-content h3 {
    margin:
        50px
        0
        22px;

    font-size: clamp(1.7rem, 2.7vw, 2.8rem);
    font-weight: 600;
    line-height: 1;

    letter-spacing: -.035em;
}

.av-article-content img {
    max-width: 100%;
    height: auto;
}

.av-article-content figure {
    margin:
        clamp(45px, 6vw, 75px)
        0;
}

.av-article-content blockquote {
    margin:
        clamp(55px, 7vw, 90px)
        0;

    padding:
        0
        0
        0
        28px;

    border-left: 3px solid var(--av-accent);

    color: var(--av-muted);

    font-size: clamp(1.5rem, 2.4vw, 2.3rem);
    line-height: 1.35;
}


/* FOOTER */

.av-article-footer {
    display: flex;

    justify-content: space-between;
    align-items: end;

    gap: 40px;

    margin-top: clamp(100px, 12vw, 170px);

    padding-top: clamp(45px, 5vw, 70px);

    border-top: 1px solid var(--av-border);
}

.av-article-footer p {
    margin: 0;
}

.av-article-footer-label {
    margin-bottom: 8px !important;

    color: var(--av-muted);

    font-size: .7rem;
    font-weight: 700;

    letter-spacing: .12em;

    text-transform: uppercase;
}

.av-article-footer a {
    display: inline-flex;

    gap: 32px;

    align-items: center;

    color: var(--av-text);

    font-size: .82rem;
    font-weight: 600;

    text-decoration: none;
}


/* MOBILE */

@media (max-width: 767px) {

    .av-article-hero h1 {
        font-size: clamp(
            3.6rem,
            16vw,
            5.5rem
        );

        line-height: .91;
    }

    .av-article-featured-image {
        aspect-ratio: 4 / 3;

        margin-bottom: 70px;
    }

    .av-article-layout {
        grid-template-columns: 1fr;

        gap: 45px;
    }

    .av-article-aside {
        display: flex;

        gap: 15px;
    }

    .av-article-footer {
        align-items: flex-start;
        flex-direction: column;
    }

}


/* AV BLOG ARTICLE - END */


/* AV BLOG EDITORIAL PLACEHOLDER - START */

.av-blog-image-placeholder,
.av-article-placeholder {
    background:
        linear-gradient(
            135deg,
            #f3f0f5 0%,
            #e8e2ec 100%
        );
}

.av-article-placeholder {
    display: flex;

    align-items: flex-end;

    padding: clamp(28px, 5vw, 65px);
}

.av-article-placeholder > div {
    display: grid;

    gap: 12px;
}

.av-article-placeholder span {
    color: var(--av-muted);

    font-size: .68rem;
    font-weight: 700;

    letter-spacing: .15em;

    text-transform: uppercase;
}

.av-article-placeholder strong {
    color: var(--av-accent);

    font-size: clamp(2.2rem, 5vw, 5.5rem);
    font-weight: 600;
    line-height: .95;

    letter-spacing: -.055em;
}

/* AV BLOG EDITORIAL PLACEHOLDER - END */


/* AV BLOG FEATURED TITLE SIZE - START */

.av-blog-featured-copy h2 {
    font-size: clamp(2.4rem, 4vw, 4.4rem);
    line-height: .97;
    letter-spacing: -.05em;
}

/* AV BLOG FEATURED TITLE SIZE - END */


/* AV BLOG ARTICLE TITLE SIZE - START */

.av-article-hero h1 {
    font-size: clamp(3.6rem, 6.5vw, 6.7rem);
    line-height: .93;
    letter-spacing: -.055em;
}

@media (max-width: 767px) {

    .av-article-hero h1 {
        font-size: clamp(3rem, 13vw, 4.8rem);
        line-height: .92;
    }

}

/* AV BLOG ARTICLE TITLE SIZE - END */


/* ==========================================================
   AV SERVICES PAGE - START
   ========================================================== */


/* HERO
   ---------------------------------------------------------- */

.av-services-hero {
    padding:
        var(--av-page-hero-top)
        0
        clamp(90px, 10vw, 150px);
}

.av-services-kicker,
.av-services-section-label,
.av-services-cta-label {
    margin: 0;
    font-size: .72rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.av-services-kicker {
    margin-bottom: var(--av-page-kicker-gap);
}

.av-services-hero-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.82fr)
        minmax(260px, .55fr);
    gap: clamp(48px, 7vw, 110px);
    align-items: end;
}

.av-services-title {
    margin: 0;
    max-width: 1200px;
    font-size: clamp(4.2rem, 6.7vw, 7.2rem);
    font-weight: 600;
    line-height: .88;
    letter-spacing: -.065em;
}

.av-services-title span {
    display: block;
}

.av-services-title-accent {
    color: var(--av-accent);
}

.av-services-intro {
    margin: 0 0 .55rem;
    max-width: 430px;
    font-size: clamp(1rem, 1.25vw, 1.25rem);
    line-height: 1.55;
    color: var(--av-muted);
}


/* SERVICES LIST
   ---------------------------------------------------------- */

.av-services-offer {
    border-top: 1px solid var(--av-border);
    padding:
        clamp(34px, 4vw, 56px)
        0
        clamp(80px, 8vw, 120px);
}

.av-services-section-head {
    margin-bottom: clamp(45px, 6vw, 80px);
}

.av-services-list {
    border-top: 1px solid var(--av-border);
}

.av-services-item {
    display: grid;
    grid-template-columns:
        72px
        minmax(260px, .85fr)
        minmax(280px, 1fr);
    gap: clamp(26px, 4vw, 72px);
    align-items: start;

    padding:
        clamp(42px, 5.5vw, 78px)
        0;

    border-bottom: 1px solid var(--av-border);
}

.av-services-item-index {
    padding-top: .65rem;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .12em;
    color: var(--av-muted);
}

.av-services-item-title {
    margin: 0;
    max-width: 650px;
    font-size: clamp(2.7rem, 4.7vw, 5.2rem);
    font-weight: 600;
    line-height: .92;
    letter-spacing: -.055em;
}

.av-services-item-copy {
    max-width: 560px;
    padding-top: .65rem;
    color: var(--av-muted);
    font-size: clamp(.98rem, 1.12vw, 1.12rem);
    line-height: 1.65;
}

.av-services-item-copy > :first-child {
    margin-top: 0;
}

.av-services-item-copy > :last-child {
    margin-bottom: 0;
}

.av-services-item-copy p {
    margin: 0 0 1rem;
}

.av-services-item-copy ul,
.av-services-item-copy ol {
    margin:
        1.15rem
        0
        0;
    padding-left: 1.2em;
}

.av-services-item-copy li + li {
    margin-top: .4rem;
}


/* PROCESS
   ---------------------------------------------------------- */

.av-services-process {
    padding:
        clamp(70px, 8vw, 120px)
        0
        clamp(80px, 9vw, 140px);

    background: #f4f4f2;
}

.av-services-process-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(280px, .65fr);
    gap: clamp(50px, 8vw, 130px);
    align-items: end;
}

.av-services-process-heading h2 {
    margin:
        clamp(34px, 4.5vw, 65px)
        0
        0;

    max-width: 950px;

    font-size: clamp(3.2rem, 6vw, 6.5rem);
    font-weight: 600;
    line-height: .9;
    letter-spacing: -.06em;
}

.av-services-process-copy {
    max-width: 470px;
    padding-bottom: .65rem;
}

.av-services-process-copy p {
    margin: 0;
    color: var(--av-muted);
    font-size: clamp(1rem, 1.2vw, 1.18rem);
    line-height: 1.6;
}

.av-services-process-steps {
    list-style: none;
    margin:
        clamp(70px, 9vw, 125px)
        0
        0;
    padding: 0;

    display: grid;
    grid-template-columns: repeat(4, 1fr);

    border-top: 1px solid rgba(23, 23, 23, .18);
}

.av-services-process-steps li {
    min-height: clamp(165px, 15vw, 230px);

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    padding:
        20px
        clamp(16px, 2vw, 28px)
        25px
        0;

    border-right: 1px solid rgba(23, 23, 23, .18);
}

.av-services-process-steps li:not(:first-child) {
    padding-left: clamp(16px, 2vw, 28px);
}

.av-services-process-steps li:last-child {
    border-right: 0;
}

.av-services-process-number {
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .12em;
    color: var(--av-muted);
}

.av-services-process-name {
    max-width: 260px;

    font-size: clamp(1.7rem, 2.6vw, 3rem);
    font-weight: 600;
    line-height: .95;
    letter-spacing: -.045em;
}


/* CTA
   ---------------------------------------------------------- */

.av-services-cta {
    padding:
        clamp(55px, 6vw, 85px)
        0
        clamp(75px, 8vw, 125px);

    background: var(--av-accent);
    color: #fff;
}

.av-services-cta-label {
    color: rgba(255, 255, 255, .7);
}

.av-services-cta-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.5fr)
        auto;
    gap: 45px;
    align-items: end;

    margin-top: clamp(50px, 7vw, 100px);
}

.av-services-cta h2 {
    margin: 0;
    max-width: 1050px;

    font-size: clamp(4rem, 7vw, 7.6rem);
    font-weight: 600;
    line-height: .88;
    letter-spacing: -.065em;
}

.av-services-cta h2 span {
    display: block;
}

.av-services-cta-link {
    display: inline-flex;
    align-items: center;
    gap: 14px;

    padding-bottom: 6px;

    border-bottom: 1px solid rgba(255, 255, 255, .65);

    color: #fff;
    text-decoration: none;

    font-size: clamp(1rem, 1.2vw, 1.18rem);
    font-weight: 500;
}

.av-services-cta-link span {
    transition: transform .2s ease;
}

.av-services-cta-link:hover span,
.av-services-cta-link:focus-visible span {
    transform: translate(4px, -4px);
}


/* TABLET
   ---------------------------------------------------------- */

@media (max-width: 1024px) {

    .av-services-hero-grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .av-services-intro {
        max-width: 600px;
    }

    .av-services-item {
        grid-template-columns:
            54px
            minmax(220px, .8fr)
            minmax(260px, 1fr);

        gap: 28px;
    }

    .av-services-process-grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .av-services-process-copy {
        max-width: 620px;
    }

    .av-services-process-steps {
        grid-template-columns: repeat(2, 1fr);
    }

    .av-services-process-steps li:nth-child(2) {
        border-right: 0;
    }

    .av-services-process-steps li:nth-child(n+3) {
        border-top: 1px solid rgba(23, 23, 23, .18);
    }

    .av-services-cta-grid {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .av-services-cta-link {
        justify-self: start;
    }
}


/* MOBILE
   ---------------------------------------------------------- */

@media (max-width: 767px) {

    .av-services-hero {
        padding:
            var(--av-page-hero-top)
            0
            72px;
    }

    .av-services-kicker {
        margin-bottom: var(--av-page-kicker-gap);
    }

    .av-services-title {
        font-size: clamp(3.2rem, 15vw, 5.1rem);
        line-height: .9;
        letter-spacing: -.055em;
    }

    .av-services-hero-grid {
        gap: 34px;
    }

    .av-services-offer {
        padding:
            30px
            0
            90px;
    }

    .av-services-section-head {
        margin-bottom: 40px;
    }

    .av-services-item {
        grid-template-columns: 1fr;
        gap: 18px;

        padding:
            38px
            0;
    }

    .av-services-item-index {
        padding: 0;
    }

    .av-services-item-title {
        font-size: clamp(2.5rem, 12vw, 4rem);
    }

    .av-services-item-copy {
        padding-top: 2px;
    }

    .av-services-process {
        padding:
            65px
            0
            80px;
    }

    .av-services-process-heading h2 {
        margin-top: 35px;

        font-size: clamp(2.8rem, 13vw, 4.6rem);
        line-height: .92;
    }

    .av-services-process-steps {
        grid-template-columns: 1fr;
        margin-top: 65px;
    }

    .av-services-process-steps li,
    .av-services-process-steps li:not(:first-child) {
        min-height: 130px;

        padding:
            18px
            0
            20px;

        border-right: 0;
        border-top: 1px solid rgba(23, 23, 23, .18);
    }

    .av-services-process-steps li:first-child {
        border-top: 0;
    }

    .av-services-process-name {
        font-size: clamp(1.8rem, 9vw, 2.7rem);
    }

    .av-services-cta {
        padding:
            50px
            0
            75px;
    }

    .av-services-cta-grid {
        gap: 42px;
        margin-top: 45px;
    }

    .av-services-cta h2 {
        font-size: clamp(3.1rem, 14vw, 5rem);
        line-height: .9;
        letter-spacing: -.055em;
    }

}


/* ==========================================================
   AV SERVICES PAGE - END
   ========================================================== */


/* AV SERVICES NUMBERS HIDDEN - START */

/* Servicios */
.av-services-item-index {
    display: none !important;
}

.av-services-item {
    grid-template-columns:
        minmax(260px, .85fr)
        minmax(280px, 1fr);
}

/* Proceso */
.av-services-process-number {
    display: none !important;
}

.av-services-process-steps li {
    justify-content: flex-end;
}

/* Tablet */
@media (max-width: 1024px) {

    .av-services-item {
        grid-template-columns:
            minmax(220px, .8fr)
            minmax(260px, 1fr);
    }

}

/* Móvil */
@media (max-width: 767px) {

    .av-services-item {
        grid-template-columns: 1fr;
    }

}

/* AV SERVICES NUMBERS HIDDEN - END */

/* AV ABOUT PROCESS COMPACT - START */

/*
 * Reduce el espacio vertical de "Forma de trabajo"
 * manteniendo intacta su composición editorial.
 */
.av-about-process > .av-about-container {
    padding-top: 62px;
    padding-bottom: 55px;
}

.av-about-process-head {
    margin-bottom: 38px;
}

.av-about-process-grid > div {
    min-height: 125px;
    padding-top: 20px;
    padding-bottom: 12px;
}

/* AV ABOUT PROCESS COMPACT - END */
