:root {
    --navy-950: #001839;
    --navy-900: #041b38;
    --navy-800: #081e4a;
    --coral: #f1443d;
    --white: #fff;
    --content-width: 1660px;
    --page-gutter: clamp(1.25rem, 6.77vw, 8.125rem);
    --header-height: clamp(5.5rem, 8vw, 9rem);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--white);
    background: var(--navy-950);
    font-family: "Nexa Light", "Nexa", "Avenir Next", Avenir, Montserrat, system-ui, sans-serif;
    line-height: 1.45;
    text-rendering: optimizeLegibility;
}

body.menu-open {
    overflow: hidden;
}

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

a {
    color: inherit;
}

:where(a, button):focus-visible {
    outline: 3px solid var(--coral);
    outline-offset: 4px;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

.shell {
    width: min(calc(100% - (2 * var(--page-gutter))), var(--content-width));
    margin-inline: auto;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: fixed;
    z-index: 100;
    top: 1rem;
    left: 1rem;
    padding: .75rem 1rem;
    color: var(--navy-950);
    background: var(--white);
    transform: translateY(-200%);
}

.skip-link:focus {
    transform: translateY(0);
}

.site-header {
    position: fixed;
    z-index: 50;
    inset: 0 0 auto;
    isolation: isolate;
}

.site-header__backdrop {
    position: absolute;
    z-index: -1;
    inset: 0;
    overflow: hidden;
    background: var(--navy-950) url("../images/hero-bg.webp") center / cover no-repeat;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .08);
    opacity: 1;
    transition: opacity 220ms ease, box-shadow 220ms ease;
}

.page-home:not(.header-scrolled):not(.menu-open) .site-header__backdrop {
    box-shadow: none;
    opacity: 0;
}

.site-header__media {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .8;
    pointer-events: none;
}

.site-header__inner {
    position: relative;
    z-index: 2;
    display: flex;
    width: min(calc(100% - (2 * var(--page-gutter))), var(--content-width));
    min-height: var(--header-height);
    margin-inline: auto;
    align-items: center;
    justify-content: space-between;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 1.25rem;
}

.brand__symbol {
    width: clamp(2.5rem, 3.45vw, 4.125rem);
    height: auto;
}

.brand__wordmark {
    width: clamp(7.25rem, 9.75vw, 11.7rem);
    height: auto;
}

.menu-toggle {
    position: relative;
    z-index: 3;
    display: grid;
    width: clamp(3.2rem, 3.8vw, 4.56rem);
    height: 2.6rem;
    padding: 0;
    place-content: center;
    gap: .75rem;
    border: 0;
    color: var(--coral);
    background: transparent;
    cursor: pointer;
}

.menu-toggle__line {
    display: block;
    width: clamp(2.75rem, 3.8vw, 4.56rem);
    height: 4px;
    background: currentColor;
    transition: transform 240ms ease, color 240ms ease;
}

.menu-open .menu-toggle {
    color: var(--white);
}

.menu-open .menu-toggle__line:first-child {
    transform: translateY(8px) rotate(45deg);
}

.menu-open .menu-toggle__line:nth-child(2) {
    transform: translateY(-8px) rotate(-45deg);
}

.menu-panel {
    position: fixed;
    z-index: 1;
    top: 0;
    right: 0;
    display: flex;
    width: min(48vw, 768px);
    min-height: min(760px, 100dvh);
    padding: clamp(8rem, 12vw, 12rem) clamp(3rem, 6vw, 7rem) clamp(2.5rem, 4vw, 5rem);
    flex-direction: column;
    justify-content: space-between;
    background: var(--coral);
    transform: translateX(100%);
    visibility: hidden;
    transition: transform 320ms cubic-bezier(.76, 0, .24, 1), visibility 320ms;
}

.menu-open .menu-panel {
    transform: translateX(0);
    visibility: visible;
}

.menu-panel__list {
    display: grid;
    padding: 0;
    margin: 0;
    gap: .35rem;
    list-style: none;
}

.menu-panel__list a {
    display: inline-block;
    font-size: clamp(1.7rem, 3vw, 3.25rem);
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
    transition: transform 160ms ease;
}

.menu-panel__list a:hover,
.menu-panel__list a:focus-visible {
    transform: translateX(.5rem);
}

.menu-panel__list a[aria-current="page"]::before {
    margin-right: .45em;
    content: "›";
}

.menu-panel__signature {
    margin: 0;
    color: var(--navy-950);
    font-size: clamp(.75rem, 1.15vw, 1.2rem);
    font-weight: 700;
    letter-spacing: .48em;
    text-transform: uppercase;
}

.hero {
    position: relative;
    display: grid;
    min-height: min(760px, 100svh);
    overflow: hidden;
    place-items: center;
    background: var(--navy-950) url("../images/hero-bg.webp") center / cover no-repeat;
}

.hero__media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.hero__content {
    position: relative;
    z-index: 1;
    padding-top: var(--header-height);
    text-align: center;
}

.hero__title {
    max-width: 1660px;
    margin: 0 auto;
    font-size: clamp(2.35rem, 3.65vw, 4.375rem);
    font-weight: 300;
    line-height: 1.04;
    letter-spacing: .01em;
}

.hero__title strong {
    display: block;
    color: var(--coral);
    font-weight: 700;
}

