.location { display: block; position: relative; @include bp (sm) { text-align: center; } a { display: flex; align-items: center; text-decoration: none; @include bp (sm) { flex-direction: column; justify-content: center; padding: 24px; } // Background circle &:after { display: none; opacity: 0; content: ""; position: absolute; pointer-events: none; top: 50%; left: 50%; width: 256px; height: 256px; transform: translate3d(-50%, -50%, 0) scale(0.8); transform-origin: 50% 50%; background-color: rgba($color-tertiary, 0.1); border-radius: 100%; transition: transform 0.75s var(--ease-quart), opacity 0.75s var(--ease-quart); @include bp (sm) { display: block; } } // Hover &:hover { strong { color: $color-tertiary; } &:after { opacity: 1; transform: translate3d(-50%, -50%, 0); } } } // Flag &__flag { img { display: block; margin: 0 auto; border-radius: 100%; margin-right: 24px; @include bp (sm) { margin-right: 0; } } } // Location name &__name { display: block; color: $color-secondary; margin: 0 0 4px; font-size: rem(32px); font-family: $font-serif; font-weight: 300; line-height: 1.2; transition: color 0.75s var(--ease-quart); @include bp (sm) { margin: 20px 0 8px; font-size: rem(48px); } } // Country &__country { color: $color-tertiary; } // Badge .badge { display: inline-flex; @include bp (sm) { position: absolute; left: 50%; bottom: -8px; transform: translateX(-50%); } } // Photos &__photos { display: none; opacity: 0; position: absolute; z-index: 2; top: -10%; left: 50%; width: 240px; height: 160px; background: #444; border-radius: 6px; transform: translate3d(calc(-50% + var(--offset-x)), calc(-50% + var(--offset-y)), 0) rotate(var(--rotate)); overflow: hidden; box-shadow: 0 8px 8px rgba(#000, 0.1), 0 16px 28px rgba(#000, 0.12); pointer-events: none; transition: opacity 0.5s var(--ease-quart); @include bp (sm) { display: block; } } &:hover { .location__photos { opacity: 1; } } }