:root {
    --main-bg-color: #b3b8cb;
    --details-bg-color: #e9e9e9;
    --focus-color: #8d99c7;
}

@font-face {
    font-family: PT Serif Regular;
    src: url(fonts/PTSerif-Regular.ttf);
}

@font-face {
    font-family: PT Serif Italic;
    src: url(fonts/PTSerif-Italic.ttf);
}

@font-face {
    font-family: PT Serif Bold;
    src: url(fonts/PTSerif-Bold.ttf);
}

@font-face {
    font-family: PT Serif BoldItalic;
    src: url(fonts/PTSerif-BoldItalic.ttf);
}

* {
    margin: 0;
    padding: 0;
  }

body {
    font-family: PT Serif Regular;
    font-size: 1.1em;
}

header, footer {
    background-color: var(--main-bg-color);
}

.logo {
    max-width: 1280px;
    margin: 0 auto;
}

section, footer p {
    padding: 1em;
    max-width: 1280px;
    margin: 0 auto;
}

p, a {
    padding: 0.5em 0;
}

h1 {
    margin-bottom: .5em;
}

section a {
    text-decoration: none;
}

footer {
    width: 100%;
}

details {
    display:block;
    background: #fff;
    min-width: 306px;
    max-width: 577px;
    border: 1px solid var(--main-bg-color);
    background: var(--details-bg-color);
    box-shadow: 0 10px 15px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    border-radius: 8px;
    overflow:hidden;
    margin-bottom: 1.5rem;
}

summary::-webkit-details-marker{display:none;}
summary::-moz-list-bullet{list-style-type:none;}
summary::marker{display:none;} 

summary {
     display:block;
     padding: .3em 1em .3em .9em;
     background: var(--main-bg-color);
     font-size:1.2em;
     cursor: pointer;
     position: relative;
     font-family: PT Serif Bold;
}

summary:before {  
    top: .4em;
    right: .3em;
    color: transparent;
    background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTYuNTkgOC41OUwxMiAxMy4xNyA3LjQxIDguNTkgNiAxMGw2IDYgNi02eiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=") no-repeat 50% 50% / 1em 1em;
    width: 1em;
    height: 1em;
    content: "";
    position: absolute;
    transition: transform .5s;
}

details[open] > summary:before {
    transform: scale(1,-1);
}

summary ~ * {
    padding: 0.5em 1em 0.5em 1em;
}

details[open] summary ~ *{ 
    animation: sweep .5s ease-in-out;
}

@keyframes sweep {
    0%    {opacity: 0;}
    100%  {opacity: 1;}
}

summary:focus {
    outline:0;
    background: var(--focus-color);
}

.btn-up {
    position: fixed;
    background-color: var(--focus-color);
    right: 20px;
    bottom: 0;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
  }
  
  .btn-up::before {
    content: "";
    width: 30px;
    height: 30px;
    background: transparent no-repeat center center;
    background-size: 100% 100%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708l6-6z'/%3E%3C/svg%3E");
  }
  
  .btn-up_hide {
    display: none;
  }
  
  @media (hover: hover) and (pointer: fine) {
    .btn-up:hover {
      background-color: #5b70c4;
    }
  }