.hero__services {
    margin: clamp(2.2rem, 3vw, 3.4rem) 0 0;
    font-size: clamp(.58rem, .72vw, .9rem);
    font-style: normal;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.hero__services em {
    color: var(--coral);
    font-style: normal;
}

.section {
    padding: clamp(5rem, 9vw, 10rem) 0;
}

.section--intro {
    padding-bottom: clamp(4rem, 7vw, 8rem);
    background: var(--navy-950);
    text-align: center;
}

.section__content {
    max-width: 1524px;
}

.section h2 {
    margin: 0;
    font-size: clamp(2rem, 2.083vw, 2.5rem);
    font-weight: 300;
    line-height: 1.15;
}

.section--intro p {
    max-width: 1052px;
    margin: 2.5rem auto 0;
    font-size: clamp(1.15rem, 1.458vw, 1.75rem);
}

.attention {
    display: grid;
    margin-top: clamp(4rem, 7vw, 8rem);
    grid-template-columns: minmax(11rem, 1fr) minmax(28rem, 2.85fr) minmax(11rem, 1fr);
    align-items: center;
    gap: clamp(1.5rem, 3vw, 4rem);
}

.attention img,
.attention video {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 864 / 496;
    border-radius: .15rem;
    object-fit: cover;
}

.attention__note {
    position: relative;
    margin: 0 !important;
    padding-block: 2rem;
    font-size: clamp(.9rem, 1.458vw, 1.75rem) !important;
    text-align: left;
}

.attention__note::before,
.attention__note::after {
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
    content: "";
    background: rgba(255, 255, 255, .65);
}

.attention__note::before {
    top: 0;
}

.attention__note::after {
    bottom: 0;
}

.attention__note--right {
    color: #d8ff00;
}

.section--approach {
    padding-top: 0;
    background: #001839;
    text-align: center;
}

.approach h2 {
    max-width: 1524px;
    margin-inline: auto;
    font-size: clamp(1.35rem, 1.46vw, 1.75rem);
}

.approach h2 strong {
    font-weight: 700;
}

.approach__diagram {
    position: relative;
    width: min(100%, 68.54vw, 1316px);
    max-width: 1316px;
    margin: clamp(4rem, 7.5vw, 9rem) auto 0;
    container-type: inline-size;
}

.approach-diagram__canvas {
    position: relative;
    width: 100%;
    aspect-ratio: 1316 / 864;
    container-type: inline-size;
}

.approach-diagram__ring {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.approach-diagram__ring--outer {
    top: 13.54%;
    left: 23.25%;
    width: 47.19%;
    aspect-ratio: 1;
    border: 1px dashed rgba(234, 226, 0, .8);
}

.approach-diagram__ring--inner {
    top: 17.01%;
    left: 25.46%;
    width: 42.78%;
    aspect-ratio: 1;
    border: clamp(1px, .2cqw, 3px) solid #eae200;
}

.approach-diagram__center {
    position: absolute;
    top: 37.5%;
    left: 36.85%;
    width: 24.7%;
    pointer-events: none;
}

.approach-diagram__center img {
    width: 100%;
    height: auto;
}

.approach-diagram__center span {
    display: block;
    margin-top: -.02em;
    color: #eae200;
    font-size: clamp(3.4rem, 13.8cqw, 11.35rem);
    font-weight: 300;
    line-height: 1;
    letter-spacing: -.06em;
}

.approach-diagram__services {
    position: absolute;
    inset: 0;
    padding: 0;
    margin: 0;
    list-style: none;
    pointer-events: none;
}

.approach-service {
    position: absolute;
    pointer-events: none;
}

.approach-service__trigger {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    color: var(--service-color);
    background: transparent;
    border: 0;
    cursor: pointer;
    font: inherit;
    pointer-events: auto;
}

.approach-service__label {
    position: absolute;
    display: grid;
    font-size: clamp(.6rem, 2.79cqw, 2.3rem);
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
}

.approach-service__marker {
    position: absolute;
    aspect-ratio: 1;
    background: var(--marker-color, var(--service-color));
    border: clamp(1px, .2cqw, 3px) solid #eae200;
    border-radius: 50%;
    transition: transform .2s ease, box-shadow .2s ease;
}

.approach-service__trigger:hover .approach-service__marker,
.approach-service__trigger:focus-visible .approach-service__marker,
.approach-service__trigger[aria-expanded="true"] .approach-service__marker {
    box-shadow: 0 0 0 clamp(2px, .4cqw, 6px) color-mix(in srgb, var(--service-color) 35%, transparent);
    transform: scale(1.08);
}

.approach-service__trigger:focus-visible {
    outline: 0;
}

.approach-service--branding {
    --service-color: #eae200;
    --marker-color: #081e4a;
    top: 0;
    left: 41.79%;
    width: 14.67%;
    height: 21.3%;
}

.approach-service--branding .approach-service__label {
    inset: 0 0 auto;
}

.approach-service--branding .approach-service__marker {
    bottom: 0;
    left: 30.55%;
    width: 38.86%;
}

.approach-service--audiovisual {
    --service-color: #91378e;
    top: 44.2%;
    left: 2.28%;
    width: 28.27%;
    height: 9.6%;
}

.approach-service--audiovisual .approach-service__label {
    top: 0;
    left: 0;
    width: 69.1%;
    text-align: right;
}

.approach-service--audiovisual .approach-service__marker {
    top: 9.6%;
    right: 0;
    width: 20.16%;
}

.approach-service--performance {
    --service-color: #e6332a;
    top: 44.2%;
    left: 67.63%;
    width: 30.85%;
    height: 9.6%;
}

.approach-service--performance .approach-service__label {
    top: 0;
    right: 0;
    width: 70%;
    text-align: left;
}

.approach-service--performance .approach-service__marker {
    top: 9.6%;
    left: 0;
    width: 18.47%;
}

.approach-service--digital {
    --service-color: #00899a;
    top: 77.78%;
    left: 42.55%;
    width: 13.37%;
    height: 22.22%;
}

.approach-service--digital .approach-service__label {
    inset: auto 0 0;
}

.approach-service--digital .approach-service__marker {
    top: 0;
    left: 28.4%;
    width: 42.6%;
}

.approach-diagram__details {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.approach-detail {
    position: absolute;
    z-index: 2;
    color: #fff;
    font-size: clamp(.68rem, 1.53cqw, 1.26rem);
    line-height: 1.55;
    text-align: left;
}

.approach-detail h3 {
    display: none;
    margin: 0 0 .75rem;
    color: var(--detail-color);
    font-size: .9em;
    text-transform: uppercase;
}

.approach-detail ul {
    padding: 0;
    margin: 0;
    list-style: none;
}

.approach-detail li::before {
    margin-right: .45em;
    color: var(--detail-color);
    content: "›";
}

.approach-detail--branding {
    --detail-color: #eae200;
    top: -5.5%;
    left: 57.8%;
    width: 23.2%;
}

.approach-detail--performance {
    --detail-color: #e6332a;
    top: 55.5%;
    left: 76.9%;
    width: 21%;
}

.approach-detail--digital {
    --detail-color: #00899a;
    top: 89%;
    left: 58.8%;
    width: 23.3%;
}

.approach-detail--audiovisual {
    --detail-color: #91378e;
    top: 56%;
    left: 2.7%;
    width: 19%;
}

.about {
    position: relative;
    display: grid;
    min-height: clamp(40rem, 49vw, 59rem);
    overflow: hidden;
    place-items: center;
    background:
        linear-gradient(rgba(3, 21, 38, .22), rgba(3, 21, 38, .22)),
        var(--navy-950) url("../images/hero-bg.webp") center 44% / cover no-repeat;
}

.about::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    background: rgba(3, 21, 38, .2);
    pointer-events: none;
}

.about__media {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.about__inner {
    position: relative;
    z-index: 1;
    text-align: center;
}

.about .eyebrow {
    margin-bottom: clamp(4rem, 7vw, 8rem);
}

.about h2 {
    max-width: 1660px;
    margin-inline: auto;
    font-size: clamp(2.2rem, 3.125vw, 3.75rem);
}

.about h2 strong {
    color: var(--coral);
    font-weight: 700;
}

.team {
    padding-block: clamp(5rem, 5.52vw, 6.625rem) clamp(6rem, 7.86vw, 9.4375rem);
    background: var(--navy-950);
}

.team-member {
    display: grid;
    grid-template-columns: 540fr 531fr 540fr;
    grid-template-rows: auto auto;
    gap: 0 clamp(1rem, 1.51vw, 1.8125rem);
    align-items: start;
    border-top: 1px solid rgba(216, 255, 0, .7);
}

.team-member + .team-member {
    margin-top: clamp(3rem, 3.39vw, 4.0625rem);
}

.team-member:last-child {
    border-bottom: 1px solid rgba(216, 255, 0, .7);
}

.team-member__photo {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    height: clamp(18rem, 16.46vw, 19.75rem);
    margin-top: clamp(2.5rem, 3.39vw, 4.0625rem);
    object-fit: cover;
    object-position: center 30%;
}

.team-member__meta {
    display: grid;
    grid-column: 1;
    grid-row: 2;
    padding-block: clamp(1.5rem, 2.29vw, 2.75rem) clamp(2rem, 2.86vw, 3.4375rem);
    gap: .15rem;
}

.team-member__bio {
    display: grid;
    grid-column: 2 / 4;
    grid-row: 1 / 3;
    padding-top: clamp(2.5rem, 3.39vw, 4.0625rem);
    grid-template-columns: 1fr 1fr;
    gap: clamp(1rem, 1.51vw, 1.8125rem);
}

.team-member h3,
.team-member__role,
.team-member__bio p {
    margin: 0;
}

.team-member h3 {
    font-size: clamp(1.4rem, 1.5625vw, 1.875rem);
    font-weight: 400;
}

.team-member__role {
    color: #d8ff00;
    font-size: clamp(.9rem, 1.146vw, 1.375rem);
}

.team-member__bio p {
    font-size: clamp(.85rem, .99vw, 1.1875rem);
    line-height: 1.35;
}

.clients {
    padding: clamp(5rem, 7.1vw, 8.5rem) 0;
    color: #111;
    background: var(--white);
}

.clients__inner {
    width: min(100%, 1920px);
    margin-inline: auto;
}

.clients__list {
    position: relative;
    height: clamp(6rem, 8.02vw, 9.625rem);
    padding: 0;
    margin: 0;
    list-style: none;
}

.clients__item {
    position: absolute;
    top: 50%;
    left: var(--logo-left);
    display: flex;
    width: var(--logo-width);
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
}

.clients__logo {
    display: block;
    width: 100%;
    height: auto;
    overflow: hidden;
}

.projects {
    padding-block: clamp(6rem, 8vw, 9rem) clamp(7rem, 10vw, 12rem);
    background: var(--navy-950);
}

.projects .eyebrow {
    margin: 0 0 clamp(3.5rem, 6vw, 7rem);
    text-align: center;
}

.projects__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(.75rem, 1vw, 1.25rem);
}

.project-card {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 1;
    background: var(--navy-900);
}

.project-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 500ms cubic-bezier(.2, .7, .2, 1), filter 500ms ease;
}

.project-card__content {
    position: absolute;
    z-index: 2;
    inset: 0;
    display: grid;
    padding: clamp(1.25rem, 3vw, 3rem);
    place-content: center;
    justify-items: center;
    gap: clamp(1.5rem, 3vw, 3rem);
    opacity: 0;
    transform: translateY(.6rem);
    transition: opacity 240ms ease, transform 240ms ease;
}

.project-card__label {
    font-size: clamp(1rem, 1.4vw, 1.55rem);
    font-weight: 700;
    letter-spacing: .16em;
    line-height: 1.2;
    text-align: center;
}

.project-card__cta {
    display: grid;
    width: min(80%, 16.25rem);
    min-height: clamp(4rem, 6vw, 5rem);
    padding-inline: 1.5rem;
    place-items: center;
    border-radius: clamp(1rem, 2vw, 1.45rem);
    background: var(--navy-800);
    font-size: clamp(.95rem, 1.35vw, 1.35rem);
    font-weight: 700;
    letter-spacing: .2em;
    text-align: center;
    text-transform: uppercase;
    transition: background-color 180ms ease, transform 180ms ease;
}

.project-card::after {
    position: absolute;
    inset: 0;
    content: "";
    z-index: 1;
    background: rgba(0, 0, 0, .58);
    opacity: 0;
    transition: opacity 240ms ease;
}

.project-card:hover img,
.project-card:focus-visible img {
    transform: scale(1.035);
    filter: saturate(1.08);
}

.project-card:hover::after,
.project-card:focus-visible::after,
.project-card:hover .project-card__content,
.project-card:focus-visible .project-card__content {
    opacity: 1;
}

.project-card:hover .project-card__content,
.project-card:focus-visible .project-card__content {
    transform: translateY(0);
}

.project-card__cta:hover,
.project-card:focus-visible .project-card__cta {
    background: var(--coral);
    transform: translateY(-2px);
}

@media (hover: none) {
    .project-card::after,
    .project-card__content {
        opacity: 1;
    }

    .project-card__content {
        transform: none;
    }
}

.button {
    display: grid;
    width: min(100%, 33.75rem);
    min-height: 5.625rem;
    margin: clamp(3rem, 5vw, 6rem) auto 0;
    place-items: center;
    border-radius: 1.25rem;
    background: var(--navy-800);
    font-size: clamp(1rem, 1.3vw, 1.5rem);
    font-weight: 700;
    letter-spacing: .14em;
    text-decoration: none;
    text-transform: uppercase;
}

.eyebrow {
    color: var(--coral);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .35em;
    text-transform: uppercase;
}

.site-footer {
    padding: clamp(4.5rem, 5.2vw, 6.25rem) 0 clamp(1.5rem, 2vw, 2.5rem);
    background: #000;
}

.site-footer__grid {
    display: grid;
    grid-template-columns: 420fr 501fr 238fr 160fr;
    align-items: start;
    gap: clamp(1.5rem, 2.5vw, 3rem);
}

.site-footer__logo {
    display: flex;
    align-items: center;
    gap: clamp(1rem, 1.9vw, 2.25rem);
    text-decoration: none;
}

.site-footer__wordmark {
    width: min(67.4%, 17.6875rem);
    height: auto;
}

.site-footer__symbol {
    width: min(24%, 6.3125rem);
    height: auto;
}

.site-footer__location {
    margin: clamp(1.75rem, 2.25vw, 2.7rem) 0 0;
    font-size: clamp(1rem, 1.25vw, 1.5rem);
    font-weight: 700;
}

.site-footer__contact {
    display: grid;
    margin-top: clamp(2rem, 3.1vw, 3.75rem);
    gap: .65rem;
    font-style: normal;
}

.site-footer__contact a {
    display: flex;
    align-items: center;
    gap: .65rem;
    font-size: clamp(.95rem, 1.15vw, 1.375rem);
    font-weight: 700;
    text-decoration: none;
}

.site-footer__contact svg {
    width: 1.65em;
    height: 1.65em;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.site-footer__about {
    margin: 0;
    font-size: clamp(.95rem, 1.042vw, 1.25rem);
    line-height: 1.5;
}

.site-footer__nav {
    display: grid;
    align-content: start;
    gap: clamp(.45rem, .68vw, .8125rem);
    font-size: clamp(1rem, 1.25vw, 1.5rem);
    font-weight: 700;
}

.site-footer__nav a {
    text-decoration: none;
}

.site-footer__nav-accent {
    color: var(--coral);
}

.site-footer__nav-accent span {
    margin-right: .2em;
    font-size: 1.4em;
}

.site-footer__socials {
    display: flex;
    gap: clamp(.75rem, 1.2vw, 1.45rem);
}

.site-footer__social {
    width: clamp(2.75rem, 3.125vw, 3.75rem);
    height: clamp(2.75rem, 3.125vw, 3.75rem);
}

.site-footer__social svg {
    width: 100%;
    height: 100%;
}

.site-footer__social circle:first-child {
    fill: #fff;
}

.site-footer__social path,
.site-footer__social rect,
.site-footer__social circle:not(:first-child) {
    fill: #000;
    stroke: #000;
    stroke-width: 3;
}

.site-footer__legal {
    display: flex;
    padding-top: clamp(1.5rem, 2vw, 2.5rem);
    margin-top: clamp(2.5rem, 3.2vw, 3.875rem);
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid rgba(255, 255, 255, .5);
    font-size: clamp(.85rem, 1.146vw, 1.375rem);
    font-weight: 700;
}

.site-footer__legal p {
    margin: 0;
}

.site-footer__legal a {
    font-size: .75em;
    font-weight: 400;
    text-underline-offset: .2em;
}

/* Multipage architecture */
.page-main {
    min-height: 60vh;
    padding-top: var(--header-height);
}

.inner-hero {
    display: grid;
    min-height: clamp(25rem, 44vw, 47rem);
    padding-block: clamp(6rem, 10vw, 12rem);
    align-content: center;
}

.inner-hero h1,
.contact-page h1,
.sitemap-page h1,
.empty-state h1 {
    max-width: 14ch;
    margin: .25em 0;
    font-size: clamp(3rem, 7vw, 8.5rem);
    line-height: .95;
}

.inner-hero > p:last-child {
    max-width: 46rem;
    margin: 1.5rem 0 0;
    font-size: clamp(1.05rem, 1.6vw, 1.5rem);
}

.breadcrumbs {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.breadcrumbs ol {
    display: flex;
    padding: 0;
    margin: 0;
    gap: .6rem;
    list-style: none;
}

.breadcrumbs li + li::before {
    margin-right: .6rem;
    content: "/";
}

.project-index {
    display: grid;
    padding-bottom: clamp(6rem, 10vw, 12rem);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(2.5rem, 5vw, 6rem) clamp(1rem, 2vw, 2rem);
}

.project-index__card {
    text-decoration: none;
}

.project-index__image {
    overflow: hidden;
    aspect-ratio: 1;
    margin-bottom: 1.25rem;
    background: var(--navy-900);
}

.project-index__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 450ms cubic-bezier(.2, .7, .2, 1);
}

.project-index__card:hover img,
.project-index__card:focus-visible img {
    transform: scale(1.035);
}

.project-index__card p {
    margin: 0 0 .3rem;
    color: var(--coral);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .24em;
    text-transform: uppercase;
}

.project-index__card h2 {
    margin: 0;
    font-size: clamp(1.25rem, 2vw, 2rem);
}

.project-detail {
    color: #111;
    background: #fff;
}

.case-hero {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1920 / 1128;
    background: #ea4715;
}

.case-hero > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.case-hero::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgba(0, 0, 0, .24), rgba(0, 0, 0, .02) 70%);
    pointer-events: none;
}

