/*
Theme Name: 脱出遊戯 yStandard Child
Theme URI: https://dasshutsu-ch.com/
Description: 脱出遊戯プレミアム用 yStandard 子テーマ
Author: i.d.c.m.
Template: ystandard
Version: 1.0.0
Text Domain: ystandard-dasshutsu
*/

/* =========================================
   脱出遊戯プレミアム
   HEADER
========================================= */

.dy-header {
  position: relative;
  z-index: 1000;
  width: 100%;
  background: #080808 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* =========================================
   Header Inner
========================================= */

.dy-header__inner {
  display: flex !important;
  align-items: center !important;
  width: min(calc(100% - 48px), 1400px);
  max-width: 1400px;
  min-height: 82px;
  margin: 0 auto;
  padding: 8px 0;
}

/* =========================================
   Logo
========================================= */

.dy-header__logo {
  flex: 0 0 auto;
  margin-right: 45px;
}

.dy-header__logo a {
  display: flex;
  align-items: center;
  text-decoration: none !important;
}

.dy-header__logo img {
  display: block !important;
  width: auto !important;
  height: 64px !important;
  max-width: 150px !important;
  object-fit: contain;
}

/* =========================================
   Navigation
========================================= */

.dy-header__nav {
  flex: 1 1 auto;
  min-width: 0;
}

.dy-header__nav-list {
  display: flex !important;
  align-items: center;
  gap: 28px;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.dy-header__nav-list li {
  flex: 0 0 auto;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.dy-header__nav-list li::before,
.dy-header__nav-list li::after {
  display: none !important;
  content: none !important;
}

.dy-header__nav-list a {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8px 0;
  color: #fff !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.dy-header__nav-list a:hover {
  color: #fff !important;
  opacity: 0.75;
}

/* ナビ下部の赤ライン */

.dy-header__nav-list a::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: #e50914;
  content: "";
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.2s ease;
}

.dy-header__nav-list a:hover::after {
  transform: scaleX(1);
}

/* 日本語 */

.dy-header__nav-ja {
  display: block;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.03em;
}

/* English */

.dy-header__nav-en {
  display: block;
  margin-top: 3px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 9px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.06em;
}

/* =========================================
   Login / Sign Up / Account
========================================= */

.dy-header__actions {
  display: flex !important;
  flex: 0 0 auto;
  align-items: center;
  gap: 10px;
  margin-left: 35px;
}

.dy-header__login,
.dy-header__signup {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  min-height: 46px;
  padding: 7px 16px;
  border-radius: 5px;
  text-decoration: none !important;
  white-space: nowrap;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease;
}

/* Login / My Account */

.dy-header__login {
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: transparent;
}

.dy-header__login:hover {
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.8);
  background: rgba(255, 255, 255, 0.07);
}

/* Sign Up / Logout */

.dy-header__signup {
  color: #fff !important;
  border: 1px solid #e50914;
  background: #e50914;
}

.dy-header__signup:hover {
  color: #fff !important;
  border-color: #f31b25;
  background: #f31b25;
  transform: translateY(-1px);
}

/* 日本語 */

.dy-header__action-ja {
  display: block;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
}

/* English */

.dy-header__action-en {
  display: block;
  margin-top: 3px;
  font-size: 8px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.06em;
  opacity: 0.6;
}

/* =========================================
   Hamburger Button
========================================= */

.dy-header__menu-button {
  display: none !important;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 9px;
  border: 0;
  border-radius: 5px;
  background: transparent !important;
  box-shadow: none !important;
  cursor: pointer;
}

.dy-header__menu-button span {
  display: block;
  width: 100%;
  height: 2px;
  margin: 6px 0;
  background: #fff;
  transition:
    transform 0.25s ease,
    opacity 0.25s ease;
}

/* =========================================
   Mobile Menu
========================================= */

.dy-header__mobile-menu {
  display: none;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: #080808;
}

.dy-header__mobile-nav {
  width: min(calc(100% - 32px), 600px);
  margin: 0 auto;
  padding: 12px 0 24px;
}

.dy-header__mobile-nav > a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 15px 4px;
  color: #fff !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  text-decoration: none !important;
}

.dy-header__mobile-nav > a span {
  font-size: 14px;
  font-weight: 700;
}

.dy-header__mobile-nav > a small {
  color: rgba(255, 255, 255, 0.45);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.07em;
}

/* =========================================
   Mobile Login / Sign Up
========================================= */

.dy-header__mobile-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 22px;
}

.dy-header__mobile-login,
.dy-header__mobile-signup {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 8px 10px;
  border-radius: 5px;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  text-decoration: none !important;
}

.dy-header__mobile-login {
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: transparent;
}

.dy-header__mobile-signup {
  color: #fff !important;
  border: 1px solid #e50914;
  background: #e50914;
}

.dy-header__mobile-actions small {
  display: block;
  margin-top: 3px;
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.06em;
  opacity: 0.6;
}

/* =========================================
   Tablet
========================================= */

@media screen and (max-width: 1150px) {

  .dy-header__inner {
    width: calc(100% - 32px);
  }

  .dy-header__logo {
    margin-right: 28px;
  }

  .dy-header__logo img {
    height: 56px !important;
    max-width: 130px !important;
  }

  .dy-header__nav-list {
    gap: 18px;
  }

  .dy-header__actions {
    gap: 7px;
    margin-left: 20px;
  }

  .dy-header__login,
  .dy-header__signup {
    min-width: 86px;
    padding-right: 10px;
    padding-left: 10px;
  }

}


/* =========================================
   Smartphone
========================================= */

@media screen and (max-width: 900px) {

  .dy-header__inner {
    justify-content: space-between;
    width: calc(100% - 28px);
    min-height: 68px;
    padding: 6px 0;
  }

  /* Logo */

  .dy-header__logo {
    margin-right: 0;
  }

  .dy-header__logo img {
    width: auto !important;
    height: 50px !important;
    max-width: 115px !important;
  }

  /* PC navigation hidden */

  .dy-header__nav,
  .dy-header__actions {
    display: none !important;
  }

  /* Hamburger */

  .dy-header__menu-button {
    display: block !important;
  }

  /* Open mobile menu */

  .dy-header.is-open .dy-header__mobile-menu {
    display: block;
  }

  /* Hamburger animation */

  .dy-header.is-open
  .dy-header__menu-button
  span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }

  .dy-header.is-open
  .dy-header__menu-button
  span:nth-child(2) {
    opacity: 0;
  }

  .dy-header.is-open
  .dy-header__menu-button
  span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }

}


/* =========================================
   Small Smartphone
========================================= */

@media screen and (max-width: 480px) {

  .dy-header__inner {
    width: calc(100% - 22px);
  }

  .dy-header__logo img {
    height: 46px !important;
    max-width: 105px !important;
  }

  .dy-header__mobile-nav {
    width: calc(100% - 28px);
  }

}

/* =========================================
   HOME
========================================= */

.dy-home-hero {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

/* MetaSlider余白リセット */

.dy-home-hero .metaslider,
.dy-home-hero .flexslider {
  margin: 0 !important;
}


/* =========================================
   Home Content
========================================= */

.dy-home-content {
  width: min(calc(100% - 64px), 1400px);
  margin: 0 auto;
  padding: 54px 0 100px;
}


/* =========================================
   Section
========================================= */

.dy-home-section {
  margin-bottom: 64px;
}


/* =========================================
   Section Heading
========================================= */

.dy-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 22px;
  padding-left: 14px;
  border-left: 3px solid #e50914;
}

.dy-section-heading__en {
  display: block;
  margin-bottom: 4px;
  color: #e50914;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.15em;
}

.dy-section-heading__title {
  margin: 0 !important;
  padding: 0 !important;
  color: #fff;
  border: 0 !important;
  background: none !important;
  font-size: clamp(20px, 2vw, 27px);
  font-weight: 700;
  line-height: 1.35;
}

.dy-section-heading__more {
  flex: 0 0 auto;
  padding-bottom: 2px;
  color: rgba(255, 255, 255, 0.75) !important;
  font-size: 11px;
  font-weight: 600;
  text-align: right;
  text-decoration: none !important;
  transition: color 0.2s ease;
}

.dy-section-heading__more span {
  display: block;
  margin-top: 2px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.dy-section-heading__more:hover {
  color: #fff !important;
}


/* =========================================
   Smartphone
========================================= */

@media screen and (max-width: 700px) {

  .dy-home-content {
    width: calc(100% - 28px);
    padding-top: 36px;
  }

  .dy-home-section {
    margin-bottom: 46px;
  }

  .dy-section-heading {
    gap: 15px;
    margin-bottom: 16px;
    padding-left: 10px;
  }

  .dy-section-heading__title {
    font-size: 19px;
  }

  .dy-section-heading__more {
    font-size: 10px;
  }

}

/* =========================================
   Membership CTA
========================================= */

.dy-membership-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 50px;

  padding: 34px 38px;

  border: 1px solid rgba(255,255,255,.10);
  border-radius: 8px;

  background:
    linear-gradient(
      110deg,
      rgba(255,255,255,.06),
      rgba(255,255,255,.015)
    );
}

.dy-membership-box__text {
  flex: 1 1 auto;
  max-width: 720px;
}

.dy-membership-box__en {
  display: block;

  margin-bottom: 8px;

  color: #e50914;

  font-size: 10px;
  font-weight: 700;

  letter-spacing: .14em;
}

.dy-membership-box h2 {
  margin: 0 0 12px !important;
  padding: 0 !important;

  color: #fff;

  border: 0 !important;
  background: none !important;

  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.35;
}

.dy-membership-box p {
  margin: 0;

  color: rgba(255,255,255,.75);

  font-size: 13px;
  line-height: 1.8;
}

.dy-membership-box__english {
  margin-top: 5px !important;

  color: rgba(255,255,255,.40) !important;

  font-size: 10px !important;
}


/* Buttons */

.dy-membership-box__actions {
  display: flex;
  flex: 0 0 auto;

  gap: 12px;
}

.dy-membership-button {
  display: flex;
  flex-direction: column;

  align-items: center;
  justify-content: center;

  min-width: 150px;
  min-height: 58px;

  padding: 9px 22px;

  border-radius: 5px;

  text-align: center;
  text-decoration: none !important;

  transition:
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.dy-membership-button strong {
  font-size: 13px;
  line-height: 1.2;
}

.dy-membership-button span {
  margin-top: 4px;

  font-size: 8px;
  font-weight: 500;

  letter-spacing: .08em;

  opacity: .6;
}


/* Login */

.dy-membership-button--login {
  color: #fff !important;

  border: 1px solid rgba(255,255,255,.4);

  background: transparent;
}

.dy-membership-button--login:hover {
  color: #fff !important;

  border-color: #fff;

  background: rgba(255,255,255,.07);

  transform: translateY(-2px);
}


/* Sign Up */

.dy-membership-button--signup {
  color: #fff !important;

  border: 1px solid #e50914;

  background: #e50914;
}

.dy-membership-button--signup:hover {
  color: #fff !important;

  border-color: #f21b26;

  background: #f21b26;

  transform: translateY(-2px);
}


/* =========================================
   Membership CTA - Mobile
========================================= */

@media screen and (max-width: 700px) {

  .dy-membership-box {
    display: block;

    padding: 25px 20px;
  }

  .dy-membership-box__actions {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 8px;

    margin-top: 22px;
  }

  .dy-membership-button {
    min-width: 0;

    padding-right: 10px;
    padding-left: 10px;
  }

}

@media screen and (max-width: 430px) {

  .dy-membership-box__actions {
    grid-template-columns: 1fr;
  }

}

/* =========================================
   Section More Button
========================================= */

.dy-section-more {
  display: flex;
  justify-content: flex-end;
  margin-top: 22px;
}

.dy-section-more__button {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  min-height: 42px;
  padding: 9px 18px;

  border: 1px solid rgba(255,255,255,.25);
  border-radius: 5px;

  background: rgba(255,255,255,.03);

  color: #fff !important;
  text-decoration: none !important;

  transition:
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.dy-section-more__button:hover {
  color: #fff !important;
  border-color: rgba(255,255,255,.65);
  background: rgba(255,255,255,.08);
  transform: translateY(-1px);
}

.dy-section-more__ja {
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.dy-section-more__en {
  padding-left: 10px;

  border-left: 1px solid rgba(255,255,255,.18);

  color: rgba(255,255,255,.45);

  font-size: 8px;
  font-weight: 600;

  line-height: 1;
  letter-spacing: .08em;
}


/* Smartphone */

@media screen and (max-width: 700px) {

  .dy-section-more {
    justify-content: center;
    margin-top: 18px;
  }

  .dy-section-more__button {
    width: 100%;
    max-width: 280px;
    justify-content: center;
  }

}

/* =========================================
   CATEGORY LIBRARY
   脱出遊戯プレミアム
========================================= */

.dy-library {
  width: 100%;
  background: #080808;
  color: #fff;
}

.dy-library__inner {
  width: min(calc(100% - 64px), 1400px);
  margin: 0 auto;
  padding: 54px 0 100px;
}


/* =========================================
   Library Header
========================================= */

.dy-library-header {
  margin-bottom: 46px;
}

.dy-library-header__en {
  display: block;
  margin-bottom: 8px;
  color: #e50914;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.14em;
}

.dy-library-header__title {
  margin: 0 0 12px !important;
  padding: 0 !important;
  color: #fff;
  border: 0 !important;
  background: none !important;
  font-size: clamp(26px, 3vw, 40px);
  font-weight: 700;
  line-height: 1.25;
}

.dy-library-header__description {
  margin: 0 0 5px;
  color: rgba(255,255,255,.72);
  font-size: 13px;
  line-height: 1.8;
}

.dy-library-header__description-en {
  margin: 0;
  color: rgba(255,255,255,.38);
  font-size: 10px;
  line-height: 1.7;
}


/* =========================================
   Library Section
========================================= */

.dy-library-section {
  margin-top: 24px;
}


/* =========================================
   Video Grid
========================================= */

.dy-library-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 34px 20px;
  margin-top: 24px;
}


/* =========================================
   Video Card
========================================= */

.dy-video-card {
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.dy-video-card__link {
  display: block;
  color: #fff !important;
  text-decoration: none !important;
}


/* Thumbnail */

.dy-video-card__thumbnail {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 5px;
  background: #151515;
}

.dy-video-card__image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  transition:
    transform .25s ease,
    opacity .25s ease;
}

.dy-video-card__link:hover .dy-video-card__image {
  transform: scale(1.035);
  opacity: .78;
}


/* Play Overlay */

.dy-video-card__play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0);
  opacity: 0;
  transition:
    opacity .2s ease,
    background-color .2s ease;
}

