@charset "utf-8";

/* =========================================================
   CASE STUDIES
   Manual, reusable case-study components.
   Uses the site's existing container > gridContainer > content system.
   No Flexbox and no page-specific selectors.
   ========================================================= */


/* --------------------------
   CASE STUDY HERO
   -------------------------- */
.case-hero-cta {
    margin-top: 24px;
    margin-bottom: 0px;
}

/* --------------------------
   CATEGORY NAVIGATION
   -------------------------- */
.case-nav-wrap {
    position: sticky;
    top: 0px;
    z-index: 900;
    padding-top: 26px;
    padding-bottom: 26px;
    border-bottom: 0px;
}

.case-nav {
    width: 100%;
    display: table;
    table-layout: fixed;
}

.case-nav a {
    display: table-cell;
    padding: 13px 12px;
    border-right: 10px solid #FFFFFF;
    background-color: #F0F3F5;
    color: #062B4D;
    text-decoration: none;
    text-align: center;
    font-size: 15px;
    line-height: 20px;
    font-weight: 600;
}

.case-nav a:last-child { border-right: 0px; }

.case-nav a:hover,
.case-nav a.selected {
    color: #FFFFFF;
    background-color: #00A0DF;
}

/* --------------------------
   LANDING / CATEGORY GRIDS
   -------------------------- */
.case-list-section {
    padding-top: 65px;
    padding-bottom: 65px;
}

.case-list-section + .case-list-section { padding-top: 65px; }

.case-list-heading {
    position: relative;
    margin-bottom: 28px;
    padding-right: 125px;
}

.case-list-heading h2 {
    margin-bottom: 8px;
    font-size: 34px;
    line-height: 38px;
}

.case-list-heading p {
    max-width: 900px;
    margin-bottom: 0px;
}

.case-list-heading .case-view-all {
    position: absolute;
    right: 0px;
    top: 8px;
    color: #00A0DF;
    text-decoration: none;
    font-size: 15px;
    line-height: 20px;
    font-weight: 600;
}

.case-list-heading .case-view-all:hover { color: #062B4D; }

.case-card-row {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 2.45%;
    row-gap: 30px;
}

/* Clearfix pseudo-elements would otherwise occupy grid cells. */
.case-card-row::before,
.case-card-row::after { content: none; }

.case-card {
    min-width: 0px;
    display: grid;
    grid-template-rows: 280px minmax(0, 1fr);
    border: 1px solid #D6E0E6;
    background-color: #FFFFFF;
}

.case-card-photo {
    width: 100%;
    height: 280px;
    overflow: hidden;
    background-color: #DDE4E8;
}

.case-card-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center center;
}

.case-card-copy {
    min-height: 230px;
    padding: 20px 20px 62px 20px;
    position: relative;
}

.case-card-copy h3 {
    margin-bottom: 12px;
    font-size: 22px;
    line-height: 26px;
    text-transform: uppercase;
    letter-spacing: 0px;
}

.case-card-location,
.case-card-type,
.case-card-value {
    margin-bottom: 7px;
    font-size: 15px;
    line-height: 20px;
}

.case-card-type strong,
.case-card-value strong { font-weight: 700; }

.case-card-link {
    display: inline-block;
    position: absolute;
    left: 20px;
    bottom: 22px;
    color: #00A0DF;
    text-decoration: none;
    font-size: 15px;
    line-height: 20px;
    font-weight: 700;
}