.case-hero__copy {
    position: absolute;
    z-index: 1;
    top: 11.4%;
    right: 6.7%;
    left: 10.9%;
    display: grid;
    grid-template-columns: 1.43fr 1.18fr 1.04fr;
    align-items: start;
    gap: 2.6vw;
    color: #fff;
}

.case-hero__copy h1,
.case-hero__copy p {
    margin: 0;
    font-size: clamp(.8rem, 1.31vw, 1.56rem);
    font-weight: 400;
    letter-spacing: .05em;
    line-height: 1.02;
}

.case-hero__copy h1 {
    font-size: clamp(1rem, 2.08vw, 2.5rem);
}

.case-gallery {
    display: grid;
    padding: 7.45vw 9.8% 7.25vw;
    grid-template-columns: 714fr 770fr;
    align-items: center;
    gap: 5.2%;
    background: #d9d9d9;
}

.case-gallery figure,
.case-gallery__wide {
    margin: 0;
    overflow: hidden;
}

.case-gallery figure:first-child {
    aspect-ratio: 714 / 764;
}

.case-gallery figure:last-child {
    aspect-ratio: 770 / 742;
}

.case-gallery img,
.case-gallery__wide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.case-gallery__wide {
    display: grid;
    padding: 6.75vw 9.3% 8.95vw;
    place-items: center;
    background: #008ad5;
}