.dy-video-card__link:hover .dy-video-card__play {
  background: rgba(0,0,0,.25);
  opacity: 1;
}

.dy-video-card__play-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding-left: 3px;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 50%;
  background: rgba(0,0,0,.48);
  color: #fff;
  font-size: 17px;
  line-height: 1;
}


/* No Image */

.dy-video-card__no-image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: rgba(255,255,255,.35);
  font-size: 10px;
  letter-spacing: .12em;
}


/* =========================================
   Card Body
========================================= */

.dy-video-card__body {
  padding: 12px 3px 0;
}

.dy-video-card__title {
  display: -webkit-box;
  overflow: hidden;
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
  border: 0 !important;
  background: none !important;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.dy-video-card__watch {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  margin-top: 7px;
  color: #e50914;
  font-size: 10px;
  font-weight: 700;
}

.dy-video-card__watch small {
  color: rgba(255,255,255,.35);
  font-size: 8px;
  font-weight: 500;
  letter-spacing: .05em;
}


/* =========================================
   Pagination
========================================= */

.dy-library-pagination {
  margin-top: 60px;
  text-align: center;
}

.dy-library-pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.dy-library-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 7px 11px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 4px;
  background: rgba(255,255,255,.03);
  color: rgba(255,255,255,.72) !important;
  font-size: 10px;
  text-decoration: none !important;
}

.dy-library-pagination .page-numbers:hover {
  border-color: rgba(255,255,255,.4);
  background: rgba(255,255,255,.08);
  color: #fff !important;
}

.dy-library-pagination .page-numbers.current {
  border-color: #e50914;
  background: #e50914;
  color: #fff !important;
}


/* =========================================
   Empty
========================================= */

.dy-library-empty {
  padding: 60px 20px;
  text-align: center;
}

.dy-library-empty p {
  margin: 0;
  color: rgba(255,255,255,.7);
  font-size: 14px;
}

.dy-library-empty__en {
  margin-top: 5px !important;
  color: rgba(255,255,255,.35) !important;
  font-size: 10px !important;
}


/* =========================================
   Locked / Non Member
========================================= */

.dy-library-locked {
  max-width: 760px;
  margin: 20px auto 0;
  padding: 55px 40px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 8px;
  background:
    linear-gradient(
      120deg,
      rgba(255,255,255,.055),
      rgba(255,255,255,.012)
    );
  text-align: center;
}

.dy-library-locked__icon {
  margin-bottom: 16px;
  font-size: 28px;
}

.dy-library-locked__en {
  display: block;
  margin-bottom: 9px;
  color: #e50914;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
}

.dy-library-locked h2 {
  margin: 0 0 16px !important;
  padding: 0 !important;
  color: #fff;
  border: 0 !important;
  background: none !important;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.45;
}

.dy-library-locked p {
  max-width: 580px;
  margin: 0 auto;
  color: rgba(255,255,255,.68);
  font-size: 13px;
  line-height: 1.9;
}

.dy-library-locked__english {
  margin-top: 8px !important;
  color: rgba(255,255,255,.38) !important;
  font-size: 10px !important;
}

.dy-library-locked__actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 28px;
}


/* =========================================
   Tablet
========================================= */

@media screen and (max-width: 1100px) {

  .dy-library-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

}


/* =========================================
   Smartphone
========================================= */

@media screen and (max-width: 700px) {

  .dy-library__inner {
    width: calc(100% - 28px);
    padding: 36px 0 70px;
  }

  .dy-library-header {
    margin-bottom: 32px;
  }

  .dy-library-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px 10px;
  }

  .dy-video-card__thumbnail {
    border-radius: 4px;
  }

  .dy-video-card__body {
    padding-top: 9px;
  }

  .dy-video-card__title {
    font-size: 12px;
  }

  .dy-video-card__watch {
    font-size: 9px;
  }

  .dy-video-card__play-icon {
    width: 40px;
    height: 40px;
    font-size: 14px;
  }

  .dy-library-pagination {
    margin-top: 42px;
  }

  .dy-library-locked {
    padding: 38px 20px;
  }

  .dy-library-locked__actions {
    flex-direction: column;
  }

  .dy-library-locked__actions .dy-membership-button {
    width: 100%;
  }

}


/* =========================================
   Small Smartphone
========================================= */

@media screen and (max-width: 420px) {

  .dy-library-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap-right: 8px;
  }

  .dy-video-card__title {
    font-size: 11px;
  }

}

/* =========================================
   WATCH PAGE
========================================= */

.dy-watch-page {
  width: 100%;
  background: #080808;
  color: #fff;
}

.dy-watch-page__inner {
  width: min(calc(100% - 64px), 1280px);
  margin: 0 auto;
  padding: 46px 0 100px;
}


/* =========================================
   Watch Header
========================================= */

.dy-watch-header {
  margin-bottom: 24px;
}

.dy-watch-header__en {
  display: block;
  margin-bottom: 8px;
  color: #e50914;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .14em;
}

.dy-watch-header__title {
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
  border: 0 !important;
  background: none !important;
  font-size: clamp(26px, 3vw, 40px);
  font-weight: 700;
  line-height: 1.3;
}


/* =========================================
   Watch Content
========================================= */

.dy-watch-content {
  margin: 0 !important;
  padding: 0 !important;
  color: rgba(255,255,255,.82);
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.dy-watch-content > *:first-child {
  margin-top: 0 !important;
}

.dy-watch-content p {
  color: rgba(255,255,255,.72);
  font-size: 14px;
  line-height: 1.9;
}

.dy-watch-content h2,
.dy-watch-content h3,
.dy-watch-content h4,
.dy-watch-content h5,
.dy-watch-content h6 {
  margin-top: 36px !important;
  margin-bottom: 12px !important;
  padding: 0 0 9px !important;
  color: #fff !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
  background: none !important;
  font-weight: 700;
  line-height: 1.4;
}

.dy-watch-content h2 {
  font-size: 20px;
}

.dy-watch-content h3 {
  font-size: 18px;
}

.dy-watch-content h4,
.dy-watch-content h5,
.dy-watch-content h6 {
  font-size: 16px;
}


/* =========================================
   Presto Player
========================================= */

.dy-watch-content .presto-player,
.dy-watch-content .presto-block-video,
.dy-watch-content .wp-block-presto-player-reusable-edit,
.dy-watch-content .wp-block-presto-player-premium-video {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 34px !important;
}

.dy-watch-content .presto-player__wrapper,
.dy-watch-content .plyr,
.dy-watch-content video {
  width: 100% !important;
  max-width: 100% !important;
}

.dy-watch-content .plyr {
  overflow: hidden;
  border-radius: 7px;
  background: #000;
}


/* =========================================
   本文の情報エリア
========================================= */

.dy-watch-content > p,
.dy-watch-content > h2,
.dy-watch-content > h3,
.dy-watch-content > h4,
.dy-watch-content > h5,
.dy-watch-content > h6,
.dy-watch-content > ul,
.dy-watch-content > ol {
  max-width: 900px;
}

.dy-watch-content ul,
.dy-watch-content ol {
  padding-left: 1.4em;
  color: rgba(255,255,255,.72);
}


/* =========================================
   Back to Library
========================================= */

.dy-watch-back {
  display: flex;
  justify-content: flex-start;
  margin-top: 44px;
}

.dy-watch-back__button {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  padding: 9px 18px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 5px;
  background: rgba(255,255,255,.03);
  color: #fff !important;
  text-decoration: none !important;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.dy-watch-back__button:hover {
  border-color: rgba(255,255,255,.6);
  background: rgba(255,255,255,.07);
  transform: translateY(-1px);
}

.dy-watch-back__arrow {
  color: #e50914;
  font-size: 18px;
  line-height: 1;
}

.dy-watch-back__button > span:last-child {
  display: flex;
  flex-direction: column;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
}

.dy-watch-back__button small {
  margin-top: 3px;
  color: rgba(255,255,255,.38);
  font-size: 8px;
  font-weight: 500;
  letter-spacing: .06em;
}


/* =========================================
   Related Videos
========================================= */

.dy-watch-related {
  margin-top: 72px;
  padding-top: 42px;
  border-top: 1px solid rgba(255,255,255,.08);
}

.dy-watch-related .dy-library-grid {
  margin-top: 24px;
}


/* =========================================
   Tablet
========================================= */

@media screen and (max-width: 1000px) {

  .dy-watch-page__inner {
    width: calc(100% - 40px);
  }

}


/* =========================================
   Smartphone
========================================= */

@media screen and (max-width: 700px) {

  .dy-watch-page__inner {
    width: calc(100% - 24px);
    padding: 30px 0 70px;
  }

  .dy-watch-header {
    margin-bottom: 18px;
  }

  .dy-watch-header__title {
    font-size: 24px;
  }

  .dy-watch-content .plyr {
    border-radius: 4px;
  }

  .dy-watch-content h2 {
    font-size: 18px;
  }

  .dy-watch-content h3 {
    font-size: 16px;
  }

  .dy-watch-content p {
    font-size: 13px;
  }

  .dy-watch-back {
    margin-top: 34px;
  }

  .dy-watch-back__button {
    width: 100%;
    justify-content: center;
  }

  .dy-watch-related {
    margin-top: 54px;
    padding-top: 32px;
  }

}

/* =========================================
   PMPro My Account
========================================= */

body.page-id-15 .site-content {
  background: #080808;
}

body.page-id-15 .content__wrap {
  display: block;
}

body.page-id-15 .content__main {
  width: 100%;
  max-width: none;
}

body.page-id-15 .singular-article {
  max-width: 1100px;
  margin: 0 auto;
  padding: 50px 32px 100px;
  background: transparent;
  border: 0;
  box-shadow: none;
}


/* =========================================
   Page Title
========================================= */

body.page-id-15 .singular-header {
  margin-bottom: 42px;
}

body.page-id-15 .singular-header__title {
  margin: 0 !important;
  padding: 0 !important;
  color: #fff;
  border: 0 !important;
  background: none !important;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.3;
}


/* =========================================
   PMPro Wrapper
========================================= */

body.page-id-15 .pmpro {
  color: #fff;
}

body.page-id-15 .pmpro_section {
  margin: 0 0 48px;
}


/* Section heading */

body.page-id-15 .pmpro_section_title {
  margin: 0 0 18px !important;
  padding: 0 0 0 14px !important;
  color: #fff !important;
  border: 0 !important;
  border-left: 3px solid #e50914 !important;
  background: none !important;
  font-size: 22px !important;
  font-weight: 700;
  line-height: 1.4;
}


/* =========================================
   Cards
========================================= */

body.page-id-15 .pmpro_card {
  overflow: hidden;
  margin: 0 0 16px !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 8px !important;
  background:
    linear-gradient(
      120deg,
      rgba(255,255,255,.055),
      rgba(255,255,255,.015)
    ) !important;
  box-shadow: none !important;
}


/* Card title */

body.page-id-15 .pmpro_card_title {
  margin: 0 !important;
  padding: 22px 24px 14px !important;
  color: #fff !important;
  border: 0 !important;
  background: none !important;
  font-size: 18px !important;
  font-weight: 700;
}


/* Avatar */

body.page-id-15 .pmpro_heading-with-avatar {
  display: flex;
  align-items: center;
  gap: 14px;
}

body.page-id-15 .pmpro_heading-with-avatar img {
  width: 48px !important;
  height: 48px !important;
  margin: 0 !important;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
}


/* Card content */

body.page-id-15 .pmpro_card_content {
  padding: 0 24px 22px !important;
  color: rgba(255,255,255,.72);
}

body.page-id-15 .pmpro_list {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.page-id-15 .pmpro_list_item {
  margin: 7px 0 !important;
  padding: 0 !important;
  color: rgba(255,255,255,.7);
  font-size: 13px;
  line-height: 1.7;
}

body.page-id-15 .pmpro_list_item strong {
  color: #fff;
}


/* =========================================
   Card Actions
========================================= */

body.page-id-15 .pmpro_card_actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;

  padding: 14px 24px !important;

  border-top: 1px solid rgba(255,255,255,.08);

  background: rgba(0,0,0,.18);
}

body.page-id-15 .pmpro_card_action_separator {
  display: none;
}

body.page-id-15 .pmpro_card_action {
  margin: 0 !important;
}

body.page-id-15 .pmpro_card_action a {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 36px;
  padding: 7px 13px;

  border: 1px solid rgba(255,255,255,.22);
  border-radius: 4px;

  background: rgba(255,255,255,.025);

  color: #fff !important;

  font-size: 10px;
  font-weight: 700;

  text-decoration: none !important;

  transition:
    background-color .2s ease,
    border-color .2s ease;
}

body.page-id-15 .pmpro_card_action a:hover {
  border-color: rgba(255,255,255,.55);
  background: rgba(255,255,255,.07);
}


/* Cancel buttons */

body.page-id-15
a[id^="pmpro_actionlink-cancel"] {
  color: #ff6b72 !important;
  border-color: rgba(229,9,20,.45);
}

body.page-id-15
a[id^="pmpro_actionlink-cancel"]:hover {
  color: #fff !important;
  border-color: #e50914;
  background: #e50914;
}


/* =========================================
   Membership Cards
========================================= */

body.page-id-15 #pmpro_account-membership .pmpro_section_content {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

body.page-id-15 #pmpro_account-membership .pmpro_card {
  display: flex;
  flex-direction: column;
  margin: 0 !important;
}

body.page-id-15 #pmpro_account-membership .pmpro_card_actions {
  margin-top: auto;
}


/* Membership label */

body.page-id-15 #pmpro_account-membership-3 .pmpro_card_title::before,
body.page-id-15 #pmpro_account-membership-5 .pmpro_card_title::before {
  display: block;
  margin-bottom: 7px;
  color: #e50914;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .12em;
}

body.page-id-15 #pmpro_account-membership-3 .pmpro_card_title::before {
  content: "DASSHUTSU YUGI PREMIUM";
}

body.page-id-15 #pmpro_account-membership-5 .pmpro_card_title::before {
  content: "KUZU NO GOMIBAKO";
}


/* =========================================
   Mobile
========================================= */

@media screen and (max-width: 700px) {

  body.page-id-15 .singular-article {
    padding: 34px 16px 70px;
  }

  body.page-id-15 .singular-header {
    margin-bottom: 30px;
  }

  body.page-id-15 .pmpro_section {
    margin-bottom: 38px;
  }

  body.page-id-15 #pmpro_account-membership .pmpro_section_content {
    grid-template-columns: 1fr;
  }

  body.page-id-15 .pmpro_card_title {
    padding: 19px 18px 12px !important;
  }

  body.page-id-15 .pmpro_card_content {
    padding: 0 18px 18px !important;
  }

  body.page-id-15 .pmpro_card_actions {
    padding: 12px 18px !important;
  }

  body.page-id-15 .pmpro_card_action a {
    min-height: 38px;
  }

}

