/* ---- FOR USE WITH SPECIFIC ELEMENTS -------*/


/* for parent elements with child elements that are floated */
.clearfix {
    zoom: 1;
}

.clearfix:after {
    content: '.';
    clear: both;
    display: block;
    height: 0;
    visibility: hidden;
}

/* for increasing legibility of priority text */
/* {text-rendering: optimizeLegibility;} */

/* -------------------------------- OVERALL SETUP -----------------------*/

:root {
    --background-main: #000000;
    --background-secondary: #171717;
    --text: #ffffff;
    --neutral-gray: #5C5C5C;
    --primary-one: #7870A4;
    --primary-two: #aea6d9;
    --secondary-one: #E51561;
    --secondary-two: #EF508A;
    --gradient: linear-gradient(to bottom, rgb(174, 166, 217, .3), #000000);
    --gradient-reverse: linear-gradient(to top, rgb(174, 166, 217, .3), #000000);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

*:focus-visible {
    outline: 2px solid var(--primary-one);
    outline-offset: 5px;
}

*:focus:not(:focus-visible) {
    outline: 0;
}

html,
body {
    height: auto;
    min-height: 100%;
    color: var(--text);
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 400;
    background-color: var(--background-main);
    letter-spacing: .05em;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 16px;
    scroll-padding-top: calc(85px + 20px);
    scroll-behavior: smooth;
    transition: background-color 0.3s ease-in-out, 0.3s ease-in-out;
    margin: 0;
    padding: 0;
}

body {
    display: flex;
}

body.light,
html.light {
    --background-main: #ffffff;
    --background-secondary: #dddcdc;
    --text: #000000;
    --gradient: linear-gradient(to bottom, #AEA6D9, #ffffff);
    --gradient-reverse: linear-gradient(to top, #AEA6D9, #ffffff);
}

body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('Img/prints.png');
    background-color: transparent;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: 85% 0;
    background-attachment: fixed;
    transform-origin: center center;
    transform: rotate(20deg) scale(.9) translateY(-20%);
    opacity: .25;
    z-index: 1;
}

.modal-open {
    overflow: hidden;
}

.break-url {
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
    white-space: normal;
}

.sr-only {
    position: absolute;
    width: .0625em;
    height: .0625em;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: #fff;
    color: #000;
    padding: 8px 16px;
    z-index: 1000;
    border-radius: 4px;
    transition: top 0.2s ease;
}

.skip-link:focus {
    top: 0;
}

/*--------------------------HTML ELEMENTS-----------------------------*/

h1,
h2,
h3,
h4,
h5 {
    font-family: 'Luckiest Guy', cursive;
    font-weight: 400;
}

.h1-lg {
    font-size: 3.125em;
    letter-spacing: .15em;
}

.h1-sm {
    font-size: 2.1875em;
    letter-spacing: .15em;
    font-family: 'Luckiest Guy', cursive;
}

h2 {
    font-size: 2em;
    letter-spacing: .1em;
}

h3 {
    font-size: 1.375em;
    letter-spacing: .05em;
}

h4 {
    font-size: 1.125em;
    letter-spacing: .05em;
}


i {
    font-size: 1.625em;
    text-decoration: none;
    color: var(--primary-one);
}

input {
    background-color: var(--background-secondary);
    display: flex;
    align-items: center;
    font-size: 1em;
    padding: 5px;
}

:-ms-input-placeholder {
    color: var(--neutral-gray);
}

::-ms-input-placeholder {
    color: var(--neutral-gray);
}

::placeholder,
:-ms-input-placeholder,
::-ms-input-placeholder {
    color: var(--neutral-gray);
}

img,
picture {
    width: 100%;
    height: auto;
    max-height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
}

main {
    flex: 1;
    width: 100vw;
    padding: 133px 25px 210px 25px;
    position: relative;
    z-index: 2;
}

p {
    margin: 0;
    padding: 0;
}

.paragraph-1 {
    font-size: 1.375em;
}

.paragraph-2 {
    font-size: 1.125em;
}

.paragraph-3 {
    font-size: 1em;
}

section {
    width: 100%;
    height: auto;
}

.section-leaving {
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}

.section-active {
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
}

textarea {
    border-color: var(--neutral-gray);
}

ul {
    padding-left: 25px;
    padding-bottom: 10px;
}

ul li {
    font-size: 1em;
    display: list-item;
    padding-bottom: 5px;
}

video {
    width: 100%;
    height: auto;
    max-height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
}

/*---------------------REUSABLE CLASSES-------------------------*/

/*---------BUTTONS----------*/
.btn {
    width: 200px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 50px;
    background-color: var(--background-main);
    color: var(--text-dark);
    border: 2px solid var(--primary-one);
    box-shadow: none;
    font-size: 1.125em;
    padding: 5px;
    cursor: pointer;
    text-decoration: none;
}

.btn:hover {
    background-color: var(--primary-two);
}

.btn:active {
    background-color: var(--primary-two);
    box-shadow: inset 0px 4px 4px 0px rgba(0, 0, 0, 0.5);
}

.btn-cta {
    border: 1px solid var(--secondary-one);
    text-decoration: none;
}

.btn-cta:hover {
    background-color: var(--secondary-two);
    text-decoration: none
}

.btn-cta:active {
    background-color: var(--secondary-two);
}

.btn-icon-lg,
.btn-icon-sm {
    text-decoration: none;
    border-radius: 50%;
    padding: 5px;
    position: relative;
}

.btn-icon-lg i,
.btn-icon-sm i {
    position: absolute;
}

.btn-icon-lg {
    width: 50px;
    height: 50px;
    min-width: 50px;
    min-height: 50px;
}

.btn-icon-sm {
    width: 35px;
    height: 35px;
    min-width: 35px;
    min-height: 35px;
}

.btn-icon-sm i {
    font-size: 1.25em;
}

.btn-icon-lg:hover,
.btn-icon-lg:active,
.btn-icon-sm:hover,
.btn-icon-sm:active {
    background-color: var(--background-main);
    box-shadow: none;
}

.btn-img {
    width: 100%;
    height: 100%;
    background-color: transparent;
    border: none;
    box-shadow: none;
    cursor: pointer;
}

.btn-img:hover,
.btn-img:active {
    background-color: transparent;
    border: none;
    box-shadow: none;
}

.btn-link {
    width: auto;
    height: auto;
    background-color: transparent;
    box-shadow: none;
    border: none;
    -moz-column-gap: 10px;
    column-gap: 10px;
    color: var(--secondary-one);
    text-decoration: underline;
    padding: 0;
    white-space: nowrap;
}

.btn-link:hover,
.btn-link:active {
    color: var(--secondary-two);
    text-decoration: underline;
    background-color: transparent;
    border: none;
    box-shadow: none;
}

.btn-replay {
    position: absolute;
    background-color: transparent;
    color: var(--text);
    box-shadow: none;
    opacity: 0;
    z-index: 3;
    font-size: 250%;
    transform: translate(-50%, -50%);
    top: 50%;
    left: 50%;
}

.btn-replay:hover,
.btn-replay:active {
    background-color: transparent;
    box-shadow: none;
    border: none;
}

/*---------COLORS---------*/

.green {
    color: var(--primary-one);
}

.coral {
    color: var(--secondary-one);
}

/*---------ICONS----------*/

.heart {
    background-color: transparent;
    border: none;
    padding: 0;
}

.heart:hover,
.heart:active {
    border: none;
    background-color: transparent;
}

.fa-regular.fa-heart {
    stroke-width: 1px;
    font-size: 3em;
}

.fa-solid.fa-heart {
    color: var(--background-main);
    font-size: 2.8em;
}

.fa-paw {
    width: 27px;
    height: auto;
    margin-left: -.05em;
}

/*------------CONTAINERS-------------*/


.flex,
.flex-sm {
    width: auto;
    height: auto;
    display: flex;
}

.flex {
    row-gap: 20px;
    -moz-column-gap: 20px;
    column-gap: 20px;
}

.flex-sm {
    row-gap: 10px;
    -moz-column-gap: 10px;
    column-gap: 10px;
}

.col {
    flex-direction: column;
}

.split {
    width: 50%;
}

.container-video {
    display: none;
}

.video-controls {
    align-items: center;
    justify-content: center;
}

/*----------------- Images----------------- */
.img-reverse {
    width: auto;
    max-width: 100%;
    height: 100%;
    image-rendering: smooth;
}

.img-lt,
.img-dk {
    transition: opacity .3s ease-in-out;
}

.img-dk {
    opacity: 1;
    display: flex;
}

.img-lt {
    opacity: 0;
    display: none;
}

/*-------POPUPS-------*/

.popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    justify-content: center;
    align-items: center;
    z-index: 998;
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    transform: scale(0);
    transition: opacity .5s ease-in-out, transform .5s ease-in-out;
}

.popup {
    padding: 25px;
    width: 70%;
    max-height: 90vh;
    background-color: var(--background-secondary);
    box-shadow: 0 20px 40px 0px rgba(0, 0, 0, 0.5);
    overflow-x: hidden;
}

.show-popup {
    -webkit-animation: popUp 0.75s ease-out forwards;
    animation: popUp 0.75s ease-out forwards;
}

.hide-popup {
    -webkit-animation: popOut 0.75s ease-out forwards;
    animation: popOut 0.75s ease-out forwards;
}

.popup-row-one {
    justify-content: space-between;
}

.popup-content {
    overflow-y: auto;
    overflow-x: hidden;
    row-gap: 10px;
    position: relative;
}

.popup-content ul li {
    margin-left: 25px;
}

/* -----------------ANIMATIONS-------------------------*/

@-webkit-keyframes popUp {
    0% {
        opacity: 0;
        transform: scale(0);
    }

    80% {
        opacity: 1;
        transform: scale(1.2);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes popUp {
    0% {
        opacity: 0;
        transform: scale(0);
    }

    80% {
        opacity: 1;
        transform: scale(1.2);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@-webkit-keyframes popOut {
    0% {
        opacity: 1;
        transform: scale(1);
    }

    20% {
        opacity: 1;
        transform: scale(1.2);
    }

    100% {
        opacity: 0;
        transform: scale(0);
    }
}

@keyframes popOut {
    0% {
        opacity: 1;
        transform: scale(1);
    }

    20% {
        opacity: 1;
        transform: scale(1.2);
    }

    100% {
        opacity: 0;
        transform: scale(0);
    }
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}


/* --------------------HEADER---------------------------*/

header {
    position: fixed;
    z-index: 4;
    min-width: 100vw;
    height: 90px;
    background-image: var(--gradient);
    background-color: var(--background-main);
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.5);
    padding: 10px 25px 10px 25px;
    justify-content: space-between;
    align-items: center;
}

/* Logo */

#img-container-logo {
    width: auto;
    height: 80px;
}

.logo-mobile {
    display: none;
}

.company-name {
    font-size: 2.1875em;
    letter-spacing: .15em;
    font-family: 'Luckiest Guy', cursive;
    align-self: flex-end;
    color: var(--primary-one);
    text-shadow:
        -1px -1px 0 var(--neutral-gray),
        1px -1px 0 var(--neutral-gray),
        -1px 1px 0 var(--neutral-gray),
        1px 1px 0 var(--neutral-gray);
}

/*  Dark & Light Mode Switch */

#slider-desktop,
#slider-mobile {
    width: auto;
    align-items: flex-end;
    padding-bottom: 10px;
}

#slider-mobile {
    display: none;
    padding-bottom: 75px;
}

.container-slider {
    display: none;
    width: auto;
    -moz-column-gap: 5px;
    column-gap: 5px;
}

#slider-mobile .container-slider,
#slider-desktop .container-slider {
    display: flex;
}

.container-toggle {
    width: auto;
    height: auto;
}

#toggle-switch {
    position: relative;
    width: 63px;
    height: 24px;
    margin-right: 7px;
    background-color: var(--background-secondary);
    border: 3px solid var(--primary-one);
    border-radius: 50px;
    box-shadow: none;
    cursor: pointer;
    transition: background-color .5s ease-out;
}

.slider {
    position: absolute;
    width: 25px;
    height: 25px;
    top: -4px;
    transform: translateX(-30px);
    background-color: var(--primary-two);
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.5);
    border-radius: 50px;
    transition: transform .75s ease-out;
}