.case-gallery__wide img {
    aspect-ratio: 1563 / 989;
}

.case-gallery--last {
    padding-top: 9vw;
    padding-bottom: 8.5vw;
    grid-template-columns: 690fr 671fr;
    gap: 8.1%;
}

.case-gallery--last figure:first-child {
    aspect-ratio: 690 / 764;
}

.case-gallery--last figure:last-child {
    aspect-ratio: 671 / 755;
}

.case-study--gaman {
    overflow: hidden;
    background: #fff;
}

.gaman-hero {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1920 / 848;
    color: #fff;
    background: #121821;
}

.gaman-hero__video,
.gaman-panel img,
.gaman-social-mobile img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gaman-hero__title {
    position: absolute;
    z-index: 1;
    top: 15.2%;
    left: 10.9%;
    max-width: 38%;
}

.gaman-hero__title::before {
    position: absolute;
    top: -30%;
    right: calc(100% + 1.35rem);
    width: 4px;
    height: 220%;
    content: "";
    background: #fff;
}

.gaman-hero__title h1 {
    margin: 0;
    font-size: clamp(1rem, 2.083vw, 2.5rem);
    font-weight: 700;
    letter-spacing: .025em;
    line-height: 1;
}

.gaman-hero__play {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    display: grid;
    width: clamp(3.5rem, 9.27vw, 11.125rem);
    aspect-ratio: 1;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: #000;
    background: #fff;
    box-shadow: 0 .5rem 2rem rgba(0, 0, 0, .18);
    cursor: pointer;
    transform: translate(-50%, -50%);
    transition: opacity 180ms ease, transform 180ms ease;
}

.gaman-hero__play:hover {
    transform: translate(-50%, -50%) scale(1.04);
}

.gaman-hero__play > span:first-child {
    width: 0;
    height: 0;
    margin-left: 9%;
    border-top: clamp(.6rem, 1.55vw, 1.85rem) solid transparent;
    border-bottom: clamp(.6rem, 1.55vw, 1.85rem) solid transparent;
    border-left: clamp(1rem, 2.4vw, 2.9rem) solid currentColor;
}

.gaman-hero.is-playing .gaman-hero__play {
    opacity: 0;
    pointer-events: none;
}

.gaman-panel,
.gaman-social-mobile {
    margin: 0;
    overflow: hidden;
}

.gaman-panel--wide {
    aspect-ratio: 1920 / 1050;
}

.gaman-panel--standard {
    aspect-ratio: 16 / 9;
}

.gaman-panel--social-wide {
    aspect-ratio: 1920 / 966;
    margin-block: 2.865vw;
    background: #fff;
}

.gaman-panel--social-wide img {
    object-fit: contain;
}

.gaman-social-mobile {
    display: grid;
    aspect-ratio: 1920 / 1118;
    padding-top: 3.54vw;
    place-items: end center;
    background: #d9d9d9;
}

.gaman-social-mobile img {
    width: 39.43%;
    height: 100%;
}

.gaman-panel--event {
    aspect-ratio: 1920 / 1118;
}

.gaman-panel--event-spaced {
    margin-top: 1.354vw;
}

.project-next--gaman {
    display: grid;
    min-height: clamp(10rem, 14.32vw, 17.2rem);
    padding-block: clamp(3rem, 6.5vw, 7.8rem) clamp(2rem, 3.1vw, 3.75rem);
    grid-template-columns: repeat(2, minmax(0, min(26.1vw, 31.3125rem)));
    justify-content: center;
    gap: min(1.04vw, 1.25rem);
}

.project-next--gaman a {
    display: grid;
    min-height: clamp(3.75rem, 4.6875vw, 5.625rem);
    padding-inline: 2rem;
    grid-template-columns: auto 1fr;
    place-items: center;
    gap: 1rem;
    color: #fff;
    background: var(--navy-800);
    border-radius: 1.25rem;
    font-size: clamp(.7rem, .833vw, 1rem);
    letter-spacing: .12em;
    text-transform: uppercase;
}

.project-next--gaman a:last-child {
    grid-template-columns: 1fr auto;
}

.project-next {
    padding-block: 2.5rem 5rem;
    color: #111;
}

.project-next a {
    font-weight: 700;
    text-decoration: none;
}

.project-preview {
    display: grid;
    padding-block: clamp(6rem, 10vw, 12rem);
    grid-template-columns: .85fr 1.15fr;
    align-items: center;
    gap: clamp(3rem, 8vw, 10rem);
}

.project-preview h1 {
    margin: .2em 0 .5em;
    font-size: clamp(3rem, 6vw, 7rem);
    line-height: .95;
}

.project-preview__copy > p:not(.eyebrow) {
    max-width: 36rem;
    font-size: clamp(1rem, 1.4vw, 1.35rem);
}

.project-preview__note {
    padding-top: 1.5rem;
    margin-top: 2rem;
    border-top: 1px solid #aaa;
    color: #555;
    font-size: .9rem !important;
}

.project-preview > img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
}

/* Exact project cases extracted from the local Figma master file. */
.case-study--grupo-gr,
.case-study--vines,
.case-study--menoyo,
.figma-case {
    overflow: hidden;
    background: #fff;
}

.case-study--grupo-gr figure,
.case-study--vines figure,
.case-study--menoyo figure,
.figma-case figure {
    margin: 0;
}

.grupo-gr-hero {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1920 / 1128;
    background: #ececec;
}

.grupo-gr-hero > img,
.grupo-gr-desktop img,
.grupo-gr-mobile video,
.vines-hero > img,
.vines-pair img,
.vines-panel img,
.menoyo-stage img,
.menoyo-wide img,
.menoyo-lifestyle img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.grupo-gr-hero h1 {
    position: absolute;
    z-index: 1;
    top: 11.52%;
    left: 10.94%;
    margin: 0;
    color: #081e4a;
    font-size: clamp(1.35rem, 2.083vw, 2.5rem);
    font-weight: 400;
    letter-spacing: .05em;
    line-height: 1;
}