/* =========================================================
   脱出遊戯プレミアム - LOGIN PAGE
   page-22.php
========================================================= */


/* ---------------------------------------------------------
   Page Base
--------------------------------------------------------- */

.dy-login-page {
  width: 100%;
  min-height: 70vh;
  padding: 70px 24px 110px;
  background:
    radial-gradient(
      circle at 50% 0%,
      rgba(229, 9, 20, .07),
      transparent 420px
    ),
    #080808;
  color: #fff;
}

.dy-login-container {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
}


/* ---------------------------------------------------------
   Page Header
--------------------------------------------------------- */

.dy-login-header {
  margin-bottom: 30px;
  text-align: center;
}

.dy-login-eyebrow {
  display: block;
  margin-bottom: 10px;

  color: #e50914;

  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .16em;
}

.dy-login-title {
  margin: 0 0 14px !important;
  padding: 0 !important;

  border: 0 !important;
  background: none !important;

  color: #fff !important;

  font-size: clamp(30px, 4vw, 40px);
  font-weight: 700;
  line-height: 1.3;
}

.dy-login-description {
  margin: 0;

  color: rgba(255,255,255,.70);

  font-size: 13px;
  line-height: 1.8;
}

.dy-login-description-en {
  margin: 6px 0 0;

  color: rgba(255,255,255,.38);

  font-size: 10px;
  line-height: 1.6;
}


/* ---------------------------------------------------------
   PMPro Login Card
--------------------------------------------------------- */

.dy-login-card {
  overflow: hidden;

  margin: 0;
  padding: 34px;

  border: 1px solid rgba(255,255,255,.13);
  border-radius: 8px;

  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.055),
      rgba(255,255,255,.015)
    );

  box-shadow: 0 20px 60px rgba(0,0,0,.25);
}


/* PMProが内部に生成する余白を調整 */

.dy-login-card .pmpro,
.dy-login-card .pmpro_section,
.dy-login-card .pmpro_card {
  margin: 0 !important;
}


/* 不要なカード装飾が出た場合 */

.dy-login-card .pmpro_card {
  padding: 0 !important;

  border: 0 !important;
  background: transparent !important;

  box-shadow: none !important;
}

.dy-login-card .pmpro_card_content {
  padding: 0 !important;
}


/* ---------------------------------------------------------
   Form Labels
--------------------------------------------------------- */

.dy-login-card label {
  display: block;

  margin: 0 0 7px;

  color: rgba(255,255,255,.78);

  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
}


/* ---------------------------------------------------------
   Text / Password Fields
--------------------------------------------------------- */

.dy-login-card input[type="text"],
.dy-login-card input[type="email"],
.dy-login-card input[type="password"] {
  box-sizing: border-box;

  width: 100%;
  min-height: 48px;

  padding: 10px 13px;

  border: 1px solid rgba(255,255,255,.18);
  border-radius: 5px;

  outline: none;

  background: rgba(255,255,255,.04);

  color: #fff;

  font-size: 14px;

  transition:
    border-color .2s ease,
    background-color .2s ease,
    box-shadow .2s ease;
}

.dy-login-card input[type="text"]:focus,
.dy-login-card input[type="email"]:focus,
.dy-login-card input[type="password"]:focus {
  border-color: #e50914;

  background: rgba(255,255,255,.06);

  box-shadow: 0 0 0 3px rgba(229,9,20,.10);
}


/* ---------------------------------------------------------
   Form Rows
--------------------------------------------------------- */

.dy-login-card .pmpro_form_field,
.dy-login-card .login-username,
.dy-login-card .login-password {
  margin-bottom: 20px;
}


/* ---------------------------------------------------------
   Remember Me
--------------------------------------------------------- */

.dy-login-card .login-remember,
.dy-login-card .pmpro_form_field-checkbox {
  margin: 0 0 20px;
}

.dy-login-card .login-remember label,
.dy-login-card .pmpro_form_field-checkbox label {
  display: inline-flex;
  align-items: center;
  gap: 7px;

  margin: 0;

  color: rgba(255,255,255,.58);

  font-size: 10px;
  font-weight: 500;
}

.dy-login-card input[type="checkbox"] {
  accent-color: #e50914;
}


/* ---------------------------------------------------------
   Login Button
--------------------------------------------------------- */

.dy-login-card input[type="submit"],
.dy-login-card button[type="submit"],
.dy-login-card .pmpro_btn {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  min-height: 50px;

  margin: 0;
  padding: 10px 20px;

  border: 1px solid #e50914 !important;
  border-radius: 5px !important;

  background: #e50914 !important;

  color: #fff !important;

  font-size: 13px !important;
  font-weight: 700 !important;

  text-align: center;
  text-decoration: none !important;

  cursor: pointer;

  transition:
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.dy-login-card input[type="submit"]:hover,
.dy-login-card button[type="submit"]:hover,
.dy-login-card .pmpro_btn:hover {
  border-color: #f21b26 !important;
  background: #f21b26 !important;

  transform: translateY(-1px);
}


/* ---------------------------------------------------------
   PMPro Links
--------------------------------------------------------- */

.dy-login-card a {
  color: rgba(255,255,255,.70);
  text-decoration: none;
}

.dy-login-card a:hover {
  color: #fff;
}


/* Password Reset etc. */

.dy-login-card .pmpro_actions_nav,
.dy-login-card .pmpro_form_field-password-toggle {
  margin-top: 15px;

  color: rgba(255,255,255,.45);

  font-size: 10px;

  text-align: center;
}


/* ---------------------------------------------------------
   NEW MEMBER
--------------------------------------------------------- */

.dy-login-signup {
  margin-top: 42px;
  text-align: center;
}


/* NEW MEMBER divider */

.dy-login-divider {
  position: relative;

  margin-bottom: 25px;

  text-align: center;
}

.dy-login-divider::before {
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;

  height: 1px;

  background: rgba(255,255,255,.10);

  content: "";
}

.dy-login-divider span {
  position: relative;
  z-index: 1;

  display: inline-block;

  padding: 0 14px;

  background: #080808;

  color: #e50914;

  font-size: 9px;
  font-weight: 700;

  letter-spacing: .15em;
}


/* ---------------------------------------------------------
   Sign Up Text
--------------------------------------------------------- */

.dy-login-signup-title {
  margin: 0 0 12px !important;
  padding: 0 !important;

  border: 0 !important;
  background: none !important;

  color: #fff !important;

  font-size: 21px !important;
  font-weight: 700;
}

.dy-login-signup-text {
  margin: 0;

  color: rgba(255,255,255,.65);

  font-size: 12px;
  line-height: 1.8;
}

.dy-login-signup-text-en {
  margin: 5px 0 0;

  color: rgba(255,255,255,.34);

  font-size: 9px;
  line-height: 1.6;
}


/* ---------------------------------------------------------
   Sign Up Buttons
--------------------------------------------------------- */

.dy-login-signup-buttons {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;

  margin-top: 24px;
}

.dy-login-signup-button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  min-height: 58px;

  padding: 10px 20px;

  border: 1px solid rgba(255,255,255,.24);
  border-radius: 5px;

  background: rgba(255,255,255,.025);

  color: #fff !important;

  text-decoration: none !important;

  transition:
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.dy-login-signup-button:hover {
  border-color: rgba(255,255,255,.60);

  background: rgba(255,255,255,.07);

  transform: translateY(-1px);
}

.dy-login-signup-button strong {
  color: #fff;

  font-size: 12px;
  font-weight: 700;
}

.dy-login-signup-button span {
  margin-top: 3px;

  color: rgba(255,255,255,.40);

  font-size: 8px;

  letter-spacing: .04em;
}


/* PremiumをメインCTAに */

.dy-login-signup-button--primary {
  border-color: #e50914;

  background: #e50914;
}

.dy-login-signup-button--primary:hover {
  border-color: #f21b26;

  background: #f21b26;
}

.dy-login-signup-button--primary span {
  color: rgba(255,255,255,.65);
}


/* ---------------------------------------------------------
   Mobile
--------------------------------------------------------- */

@media screen and (max-width: 600px) {

  .dy-login-page {
    padding: 44px 14px 75px;
  }

  .dy-login-container {
    max-width: 100%;
  }

  .dy-login-header {
    margin-bottom: 24px;
  }

  .dy-login-title {
    font-size: 29px;
  }

  .dy-login-description {
    font-size: 12px;
  }

  .dy-login-card {
    padding: 25px 20px;
  }

  .dy-login-signup {
    margin-top: 36px;
  }

  .dy-login-signup-title {
    font-size: 18px !important;
  }

  .pc-only {
    display: none;
  }

}

/* =========================================================
   脱出遊戯プレミアム 入会ページ
   Page ID 18
========================================================= */

.dy-checkout-page {
	background: #050505;
	color: #fff;
	min-height: 100vh;
	padding: 70px 20px 100px;
}

.dy-checkout-container {
	width: min(1180px, 100%);
	margin: 0 auto;
}


/* =========================
   PAGE HEADER
========================= */

.dy-checkout-header {
	margin-bottom: 34px;
}

.dy-checkout-eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: #d22;
}

.dy-checkout-title {
	margin: 0;
	font-size: clamp(32px, 4vw, 58px);
	line-height: 1.15;
	font-weight: 800;
	color: #fff;
}

.dy-checkout-subtitle {
	margin: 14px 0 0;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
}

.dy-checkout-subtitle-en {
	margin: 5px 0 0;
	font-size: 13px;
	color: #999;
}


/* =========================
   HERO VISUAL
========================= */

.dy-checkout-visual {
	margin: 0 0 42px;
	border: 1px solid #222;
	background: #000;
	overflow: hidden;
}

.dy-checkout-visual img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
}


/* =========================
   PLAN AREA
========================= */

.dy-checkout-plan {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0;
	margin-bottom: 70px;
	border: 1px solid #252525;
	background: #0c0c0c;
}

.dy-checkout-plan__main,
.dy-checkout-plan__features {
	padding: 42px;
}

.dy-checkout-plan__main {
	border-right: 1px solid #252525;
}

.dy-checkout-plan__label {
	display: inline-block;
	margin-bottom: 12px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: #d22;
}

.dy-checkout-plan__main h2 {
	margin: 0 0 22px;
	font-size: clamp(23px, 2.3vw, 34px);
	line-height: 1.4;
	color: #fff;
}


/* =========================
   PRICE
========================= */

.dy-checkout-price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 10px;
}

.dy-checkout-price__yen {
	font-size: 28px;
	font-weight: 700;
}

.dy-checkout-price strong {
	font-size: clamp(52px, 6vw, 78px);
	line-height: 1;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: #fff;
}

.dy-checkout-price__unit {
	font-size: 17px;
	font-weight: 700;
}

.dy-checkout-price-usd {
	margin-top: 14px;
	font-size: 15px;
	color: #bbb;
}

.dy-checkout-price-usd strong {
	color: #fff;
}

.dy-checkout-tax {
	margin: 8px 0 0;
	font-size: 13px;
	color: #888;
}

.dy-checkout-exchange-note {
	margin: 18px 0 0;
	padding-top: 16px;
	border-top: 1px solid #242424;
	font-size: 11px;
	line-height: 1.8;
	color: #777;
}


/* =========================
   FEATURES
========================= */

.dy-checkout-plan__features {
	display: flex;
	align-items: center;
}

.dy-checkout-plan__features ul {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
}

.dy-checkout-plan__features li {
	position: relative;
	padding: 17px 0 17px 34px;
	border-bottom: 1px solid #222;
	font-size: 16px;
	font-weight: 700;
	color: #fff;
}

.dy-checkout-plan__features li:last-child {
	border-bottom: 0;
}

.dy-checkout-plan__features li::before {
	content: "✓";
	position: absolute;
	top: 17px;
	left: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #b5161b;
	color: #fff;
	font-size: 13px;
	line-height: 22px;
	text-align: center;
	font-weight: 800;
}

.dy-checkout-plan__features li span {
	display: block;
	margin-top: 5px;
	font-size: 12px;
	font-weight: 400;
	color: #888;
}


/* =========================
   SECTION HEADING
========================= */

.dy-section-heading {
	margin-bottom: 24px;
	padding-left: 18px;
	border-left: 4px solid #b5161b;
}

.dy-section-heading__en {
	display: block;
	margin-bottom: 5px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: #b5161b;
}

.dy-section-heading__title {
	margin: 0;
	font-size: clamp(26px, 3vw, 38px);
	line-height: 1.3;
	color: #fff;
}


/* =========================
   HOW TO JOIN
========================= */

.dy-checkout-info {
	margin-bottom: 70px;
}

.dy-checkout-info__content {
	padding: 28px 32px;
	border: 1px solid #222;
	background: #0c0c0c;
}

.dy-checkout-info__content p {
	margin: 0 0 10px;
	font-size: 15px;
	line-height: 1.9;
	color: #ddd;
}

.dy-checkout-info__content p:last-child {
	margin-bottom: 0;
}

.dy-checkout-info__en {
	margin-top: 20px !important;
	padding-top: 18px;
	border-top: 1px solid #222;
	font-size: 13px !important;
	color: #888 !important;
}


/* =========================
   PMPRO FORM WRAPPER
========================= */

.dy-checkout-form-section {
	margin-bottom: 60px;
}

.dy-checkout-form {
	padding: 36px;
	border: 1px solid #252525;
	background: #0c0c0c;
}


/* =========================================================
   Paid Memberships Pro
========================================================= */

.dy-checkout-form .pmpro,
.dy-checkout-form .pmpro_checkout {
	color: #ddd;
}

.dy-checkout-form h2,
.dy-checkout-form h3,
.dy-checkout-form legend,
.dy-checkout-form label {
	color: #fff;
}

.dy-checkout-form fieldset {
	margin: 0 0 34px;
	padding: 0 0 30px;
	border: 0;
	border-bottom: 1px solid #292929;
}

.dy-checkout-form fieldset:last-child {
	border-bottom: 0;
}

.dy-checkout-form legend {
	margin-bottom: 18px;
	font-size: 21px;
	font-weight: 700;
}

.dy-checkout-form .pmpro_checkout-field {
	margin-bottom: 18px;
}

.dy-checkout-form label {
	display: block;
	margin-bottom: 7px;
	font-size: 13px;
	font-weight: 700;
}


/* INPUT */

.dy-checkout-form input[type="text"],
.dy-checkout-form input[type="email"],
.dy-checkout-form input[type="password"],
.dy-checkout-form input[type="tel"],
.dy-checkout-form input[type="number"],
.dy-checkout-form select,
.dy-checkout-form textarea {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	padding: 14px 15px;
	border: 1px solid #333;
	border-radius: 4px;
	background: #151515;
	color: #fff;
	font-size: 16px;
	box-shadow: none;
}

