html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
strong{
  font-weight: bold!important;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

:root{
    --primary-color: #262626;
    --secondary-color: #0d0d0d;
    --third-color: #595959;
    --quaternary-color: #bfbfbf;
    --complementary-color: #ffffff;

    --primary-font: "Montserrat", sans-serif;
}

.hidden{
  display: none;
}

.opacity{
  opacity: 0;
}

body{
    background: var(--primary-color);
    font-family: var(--primary-font);
    color: var(--complementary-color);
}

header{
    position: sticky;
    top: 0;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 2rem;
    gap: 4rem;
    border-bottom: 1px solid var(--third-color);
    background: var(--primary-color);
    z-index: 10;
}

.header-top-group{
  display: contents;
}

.athlon_logo{
  order: 1;
    width: 130px;
}

.header-title{
  order: 3;
}

.searchbar{
  order: 2;
    display: flex;
    flex-direction: row;
    gap: 0;
    width: 30%;
    max-width: 350px;
}

.search-input{
    background: var(--third-color);
    border-radius: 20px 0 0 20px;
    padding: .5rem 1rem;
    outline: none;
    border: none;
    width:100%;
    color: var(--complementary-color);
    font-size: 1rem;
}

.search-input::placeholder{
    color: var(--quaternary-color);
}

.search-button{
    border: none;
    border-radius: 0 20px 20px 0;
    padding: 0 .6rem;
    fill: var(--third-color);
    background: var(--quaternary-color);
    transition: background .3s ease-in;
}

.search-button:hover{
    background: var(--complementary-color);
    cursor: pointer;
}

.search-icon{
    width: 18px;
}

.main-content{
    display: flex;
    flex-direction: row;
}

.section-list{
    width: 55%;
    margin: 0 3rem;
    /* Teste abaixo */
    max-width: calc(840px + 2rem);
}

.list-header{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: start;
    gap: 1rem;
    padding: 2rem 0;
    font-size: 1.2rem;
}

/* The switch - the box around the slider */
.switch {
  position: relative;
  display: inline-block;
  width: 55px;
  height: 28px;
}

/* Hide default HTML checkbox */
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

/* The slider */
.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--third-color);
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 20px;
  width: 20px;
  left: 5px;
  bottom: 4px;
  background-color: var(--quaternary-color);
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slider {
  background-color: #032F7C;
}


input:checked + .slider:before {
  -webkit-transform: translateX(25px);
  -ms-transform: translateX(25px);
  transform: translateX(25px);
  background-color: var(--complementary-color);
}

/* Rounded sliders */
.slider.round {
  border-radius: 25px;
}

.slider.round:before {
  border-radius: 50%;
}

.card-section{
  display: grid;
  /* grid-template-columns: repeat(3, minmax(250px, 1fr)); */
  /* Teste abaixo */
  grid-template-columns: repeat(3, minmax(250px, 280px));
  grid-template-rows: auto;
  gap: 1rem;
  padding-bottom: 2rem;
}

.card{
  width:calc(100% - 3rem);
  height:calc(100% - 3rem);
  display: flex;
  flex-direction: column;
  border-radius: 25px;
  background: var(--secondary-color);
  padding: 1.5rem;
  gap: 1rem;
  justify-content: space-between;
  transition: box-shadow 1s linear;
  box-shadow: none;
}

.card.highlight{
  box-shadow: 0px 0px 16px 2px rgba(155,155,155, 0.8);
}

.card-info{
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.card-line{
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: .5rem;
}

.card-icon{
  width: 22px;
  fill: #ffffff;
}

.card-text{
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  font-size: 1rem;
  color: var(--complementary-color);
  width:100%
}

.card-bottom{
  display: flex;
  gap: .5rem;
}

.card-button{
  background: var(--primary-color);
  border: none;
  width: 100%;
  color: var(--complementary-color);
  border-radius: 50px;
  padding: .5rem 0;
  transition: background .3s ease-in-out;
}

.card-button:hover{
  cursor: pointer;
  background: var(--third-color);
}

[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

.map-section{
  /* width: calc(45% - 3rem); */
  /* Teste abaixo */
  width: calc(100% - 3rem);
  position: sticky;
  top: calc(101.05px + 2rem);
  height: calc(100vh - 101.05px - 4rem);
  margin: 2rem 3rem 2rem 0;
  border-radius: 25px;
  overflow: hidden;
}

#map {
    height: 100%;
    width: 100%;
}

.overlay-details{
  position: fixed;
  top: 0;
  left: 0;
  backdrop-filter: blur(5px);
  z-index: 11;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,.65);
  transition: opacity 0.3s ease;
}

