@charset "UTF-8";

/* ==============================
  Special Talk / TOP page
============================== */
:root {
  --special-talk-gold: #b58b43;
  --special-talk-ink: #050505;
  --special-talk-frame: #666;
}

/* ==============================
  PC: first-view banner
============================== */
@media screen and (min-width: 768px) {
  .InterviewFvBanner {
    position: absolute;
    left: 1.75vw;
    bottom: 1.75vw;
    z-index: 5;
    display: block;
    width: 30vw;
    height: 19.2vw;
    padding: .54vw .96vw .66vw;
    overflow: hidden;
    border: .072vw solid rgba(34, 26, 25, .62);
    background: #fff;
    box-shadow: 0 .54vw 1.62vw rgba(0, 0, 0, .22);
    color: var(--special-talk-ink);
    text-decoration: none;
    box-sizing: border-box;
    transition: transform .3s ease, box-shadow .3s ease;
  }

  .InterviewFvBanner:hover,
  .InterviewFvBanner:focus-visible {
    opacity: 1;
    transform: translateY(-.3vw);
    box-shadow: 0 .9vw 2.16vw rgba(0, 0, 0, .3);
    outline: .12vw solid rgba(255, 255, 255, .88);
    outline-offset: .192vw;
  }

  .InterviewFvBanner__titleImage {
    display: block;
    width: 100%;
    height: auto;
  }

  .InterviewFvBanner__divider {
    display: block;
    width: calc(100% + 1.92vw);
    height: .2vw;
    margin-left: -.96vw;
    background: #3f3f3f;
  }

  .InterviewFvBanner__people {
    display: grid;
    grid-template-columns: 10.8vw 3.4vw 10.8vw;
    justify-content: space-between;
    align-items: end;
    padding: .65vw .3vw 0;
  }

  .InterviewFvBanner__person {
    display: grid;
    min-width: 0;
    grid-template-rows: auto 1.22vw 9vw;
    row-gap: .1vw;
    align-items: end;
  }

  .InterviewFvBanner__name {
    overflow: hidden;
    font-family: 'Noto Serif JP', serif;
    font-size: 1.7vw;
    font-weight: 500;
    line-height: 1.18;
    letter-spacing: .045em;
    white-space: nowrap;
  }

  .InterviewFvBanner__roman,
  .InterviewFvBanner__role {
    align-self: start;
    overflow: hidden;
    font-family: 'Noto Serif JP', serif;
    font-size: .6vw;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: .015em;
    white-space: nowrap;
  }

  .InterviewFvBanner__person img {
    display: block;
    width: 10.8vw;
    height: 9vw;
    margin: 0;
    object-fit: cover;
  }

  .InterviewFvBanner__person:first-child img {
    object-position: 52% 25%;
  }

  .InterviewFvBanner__person:last-child img {
    object-position: 50% 22%;
  }

  .InterviewFvBanner__cross,
  .InterviewPromo__cross,
  .SpecialTalkSection__cross {
    position: relative;
    display: block;
    align-self: center;
    width: 100%;
    aspect-ratio: 1;
  }

  .InterviewFvBanner__cross {
    align-self: end;
    justify-self: center;
    width: 3.4vw;
    margin-bottom: 2.8vw;
  }

  .InterviewFvBanner__cross::before,
  .InterviewFvBanner__cross::after,
  .InterviewPromo__cross::before,
  .InterviewPromo__cross::after,
  .SpecialTalkSection__cross::before,
  .SpecialTalkSection__cross::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 125%;
    height: .055vw;
    background: #707070;
    transform-origin: center;
  }

  .InterviewFvBanner__cross::before,
  .InterviewFvBanner__cross::after {
    width: 100%;
    height: .075vw;
  }

  .InterviewFvBanner__cross::before,
  .InterviewPromo__cross::before,
  .SpecialTalkSection__cross::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .InterviewFvBanner__cross::after,
  .InterviewPromo__cross::after,
  .SpecialTalkSection__cross::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }
}

/* ==============================
  Fixed banner: common
============================== */
.InterviewPromo {
  position: fixed;
  z-index: 9996;
  opacity: 0;
  pointer-events: none;
  will-change: transform, opacity;
}

.InterviewPromo__link {
  display: block;
  width: 100%;
  height: 100%;
  color: var(--special-talk-ink);
  text-decoration: none;
  opacity: 1;
}

.InterviewPromo__link:hover,
.InterviewPromo__link:focus-visible {
  opacity: 1;
}