.dy-checkout-form input:focus,
.dy-checkout-form select:focus,
.dy-checkout-form textarea:focus {
	outline: none;
	border-color: #b5161b;
	background: #181818;
}


/* CHECKBOX / RADIO */

.dy-checkout-form input[type="checkbox"],
.dy-checkout-form input[type="radio"] {
	accent-color: #b5161b;
}


/* HELP TEXT */

.dy-checkout-form small,
.dy-checkout-form .pmpro_checkout-field-description,
.dy-checkout-form .pmpro_asterisk,
.dy-checkout-form .lite {
	color: #888;
}


/* LINKS */

.dy-checkout-form a {
	color: #ddd;
	text-decoration: underline;
}

.dy-checkout-form a:hover {
	color: #fff;
}


/* SUBMIT BUTTON */

.dy-checkout-form input[type="submit"],
.dy-checkout-form button[type="submit"],
.dy-checkout-form .pmpro_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 34px;
	border: 0;
	border-radius: 3px;
	background: #b5161b;
	color: #fff;
	font-size: 15px;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
	transition: opacity .2s ease, transform .2s ease;
}

.dy-checkout-form input[type="submit"]:hover,
.dy-checkout-form button[type="submit"]:hover,
.dy-checkout-form .pmpro_btn:hover {
	opacity: .88;
	color: #fff;
	transform: translateY(-1px);
}


/* =========================
   NOTICE
========================= */

.dy-checkout-notice {
	margin-top: 50px;
	padding: 30px 32px;
	border: 1px solid #2a2a2a;
	background: #090909;
}

.dy-checkout-notice h3 {
	margin: 0 0 18px;
	font-size: 20px;
	color: #fff;
}

.dy-checkout-notice ul {
	margin: 0;
	padding-left: 1.3em;
}

.dy-checkout-notice li {
	margin-bottom: 9px;
	font-size: 13px;
	line-height: 1.8;
	color: #aaa;
}

.dy-checkout-notice a {
	color: #fff;
	text-decoration: underline;
}

.dy-checkout-notice__en {
	margin: 20px 0 0;
	padding-top: 18px;
	border-top: 1px solid #242424;
	font-size: 12px;
	line-height: 1.8;
	color: #777;
}


/* =========================================================
   TABLET
========================================================= */

@media screen and (max-width: 900px) {

	.dy-checkout-page {
		padding-top: 50px;
	}

	.dy-checkout-plan {
		grid-template-columns: 1fr;
	}

	.dy-checkout-plan__main {
		border-right: 0;
		border-bottom: 1px solid #252525;
	}

}


/* =========================================================
   MOBILE
========================================================= */

@media screen and (max-width: 600px) {

	.dy-checkout-page {
		padding: 38px 16px 70px;
	}

	.dy-checkout-header {
		margin-bottom: 24px;
	}

	.dy-checkout-title {
		font-size: 32px;
	}

	.dy-checkout-subtitle {
		font-size: 15px;
	}

	.dy-checkout-visual {
		margin-bottom: 28px;
	}

	.dy-checkout-plan {
		margin-bottom: 50px;
	}

	.dy-checkout-plan__main,
	.dy-checkout-plan__features {
		padding: 25px 20px;
	}

	.dy-checkout-price strong {
		font-size: 54px;
	}

	.dy-checkout-price__unit {
		font-size: 14px;
	}

	.dy-checkout-info {
		margin-bottom: 50px;
	}

	.dy-checkout-info__content {
		padding: 22px 20px;
	}

	.dy-checkout-form {
		padding: 24px 18px;
	}

	.dy-checkout-form input[type="submit"],
	.dy-checkout-form button[type="submit"],
	.dy-checkout-form .pmpro_btn {
		width: 100%;
	}

	.dy-checkout-notice {
		padding: 24px 20px;
	}

}

/* =========================================================
   クズのゴミ箱 入会ページ
========================================================= */

.dy-kuzu-hero {
	display: grid;
	grid-template-columns: minmax(300px, 42%) 1fr;
	margin: 0 0 42px;
	border: 1px solid #252525;
	background: #0b0b0b;
	overflow: hidden;
}


/* IMAGE */

.dy-kuzu-hero__visual {
	background: #000;
}

.dy-kuzu-hero__visual img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 680px;
	object-fit: cover;
	object-position: center;
	margin: 0;
}


/* CONTENT */

.dy-kuzu-hero__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(32px, 5vw, 70px);
}

.dy-kuzu-hero__label {
	display: block;
	margin-bottom: 14px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .18em;
	color: #d22;
}

.dy-kuzu-hero__content h2 {
	margin: 0 0 24px;
	font-size: clamp(30px, 3.5vw, 48px);
	line-height: 1.4;
	color: #fff;
}

.dy-kuzu-hero__content > p {
	margin: 0 0 14px;
	font-size: 15px;
	line-height: 1.9;
	color: #ccc;
}

.dy-kuzu-hero__content .dy-kuzu-hero__en {
	margin-top: 4px;
	font-size: 13px;
	line-height: 1.8;
	color: #777;
}


/* PRICE */

.dy-kuzu-hero__price {
	margin-top: 30px;
	padding-top: 25px;
	border-top: 1px solid #292929;
}

.dy-kuzu-hero__price > span {
	display: block;
	margin-bottom: 7px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .16em;
	color: #d22;
}

.dy-kuzu-hero__price > div {
	display: flex;
	align-items: baseline;
	gap: 5px;
}

.dy-kuzu-hero__price > div small:first-child {
	font-size: 24px;
	font-weight: 700;
	color: #fff;
}

.dy-kuzu-hero__price > div strong {
	font-size: clamp(48px, 5vw, 70px);
	line-height: 1;
	color: #fff;
	letter-spacing: -.03em;
}

.dy-kuzu-hero__price > div small:last-child {
	font-size: 15px;
	font-weight: 700;
	color: #fff;
}

.dy-kuzu-hero__price > p {
	margin: 12px 0 0;
	font-size: 13px;
	color: #888;
}

.dy-kuzu-hero__price > p strong {
	color: #ddd;
}


/* 旧会員注意 */

.dy-kuzu-old-member .dy-checkout-info__content {
	border-left: 3px solid #b5161b;
}

.dy-kuzu-old-member strong {
	color: #fff;
}


/* TABLET / MOBILE */

@media screen and (max-width: 800px) {

	.dy-kuzu-hero {
		grid-template-columns: 1fr;
	}

	.dy-kuzu-hero__visual {
		text-align: center;
		background: #050505;
	}

	.dy-kuzu-hero__visual img {
		width: auto;
		max-width: 100%;
		height: auto;
		max-height: 650px;
		margin: 0 auto;
		object-fit: contain;
	}

	.dy-kuzu-hero__content {
		padding: 32px 25px;
	}

}


@media screen and (max-width: 600px) {

	.dy-kuzu-hero {
		margin-bottom: 30px;
	}

	.dy-kuzu-hero__content h2 {
		font-size: 28px;
	}

	.dy-kuzu-hero__price > div strong {
		font-size: 52px;
	}

}

/* =========================================================
   入会完了ページ
   Page ID 19
========================================================= */

.dy-confirm-page {
	background: #050505;
	color: #fff;
	min-height: 100vh;
	padding: 70px 20px 100px;
}

.dy-confirm-container {
	width: min(1080px, 100%);
	margin: 0 auto;
}


/* =========================
   COMPLETE HEADER
========================= */

.dy-confirm-header {
	text-align: center;
	margin-bottom: 70px;
}

.dy-confirm-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 68px;
	height: 68px;
	margin: 0 auto 22px;
	border-radius: 50%;
	background: #b5161b;
	color: #fff;
	font-size: 34px;
	font-weight: 800;
	line-height: 1;
}

.dy-confirm-eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .18em;
	color: #d22;
}

.dy-confirm-title {
	margin: 0;
	font-size: clamp(32px, 4vw, 54px);
	line-height: 1.25;
	color: #fff;
}

.dy-confirm-description {
	margin: 18px 0 0;
	font-size: 17px;
	line-height: 1.9;
	color: #ddd;
}

.dy-confirm-description-en {
	margin: 12px 0 0;
	font-size: 13px;
	line-height: 1.8;
	color: #888;
}


/* =========================
   DETAILS SECTION
========================= */

.dy-confirm-details {
	margin-bottom: 70px;
}

.dy-confirm-pmpro {
	padding: 34px;
	border: 1px solid #252525;
	background: #0c0c0c;
}


/* =========================
   PMPRO CONFIRMATION
========================= */

.dy-confirm-pmpro,
.dy-confirm-pmpro .pmpro {
	color: #ddd;
}

.dy-confirm-pmpro h2,
.dy-confirm-pmpro h3,
.dy-confirm-pmpro h4,
.dy-confirm-pmpro strong {
	color: #fff;
}

.dy-confirm-pmpro p {
	font-size: 14px;
	line-height: 1.9;
	color: #ccc;
}

.dy-confirm-pmpro a {
	color: #fff;
	text-decoration: underline;
}

.dy-confirm-pmpro a:hover {
	color: #d22;
}


/* PMPro notice */

.dy-confirm-pmpro .pmpro_message,
.dy-confirm-pmpro .pmpro_alert,
.dy-confirm-pmpro .pmpro_success,
.dy-confirm-pmpro .pmpro_error {
	margin: 24px 0;
	padding: 16px 18px;
	border-radius: 3px;
	border: 1px solid #3a3a3a;
	background: #151515;
	color: #ddd;
}


/* 黄色系の支払待ち通知 */

.dy-confirm-pmpro .pmpro_message.pmpro_alert,
.dy-confirm-pmpro .pmpro_alert {
	border-color: #5d5025;
	background: #211d0e;
	color: #e8d68b;
}


/* =========================
   ACCOUNT / ORDER BOX
========================= */

.dy-confirm-pmpro .pmpro_card,
.dy-confirm-pmpro .pmpro_box,
.dy-confirm-pmpro .pmpro_confirmation_wrap {
	border: 1px solid #292929;
	background: #090909;
	border-radius: 4px;
}

.dy-confirm-pmpro .pmpro_card {
	padding: 26px;
}

.dy-confirm-pmpro table {
	width: 100%;
	border-collapse: collapse;
	background: transparent;
	color: #ddd;
}

.dy-confirm-pmpro th,
.dy-confirm-pmpro td {
	padding: 14px 12px;
	border-bottom: 1px solid #252525;
	text-align: left;
}

.dy-confirm-pmpro th {
	color: #fff;
	font-weight: 700;
}


/* =========================
   START WATCHING
========================= */

.dy-confirm-next {
	margin-bottom: 55px;
	padding: 42px;
	border: 1px solid #252525;
	background: #0b0b0b;
	text-align: center;
}

.dy-confirm-next__eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .18em;
	color: #d22;
}

.dy-confirm-next h2 {
	margin: 0;
	font-size: clamp(26px, 3vw, 38px);
	color: #fff;
}

.dy-confirm-next > p {
	margin: 16px 0 0;
	font-size: 15px;
	line-height: 1.8;
	color: #ccc;
}

.dy-confirm-next__en {
	font-size: 13px !important;
	color: #777 !important;
}


/* =========================
   BUTTONS
========================= */

.dy-confirm-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 30px;
}

.dy-confirm-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 74px;
	padding: 16px 22px;
	border-radius: 3px;
	text-decoration: none !important;
	transition: .2s ease;
}

.dy-confirm-btn span {
	font-size: 15px;
	font-weight: 800;
}

.dy-confirm-btn small {
	margin-top: 4px;
	font-size: 10px;
	letter-spacing: .06em;
	opacity: .7;
}

.dy-confirm-btn--primary {
	background: #b5161b;
	color: #fff;
	border: 1px solid #b5161b;
}

.dy-confirm-btn--secondary {
	background: #111;
	color: #fff;
	border: 1px solid #444;
}

.dy-confirm-btn:hover {
	transform: translateY(-1px);
	opacity: .9;
	color: #fff;
}


/* =========================
   NOTICE
========================= */

.dy-confirm-notice {
	padding-top: 26px;
	border-top: 1px solid #252525;
	text-align: center;
}

.dy-confirm-notice p {
	margin: 5px 0;
	font-size: 12px;
	line-height: 1.8;
	color: #777;
}


/* =========================
   SECTION HEADING
========================= */

.dy-confirm-page .dy-section-heading {
	margin-bottom: 24px;
	padding-left: 18px;
	border-left: 4px solid #b5161b;
}

.dy-confirm-page .dy-section-heading__en {
	display: block;
	margin-bottom: 5px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	color: #b5161b;
}

.dy-confirm-page .dy-section-heading__title {
	margin: 0;
	font-size: clamp(26px, 3vw, 38px);
	line-height: 1.3;
	color: #fff;
}


/* =========================
   MOBILE
========================= */

@media screen and (max-width: 700px) {

	.dy-confirm-page {
		padding: 42px 16px 70px;
	}

	.dy-confirm-header {
		margin-bottom: 50px;
	}

	.dy-confirm-title {
		font-size: 32px;
	}

	.dy-confirm-description {
		font-size: 15px;
	}

	.dy-confirm-pmpro {
		padding: 22px 18px;
	}

	.dy-confirm-next {
		padding: 30px 20px;
	}

	.dy-confirm-actions {
		grid-template-columns: 1fr;
	}

	.dy-confirm-btn {
		min-height: 68px;
	}

}
/* =========================================================
   メンバーシップ解約ページ
   Page ID 17
========================================================= */

.dy-cancel-page {
	background: #050505;
	color: #fff;
	min-height: 100vh;
	padding: 70px 20px 100px;
}

.dy-cancel-container {
	width: min(1080px, 100%);
	margin: 0 auto;
}


/* =========================
   HEADER
========================= */

.dy-cancel-header {
	margin-bottom: 50px;
}

.dy-cancel-eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .18em;
	color: #d22;
}

.dy-cancel-title {
	margin: 0;
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.25;
	color: #fff;
}

.dy-cancel-description {
	margin: 18px 0 0;
	font-size: 16px;
	line-height: 1.9;
	color: #ddd;
}

.dy-cancel-description-en {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.8;
	color: #888;
}


/* =========================
   WARNING NOTICE
========================= */

.dy-cancel-notice {
	display: grid;
	grid-template-columns: 58px 1fr;
	gap: 24px;
	margin-bottom: 65px;
	padding: 32px;
	border: 1px solid #3a2525;
	border-left: 4px solid #b5161b;
	background: #0d0909;
}

.dy-cancel-notice__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #b5161b;
	color: #fff;
	font-size: 26px;
	font-weight: 800;
}