.case-card-link:hover { color: #062B4D; }

.case-card-placeholder .case-card-photo {
    background-color: #E8EDF0;
}

.case-card-placeholder .case-card-photo img {
    opacity: 0.22;
    filter: grayscale(100%);
}

.case-card-placeholder .case-card-copy {
    min-height: 135px;
}

.case-empty {
    padding: 30px 0px 5px 0px;
    border-top: 1px solid #D6E0E6;
}

.case-empty p { max-width: 760px; margin-bottom: 0px; }

/* --------------------------
   INDIVIDUAL PROJECT
   -------------------------- */
.case-project-wrap {
    padding-top: 65px;
    padding-bottom: 50px;
}

.case-project-top {
    width: 100%;
    display: table;
    table-layout: fixed;
}

.case-project-media,
.case-project-facts {
    display: table-cell;
    vertical-align: top;
}

.case-project-media {
    width: 65%;
    padding-right: 34px;
    position: relative;
}

/* The facts panel sets the table-row height; the image fills the same height. */
.case-project-media img {
    position: absolute;
    top: 0px;
    right: 34px;
    bottom: 0px;
    left: 0px;
    width: calc(100% - 34px);
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center 28%;
    animation: caseProjectPan 18s ease-in-out infinite alternate;
}

@keyframes caseProjectPan {
    0% { object-position: center 22%; }
    100% { object-position: center 78%; }
}

.case-project-facts {
    width: 35%;
    padding: 30px;
    background-color: #F3F5F6;
}

.case-project-kicker {
    margin-bottom: 8px;
    color: #00A0DF;
    font-size: 14px;
    line-height: 18px;
    font-weight: 700;
    text-transform: uppercase;
}

.case-project-facts h1 {
    margin-bottom: 14px;
    font-size: 36px;
    line-height: 40px;
    letter-spacing: -0.5px;
    text-transform: uppercase;
}

.case-project-location {
    margin-bottom: 24px;
    font-size: 16px;
    line-height: 22px;
    font-weight: 600;
}

.case-facts {
    width: 100%;
    border-collapse: collapse;
}

.case-facts th,
.case-facts td {
    padding: 12px 0px;
    border-top: 1px solid #D4DEE4;
    vertical-align: top;
    text-align: left;
    font-size: 14px;
    line-height: 20px;
}

.case-facts th {
    width: 48%;
    padding-right: 10px;
    font-weight: 700;
}

.case-facts td { font-weight: 400; }

.case-overview-section {
    padding-top: 20px;
    padding-bottom: 55px;
}

.case-overview-section h2,
.case-gallery-section h2 {
    margin-bottom: 22px;
    padding-bottom: 0px;
    border-bottom: 0px;
    font-size: 34px;
    line-height: 38px;
    text-transform: uppercase;
}

.case-overview-copy {
    width: 100%;
    max-width: 1080px;
}

.case-overview-copy p:last-child { margin-bottom: 0px; }

.case-gallery-section {
    padding-top: 0px;
    padding-bottom: 70px;
}

.case-gallery {
    width: 100%;
    font-size: 0px;
}

.case-gallery-item {
    width: 23.5%;
    display: inline-block;
    vertical-align: top;
    margin: 0px 2% 24px 0px;
}

.case-gallery-item:nth-child(4n) { margin-right: 0px; }

.case-gallery-item img {
    width: 100%;
    height: auto;
    display: block;
}

/* Reusable modifier for landscape lead images where the normal object-position pan
   has too little vertical crop to be visible. The oversized image pans upward
   while remaining clipped to the equal-height media panel. */
.case-project-media-landscape {
    overflow: hidden;
}

.case-project-media-landscape img {
    top: 0px;
    bottom: auto;
    height: 120%;
    object-position: center center;
    animation: caseProjectPanLandscape 18s ease-in-out infinite alternate;
}

@keyframes caseProjectPanLandscape {
    0% { top: 0px; }
    100% { top: -20%; }
}


.case-project-back {
    width: 100%;
    padding: 23px 0px;
    border-top: 1px solid #D6E0E6;
}

.case-project-back a {
    color: #062B4D;
    text-decoration: none;
    font-size: 15px;
    line-height: 20px;
    font-weight: 600;
}

.case-project-back a:hover { color: #00A0DF; }

@media (prefers-reduced-motion: reduce) {
    .case-project-media img {
        animation: none;
        object-position: center center;
    }

    .case-project-media-landscape img {
        top: -10%;
    }
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media only screen and (max-width: 1000px) {
    .case-card { grid-template-rows: 240px minmax(0, 1fr); }
    .case-card-photo { height: 240px; }
    .case-card-copy { min-height: 245px; padding: 18px 18px 58px; }
    .case-card-link { left: 18px; bottom: 18px; }

    .case-project-media { width: 60%; padding-right: 24px; }
    .case-project-facts { width: 40%; padding: 24px; }
    .case-project-facts h1 { font-size: 31px; line-height: 35px; }

    .case-gallery-item { width: 31.7%; margin-right: 2.45%; }
    .case-gallery-item:nth-child(4n) { margin-right: 2.45%; }
    .case-gallery-item:nth-child(3n) { margin-right: 0px; }
}

@media only screen and (max-width: 800px) {
  .case-nav-wrap { padding: 18px 0px; }
    .case-nav { display: block; }
    .case-nav a {
        width: 50%;
        float: left;
        display: block;
        border-right: 8px solid #FFFFFF;
        border-bottom: 8px solid #FFFFFF;
        padding: 12px 8px;
        font-size: 14px;
        line-height: 18px;
    }
    .case-nav a:nth-child(2n) { border-right: 0px; }
    .case-nav a:nth-child(3),
    .case-nav a:nth-child(4) { border-bottom: 0px; }

    .case-list-section { padding-top: 52px; padding-bottom: 48px; }
    .case-list-section + .case-list-section { padding-top: 52px; }
    .case-list-heading { padding-right: 0px; }
    .case-list-heading h2 { font-size: 29px; line-height: 33px; }
    .case-list-heading .case-view-all {
        position: static;
        display: inline-block;
        margin-top: 8px;
    }

    .case-card-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 3%;
    }
    .case-card { grid-template-rows: 300px minmax(0, 1fr); }
    .case-card-photo { height: 300px; }
    .case-card-copy { min-height: 225px; }

    .case-project-wrap { padding-top: 52px; padding-bottom: 35px; }
    .case-project-top { display: block; }
    .case-project-media,
    .case-project-facts {
        width: 100%;
        display: block;
    }
    .case-project-media { padding-right: 0px; margin-bottom: 28px; position: static; }
    .case-project-media img {
        position: static;
        width: 100%;
        height: 420px;
    }
    .case-project-facts { padding: 30px; }

    .case-overview-section { padding-bottom: 45px; }
    .case-overview-section h2,
    .case-gallery-section h2 { font-size: 30px; line-height: 34px; }

    .case-gallery-item { width: 48.5%; margin-right: 3%; margin-bottom: 18px; }
    .case-gallery-item:nth-child(3n) { margin-right: 3%; }
    .case-gallery-item:nth-child(2n) { margin-right: 0px; }

    .case-project-media-landscape { overflow: visible; }
    .case-project-media-landscape img {
        top: auto;
        height: 420px;
        animation: caseProjectPan 18s ease-in-out infinite alternate;
    }
}

@media only screen and (max-width: 481px) {
    .case-nav a {
        width: 100%;
        float: none;
        border-right: 0px;
        border-bottom: 7px solid #FFFFFF;
        text-align: left;
        padding-left: 16px;
    }
    .case-nav a:nth-child(3) { border-bottom: 7px solid #FFFFFF; }
    .case-nav a:last-child { border-bottom: 0px; }

    .case-list-section { padding-top: 45px; padding-bottom: 40px; }
    .case-list-heading h2 { font-size: 27px; line-height: 31px; }
    .case-card-row {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 24px;
    }
    .case-card { grid-template-rows: 360px auto; }
    .case-card-photo { height: 360px; }
    .case-card-copy { min-height: 0px; }

    .case-project-wrap { padding-top: 45px; }
    .case-project-media img { height: 300px; }
    .case-project-facts { padding: 24px 20px; }
    .case-project-facts h1 { font-size: 29px; line-height: 33px; }
    .case-facts th,
    .case-facts td { font-size: 13px; line-height: 19px; }

    .case-overview-section h2,
    .case-gallery-section h2 { font-size: 27px; line-height: 31px; }

    .case-gallery-item {
        width: 100%;
        display: block;
        margin-right: 0px;
        margin-bottom: 18px;
    }
    .case-project-media-landscape img { height: 300px; }
}

/* --------------------------
   SIMPLE CARDS / LABELLED PHOTO GALLERY
   -------------------------- */
.case-card-simple .case-card-copy {
    min-height: 145px;
}

.case-list-heading-wide {
    padding-right: 0px;
}

.case-gallery-labelled .case-gallery-item {
    width: 31.7%;
    margin-right: 2.45%;
    margin-bottom: 30px;
    background-color: #FFFFFF;
    border: 1px solid #D6E0E6;
}

.case-gallery-labelled .case-gallery-item:nth-child(4n) {
    margin-right: 2.45%;
}

.case-gallery-labelled .case-gallery-item:nth-child(3n) {
    margin-right: 0px;
}

.case-gallery-labelled .case-gallery-item img {
    width: 100%;
    height: 300px;
    display: block;
    object-fit: cover;
    object-position: center center;
}

.case-gallery-labelled figcaption {
    padding: 16px 18px 17px 18px;
    color: #062B4D;
    font-size: 17px;
    line-height: 22px;
    font-weight: 700;
    text-transform: uppercase;
}

@media only screen and (max-width: 800px) {
    .case-gallery-labelled .case-gallery-item {
        width: 48.5%;
        margin-right: 3%;
    }
    .case-gallery-labelled .case-gallery-item:nth-child(3n) {
        margin-right: 3%;
    }
    .case-gallery-labelled .case-gallery-item:nth-child(2n) {
        margin-right: 0px;
    }
    .case-gallery-labelled .case-gallery-item img {
        height: 300px;
    }
}

@media only screen and (max-width: 481px) {
    .case-gallery-labelled .case-gallery-item {
        width: 100%;
        display: block;
        margin-right: 0px;
        margin-bottom: 22px;
    }
    .case-gallery-labelled .case-gallery-item:nth-child(3n) {
        margin-right: 0px;
    }
    .case-gallery-labelled .case-gallery-item img {
        height: 320px;
    }
}