.light-mode-slider {
    transform: translateX(10px);
}

#slider-note {
    width: auto;
}

/* Navigation menu */

#nav-desktop {
    -moz-column-gap: 45px;
    column-gap: 45px;
    justify-content: flex-end;
    align-items: flex-end;
}

.nav-mobile {
    width: 100vw;
    height: 100vh;
    display: none;
    position: fixed;
    justify-content: space-between;
    top: 0;
    left: 0;
    padding: 35px;
    z-index: 999;
    background-color: var(--background-main);
    background-image: var(--gradient);
    transform: translateX(100%);
    transition: transform ease-out 1s, background-color 0.3s ease-in-out, color 0.3s ease-in-out;
}

.nav-mobile-appear {
    transform: translateX(0%);
}

.nav-mobile-buttons {
    height: 50%;
    max-height: 400px;
    justify-content: space-between;
}

#btn-nav-mobile {
    display: none;
}

.btn-nav {
    text-decoration: none;
    color: inherit;
    display: flex;
    align-items: center;
    -moz-column-gap: 10px;
    column-gap: 10px;
}

.btn-nav:hover,
.btn-nav:active {
    -webkit-text-decoration: underline var(--primary-one) solid;
    text-decoration: underline var(--primary-one) solid;
    text-underline-offset: 5px;
    text-decoration-thickness: 2px;
}