.dy-cancel-notice__content h2 {
	margin: 0 0 18px;
	font-size: 24px;
	color: #fff;
}

.dy-cancel-notice__content ul {
	margin: 0;
	padding-left: 1.3em;
}

.dy-cancel-notice__content li {
	margin-bottom: 10px;
	font-size: 14px;
	line-height: 1.8;
	color: #ddd;
}

.dy-cancel-notice__content li:last-child {
	margin-bottom: 0;
}

.dy-cancel-notice__en {
	margin: 22px 0 0;
	padding-top: 18px;
	border-top: 1px solid #2a2020;
	font-size: 12px;
	line-height: 1.8;
	color: #888;
}


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

.dy-cancel-form-section {
	margin-bottom: 50px;
}

.dy-cancel-page .dy-section-heading {
	margin-bottom: 24px;
	padding-left: 18px;
	border-left: 4px solid #b5161b;
}

.dy-cancel-page .dy-section-heading__en {
	display: block;
	margin-bottom: 5px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .16em;
	color: #b5161b;
}

.dy-cancel-page .dy-section-heading__title {
	margin: 0;
	font-size: clamp(26px, 3vw, 38px);
	color: #fff;
}


/* =========================
   PMPRO CANCEL AREA
========================= */

.dy-cancel-pmpro {
	padding: 34px;
	border: 1px solid #292929;
	background: #0b0b0b;
}

.dy-cancel-pmpro,
.dy-cancel-pmpro .pmpro {
	color: #ddd;
}

.dy-cancel-pmpro h2,
.dy-cancel-pmpro h3,
.dy-cancel-pmpro h4 {
	color: #fff;
}

.dy-cancel-pmpro p {
	font-size: 14px;
	line-height: 1.9;
	color: #ccc;
}


/* =========================
   PMPRO TABLE
========================= */

.dy-cancel-pmpro table {
	width: 100%;
	margin-top: 24px;
	border-collapse: collapse;
	background: transparent;
}

.dy-cancel-pmpro th,
.dy-cancel-pmpro td {
	padding: 18px 14px;
	border-bottom: 1px solid #292929;
	text-align: left;
	vertical-align: middle;
}

.dy-cancel-pmpro th {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	color: #888;
}

.dy-cancel-pmpro td {
	font-size: 14px;
	color: #fff;
}

.dy-cancel-pmpro tr:last-child td {
	border-bottom: 0;
}


/* =========================
   CANCEL LINK → BUTTON
========================= */

.dy-cancel-pmpro a {
	color: #ddd;
}

.dy-cancel-pmpro a[href*="cancel"],
.dy-cancel-pmpro .pmpro_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 20px;
	border: 1px solid #b5161b;
	border-radius: 3px;
	background: transparent;
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
	transition: .2s ease;
}

.dy-cancel-pmpro a[href*="cancel"]:hover,
.dy-cancel-pmpro .pmpro_btn:hover {
	background: #b5161b;
	color: #fff;
}


/* =========================
   CONFIRMATION BOX
========================= */

.dy-cancel-pmpro .pmpro_card,
.dy-cancel-pmpro .pmpro_box {
	padding: 28px;
	border: 1px solid #292929;
	border-radius: 4px;
	background: #080808;
}

.dy-cancel-pmpro .pmpro_message,
.dy-cancel-pmpro .pmpro_alert {
	margin: 24px 0;
	padding: 16px 18px;
	border: 1px solid #4a3a28;
	background: #17130d;
	color: #e4d2a3;
}


/* =========================
   YES / NO BUTTONS
========================= */

.dy-cancel-pmpro input[type="submit"],
.dy-cancel-pmpro button,
.dy-cancel-pmpro .pmpro_btn-submit {
	min-height: 48px;
	padding: 0 24px;
	border-radius: 3px;
	border: 1px solid #444;
	background: #111;
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	cursor: pointer;
	transition: .2s ease;
}

.dy-cancel-pmpro input[type="submit"]:hover,
.dy-cancel-pmpro button:hover,
.dy-cancel-pmpro .pmpro_btn-submit:hover {
	background: #1b1b1b;
	color: #fff;
}


/* 危険操作っぽいボタン */

.dy-cancel-pmpro input[value*="cancel"],
.dy-cancel-pmpro input[value*="Cancel"],
.dy-cancel-pmpro button[value*="cancel"],
.dy-cancel-pmpro button[value*="Cancel"] {
	border-color: #b5161b;
	background: #b5161b;
	color: #fff;
}


/* =========================
   BACK TO ACCOUNT
========================= */

.dy-cancel-back {
	margin-top: 40px;
	text-align: center;
}

.dy-cancel-back__btn {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	min-height: 66px;
	padding: 13px 30px;
	border: 1px solid #444;
	border-radius: 3px;
	background: #0c0c0c;
	color: #fff;
	text-decoration: none;
	transition: .2s ease;
}

.dy-cancel-back__btn span {
	font-size: 14px;
	font-weight: 800;
}

.dy-cancel-back__btn small {
	margin-top: 4px;
	font-size: 10px;
	color: #777;
}

.dy-cancel-back__btn:hover {
	border-color: #777;
	background: #141414;
	color: #fff;
}


/* =========================
   MOBILE
========================= */

@media screen and (max-width: 700px) {

	.dy-cancel-page {
		padding: 42px 16px 70px;
	}

	.dy-cancel-header {
		margin-bottom: 38px;
	}

	.dy-cancel-title {
		font-size: 31px;
	}

	.dy-cancel-description {
		font-size: 14px;
	}

	.dy-cancel-notice {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 24px 20px;
	}

	.dy-cancel-pmpro {
		padding: 22px 18px;
		overflow-x: auto;
	}

	.dy-cancel-pmpro table {
		min-width: 600px;
	}

	.dy-cancel-back__btn {
		width: 100%;
		min-width: 0;
	}

}

/* =========================================================
   メンバーシップ課金・支払い情報ページ
   Page ID 16
========================================================= */

.dy-billing-page {
	background: #050505;
	color: #fff;
	min-height: 100vh;
	padding: 70px 20px 100px;
}

.dy-billing-container {
	width: min(1080px, 100%);
	margin: 0 auto;
}


/* =========================
   HEADER
========================= */

.dy-billing-header {
	margin-bottom: 48px;
}

.dy-billing-eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .18em;
	color: #d22;
}

.dy-billing-title {
	margin: 0;
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.25;
	color: #fff;
}

.dy-billing-description {
	margin: 18px 0 0;
	font-size: 16px;
	line-height: 1.9;
	color: #ddd;
}

.dy-billing-description-en {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.8;
	color: #888;
}


/* =========================
   INFO BOX
========================= */

.dy-billing-info {
	display: grid;
	grid-template-columns: 58px 1fr;
	gap: 24px;
	margin-bottom: 60px;
	padding: 32px;
	border: 1px solid #252525;
	border-left: 4px solid #b5161b;
	background: #0b0b0b;
}

.dy-billing-info__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #b5161b;
	color: #fff;
	font-size: 22px;
	font-weight: 800;
}

.dy-billing-info__content h2 {
	margin: 0 0 16px;
	font-size: 24px;
	color: #fff;
}

.dy-billing-info__content p {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.8;
	color: #ddd;
}

.dy-billing-info__en {
	margin-top: 20px !important;
	padding-top: 16px;
	border-top: 1px solid #252525;
	font-size: 12px !important;
	color: #888 !important;
}


/* =========================
   SECTION HEADING
========================= */

.dy-billing-form-section {
	margin-bottom: 55px;
}

.dy-billing-page .dy-section-heading {
	margin-bottom: 24px;
	padding-left: 18px;
	border-left: 4px solid #b5161b;
}

.dy-billing-page .dy-section-heading__en {
	display: block;
	margin-bottom: 5px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .16em;
	color: #b5161b;
}

.dy-billing-page .dy-section-heading__title {
	margin: 0;
	font-size: clamp(26px, 3vw, 38px);
	line-height: 1.3;
	color: #fff;
}


/* =========================
   PMPRO WRAPPER
========================= */

.dy-billing-pmpro {
	padding: 34px;
	border: 1px solid #292929;
	background: #0b0b0b;
}

.dy-billing-pmpro,
.dy-billing-pmpro .pmpro {
	color: #ddd;
}

.dy-billing-pmpro h2,
.dy-billing-pmpro h3,
.dy-billing-pmpro h4,
.dy-billing-pmpro strong {
	color: #fff;
}

.dy-billing-pmpro p {
	font-size: 14px;
	line-height: 1.8;
	color: #ccc;
}


/* =========================
   MEMBERSHIP CARDS
========================= */

.dy-billing-pmpro .pmpro_card,
.dy-billing-pmpro .pmpro_box,
.dy-billing-pmpro .pmpro_section,
.dy-billing-pmpro .pmpro_billing_wrap {
	margin-bottom: 18px;
	padding: 26px;
	border: 1px solid #2a2a2a;
	border-radius: 4px;
	background: #080808;
}

.dy-billing-pmpro .pmpro_card:last-child,
.dy-billing-pmpro .pmpro_box:last-child {
	margin-bottom: 0;
}


/* =========================
   TABLE
========================= */

.dy-billing-pmpro table {
	width: 100%;
	border-collapse: collapse;
	background: transparent;
	color: #ddd;
}

.dy-billing-pmpro th,
.dy-billing-pmpro td {
	padding: 16px 14px;
	border-bottom: 1px solid #292929;
	text-align: left;
	vertical-align: middle;
}

.dy-billing-pmpro th {
	font-size: 12px;
	font-weight: 700;
	color: #888;
}

.dy-billing-pmpro td {
	font-size: 14px;
	color: #fff;
}


/* =========================
   FORM FIELDS
========================= */

.dy-billing-pmpro label {
	display: block;
	margin-bottom: 7px;
	font-size: 13px;
	font-weight: 700;
	color: #fff;
}

.dy-billing-pmpro input[type="text"],
.dy-billing-pmpro input[type="email"],
.dy-billing-pmpro input[type="tel"],
.dy-billing-pmpro input[type="number"],
.dy-billing-pmpro input[type="password"],
.dy-billing-pmpro select,
.dy-billing-pmpro textarea {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	padding: 14px 15px;
	border: 1px solid #333;
	border-radius: 4px;
	background: #151515;
	color: #fff;
	font-size: 16px;
	box-shadow: none;
}

.dy-billing-pmpro input:focus,
.dy-billing-pmpro select:focus,
.dy-billing-pmpro textarea:focus {
	outline: none;
	border-color: #b5161b;
	background: #181818;
}


/* =========================
   LINKS
========================= */

.dy-billing-pmpro a {
	color: #ddd;
	text-decoration: underline;
}

.dy-billing-pmpro a:hover {
	color: #fff;
}


/* Cancel link */

.dy-billing-pmpro a[href*="cancel"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0 18px;
	border: 1px solid #b5161b;
	border-radius: 3px;
	background: transparent;
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
	transition: .2s ease;
}

.dy-billing-pmpro a[href*="cancel"]:hover {
	background: #b5161b;
	color: #fff;
}


/* =========================
   BUTTONS
========================= */

.dy-billing-pmpro input[type="submit"],
.dy-billing-pmpro button,
.dy-billing-pmpro .pmpro_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 26px;
	border: 0;
	border-radius: 3px;
	background: #b5161b;
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
	transition: .2s ease;
}

.dy-billing-pmpro input[type="submit"]:hover,
.dy-billing-pmpro button:hover,
.dy-billing-pmpro .pmpro_btn:hover {
	opacity: .88;
	color: #fff;
	transform: translateY(-1px);
}


/* =========================
   NOTICE
========================= */

.dy-billing-notice {
	margin-top: 45px;
	padding: 30px 32px;
	border: 1px solid #282828;
	background: #090909;
}

.dy-billing-notice h3 {
	margin: 0 0 18px;
	font-size: 20px;
	color: #fff;
}

.dy-billing-notice ul {
	margin: 0;
	padding-left: 1.3em;
}

.dy-billing-notice li {
	margin-bottom: 9px;
	font-size: 13px;
	line-height: 1.8;
	color: #aaa;
}

.dy-billing-notice__en {
	margin: 20px 0 0;
	padding-top: 17px;
	border-top: 1px solid #242424;
	font-size: 12px;
	line-height: 1.8;
	color: #777;
}


/* =========================
   BACK BUTTON
========================= */

.dy-billing-back {
	margin-top: 38px;
	text-align: center;
}

.dy-billing-back__btn {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	min-height: 66px;
	padding: 13px 30px;
	border: 1px solid #444;
	border-radius: 3px;
	background: #0c0c0c;
	color: #fff;
	text-decoration: none;
	transition: .2s ease;
}

.dy-billing-back__btn span {
	font-size: 14px;
	font-weight: 800;
}

.dy-billing-back__btn small {
	margin-top: 4px;
	font-size: 10px;
	color: #777;
}

.dy-billing-back__btn:hover {
	border-color: #777;
	background: #141414;
	color: #fff;
}


/* =========================
   MOBILE
========================= */

@media screen and (max-width: 700px) {

	.dy-billing-page {
		padding: 42px 16px 70px;
	}

	.dy-billing-header {
		margin-bottom: 38px;
	}

	.dy-billing-title {
		font-size: 31px;
	}

	.dy-billing-description {
		font-size: 14px;
	}

	.dy-billing-info {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 24px 20px;
	}

	.dy-billing-pmpro {
		padding: 22px 18px;
	}

	.dy-billing-back__btn {
		width: 100%;
		min-width: 0;
	}

}

/* =========================================================
   Membership Orders / 支払い・注文履歴
   Page ID 20
========================================================= */

.dy-orders-page {
	background: #050505;
	color: #fff;
	min-height: 100vh;
	padding: 70px 20px 100px;
}

.dy-orders-container {
	width: min(1080px, 100%);
	margin: 0 auto;
}


/* =========================
   HEADER
========================= */

.dy-orders-header {
	margin-bottom: 48px;
}

.dy-orders-eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .18em;
	color: #d22;
}

.dy-orders-title {
	margin: 0;
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.25;
	color: #fff;
}

.dy-orders-description {
	margin: 18px 0 0;
	font-size: 16px;
	line-height: 1.9;
	color: #ddd;
}

.dy-orders-description-en {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.8;
	color: #888;
}


/* =========================
   INFO BOX
========================= */

.dy-orders-info {
	display: grid;
	grid-template-columns: 58px 1fr;
	gap: 24px;
	margin-bottom: 60px;
	padding: 32px;
	border: 1px solid #252525;
	border-left: 4px solid #b5161b;
	background: #0b0b0b;
}

.dy-orders-info__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #b5161b;
	color: #fff;
	font-size: 22px;
	font-weight: 800;
}

.dy-orders-info__content h2 {
	margin: 0 0 16px;
	font-size: 24px;
	color: #fff;
}