.grupo-gr-desktop {
    position: relative;
    aspect-ratio: 1920 / 4459;
    background: #1d1d1b;
}

.grupo-gr-desktop__logo,
.grupo-gr-desktop__site {
    position: absolute;
    overflow: hidden;
}

.grupo-gr-desktop__logo {
    top: 2.13%;
    left: 20.05%;
    width: 59.95%;
    height: 12.85%;
}

.grupo-gr-desktop__site {
    top: 15.68%;
    left: 24.32%;
    width: 51.41%;
    height: 78.99%;
}

.grupo-gr-desktop__logo img,
.menoyo-layer img,
.menoyo-brand img {
    position: absolute;
    inset: 0;
}

.grupo-gr-desktop__site img {
    object-fit: fill;
}

.grupo-gr-mobile {
    position: relative;
    aspect-ratio: 1920 / 1286;
    background: #d9d9d9;
}

.grupo-gr-mobile__screen {
    position: absolute;
    top: 10.65%;
    left: 38.02%;
    overflow: hidden;
    width: 24.27%;
    aspect-ratio: 466 / 1004;
    border: 1px solid rgba(0, 0, 0, .35);
    border-radius: 8% / 3.75%;
    background: #17191d;
    box-shadow: 0 1.5vw 3vw rgba(0, 0, 0, .24);
}

.vines-hero {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1920 / 1128;
    color: #fff;
    background: #080808;
}

.vines-hero__copy {
    position: absolute;
    inset: 0 0 auto;
    height: 26.7%;
    background: rgba(0, 0, 0, .7);
}

.vines-hero h1,
.vines-hero p {
    position: absolute;
    margin: 0;
    letter-spacing: .05em;
    line-height: 1.01;
}

.vines-hero h1 {
    top: 42.86%;
    left: 10.89%;
    font-size: clamp(1.35rem, 2.083vw, 2.5rem);
    font-weight: 400;
}

.vines-hero p {
    top: 46.84%;
    right: 6.77%;
    width: 19.53%;
    font-size: clamp(.85rem, 1.302vw, 1.5625rem);
}

.vines-pair {
    display: grid;
    background: #fff;
}

.vines-pair figure {
    overflow: hidden;
}

.vines-pair--opening {
    aspect-ratio: 1920 / 935;
    padding-inline: 6.77%;
    grid-template-columns: 831fr 829fr;
}

.vines-panel {
    overflow: hidden;
    aspect-ratio: 16 / 9;
}

.vines-pair--closing {
    aspect-ratio: 1920 / 739;
    padding-left: 6.77%;
    grid-template-columns: 820fr 950fr;
    gap: 1.0417%;
}

.menoyo-intro {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1920 / 1147;
    background: #fff;
}

.menoyo-intro__copy {
    position: absolute;
    inset: 0 0 auto;
    height: 25.89%;
    color: #fff;
    background: rgba(0, 0, 0, .7);
}

.menoyo-intro__copy h1,
.menoyo-intro__copy p,
.menoyo-brand__label {
    position: absolute;
    margin: 0;
    letter-spacing: .05em;
    line-height: 1.01;
}

.menoyo-intro__copy h1 {
    top: 43.43%;
    left: 10.83%;
    font-size: clamp(1.35rem, 2.083vw, 2.5rem);
    font-weight: 400;
}

.menoyo-intro__copy p {
    top: 47.47%;
    width: 22.19%;
    font-size: clamp(.78rem, 1.302vw, 1.5625rem);
}

.menoyo-intro__copy p:nth-of-type(1) {
    left: 49.48%;
}

.menoyo-intro__copy p:nth-of-type(2) {
    left: 72.86%;
    width: 20.21%;
}

.menoyo-brand {
    position: absolute;
    top: 44.38%;
    overflow: hidden;
    height: 26.5%;
}

.menoyo-brand--before {
    left: 7.55%;
    width: 40.26%;
}

.menoyo-brand--after {
    left: 54.22%;
    width: 34.53%;
    height: 25.28%;
}

.menoyo-brand img {
    top: 50%;
    width: 200%;
    max-width: none;
    height: auto;
    transform: translateY(-50%);
}

.menoyo-brand--before img {
    right: auto;
    left: 0;
}

.menoyo-brand--after img {
    right: auto;
    left: -100%;
}

.menoyo-brand__label {
    top: 72.45%;
    color: #081e4a;
    font-size: clamp(.85rem, 1.302vw, 1.5625rem);
}

.menoyo-brand__label--before {
    left: 12.7%;
}

.menoyo-brand__label--after {
    left: 56.93%;
}

.menoyo-stage {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1920 / 933;
    background: #f4f4f4;
}

.menoyo-layer,
.menoyo-stage__photo {
    position: absolute;
    overflow: hidden;
}

.menoyo-layer--background {
    top: 20.26%;
    left: 0;
    width: 100%;
    height: 55.73%;
}

.menoyo-layer--left {
    top: 5.25%;
    left: 4.17%;
    width: 50%;
    height: 87.35%;
}

.menoyo-layer--right {
    top: 7.07%;
    left: 46.67%;
    width: 50%;
    height: 84.78%;
}

.menoyo-layer--second-left {
    top: 7.07%;
    left: 3.28%;
    height: 89.39%;
}

.menoyo-layer--second-right {
    top: 7.07%;
    left: 47.76%;
    height: 89.39%;
}

.menoyo-layer img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.menoyo-wide {
    overflow: hidden;
    aspect-ratio: 1920 / 1280;
}

.menoyo-stage--kitchen {
    background: #d7d7d7;
}

.menoyo-stage__photo {
    inset: 0;
}

.menoyo-layer--center {
    inset: 0 auto 0 26.09%;
    width: 47.86%;
}

.menoyo-lifestyle {
    display: grid;
    aspect-ratio: 1920 / 1069;
    grid-template-columns: 960fr 959fr;
    gap: 1px;
}

.menoyo-stage--last .menoyo-layer--center {
    left: 26.3%;
    width: 47.45%;
}

.menoyo-wide--last {
    margin-top: 3.854vw;
}

.figma-case__hero {
    position: relative;
    overflow: hidden;
}

.figma-case__hero--ferroparts {
    aspect-ratio: 1920 / 1128;
}

.figma-case__hero--indecar {
    aspect-ratio: 16 / 9;
}

.figma-case__hero--oval {
    aspect-ratio: 16 / 9;
}

.figma-case__hero--aj-rios,
.figma-case__hero--bingo {
    aspect-ratio: 1920 / 1128;
}

.figma-case__hero--the-hive,
.figma-case__hero--ferroparts-packaging {
    aspect-ratio: 1920 / 1128;
}

.figma-editorial-hero {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1920 / 1128;
    background: #004d59;
}

.figma-editorial-hero > img {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 54%;
    object-fit: contain;
}

.figma-editorial-hero .figma-case__intro {
    height: 31.5%;
    background: transparent;
}

.figma-case__hero > img,
.figma-case__panel > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.figma-case__intro {
    position: absolute;
    inset: 0 0 auto;
    z-index: 1;
    display: grid;
    height: 26.69%;
    padding: 7.25% 6.77% 2.4% 10.89%;
    grid-template-columns: 1fr .58fr .52fr;
    align-items: start;
    gap: 2.35%;
    color: #fff;
    background: rgba(0, 0, 0, .72);
}

.figma-case__hero--indecar .figma-case__intro {
    height: 27.87%;
}

.figma-case__intro h1,
.figma-case__intro p {
    margin: 0;
    letter-spacing: .045em;
    line-height: 1.08;
}

.figma-case__intro h1 {
    font-size: clamp(1.35rem, 2.083vw, 2.5rem);
    font-weight: 400;
}

