:root {
  --pp-ink: #17243a;
  --pp-paper: #f7f9fc;
  --pp-white: #fff;
  --pp-pink: #e60012;
  --pp-violet: #064f91;
  --pp-soft: #eef3f8;
  --pp-line: #d7e0e8;
  --pp-muted: #5d6b7b;
  --pp-max: 1240px
}
.pickup-photo-site {
  background: var(--pp-paper);
  color: var(--pp-ink)
}
.pickup-photo-site .siteContent {
  padding: 0
}
.pickup-photo-site .container.siteContent_container {
  max-width: none;
  padding: 0
}
.pickup-photo-site .mainSection {
  width: 100%;
  float: none
}
.pickup-photo-site .subSection {
  display: none
}
.pp-main {
  background: var(--pp-paper);
  font-size: 16px;
  line-height: 1.75
}
.pp-main * {
  box-sizing: border-box
}
.pp-main img {
  display: block;
  max-width: 100%;
  height: auto
}
.pp-main a {
  text-decoration: none
}
.pp-section {
  max-width: var(--pp-max);
  margin: auto;
  padding: 92px 24px
}
.pp-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--pp-pink);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .08em
}
.pp-eyebrow:before {
  content: "";
  width: 26px;
  height: 3px;
  background: var(--pp-pink)
}
.pp-brand-hero {
  width: 100%;
  height: auto;
  margin: 0;
  position: relative;
  overflow: hidden;
  border: 0;
  background: var(--pp-soft)
}
.pp-brand-hero>picture {
  display: block
}
.pp-brand-hero>picture>img {
  display: block;
  width: 100%;
  height: auto
}
@media(max-width:767px) {
  .pp-brand-hero {
    height: 83.333vw;
    overflow: hidden
  }
  .pp-brand-hero>picture,.pp-brand-hero>picture>img {
    height: 100%
  }
  .pp-brand-hero>picture>img {
    object-fit: cover;
    object-position: center center
  }
}
.pp-section-heading {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  align-items: end;
  margin-bottom: 38px
}
.pp-section-heading h1,.pp-section-heading h2 {
  font-size: 38px;
  line-height: 1.3;
  margin: 10px 0 0
}
.pp-section-heading>p {
  max-width: 450px;
  color: var(--pp-muted);
  font-size: 14px;
  margin: 0
}
.pp-event-showcase {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 24px;
  align-items: stretch
}
.pp-latest-card {
  grid-column: span 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto minmax(150px,1fr);
  background: var(--pp-white);
  border: 1px solid var(--pp-line);
  overflow: hidden
}
.pp-latest-photo,.pp-latest-copy {
  grid-row: 1
}
.pp-latest-photo {
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--pp-soft)
}
.pp-latest-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover
}
.pp-latest-copy {
  display: flex;
  flex-direction: column;
  padding: 38px;
  background: linear-gradient(145deg,#fff,#f1f6fa)
}
.pp-latest-label {
  align-self: flex-start;
  background: var(--pp-pink);
  color: white;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 900
}
.pp-latest-copy time {
  margin-top: 24px;
  color: var(--pp-pink);
  font-size: 13px;
  font-weight: 900
}
.pp-latest-copy h2 {
  font-size: clamp(26px,2.7vw,38px);
  line-height: 1.42;
  margin: 10px 0 16px
}
.pp-latest-copy p {
  color: var(--pp-muted);
  margin: 0
}
.pp-latest-link {
  display: flex;
  justify-content: space-between;
  color: var(--pp-ink);
  border-top: 1px solid rgba(6,79,145,.2);
  margin-top: 28px;
  padding-top: 18px;
  font-size: 13px;
  font-weight: 900
}
.pp-latest-pickup {
  grid-column: 1/-1;
  grid-row: 2;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
  min-height: 150px;
  padding: 25px 28px;
  background: white;
  border-top: 1px solid var(--pp-line)
}
.pp-latest-pickup span {
  display: block;
  color: var(--pp-pink);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em
}
.pp-latest-pickup strong {
  display: inline-block;
  font-size: 25px;
  margin-top: 3px
}
.pp-latest-pickup small {
  display: block;
  color: var(--pp-muted);
  font-size: 12px
}
.pp-pickup-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px
}
.pp-pickup-links a {
  white-space: nowrap;
  color: var(--pp-pink);
  font-size: 12px;
  font-weight: 900;
  border-bottom: 1px solid currentColor
}
.pp-pickup-links a+a {
  color: var(--pp-violet)
}
.pp-event-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 24px;
  margin-top: 24px
}
.pp-event-card {
  display: block;
  background: white;
  color: var(--pp-ink);
  border: 1px solid var(--pp-line);
  overflow: hidden;
  transition: .2s
}
.pp-event-card:hover {
  color: var(--pp-ink);
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(6,79,145,.12)
}
.pp-event-card-photo {
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--pp-soft)
}
.pp-event-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover
}
.pp-event-card-body {
  padding: 22px
}
.pp-event-card-body time {
  font-size: 12px;
  color: var(--pp-pink);
  font-weight: 900
}
.pp-event-card-body h3 {
  font-size: 20px;
  line-height: 1.5;
  margin: 8px 0 14px
}
.pp-event-card-body p {
  font-size: 13px;
  color: var(--pp-muted);
  margin: 0
}
.pp-event-card-body>span {
  display: block;
  border-top: 1px solid var(--pp-line);
  padding-top: 15px;
  margin-top: 18px;
  font-weight: 800;
  font-size: 13px
}
.pp-about-strip {
  max-width: var(--pp-max);
  margin: 0 auto 70px;
  padding: 42px 30px;
  background: linear-gradient(100deg,#edf4fa,#fff 48%,#f8ecee);
  border: 1px solid var(--pp-line);
  display: flex;
  justify-content: space-between;
  align-items: center
}
.pp-about-strip h2 {
  font-size: 28px;
  margin: 0
}
.pp-about-strip>a {
  border: 1px solid var(--pp-pink);
  color: var(--pp-pink);
  background: white;
  border-radius: 999px;
  padding: 11px 20px;
  font-weight: 800;
  font-size: 13px
}
.pp-empty {
  padding: 45px;
  background: white;
  border: 1px solid var(--pp-line)
}
.pp-archive {
  padding-top: 65px
}
.pp-breadcrumb {
  max-width: var(--pp-max);
  margin: 28px auto 22px;
  padding: 0 24px;
  font-size: 12px;
  color: var(--pp-muted)
}
.pp-event-lead {
  max-width: calc(var(--pp-max) - 48px);
  margin: auto;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  background: linear-gradient(145deg,#fff,#f8ecee 56%,#eef3f8);
  border: 1px solid var(--pp-line)
}
.pp-event-lead-copy {
  padding: 50px;
  display: flex;
  flex-direction: column
}
.pp-event-lead-copy h1 {
  font-size: clamp(34px,3.4vw,46px);
  line-height: 1.35;
  margin: 22px 0 18px
}
.pp-event-summary {
  color: var(--pp-muted)
}
.pp-event-lead-photo {
  min-height: 690px
}
.pp-event-lead-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover
}
.pp-pickup-box {
  margin: 20px 0 26px;
  padding: 20px 22px;
  background: rgba(255,255,255,.75);
  border: 1px solid var(--pp-line);
  box-shadow: 0 10px 26px rgba(6,79,145,.08)
}
.pp-pickup-box>span {
  display: block;
  color: var(--pp-pink);
  font-size: 11px;
  font-weight: 900
}
.pp-pickup-box>strong {
  display: inline-block;
  font-size: 25px;
  margin-right: 9px
}
.pp-pickup-box>small {
  color: var(--pp-muted);
  font-size: 12px
}
.pp-pickup-box>p {
  margin: 8px 0 13px;
  color: #5d5665;
  font-size: 13px
}
.pp-pickup-box>div {
  display: flex;
  gap: 8px;
  flex-wrap: wrap
}
.pp-pickup-box a {
  border: 1px solid var(--pp-pink);
  color: var(--pp-pink);
  padding: 7px 11px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  background: white
}
.pp-pickup-box a+a {
  border-color: var(--pp-violet);
  color: var(--pp-violet)
}
.pp-event-facts {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  border-top: 1px solid var(--pp-line);
  margin-top: auto
}
.pp-event-facts>div {
  padding: 15px 8px 0 0
}
.pp-event-facts span {
  font-size: 11px;
  color: var(--pp-muted);
  display: block
}
.pp-event-facts strong {
  font-size: 14px
}
.pp-event-content {
  max-width: var(--pp-max);
  margin: auto;
  padding: 70px 24px 100px
}
.pp-event-intro {
  display: grid;
  grid-template-columns: .65fr 1.35fr;
  gap: 70px;
  margin-bottom: 70px
}
.pp-event-intro h2 {
  font-size: 31px;
  margin: 0
}
.pp-gallery-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  border-top: 1px solid var(--pp-line);
  padding-top: 32px;
  margin-bottom: 24px
}
.pp-gallery-heading h2 {
  font-size: 33px;
  margin: 6px 0 0
}
.pp-gallery-heading>p {
  font-size: 13px;
  color: var(--pp-muted);
  margin: 0
}
.pp-masonry {
  columns: 4;
  column-gap: 12px
}
.pp-gallery-photo {
  display: block;
  width: 100%;
  border: 0;
  padding: 0;
  margin: 0 0 12px;
  background: var(--pp-soft);
  cursor: pointer;
  overflow: hidden;
  position: relative;
  break-inside: avoid
}
.pp-gallery-photo img {
  width: 100%;
  height: auto
}
.pp-gallery-photo:after {
  content: "モデル情報を見る";
  position: absolute;
  left: 8px;
  bottom: 8px;
  background: rgba(43,38,56,.84);
  color: white;
  padding: 7px 10px;
  font-size: 11px;
  font-weight: 800;
  opacity: 0;
  transition: .2s
}
.pp-gallery-photo:hover:after {
  opacity: 1
}
.pp-modal {
  position: fixed;
  inset: 0;
  background: rgba(43,38,56,.8);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 35px;
  z-index: 99999
}
.pp-modal.is-open {
  display: flex
}
.pp-modal-card {
  background: white;
  width: min(940px,95vw);
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  max-height: 90vh
}
.pp-modal-photo {
  background: var(--pp-soft);
  min-height: 560px
}
.pp-modal-photo img {
  width: 100%;
  height: 100%;
  object-fit: contain
}
.pp-modal-copy {
  padding: 46px;
  position: relative;
  display: flex;
  flex-direction: column
}
.pp-modal-close {
  position: absolute;
  right: 18px;
  top: 12px;
  border: 0;
  background: none;
  font-size: 30px;
  cursor: pointer
}
.pp-modal-copy>span {
  color: var(--pp-pink);
  font-size: 12px;
  font-weight: 900
}
.pp-modal-copy h2 {
  font-size: 35px;
  margin: 12px 0 5px
}
.pp-modal-role {
  color: var(--pp-muted)
}
.pp-modal-photographer {
  font-size: 12px;
  color: var(--pp-muted)
}
.pp-modal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px
}
.pp-modal-links a {
  background: linear-gradient(135deg,var(--pp-pink),var(--pp-violet));
  color: white;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800
}
.pp-modal-detail {
  margin-top: auto;
  border-top: 1px solid var(--pp-line);
  padding-top: 18px;
  color: var(--pp-pink);
  font-weight: 900
}
.pp-model-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 24px
}
.pp-model-card {
  display: block;
  background: white;
  border: 1px solid var(--pp-line);
  padding-bottom: 20px;
  color: var(--pp-ink)
}
.pp-model-card-photo {
  aspect-ratio: 3/4;
  overflow: hidden;
  background: var(--pp-soft)
}
.pp-model-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top
}
.pp-model-card h2 {
  font-size: 20px;
  margin: 17px 18px 3px
}
.pp-model-card p {
  color: var(--pp-muted);
  margin: 0 18px;
  font-size: 13px
}
.pp-model-profile {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 60px;
  align-items: start
}
.pp-model-photo {
  background: var(--pp-soft)
}
.pp-model-copy h1 {
  font-size: 46px;
  margin: 15px 0 4px
}
.pp-model-role {
  color: var(--pp-muted)
}
.pp-model-links {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 25px
}
.pp-model-links a {
  background: linear-gradient(135deg,var(--pp-pink),var(--pp-violet));
  color: white;
  padding: 10px 15px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 13px
}
@media(max-width:991px) {
  .pp-event-showcase {
    grid-template-columns: 1fr 1fr
  }
  .pp-latest-card {
    grid-column: span 2
  }
  .pp-latest-pickup {
    grid-template-columns: 1fr auto
  }
  .pp-pickup-links {
    grid-column: auto;
    flex-direction: column
  }
  .pp-event-grid,.pp-model-grid {
    grid-template-columns: repeat(2,1fr)
  }
  .pp-event-lead {
    grid-template-columns: 1fr
  }
  .pp-event-lead-photo {
    grid-row: 1;
    min-height: 60vh
  }
  .pp-event-lead-copy {
    grid-row: 2
  }
  .pp-event-intro {
    grid-template-columns: 1fr;
    gap: 20px
  }
  .pp-masonry {
    columns: 2
  }
  .pp-modal-card {
    grid-template-columns: 1fr;
    overflow: auto
  }
  .pp-modal-photo {
    min-height: 45vh
  }
  .pp-model-profile {
    grid-template-columns: 1fr
  }
}
@media(max-width:575px) {
  .pp-section {
    padding: 65px 14px
  }
  .pp-section-heading,.pp-gallery-heading {
    align-items: flex-start;
    flex-direction: column
  }
  .pp-event-showcase {
    gap: 10px
  }
  .pp-latest-card {
    grid-template-columns: 1fr 1fr
  }
  .pp-latest-copy {
    padding: 20px 16px
  }
  .pp-latest-copy h2 {
    font-size: 20px
  }
  .pp-latest-copy p {
    font-size: 12px
  }
  .pp-latest-pickup {
    grid-template-columns: 1fr;
    padding: 20px;
    gap: 10px
  }
  .pp-pickup-links {
    grid-column: auto;
    flex-direction: column
  }
  .pp-event-grid {
    gap: 10px;
    margin-top: 10px
  }
  .pp-event-card-body {
    padding: 15px 12px
  }
  .pp-event-card-body h3 {
    font-size: 16px
  }
  .pp-event-card-body p,.pp-event-card-body>span {
    font-size: 12px
  }
  .pp-about-strip {
    margin: 0 14px 50px;
    align-items: flex-start;
    flex-direction: column;
    gap: 18px
  }
  .pp-breadcrumb {
    padding: 0 14px
  }
  .pp-event-lead {
    margin: 0 14px
  }
  .pp-event-lead-copy {
    padding: 36px 24px
  }
  .pp-event-content {
    padding: 60px 14px
  }
  .pp-masonry {
    column-gap: 7px
  }
  .pp-gallery-photo {
    margin-bottom: 7px
  }
  .pp-modal {
    padding: 12px
  }
  .pp-modal-copy {
    padding: 35px 24px
  }
  .pp-model-grid {
    grid-template-columns: repeat(2,1fr)
  }
}
/* Pickup Photo shared header and detail-page controls. */
.pickup-photo-site .siteHeader,.pickup-photo-site .global-nav {
  display: none!important
}
.pp-site-header {
  position: relative;
  z-index: 20;
  background: rgba(255,255,255,.96);
  border-bottom: 3px solid var(--pp-violet);
  box-shadow: 0 5px 18px rgba(23,36,58,.04)
}
.pp-site-header:after {
  content: "";
  display: block;
  width: 34%;
  height: 3px;
  margin-bottom: -3px;
  background: var(--pp-pink)
}
.pp-site-header-inner {
  max-width: var(--pp-max);
  min-height: 82px;
  margin: auto;
  padding: 14px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px
}
.pp-site-brand {
  display: flex;
  align-items: center;
  color: var(--pp-ink)!important
}
.pp-site-logo-image {
  display: block;
  width: auto;
  height: 58px;
  max-width: min(360px,40vw);
  object-fit: contain
}
.pp-site-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(16px,2.3vw,34px)
}
.pp-site-nav a {
  color: var(--pp-ink);
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap
}
.pp-site-nav a:hover {
  color: var(--pp-pink)
}
.pp-breadcrumb {
  margin-bottom: 12px
}
.pp-back-wrap {
  max-width: var(--pp-max);
  margin: 0 auto 18px;
  padding: 0 24px
}
.pp-back-wrap-model {
  padding: 0;
  margin: -48px 0 28px
}
.pp-back-link {
  display: inline-flex;
  align-items: center;
  color: var(--pp-muted);
  font-size: 13px;
  font-weight: 800;
  border-bottom: 1px solid transparent
}
.pp-back-link:hover {
  color: var(--pp-pink);
  border-bottom-color: currentColor
}
.pp-event-lead-photo img {
  object-position: var(--pp-image-position,center top)
}
@media(max-width:800px) {
  .pp-site-header-inner {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px
  }
  .pp-site-nav {
    width: 100%;
    justify-content: flex-start;
    gap: 11px 20px;
    overflow-x: auto;
    padding-bottom: 4px
  }
  .pp-back-wrap-model {
    margin: -35px 0 24px
  }
}
@media(max-width:575px) {
  .pp-site-header-inner {
    padding: 12px 14px
  }
  .pp-site-logo-image {
    height: 42px;
    max-width: calc(100vw - 96px)
  }
  .pp-site-nav a {
    font-size: 12px
  }
  .pp-back-wrap {
    padding: 0 14px
  }
}
.pp-latest-photo img,.pp-event-card-photo img {
  object-position: var(--pp-image-position,center top)
}
/* WordPress menu integration and refined event layouts. */
.pp-site-menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(16px,2.3vw,34px);
  list-style: none;
  margin: 0;
  padding: 0
}
.pp-site-menu li {
  margin: 0;
  padding: 0
}
.pp-menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 8px;
  border: 0;
  background: transparent;
  cursor: pointer
}
.pp-menu-toggle span {
  display: block;
  width: 26px;
  height: 2px;
  margin: 5px auto;
  background: var(--pp-ink);
  transition: .2s
}
.pp-menu-toggle b {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0)
}
.pp-event-lead {
  grid-template-columns: minmax(0,1.3fr) minmax(360px,.7fr)
}
.pp-event-lead-photo {
  min-height: 540px;
  max-height: 620px
}
.pp-event-lead-copy {
  padding: 44px 48px
}
.pp-event-lead-copy h1 {
  margin-bottom: 14px
}
.pp-event-summary {
  margin: 0 0 26px
}
.pp-event-facts {
  margin-top: 10px
}
.pp-pickup-box {
  margin: 30px 0 0
}
.pp-latest-link {
  align-items: center;
  align-self: flex-start;
  width: auto;
  border: 0;
  border-radius: 999px;
  margin-top: 28px;
  padding: 12px 18px;
  background: linear-gradient(135deg,var(--pp-pink),var(--pp-violet));
  color: #fff!important;
  box-shadow: 0 10px 24px rgba(6,79,145,.18)
}
.pp-latest-link b {
  margin-left: 24px
}
@media(max-width:991px) {
  .pp-event-lead {
    grid-template-columns: 1fr
  }
  .pp-event-lead-photo {
    max-height: none
  }
}
@media(max-width:800px) {
  .pp-site-header-inner {
    min-height: 68px;
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px
  }
  .pp-menu-toggle {
    display: block;
    margin-left: auto
  }
  .pp-site-nav {
    display: none;
    width: 100%;
    overflow: visible;
    padding: 0 0 10px
  }
  .pp-site-header.is-menu-open .pp-site-nav {
    display: block
  }
  .pp-site-menu {
    display: block
  }
  .pp-site-menu li+li {
    border-top: 1px solid var(--pp-line)
  }
  .pp-site-menu a {
    display: block;
    padding: 13px 4px
  }
  .pp-site-header.is-menu-open .pp-menu-toggle span:nth-child(1) {
    transform: translateY(7px) rotate(45deg)
  }
  .pp-site-header.is-menu-open .pp-menu-toggle span:nth-child(2) {
    opacity: 0
  }
  .pp-site-header.is-menu-open .pp-menu-toggle span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg)
  }
}
@media(max-width:575px) {
  .pp-event-showcase,.pp-event-grid {
    grid-template-columns: 1fr
  }
  .pp-latest-card {
    grid-column: 1;
    grid-template-columns: 1fr;
    grid-template-rows: auto
  }
  .pp-latest-copy {
    grid-column: 1;
    grid-row: 1;
    padding: 26px 22px
  }
  .pp-latest-photo {
    grid-column: 1;
    grid-row: 2;
    aspect-ratio: 4/5
  }
  .pp-latest-pickup {
    grid-column: 1;
    grid-row: 3
  }
  .pp-latest-copy h2 {
    font-size: 25px
  }
  .pp-latest-link {
    width: 100%;
    justify-content: center;
    padding: 13px 18px
  }
  .pp-event-card {
    display: grid;
    grid-template-columns: minmax(130px,42%) 1fr;
    align-items: stretch
  }
  .pp-event-card-photo {
    height: 100%;
    min-height: 220px;
    aspect-ratio: auto
  }
  .pp-event-card-body {
    display: flex;
    flex-direction: column
  }
  .pp-event-card-body>span {
    margin-top: auto
  }
  .pp-event-lead-copy {
    padding: 34px 24px
  }
  .pp-event-lead-photo {
    min-height: 0;
    aspect-ratio: 4/5
  }
  .pp-event-facts {
    margin-top: 22px
  }
  .pp-pickup-box {
    margin-top: 28px
  }
}
/* Unified fixed pages. */
.pp-fixed-page {
  padding-bottom: 100px
}
.pp-page-hero {
  max-width: calc(var(--pp-max) - 48px);
  min-height: 300px;
  margin: 0 auto 58px;
  padding: clamp(45px,7vw,82px);
  display: flex;
  align-items: center;
  background: linear-gradient(125deg,#fff 0%,#f8ecee 52%,#eef3f8 100%);
  border: 1px solid var(--pp-line);
  overflow: hidden
}
.pp-page-hero.has-image {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  padding: 0
}
.pp-page-hero-copy {
  padding: 0
}
.pp-page-hero.has-image .pp-page-hero-copy {
  padding: clamp(40px,6vw,72px)
}
.pp-page-hero h1 {
  font-size: clamp(36px,4.5vw,58px);
  line-height: 1.3;
  margin: 16px 0 0
}
.pp-page-hero p {
  max-width: 560px;
  margin: 18px 0 0;
  color: var(--pp-muted)
}
.pp-page-hero-image {
  height: 100%;
  min-height: 390px
}
.pp-page-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover
}
.pp-page-content {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 24px;
  color: var(--pp-ink)
}
.pp-page-content>*:first-child {
  margin-top: 0
}
.pp-page-content h2 {
  margin: 2.4em 0 .8em;
  padding-bottom: .45em;
  border-bottom: 2px solid var(--pp-line);
  font-size: clamp(26px,3vw,34px)
}
.pp-page-content h2:after {
  content: "";
  display: block;
  width: 64px;
  height: 3px;
  margin: calc(.45em + 2px) 0 -webkit-calc(-.45em - 5px);
  margin-bottom: calc(-.45em - 5px);
  background: linear-gradient(90deg,var(--pp-pink),var(--pp-violet))
}
.pp-page-content h3 {
  margin: 2em 0 .7em;
  font-size: 23px
}
.pp-page-content p,.pp-page-content li {
  line-height: 1.95
}
.pp-page-content a {
  color: var(--pp-pink);
  text-decoration: underline;
  text-underline-offset: 3px
}
.pp-page-content img {
  border-radius: 2px
}
.pp-page-content table {
  width: 100%;
  border-collapse: collapse
}
.pp-page-content th,.pp-page-content td {
  padding: 13px 15px;
  border: 1px solid var(--pp-line)
}
.pp-page-content th {
  background: var(--pp-soft)
}
.pp-page-content input:not([type=checkbox]):not([type=radio]):not([type=submit]),.pp-page-content textarea,.pp-page-content select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--pp-line);
  border-radius: 3px;
  background: #fff
}
.pp-page-content input[type=submit],.pp-page-content button[type=submit] {
  border: 0;
  border-radius: 999px;
  padding: 13px 25px;
  background: linear-gradient(135deg,var(--pp-pink),var(--pp-violet));
  color: #fff;
  font-weight: 800
}
.pp-page-content .wp-block-group {
  box-sizing: border-box
}
@media(max-width:800px) {
  .pp-page-hero.has-image {
    grid-template-columns: 1fr
  }
  .pp-page-hero-image {
    min-height: 320px;
    grid-row: 1
  }
  .pp-page-hero-copy {
    grid-row: 2
  }
  .pp-page-hero {
    margin-bottom: 42px
  }
}
@media(max-width:575px) {
  .pp-fixed-page {
    padding-bottom: 70px
  }
  .pp-page-hero {
    min-height: 240px;
    margin: 0 14px 38px;
    padding: 38px 24px
  }
  .pp-page-hero.has-image {
    padding: 0
  }
  .pp-page-hero.has-image .pp-page-hero-copy {
    padding: 34px 24px
  }
  .pp-page-hero-image {
    min-height: 260px
  }
  .pp-page-content {
    padding: 0 18px
  }
  .pp-page-content h2 {
    font-size: 26px
  }
}
.pp-global-back {
  max-width: var(--pp-max);
  margin: 0 auto;
  padding: 0 24px 72px;
  text-align: center
}
.pp-global-back:before {
  content: "";
  display: block;
  margin-bottom: 34px;
  border-top: 1px solid var(--pp-line)
}
.pp-global-back .pp-back-link {
  display: inline-flex;
  justify-content: center;
  min-width: 220px;
  padding: 12px 22px;
  border: 1px solid var(--pp-ink);
  border-radius: 999px;
  background: #fff;
  color: var(--pp-ink);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none
}
.pp-global-back .pp-back-link:hover {
  border-color: var(--pp-pink);
  background: var(--pp-pink);
  color: #fff
}
@media(max-width:575px) {
  .pp-global-back {
    padding: 0 14px 55px
  }
  .pp-global-back .pp-back-link {
    width: 100%
  }
}
.pp-model-identity {
  margin: 9px 0 0
}
.pp-model-types {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 8px
}
.pp-model-type {
  display: inline-flex;
  align-items: center;
  padding: 4px 9px;
  border: 1px solid var(--pp-type-color,#686371);
  border-radius: 4px;
  background: var(--pp-type-bg,#f4f2f6);
  color: var(--pp-type-color,#686371);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25
}
.pp-model-card .pp-model-identity {
  margin: 9px 18px 0
}
.pp-model-card .pp-model-types {
  margin-bottom: 7px
}
.pp-model-card .pp-model-role {
  margin: 0
}
.pp-model-copy .pp-model-role {
  margin: 0;
  color: var(--pp-muted)
}
.pp-model-copy .pp-model-description {
  margin-top: 1.5em
}
.pp-model-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin-top: 20px
}
.pp-model-filter>span {
  margin-right: 3px;
  color: var(--pp-muted);
  font-size: 13px;
  font-weight: 700
}
.pp-model-filter button {
  appearance: none;
  border: 1px solid var(--pp-type-color,#686371);
  border-radius: 4px;
  background: var(--pp-type-bg,#f4f2f6);
  color: var(--pp-type-color,#686371);
  padding: 6px 11px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  cursor: pointer;
  transition: box-shadow .2s,transform .2s
}
.pp-model-filter button:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 14px rgba(43,38,56,.1)
}
.pp-model-filter button.is-active {
  box-shadow: 0 0 0 2px var(--pp-paper),0 0 0 4px var(--pp-type-color,#686371)
}
.pp-model-card[hidden] {
  display: none!important
}
.pp-model-list-heading {
  display: block
}
.pp-model-list-description {
  margin: 12px 0 0;
  color: var(--pp-muted);
  font-size: 14px
}
.pp-model-list-heading .pp-model-filter {
  margin-top: 18px
}
.pp-model-filter-empty {
  margin: 28px 0 0;
  padding: 24px;
  border: 1px solid var(--pp-line);
  background: #fff;
  color: var(--pp-muted);
  text-align: center
}
@media(max-width:575px) {
  .pp-model-filter {
    gap: 6px;
    margin-top: 16px
  }
  .pp-model-filter>span {
    flex-basis: 100%
  }
  .pp-model-filter button {
    padding: 6px 9px
  }
}
/* Upcoming event information. */
.pp-upcoming-section {
  padding-bottom: 78px
}
.pp-record-section {
  padding-top: 78px;
  border-top: 1px solid var(--pp-line)
}
.pp-upcoming-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 24px
}
.pp-upcoming-card {
  display: grid;
  grid-template-columns: 180px minmax(0,1fr);
  min-height: 300px;
  overflow: hidden;
  border: 1px solid var(--pp-line);
  background: #fff;
  color: var(--pp-ink);
  transition: transform .2s,box-shadow .2s
}
.pp-upcoming-card:hover {
  color: var(--pp-ink);
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(6,79,145,.13)
}
.pp-upcoming-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 30px 18px;
  background: linear-gradient(150deg,var(--pp-pink),var(--pp-violet));
  color: #fff;
  text-align: center
}
.pp-upcoming-date span {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .12em
}
.pp-upcoming-date strong {
  font-size: 48px;
  line-height: 1.15;
  letter-spacing: .02em
}
.pp-upcoming-date em {
  font-size: 13px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: .12em
}
.pp-upcoming-card-body {
  display: flex;
  flex-direction: column;
  padding: 30px
}
.pp-upcoming-status {
  align-self: flex-start;
  padding: 5px 10px;
  border: 1px solid var(--pp-pink);
  border-radius: 999px;
  color: var(--pp-pink);
  font-size: 11px;
  font-weight: 900
}
.pp-upcoming-card-body h3 {
  margin: 15px 0 11px;
  font-size: 24px;
  line-height: 1.45
}
.pp-upcoming-card-body>p {
  margin: 0;
  color: var(--pp-muted);
  font-size: 13px
}
.pp-upcoming-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 18px;
  margin: 17px 0;
  color: var(--pp-muted);
  font-size: 12px
}
.pp-upcoming-card-body>b {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--pp-line);
  color: var(--pp-pink);
  font-size: 13px
}
.pp-upcoming-single {
  padding-bottom: 100px
}
.pp-upcoming-hero {
  max-width: calc(var(--pp-max) - 48px);
  margin: 0 auto 34px;
  display: grid;
  grid-template-columns: minmax(260px,.65fr) minmax(0,1.35fr);
  border: 1px solid var(--pp-line);
  background: linear-gradient(130deg,#f8ecee,#eef3f8)
}
.pp-upcoming-hero-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 430px;
  padding: 40px;
  background: linear-gradient(150deg,var(--pp-pink),var(--pp-violet));
  color: #fff;
  text-align: center
}
.pp-upcoming-hero-date span {
  font-size: 19px;
  font-weight: 800;
  letter-spacing: .14em
}
.pp-upcoming-hero-date strong {
  font-size: clamp(66px,8vw,108px);
  line-height: 1.05;
  letter-spacing: -.02em
}
.pp-upcoming-hero-date em {
  font-size: 16px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .18em
}
.pp-upcoming-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(40px,6vw,76px)
}
.pp-upcoming-hero-copy h1 {
  margin: 18px 0 20px;
  font-size: clamp(36px,4.5vw,58px);
  line-height: 1.3
}
.pp-upcoming-hero-copy p {
  max-width: 650px;
  margin: 0;
  color: var(--pp-muted);
  line-height: 1.95
}
.pp-upcoming-details,.pp-upcoming-extra,.pp-upcoming-cast {
  max-width: calc(var(--pp-max) - 48px);
  margin: 0 auto;
  padding: 54px 50px;
  border: 1px solid var(--pp-line);
  background: #fff
}
.pp-upcoming-details-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 36px
}
.pp-upcoming-detail-item+.pp-upcoming-detail-item {
  border-left: 1px solid var(--pp-line);
  padding-left: 36px
}
.pp-upcoming-detail-item>span {
  display: block;
  margin-bottom: 8px;
  color: var(--pp-pink);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em
}
.pp-upcoming-detail-item>strong {
  display: block;
  font-size: 20px;
  line-height: 1.6
}
.pp-upcoming-detail-item>p {
  margin: 6px 0 0;
  color: var(--pp-muted);
  font-size: 14px
}
.pp-upcoming-extra,.pp-upcoming-cast {
  margin-top: 34px
}
.pp-upcoming-extra {
  line-height: 1.8
}
.pp-upcoming-guide h2 {
  margin: 2em 0 .7em;
  padding: 10px 14px;
  border-left: 5px solid var(--pp-pink);
  background: #f5f8fb;
  font-size: clamp(20px,2.2vw,26px);
  line-height: 1.45
}
.pp-upcoming-guide h2:first-child {
  margin-top: 0
}
.pp-upcoming-guide h3 {
  margin: 1.7em 0 .55em;
  color: #17243a;
  font-size: clamp(16px,1.8vw,20px);
  line-height: 1.5
}
.pp-upcoming-guide p,.pp-upcoming-guide li {
  color: #405167;
  font-size: 14px;
  line-height: 1.8
}
.pp-ticket-cta {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  max-width: calc(var(--pp-max) - 48px);
  margin: 24px auto 0;
  padding: 28px 32px;
  overflow: hidden;
  border: 1px solid rgba(173,123,0,.28);
  border-radius: 12px;
  background: linear-gradient(135deg,#fff8d8 0%,#f6d36b 58%,#edb949 100%);
  box-shadow: 0 14px 34px rgba(173,123,0,.2);
  color: var(--pp-ink)
}
.pp-ticket-cta::before {
  position: absolute;
  z-index: -1;
  top: -90px;
  right: 16%;
  width: 210px;
  height: 210px;
  border-radius: 50%;
  background: rgba(255,255,255,.28);
  content: "";
  pointer-events: none
}
.pp-ticket-cta-copy {
  flex: 1 1 260px;
  min-width: 0
}
.pp-ticket-cta-copy>span {
  display: block;
  margin-bottom: 5px;
  color: #9b2700;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em
}
.pp-ticket-cta-copy>strong {
  display: block;
  font-size: clamp(22px,2.5vw,31px);
  line-height: 1.35
}
.pp-ticket-cta-copy>p {
  margin: 8px 0 0;
  color: rgba(23,36,58,.78);
  font-size: 13px;
  line-height: 1.65
}
.pp-ticket-sales-period {
  flex: 0 1 330px;
  min-width: 0;
  padding: 2px 28px;
  border-right: 1px solid rgba(23,36,58,.2);
  border-left: 1px solid rgba(23,36,58,.2)
}
.pp-ticket-sales-period>span {
  display: block;
  margin-bottom: 6px;
  color: #9b2700;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em
}
.pp-ticket-sales-period>strong {
  display: block;
  color: var(--pp-ink);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  line-height: 1.7;
  white-space: nowrap
}
.pp-ticket-terms-notice {
  margin: 10px 0 0;
  padding: 8px 10px;
  border: 1px solid rgba(155,39,0,.45);
  border-radius: 5px;
  background: rgba(255,255,255,.35);
  color: #17243a;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center
}
.pp-ticket-terms-notice a {
  color: #8b2100;
  font-weight: 900;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px
}
.pp-ticket-terms-notice a:hover,.pp-ticket-terms-notice a:focus-visible {
  color: #b12b00;
  text-decoration-thickness: 2px
}
.pp-upcoming-guide {
  scroll-margin-top: 24px
}
.pp-ticket-cta-actions {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 10px;
  width: 290px
}
.pp-ticket-cta-button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  padding: 14px 20px;
  border: 1px solid rgba(255,255,255,.6);
  border-radius: 999px;
  background: linear-gradient(135deg,#e60012,#b9000f);
  box-shadow: 0 10px 24px rgba(230,0,18,.28);
  color: #fff;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.3;
  text-decoration: none;
  transition: transform .2s ease,box-shadow .2s ease,filter .2s ease
}
.pp-ticket-cta-actions .pp-ticket-cta-button {
  justify-content: center;
  width: 100%
}
.pp-ticket-cta-button-store {
  background: linear-gradient(135deg,#064f91,#0b78be);
  box-shadow: 0 10px 24px rgba(6,79,145,.28)
}
.pp-ticket-cta-button:hover,.pp-ticket-cta-button:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(230,0,18,.38);
  color: #fff;
  filter: saturate(1.08);
  text-decoration: none
}
.pp-ticket-cta-button-store:hover,.pp-ticket-cta-button-store:focus-visible {
  background: linear-gradient(135deg,#064f91,#0b78be);
  box-shadow: 0 14px 30px rgba(6,79,145,.38)
}
.pp-ticket-cta-button:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px
}
.pp-ticket-cta-button svg {
  flex: 0 0 auto
}
.pp-ticket-cta-button b {
  font-size: 19px;
  transition: transform .2s ease
}
.pp-ticket-cta-button:hover b,.pp-ticket-cta-button:focus-visible b {
  transform: translateX(3px)
}
.pp-ticket-cta-button.is-disabled,
.pp-ticket-cta-button.is-disabled:hover {
  background: linear-gradient(135deg,#9ca3ad,#737b87);
  box-shadow: none;
  color: #fff;
  cursor: default;
  filter: none;
  transform: none;
  transition: none
}
@media(max-width:991px) {
  .pp-ticket-cta {
    flex-wrap: wrap
  }
  .pp-ticket-sales-period {
    flex: 1 1 300px;
    border-right: 0
  }
  .pp-ticket-cta-button {
    width: 100%;
    justify-content: center
  }
  .pp-ticket-cta-actions {
    width: 100%
  }
}
.pp-cast-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 16px
}
.pp-cast-card {
  display: grid;
  grid-template-columns: minmax(100px,42%) minmax(0,1fr);
  min-height: 205px;
  overflow: hidden;
  border: 1px solid var(--pp-line);
  background: var(--pp-paper)
}
.pp-cast-photo {
  display: block;
  height: 100%;
  min-height: 205px;
  overflow: hidden;
  background: var(--pp-soft)
}
.pp-cast-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top
}
.pp-cast-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 16px 14px
}
.pp-cast-copy .pp-model-types {
  gap: 4px;
  margin-bottom: 5px
}
.pp-cast-copy .pp-model-type {
  padding: 3px 6px;
  font-size: 10px
}
.pp-cast-copy h3 {
  margin: 3px 0 0;
  font-size: 17px;
  line-height: 1.45
}
.pp-cast-copy h3 a {
  color: var(--pp-ink)
}
.pp-cast-concept {
  margin: 11px 0 0;
  padding-top: 10px;
  border-top: 1px solid var(--pp-line);
  color: var(--pp-muted);
  font-size: 11px;
  line-height: 1.6
}
.pp-cast-concept span {
  display: block;
  margin-bottom: 3px;
  color: var(--pp-pink);
  font-size: 10px;
  font-weight: 800
}
.pp-cast-concept p {
  margin: 0
}
.pp-cast-profile-link {
  align-self: flex-start;
  margin-top: auto;
  padding-top: 10px;
  color: var(--pp-pink);
  font-size: 10px;
  font-weight: 900;
  border-bottom: 1px solid currentColor
}
.pp-cast-notice {
  margin: 24px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--pp-line);
  color: var(--pp-muted);
  font-size: 12px;
  line-height: 1.8
}
.pp-cast-empty {
  margin: 0;
  color: var(--pp-muted)
}
@media(max-width:991px) {
  .pp-upcoming-grid {
    grid-template-columns: 1fr
  }
  .pp-upcoming-hero {
    grid-template-columns: minmax(210px,.6fr) 1.4fr
  }
  .pp-upcoming-details-grid {
    grid-template-columns: 1fr
  }
  .pp-upcoming-detail-item+.pp-upcoming-detail-item {
    border-left: 0;
    border-top: 1px solid var(--pp-line);
    padding: 24px 0 0
  }
  .pp-cast-grid {
    grid-template-columns: repeat(2,minmax(0,1fr))
  }
}
@media(max-width:575px) {
  .pp-upcoming-section {
    padding-bottom: 60px
  }
  .pp-record-section {
    padding-top: 60px
  }
  .pp-upcoming-card {
    grid-template-columns: 110px minmax(0,1fr);
    min-height: 260px
  }
  .pp-upcoming-date {
    padding: 22px 10px
  }
  .pp-upcoming-date span {
    font-size: 11px
  }
  .pp-upcoming-date strong {
    font-size: 34px
  }
  .pp-upcoming-card-body {
    padding: 22px 18px
  }
  .pp-upcoming-card-body h3 {
    font-size: 20px
  }
  .pp-upcoming-hero {
    grid-template-columns: 1fr;
    margin: 0 14px 24px
  }
  .pp-upcoming-hero-date {
    min-height: 230px
  }
  .pp-upcoming-hero-date strong {
    font-size: 72px
  }
  .pp-upcoming-hero-copy {
    padding: 34px 24px
  }
  .pp-upcoming-hero-copy h1 {
    font-size: 34px
  }
  .pp-upcoming-details,.pp-upcoming-extra,.pp-upcoming-cast {
    margin-left: 14px;
    margin-right: 14px;
    padding: 36px 24px
  }
  .pp-ticket-cta {
    align-items: stretch;
    flex-direction: column;
    gap: 20px;
    margin: 20px 14px 0;
    padding: 26px 22px
  }
  .pp-ticket-cta-copy,.pp-ticket-sales-period {
    flex: none
  }
  .pp-ticket-cta-actions {
    width: 100%
  }
  .pp-ticket-sales-period {
    width: 100%;
    padding: 18px 0;
    border-top: 1px solid rgba(255,255,255,.2);
    border-bottom: 1px solid rgba(255,255,255,.2);
    border-left: 0
  }
  .pp-ticket-sales-period>span,.pp-ticket-sales-period>strong {
    text-align: center
  }
  .pp-ticket-sales-period>strong {
    font-size: 14px;
    white-space: normal
  }
  .pp-ticket-sales-period time {
    white-space: nowrap
  }
  .pp-ticket-sales-period time:last-child {
    display: block
  }
  .pp-ticket-cta-button {
    justify-content: center;
    width: 100%
  }
  .pp-cast-grid {
    grid-template-columns: 1fr;
    gap: 10px
  }
  .pp-cast-card {
    grid-template-columns: minmax(105px,38%) minmax(0,1fr);
    min-height: 190px
  }
  .pp-cast-photo {
    min-height: 190px
  }
  .pp-cast-copy {
    padding: 14px 12px
  }
  .pp-cast-copy h3 {
    font-size: 17px
  }
  .pp-cast-copy .pp-model-type {
    font-size: 10px;
    padding: 3px 6px
  }
}
/* Upcoming-event cast cards and detail modal. */
.pp-cast-role {
  margin: 4px 0 0;
  color: var(--pp-muted);
  font-size: 11px;
  line-height: 1.55
}
.pp-cast-pr {
  margin: 10px 0 0;
  padding-top: 10px;
  border-top: 1px solid var(--pp-line);
  color: var(--pp-muted);
  font-size: 11px;
  line-height: 1.7
}
.pp-cast-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-top: auto;
  padding-top: 14px
}
.pp-cast-detail-button {
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 7px 12px;
  background: linear-gradient(135deg,var(--pp-pink),var(--pp-violet));
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.25;
  cursor: pointer;
  box-shadow: 0 5px 14px rgba(6,79,145,.16)
}
.pp-cast-detail-button:hover {
  filter: brightness(.96)
}
.pp-cast-profile-link {
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--pp-muted);
  font-size: 10px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px
}
.pp-cast-modal {
  position: fixed;
  z-index: 99999;
  inset: 0;
  display: none;
  place-items: center;
  padding: 24px;
  background: rgba(24,20,35,.72);
  backdrop-filter: blur(5px)
}
.pp-cast-modal.is-open {
  display: grid
}
.pp-cast-modal-card {
  position: relative;
  width: min(920px,100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  background: var(--pp-paper);
  box-shadow: 0 26px 80px rgba(0,0,0,.3)
}
.pp-cast-modal-close {
  position: absolute;
  z-index: 2;
  top: 14px;
  right: 14px;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--pp-line);
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  color: var(--pp-ink);
  font-size: 24px;
  line-height: 1;
  cursor: pointer
}
.pp-cast-modal-layout {
  display: grid;
  grid-template-columns: minmax(260px,.8fr) minmax(0,1.2fr);
  min-height: 560px
}
.pp-cast-modal-photo {
  min-height: 560px;
  background: var(--pp-soft)
}
.pp-cast-modal-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top
}
.pp-cast-modal-copy {
  padding: 52px 48px
}
.pp-cast-modal-copy h2 {
  margin: 8px 0 2px;
  padding-bottom: 2px;
  font-size: 34px;
  line-height: 1.35;
  border-bottom: none;
}
.pp-cast-modal-role {
  margin: 0;
  color: var(--pp-muted);
}
.pp-cast-modal-copy section {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--pp-line)
}
.pp-cast-modal-copy section h3 {
  margin: 0 0 8px;
  color: var(--pp-pink);
  font-size: 13px;
  line-height: 1.5
}
.pp-cast-modal-copy section p {
  margin: 0;
  color: var(--pp-ink);
  font-size: 14px;
  line-height: 1.9
}
.pp-cast-modal-profile {
  display: inline-block;
  margin-top: 28px;
  color: var(--pp-muted);
  font-size: 12px;
  text-decoration: underline;
  text-underline-offset: 4px
}
.pp-cast-modal-footer {
  padding: 0 48px 40px;
  background: var(--pp-paper);
  text-align: center
}
.pp-cast-modal-footer::before {
  display: block;
  margin-bottom: 28px;
  border-top: 1px solid var(--pp-line);
  content: ""
}
.pp-cast-modal-bottom-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  padding: 12px 22px;
  border: 1px solid var(--pp-ink);
  border-radius: 999px;
  background: #fff;
  color: var(--pp-ink);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
  cursor: pointer;
  transition: border-color .2s ease,background-color .2s ease,color .2s ease
}
.pp-cast-modal-bottom-close:hover,.pp-cast-modal-bottom-close:focus-visible {
  border-color: var(--pp-pink);
  background: var(--pp-pink);
  color: #fff
}
.pp-cast-modal-bottom-close:focus-visible {
  outline: 3px solid rgba(206,73,159,.25);
  outline-offset: 3px
}
@media(max-width:700px) {
  .pp-cast-modal {
    padding: 12px
  }
  .pp-cast-modal-card {
    max-height: calc(100vh - 24px)
  }
  .pp-cast-modal-layout {
    grid-template-columns: 1fr;
    min-height: 0
  }
  .pp-cast-modal-photo {
    height: auto;
    min-height: 0;
    aspect-ratio: 3/4
  }
  .pp-cast-modal-copy {
    padding: 34px 24px 38px
  }
  .pp-cast-modal-footer {
    padding: 0 24px 32px
  }
  .pp-cast-modal-bottom-close {
    width: 100%
  }
  .pp-cast-modal-copy h2 {
    font-size: 28px
  }
  .pp-cast-modal-close {
    top: 10px;
    right: 10px
  }
}
/* Compact cast list; event-specific information opens in the modal. */
.pp-cast-card {
  height: auto;
  min-height: 220px
}
.pp-cast-photo {
  position: relative;
  height: auto;
  min-height: 220px
}
.pp-cast-photo img {
  position: absolute;
  inset: 0;
  object-position: center top
}
.pp-cast-actions {
  align-items: center;
  text-align: center
}
.pp-cast-detail-button {
  padding: 9px 18px;
  font-size: 11px
}
.pp-cast-actions .pp-cast-profile-link {
  align-self: center
}
@media(max-width:575px) {
  .pp-cast-card,.pp-cast-photo {
    height: auto;
    min-height: 210px
  }
}
/* Keep the model portrait compact on profile pages. */
.pp-model-profile {
  grid-template-columns: minmax(260px,360px) minmax(0,1fr)
}
.pp-model-photo {
  width: 100%;
  max-width: 360px
}
.pp-model-photo img {
  width: 100%;
  height: auto;
  object-fit: contain
}
@media(max-width:991px) {
  .pp-model-profile {
    grid-template-columns: 1fr
  }
  .pp-model-photo {
    margin: 0 auto
  }
}
/* Give both cast-card actions equal visual weight with distinct colors. */
.pp-cast-actions {
  gap: 7px
}
.pp-cast-actions .pp-cast-detail-button,.pp-cast-actions .pp-cast-profile-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 124px;
  padding: 9px 16px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none
}
.pp-cast-actions .pp-cast-profile-link {
  border: 1px solid var(--pp-violet);
  background: #f4f1ff;
  color: var(--pp-violet)
}
.pp-cast-actions .pp-cast-profile-link:hover {
  background: var(--pp-violet);
  color: #fff
}
/* Match both cast-card buttons exactly, regardless of label length. */
.pp-cast-actions .pp-cast-detail-button,.pp-cast-actions .pp-cast-profile-link {
  width: 142px;
  min-width: 142px;
  height: 34px;
  padding: 0 12px;
  border: 0;
  background: linear-gradient(135deg,var(--pp-pink),var(--pp-violet));
  color: #fff;
  box-shadow: 0 5px 14px rgba(6,79,145,.16)
}
.pp-cast-actions .pp-cast-detail-button:hover,.pp-cast-actions .pp-cast-profile-link:hover {
  background: linear-gradient(135deg,var(--pp-pink),var(--pp-violet));
  color: #fff;
  filter: brightness(.96)
}
/* Event subtitle and combined model filters. */
.pp-event-subtitle {
  margin: -8px 0 18px!important;
  color: var(--pp-violet)!important;
  font-size: clamp(16px,1.7vw,22px)!important;
  font-weight: 800;
  line-height: 1.6!important
}
.pp-upcoming-hero-copy .pp-event-subtitle+ p {
  margin-top: 0
}
.pp-model-filters {
  display: grid;
  gap: 10px;
  margin-top: 18px
}
.pp-model-filters .pp-model-filter {
  margin-top: 0
}
.pp-model-filters .pp-model-filter:first-child button {
  --pp-type-color: #6e57d9;
  --pp-type-bg: #f2efff
}
@media(max-width:575px) {
  .pp-event-subtitle {
    margin: -4px 0 16px!important;
    font-size: 16px!important
  }
}
/* Keep event titles compact and show full event summaries in list cards. */
.pp-upcoming-hero-copy h1 {
  font-size: clamp(28px,3.1vw,42px);
  line-height: 1.35;
  letter-spacing: -.025em
}
.pp-event-lead-copy h1 {
  font-size: clamp(28px,3vw,40px);
  line-height: 1.35;
  letter-spacing: -.02em
}
.pp-upcoming-card-body>p {
  white-space: normal;
  overflow: visible;
  text-overflow: clip
}
@media(max-width:575px) {
  .pp-upcoming-hero-copy h1,.pp-event-lead-copy h1 {
    font-size: 6vw;
    line-height: 1.4;
    letter-spacing: -.015em;
  }
}
/* Show event subtitles consistently on event list cards. */
.pp-upcoming-card-body .pp-upcoming-card-subtitle {
  margin: -3px 0 12px;
  color: var(--pp-violet);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.55
}
.pp-upcoming-card-body .pp-upcoming-card-summary {
  margin: 0;
  color: var(--pp-muted);
  font-size: 13px;
  line-height: 1.75
}
.pp-event-card-subtitle,.pp-latest-subtitle {
  color: var(--pp-violet)!important;
  font-weight: 800;
  line-height: 1.55
}
.pp-event-card-body .pp-event-card-subtitle {
  margin: -7px 0 10px;
  font-size: 13px
}
.pp-latest-copy .pp-latest-subtitle {
  margin: -8px 0 14px;
  font-size: 14px
}
@media(max-width:575px) {
  .pp-upcoming-card-body .pp-upcoming-card-subtitle {
    font-size: 13px
  }
  .pp-event-card-body .pp-event-card-subtitle {
    margin: -4px 0 8px;
    font-size: 12px
  }
  .pp-latest-copy .pp-latest-subtitle {
    margin: -6px 0 12px;
    font-size: 13px
  }
}