/* ==============================
  PC: fixed banner
============================== */
@media screen and (min-width: 768px) {
  .InterviewPromo {
    left: 2.7vw;
    bottom: 0;
    width: 34vw;
    height: 19vw;
    background: transparent;
    transform: translateY(calc(100% + 1vw));
    transition:
      transform .52s cubic-bezier(.22, .8, .28, 1),
      opacity .28s ease;
  }

  .InterviewPromo.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(calc(100% - 8vw));
  }

  .InterviewPromo.is-visible:hover,
  .InterviewPromo.is-visible:focus-within {
    transform: translateY(0);
  }

  .InterviewPromo__link {
    background: transparent;
  }

  .InterviewPromo__desktop {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 2.1vw 0 0 0;
    background: #fff;
    clip-path: polygon(0 0, 39% 0, 42% 12.5%, 100% 12.5%, 100% 100%, 0 100%);
    filter: none;
    box-sizing: border-box;
  }

  .InterviewPromo__tab {
    position: absolute;
    top: .62vw;
    left: 1.65vw;
    z-index: 2;
    display: flex;
    align-items: center;
    width: 11.8vw;
    height: 1.45vw;
    padding: 0;
    background: transparent;
    color: #c38d3d;
    clip-path: none;
    font-family: 'Times New Roman', serif;
    font-size: 1.3vw;
    line-height: 1;
    letter-spacing: .02em;
    box-sizing: border-box;
  }

  .InterviewPromo__heading {
    position: absolute;
    top: 3.25vw;
    left: 2.1vw;
    right: 2.1vw;
    display: grid;
    grid-template-columns: 10.8vw 10.8vw;
    justify-content: space-between;
  }

  .InterviewPromo__speaker {
    display: flex;
    flex-direction: column;
    gap: .1vw;
    min-width: 0;
  }

  .InterviewPromo__speaker strong {
    overflow: hidden;
    font-family: 'Noto Serif JP', serif;
    font-size: 1.7vw;
    font-weight: 500;
    line-height: 1.22;
    letter-spacing: .055em;
    white-space: nowrap;
  }

  .InterviewPromo__speaker small {
    overflow: hidden;
    font-family: 'Noto Serif JP', serif;
    font-size: .6vw;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
  }

  .InterviewPromo__photos {
    position: absolute;
    left: 2.1vw;
    right: 2.1vw;
    bottom: 2vw;
    display: grid;
    grid-template-columns: 10.8vw 3.4vw 10.8vw;
    justify-content: space-between;
    align-items: center;
    height: 9vw;
  }

  .InterviewPromo__photos img {
    display: block;
    width: 10.8vw;
    height: 9vw;
    object-fit: cover;
  }

  .InterviewPromo__cross {
    justify-self: center;
    width: 3.4vw;
  }

  .InterviewPromo__cross::before,
  .InterviewPromo__cross::after {
    width: 100%;
    height: .075vw;
  }

  .InterviewPromo__photos img:first-child {
    object-position: 52% 24%;
  }

  .InterviewPromo__photos img:last-child {
    object-position: 50% 21%;
  }

  .InterviewPromo__link:focus-visible {
    outline: .12vw solid var(--special-talk-gold);
    outline-offset: -.85vw;
  }
}