.dy-orders-info__content p {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.8;
	color: #ddd;
}

.dy-orders-info__en {
	margin-top: 20px !important;
	padding-top: 16px;
	border-top: 1px solid #252525;
	font-size: 12px !important;
	color: #888 !important;
}


/* =========================
   SECTION HEADING
========================= */

.dy-orders-history {
	margin-bottom: 55px;
}

.dy-orders-page .dy-section-heading {
	margin-bottom: 24px;
	padding-left: 18px;
	border-left: 4px solid #b5161b;
}

.dy-orders-page .dy-section-heading__en {
	display: block;
	margin-bottom: 5px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .16em;
	color: #b5161b;
}

.dy-orders-page .dy-section-heading__title {
	margin: 0;
	font-size: clamp(26px, 3vw, 38px);
	line-height: 1.3;
	color: #fff;
}


/* =========================
   PMPRO WRAPPER
========================= */

.dy-orders-pmpro {
	padding: 34px;
	border: 1px solid #292929;
	background: #0b0b0b;
}

.dy-orders-pmpro,
.dy-orders-pmpro .pmpro {
	color: #ddd;
}

.dy-orders-pmpro h2,
.dy-orders-pmpro h3,
.dy-orders-pmpro h4,
.dy-orders-pmpro strong {
	color: #fff;
}

.dy-orders-pmpro p {
	font-size: 14px;
	line-height: 1.8;
	color: #ccc;
}


/* =========================
   ORDER TABLE
========================= */

.dy-orders-pmpro table {
	width: 100%;
	border-collapse: collapse;
	background: transparent;
	color: #ddd;
}

.dy-orders-pmpro thead {
	background: #111;
}

.dy-orders-pmpro th,
.dy-orders-pmpro td {
	padding: 16px 14px;
	border-bottom: 1px solid #292929;
	text-align: left;
	vertical-align: middle;
}

.dy-orders-pmpro th {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .06em;
	color: #888;
}

.dy-orders-pmpro td {
	font-size: 14px;
	color: #fff;
}

.dy-orders-pmpro tbody tr {
	transition: background .2s ease;
}

.dy-orders-pmpro tbody tr:hover {
	background: #101010;
}

.dy-orders-pmpro tr:last-child td {
	border-bottom: 0;
}


/* =========================
   PMPRO CARDS / BOXES
========================= */

.dy-orders-pmpro .pmpro_card,
.dy-orders-pmpro .pmpro_box,
.dy-orders-pmpro .pmpro_section,
.dy-orders-pmpro .pmpro_invoice_wrap {
	margin-bottom: 18px;
	padding: 26px;
	border: 1px solid #2a2a2a;
	border-radius: 4px;
	background: #080808;
}

.dy-orders-pmpro .pmpro_card:last-child,
.dy-orders-pmpro .pmpro_box:last-child {
	margin-bottom: 0;
}


/* =========================
   LINKS
========================= */

.dy-orders-pmpro a {
	color: #ddd;
	text-decoration: underline;
}

.dy-orders-pmpro a:hover {
	color: #fff;
}


/* Order detail / invoice links */

.dy-orders-pmpro a[href*="invoice"],
.dy-orders-pmpro a[href*="order"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid #444;
	border-radius: 3px;
	background: #111;
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	text-decoration: none;
	transition: .2s ease;
}

.dy-orders-pmpro a[href*="invoice"]:hover,
.dy-orders-pmpro a[href*="order"]:hover {
	border-color: #b5161b;
	background: #b5161b;
	color: #fff;
}


/* =========================
   PMPRO MESSAGE
========================= */

.dy-orders-pmpro .pmpro_message,
.dy-orders-pmpro .pmpro_alert,
.dy-orders-pmpro .pmpro_success,
.dy-orders-pmpro .pmpro_error {
	margin: 20px 0;
	padding: 16px 18px;
	border: 1px solid #333;
	border-radius: 3px;
	background: #111;
	color: #ddd;
}


/* =========================
   NOTICE
========================= */

.dy-orders-notice {
	margin-top: 45px;
	padding: 30px 32px;
	border: 1px solid #282828;
	background: #090909;
}

.dy-orders-notice h3 {
	margin: 0 0 18px;
	font-size: 20px;
	color: #fff;
}

.dy-orders-notice ul {
	margin: 0;
	padding-left: 1.3em;
}

.dy-orders-notice li {
	margin-bottom: 9px;
	font-size: 13px;
	line-height: 1.8;
	color: #aaa;
}

.dy-orders-notice__en {
	margin: 20px 0 0;
	padding-top: 17px;
	border-top: 1px solid #242424;
	font-size: 12px;
	line-height: 1.8;
	color: #777;
}


/* =========================
   BACK BUTTON
========================= */

.dy-orders-back {
	margin-top: 38px;
	text-align: center;
}

.dy-orders-back__btn {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	min-height: 66px;
	padding: 13px 30px;
	border: 1px solid #444;
	border-radius: 3px;
	background: #0c0c0c;
	color: #fff;
	text-decoration: none;
	transition: .2s ease;
}

.dy-orders-back__btn span {
	font-size: 14px;
	font-weight: 800;
}

.dy-orders-back__btn small {
	margin-top: 4px;
	font-size: 10px;
	color: #777;
}

.dy-orders-back__btn:hover {
	border-color: #777;
	background: #141414;
	color: #fff;
}


/* =========================
   MOBILE
========================= */

@media screen and (max-width: 700px) {

	.dy-orders-page {
		padding: 42px 16px 70px;
	}

	.dy-orders-header {
		margin-bottom: 38px;
	}

	.dy-orders-title {
		font-size: 31px;
	}

	.dy-orders-description {
		font-size: 14px;
	}

	.dy-orders-info {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 24px 20px;
	}

	.dy-orders-pmpro {
		padding: 22px 18px;
		overflow-x: auto;
	}

	.dy-orders-pmpro table {
		min-width: 700px;
	}

	.dy-orders-back__btn {
		width: 100%;
		min-width: 0;
	}

}

/* =========================================================
   プロフィール編集ページ
   Page ID 23
========================================================= */

.dy-profile-page {
	background: #050505;
	color: #fff;
	min-height: 100vh;
	padding: 70px 20px 100px;
}

.dy-profile-container {
	width: min(1080px, 100%);
	margin: 0 auto;
}


/* =========================
   HEADER
========================= */

.dy-profile-header {
	margin-bottom: 48px;
}

.dy-profile-eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .18em;
	color: #d22;
}

.dy-profile-title {
	margin: 0;
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.25;
	color: #fff;
}

.dy-profile-description {
	margin: 18px 0 0;
	font-size: 16px;
	line-height: 1.9;
	color: #ddd;
}

.dy-profile-description-en {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.8;
	color: #888;
}


/* =========================
   INFO BOX
========================= */

.dy-profile-info {
	display: grid;
	grid-template-columns: 58px 1fr;
	gap: 24px;
	margin-bottom: 60px;
	padding: 32px;
	border: 1px solid #252525;
	border-left: 4px solid #b5161b;
	background: #0b0b0b;
}

.dy-profile-info__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #b5161b;
	color: #fff;
	font-size: 20px;
	font-weight: 800;
}

.dy-profile-info__content h2 {
	margin: 0 0 16px;
	font-size: 24px;
	color: #fff;
}

.dy-profile-info__content p {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.8;
	color: #ddd;
}

.dy-profile-info__en {
	margin-top: 20px !important;
	padding-top: 16px;
	border-top: 1px solid #252525;
	font-size: 12px !important;
	color: #888 !important;
}


/* =========================
   SECTION HEADING
========================= */

.dy-profile-form-section {
	margin-bottom: 55px;
}

.dy-profile-page .dy-section-heading {
	margin-bottom: 24px;
	padding-left: 18px;
	border-left: 4px solid #b5161b;
}

.dy-profile-page .dy-section-heading__en {
	display: block;
	margin-bottom: 5px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .16em;
	color: #b5161b;
}

.dy-profile-page .dy-section-heading__title {
	margin: 0;
	font-size: clamp(26px, 3vw, 38px);
	line-height: 1.3;
	color: #fff;
}


/* =========================
   PMPRO PROFILE WRAPPER
========================= */

.dy-profile-pmpro {
	padding: 34px;
	border: 1px solid #292929;
	background: #0b0b0b;
}

.dy-profile-pmpro,
.dy-profile-pmpro .pmpro {
	color: #ddd;
}

.dy-profile-pmpro h2,
.dy-profile-pmpro h3,
.dy-profile-pmpro h4,
.dy-profile-pmpro legend,
.dy-profile-pmpro strong {
	color: #fff;
}

.dy-profile-pmpro p {
	font-size: 14px;
	line-height: 1.8;
	color: #ccc;
}


/* =========================
   FORM GROUP
========================= */

.dy-profile-pmpro fieldset {
	margin: 0 0 34px;
	padding: 0 0 30px;
	border: 0;
	border-bottom: 1px solid #292929;
}

.dy-profile-pmpro fieldset:last-child {
	margin-bottom: 0;
	border-bottom: 0;
}

.dy-profile-pmpro legend {
	margin-bottom: 20px;
	font-size: 20px;
	font-weight: 800;
}

.dy-profile-pmpro .pmpro_member_profile_edit-field,
.dy-profile-pmpro .pmpro_form_field,
.dy-profile-pmpro .pmpro_checkout-field {
	margin-bottom: 20px;
}


/* =========================
   LABELS
========================= */

.dy-profile-pmpro label {
	display: block;
	margin-bottom: 7px;
	font-size: 13px;
	font-weight: 700;
	color: #fff;
}


/* =========================
   INPUTS
========================= */

.dy-profile-pmpro input[type="text"],
.dy-profile-pmpro input[type="email"],
.dy-profile-pmpro input[type="tel"],
.dy-profile-pmpro input[type="password"],
.dy-profile-pmpro input[type="number"],
.dy-profile-pmpro input[type="url"],
.dy-profile-pmpro select,
.dy-profile-pmpro textarea {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	padding: 14px 15px;
	border: 1px solid #333;
	border-radius: 4px;
	background: #151515;
	color: #fff;
	font-size: 16px;
	box-shadow: none;
}

.dy-profile-pmpro textarea {
	min-height: 120px;
	resize: vertical;
}

.dy-profile-pmpro input:focus,
.dy-profile-pmpro select:focus,
.dy-profile-pmpro textarea:focus {
	outline: none;
	border-color: #b5161b;
	background: #181818;
}


/* =========================
   CHECKBOX / RADIO
========================= */

.dy-profile-pmpro input[type="checkbox"],
.dy-profile-pmpro input[type="radio"] {
	accent-color: #b5161b;
}


/* =========================
   HELP TEXT
========================= */

.dy-profile-pmpro small,
.dy-profile-pmpro .pmpro_form_hint,
.dy-profile-pmpro .pmpro_asterisk,
.dy-profile-pmpro .lite,
.dy-profile-pmpro .description {
	color: #888;
	font-size: 12px;
	line-height: 1.6;
}


/* =========================
   LINKS
========================= */

.dy-profile-pmpro a {
	color: #ddd;
	text-decoration: underline;
}

.dy-profile-pmpro a:hover {
	color: #fff;
}


/* =========================
   BUTTONS
========================= */

.dy-profile-pmpro input[type="submit"],
.dy-profile-pmpro button[type="submit"],
.dy-profile-pmpro .pmpro_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 28px;
	border: 0;
	border-radius: 3px;
	background: #b5161b;
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
	transition: .2s ease;
}

.dy-profile-pmpro input[type="submit"]:hover,
.dy-profile-pmpro button[type="submit"]:hover,
.dy-profile-pmpro .pmpro_btn:hover {
	opacity: .88;
	color: #fff;
	transform: translateY(-1px);
}


/* =========================
   PMPRO MESSAGE
========================= */

.dy-profile-pmpro .pmpro_message,
.dy-profile-pmpro .pmpro_alert,
.dy-profile-pmpro .pmpro_success,
.dy-profile-pmpro .pmpro_error {
	margin: 20px 0;
	padding: 16px 18px;
	border: 1px solid #333;
	border-radius: 3px;
	background: #111;
	color: #ddd;
}


/* =========================
   NOTICE
========================= */

.dy-profile-notice {
	margin-top: 45px;
	padding: 30px 32px;
	border: 1px solid #282828;
	background: #090909;
}

.dy-profile-notice h3 {
	margin: 0 0 18px;
	font-size: 20px;
	color: #fff;
}

.dy-profile-notice ul {
	margin: 0;
	padding-left: 1.3em;
}

.dy-profile-notice li {
	margin-bottom: 9px;
	font-size: 13px;
	line-height: 1.8;
	color: #aaa;
}

.dy-profile-notice__en {
	margin: 20px 0 0;
	padding-top: 17px;
	border-top: 1px solid #242424;
	font-size: 12px;
	line-height: 1.8;
	color: #777;
}


/* =========================
   BACK BUTTON
========================= */

.dy-profile-back {
	margin-top: 38px;
	text-align: center;
}

.dy-profile-back__btn {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	min-height: 66px;
	padding: 13px 30px;
	border: 1px solid #444;
	border-radius: 3px;
	background: #0c0c0c;
	color: #fff;
	text-decoration: none;
	transition: .2s ease;
}

.dy-profile-back__btn span {
	font-size: 14px;
	font-weight: 800;
}

.dy-profile-back__btn small {
	margin-top: 4px;
	font-size: 10px;
	color: #777;
}

.dy-profile-back__btn:hover {
	border-color: #777;
	background: #141414;
	color: #fff;
}


/* =========================
   MOBILE
========================= */

@media screen and (max-width: 700px) {

	.dy-profile-page {
		padding: 42px 16px 70px;
	}

	.dy-profile-header {
		margin-bottom: 38px;
	}

	.dy-profile-title {
		font-size: 31px;
	}

	.dy-profile-description {
		font-size: 14px;
	}

	.dy-profile-info {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 24px 20px;
	}

	.dy-profile-pmpro {
		padding: 22px 18px;
	}

	.dy-profile-pmpro input[type="submit"],
	.dy-profile-pmpro button[type="submit"],
	.dy-profile-pmpro .pmpro_btn {
		width: 100%;
	}

	.dy-profile-back__btn {
		width: 100%;
		min-width: 0;
	}

}

/* =========================================================
   Password Settings
   Page ID 23 / ?view=change-password
========================================================= */

.dy-password-page .dy-profile-info {
	border-left-color: #b5161b;
}

.dy-password-page .dy-profile-pmpro input[type="password"] {
	min-height: 52px;
	font-size: 16px;
	letter-spacing: .04em;
}

