/* ========================================
  Base
======================================== */

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 180px;
}

body {
  margin: 0;

  color: #111;
  background: #FFE300;

  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;

  padding-bottom: 100px;
}

body.is-menu-open {
  overflow: hidden;
}

img {
  max-width: 100%;
}


/* ========================================
  Fixed Background
======================================== */

.page-bg {
  position: fixed;
  inset: 0;

  background:
    url("../img/bg-pc.webp")
    center top / cover
    no-repeat;

  z-index: -1;
}


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

.site-header {
  position: fixed;
  top: 0;
  left: 0;

  width: 100%;
  height: auto;
  /*aspect-ratio: 1920 / 376;*/
  aspect-ratio: 1920 / 300;

  overflow: hidden;

  background: #fff;

  transition:
    height 0.35s ease,
    box-shadow 0.35s ease;

  z-index: 1000;
}

.site-header.is-scrolled {
  height: 118px;
  aspect-ratio: auto;

  box-shadow:
    0 4px 16px
    rgb(0 0 0 / 10%);
}

.site-header__visual {
  position: relative;

  display: block;

  width: 100%;
  height: 100%;
}

.site-header__image {
  position: absolute;
  inset: 0;

  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;

  /*transition: opacity 0.35s ease;*/
}

.site-header__image--large {
  opacity: 1;
}

.site-header__image--compact {
  opacity: 0;
}

.site-header__image--sp {
  display: none;
}

.site-header.is-scrolled
.site-header__image--large {
  opacity: 0;
}

.site-header.is-scrolled
.site-header__image--compact {
  opacity: 1;
}


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

.menu-button {
  display: none;
}

.global-nav {
  display: none;
}


/* ========================================
  Main
======================================== */

.page {
  position: relative;

  width: min(100%, 950px);
  margin: 0 auto;
  padding-top: calc(100vw * 376 / 1920);

  z-index: 1;
}


/* ========================================
  Intro
======================================== */

.event-intro {
  position: relative;

  width: 100%;

  padding:
    52px
    28px
    64px;
}

.event-intro__inner {
  position: relative;

  width: 100%;
  max-width: 760px;
  height: 520px;
  margin: 0 auto;
}

.event-intro__copy,
.event-intro__badge {
  position: absolute;
}

.event-intro__copy {
  top: 50%;
  left: 50%;

  width: clamp(155px, 23vw, 210px);

  transform:
    translate(-50%, -50%);

  z-index: 3;
}

.event-intro__badge {
  width: clamp(145px, 21vw, 195px);

  z-index: 2;
}

.event-intro__copy img,
.event-intro__badge img {
  display: block;

  width: 100%;
  height: auto;
}

.event-intro__badge--01 {
  top: 18px;
  left: 32px;
}

.event-intro__badge--02 {
  top: 54px;
  right: 10px;
}

.event-intro__badge--03 {
  bottom: 56px;
  left: 2px;
}

.event-intro__badge--04 {
  right: 44px;
  bottom: 4px;
}


/* ========================================
  Event Content
======================================== */

.event-content {
  position: relative;

  width: calc(100% - 40px);
  margin: 0 auto;

  padding:
    44px
    0
    40px;

  border: 4px solid #fff;
  border-radius: 28px;

  background:
    repeating-linear-gradient(
      -45deg,
      #ffde00 0,
      #ffde00 10px,
      #fff03a 10px,
      #fff03a 18px
    );

  box-shadow:
    0 12px 24px
    rgb(0 0 0 / 20%);

  overflow: hidden;
}


/* ----------------------------------------
  EVENT INFORMATION
---------------------------------------- */

.event-content__header {
  margin-bottom: 18px;

  text-align: center;
}

.event-content__header p {
  display: inline-block;

  margin: 0;

  color: #10245b;

  font-size:
    clamp(18px, 3vw, 28px);

  font-weight: 800;
  letter-spacing: 0.14em;
}


/* ========================================
  Event Card
======================================== */