/* ==============================
  Special Talk section: PC
============================== */
@media screen and (min-width: 768px) {
  .SpecialTalkSection {
    position: relative;
    overflow: hidden;
    background: #000;
  }

  .SpecialTalkSection__link {
    display: block;
    padding: 2.8vw 4.7vw 3.1vw;
    background: #000;
    color: #fff;
    text-decoration: none;
    opacity: 1;
  }

  .SpecialTalkSection__link:hover,
  .SpecialTalkSection__link:focus-visible {
    opacity: 1;
  }

  .SpecialTalkSection__link:focus-visible {
    outline: .12vw solid var(--special-talk-gold);
    outline-offset: -.45vw;
  }

  .SpecialTalkSection__visuals {
    display: grid;
    grid-template-columns: 1.04fr 1fr;
    column-gap: 2.65vw;
    align-items: end;
  }

  .SpecialTalkSection__profileArea {
    display: block;
    min-width: 0;
  }

  .SpecialTalkSection__title {
    position: relative;
    z-index: 2;
    display: block;
    width: 30.6vw;
    height: auto;
    margin: 0 0 -.35vw -.25vw;
  }

  .SpecialTalkSection__profileCard {
    display: grid;
    grid-template-columns: 15vw 5vw 15vw;
    justify-content: space-between;
    column-gap: 1.35vw;
    align-items: end;
    min-height: 22.6vw;
    padding: 1.15vw 2.55vw 1.2vw;
    background: #fff;
    color: var(--special-talk-ink);
    box-sizing: border-box;
  }

  .SpecialTalkSection__speaker {
    display: grid;
    min-width: 0;
    grid-template-rows: auto 1.35vw 15vw;
    align-items: end;
  }

  .SpecialTalkSection__speakerName {
    overflow: hidden;
    font-family: 'Noto Serif JP', serif;
    font-size: 2.35vw;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: .045em;
    white-space: nowrap;
  }

  .SpecialTalkSection__speakerMeta {
    align-self: start;
    overflow: hidden;
    font-family: 'Noto Serif JP', serif;
    font-size: .78vw;
    font-weight: 500;
    line-height: 1.35;
    white-space: nowrap;
  }

  .SpecialTalkSection__speaker img {
    display: block;
    width: 15vw;
    height: 15vw;
    object-fit: cover;
  }

  .SpecialTalkSection__cross {
    align-self: end;
    justify-self: center;
    width: 5vw;
    margin-bottom: 5vw;
  }

  .SpecialTalkSection__cross::before,
  .SpecialTalkSection__cross::after {
    width: 100%;
    height: .1vw;
  }

  .SpecialTalkSection__speaker:first-child img {
    object-position: 52% 22%;
  }

  .SpecialTalkSection__speaker:last-child img {
    object-position: 50% 20%;
  }

  .SpecialTalkSection__mainPhoto {
    height: 29.5vw;
    margin: 0;
    overflow: hidden;
    background: #171717;
  }

  .SpecialTalkSection__mainPhoto img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .65s ease;
  }

  .SpecialTalkSection__link:hover .SpecialTalkSection__mainPhoto img,
  .SpecialTalkSection__link:focus-visible .SpecialTalkSection__mainPhoto img {
    transform: scale(1.012);
  }

  .SpecialTalkSection__footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 3vw;
    align-items: center;
    margin-top: 2.05vw;
  }

  .SpecialTalkSection__description {
    display: block;
    color: #fff;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.1rem;
    font-weight: 400;
    line-height: 2;
    letter-spacing: .1rem;
    text-align: justify;
  }

  .SpecialTalkSection__more {
    flex: none;
  }

  .SpecialTalkSection__link:hover .SpecialTalkSection__more,
  .SpecialTalkSection__link:focus-visible .SpecialTalkSection__more {
    opacity: .85;
    transform: translateY(-1px);
  }
}