.figma-case__intro p {
    font-size: clamp(.8rem, 1.302vw, 1.5625rem);
}

.figma-case__intro--single {
    grid-template-columns: 1fr .96fr;
}

.figma-case__intro--single p {
    grid-column: 2;
}

.figma-case__intro--transparent {
    background: transparent;
}

.figma-case__intro--far {
    grid-template-columns: minmax(0, 1fr) 20.1%;
}

.figma-case__intro--far p {
    grid-column: 2;
}

.figma-case__intro--transparent h1,
.bingo-hero__title h1 {
    position: relative;
}

.figma-case__intro--transparent h1::after,
.bingo-hero__title h1::after {
    position: absolute;
    top: calc(100% + 1.25rem);
    left: -1.4rem;
    width: 4.64vw;
    height: 1px;
    content: "";
    background: currentcolor;
}

.figma-case--ferroparts .figma-case__panel {
    margin-top: 1.04vw;
}

.figma-case__panel--ferro-tall,
.figma-case__panel--ferro-closing {
    aspect-ratio: 1920 / 1280;
}

.figma-case__panel--ferro-tall img {
    object-position: center 55%;
}

.figma-case__panel--ferro-wide {
    aspect-ratio: 1920 / 1055;
}

.figma-case--indecar .figma-case__panel {
    aspect-ratio: 16 / 9;
    margin-top: 1.5625vw;
}

.figma-case--oval .figma-case__panel {
    aspect-ratio: 16 / 9;
    margin-top: 1.6146vw;
}

.figma-case__media {
    position: relative;
    background: #050505;
}

.figma-case__intro--standalone {
    position: relative;
    display: grid;
    height: auto;
    min-height: 18.9vw;
    padding: 7.25% 6.77% 3.2% 10.89%;
    grid-template-columns: 1fr .58fr .55fr;
    background: #000;
}

.figma-case--sky-clinic .figma-case__panel {
    aspect-ratio: 1920 / 1069;
}

.figma-case--sky-clinic .figma-case__panel--sky-opening {
    aspect-ratio: 1920 / 735;
    margin-bottom: 4.8958vw;
}

.figma-case--sky-clinic .figma-case__panel--sky-opening img {
    object-position: center 54%;
}

.aj-rios-social,
.aj-rios-newsletters {
    display: grid;
    padding-inline: 6.77%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 1.1%;
    background: #fff;
}

.aj-rios-social {
    padding-top: 6.09vw;
    row-gap: 1.25vw;
}

.aj-rios-newsletters {
    padding-top: .94vw;
    padding-bottom: .52vw;
}

.aj-rios-social figure,
.aj-rios-newsletters figure {
    overflow: hidden;
}

.aj-rios-social figure {
    aspect-ratio: 9 / 10;
}

.aj-rios-newsletters figure {
    aspect-ratio: 540 / 1068;
}

.aj-rios-social img,
.aj-rios-newsletters img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.figma-case__hero--bingo > img {
    object-position: center;
}

.bingo-hero__title {
    position: absolute;
    z-index: 1;
    top: 11.52%;
    left: 10.83%;
    color: #fff;
}

.bingo-hero__title h1 {
    margin: 0;
    font-size: clamp(1.35rem, 2.083vw, 2.5rem);
    font-weight: 400;
    letter-spacing: .05em;
    line-height: 1.01;
}

.figma-case--bingo .figma-case__panel {
    aspect-ratio: 1920 / 1069;
}

.figma-case--integra .figma-case__panel,
.figma-case--the-hive .figma-case__panel {
    aspect-ratio: 16 / 9;
}

.figma-case--the-hive .figma-case__panel img {
    object-position: center;
}

.figma-case__hero--brand {
    aspect-ratio: 1920 / 1128;
    background: #000;
}

.figma-case__hero--arbumasa {
    aspect-ratio: 1920 / 848;
    background: #06162f;
}

.figma-case__hero--arbumasa > video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.figma-case__intro--arbumasa {
    height: 35.5%;
    background: rgba(0, 0, 0, .38);
}

.brand-case__panel {
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: #fff;
}

.brand-case__panel > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.brand-case__panel--hand-family {
    aspect-ratio: 1920 / 1137;
}

.brand-case__panel--hand-tall {
    aspect-ratio: 1920 / 1305;
}

.brand-case__panel--hand-social {
    aspect-ratio: 1920 / 986;
}

.hand-power-products,
.kame-products {
    position: relative;
    overflow: hidden;
    background: #d9d9d9;
}

.hand-power-products img,
.kame-products img {
    position: absolute;
    display: block;
    height: 100%;
    object-fit: contain;
}

.hand-power-products--tubes {
    aspect-ratio: 1920 / 1050;
}

.hand-power-products--tubes img:first-child {
    left: 13%;
    width: 42%;
}

.hand-power-products--tubes img:last-child {
    right: 4%;
    width: 65%;
}

.hand-power-products--jars {
    aspect-ratio: 1920 / 881;
}

.hand-power-products--jars img:first-child {
    left: 7%;
    width: 49%;
}

.hand-power-products--jars img:last-child {
    right: 8%;
    width: 49%;
}

.hand-power-products--display {
    aspect-ratio: 1920 / 881;
}

.hand-power-products--display img:first-child {
    left: 17%;
    width: 40%;
}

.hand-power-products--display img:last-child {
    right: 18%;
    width: 40%;
}

.kame-products {
    aspect-ratio: 1920 / 552;
}

.kame-products img:first-child {
    left: -1.5%;
    width: 59%;
}

.kame-products img:last-child {
    right: 2.4%;
    width: 52%;
}

.web-case__hero {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1920 / 1128;
    background: #ececec;
}

.web-case__hero > img,
.web-case__desktop > img,
.web-case__mobile > img,
.web-case__mobile > video,
.kautapen-panel > img,
.kautapen-logo-pair img,
.kautapen-symbols img {
    display: block;
    width: 100%;
    height: 100%;
}

.web-case__hero > img {
    object-fit: cover;
}

.web-case__hero h1,
.kautapen-hero__title {
    position: absolute;
    z-index: 1;
    top: 11.45%;
    left: 10.94%;
    margin: 0;
    color: #081e4a;
    font-size: clamp(1.35rem, 2.083vw, 2.5rem);
    font-weight: 400;
    letter-spacing: .045em;
    line-height: 1.08;
}

.web-case__desktop {
    position: relative;
    overflow: hidden;
}

.web-case__desktop--ferroparts {
    aspect-ratio: 1920 / 3219;
    background: #ef4136;
}

.web-case__desktop--obligado {
    aspect-ratio: 1920 / 3262;
    background: #081e4a;
}

.web-case__desktop > img {
    position: absolute;
    top: 3%;
    left: 24.3%;
    width: 51.4%;
    height: 93.2%;
    object-fit: fill;
}

.web-case__mobile {
    display: grid;
    overflow: hidden;
    aspect-ratio: 1920 / 1253;
    place-items: center;
    background: #d9d9d9;
}

.web-case__mobile > img,
.web-case__mobile > video {
    width: 24.9%;
    height: 82%;
    border: .35rem solid #fff;
    border-radius: 2.2rem;
    object-fit: cover;
    box-shadow: 0 1.4rem 3.5rem rgba(0, 0, 0, .18);
}

.figma-case__hero--kautapen {
    aspect-ratio: 1920 / 1128;
}

.figma-case__hero--kautapen > img,
.kautapen-panel > img {
    object-fit: cover;
}

.kautapen-hero__title {
    color: #fff;
}

.kautapen-hero__title h1 {
    position: relative;
    margin: 0;
    font: inherit;
}

.kautapen-hero__title h1::after {
    position: absolute;
    top: calc(100% + 1.25rem);
    left: -1.4rem;
    width: 4.64vw;
    height: 1px;
    content: "";
    background: currentcolor;
}