.event-card {
  position: relative;

  width: calc(100% - 48px);
  max-width: 880px;

  margin-bottom: 64px;

  overflow: hidden;

  background: #fff;

  box-shadow: none;
}





/* ========================================
  Event Card ICON
======================================== */
.event-card-wrap {
  position: relative;
  margin: 0 0 20%;
}


.icon{
  position:absolute;
}
.icon01-01{
  top: -47px;
  right: 21px;
}
.icon01-02{
  bottom:-61px;
  right: 21px;
}
.icon02-01{
  top: -47px;
  left: 15px;
}
.icon02-02{
  top: 89px;
  left: 27px;
}
.icon02-03{
  bottom: -58px;
  left: 0;
}
.icon03-01{
  top: -47px;
  right: 21px;
}
.icon03-02{
  bottom:-61px;
  right: 21px;
}
.icon04-01{
  top: -47px;
  left: 15px;
}
.icon04-02{
  bottom: -116px;
  right: 16px;
}









/* ----------------------------------------
  Left Card
---------------------------------------- */

.event-card--left {
  margin-right: auto;
  margin-left: 0;

  border-top: 4px solid #eb2470;
  border-right: 4px solid #eb2470;
  border-bottom: 4px solid #eb2470;
  border-left: 0;

  border-radius:
    0
    18px
    18px
    0;
}


/* ----------------------------------------
  Right Card
---------------------------------------- */

.event-card--right {
  margin-right: 0;
  margin-left: auto;

  border-top: 4px solid #eb2470;
  border-right: 0;
  border-bottom: 4px solid #eb2470;
  border-left: 4px solid #eb2470;

  border-radius:
    18px
    0
    0
    18px;
}


/* ========================================
  Date Visual
======================================== */

.event-card__date {
  display: block;

  width: 100%;

  background: #eb2470;
}

.event-card__date img {
  display: block;

  width: 100%;
  height: auto;
}


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

.event-card__body {
  padding:
    32px
    clamp(26px, 6vw, 48px)
    44px;

  background: #fff;
}


/* ========================================
  Titles
======================================== */

.event-card__title {
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 18px;

  margin-bottom: 28px;
}

.event-card__title h2 {
  margin: 0;

  color: #111;

  font-size:
    clamp(42px, 7vw, 72px);

  font-weight: 300;
  line-height: 1;
}

.event-card__title h2 span {
  display: inline-block;

  margin:
    0
    3px;

  font-size: 0.45em;
}

.event-card__burst {
  display: grid;
  place-items: center;

  width: 96px;
  aspect-ratio: 1;

  flex-shrink: 0;

  clip-path:
    polygon(
      50% 0%,
      59% 9%,
      71% 3%,
      76% 16%,
      91% 14%,
      88% 29%,
      100% 37%,
      89% 48%,
      98% 60%,
      83% 64%,
      84% 79%,
      69% 76%,
      61% 91%,
      50% 82%,
      39% 91%,
      31% 76%,
      16% 79%,
      17% 64%,
      2% 60%,
      11% 48%,
      0% 37%,
      12% 29%,
      9% 14%,
      24% 16%,
      29% 3%,
      41% 9%
    );

  color: #eb2470;
  background: #ffe000;

  font-size: 13px;
  font-weight: 800;
  line-height: 1.15;
  text-align: center;
}

.event-card__title-text {
  margin:
    0
    0
    30px;

  color: #1c1715;

  font-size:
    clamp(40px, 7vw, 68px);

  font-weight: 800;
  line-height: 1.2;
  text-align: center;
}

.event-card__title-text--hashigo span {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  margin:
    0
    8px;

  color: #e50067;

  font-size: 1.2em;
  font-weight: 400;
}

.event-card__title-text--street {
  color: #d4372e;
}


/* ========================================
  Information Box
======================================== */

.event-info-box {
  margin-bottom: 28px;

  padding:
    16px
    28px
    20px;

  border-radius: 18px;

  background: #fbe7ef;

  text-align: center;
}