/* ==============================
  SP
============================== */
@media screen and (max-width: 767px) {
  .InterviewPromo {
    left: .5rem;
    bottom: calc(.5rem + env(safe-area-inset-bottom, 0px));
    width: calc(100vw - 1rem);
    height: clamp(96px, 27vw, 112px);
    transform: translateY(calc(100% + 2rem + env(safe-area-inset-bottom, 0px)));
    transition:
      transform .42s cubic-bezier(.22, .8, .28, 1),
      opacity .24s ease;
  }

  .InterviewPromo.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .InterviewPromo__link {
    overflow: hidden;
    border: 1px solid #6d6d6d;
    background: #fff;
    box-shadow: 0 -.35rem 1.2rem rgba(0, 0, 0, .16);
    box-sizing: border-box;
  }

  .InterviewPromo__link:focus-visible {
    outline: 2px solid var(--special-talk-gold);
    outline-offset: -3px;
  }

  .InterviewPromo__mobile {
    display: grid;
    grid-template-rows: auto auto;
    row-gap: .375rem;
    align-content: center;
    width: 100%;
    height: 100%;
    padding: .45rem;
    background: #fff;
    box-sizing: border-box;
  }

  .InterviewPromo__mobileTitle {
    display: block;
    text-align: center;
    color: #c68d3b;
    font-family: 'Times New Roman', serif;
    padding: 0;
    font-size: clamp(.78rem, 3.5vw, 1rem);
    line-height: 1.1;
    letter-spacing: .065em;
    white-space: nowrap;
  }

  .InterviewPromo__mobilePeople {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(20px, 5.5vw, 25px) minmax(0, 1fr);
    column-gap: clamp(.25rem, 1.2vw, .5rem);
    align-items: center;
    min-width: 0;
  }

  .InterviewPromo__mobilePerson {
    display: grid;
    grid-template-columns: clamp(60px, 18vw, 76px) minmax(0, 1fr);
    column-gap: clamp(.25rem, 1.3vw, .4rem);
    align-items: center;
    min-width: 0;
  }

  .InterviewPromo__mobilePhoto {
    display: block;
    width: clamp(60px, 18vw, 76px);
    height: clamp(60px, 18vw, 76px);
    object-fit: cover;
  }

  .InterviewPromo__mobilePerson:first-child .InterviewPromo__mobilePhoto {
    object-position: 52% 24%;
  }

  .InterviewPromo__mobilePerson:last-child .InterviewPromo__mobilePhoto {
    object-position: 50% 22%;
  }

  .InterviewPromo__mobileName {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  .InterviewPromo__mobileName strong {
    display: block;
    overflow: visible;
    font-family: 'Noto Serif JP', serif;
    font-size: clamp(.78rem, 3.8vw, 1.03rem);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: .015em;
    white-space: nowrap;
  }

  .InterviewPromo__mobileName small {
    display: block;
    overflow: visible;
    margin-top: .12rem;
    font-family: 'Noto Serif JP', serif;
    font-size: clamp(.43rem, 1.9vw, .58rem);
    font-weight: 500;
    line-height: 1.3;
    white-space: normal;
  }

  .InterviewPromo__mobileCross {
    position: relative;
    display: block;
    justify-self: center;
    width: clamp(20px, 5.5vw, 25px);
    aspect-ratio: 1;
  }

  .InterviewPromo__mobileCross::before,
  .InterviewPromo__mobileCross::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 125%;
    height: 1px;
    background: #777;
  }

  .InterviewPromo__mobileCross::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .InterviewPromo__mobileCross::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .SpecialTalkSection {
    position: relative;
    overflow: hidden;
    background: #000;
  }

  .SpecialTalkSection__link {
    display: block;
    padding: 3.6rem 6.5vw 4rem;
    background: #000;
    color: #fff;
    text-decoration: none;
    opacity: 1;
  }

  .SpecialTalkSection__link:hover,
  .SpecialTalkSection__link:focus-visible {
    opacity: 1;
  }

  .SpecialTalkSection__link:focus-visible {
    outline: 2px solid var(--special-talk-gold);
    outline-offset: -5px;
  }

  .SpecialTalkSection__visuals {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 1.3rem;
  }

  .SpecialTalkSection__profileArea {
    display: block;
  }

  .SpecialTalkSection__title {
    position: relative;
    z-index: 2;
    display: block;
    width: 76vw;
    height: auto;
    margin: 0 0 -.28rem -.2rem;
  }

  .SpecialTalkSection__profileCard {
    display: grid;
    grid-template-columns: 1fr 13.5vw 1fr;
    column-gap: .6rem;
    align-items: end;
    padding: 1rem 1rem 1.1rem;
    background: #fff;
    color: var(--special-talk-ink);
    box-sizing: border-box;
  }

  .SpecialTalkSection__speaker {
    display: grid;
    min-width: 0;
    grid-template-rows: auto 1.1rem 40vw;
    align-items: end;
  }

  .SpecialTalkSection__speakerName {
    overflow: hidden;
    font-family: 'Noto Serif JP', serif;
    font-size: clamp(1.15rem, 5.4vw, 1.5rem);
    font-weight: 500;
    line-height: 1.25;
    white-space: nowrap;
  }

  .SpecialTalkSection__speakerMeta {
    align-self: start;
    overflow: hidden;
    font-family: 'Noto Serif JP', serif;
    font-size: clamp(.5rem, 2.2vw, .67rem);
    font-weight: 500;
    line-height: 1.35;
    white-space: nowrap;
  }

  .SpecialTalkSection__speaker img {
    display: block;
    width: 100%;
    height: 40vw;
    object-fit: cover;
  }

  .SpecialTalkSection__speaker:first-child img {
    object-position: 52% 24%;
  }

  .SpecialTalkSection__speaker:last-child img {
    object-position: 50% 22%;
  }

  .SpecialTalkSection__cross {
    position: relative;
    display: block;
    align-self: end;
    justify-self: center;
    width: 13.5vw;
    margin-bottom: 13.25vw;
    aspect-ratio: 1;
  }

  .SpecialTalkSection__cross::before,
  .SpecialTalkSection__cross::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 1px;
    background: #777;
  }

  .SpecialTalkSection__cross::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .SpecialTalkSection__cross::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .SpecialTalkSection__mainPhoto {
    margin: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #171717;
  }

  .SpecialTalkSection__mainPhoto img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  .SpecialTalkSection__footer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 1.6rem;
  }

  .SpecialTalkSection__description {
    display: block;
    color: #fff;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: .1rem;
    text-align: justify;
  }

  .SpecialTalkSection__more {
    margin-top: 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .InterviewFvBanner,
  .InterviewPromo,
  .SpecialTalkSection__mainPhoto img {
    transition: none;
  }
}