.dy-password-page .dy-profile-pmpro input[type="password"]:focus {
	border-color: #b5161b;
	box-shadow: 0 0 0 1px #b5161b;
}

.dy-password-page .dy-profile-pmpro .pmpro_btn,
.dy-password-page .dy-profile-pmpro button[type="submit"],
.dy-password-page .dy-profile-pmpro input[type="submit"] {
	min-width: 220px;
}

/* =========================================================
   Membership Levels
   Page ID 21
========================================================= */

.dy-levels-page {
	background: #050505;
	color: #fff;
	min-height: 100vh;
	padding: 70px 20px 100px;
}

.dy-levels-container {
	width: min(1080px, 100%);
	margin: 0 auto;
}


/* =========================
   HEADER
========================= */

.dy-levels-header {
	margin-bottom: 50px;
}

.dy-levels-eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .18em;
	color: #d22;
}

.dy-levels-title {
	margin: 0;
	font-size: clamp(34px, 4vw, 54px);
	line-height: 1.2;
	color: #fff;
}

.dy-levels-description {
	margin: 18px 0 0;
	font-size: 16px;
	line-height: 1.9;
	color: #ddd;
}

.dy-levels-description-en {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.8;
	color: #888;
}


/* =========================
   GRID
========================= */

.dy-levels-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin-bottom: 60px;
}


/* =========================
   CARD
========================= */

.dy-level-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 36px 32px;
	border: 1px solid #292929;
	background: #0b0b0b;
}

.dy-level-card--premium {
	border-top: 4px solid #b5161b;
}

.dy-level-card--kuzu {
	border-top: 4px solid #444;
}

.dy-level-card__label {
	display: inline-block;
	align-self: flex-start;
	margin-bottom: 18px;
	padding: 5px 9px;
	border: 1px solid #333;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .12em;
	color: #999;
}

.dy-level-card--premium .dy-level-card__label {
	border-color: #5a1518;
	color: #d55;
}

.dy-level-card__title {
	margin: 0;
	font-size: clamp(27px, 3vw, 38px);
	line-height: 1.3;
	color: #fff;
}

.dy-level-card__subtitle {
	margin: 7px 0 0;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .15em;
	color: #777;
}


/* =========================
   PRICE
========================= */

.dy-level-card__price {
	margin: 30px 0 28px;
	padding: 24px 0;
	border-top: 1px solid #252525;
	border-bottom: 1px solid #252525;
}

.dy-level-card__price strong {
	font-size: 43px;
	line-height: 1;
	color: #fff;
}

.dy-level-card__price span {
	margin-left: 6px;
	font-size: 13px;
	color: #aaa;
}

.dy-level-card__price small {
	display: block;
	margin-top: 10px;
	font-size: 11px;
	color: #777;
}


/* =========================
   FEATURES
========================= */

.dy-level-card__features {
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}

.dy-level-card__features li {
	position: relative;
	margin-bottom: 13px;
	padding-left: 23px;
	font-size: 14px;
	line-height: 1.7;
	color: #ddd;
}

.dy-level-card__features li::before {
	content: "✓";
	position: absolute;
	top: 0;
	left: 0;
	color: #b5161b;
	font-weight: 900;
}


/* =========================
   BUTTON
========================= */

.dy-level-card__button {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 64px;
	margin-top: auto;
	padding: 12px 20px;
	border: 1px solid #444;
	border-radius: 3px;
	background: #111;
	color: #fff;
	text-decoration: none;
	transition: .2s ease;
}

.dy-level-card__button--primary {
	border-color: #b5161b;
	background: #b5161b;
}

.dy-level-card__button span {
	font-size: 14px;
	font-weight: 800;
}

.dy-level-card__button small {
	margin-top: 4px;
	font-size: 10px;
	color: #888;
}

.dy-level-card__button--primary small {
	color: rgba(255,255,255,.7);
}

.dy-level-card__button:hover {
	border-color: #777;
	background: #191919;
	color: #fff;
	transform: translateY(-1px);
}

.dy-level-card__button--primary:hover {
	border-color: #d22;
	background: #d22;
}


/* =========================
   NOTICE
========================= */

.dy-levels-notice {
	margin-bottom: 28px;
	padding: 30px 32px;
	border: 1px solid #292929;
	border-left: 4px solid #b5161b;
	background: #0a0a0a;
}

.dy-levels-notice h2 {
	margin: 0 0 16px;
	font-size: 22px;
	color: #fff;
}

.dy-levels-notice p {
	margin: 0 0 9px;
	font-size: 14px;
	line-height: 1.8;
	color: #bbb;
}

.dy-levels-notice__en {
	margin-top: 18px !important;
	padding-top: 16px;
	border-top: 1px solid #242424;
	font-size: 12px !important;
	color: #777 !important;
}


/* =========================
   EXISTING MEMBER
========================= */

.dy-levels-member {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	padding: 30px 32px;
	border: 1px solid #292929;
	background: #080808;
}

.dy-levels-member__eyebrow {
	display: block;
	margin-bottom: 7px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .15em;
	color: #b5161b;
}

.dy-levels-member h2 {
	margin: 0;
	font-size: 24px;
	color: #fff;
}

.dy-levels-member p {
	margin: 8px 0 0;
	font-size: 13px;
	color: #999;
}

.dy-levels-member__button {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 210px;
	min-height: 62px;
	padding: 10px 25px;
	border: 1px solid #444;
	border-radius: 3px;
	background: #111;
	color: #fff;
	text-decoration: none;
	transition: .2s ease;
}

.dy-levels-member__button span {
	font-size: 13px;
	font-weight: 800;
}

.dy-levels-member__button small {
	margin-top: 3px;
	font-size: 10px;
	color: #777;
}

.dy-levels-member__button:hover {
	border-color: #777;
	background: #171717;
	color: #fff;
}


/* =========================
   MOBILE
========================= */

@media screen and (max-width: 760px) {

	.dy-levels-page {
		padding: 42px 16px 70px;
	}

	.dy-levels-title {
		font-size: 32px;
	}

	.dy-levels-description {
		font-size: 14px;
	}

	.dy-levels-grid {
		grid-template-columns: 1fr;
	}

	.dy-level-card {
		padding: 28px 22px;
	}

	.dy-level-card__price strong {
		font-size: 38px;
	}

	.dy-levels-member {
		flex-direction: column;
		align-items: stretch;
		padding: 25px 22px;
	}

	.dy-levels-member__button {
		width: 100%;
		min-width: 0;
	}

}

/* =========================================================
   Header Navigation
========================================================= */

.dy-header-nav {
	display: flex;
	align-items: center;
	gap: 28px;
}

.dy-header-nav a {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	color: #fff;
	text-decoration: none;
	line-height: 1.15;
	transition: opacity .2s ease;
}

.dy-header-nav a:hover {
	opacity: .7;
	color: #fff;
	text-decoration: none;
}

.dy-header-nav a span {
	display: block;
	font-size: 13px;
	font-weight: 800;
	white-space: nowrap;
}

.dy-header-nav a small {
	display: block;
	margin-top: 4px;
	font-size: 9px;
	font-weight: 500;
	letter-spacing: .04em;
	color: #777;
	white-space: nowrap;
}


/* =========================
   Mobile
========================= */

@media screen and (max-width: 900px) {

	.dy-header-nav {
		gap: 18px;
	}

	.dy-header-nav a span {
		font-size: 12px;
	}

	.dy-header-nav a small {
		font-size: 8px;
	}

}

/* =========================================================
   COMMON HEADER
========================================================= */

.dy-site-header {
	position: relative;
	z-index: 1000;
	width: 100%;
	background: #050505;
	border-bottom: 1px solid #181818;
}

.dy-header-inner {
	display: flex;
	align-items: center;
	width: min(1320px, calc(100% - 40px));
	min-height: 76px;
	margin: 0 auto;
}


/* =========================
   LOGO
========================= */

.dy-header-logo {
	flex: 0 0 auto;
	margin-right: 38px;
}

.dy-header-logo a {
	display: block;
	line-height: 0;
}

.dy-header-logo img {
	display: block;
	width: auto;
	max-width: 82px;
	max-height: 58px;
}


/* =========================
   HEADER MENU AREA
========================= */

.dy-header-menu {
	display: flex;
	align-items: center;
	flex: 1;
	min-width: 0;
}


/* =========================
   NAVIGATION
========================= */

.dy-header-nav {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 28px;

	/* ここがポイント */
	margin-right: auto;
}

.dy-header-nav a {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	color: #fff;
	text-decoration: none;
	line-height: 1.15;
	transition: opacity .2s ease;
}

.dy-header-nav a:hover {
	color: #fff;
	text-decoration: none;
	opacity: .65;
}

.dy-header-nav a span {
	display: block;
	font-size: 13px;
	font-weight: 800;
	white-space: nowrap;
}

.dy-header-nav a small {
	display: block;
	margin-top: 5px;
	font-size: 9px;
	font-weight: 500;
	letter-spacing: .03em;
	color: #777;
	white-space: nowrap;
}


/* =========================
   ACCOUNT
========================= */

.dy-header-account {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-left: 30px;
}

.dy-header-account__btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 92px;
	min-height: 42px;
	padding: 7px 14px;
	border: 1px solid #3b3b3b;
	border-radius: 4px;
	background: #090909;
	color: #fff;
	text-decoration: none;
	transition: .2s ease;
}

.dy-header-account__btn span {
	font-size: 11px;
	font-weight: 800;
}

.dy-header-account__btn small {
	margin-top: 3px;
	font-size: 8px;
	color: #888;
}

.dy-header-account__btn:hover {
	border-color: #777;
	background: #141414;
	color: #fff;
}

.dy-header-account__btn--logout {
	border-color: #b5161b;
	background: #d71920;
}

.dy-header-account__btn--logout:hover {
	border-color: #e22;
	background: #e22;
}


/* =========================
   HAMBURGER
========================= */

.dy-menu-toggle {
	display: none;
	width: 42px;
	height: 42px;
	margin-left: auto;
	padding: 9px;
	border: 1px solid #333;
	border-radius: 4px;
	background: #0b0b0b;
	cursor: pointer;
}

.dy-menu-toggle span {
	display: block;
	width: 100%;
	height: 2px;
	margin: 5px 0;
	background: #fff;
	transition: .25s ease;
}


/* =========================================================
   MOBILE HEADER
========================================================= */

@media screen and (max-width: 800px) {

	.dy-header-inner {
		position: relative;
		width: calc(100% - 28px);
		min-height: 64px;
	}

	.dy-header-logo {
		margin-right: 0;
	}

	.dy-header-logo img {
		max-width: 68px;
		max-height: 48px;
	}

	.dy-menu-toggle {
		display: block;
	}


	/* メニュー本体 */
	.dy-header-menu {
		position: absolute;
		top: 100%;
		left: -14px;
		right: -14px;

		display: none;
		flex-direction: column;
		align-items: stretch;

		padding: 12px 18px 20px;

		background: #050505;
		border-top: 1px solid #202020;
		border-bottom: 1px solid #202020;

		box-shadow: 0 12px 30px rgba(0,0,0,.55);
	}

	.dy-header-menu.is-open {
		display: flex;
	}


	/* NAV */
	.dy-header-nav {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
		margin: 0;
	}

	.dy-header-nav a {
		display: flex;
		align-items: flex-start;
		padding: 15px 4px;
		border-bottom: 1px solid #1f1f1f;
	}

	.dy-header-nav a span {
		font-size: 14px;
	}

	.dy-header-nav a small {
		margin-top: 4px;
		font-size: 9px;
	}


	/* ACCOUNT */
	.dy-header-account {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px;
		width: 100%;
		margin: 16px 0 0;
	}

	.dy-header-account__btn {
		width: 100%;
		min-height: 48px;
	}


	/* ハンバーガー → × */
	.dy-menu-toggle.is-open span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.dy-menu-toggle.is-open span:nth-child(2) {
		opacity: 0;
	}

	.dy-menu-toggle.is-open span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

}

/* =========================================================
   SITE FOOTER
========================================================= */

.dy-site-footer {
	background: #050505;
	color: #fff;
	border-top: 1px solid #1d1d1d;
}

.dy-footer-container {
	width: min(1320px, calc(100% - 40px));
	margin: 0 auto;
	padding: 58px 0 26px;
}


/* =========================
   TOP
========================= */

.dy-footer-top {
	display: grid;
	grid-template-columns: 1.7fr 1fr 1fr 1.2fr;
	gap: 50px;
	padding-bottom: 48px;
}


/* =========================
   BRAND
========================= */

.dy-footer-brand {
	max-width: 340px;
}

.dy-footer-logo {
	display: inline-block;
	margin-bottom: 20px;
	line-height: 0;
}

.dy-footer-logo img {
	display: block;
	width: auto;
	max-width: 100px;
	max-height: 70px;
}

.dy-footer-brand__text {
	margin: 0;
	font-size: 13px;
	line-height: 1.9;
	color: #aaa;
}

.dy-footer-brand__text-en {
	margin: 13px 0 0;
	font-size: 10px;
	line-height: 1.7;
	color: #666;
}


/* =========================
   COLUMNS
========================= */

.dy-footer-column__title {
	display: block;
	margin-bottom: 18px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .16em;
	color: #b5161b;
}

.dy-footer-nav {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.dy-footer-nav a {
	display: inline-block;
	width: fit-content;
	color: #bbb;
	font-size: 13px;
	line-height: 1.5;
	text-decoration: none;
	transition: .2s ease;
}

.dy-footer-nav a:hover {
	color: #fff;
	transform: translateX(2px);
}


/* =========================
   BOTTOM
========================= */

.dy-footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	padding-top: 22px;
	border-top: 1px solid #1d1d1d;
}

.dy-footer-bottom p {
	margin: 0;
	font-size: 10px;
	color: #666;
}

.dy-footer-bottom__note {
	text-align: right;
}


/* =========================
   MOBILE
========================= */

@media screen and (max-width: 800px) {

	.dy-footer-container {
		width: calc(100% - 32px);
		padding: 42px 0 22px;
	}

	.dy-footer-top {
		grid-template-columns: 1fr 1fr;
		gap: 34px 28px;
		padding-bottom: 38px;
	}

	.dy-footer-brand {
		grid-column: 1 / -1;
		max-width: none;
	}

	.dy-footer-logo img {
		max-width: 82px;
	}

	.dy-footer-brand__text {
		max-width: 420px;
		font-size: 12px;
	}

	.dy-footer-bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	.dy-footer-bottom__note {
		text-align: left;
	}

}

@media screen and (max-width: 480px) {

	.dy-footer-top {
		grid-template-columns: 1fr;
	}

	.dy-footer-brand {
		grid-column: auto;
	}

}

/* =========================================================
   MEMBERSHIP GATE
========================================================= */