.card-details{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 300px;
  min-height: 130px;
  height: auto;
  background: var(--primary-color);
  gap: 1rem;
  padding: 2rem;
  border-radius: 25px;
  box-shadow: -2px 2px 2px rgba(136, 136, 136, 0.4);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.details-list{
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: calc(100% - 32px)
}

.info-list{
  display: flex;
  flex-direction: column;
  gap: .5rem;
  color: var(--secondary-color);
  font-size: .9rem;
  font-weight: 400;
}

.more-details-button{
  background: var(--secondary-color);
  padding: .8rem;
  border-radius: 20px;
  text-decoration: none;
  color: var(--complementary-color);
  text-align: center;
  transition: background 0.3s ease-out;
}
.more-details-button:hover{
  background: var(--third-color);
}

.close-button{
  width: 26px;
  height: 26px;
  position: absolute;
  top: 8px;
  right: calc(2rem - 8px);
  padding: 8px;
  fill: #ffffff;
  transition: fill 0.2s ease;
}

.close-button:hover{
  fill: red;
  cursor: pointer;
}

.details-tel{
  color: #ffffff;
}

.info-tel{
  color: var(--secondary-color);
}

@media screen and (max-width:1670px){
  .map-section{
    width: calc(45% - 3rem);
  }
}


@media screen and (max-width:1450px){
  .map-section{
    width: calc(40% - 2rem);
    margin: 2rem 2rem 2rem 0;
  }

  .section-list{
    width: 60%;
    margin: 0 2rem;
  }


  .switch {
  width: 45px;
  height: 22px;
}

.slider:before {
  height: 14px;
  width: 14px;
  left: 5px;
  bottom: 4px;
}


input:checked + .slider:before {
  -webkit-transform: translateX(21px);
  -ms-transform: translateX(21px);
  transform: translateX(21px);
  background-color: var(--complementary-color);
}

}

@media screen and (max-width: 1330px){
  .section-list{
    width: 50%;
  }
  .card-section{
    grid-template-columns: repeat(2, minmax(250px, 1fr));
  }

  .map-section{
    width: calc(50% - 2rem);
  }
}

@media screen and (max-width:1200px){
  header{
    justify-content: space-around;
    gap: 0;
  }
}

@media screen and (max-width: 1050px){
  .main-content{
    flex-direction: column-reverse;
  }

  .section-list{
    width: calc(100% - 4rem);
    margin: 0 auto;
    padding: 0 2rem;
  }

  .map-section{
    width: 100%;
    margin: 0;
    top: 101.05px;
    height: 350px;
    border-radius: 0;
    position: unset;
  }

  .card-section{
    grid-template-columns: repeat(3, minmax(250px, 280px));
  }

  header{
    justify-content: space-between;
    padding: 1.6rem 1rem;
    box-shadow: 0 2px 6px rgba(255, 255, 255, .1);
  }

  .search-button{
    padding: 0 .9rem;
  }

  .searchbar{
    width: 35%;
    max-width: none;
  }

  .athlon_logo{
    width: 110px;
  }

  .info-button{
    font-size: .9rem;
    background: var(--secondary-color);
    color: var(--complementary-color);
    width: 100%;
    border-radius: 20px;
    margin: .6rem 0;
    padding: .3rem 0;
  }
}

@media screen and (max-width: 925px) {
  header{
    font-size: .9rem;
  }

  .searchbar{
    width: 50%;
  }

  .map-section{
    top: 110.17px;
  }
}

@media screen and (max-width: 865px){
  .section-list{
    width: calc(100% - 2rem);
    padding: 0 1rem;
  }
}

@media screen and (max-width: 830px){
  .card-section{
    grid-template-columns: repeat(2, minmax(250px, 280px));
    justify-content: space-between;
  }

  .section-list{
    margin: 0 auto;
    max-width: 580px;
  }
}

@media screen and (max-width: 768px){
  header{
    flex-direction:column;
    gap: .8rem;
    padding: 1rem;
  }
  .athlon_logo{
    order: unset;
  }

  .searchbar{
    width: 100%;
    max-width: 400px;
  }

  .header-top-group{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }
}


@media screen and (max-width: 600px){
  .searchbar{
    max-width: 350px;
  }
  
  .search-input{
    padding: .4rem 1rem;
    font-size: .9rem;
  }

  .search-button{
    padding: 0 .7rem;
  }

  .search-icon{
    width: 16px;
  }
}

@media screen and (max-width: 565px){
  .list-header{
    font-size: 1rem;
    padding: 1rem 0;
  }

  .card{
    width: calc(100% - 2rem);
    height: calc(100% - 2rem);
    padding: 1rem;
  }

  .card-section{
    grid-template-columns: repeat(1, minmax(250px,380px));
    justify-content: center;
  }

  .card-text{
    font-size: .9rem;
  }

  .card-icon{
    width: 20px;
  }

  .info-list {
    font-size: .8rem;
    gap: .3rem;
  }

  .card-button{
    font-size: .75rem;
    padding: .4rem 0;
  }

  .map-section{
    height: 330px;
  }

  .list-header{
    justify-content: center;
  }

  .info-button{
    font-size: .8rem;
    padding: .3rem 0;
    margin: .5rem 0;
  }
}

@media screen and (max-width: 500px){
  .searchbar{
    max-width: none;
    width: 80%;
  }
}

@media screen and (max-width: 390px) {
  .athlon_logo{
    width: 95px;
  }

  .header-title{
    font-size: .8rem;
  }
  .searchbar{
    width: 90%;
  }

.search-input{
  font-size: .85rem;
  padding: .3rem .8rem;
}

.search-icon{
  width: 15px;
}

.search-button{
    padding: .3rem .8rem;
  }
}

@media screen and (max-width: 340px){
  .athlon_logo{
    width: 80px;
  }

  .header-title{
    font-size: .7rem;
  }

  .searchbar{
    width: 100%;
  }

  .search-input{
    font-size: .8rem;
    padding: .2rem .6rem;
  }

  .search-button{
    padding: .2rem .6rem;
  }

  .map-section{
    height: 200px;
  }
}