.btn-nav-active {
    cursor: default;
    pointer-events: none;
    -webkit-text-decoration: underline var(--primary-one) solid;
    text-decoration: underline var(--primary-one) solid;
    text-underline-offset: 5px;
    text-decoration-thickness: 2px;
}

/* --------------------HOME-------------------------*/


#index .split-divs {
    position: relative;
    z-index: 2;
}

#index .split-divs .split-one {
    width: auto;
}

#index .split-divs .split-two {
    flex: 1;
    justify-content: center;
}

.home-img {
    flex: 1;
    width: 100%;
    max-width: 700px;
}

/* --------------------ABOUT-------------------------*/

#about .flex {
    row-gap: 75px;
}

.about-img {
    width: 250px;
}

.about-img+div {
    flex: 1;
}

/* --------------------OWNERS-------------------------*/

#owners .flex {
    row-gap: 75px;
}

#owners h1 {
    width: 100%;
    text-align: center;
}

.subsection-title {
    font-family: 'luckiest guy', cursive;
    font-size: 2em;
    letter-spacing: .1em;
    width: 100%;
    padding-left: 15px;
    border-bottom: 1px solid var(--primary-one);
}

.owners-img {
    width: 178px;
    min-width: 178px;
    height: 178px;
    min-height: 178px;
    border: 2px solid var(--primary-one);
    border-radius: 50%;
    overflow: hidden;

}

