/* ============================================
   CONTENTS ARCHIVE
============================================ */
/* コンテンツ一覧 */
.contents-cards {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.contents-card a {
  display: block;
}
.contents-card img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0.75rem;
}
.contents-more {
  width: 100%;
  max-width: 18.75rem;
  margin: 0 auto;
}

/* ============================================
   CONTENTS COMMON
============================================ */
/* common */
.contents-section {
  padding: 0.625rem;
}
.contents-back {
  max-width: 18.75rem;
  margin: 1.25rem auto;
}
.contents-sub {
  font-size: 1.25rem;
  font-weight: 900;
  text-align: center;
  margin-bottom: 0.625rem;
}
.contents-sub span {
  font-size: 1.5rem;
}
.contents-name {
  text-align: center;
  font-weight: 900;
  font-size: 1.25rem;
  padding: .5rem;
  margin-bottom: 0.625rem;
  border-radius: 5px;
  color: white;
  display: block;
}
/* intro */
.contents-intro {
  padding: 2.5rem 0.625rem 1.875rem;
  text-align: center;
}
.contents-intro__sub {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  position: relative;
  padding: 0 1.5625rem;
  letter-spacing: 0.03125rem;
  display: inline-block;
}
.contents-intro__sub::before,
.contents-intro__sub::after {
  content: '';
  background-image: url(../img/2026/lower-title-lines.svg);
  background-size: 100% auto;
  background-repeat: no-repeat;
  background-position: center center;
  width: 1.25rem;
  height: 1.25rem;
  position: absolute;
  top: 0;
  display: block;
}
.contents-intro__sub::before {
  transform: scale(-1, 1);
  left: 0;
}
.contents-intro__sub::after {
  right: 0;
}
.contents-intro__lead {
  font-size: 1.5rem;
  font-weight: 900;
  letter-spacing: 0.03125rem;
  line-height: 1.2;
}
.contents-intro__title {
  display: inline-block;
  font-size: 2.5rem;
  font-weight: 900;
  background: var(--gradient02);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 0;
  line-height: 1.3;
}
/* main */
.contents-main-text {
  font-size: 0.875rem;
  line-height: 1.8;
}
.contents-main-text b {
  color: var(--color-daidai);
}
/* info */
.contents-info {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  margin-bottom: 1.875rem;
}
.contents-info-block {
  border: 3px solid black;
  border-radius: 0.625rem;
  overflow: hidden;
}
.contents-info-block__label {
  background-color: black;
  color: white;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.4;
  text-align: center;
  padding: 0.625rem;
}
.contents-info-block__content {
  background-color: white;
  padding: 0.625rem 1.25rem;
}
.contents-info-block__content--center { text-align: center; }
.contents-info__highlight {
  color: var(--color-daidai);
  font-size: 1.25rem;
  line-height: 1.8;
  font-weight: 900;
  text-align: center;
}
.contents-info__note {
  font-size: 0.75rem;
  line-height: 1.4;
  padding-left: 1em;
  text-indent: -1em;
  margin-bottom: 0;
}
.contents-info__strong {
  font-size: 0.875rem;
  font-weight: 900;
  margin-bottom: 0;
}
.contents-info__strong span {
  font-size: 1rem;
}
/* schedule */
.contents-schedule {
  background: linear-gradient(to right, #EF077B, #FFE232);
  border-radius: 0.625rem;
  padding: 0.625rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.contents-schedule__title {
  color: white;
  font-size: 1.25rem;
  font-weight: 900;
  text-align: center;
  padding: 0.3125rem 0;
}
.contents-schedule__block {
  background: white;
  border-radius: 0.625rem;
  padding: 0 0.625rem 1.25rem;
}
.contents-schedule__date {
  background: black;
  color: white;
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 700;
  text-align: center;
  padding: 0.3125rem 0.625rem;
  border-radius: 6.25rem;
  margin: 1.25rem 0 0.625rem;
}
.contents-schedule__list {
  display: flex;
  flex-direction: column;
  gap: 0.3125rem;
}
.contents-schedule__item {
  display: flex;
  align-items: stretch;
  background: #FFF8EF;
  border-radius: 0.3125rem;
  overflow: hidden;
}
.contents-schedule__num {
  background: var(--color-orange);
  color: white;
  font-family: var(--font-bold-eng);
  font-weight: 700;
  font-size: 1.25rem;
  width: 1.875rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.contents-schedule__body {
  flex: 1;
}
.contents-schedule__time {
  font-family: var(--font-bold-eng);
  font-size: clamp(13px, calc(18 / 1440 * 100vw), 18px);
  font-weight: 700;
  padding: 0.625rem;
  margin-bottom: 0;
  display: flex;
  align-items: center;
}
.contents-schedule__text {
  padding: 0.625rem;
  line-height: 1.4;
  background-image: repeating-linear-gradient(to right, #C8BDB0 0, #C8BDB0 2px, transparent 2px, transparent 4px);
  background-size: 100% 1px;
  background-repeat: repeat-x;
  background-position: top;
}
@media screen and (min-width: 769px) {
  .contents-name {
    border-radius: 0;
    display: inline-block;
  }
  .contents-sub {
    text-align: left;
  }
  .gymclass .contents-schedule__block {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
  .volleyball .contents-schedule__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }
  .contents-schedule__text {
    background-image: repeating-linear-gradient(to bottom, #C8BDB0 0, #C8BDB0 2px, transparent 2px, transparent 4px);
    background-size: 1px 100%;
    background-repeat: repeat-y;
    background-position: top left;
  }
  .contents-info-block__label {
    width: min(30%, 120px);
  }
  .contents-info-block__content {
    width: calc(100% - min(30%, 120px));
  }
  .contents-info__highlight {
    text-align: left;
    margin-bottom: 0;
  }
}
@media screen and (min-width: 1081px) {
  .volleyball .contents-schedule__list {
    grid-template-columns: repeat(6, 1fr);
  }
}
.contents-schedule__name {
  color: var(--color-pink);
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 0;
}
.contents-schedule__desc {
  font-size: 0.875rem;
  margin-bottom: 0;
}
/* profile */
.contents-guest {
  display: grid;
  grid-template-columns: 40% 1fr;
  grid-template-areas:
    "photo info"
    "body  body";
  gap: 0.625rem;
  margin-top: 2.5rem;
  background-color: #EEEEEE;
  border-radius: 0.625rem;
  padding: 1.25rem;
}
.contents-guest__photo-wrap {
  grid-area: photo;
}
.contents-guest__photo {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0.3125rem;
  object-fit: cover;
}
.contents-guest__info {
  grid-area: info;
  min-width: 0;
}
.contents-guest__label {
  display: block;
  background: black;
  color: white;
  font-family: var(--font-bold-eng);
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.25rem 0.625rem;
  margin: 0 0 0.5rem;
  letter-spacing: 0.1em;
}
.contents-guest__role {
  font-size: 0.75rem;
  font-weight: 700;
  margin: 0 0 0.125rem;
}
.contents-guest__name {
  font-size: 1.375rem;
  font-weight: 900;
  line-height: 1.2;
  margin: 0 0 0.625rem;
}
.contents-guest__bio p {
  font-size: 0.75rem;
  line-height: 1.6;
  margin: 0 0 0.1875rem;
}
.contents-guest__bio p:last-child {
  margin-bottom: 0;
}
.contents-guest__section-title {
  background: #E0E0E0;
  font-size: 0.875rem;
  font-weight: 600;
  text-align: center;
  padding: 0.3125rem;
  margin-top: 0.625rem;
}
.contents-guest__row {
  display: flex;
  gap: 0.625rem;
  border-bottom: 1px solid #eee;
}
.contents-guest__row:last-child {
  border-bottom: none;
}
.contents-guest__year {
  flex-shrink: 0;
  font-weight: 700;
  min-width: 3.125rem;
  border-right: 1px solid #D7D7D7;
}
.contents-guest__content {
  flex: 1;
}
.contents-guest__body {
  grid-area: body;
  display: grid;
  gap: 0.3125rem;
  font-size: 0.75rem;
  line-height: 1.4;
}
@media screen and (min-width: 769px) {
  .contents-guest {
    grid-template-columns: min(40%, 270px) 1fr;
    grid-template-areas:
      "photo info"
      "photo body";
    align-items: start;
    gap: 2rem;
  }
  .contents-guest__body {
    column-gap: 1rem;
    row-gap: 10px;
    grid-template-columns: 100px 1fr;
  }
  .contents-guest__section-title {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 0;
    height: 100%;
  }
}
.contents-guest__body ul {
  list-style: none;
}
.contents-guest__body ul li {
  display: relative;
}
.contents-guest__body ul li:before {
  content:'・';
  position: relative;
  margin: 0 0.3125rem;
}

/* ============================================
   BUGGY SECTION
============================================ */

:root {
  --color-daidai: #FF6816;
}
.text-daidai { color: var(--color-daidai); }
.bg-daidai { background-color: var(--color-daidai); }
.text-gradient-pinkorange {
  background: var(--gradient02);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.buggy-top-row {
  margin-bottom: 1.875rem;
}
.buggy-badge-row {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}
.buggy-badge {
  width: 2.6875rem;
  height: auto;
  position: relative;
}
.buggy-lead {
  font-weight: 900;
  font-size: 1rem;
  line-height: 1.4;
}
.buggy-title {
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.4;
  letter-spacing: 0;
  margin-bottom: 1.25rem;
}
.buggy-title-inner {
  display: inline;
  background: linear-gradient(180deg, transparent 80%, var(--color-yellow) 80%);
}
.buggy-title span {
  font-size: 1.75rem;
}
.buggy-text {
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: 1.25rem;
  line-height: 1.8;
}
/* recommend */
.buggy-recommend {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 0.3125rem;
  gap: 0.625rem;
}
.buggy-recommend__label {
  color: var(--color-daidai);
  background: #FFF0C8;
  max-width: 100%;
  border-radius: 1.25rem;
  padding: 0.3125rem 0.625rem;
  font-weight: 900;
  text-align: center;
}
.buggy-recommend__content {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  font-size: 1rem;
}
.buggy-recommend__content i {
  color: var(--color-daidai);
  margin-right: 0.625rem;
  font-size: 1.25rem;
}
.buggy-check {
  font-weight: 700;
  margin-bottom: 0.3125rem;
}
.buggy-check--last {
  margin-bottom: 0;
}
.buggy-top-img {
  position: relative;
  margin: 1.875rem auto;
}
.buggy-top-img img {
  width: 100%;
  height: auto;
  display: block;
}
.buggy-detail {
  background-color: #F5F4EB;
  border-radius: 1.25rem;
  padding: 0.9375rem;
  margin-bottom: 1.875rem;
}
/* intro */
.buggy-intro {
  display: grid;
  grid-template-columns: 20% 1fr;
  grid-template-areas:
    "img text"
    "features features"
    "compare compare";
  align-items: center;
  margin-bottom: 0;
}
.buggy-intro__img-wrap {
  grid-area: img;
  position: relative;
}
.buggy-intro__img {
  width: 100%;
  position: relative;
  transform: translateX(-30%) translateY(-10%);
}
.buggy-intro__text {
  grid-area: text;
}
.buggy-intro__headline {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 0;
}
.buggy-intro__kw {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
}
/* features */
.buggy-features {
  grid-area: features;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  margin-bottom: 1.25rem;
  padding-left: 0;
}
.buggy-features__item {
  display: flex;
  flex-direction: row;
  align-items: center;
  background-color: var(--color-daidai);
  border-radius: 1.25rem;
  padding: 0.625rem 1.25rem;
  text-align: left;
  position: relative;
  gap: 0.625rem;
}
.buggy-features__icon {
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
  position: relative;
  left: auto;
  transform: unset;
}
.buggy-features__text {
  color: white;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.2;
  margin-bottom: 0;
}
/* compare */
.buggy-compare {
  grid-area: compare;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.3125rem;
}
.buggy-compare__left {
  font-size: 0.875rem;
  font-weight: 900;
  text-align: center;
  padding-right: 0;
}
.buggy-compare__right {
  display: block;
  padding: 0.3125rem 0.625rem;
  background: var(--gradient02);
  color: white;
  font-size: 1.125rem;
  line-height: 1.4;
  font-weight: 900;
  text-align: center;
  margin-bottom: 1.25rem;
}
/* brands */
.buggy-brands {
  background-color: white;
  border-radius: 0.625rem;
  padding: 1.25rem 0.625rem;
}
.buggy-brands__header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-bottom: 1.25rem;
  justify-content: center;
  text-align: center;
}
.buggy-brands__label {
  background-color: black;
  color: white;
  border-radius: 6.25rem;
  padding: 0.3125rem 1.25rem;
  font-size: 1rem;
  font-weight: 900;
  flex-shrink: 0;
  white-space: nowrap;
}
.buggy-brands__subhead {
  font-size: 0.875rem;
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
  width: 100%;
}
.buggy-brands__list {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 1.25rem;
  justify-content: center;
}
.buggy-brands__item {
  display: flex;
  flex-direction: column;
}
.buggy-brands__name {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  margin-bottom: 0.625rem;
}
.buggy-brands__name--blue { color: var(--color-blue); }
.buggy-brands__name--green { color: var(--color-green); }
.buggy-brands__name--red { color: #BE0003; }
.buggy-brands__photo {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 1.875rem;
}
.buggy-brands__img {
  position: relative;
  max-width: 12.5rem;
  z-index: 1;
}
.buggy-brands__point-badge {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 18%;
  transform: translate(-5%,-15%);
  z-index: 2;
}
.buggy-brands__points {
  list-style: none;
  margin-bottom: 0.625rem;
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3125rem;
}
.buggy-brands__points li {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.4;
  padding-left: 1.25rem;
  position: relative;
}
.buggy-brands__points li::before {
  content: '●';
  position: absolute;
  top: 0;
  left: 0;
}
.buggy-brands__points--blue li::before { color: var(--color-blue); }
.buggy-brands__points--green li::before { color: var(--color-green); }
.buggy-brands__points--red li::before { color: #BE0003; }
.buggy-brands__target {
  border: 2px solid black;
  padding: 0.3125rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.4;
}
.buggy-brands__note {
  font-size: 0.75rem;
  margin-top: 1.25rem;
  text-align: center;
}
.buggy-comment {
  position: relative;
  background: black;
  border-radius: 0.625rem;
  padding: 0.625rem;
  display: grid;
  align-items: center;
  text-align: center;
  margin-bottom: 1.875rem;
}
.buggy-comment p {
  color: var(--color-orange);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 0;
}
.buggy-comment::before {
  display: none;
}
.buggy-comment::after {
  content: '';
  position: absolute;
  bottom: 0;
  width: 0;
  height: 0;
  left: 50%;
  transform: translateX(-50%) translateY(100%);
  border-left: 0.625rem solid transparent;
  border-right: 0.625rem solid transparent;
  border-top: 0.625rem solid black;
}
.buggy-cards-row {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.buggy-card {
  display: flex;
  flex-direction: column;
  justify-content: stretch;
  border-radius: 0.625rem;
  padding: 0.625rem;
}
.buggy-card-title {
  display: flex;
  align-items: center;
  gap: 0.3125rem;
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1.4;
  margin-bottom: 0.625rem;
}
.buggy-card__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  background: black;
  border-radius: 50%;
  font-size: 1.25rem;
  flex-shrink: 0;
  color: white;
}
.buggy-card__name {
  font-weight: 700;
  color: white;
  margin: 0;
  line-height: 0.8;
}
.buggy-card__name-sub {
  font-size: 1rem;
}
.buggy-card-inner {
  height: 100%;
  background: white;
  border-radius: 0.625rem;
  padding: 0.625rem;
  box-shadow: 0 0 0.625rem 0 rgba(0, 0, 0, 0.4);
}
.buggy-card__date {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 0.625rem;
}
.buggy-target {
  display: flex;
  align-items: center;
  font-weight: 700;
  margin-bottom: 0.625rem;
  font-size: 0.75rem;
}
.buggy-card__text {
  margin-bottom: 0.625rem;
  font-size: 0.875rem;
  line-height: 1.4;
}
.buggy-target--blue { background: #EDF9FF; }
.buggy-target--daidai { background: #FFF5F0; }
.buggy-target__label {
  padding: 0.15625rem 0.3125rem;
  margin-right: 0.3125rem;
  color: white;
  flex-shrink: 0;
}
.buggy-target--blue .buggy-target__label { background-color: var(--color-blue); }
.buggy-target--daidai .buggy-target__label { background-color: var(--color-daidai); }
.buggy-note {
  font-size: 0.75rem;
  margin-bottom: 0.625rem;
  line-height: 1.4;
}
.buggy-alert-wrap {
  text-align: center;
}
.buggy-card-alert {
  display: inline-flex;
  align-items: center;
  gap: 0.15625rem;
  color: var(--color-danger);
  font-weight: 700;
  font-size: 0.875rem;
  padding: 0.15625rem 0.625rem;
  margin: 0;
  background-color: #FFF2F2;
  border-radius: 1.25rem;
}
.buggy-brands-label {
  background: #FFEAF6;
  font-size: 0.85em;
  padding: 0.15625rem 0.3125rem;
  border-radius: 1.25rem;
  margin-bottom: 0.625rem;
}
.buggy-brands-detail {
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  margin: 0;
  line-height: 1.8;
}

/* ============================================
   GYMCLASS SECTION
============================================ */
:root {
  --color-gymclass: #005645;
}
.gymclass .contents-sub {
  color: var(--color-gymclass);
}
.gymclass .contents-name {
  background-color: var(--color-gymclass);
}
.bg-gymclass { background-color: var(--color-gymclass); }
.gymclass-comment {
  position: relative;
  background: white;
  border-radius: 31.25rem;
  padding: 1.5625rem 1.25rem;
  text-align: center;
  margin-bottom: 2.5rem;
  filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.2));
}
.gymclass-comment__text {
  font-size: clamp(14px, calc(18 / 1440 * 100vw), 18px);
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 0;
}
.gymclass-comment::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) translateY(100%);
  width: 0;
  height: 0;
  border-left: 0.9375rem solid transparent;
  border-right: 0.9375rem solid transparent;
  border-top: 0.9375rem solid white;
}

/* ============================================
   VOLLEYBALL SECTION
============================================ */
:root {
  --color-volleyball: #222A7E;
}
.volleyball .contents-sub {
  color: var(--color-volleyball);
}
.volleyball .contents-name {
  background-color: var(--color-volleyball);
}
.bg-volleyball { background-color: var(--color-volleyball); }
.volleyball .contents-main .contents-info__note {
  display: block;
  text-align: right;
  margin: 0.625rem 0;
}
.volleyball .contents-info__strong {
  display: grid;
  grid-template-columns: 2.8125rem auto;
  text-align: left;
}
.volleyball .contents-schedule__list {
  flex-direction: row;
}
.volleyball .contents-schedule__time {
  margin-bottom: 0;
}