.kautapen-panel {
    overflow: hidden;
    aspect-ratio: 1920 / 1051;
}

.kautapen-logo-pair {
    display: grid;
    aspect-ratio: 1920 / 877;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.kautapen-logo-pair figure {
    overflow: hidden;
    padding: 8% 5.5%;
}

.kautapen-logo-pair figure:first-child {
    background: #ebebeb;
}

.kautapen-logo-pair figure:last-child {
    background: #55565a;
}

.kautapen-logo-pair img {
    object-fit: cover;
}

.kautapen-symbols {
    overflow: hidden;
    aspect-ratio: 1920 / 803;
    padding: 4.95% 11.5%;
    background: #ebebeb;
}

.kautapen-symbols img {
    object-fit: fill;
}

.figma-case__hero--ferroparts-packaging > img {
    position: absolute;
    top: 25.2%;
    right: auto;
    bottom: auto;
    left: 9.85%;
    width: 79.85%;
    height: 70.25%;
    object-fit: cover;
    object-position: center;
}

.ferroparts-packaging-pair {
    display: grid;
    padding: 5.75% 8.1% 7%;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 9.25%;
    background: #fff;
}

.ferroparts-packaging-pair figure {
    overflow: hidden;
    aspect-ratio: 718 / 753;
}

.ferroparts-packaging-pair img,
.ferroparts-packaging-wide img,
.ferroparts-packaging-closing img {
    display: block;
    width: 100%;
    height: 100%;
}

.ferroparts-packaging-pair img,
.ferroparts-packaging-wide img {
    object-fit: cover;
}

.ferroparts-packaging-wide {
    overflow: hidden;
    aspect-ratio: 1920 / 1138;
    background: #aaa;
}

.ferroparts-packaging-pair--bags {
    padding: 6.7% 10.4% 4%;
    gap: 2.5%;
    background: #fff;
}

.ferroparts-packaging-pair--bags figure {
    aspect-ratio: 717 / 893;
}

.ferroparts-packaging-closing {
    overflow: hidden;
    aspect-ratio: 1920 / 1178;
    padding-inline: 6.5%;
    background: #fff;
}

.ferroparts-packaging-closing img {
    object-fit: contain;
}

.page-project--grupo-gr .project-next--gaman {
    min-height: 17.708vw;
}

.page-project--vines .project-next--gaman {
    min-height: 17.865vw;
}

.page-project--menoyo .project-next--gaman {
    min-height: 15vw;
}

.page-project--ferroparts-branding .project-next--gaman,
.page-project--indecar .project-next--gaman,
.page-project--sky-clinic .project-next--gaman,
.page-project--oval .project-next--gaman,
.page-project--aj-rios .project-next--gaman,
.page-project--bingo-adrogue .project-next--gaman,
.page-project--integra .project-next--gaman,
.page-project--the-hive .project-next--gaman,
.page-project--ferroparts-senaletica .project-next--gaman,
.page-project--ferroparts-web .project-next--gaman,
.page-project--obligado-park .project-next--gaman,
.page-project--kautapen-group .project-next--gaman {
    min-height: 15vw;
}

.contact-page {
    display: grid;
    min-height: calc(100svh - var(--header-height));
    padding-block: clamp(6rem, 10vw, 12rem);
    grid-template-columns: 1.3fr .7fr;
    align-items: center;
    gap: 5rem;
}

.contact-page > div > p:last-child {
    max-width: 40rem;
    font-size: clamp(1.1rem, 1.5vw, 1.45rem);
}

.contact-page address {
    display: grid;
    gap: 1rem;
    font-size: clamp(1.15rem, 2vw, 2rem);
    font-style: normal;
}

.contact-page address a {
    text-decoration-thickness: 1px;
    text-underline-offset: .35em;
}

.page-callout,
.sitemap-page,
.empty-state {
    padding-block: clamp(6rem, 10vw, 12rem);
}

.page-callout {
    text-align: center;
}

.page-callout > p {
    margin: 0;
    font-size: clamp(2rem, 5vw, 5rem);
    font-weight: 700;
}

.sitemap-page__grid {
    display: grid;
    margin-top: clamp(3rem, 7vw, 7rem);
    grid-template-columns: repeat(2, 1fr);
    gap: 4rem;
}

.sitemap-page h2 {
    color: var(--coral);
}

.sitemap-page ul {
    display: grid;
    padding: 0;
    gap: .75rem;
    list-style: none;
}

.sitemap-page a {
    font-size: 1.15rem;
    text-underline-offset: .25em;
}

@media (max-width: 760px) {
    :root {
        --page-gutter: 1.25rem;
    }

    .brand {
        gap: .7rem;
    }

    .menu-panel {
        width: 100%;
        min-height: 100dvh;
        padding-inline: 2rem;
    }

    .hero {
        min-height: 44rem;
    }

    .hero__services {
        display: flex;
        max-width: 25rem;
        margin-inline: auto;
        flex-wrap: wrap;
        justify-content: center;
        gap: .35rem;
        line-height: 1.5;
    }

    .attention {
        grid-template-columns: 1fr;
    }

    .attention__note {
        text-align: center;
    }

    .attention__note--left {
        order: 2;
    }

    .attention img {
        order: 1;
    }

    .attention__note--right {
        order: 3;
    }

    .approach__diagram {
        width: 100%;
        margin-top: 4rem;
    }

    .approach-diagram__details {
        position: static;
        margin-top: 1.5rem;
    }

    .approach-detail {
        position: static;
        width: 100%;
        padding: 1rem 1.15rem;
        color: #fff;
        background: rgba(3, 21, 38, .72);
        border: 1px solid var(--detail-color);
        border-radius: .5rem;
        font-size: .85rem;
    }

    .approach-detail h3 {
        display: block;
        font-size: .85rem;
    }

    .team-member {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        gap: 0;
    }

    .team-member__photo,
    .team-member__meta,
    .team-member__bio {
        grid-column: 1;
        grid-row: auto;
    }

    .team-member__photo {
        margin-top: 2.5rem;
    }

    .team-member__meta {
        padding-block: 1.5rem 2rem;
    }

    .team-member__bio {
        padding: 0 0 2.5rem;
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .team-member + .team-member {
        margin-top: 2.5rem;
    }

    .clients__list {
        display: grid;
        height: auto;
        grid-template-columns: repeat(2, 1fr);
        align-items: center;
        gap: 3rem 1.5rem;
    }

    .clients__item {
        position: static;
        width: 100%;
        transform: none;
    }

    .clients__logo {
        width: min(100%, var(--logo-max-width));
        margin-inline: auto;
    }

    .clients__item:last-child {
        grid-column: 1 / -1;
    }

    .projects__grid {
        grid-template-columns: 1fr;
    }

    .project-index,
    .project-preview,
    .contact-page,
    .sitemap-page__grid {
        grid-template-columns: 1fr;
    }

    .project-index {
        gap: 3.5rem;
    }

    .case-hero {
        min-height: 34rem;
        aspect-ratio: auto;
    }

    .case-hero__copy {
        top: auto;
        right: 1.25rem;
        bottom: 2rem;
        left: 1.25rem;
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .case-hero__copy h1 {
        font-size: 2rem;
    }

    .case-hero__copy p {
        max-width: 26rem;
        font-size: .95rem;
        line-height: 1.35;
    }

    .case-hero__copy p:last-child {
        display: none;
    }

    .case-gallery,
    .case-gallery--last {
        padding: 3rem 1.25rem;
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .case-gallery__wide {
        padding: 3rem 1.25rem;
    }

    .gaman-hero__title {
        left: 1.75rem;
        max-width: 70%;
    }

    .gaman-hero__title::before {
        right: calc(100% + .65rem);
        width: 2px;
    }

    .gaman-social-mobile {
        aspect-ratio: auto;
        min-height: 31rem;
        padding-top: 2rem;
    }

    .gaman-social-mobile img {
        width: min(72%, 22rem);
        height: auto;
    }

    .grupo-gr-hero {
        min-height: 24rem;
        aspect-ratio: auto;
    }

    .grupo-gr-hero h1 {
        top: 4.5rem;
        left: 1.25rem;
    }

    .grupo-gr-desktop__logo {
        left: 10%;
        width: 80%;
    }

    .grupo-gr-desktop__site {
        left: 14%;
        width: 72%;
    }

    .grupo-gr-mobile__screen {
        left: 28%;
        width: 44%;
    }

    .vines-hero {
        min-height: 32rem;
        aspect-ratio: auto;
    }

    .vines-hero__copy {
        height: 56%;
    }

    .vines-hero h1 {
        top: 24%;
        left: 1.25rem;
    }

    .vines-hero p {
        top: 48%;
        right: auto;
        left: 1.25rem;
        width: calc(100% - 2.5rem);
        max-width: 28rem;
        font-size: 1rem;
        line-height: 1.35;
    }

    .vines-pair--opening,
    .vines-pair--closing {
        aspect-ratio: auto;
        padding: 1.25rem;
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .vines-pair--opening figure {
        aspect-ratio: 4 / 5;
    }

    .vines-pair--closing figure {
        aspect-ratio: 4 / 3;
    }

    .menoyo-intro {
        min-height: 42rem;
        aspect-ratio: auto;
    }

    .menoyo-intro__copy {
        height: 46%;
    }

    .menoyo-intro__copy h1 {
        top: 16%;
        left: 1.25rem;
    }

    .menoyo-intro__copy p,
    .menoyo-intro__copy p:nth-of-type(1),
    .menoyo-intro__copy p:nth-of-type(2) {
        left: 1.25rem;
        width: calc(100% - 2.5rem);
        max-width: 31rem;
        font-size: .92rem;
        line-height: 1.35;
    }

    .menoyo-intro__copy p:nth-of-type(1) {
        top: 40%;
    }

    .menoyo-intro__copy p:nth-of-type(2) {
        top: 64%;
    }

    .menoyo-brand {
        top: 54%;
        width: 43%;
        height: 20%;
    }

    .menoyo-brand--before {
        left: 4%;
    }

    .menoyo-brand--after {
        left: 53%;
    }

    .menoyo-brand__label {
        top: 77%;
        font-size: .9rem;
    }

    .menoyo-brand__label--before {
        left: 8%;
    }

    .menoyo-brand__label--after {
        left: 57%;
    }

    .figma-case__hero--ferroparts,
    .figma-case__hero--indecar,
    .figma-case__hero--oval,
    .figma-case__hero--aj-rios,
    .figma-case__hero--the-hive,
    .figma-case__hero--ferroparts-packaging,
    .figma-case__hero--brand {
        min-height: 40rem;
        aspect-ratio: auto;
    }

    .figma-case__hero--arbumasa {
        min-height: 34rem;
        aspect-ratio: auto;
    }

    .figma-case__hero--arbumasa > video {
        position: absolute;
        inset: 0;
    }

    .figma-case__intro--arbumasa {
        height: auto;
        min-height: 22rem;
        background: rgba(0, 0, 0, .62);
    }

    .figma-editorial-hero {
        min-height: calc(18rem + 56.25vw);
        aspect-ratio: auto;
    }

    .figma-editorial-hero .figma-case__intro {
        position: relative;
        height: auto;
        background: #004d59;
    }

    .figma-editorial-hero > img {
        height: 56.25vw;
    }

    .figma-case__hero > img {
        position: absolute;
        inset: 0;
    }

    .figma-case__hero--the-hive,
    .figma-case__hero--ferroparts-packaging {
        min-height: calc(18rem + 56.25vw);
    }

    .figma-case__hero--the-hive > img,
    .figma-case__hero--ferroparts-packaging > img {
        inset: 18rem 0 auto;
        width: 100%;
        height: 56.25vw;
        object-fit: cover;
    }

    .figma-case__hero--oval,
    .figma-case__hero--aj-rios {
        min-height: calc(18rem + 56.25vw);
        background: #000;
    }

    .figma-case__hero--oval > img,
    .figma-case__hero--aj-rios > img {
        top: 18rem;
        height: 56.25vw;
        object-fit: cover;
    }

    .figma-case__intro,
    .figma-case__hero--indecar .figma-case__intro {
        display: grid;
        height: auto;
        min-height: 18rem;
        padding: 3.5rem 1.25rem 2rem;
        grid-template-columns: 1fr;
        gap: 1.1rem;
    }

    .figma-case__intro--single p,
    .figma-case__intro--far p,
    .figma-case__intro--standalone p {
        grid-column: 1;
    }

    .figma-case__intro h1 {
        font-size: 1.75rem;
    }

    .figma-case__intro p {
        max-width: 32rem;
        font-size: .95rem;
        line-height: 1.35;
    }

    .figma-case__intro--standalone {
        position: relative;
        min-height: auto;
    }

    .figma-case__hero .figma-case__intro--transparent {
        background: rgba(0, 0, 0, .68);
        text-shadow: 0 1px 1px rgba(0, 0, 0, .35);
    }

    .figma-case__hero--the-hive .figma-case__intro--transparent {
        background: #009fb1;
        text-shadow: none;
    }

    .web-case__hero {
        min-height: 27rem;
        aspect-ratio: auto;
    }

    .web-case__hero h1 {
        top: 3rem;
        left: 1.25rem;
    }

    .web-case__desktop > img {
        left: 15%;
        width: 70%;
    }

    .web-case__mobile {
        min-height: 40rem;
        aspect-ratio: auto;
    }

    .web-case__mobile > img,
    .web-case__mobile > video {
        width: min(72%, 22rem);
        height: auto;
        aspect-ratio: 1170 / 2532;
        border-width: .2rem;
        border-radius: 1.35rem;
    }

    .kautapen-hero__title {
        top: 3.25rem;
        left: 1.25rem;
        font-size: 1.45rem;
    }

    .kautapen-logo-pair {
        aspect-ratio: auto;
        grid-template-columns: 1fr;
    }

    .kautapen-logo-pair figure {
        aspect-ratio: 1 / .91;
        padding: 8%;
    }

    .kautapen-symbols {
        min-height: 18rem;
        padding: 2rem 1.25rem;
        aspect-ratio: auto;
    }

    .figma-case--ferroparts .figma-case__panel,
    .figma-case--indecar .figma-case__panel,
    .figma-case--oval .figma-case__panel {
        margin-top: .65rem;
    }

    .figma-case--sky-clinic .figma-case__panel--sky-opening {
        margin-bottom: 1.25rem;
    }

    .ferroparts-packaging-pair,
    .ferroparts-packaging-pair--bags {
        padding: 1.25rem;
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .ferroparts-packaging-pair figure,
    .ferroparts-packaging-pair--bags figure {
        aspect-ratio: 4 / 3;
    }

    .ferroparts-packaging-closing {
        min-height: 24rem;
        padding: 1.25rem;
        aspect-ratio: auto;
    }

    .aj-rios-social {
        padding: 1.25rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.25rem;
    }

    .aj-rios-newsletters {
        padding: 0 1.25rem 1.25rem;
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .aj-rios-newsletters figure {
        max-height: 48rem;
    }

    .figma-case__hero--bingo {
        min-height: 32rem;
        aspect-ratio: auto;
    }

    .bingo-hero__title {
        top: 5rem;
        left: 1.25rem;
    }

    .figma-case__intro--transparent h1::after,
    .bingo-hero__title h1::after {
        width: 4rem;
    }

    .project-next--gaman {
        min-height: auto;
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .project-next--gaman a {
        font-size: .75rem;
    }

    .site-footer__grid {
        grid-template-columns: 1fr;
        gap: 3rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