.owners-img picture,
.owners-img img {
    -o-object-fit: cover;
    object-fit: cover;
}

.treats picture,
.treats img {
    width: 150%;
    position: relative;
    left: -12%;
}

/* --------------------SHELTERS-------------------------*/

#shelters .flex {
    width: 100%;
    row-gap: 75px;
}

#shelters h1,
#shelters .subsection-title {
    width: 100%;
    text-align: center;
    border-bottom: 1px solid var(--primary-one);
}

#shelters h1+div,
#shelters .subsection-title+div {
    width: 100%;
    align-items: center;
    justify-content: center;
}

.img-phone {
    width: 210px;
    min-width: 210px;
    height: auto;
}


/* --------------------CONTACT-------------------------*/

#contact h1 {
    width: 100%;
    text-align: center;
    padding: 0 25px 0 25px;
}

#contact> :first-child {
    width: 100%;
}

.map-container {
    width: 100%;
    max-width: 1000px;
    height: 500px;
    position: relative;
    border: 3px solid var(--primary-one);
    align-self: center;
}

#map {
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 1;
}

#map+div {
    height: auto;
    width: auto;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 2;
}

#map-feedback {
    margin-left: 25px;
}

#search-container {
    width: 300px;
    height: 45px;
    margin: 0 25px 25px 25px;
    border: 1px solid var(--neutral-gray);
    background-color: var(--background-secondary);
    display: flex;
    align-items: center;
}

#search-container input {
    flex: 1;
    background-color: transparent;
    border: none;
    color: var(--text);
}

#contact .btn-icon-sm {
    background-color: transparent;
    border: none;
    right: 5px;
}

#shelterList {
    align-items: center;
}

.shelter-item {
    display: flex;
    flex-direction: column;
    width: 275px;
    cursor: pointer;
    transition: background-color 0.3s ease-in-out, border 0.3s ease-in-out;
}

.shelter-item:hover {
    background-color: var(--secondary-two);
}

.shelter-item-active {
    border: 1px solid var(--secondary-one);
}

.shelter-item p {
    height: auto;
}

.shelter-item a {
    justify-content: flex-start;
}

.leaflet-popup-content .no-margin {
    margin: 0;
}

.leaflet-container .btn-link {
    justify-self: flex-start;
    color: var(--secondary-one);
}

.fa-spinner {
    position: absolute;
    z-index: 2;
    transform: translate(-50%, -50%) rotate(0deg);
    left: 50%;
    top: 50%;
    font-size: 400%;
    color: var(--neutral-gray);
    animation: spin 2s ease-in-out infinite;
}

/* -----------------------FOOTER----------------------------*/

footer {
    min-width: 100vw;
    height: 185px;
    padding: 10px 25px 20px 25px;
    justify-content: space-between;
    z-index: 4;
    background-color: transparent;
    box-shadow: none;
    position: fixed;
    bottom: 0;
    left: 0;
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.footer-bottom {
    background-image: var(--gradient-reverse);
    background-color: var(--background-main);
    box-shadow: 4px -4px 2px 0px rgba(0, 0, 0, 0.5);
}

.social-media {
    row-gap: 25px;
}

.social-media i {
    color: var(--secondary-one);
    margin-top: .05em;
}

.social-media i:hover,
.social-media i:active {
    color: var(--secondary-two);
}

.footer-text {
    align-items: flex-end;
}

.container-notices {
    width: auto;
    -moz-column-gap: 5px;
    column-gap: 5px;
    align-items: flex-start;
}

.container-notices p {
    justify-content: center;
}

.container-notices button {
    font-size: 1em;
    padding-top: 3px;
}

.disclaimer-content,
.privacy-content,
.social-media-content {
    display: none;
}

/*-------------HIDE / UNHIDE CLASS --------------*/

.hide {
    display: none;
    opacity: 0;
}

.unhide {
    display: flex;
    opacity: 1;
    transition: opacity .3s ease-in-out;
}

.carousel-img.active {
    opacity: 1;
    z-index: 1;
}