.page-header{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  column-gap:3rem;
  row-gap:1rem;
  margin-bottom:2rem;
}

.page-header--person{
  display:grid;
  grid-template-columns:11.4rem 1fr;
  align-items:flex-start;
  column-gap:2rem;
  row-gap:1rem;
}

.page-header__title{
  word-break:break-word;
}

.page-header__cover{
  grid-row:1/3;
}
.page-header__cover img{
  border-radius:2rem;
}

.page-search{
  position:relative;
  display:flex;
  min-width:30rem;
  width:100%;
  max-width:40rem;
}

.page-search__label{
  flex-grow:1;
}

.page-search__input{
  width:100%;
  min-height:5rem;
  border:none;
  border-radius:1rem;
  padding:0 6rem 0 3rem;
  color:var(--color-dark-2);
}
.page-search__input::placeholder{
  opacity:0.7;
}

.page-search__button{
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  aspect-ratio:1;
  width:2rem;
  margin:auto 3rem auto 0;
  border:none;
  -webkit-mask-image:url(../svg/icons/search.svg);
          mask-image:url(../svg/icons/search.svg);
  -webkit-mask-repeat:no-repeat;
          mask-repeat:no-repeat;
  -webkit-mask-position:center;
          mask-position:center;
  -webkit-mask-size:contain;
          mask-size:contain;
  background-color:var(--color-dark-2);
  transition:background-color var(--transition-medium-cubic);
}
.page-search__button:hover, .page-search__button:focus-visible{
  background-color:var(--color-secondary);
}
.page-search__button:active{
  background-color:var(--color-secondary-hover);
}
.stats{
  --color:var(--color-gray-4);
  display:flex;
  flex-direction:column;
  border-radius:2rem;
  line-height:normal;
  background-color:var(--color-white);
  color:var(--color);
  box-shadow:0 25px 50px -10px rgba(22, 35, 50, 0.1);
}
.stats--up{
  --color:var(--color-primary);
}
.stats--down{
  --color:var(--color-red);
}

.stats__item{
  display:flex;
  flex-direction:column;
  gap:1rem;
  padding:2rem 2rem 1.9rem;
  border-bottom:1px solid var(--color-stroke);
}
.stats__item:last-child{
  border-bottom:none;
  padding-bottom:2rem;
}

.stats__item-caption{
  color:var(--color-dark);
}

.stats__item-value{
  display:flex;
  align-items:center;
  gap:1rem;
  margin-top:auto;
  font-size:3rem;
  line-height:2.1rem;
  font-weight:600;
}
.stats__item-value .icon{
  font-size:2.4rem;
}
.breadcrumb{
  margin-bottom:2rem;
  font-size:1.2rem;
  line-height:normal;
  color:var(--color-gray-6);
}

.breadcrumb__list{
  display:flex;
  flex-wrap:wrap;
  column-gap:1rem;
  row-gap:1rem;
}

.breadcrumb__item{
  display:flex;
  cursor:text;
}
.breadcrumb__item::after{
  content:"";
  width:1.6rem;
  height:1.6rem;
  margin-left:1.1rem;
  -webkit-mask-image:url(../svg/icons/chevron-right.svg);
          mask-image:url(../svg/icons/chevron-right.svg);
  -webkit-mask-repeat:no-repeat;
          mask-repeat:no-repeat;
  -webkit-mask-position:center;
          mask-position:center;
  -webkit-mask-size:contain;
          mask-size:contain;
  background-color:var(--color-gray-6);
}
.breadcrumb__item:last-child::after{
  display:none;
}

.breadcrumb__link{
  text-decoration-color:currentColor;
  text-underline-offset:0.3rem;
  color:var(--color-secondary);
}
.breadcrumb__link:hover, .breadcrumb__link:focus-visible{
  color:var(--color-primary);
}
.breadcrumb__link:active{
  color:var(--color-primary-hover);
}
.breadcrumb__link--current-page{
  text-decoration:none;
  color:currentColor;
  pointer-events:none;
}
.tabs{
  display:flex;
  flex-direction:column;
}

.tabs-buttons{
  overflow-x:auto;
  overflow-y:hidden;
  display:flex;
  width:calc(100% + var(--container-padding));
  padding-right:var(--container-padding);
}