.event-info-box__label {
  margin:
    0
    0
    12px;

  padding:
    5px
    12px;

  border-radius: 999px;

  color: #fff;
  background: #eb2470;

  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
}

.event-info-box__label:not(:first-child) {
  margin-top: 18px;
}

.event-info-box__text {
  margin: 0;

  color: #eb2470;

  font-size:
    clamp(15px, 2.2vw, 19px);

  font-weight: 800;
  line-height: 1.7;
}

.event-info-box__text small {
  font-size: 11px;
}


/* ========================================
  Body Text
======================================== */

.event-card__text {
  margin-bottom: 28px;
}

.event-card__text p {
  margin: 0;

  color: #181311;

  font-size:
    clamp(14px, 1.9vw, 17px);

  font-weight: 600;
  line-height: 1.9;
  letter-spacing: 0.05em;
}


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

.sample-cards {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 36px;
}

.sample-card {
  position: relative;

  min-height: 320px;

  padding:
    28px
    32px
    26px;

  overflow: hidden;

  border: 1px solid #222;

  background: #fff;
}

.sample-card__number {
  position: absolute;
  top: 0;
  right: 0;

  display: flex;
  align-items: flex-start;
  justify-content: flex-end;

  width: 72px;
  height: 72px;

  padding:
    12px
    12px
    0
    0;

  border-radius:
    0
    0
    0
    72px;

  color: #fff;
  background: #3a3635;

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

.sample-card__logo {
  color: #222;

  font-size: 22px;
  font-weight: 300;
  letter-spacing: 0.02em;
}

.sample-card__logo small {
  font-size: 0.5em;
}

.sample-card__text {
  display: flex;
  align-items: center;
  justify-content: center;

  min-height: 170px;
  margin: 0;

  color: #181311;

  font-size:
    clamp(18px, 2.2vw, 26px);

  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

.sample-card__name {
  padding-top: 20px;

  border-top: 1px solid #555;

  color: #181311;

  font-size: 17px;
  font-weight: 600;
  text-align: center;
}

/* ========================================
  Present
======================================== */

.event-present {
  margin:
    36px
    auto
    30px;

  text-align: center;
}

.event-present__lead {
  margin:
    0
    0
    8px;

  color: #eb2470;

  font-size: 18px;
  font-weight: 800;
}

.event-present__main {
  display: inline-block;

  margin: 0;

  padding:
    9px
    14px;

  color: #fff;
  background: #eb2470;

  font-size:
    clamp(19px, 3vw, 28px);

  font-weight: 800;
  line-height: 1.5;
}

.event-present__dummy {
  display: grid;
  place-items: center;

  width: min(100%, 430px);
  min-height: 210px;
  margin:
    28px
    auto
    0;

  border:
    2px dashed
    #ddd;

  color: #aaa;
}


/* ========================================
  Notes
======================================== */

.event-notes {
  margin:
    26px
    0
    0;
  padding: 0;

  list-style: none;
}

.event-notes li {
  color: #222;

  font-size: 11px;
  line-height: 1.65;
}


/* ========================================
  Step
======================================== */

.event-step {
  margin-top: 36px;

  padding-top: 36px;

  border-top:
    4px dotted
    #eb2470;
}

.event-step h3 {
  display: flex;
  align-items: center;

  gap: 12px;

  margin:
    0
    0
    28px;

  color: #eb2470;

  font-size:
    clamp(22px, 4vw, 36px);
}

.event-step h3 span {
  display: grid;
  place-items: center;

  width: 58px;
  height: 58px;

  border-radius: 50%;

  color: #fff;
  background: #eb2470;

  font-size: 11px;
  line-height: 1.15;
  text-align: center;
}


/* ========================================
  Ticket Box
======================================== */

.event-ticket-box {
  padding:
    28px
    clamp(20px, 5vw, 42px);

  border-radius: 18px;

  background: #fffadd;

  text-align: center;
}

.event-ticket-box__lead {
  margin: 0;

  color: #eb2470;

  font-size:
    clamp(17px, 2.8vw, 24px);

  font-weight: 800;
}

.event-ticket-box__sub {
  margin:
    18px
    0;

  font-weight: 700;
}

.event-ticket-box dl {
  margin:
    0
    auto;

  max-width: 450px;
}

.event-ticket-box dl div {
  display: flex;
  align-items: center;
  justify-content: space-between;

  margin-bottom: 10px;

  padding:
    7px
    18px;

  border-radius: 999px;

  color: #fff;
  background: #eb2470;

  font-weight: 800;
}

.event-ticket-box dt,
.event-ticket-box dd {
  margin: 0;
}

.event-ticket-box__visual {
  display: grid;
  place-items: center;

  min-height: 180px;
  margin-top: 24px;

  border:
    2px dashed
    #e3d98f;

  color: #b8ad68;
}


/* ========================================
  Photo Grid
======================================== */

.event-photo-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 12px;

  margin-top: 30px;
}

.event-photo-grid div {
  display: grid;
  place-items: center;

  min-height: 180px;

  color: #fff;
}


/* ========================================
  Footer
======================================== */

.event-footer {
  padding:
    10px
    20px
    20px;

  text-align: center;

  color: #1d2b62;
}


.icon-ig{
  width:40px;
  margin: 20px auto;
}

.f-logo{
  width:40%;
  margin: 20px auto;
}

.event-footer p {
  margin: 0;

  font-size: 10px;
  font-size: clamp(0.625rem, 0.534rem + 0.45vw, 0.875rem)
}



.photo-img-txt{
  font-size: 14px;
}

.end-attention{
  position:absolute;
  bottom:-64px;
  left: 48px;
  font-size: 14px;
}







@media screen and (max-width: 768px) {
  .pc{
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .sp{
    display: none;
  }
}



/* ========================================
  Responsive
======================================== */

@media (max-width: 767px) {

  body{
    padding-bottom:0;
  }

  
  .page-bg {
    background-image:
      url("../img/bg-sp.webp");
    background-size: contain;
    margin-top: 72px;
  }


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

  .site-header,
  .site-header.is-scrolled {
    height: 72px;
    aspect-ratio: auto;
  }

  .site-header__image--large,
  .site-header__image--compact {
    display: none;
  }

  .site-header__image--sp {
    position: static;

    display: block;

    width: 100%;
    height: 72px;

    object-fit: cover;
    object-position: center;

    opacity: 1;
  }


  /* ----------------------------------------
    Menu Button
  ---------------------------------------- */

  .menu-button {
    position: absolute;
    top: 14px;
    right: 14px;

    display: block;

    width: 44px;
    height: 44px;
    padding: 10px;

    border: 0;

    background:
      rgb(255 255 255 / 88%);

    cursor: pointer;

    z-index: 2;
  }

  .menu-button span {
    display: block;

    width: 100%;
    height: 2px;

    background: #10245b;

    transition:
      transform 0.3s ease,
      opacity 0.3s ease;
  }

  .menu-button span + span {
    margin-top: 7px;
  }

  .menu-button.is-open
  span:nth-child(1) {
    transform:
      translateY(9px)
      rotate(45deg);
  }

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

  .menu-button.is-open
  span:nth-child(3) {
    transform:
      translateY(-9px)
      rotate(-45deg);
  }


  /* ----------------------------------------
    Navigation
  ---------------------------------------- */

  .global-nav {
    position: fixed;
    top: 72px;
    left: 0;

    display: block;

    width: 100%;
    height: calc(100dvh - 72px);

    padding:
      28px
      24px;

    background:
      rgb(255 255 255 / 98%);

    opacity: 0;
    visibility: hidden;

    transform:
      translateY(-10px);

    transition:
      opacity 0.3s ease,
      visibility 0.3s ease,
      transform 0.3s ease;
  }

  .global-nav.is-open {
    opacity: 1;
    visibility: visible;

    transform: translateY(0);
  }

  .global-nav ul {
    margin: 0;
    padding: 0;

    list-style: none;
  }

  .global-nav li {
    border-bottom:
      1px solid #ddd;
  }

  .global-nav a {
    display: block;

    padding:
      18px
      0;

    color: #10245b;

    font-weight: 700;
    text-decoration: none;
  }


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

  .page {
    padding-top: 72px;
  }


  /* ----------------------------------------
    Intro
  ---------------------------------------- */

  .event-intro {
    padding:
      28px
      12px
      42px;
  }

  .event-intro__inner {
    width: 100%;
    max-width: 430px;
    height: 430px;
  }

  .event-intro__copy {
    top: 50%;
    left: 50%;

    width: clamp(108px, 30vw, 138px);

    transform:
      translate(-50%, -50%);
  }

  .event-intro__badge {
    width: clamp(108px, 31vw, 138px);
    max-width: none;
    margin: 0;
  }

  .event-intro__badge--01 {
    top: 4px;
    left: 4px;
  }

  .event-intro__badge--02 {
    top: 38px;
    right: 0;
  }

  .event-intro__badge--03 {
    bottom: 48px;
    left: 0;
  }

  .event-intro__badge--04 {
    right: 10px;
    bottom: 0;
  }


  /* ----------------------------------------
    Event
  ---------------------------------------- */

  .event-content {
    width: 100%;
    margin: auto;
    padding-top: 30px;
    padding-bottom: 30px;

    border-width: 3px;
    border-radius: 0;
    border: none;

    box-shadow:
      0 7px 18px
      rgb(0 0 0 / 18%);
  }

  .event-card {
    width: 93%;

    margin-bottom: 34px;

    border-width: 3px;
  }

  .event-card__body {
    padding:
      26px
      22px
      34px;
  }

  .event-card__title {
    gap: 10px;
  }

  .event-card__burst {
    width: 72px;

    font-size: 10px;
  }

  .event-card__title h2 {
    font-size:
      clamp(36px, 10vw, 52px);
  }

  .event-card__title-text {
    font-size:
      clamp(34px, 9vw, 52px);
  }

  .event-info-box {
    padding:
      14px
      16px
      18px;
  }

  .event-info-box__text {
    font-size: 14px;
  }


  .event-photo-grid{
      grid-template-columns: 1fr;
      gap: 20px;
  }




  .sample-cards {
    grid-template-columns: 1fr;

    gap: 20px;
  }

  .sample-card {
    min-height: 250px;

    padding:
      24px
      24px
      22px;
  }

  .sample-card__number {
    width: 58px;
    height: 58px;

    padding:
      9px
      9px
      0
      0;

    border-radius:
      0
      0
      0
      58px;

    font-size: 19px;
  }

  .sample-card__logo {
    font-size: 18px;
  }

  .sample-card__text {
    min-height: 125px;

    font-size: 18px;
  }

  .sample-card__name {
    padding-top: 16px;

    font-size: 14px;
  }

  .event-step h3 {
    align-items: flex-start;
  }

  .event-ticket-box dl div {
    padding:
      7px
      12px;

    font-size: 12px;
  }






  /* ========================================
    Event Card ICON
  ======================================== */
  .icon {
    width: 15%;
  }

  .icon01-01 {
      top: -26px;
      right: 13px;
  }
  .icon01-02 {
      bottom: -61px;
      right: 9px;
  }
  .icon02-01 {
      top: -27px;
      left: 15px;
  }
  .icon02-02 {
      top: 62px;
      left: 12px;
  }
  .icon03-01 {
      top: -33px;
      right: 21px;
  }
  .icon03-02 {
      bottom: -30px;
      right: 21px;
  }

  .icon04-01 {
      top: -26px;
      left: 13px;
  }

  .icon04-02 {
      bottom: -35px;
      right: 16px;
  }
}


@media (max-width: 420px) {

  .event-card {
    width: calc(100% - 12px);
  }

}
