.photo { /* ** Location */ &__location { margin-bottom: 32px; @include breakpoint (sm) { margin-bottom: 56px; } @include breakpoint (xs) { padding: 0; } h2 { text-align: left; white-space: pre-line; @include breakpoint (xs) { font-size: rem(40px); } } p { color: $color-lightgray; margin-top: 16px; } } /* ** Image */ &__image { position: relative; display: flex; justify-content: flex-start; @include breakpoint (xs) { padding: 0; } // Alignment (left or right for list view) .align { position: relative; width: 100%; max-width: 1180px; margin: 0; padding: 0; } // Image container &--img { overflow: hidden; position: relative; z-index: 2; display: block; width: 100%; border-radius: 0; box-shadow: 0 8px 18px rgba(#715E4E, 0.2); user-select: none; @include breakpoint (sm) { border-radius: 8px; } img { display: block; width: 100%; height: auto; } // Overlay &:after { content: ""; position: absolute; z-index: 2; opacity: 0; pointer-events: none; top: 0; left: 0; bottom: 0; right: 0; background-color: $color-primary; display: block; z-index: 3; transition: opacity 150ms $ease-inout; } } a { display: block; width: 100%; text-decoration: none; // Hover &:hover { cursor: url(#{$dir-img}/icons/zoom.svg) 0 0, pointer; .photo__image--img:after { opacity: 0.6; } } } // Date (on the side) &--date { display: block; margin-top: 16px; padding: 0 pxVW(128); font-size: rem(14px); color: $color-lightgray; @include breakpoint (sm) { position: absolute; z-index: 3; left: calc(100% + 30px); bottom: 0; transform: rotate(270deg); transform-origin: 0 0; white-space: nowrap; line-height: 0; padding: 0; } } // Photo number &--number { position: absolute; bottom: -80px; right: 24px; font-family: $font-serif-extra; color: rgba($color-tertiary, 0.5); font-size: rem(124px); pointer-events: none; user-select: none; @include breakpoint (sm) { font-size: pxVW(300); left: 92%; top: 50%; z-index: 1; transform: translate(-50%, -50%); } @include breakpoint (xxl) { font-size: rem(300px); } } } }