.tabs-button{
  --border-color:transparent;
  --border-color-active:var(--color-primary);
  --bg-color:transparent;
  --bg-color-active:transparent;
  --color:var(--color-dark);
  --color-hover:var(--color-secondary);
  --color-active:var(--color-secondary-hover);
  position:relative;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:5.9rem;
  border:none;
  border-bottom:2px solid var(--border-color);
  padding:0 2rem;
  font-size:1.4rem;
  font-weight:600;
  text-transform:uppercase;
  white-space:nowrap;
  background-color:var(--bg-color);
  color:var(--color);
  transition:color var(--transition-medium-cubic);
}
.tabs-button:hover, .tabs-button:focus-visible{
  color:var(--color-hover);
}
.tabs-button::after{
  content:"";
  position:absolute;
  bottom:-2px;
  left:0;
  width:100%;
  height:1px;
  background-color:var(--color-light-stroke-4);
}
.tabs-button.is-active{
  z-index:1;
  border-bottom-color:var(--border-color-active);
  background-color:var(--bg-color-active);
  color:currentColor;
}

.tabs-button--archive{
  margin-left:auto;
}

.tabs-items{
  display:grid;
  padding:2rem 0;
}

.tabs-item{
  grid-area:1/1;
  visibility:hidden;
  display:flex;
  opacity:0;
  transition:visibility var(--transition-medium-cubic), opacity var(--transition-medium-cubic);
}
.tabs-item.is-active{
  visibility:visible;
  opacity:1;
}

.tabs-panel{
  display:flex;
  width:100%;
}
.rating-tabs{
  padding-bottom:2rem;
}

/*! Table */
.table{
  width:100%;
  border-spacing:0;
  table-layout:fixed;
  line-height:normal;
  word-break:break-word;
}
.table th{
  border:1px solid var(--color-gray-7);
  border-bottom:none;
  border-left-width:0;
  padding:1.1rem 0 1.2rem 1rem;
  font-size:1rem;
  text-align:left;
  text-transform:uppercase;
  background-color:var(--color-dark);
  color:var(--color-white);
}
.table th:first-child{
  border-top-left-radius:1rem;
  border-left-width:1px;
  padding-left:0;
  text-align:center;
}
.table th:last-child{
  border-top-right-radius:1rem;
}
.table tr{
  background-color:var(--color-light);
}
.table tr:nth-child(even){
  background-color:var(--color-white);
}
.table tr:last-child td{
  border-bottom-width:1px;
}
.table tr:last-child td:first-child{
  border-bottom-left-radius:1rem;
}
.table tr:last-child td:last-child{
  border-bottom-right-radius:1rem;
}
.table td{
  border:1px solid var(--color-light-stroke-4);
  border-bottom-width:0;
  border-left-width:0;
  padding:0.9rem 0 1rem 1rem;
}
.table td:first-child{
  border-left-width:1px;
  padding:0;
  text-align:center;
}

/*! Rating page */

/*! News page */
.news-article{
  --date-offset:0.5rem;
  --date-height:3rem;
  --date-padding:0 1rem;
  --date-icon-size:1.6rem;
  --date-font-size:1.2rem;
  display:flex;
  flex-direction:column;
  gap:2rem;
  padding-bottom:4rem;
}
.news-article .date{
  border-radius:1.5rem;
}

.news-article__cover{
  position:relative;
  flex-shrink:0;
  width:100%;
  height:fit-content;
}
.news-article__cover img{
  border-radius:2rem;
}

.news-article__content{
  --common-gap:1rem;
}

/*! Person page */
.person-wrapper{
  padding-bottom:4rem;
}

.criteria-section__title{
  margin-bottom:1.1rem;
  font-size:2rem;
  line-height:normal;
  color:var(--color-dark);
}
.criteria-tabs .tabs-items{
  padding-top:1rem;
}
.criteria-table-wrapper{
  display:flex;
  flex-direction:column;
  gap:0.9rem;
}

.criteria-table .criteria-table__th--number{
  width:3rem;
}
.criteria-table .criteria-table__th--weight{
  width:19.6%;
}
.criteria-table .criteria-table__th--note{
  width:36%;
}
.person-info{
  display:flex;
  flex-direction:column;
  gap:1rem;
  margin-bottom:2rem;
  color:var(--color-dark);
}

.person-info__item{
  display:inline-block;
}

.person-info__caption{
  display:inline-block;
  color:var(--color-gray-8);
}
.person-info__caption::after{
  content:"_";
  color:transparent;
  -webkit-user-select:none;
          user-select:none;
}

.person-info__value{
  display:inline;
}
.person-bio{
  --common-gap:2.2rem;
  line-height:2.2rem;
  color:var(--color-dark);
}
.person-bio h3:not(:first-child){
  margin-top:-0.2rem;
}

.person-controls{
  display:flex;
  flex-direction:column;
  gap:2rem;
  margin-top:4rem;
}