.dy-membership-gate {
	margin: 32px 0 48px;
	padding: 1px;
	background: linear-gradient(
		135deg,
		#6b1317 0%,
		#292929 35%,
		#292929 100%
	);
}

.dy-membership-gate__inner {
	padding: 52px 42px;
	background:
		radial-gradient(
			circle at 50% 0%,
			rgba(181, 22, 27, .16),
			transparent 38%
		),
		#080808;
	text-align: center;
}

.dy-membership-gate__eyebrow {
	display: block;
	margin-bottom: 18px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .2em;
	color: #d22;
}

.dy-membership-gate__lock {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin: 0 auto 22px;
	border: 1px solid #612025;
	border-radius: 50%;
	background: #19090b;
}

.dy-membership-gate__lock span {
	font-size: 22px;
}

.dy-membership-gate__title {
	margin: 0;
	font-size: clamp(27px, 3.2vw, 42px);
	line-height: 1.45;
	color: #fff;
}

.dy-membership-gate__title-en {
	margin: 14px 0 0;
	font-size: 11px;
	line-height: 1.7;
	color: #777;
}


/* =========================
   THUMBNAIL
========================= */

.dy-membership-gate__visual {
	position: relative;
	max-width: 820px;
	margin: 34px auto 0;
	overflow: hidden;
	border: 1px solid #292929;
	background: #000;
}

.dy-membership-gate__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	opacity: .55;
	filter: brightness(.7);
}

.dy-membership-gate__visual-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: rgba(0,0,0,.18);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .18em;
	color: rgba(255,255,255,.8);
}

.dy-membership-gate__play {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	padding-left: 4px;
	border: 1px solid rgba(255,255,255,.45);
	border-radius: 50%;
	background: rgba(0,0,0,.55);
	font-size: 21px;
	color: #fff;
}


/* =========================
   OFFER
========================= */

.dy-membership-gate__offer {
	max-width: 680px;
	margin: 0 auto;
}

.dy-membership-gate__price {
	margin: 34px 0 25px;
}

.dy-membership-gate__price strong {
	font-size: 44px;
	line-height: 1;
	color: #fff;
}

.dy-membership-gate__price span {
	margin-left: 6px;
	font-size: 13px;
	color: #aaa;
}

.dy-membership-gate__price small {
	display: block;
	margin-top: 10px;
	font-size: 10px;
	color: #666;
}


/* =========================
   FEATURES
========================= */

.dy-membership-gate__features {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 11px 25px;
	max-width: 600px;
	margin: 0 auto 32px;
	padding: 23px 0;
	border-top: 1px solid #252525;
	border-bottom: 1px solid #252525;
	list-style: none;
	text-align: left;
}

.dy-membership-gate__features li {
	position: relative;
	margin: 0;
	padding-left: 23px;
	font-size: 13px;
	line-height: 1.7;
	color: #ccc;
}

.dy-membership-gate__features li::before {
	content: "✓";
	position: absolute;
	top: 0;
	left: 0;
	font-weight: 900;
	color: #d22;
}


/* =========================
   JOIN BUTTON
========================= */

.dy-membership-gate__join {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: min(440px, 100%);
	min-height: 70px;
	margin: 0 auto;
	padding: 12px 24px;
	border-radius: 4px;
	background: #b5161b;
	color: #fff;
	text-decoration: none;
	transition: .2s ease;
}

.dy-membership-gate__join span {
	font-size: 15px;
	font-weight: 800;
}

.dy-membership-gate__join small {
	margin-top: 4px;
	font-size: 9px;
	letter-spacing: .08em;
	color: rgba(255,255,255,.7);
}

.dy-membership-gate__join:hover {
	background: #d21b21;
	color: #fff;
	transform: translateY(-1px);
}


/* =========================
   LOGIN
========================= */

.dy-membership-gate__login {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 22px;
	font-size: 12px;
	color: #777;
}

.dy-membership-gate__login a {
	color: #fff;
	font-weight: 700;
	text-decoration: underline;
}

.dy-membership-gate__login a:hover {
	color: #ddd;
}


/* =========================
   MORE
========================= */

.dy-membership-gate__more {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 30px;
	font-size: 11px;
	color: #777;
	text-decoration: none;
	transition: .2s ease;
}

.dy-membership-gate__more:hover {
	color: #bbb;
}


/* =========================
   MOBILE
========================= */

@media screen and (max-width: 650px) {

	.dy-membership-gate__inner {
		padding: 38px 18px;
	}

	.dy-membership-gate__title {
		font-size: 25px;
	}

	.dy-membership-gate__visual {
		margin-top: 28px;
	}

	.dy-membership-gate__play {
		width: 52px;
		height: 52px;
		font-size: 18px;
	}

	.dy-membership-gate__price strong {
		font-size: 38px;
	}

	.dy-membership-gate__features {
		grid-template-columns: 1fr;
		gap: 10px;
		max-width: 380px;
	}

	.dy-membership-gate__login {
		flex-direction: column;
		gap: 5px;
	}

}

/* =========================================================
   HOME MEMBERSHIPS
========================================================= */

.dy-home-memberships {
	width: min(1160px, calc(100% - 40px));
	margin: 44px auto 60px;
}

.dy-home-memberships__heading {
	margin-bottom: 24px;
}

.dy-home-memberships__heading > span {
	display: block;
	margin-bottom: 8px;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .18em;
	color: #d22;
}

.dy-home-memberships__heading h2 {
	margin: 0;
	font-size: clamp(24px, 3vw, 34px);
	line-height: 1.4;
	color: #fff;
}

.dy-home-memberships__heading p {
	margin: 10px 0 0;
	font-size: 12px;
	line-height: 1.8;
	color: #777;
}


/* =========================
   GRID
========================= */

.dy-home-memberships__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}


/* =========================
   CARD
========================= */

.dy-home-membership-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 30px;
	border: 1px solid #292929;
	background: #0b0b0b;
}

.dy-home-membership-card--premium {
	border-top: 2px solid #b5161b;
}

.dy-home-membership-card--kuzu {
	border-top: 2px solid #555;
}

.dy-home-membership-card__eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .15em;
	color: #d22;
}

.dy-home-membership-card--kuzu
.dy-home-membership-card__eyebrow {
	color: #888;
}

.dy-home-membership-card h3 {
	margin: 0;
	font-size: 22px;
	line-height: 1.4;
	color: #fff;
}

.dy-home-membership-card__description {
	min-height: 52px;
	margin: 13px 0 0;
	font-size: 12px;
	line-height: 1.8;
	color: #999;
}


/* PRICE */

.dy-home-membership-card__price {
	margin: 22px 0;
	padding: 20px 0;
	border-top: 1px solid #242424;
	border-bottom: 1px solid #242424;
}

.dy-home-membership-card__price strong {
	font-size: 30px;
	line-height: 1;
	color: #fff;
}

.dy-home-membership-card__price span {
	margin-left: 5px;
	font-size: 11px;
	color: #888;
}


/* FEATURES */

.dy-home-membership-card ul {
	flex: 1;
	margin: 0 0 25px;
	padding: 0;
	list-style: none;
}

.dy-home-membership-card li {
	position: relative;
	margin: 10px 0;
	padding-left: 20px;
	font-size: 12px;
	line-height: 1.6;
	color: #ccc;
}

.dy-home-membership-card li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: #d22;
	font-weight: 900;
}


/* BUTTON */

.dy-home-membership-card__button {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 58px;
	padding: 10px 20px;
	border: 1px solid #444;
	background: #111;
	color: #fff;
	text-decoration: none;
	transition: .2s ease;
}

.dy-home-membership-card__button--primary {
	border-color: #b5161b;
	background: #b5161b;
}

.dy-home-membership-card__button span {
	font-size: 13px;
	font-weight: 800;
}

.dy-home-membership-card__button small {
	margin-top: 4px;
	font-size: 8px;
	color: rgba(255,255,255,.55);
}

.dy-home-membership-card__button:hover {
	border-color: #777;
	background: #191919;
	color: #fff;
	transform: translateY(-1px);
}

.dy-home-membership-card__button--primary:hover {
	border-color: #d21b21;
	background: #d21b21;
}


/* =========================
   LOGIN
========================= */

.dy-home-memberships__login {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 22px;
	font-size: 11px;
	color: #777;
}

.dy-home-memberships__login a {
	color: #fff;
	font-weight: 700;
	text-decoration: underline;
}


/* =========================
   MOBILE
========================= */

@media screen and (max-width: 700px) {

	.dy-home-memberships {
		width: calc(100% - 28px);
		margin-top: 32px;
	}

	.dy-home-memberships__grid {
		grid-template-columns: 1fr;
	}

	.dy-home-membership-card {
		padding: 24px 20px;
	}

	.dy-home-membership-card__description {
		min-height: 0;
	}

}

/* =========================================================
   FOOTER LOGO MOBILE FIX
========================================================= */

@media screen and (max-width: 800px) {

	.dy-footer-logo,
	.dy-footer-logo .custom-logo-link {
		display: inline-block;
		width: auto;
		max-width: 150px;
	}

	.dy-footer-logo img,
	.dy-footer-logo .custom-logo {
		display: block;
		width: auto !important;
		height: auto !important;
		max-width: 150px !important;
		max-height: none !important;
	}

}

/* =========================================================
   FOOTER LOGO SIZE FIX
========================================================= */

.dy-footer-logo {
	display: block;
	margin-bottom: 20px;
}

.dy-footer-logo .custom-logo-link {
	display: inline-block;
	width: auto;
	line-height: 0;
}

.dy-footer-logo .custom-logo {
	display: block;
	width: 100px !important;
	height: auto !important;
	max-width: 100px !important;
}


/* MOBILE */

@media screen and (max-width: 800px) {

	.dy-footer-logo .custom-logo {
		width: 140px !important;
		max-width: 140px !important;
		height: auto !important;
	}

}

.dy-category-search {
	margin: 30px 0 36px;
}

.dy-category-search__form {
	display: flex;
	max-width: 560px;
}

.dy-category-search__form input[type="search"] {
	flex: 1;
	min-width: 0;
	padding: 14px 16px;
	border: 1px solid #2a2a2a;
	border-right: 0;
	background: #0c0c0c;
	color: #fff;
	font-size: 14px;
	outline: none;
}

.dy-category-search__form input[type="search"]:focus {
	border-color: #b5161b;
}

.dy-category-search__form button {
	padding: 0 24px;
	border: 1px solid #b5161b;
	background: #b5161b;
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

.dy-category-search__form button:hover {
	background: #d21b21;
}

@media screen and (max-width: 600px) {

	.dy-category-search__form {
		max-width: none;
		width: 100%;
	}

	.dy-category-search__form button {
		padding: 0 18px;
	}

}

/* =========================================================
   SEARCH PAGE
========================================================= */

.dy-search-page {
	background: #050505;
	color: #fff;
	min-height: 70vh;
	padding: 54px 0 80px;
}

.dy-search-page__inner {
	width: min(1160px, calc(100% - 40px));
	margin: 0 auto;
}


/* =========================
   HEADER
========================= */

.dy-search-header {
	margin-bottom: 28px;
}

.dy-search-header__eyebrow {
	display: block;
	margin-bottom: 8px;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .18em;
	color: #d22;
}

.dy-search-header h1 {
	margin: 0;
	font-size: clamp(28px, 3.5vw, 42px);
	line-height: 1.35;
	color: #fff;
}

.dy-search-header p {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.8;
	color: #999;
}


/* =========================
   SEARCH FORM
========================= */

.dy-search-form {
	display: flex;
	max-width: 680px;
	margin-bottom: 28px;
}

.dy-search-form input[type="search"] {
	flex: 1;
	min-width: 0;
	height: 50px;
	padding: 0 16px;
	border: 1px solid #2b2b2b;
	border-right: 0;
	background: #0b0b0b;
	color: #fff;
	font-size: 14px;
	outline: none;
}

.dy-search-form input[type="search"]::placeholder {
	color: #666;
}

.dy-search-form input[type="search"]:focus {
	border-color: #b5161b;
}

.dy-search-form button {
	min-width: 110px;
	height: 50px;
	padding: 0 24px;
	border: 1px solid #b5161b;
	background: #b5161b;
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	cursor: pointer;
	transition: .2s ease;
}

.dy-search-form button:hover {
	background: #d21b21;
	border-color: #d21b21;
}


/* =========================
   COUNT
========================= */

.dy-search-count {
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid #222;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .14em;
	color: #777;
}


/* =========================
   VIDEO GRID
========================= */

.dy-video-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px 18px;
}

.dy-video-card {
	margin: 0;
}

.dy-video-card a {
	display: block;
	color: inherit;
	text-decoration: none;
}

.dy-video-card__thumb {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #111;
}

.dy-video-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .25s ease;
}

.dy-video-card:hover .dy-video-card__thumb img {
	transform: scale(1.035);
}

.dy-video-card__body {
	padding-top: 11px;
}

.dy-video-card__body h2 {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: #fff;
	font-weight: 700;
}

.dy-video-card:hover .dy-video-card__body h2 {
	color: #ddd;
}


/* =========================
   EMPTY
========================= */

.dy-search-empty {
	padding: 60px 20px;
	border: 1px solid #252525;
	background: #0b0b0b;
	text-align: center;
}

.dy-search-empty h2 {
	margin: 0 0 10px;
	font-size: 22px;
	color: #fff;
}

.dy-search-empty p {
	margin: 0;
	font-size: 13px;
	color: #888;
}


/* =========================
   PAGINATION
========================= */

.dy-search-pagination {
	margin-top: 48px;
	text-align: center;
}

.dy-search-pagination .nav-links {
	display: flex;
	justify-content: center;
	gap: 8px;
}

.dy-search-pagination .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border: 1px solid #292929;
	background: #0b0b0b;
	color: #aaa;
	text-decoration: none;
}

.dy-search-pagination .page-numbers.current {
	border-color: #b5161b;
	background: #b5161b;
	color: #fff;
}

.dy-search-pagination a.page-numbers:hover {
	border-color: #555;
	color: #fff;
}


/* =========================
   TABLET
========================= */

@media screen and (max-width: 1000px) {

	.dy-video-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

}


/* =========================
   MOBILE
========================= */

@media screen and (max-width: 700px) {

	.dy-search-page {
		padding: 36px 0 60px;
	}

	.dy-search-page__inner {
		width: calc(100% - 28px);
	}

	.dy-search-form {
		max-width: none;
		width: 100%;
	}

	.dy-search-form input[type="search"] {
		height: 46px;
	}

	.dy-search-form button {
		min-width: 84px;
		height: 46px;
		padding: 0 16px;
	}

	.dy-video-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px 12px;
	}

	.dy-video-card__body h2 {
		font-size: 13px;
	}

}