.person-controls__buttons{
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.person-controls__caption{
  color:var(--color-dark);
}

@media (min-width: 768px){
  .page-header--person{
    align-items:center;
    row-gap:0;
  }
  .stats{
    flex-direction:row;
  }
  .stats__item{
    flex:1 0 0;
    border-right:1px solid var(--color-stroke);
    border-bottom:none;
    padding:2rem 1.9rem 2rem 2rem;
  }
  .stats__item:last-child{
    border-right:none;
    padding-right:2rem;
  }
  .tabs-button{
    min-height:6rem;
    padding:0 4rem;
  }
  .tabs-button--archive{
    font-size:12px;
  }
  .rating-tabs{
    padding-bottom:3rem;
  }
  .table th{
    padding:1.7rem 0 1.7rem 2rem;
    font-size:1.2rem;
  }
  .table td{
    min-height:5rem;
    padding:0.6rem 2rem 0.7rem 2rem;
  }
  .table__expander{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    vertical-align:middle;
    min-height:4.9rem;
  }
  .news-article{
    flex-direction:row;
    padding-bottom:5rem;
  }
  .news-article__cover{
    order:1;
    max-width:30rem;
  }
  .person-wrapper{
    padding-bottom:5rem;
  }
  .criteria-section__title{
    margin-bottom:1rem;
  }
  .criteria-tabs .tabs-items{
    padding-top:2rem;
  }
  .criteria-table-wrapper{
    gap:1.9rem;
  }
  .criteria-table .criteria-table__th--number{
    width:5.4rem;
  }
  .criteria-table .criteria-table__th--weight{
    width:19.8%;
  }
  .criteria-table .criteria-table__th--note{
    width:36.3%;
  }
  .person-controls__buttons{
    flex-direction:row;
    flex-wrap:wrap;
    align-items:flex-start;
    column-gap:2.4rem;
    row-gap:1rem;
  }
  .person-controls__button{
    padding:0.5rem 3.9rem;
  }
}

@media (min-width: 960px){
  .page-header{
    margin-bottom:4rem;
  }
  .page-header--person{
    grid-template-columns:20rem 1fr;
    align-items:flex-start;
    column-gap:2.4rem;
    row-gap:2rem;
  }
  .page-header--person .page-header__title{
    grid-column:1/3;
  }
  .page-header__cover{
    grid-row:2/3;
  }
  .page-search{
    min-width:50rem;
  }
  .page-search__input{
    min-height:6rem;
  }
  .page-search__button{
    width:2.4rem;
  }
  .stats__item{
    gap:1.3rem;
    padding:3rem 2.9rem 2.8rem 3rem;
  }
  .stats__item:last-child{
    padding-right:3rem;
    padding-bottom:2.8rem;
  }
  .stats__item-value{
    font-size:4rem;
    line-height:2.8rem;
  }
  .stats__item-value .icon{
    margin-top:-0.5rem;
  }
  .breadcrumb{
    margin-bottom:4rem;
    font-size:1.4rem;
  }
  .tabs-items{
    padding:3rem 0;
  }
  .rating-tabs{
    padding-bottom:7rem;
  }
  .rating-page .page-wrapper,
  body:has(.rating-tabs) .page-wrapper{
    padding-top:3rem;
  }
  .rating-page .breadcrumb,
  body:has(.rating-tabs) .breadcrumb{
    margin-bottom:3rem;
  }
  .rating-page .page-header,
  body:has(.rating-tabs) .page-header{
    align-items:flex-end;
    margin-bottom:3rem;
  }
  .news-article{
    --date-offset:1rem;
    --date-icon-size:2rem;
    --date-font-size:1.4rem;
    gap:2.4rem;
    padding-bottom:10rem;
  }
  .news-article__cover{
    max-width:calc(50% - 1.2rem);
  }
  .news-article__content{
    --common-gap:2rem;
  }
  .person-wrapper{
    margin-top:-16.8rem;
    padding-bottom:10rem;
    padding-left:22.4rem;
  }
  .criteria-section__title{
    font-size:3rem;
  }
  .criteria-table .criteria-table__th--weight{
    width:12.7%;
  }
  .criteria-table .criteria-table__th--note{
    width:41.2%;
  }
  .person-info{
    margin-bottom:3rem;
  }
  .person-bio{
    --common-gap:2.4rem;
    line-height:2.4rem;
  }
  .person-bio h3:not(:first-child){
    margin-top:3rem;
  }
  .person-controls{
    gap:3rem;
    margin-top:6rem;
  }
}

@media (max-width: 767.98px){
  .criteria-tabs .tabs-button{
    flex:1 0 0;
    padding-right:1rem;
    padding-left:1rem;
  }
}