/* ================================================
   DOG Marchē 2026 — style.css
   ================================================ */

/* --------------------------------------------------
   カスタムプロパティ
   -------------------------------------------------- */
:root {
  /* Colors */
  --color-azure: #eaffff;
  --color-whitesmoke: #f5f5f5;
  --color-whitesmoke-dark: #e7f2f2;
  --color-paleturquoise: #bafafa;
  --color-lightcyan: #e5ffff;
  --color-teal: #337f83;
  --color-green: #06a372;
  --color-turquoise: #40c5cb;
  --color-turquoise-light: #47c7cd;
  --color-deepskyblue: #089fe8;
  --color-pink: #ff98c1;
  --color-pink-dark: #e56495;
  --color-pink-accent: #e75383;
  --color-deeppink: #ff4a92;
  --color-red: #ff0000;
  --color-yellow: #ffff00;
  --color-floralwhite: #fffdf5;
  --color-lavenderblush: #fff2f2;
  --color-lavenderblush-dark: #ffebeb;
  --color-darkseagreen: #b9e4b0;

  /* Typography */
  --font-main: 'Zen Maru Gothic', sans-serif;
  --font-sub: 'Noto Sans JP', sans-serif;

  /* Layout */
  --width-page: 1500px;
  --width-content: 1000px;
}

/* --------------------------------------------------
   Base
   -------------------------------------------------- */
body {
  font-family: var(--font-main);
  font-size: 17px;
  line-height: 1.5;
  color: #000;
  background-color: var(--color-azure);
}

html {
  scroll-behavior: smooth;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

.u-sp-br {
  display: none;
}

.u-pc-br {
  display: revert;
}

strong,
b {
  font-weight: 700;
}

/* --------------------------------------------------
   Layout
   -------------------------------------------------- */
.l-header {
  position: fixed;
  inset: 0% 0% auto 0%;
  z-index: 100;
  width: 100%;
  max-width: 1500px;
  margin: 0 auto;
}

.l-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 121px;
  padding: 0 40px;
  background-color: transparent;
  border-radius: 0 0 40px 0;
}

.l-header__logo {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  flex-shrink: 0;
  z-index: 0;
}

.l-header__logo::before {
  content: '';
  position: absolute;
  inset: 0% auto auto 0%;
  width: 351px;
  height: 121px;
  border-radius: 0 0 40px 0;
  background: #fff;
  transform: translateX(-40px);
  z-index: -1;
}

.l-header__logo::after {
  content: '';
  position: absolute;
  inset: 0% auto 0% 0%;
  width: 100vw;
  background: #fff;
  transform: translateX(calc(-100vw - 40px));
  z-index: -2;
}

.l-header__logo img {
  position: relative;
  z-index: 1;
  width: 224px;
  height: auto;
}

@media screen and (min-width: 900px) {
  .l-header {
    transition: background-color 0.3s ease;
  }

  .l-header::before {
    content: '';
    position: absolute;
    inset: 0% auto auto 50%;
    width: calc(100% - 44px);
    max-width: 1456px;
    height: 86px;
    border-radius: 0 0 40px 40px;
    background: #fff;
    opacity: 0;
    pointer-events: none;
    transform: translateX(-50%);
    transition: opacity 0.3s ease;
    z-index: -1;
  }

  .l-header__inner,
  .l-header__logo,
  .l-header__logo::before,
  .l-header__logo::after,
  .l-header__logo img,
  .p-gnav {
    transition: height 0.3s ease, width 0.3s ease, opacity 0.3s ease, padding 0.3s ease, transform 0.3s ease;
  }

  .l-header.is-scrolled::before {
    opacity: 1;
  }

  .l-header.is-scrolled .l-header__logo::before,
  .l-header.is-scrolled .l-header__logo::after {
    opacity: 0;
  }

  .l-header.is-scrolled .l-header__logo {
    transform: translateY(-10px);
  }

  .l-header.is-scrolled .l-header__logo img {
    width: 153px;
  }
}

.l-main {
  margin: 0 auto;
  overflow: hidden;
}

.l-footer {
  background: #eaffff;
}

.l-footer__copyright {
  padding: 70px 0;
  text-align: center;
  font-size: 12px;
  font-family: 'Noto Sans JP', sans-serif;
}

.p-overview__inner,
.p-ticket__inner,
.p-events__inner,
.p-booth__inner,
.p-soulfoodjam__inner,
.p-access__inner,
.p-notice__inner,
.p-contact__inner,
.p-sponsor__inner {
  box-sizing: border-box;
  padding-inline: 20px;
}

/* --------------------------------------------------
   Navigation
   -------------------------------------------------- */
@media screen and (min-width: 768px) {
  .l-header__inner {
    padding-left: 70px;
    padding-right: 50px;
  }

  .l-header__logo::before {
    inset: 0% auto auto 0%;
    transform: translateX(-70px);
  }

  .l-header__logo::after {
    inset: 0% auto 0% 0%;
    transform: translateX(calc(-100vw - 70px));
  }

  .p-gnav {
    display: flex;
    align-items: center;
    min-width: 0;
    column-gap: 38px;
    padding-bottom: 40px;
  }
}

.p-gnav__list {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-gnav__item a {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: 700;
  white-space: nowrap;
}

.p-gnav__item a::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 17px;
  background: url('../../img/dogmarche/nav-point.svg') no-repeat center / contain;
  flex-shrink: 0;
}

.p-gnav__item--instagram a {
  display: block;
  line-height: 0;
}

.p-gnav__item--instagram a::before {
  display: none;
}

.p-gnav__item--instagram img {
  display: block;
  width: 149px;
  height: auto;
}

.p-drawer-button {
  display: none;
}

.p-drawer-nav {
  display: none;
}

@media screen and (min-width: 768px) and (max-width: 1499px) {
  .l-header__inner {
    height: clamp(88px, 8.07vw, 121px);
    padding-left: clamp(16px, 4.67vw, 70px);
    padding-right: clamp(12px, 3.33vw, 50px);
    column-gap: clamp(12px, 1.6vw, 24px);
  }

  .l-header__logo::before {
    inset: 0% auto auto 0%;
    width: clamp(220px, 23.4vw, 351px);
    height: clamp(88px, 8.07vw, 121px);
    transform: translateX(calc(-1 * clamp(16px, 4.67vw, 70px)));
  }

  .l-header__logo::after {
    inset: 0% auto 0% 0%;
    transform: translateX(calc(-100vw - clamp(16px, 4.67vw, 70px)));
  }

  .l-header__logo img {
    width: clamp(132px, 14.93vw, 224px);
    height: auto;
  }

  .p-gnav {
    column-gap: clamp(8px, 2.53vw, 38px);
    padding-bottom: clamp(16px, 2.67vw, 40px);
  }

  .p-gnav__list {
    gap: clamp(4px, 1.6vw, 24px);
  }

  .p-gnav__item a {
    gap: clamp(4px, 0.4vw, 6px);
    font-size: clamp(10px, 1vw, 15px);
  }

  .p-gnav__item a::before {
    width: clamp(10px, 1.07vw, 16px);
    height: clamp(11px, 1.13vw, 17px);
  }

  .p-gnav__item--instagram img {
    width: clamp(92px, 9.93vw, 149px);
  }
}

@media screen and (min-width: 768px) and (max-width: 899px) {
  .l-header__inner {
    height: 84px;
    padding-left: 12px;
    padding-right: 10px;
    column-gap: 10px;
  }

  .l-header__logo::before {
    inset: 0% auto auto 0%;
    width: 198px;
    height: 84px;
    transform: translateX(-12px);
  }

  .l-header__logo::after {
    inset: 0% auto 0% 0%;
    transform: translateX(calc(-100vw - 12px));
  }

  .l-header__logo img {
    width: 118px;
  }

  .p-gnav {
    column-gap: 6px;
    padding-bottom: 14px;
  }

  .p-gnav__list {
    gap: 2px;
  }

  .p-gnav__item a {
    gap: 3px;
    font-size: 9px;
  }

  .p-gnav__item a::before {
    width: 9px;
    height: 10px;
  }

  .p-gnav__item--instagram img {
    width: 82px;
  }
}

@media screen and (max-width: 767px) {
  .l-header {
    background-color: transparent;
    transition: background-color 0.3s ease;
  }

  .l-header.is-scrolled {
    background-color: #fff;
  }

  .l-header__inner {
    position: relative;
    justify-content: flex-start;
    height: clamp(50px, calc(50px + 26 * ((100vw - 375px) / 392)), 76px);
    padding: 0 clamp(12px, calc(12px + 4 * ((100vw - 375px) / 392)), 16px);
  }

  .l-header__logo::before {
    inset: 0% auto auto 0%;
    width: clamp(144px, calc(144px + 76 * ((100vw - 375px) / 392)), 220px);
    height: clamp(50px, calc(50px + 26 * ((100vw - 375px) / 392)), 76px);
    border-radius: 0 0 clamp(20px, calc(20px + 4 * ((100vw - 375px) / 392)), 24px) 0;
    transform: translateX(calc(-1 * clamp(12px, calc(12px + 4 * ((100vw - 375px) / 392)), 16px)));
  }

  .l-header__logo::after {
    inset: 0% auto auto 0%;
    height: clamp(50px, calc(50px + 26 * ((100vw - 375px) / 392)), 76px);
    transform: translateX(calc(-100vw - clamp(12px, calc(12px + 4 * ((100vw - 375px) / 392)), 16px)));
  }

  .l-header__logo img {
    width: clamp(101.43px, calc(101.43px + 50.57 * ((100vw - 375px) / 392)), 152px);
  }

  .p-gnav {
    display: none;
  }

  .p-drawer-button {
    position: absolute;
    inset: 0% 0% auto auto;
    z-index: 130;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: 38px;
    height: 38px;
    padding: 0;
    background: #ff98c1;
    border: 0;
    border-radius: 0;
    color: #fff;
    cursor: pointer;
    flex-shrink: 0;
    transition: background-color 0.3s ease;
  }

  .p-drawer-button__line {
    display: block;
    width: 20px;
    height: 2px;
    background: #fff;
    border-radius: 100vh;
    transform-origin: center;
    transition: transform 0.3s ease, opacity 0.2s ease;
  }

  .p-drawer-button.is-open .p-drawer-button__line:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }

  .p-drawer-button.is-open .p-drawer-button__line:nth-child(2) {
    opacity: 0;
  }

  .p-drawer-button.is-open .p-drawer-button__line:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }

  .p-drawer-button__label {
    display: none;
  }

  .p-drawer-nav {
    position: fixed;
    inset: 0% 0% 0% auto;
    z-index: 120;
    display: block;
    width: 56.41%;
    min-height: 100dvh;
    padding: calc(clamp(50px, calc(50px + 26 * ((100vw - 375px) / 392)), 76px) + 32px) 24px 40px;
    background: #fff;
    box-shadow: 0 12px 24px rgb(0 0 0 / 12%);
    opacity: 0;
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 0.3s ease, opacity 0.3s ease;
  }

  .p-drawer-nav[hidden] {
    display: none;
  }

  .p-drawer-nav.is-open {
    opacity: 1;
    transform: translateX(0);
  }

  .p-drawer-nav__list {
    display: grid;
    align-content: start;
    gap: 28px;
    min-height: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .p-drawer-nav__item a {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
  }

  .p-drawer-nav__item a::before {
    content: '';
    display: inline-block;
    width: 16px;
    height: 17px;
    background: url('../../img/dogmarche/nav-point.svg') no-repeat center / contain;
    flex-shrink: 0;
  }

  .p-drawer-nav__item--instagram a {
    display: block;
    width: 149px;
    line-height: 0;
  }

  .p-drawer-nav__item--instagram a::before {
    display: none;
  }

  .p-drawer-nav__item--instagram img {
    display: block;
    width: 149px;
    height: auto;
  }

  .p-drawer-nav__item--instagram {
    margin-top: 28px;
  }
}

/* --------------------------------------------------
   Hero
   -------------------------------------------------- */
.p-hero {
  position: relative;
}

.p-hero__bg,
.p-hero__main,
.p-hero__badge {
  display: block;
}

.p-hero__bg-image,
.p-hero__main-image,
.p-hero__badge-image {
  display: block;
  height: auto;
}

.p-hero__bg-image {
  width: 100%;
}

.p-hero__main {
  position: absolute;
  inset: 9.58% auto auto 50%;
  z-index: 1;
  width: 60.4%;
  transform: translateX(-50%);
}

.p-hero__main-image {
  width: 100%;
}

.p-hero__badge {
  position: absolute;
  inset: 13.58% 10.4% auto auto;
  z-index: 2;
  width: 18.3%;
}

.p-hero__badge-image {
  width: 100%;
}

.p-hero__instagram {
  position: absolute;
  inset: auto auto 3.59% 8.8%;
  z-index: 2;
  width: 23.03%;
}

.p-hero__instagram a,
.p-hero__instagram picture,
.p-hero__instagram img {
  display: block;
}

.p-hero__instagram img {
  width: 100%;
  height: auto;
}

/* --------------------------------------------------
   Instagram CTA
   -------------------------------------------------- */
.p-instagram-cta {
  position: relative;
  z-index: 2;
  width: 36%;
  aspect-ratio: 691 / 519;
  transform: rotate(-5deg);
}

.p-instagram-cta--2 {
  position: absolute;
  inset: -10.5% auto auto -9%;
  transform: none;
}

.p-instagram-cta--2 .p-instagram-cta__link,
.p-instagram-cta--2 picture,
.p-instagram-cta--2 img {
  display: block;
}

.p-instagram-cta--2 img {
  width: 100%;
}

.p-instagram-cta--3 {
  transform: translate(90px, -150px);
  position: absolute;
  inset: 0% 0% auto auto;
}

.p-instagram-cta--3 .p-instagram-cta__link,
.p-instagram-cta--3 picture,
.p-instagram-cta--3 img {
  display: block;
}

.p-instagram-cta--3 img {
  width: 100%;
}

.p-instagram-cta--4 {
  transform: none;
  position: absolute;
  inset: -2.4% auto auto -6.5%;
}

.p-instagram-cta--4 .p-instagram-cta__link,
.p-instagram-cta--4 picture,
.p-instagram-cta--4 img {
  display: block;
}

.p-instagram-cta--4 img {
  width: 100%;
}

.p-instagram-cta__link {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}

.p-instagram-cta__bg {
  position: absolute;
  inset: 0.74% auto auto 0%;
  width: calc(100% - 18px);
  height: calc(100% - 13px);
  transform: rotate(5deg);
}

.p-instagram-cta__text {
  position: absolute;
  inset: auto auto 10.74% 29.46%;
  font-size: 24px;
  font-weight: 700;
  line-height: 30px;
  color: var(--color-teal);
  white-space: nowrap;
}

.p-instagram-cta__small {
  font-size: 20px;
}

.p-instagram-cta__ig {
  font-size: 28px;
}

.p-instagram-cta__icon {
  position: absolute;
  inset: auto 0% 0% auto;
  width: 27.98%;
  height: auto;
  aspect-ratio: 1;
  transform: translateX(14px) rotate(5deg);
}

.p-instagram-cta__click {
  position: absolute;
  inset: auto 1.19% 12.59% auto;
  font-size: 24px;
  font-weight: 700;
  line-height: 32px;
  color: #fff;
}

/* --------------------------------------------------
   開催概要
   -------------------------------------------------- */
.p-overview {
  position: relative;
  padding: 30px 0 50px;
  background-color: var(--color-paleturquoise);
}

.p-overview__inner {
  position: relative;
  width: 100%;
  max-width: var(--width-content);
  margin: 0 auto;
}

.p-overview__heading {
  position: relative;
  z-index: 1;
  font-size: 36px;
  font-weight: 900;
  text-align: center;
  line-height: 40px;
  margin-bottom: 30px;
}

.p-overview__heading-pink {
  color: var(--color-pink-accent);
}

.p-overview__heading-blue {
  color: var(--color-deepskyblue);
}

.p-overview__quote {
  position: absolute;
  inset: -110% auto auto 13.96%;
  width: 8.65%;
}

.p-overview__lead {
  position: relative;
  z-index: 1;
  text-align: center;
  font-weight: 700;
  font-size: 17px;
  line-height: 36px;
  margin-bottom: 60px;
}

.p-overview__lead-sp {
  display: none;
}

.p-overview__details {
  position: relative;
  z-index: 1;
  margin: 0;
}

.p-overview__detail-item {
  text-align: center;
  margin-bottom: 30px;
}

.p-overview__detail-label {
  position: relative;
  display: inline-block;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-green);
  margin-bottom: 4px;
}

.p-overview__detail-label span {
  position: absolute;
  inset: 0%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-overview__ribbon {
  display: block;
  width: 321px;
}

.p-overview__detail-value {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 16px;
}

.p-overview__date {
  font-size: 32px;
  line-height: 40px;
}

.p-overview__date-num {
  font-size: 1.5em;
}

.p-overview__detail-value--venue {
  font-size: 36px;
  line-height: 40px;
}

.p-overview__detail-value--price {
  font-size: 28px;
  line-height: 40px;
}

.p-overview__tax {
  font-size: 16px;
}

.p-overview__detail-sub {
  font-size: 22px;
  font-weight: 700;
}

.p-overview__detail-sub--small {
  font-size: 18px;
}

.p-overview__detail-note {
  font-size: 14px;
  line-height: 24px;
  margin-top: 8px;
}

.p-overview__detail-note--red {
  font-size: 20px;
  font-weight: 700;
  line-height: 24px;
  color: var(--color-red);
}

/* 装飾 */
.p-overview__deco {
  position: absolute;
}

.p-overview__deco--flower {
  inset: 0% auto auto 0%;
  transform: translate(-112px, -100px);
  width: 16.1%;
}

.p-overview__deco--photo {
  inset: 30% -20% auto auto;
  width: 40%;
}

.p-overview__deco--circle1 {
  inset: 33.33% auto auto -23.33%;
  width: 31.98%;
}

.p-overview__deco--circle2 {
  inset: 0% auto auto 0%;
  transform: translate(-170px, -40px);
  width: 17%;
}

.p-overview__deco--circle3 {
  inset: 48% -19% auto auto;
  width: 17%;
  z-index: 0;
}

.p-overview__deco--sm {
  inset: -10.42% 0 auto auto;
  width: 4.69%;
}

.p-overview__deco--md {
  inset: 46.5% auto auto 7%;
  width: 7%;
}

.p-overview__deco--dog {
  inset: 62% auto auto -17%;
  width: 37%;
}

/* --------------------------------------------------
   チケット情報
   -------------------------------------------------- */
.p-ticket {
  position: relative;
  z-index: 2;
  padding: 80px 0 80px;
}

.p-ticket__inner {
  position: relative;
  width: 100%;
  max-width: 940px;
  margin: 0 auto;
}

.p-ticket__heading {
  position: relative;
  text-align: center;
  margin-bottom: 80px;
}

.p-ticket__heading-deco {
  display: block;
  width: 317px;
  margin-left: auto;
  margin-right: auto;
}

.p-ticket__heading-title {
  position: absolute;
  inset: 0%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-turquoise);
}

.p-ticket__frame {
  position: relative;
  z-index: 1;
  background-color: #fff;
  border-radius: 60px;
  padding: 40px 50px 80px;
}

.p-ticket__frame-deco {
  position: absolute;
  width: 43.3%;
  height: auto;
  aspect-ratio: 1;
}

.p-ticket__frame-deco--tl {
  inset: 0% auto auto 0%;
  transform: translate(-30px, -34px);
}

.p-ticket__frame-deco--br {
  inset: auto 0% 0% auto;
  transform: translate(30px, 34px);
}

.p-ticket__subtitle {
  font-size: 28px;
  font-weight: 700;
  text-align: center;
  line-height: 40px;
  margin-bottom: 0;
}

.p-ticket__highlight {
  text-align: center;
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  color: var(--color-deeppink);
  margin-bottom: 30px;
}

.p-ticket__highlight-em {
  font-size: 26px;
}

.p-ticket__highlight-num {
  font-size: 30px;
}

.p-ticket__highlight-accent {
  position: relative;
  display: inline-block;
  z-index: 0;
}

.p-ticket__highlight-accent::after {
  content: '';
  position: absolute;
  inset: auto 0% 0% 0%;
  transform: translateY(0.08em);
  height: 0.42em;
  background: #ff0;
  z-index: -1;
}

.p-ticket__highlight--set {
  margin-bottom: 16px;
}

.p-ticket__highlight--set .p-ticket__highlight-accent::after {
  height: 0.48em;
}

.p-ticket__method {
  position: relative;
}

.p-ticket__frame > .p-ticket__method:not(:nth-of-type(3)) {
  margin-bottom: 64px;
}

.p-ticket__frame > .p-ticket__method:nth-of-type(2) {
  margin-bottom: 90px;
}

.p-ticket__method-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 22px;
  font-weight: 700;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--color-turquoise);
  margin-bottom: 20px;
}

.p-ticket__bullet {
  width: 26px;
  height: 24px;
  flex-shrink: 0;
}

.p-ticket__method-detail {
  font-size: 18px;
  font-weight: 700;
  line-height: 36px;
  margin-bottom: 20px;
}

.p-ticket__method-detail strong {
  font-weight: 700;
}

.p-ticket__method-text {
  font-weight: 400;
}

.p-ticket__method-emphasis {
  font-weight: 700;
}

.p-ticket__pcode {
  color: var(--color-deeppink);
}

.p-ticket__note {
  font-size: 14px;
  margin-top: -16px;
}

.p-ticket__set-note {
  font-size: 14px;
  margin-top: 30px;
  text-align: start;
}

.p-ticket__separator {
  display: block;
  width: 100%;
  margin: 50px 0 40px;
}

/* セット券 */
.p-ticket__set {
  text-align: center;
}

.p-ticket__set-heading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 26px;
}

.p-ticket__set-heading span {
  position: absolute;
  inset: 0%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-ticket__set-heading-deco {
  width: 121px;
}

.p-ticket__set-period {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 20px;
}

.p-ticket__set-cards {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-bottom: 16px;
}

.p-ticket__set-item {
  width: 260px;
  text-align: center;
}

.p-ticket__set-save-wrap {
  position: relative;
  margin-bottom: 8px;
}

.p-ticket__set-card {
  width: 100%;
  padding: 15px 0;
  background-color: var(--color-whitesmoke-dark);
}

.p-ticket__set-wave {
  display: block;
  width: 232px;
  margin: 0 auto 4px;
}

.p-ticket__set-save {
  position: absolute;
  inset: 0%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-deeppink);
}

.p-ticket__set-name {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 2px;
}

.p-ticket__set-price {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-deeppink);
  line-height: 32px;
}

.p-ticket__set-num {
  font-size: 40px;
}

.p-ticket__deco-dog {
  position: absolute;
  inset: 4% 4% auto auto;
  width: 20%;
  z-index: 2;
}

/* --------------------------------------------------
   イベント
   -------------------------------------------------- */
.p-events {
  position: relative;
  z-index: 1;
  padding: 130px 0 100px;
  background-color: var(--color-whitesmoke);
  border-radius: 60px 60px 0 0;
}

.p-events__inner {
  position: relative;
  width: 100%;
  max-width: var(--width-content);
  margin: 0 auto;
}

.p-events__heading {
  position: relative;
  text-align: center;
  margin-bottom: 26px;
}

.p-events__heading-deco {
  display: block;
  width: 317px;
  margin-left: auto;
  margin-right: auto;
}

.p-events__heading-title {
  position: absolute;
  inset: 0%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-turquoise);
}

.p-events__lead {
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  line-height: 30px;
  margin-bottom: 8px;
}

.p-events__note {
  text-align: center;
  font-size: 12px;
  margin-bottom: 30px;
}

.p-events__grid {
  display: grid;
  grid-template-columns: repeat(3, 300px);
  gap: 24px;
  justify-content: center;
}

/* イベントカード */
.p-event-card {
  position: relative;
  background-color: #fff;
  border-radius: 18px;
  padding: 30px 18px 40px;
}

.p-event-card__badge {
  position: absolute;
  inset: 0% auto auto 0%;
  transform: translate(20px, -8px);
  width: 13%;
  height: auto;
  aspect-ratio: 39 / 23;
}

.p-event-card__image {
  width: 260px;
  height: 140px;
  margin: 0 0 10px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-event-card__img {
  max-width: 100%;
  max-height: 100%;
}

.p-event-card__img--cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-event-card__img--contain {
  height: 100%;
  object-fit: contain;
}

.p-event-card__title {
  display: grid;
  place-items: center;
  min-height: 2lh;
  font-size: 22px;
  font-weight: 700;
  line-height: 28px;
  color: var(--color-turquoise-light);
  text-align: center;
  margin-bottom: 8px;
}

.p-event-card__schedule {
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
  text-align: center;
  margin-bottom: 8px;
}

.p-event-card__desc {
  font-size: 15px;
  line-height: 26px;
  padding: 0;
}

.p-event-card__small {
  font-size: 13px;
}

/* 装飾 */
.p-events__deco-dog {
  position: absolute;
  inset: auto 2% -3% auto;
  transform: none;
  width: 35%;
  z-index: 1;
}

.p-events__deco-paw {
  position: absolute;
  inset: auto 0% 0% auto;
  transform: translate(-270px, -275px);
  width: 17.1%;
  z-index: 0;
}

.p-events__deco-circle,
.p-events__deco-circle2 {
  position: absolute;
  inset: 0% auto auto 0%;
  transform: translate(-170px, -370px);
  width: 40.1%;
  height: auto;
  aspect-ratio: 1;
  z-index: 0;
}

.p-events__deco-circle2 {
  inset: auto -14% -12% auto;
  transform: none;
  width: 31%;
  z-index: 0;
}

.p-events__deco-star {
  position: absolute;
  inset: 0% auto auto 0%;
  transform: translate(150px, -90px);
  width: 5%;
}

/* --------------------------------------------------
   出店ブース
   -------------------------------------------------- */
.p-booth {
  position: relative;
  padding: 60px 0 100px;
  background-color: var(--color-lightcyan);
}

.p-booth__inner {
  position: relative;
  width: 100%;
  max-width: var(--width-content);
  margin: 0 auto;
}

.p-booth__heading {
  position: relative;
  text-align: center;
  margin-bottom: 10px;
}

.p-booth__heading-deco {
  display: block;
  width: 317px;
  margin-left: auto;
  margin-right: auto;
}

.p-booth__heading-title {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-turquoise);
}

.p-booth__coming {
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-red);
  margin-bottom: 40px;
}

.p-booth__note {
  text-align: center;
  font-size: 12px;
  margin-top: 0;
  margin-bottom: 20px;
}

/* カテゴリタブ */
.p-booth__category {
  position: relative;
  padding-top: 25px;
}

.p-booth__category:not(:last-child) {
  margin-bottom: 40px;
}

.p-booth__category-tab {
  display: block;
  width: 31.35%;
  position: absolute;
  inset: 0 auto auto 50%;
  margin: 0;
  transform: translateX(-50%);
  z-index: 1;
}

.p-booth__category-tab img {
  display: block;
  width: 100%;
}

.p-booth__card {
  background-color: var(--color-floralwhite);
  border: 1px solid var(--color-turquoise);
  border-radius: 20px;
  padding: 65px 30px 60px;
  margin-top: 0;
  position: relative;
  z-index: 0;
}

.p-booth__shop-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 30px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-booth__shop-list li {
  font-size: 17px;
  font-weight: 700;
  padding: 12px 8px 12px;
  border-bottom: 1px solid var(--color-turquoise);
}

.p-booth__shop-list li:nth-child(-n+2) {
  border-top: 1px solid var(--color-turquoise);
}

.p-booth__shop-ruby {
  font-size: 14px;
  font-weight: 700;
}

.p-booth__extra {
  padding: 0 30px;
}

/* --------------------------------------------------
   SOUL FOOD JAM
   -------------------------------------------------- */
.p-soulfoodjam {
  padding: 60px 0 70px;
  background-color: var(--color-lavenderblush);
}

.p-soulfoodjam__inner {
  width: 100%;
  max-width: var(--width-content);
  margin: 0 auto;
}

.p-soulfoodjam__title {
  font-size: 54px;
  font-weight: 900;
  line-height: 30px;
  color: var(--color-pink-dark);
  text-align: center;
  margin-bottom: 40px;
  padding-top: 20px;
}

.p-soulfoodjam__logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 32px;
}

.p-soulfoodjam__logo {
  width: 122px;
}

.p-soulfoodjam__badge {
  width: 87px;
}

/* --------------------------------------------------
   アクセス
   -------------------------------------------------- */
.p-access {
  position: relative;
  padding: 70px 0 50px;
}

.p-access__inner {
  width: 100%;
  max-width: var(--width-content);
  margin: 0 auto;
  text-align: center;
}

.p-access__heading {
  position: relative;
  text-align: center;
  margin-bottom: 30px;
}

.p-access__heading-deco {
  display: block;
  width: 317px;
  margin-left: auto;
  margin-right: auto;
}

.p-access__heading-title {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-turquoise);
}

.p-access__lead {
  font-size: 22px;
  font-weight: 700;
  line-height: 30px;
  margin-bottom: 35px;
}

.p-access__photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 960 / 415;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 30px;
}

.p-access__map {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.p-access__address {
  font-size: 18px;
  margin-bottom: 10px;
}

.p-access__parking {
  font-size: 22px;
  font-weight: 700;
  line-height: 30px;
  color: var(--color-deeppink);
  margin-bottom: 18px;
}

.p-access__note {
  font-size: 15px;
  line-height: 26px;
  margin-bottom: 24px;
}

.p-access__deco-dog {
  position: absolute;
  inset: auto auto -2.5% 13.33%;
  width: 288px;
}

/* --------------------------------------------------
   注意事項
   -------------------------------------------------- */
.p-notice {
  padding: 40px 0 100px;
  background-color: var(--color-lightcyan);
}

.p-notice__inner {
  width: 100%;
  max-width: var(--width-content);
  margin: 0 auto;
}

.p-notice__heading {
  position: relative;
  text-align: center;
  margin-bottom: 40px;
}

.p-notice__heading-deco {
  display: block;
  width: 317px;
  margin-left: auto;
  margin-right: auto;
}

.p-notice__heading-title {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-turquoise);
}

.p-notice__blocks {
  border-radius: 60px;
  background: #fff;
  padding: 40px 30px 80px;
}

.p-notice__block:not(:last-child) {
  margin-bottom: 40px;
}

.p-notice__subtitle {
  position: relative;
  text-align: center;
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 32px;
}

.p-notice__subtitle span {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-notice__subtitle-deco {
  display: block;
  width: 318px;
  margin: 0 auto 4px;
}

.p-notice__list {
  list-style: none;
  margin: 0;
  padding: 0 20px;
}

.p-notice__item {
  font-size: 15px;
  line-height: 26px;
  padding-left: 20px;
  position: relative;
}

.p-notice__item::before {
  content: '・';
  position: absolute;
  inset: auto auto auto 0;
  color: var(--color-deeppink);
}

.p-notice__item--important::before {
  content: '●';
}

/* --------------------------------------------------
   お問い合わせ
   -------------------------------------------------- */
.p-contact {
  position: relative;
  z-index: 0;
  padding: 80px 0 30px;
}

.p-contact::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 60px 60px 0 0;
  background: #bafafa;
  z-index: -1;
}

.p-contact__inner {
  width: 100%;
  max-width: var(--width-content);
  margin: 0 auto;
  text-align: center;
}

.p-contact__heading {
  position: relative;
  text-align: center;
  margin-bottom: 40px;
}

.p-contact__heading-deco {
  display: block;
  width: 317px;
  margin-left: auto;
  margin-right: auto;
}

.p-contact__heading-title {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-turquoise);
}

.p-contact__org {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 8px;
}

.p-contact__email {
  font-size: 16px;
  margin-bottom: 16px;
}

.p-contact__tel {
  line-height: 30px;
}

.p-contact__tel-num {
  font-size: 26px;
  font-weight: 700;
}

.p-contact__tel-note {
  font-size: 14px;
}

/* --------------------------------------------------
   スポンサー
   -------------------------------------------------- */
.p-sponsor {
  padding: 40px 0 100px;
  background-color: var(--color-paleturquoise);
}

.p-sponsor__inner {
  --width-content: 950px;
  width: 100%;
  max-width: var(--width-content);
  margin: 0 auto;
  text-align: center;
}

.p-sponsor__heading {
  position: relative;
  text-align: center;
  margin-bottom: 56px;
}

.p-sponsor__heading-deco {
  display: block;
  width: 317px;
  margin-left: auto;
  margin-right: auto;
}

.p-sponsor__heading-title {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-pink);
}

.p-sponsor__label {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 30px;
}

.p-sponsor__banners {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px 60px;
  margin-bottom: 58px;
}

.p-sponsor__banner {
}

.p-sponsor__banner a {
  display: block;
}

.p-sponsor__banner--green {
  background-color: var(--color-darkseagreen);
}

.p-sponsor__banner img {
  width: 100%;
  height: auto;
}

.p-sponsor__supporters {
  font-size: 16px;
  font-weight: 700;
}

@media screen and (min-width: 768px) and (max-width: 1499px) {
  .p-overview__inner,
  .p-events__inner,
  .p-booth__inner,
  .p-soulfoodjam__inner,
  .p-access__inner,
  .p-notice__inner,
  .p-contact__inner {
    width: calc(100% - clamp(32px, 5vw, 80px));
    max-width: 1000px;
  }

  .p-ticket__inner {
    width: calc(100% - clamp(32px, 5vw, 80px));
    max-width: 940px;
  }

  .p-sponsor__inner {
    width: calc(100% - clamp(32px, 5vw, 80px));
    max-width: 950px;
  }

  .p-instagram-cta {
    width: clamp(220px, 26vw, 336px);
    height: auto;
  }

  .p-overview__heading {
    font-size: clamp(28px, 2.4vw, 36px);
    line-height: clamp(34px, 2.67vw, 40px);
  }

  .p-overview__lead {
    font-size: clamp(15px, 1.13vw, 17px);
    line-height: clamp(28px, 2.4vw, 36px);
    margin-bottom: clamp(36px, 4vw, 60px);
  }

  .p-overview__ribbon {
    width: clamp(250px, 21.4vw, 321px);
  }

  .p-overview__detail-label,
  .p-overview__detail-value,
  .p-overview__detail-sub {
    font-size: clamp(18px, 1.47vw, 22px);
  }

  .p-overview__date {
    font-size: clamp(24px, 2.13vw, 32px);
    line-height: clamp(32px, 2.67vw, 40px);
  }

  .p-overview__date-num {
    font-size: 1.5em;
  }

  .p-overview__detail-value--venue {
    font-size: clamp(28px, 2.4vw, 36px);
    line-height: clamp(34px, 2.67vw, 40px);
  }

  .p-overview__detail-value--price {
    font-size: clamp(22px, 1.87vw, 28px);
    line-height: clamp(32px, 2.67vw, 40px);
  }

  .p-overview__detail-sub--small {
    font-size: clamp(15px, 1.2vw, 18px);
  }

  .p-overview__detail-note {
    font-size: clamp(12px, 0.93vw, 14px);
    line-height: clamp(20px, 1.6vw, 24px);
  }

  .p-overview__detail-note--red {
    font-size: clamp(16px, 1.33vw, 20px);
    line-height: clamp(20px, 1.6vw, 24px);
  }

  .p-overview__deco--flower {
    inset: 0% auto auto 0%;
    transform: translate(clamp(-90px, -6vw, -30px), clamp(-90px, -6vw, -40px));
    width: clamp(110px, 10.73vw, 161px);
  }

  .p-ticket__heading {
    margin-bottom: clamp(56px, 5.33vw, 80px);
  }

  .p-ticket__heading-deco {
    width: clamp(250px, 21.13vw, 317px);
  }

  .p-ticket__heading-title,
  .p-events__heading-title,
  .p-booth__heading-title,
  .p-access__heading-title,
  .p-notice__heading-title,
  .p-contact__heading-title,
  .p-sponsor__heading-title {
    font-size: clamp(18px, 1.47vw, 22px);
  }

  .p-ticket__frame {
    padding: clamp(28px, 3vw, 40px) clamp(24px, 3.33vw, 50px) clamp(48px, 5.33vw, 80px);
    border-radius: clamp(40px, 4vw, 60px);
  }

  .p-ticket__frame-deco {
    width: clamp(260px, 27.13vw, 407px);
    height: clamp(260px, 27.13vw, 407px);
  }

  .p-ticket__frame-deco--tl {
    inset: 0% auto auto 0%;
    transform: translate(clamp(-20px, -2vw, -30px), clamp(-24px, -2.27vw, -34px));
  }

  .p-ticket__frame-deco--br {
    inset: auto 0% 0% auto;
    transform: translate(clamp(20px, 2vw, 30px), clamp(24px, 2.27vw, 34px));
  }

  .p-ticket__subtitle {
    font-size: clamp(22px, 1.87vw, 28px);
    line-height: clamp(32px, 2.67vw, 40px);
  }

  .p-ticket__highlight {
    font-size: clamp(17px, 1.33vw, 20px);
    line-height: clamp(24px, 2vw, 30px);
  }

  .p-ticket__highlight-em {
    font-size: clamp(22px, 1.73vw, 26px);
  }

  .p-ticket__highlight-num {
    font-size: clamp(25px, 2vw, 30px);
  }

  .p-ticket__method-title,
  .p-ticket__set-heading {
    font-size: clamp(18px, 1.47vw, 22px);
  }

  .p-ticket__method-detail {
    font-size: clamp(15px, 1.2vw, 18px);
    line-height: clamp(28px, 2.4vw, 36px);
  }

  .p-ticket__note,
  .p-ticket__set-note {
    font-size: clamp(13px, 1.07vw, 16px);
  }

  .p-ticket__set-period,
  .p-ticket__set-price {
    font-size: clamp(17px, 1.33vw, 20px);
  }

  .p-ticket__set-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(8px, 0.67vw, 10px);
  }

  .p-ticket__set-item {
    width: auto;
  }

  .p-ticket__set-wave {
    width: 100%;
    max-width: 232px;
  }

  .p-ticket__set-save {
    font-size: clamp(13px, 1.07vw, 16px);
  }

  .p-ticket__set-name {
    font-size: clamp(16px, 1.33vw, 20px);
  }

  .p-ticket__set-num {
    font-size: clamp(30px, 2.67vw, 40px);
  }

  .p-ticket__deco-dog {
    width: clamp(132px, 13.07vw, 196px);
  }

  .p-events {
    padding-top: clamp(112px, 8.67vw, 130px);
    padding-bottom: clamp(72px, 6vw, 90px);
  }

  .p-events__heading {
    margin-bottom: clamp(20px, 1.73vw, 26px);
  }

  .p-booth__heading {
    margin-bottom: 10px;
  }

  .p-events__heading-deco,
  .p-booth__heading-deco,
  .p-access__heading-deco,
  .p-notice__heading-deco,
  .p-contact__heading-deco,
  .p-sponsor__heading-deco {
    width: clamp(250px, 21.13vw, 317px);
  }

  .p-events__lead {
    font-size: clamp(18px, 1.47vw, 22px);
    line-height: clamp(26px, 2vw, 30px);
  }

  .p-events__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(12px, 1.6vw, 24px);
  }

  .p-event-card {
    padding: clamp(24px, 2vw, 30px) clamp(12px, 1.2vw, 18px) clamp(28px, 2.67vw, 40px);
  }

  .p-event-card__badge {
    inset: 0% auto auto 0%;
    transform: translate(clamp(14px, 1.33vw, 20px), clamp(-8px, -0.53vw, -4px));
    width: clamp(32px, 2.6vw, 39px);
    height: auto;
  }

  .p-event-card__image {
    width: 100%;
    height: clamp(108px, 9.33vw, 140px);
  }

  .p-event-card__title {
    font-size: clamp(18px, 1.47vw, 22px);
    line-height: clamp(24px, 1.87vw, 28px);
  }

  .p-event-card__schedule {
    font-size: clamp(15px, 1.2vw, 18px);
    line-height: clamp(24px, 1.87vw, 28px);
  }

  .p-event-card__desc {
    font-size: clamp(13px, 1vw, 15px);
    line-height: clamp(22px, 1.73vw, 26px);
  }

  .p-event-card__small {
    font-size: clamp(11px, 0.87vw, 13px);
  }

  .p-events__deco-dog {
    width: clamp(220px, 23.47vw, 352px);
  }

  .p-events__deco-paw {
    inset: auto 0% 0% auto;
    transform: translate(clamp(-270px, -18vw, -120px), clamp(-275px, -18.33vw, -180px));
    width: clamp(110px, 11.4vw, 171px);
  }

  .p-events__deco-circle {
    inset: 0% auto auto 0%;
    transform: translate(clamp(-170px, -11.33vw, -110px), clamp(-370px, -24.67vw, -250px));
    width: clamp(260px, 26.73vw, 401px);
    height: clamp(260px, 26.73vw, 401px);
  }

  .p-events__deco-star {
    inset: 0% auto auto 0%;
    transform: translate(clamp(96px, 10vw, 150px), clamp(-90px, -6vw, -72px));
    width: clamp(34px, 3.33vw, 50px);
  }

  .p-booth {
    padding-top: clamp(52px, 4vw, 60px);
    padding-bottom: clamp(80px, 6.67vw, 100px);
  }

  .p-booth__coming {
    font-size: clamp(18px, 1.47vw, 22px);
  }

  .p-booth__category-tab {
    width: clamp(220px, 20.9vw, 313.5px);
  }

  .p-booth__card {
    gap: clamp(16px, 2vw, 30px);
    padding: clamp(56px, 4.33vw, 65px) clamp(18px, 2vw, 30px) clamp(32px, 4vw, 60px);
  }

  .p-booth__shop-list li {
    font-size: clamp(14px, 1.13vw, 17px);
    padding: clamp(8px, 0.8vw, 12px) clamp(4px, 0.53vw, 8px);
  }

  .p-booth__shop-ruby {
    font-size: clamp(12px, 0.93vw, 14px);
  }

  .p-soulfoodjam__title {
    font-size: clamp(42px, 3.6vw, 54px);
  }

  .p-soulfoodjam__logos {
    gap: clamp(10px, 1.07vw, 16px);
  }

  .p-soulfoodjam__logo {
    width: clamp(94px, 8.13vw, 122px);
  }

  .p-soulfoodjam__badge {
    width: clamp(66px, 5.8vw, 87px);
  }

  .p-access__lead {
    font-size: clamp(18px, 1.47vw, 22px);
    line-height: clamp(26px, 2vw, 30px);
  }

  .p-access__address {
    font-size: clamp(16px, 1.2vw, 18px);
  }

  .p-access__parking {
    font-size: clamp(18px, 1.47vw, 22px);
    line-height: clamp(26px, 2vw, 30px);
  }

  .p-access__note {
    font-size: clamp(13px, 1vw, 15px);
    line-height: clamp(22px, 1.73vw, 26px);
  }

  .p-access__deco-dog {
    width: clamp(190px, 19.2vw, 288px);
  }

  .p-notice__blocks {
    padding: clamp(30px, 2.67vw, 40px) clamp(20px, 2vw, 30px) clamp(52px, 5.33vw, 80px);
    border-radius: clamp(40px, 4vw, 60px);
  }

  .p-notice__subtitle {
    font-size: clamp(17px, 1.33vw, 20px);
  }

  .p-notice__subtitle-deco {
    width: clamp(250px, 21.2vw, 318px);
  }

  .p-notice__list {
    padding: 0 clamp(8px, 1.33vw, 20px);
  }

  .p-notice__item {
    font-size: clamp(13px, 1vw, 15px);
    line-height: clamp(22px, 1.73vw, 26px);
  }

  .p-contact__heading {
    margin-bottom: clamp(20px, 1.67vw, 25px);
  }

  .p-contact__org {
    font-size: clamp(16px, 1.2vw, 18px);
  }

  .p-contact__email {
    font-size: clamp(14px, 1.07vw, 16px);
  }

  .p-contact__tel-num {
    font-size: clamp(22px, 1.73vw, 26px);
  }

  .p-contact__tel-note,
  .p-sponsor__supporters {
    font-size: clamp(12px, 0.93vw, 14px);
  }

  .p-sponsor__heading {
    margin-bottom: clamp(40px, 3.73vw, 56px);
  }

  .p-sponsor__label {
    font-size: clamp(16px, 1.2vw, 18px);
    margin-bottom: clamp(24px, 2.33vw, 35px);
  }

  .p-sponsor__banners {
    gap: clamp(20px, 2.67vw, 40px) clamp(24px, 4vw, 60px);
    margin-bottom: clamp(40px, 3.87vw, 58px);
  }
}

@media screen and (min-width: 768px) and (max-width: 899px) {
  .p-overview__inner,
  .p-events__inner,
  .p-booth__inner,
  .p-soulfoodjam__inner,
  .p-access__inner,
  .p-notice__inner,
  .p-contact__inner,
  .p-ticket__inner,
  .p-sponsor__inner {
    width: calc(100% - 52px);
  }

  .p-hero__instagram {
    inset: auto auto 2.8% 7.2%;
    width: 18.8%;
  }

  .p-instagram-cta {
    width: 184px;
  }

  .p-instagram-cta--2 {
    inset: 0% auto auto 0%;
    transform: translate(-6px, -94px);
    width: 178px;
  }

  .p-instagram-cta--3 {
    inset: 0% 0% auto auto;
    transform: translate(10px, -92px);
    width: 176px;
  }

  .p-instagram-cta--4 {
    inset: -1.1% auto auto -2.8%;
    width: 178px;
  }

  .p-overview__deco--flower {
    inset: 0% auto auto 0%;
    transform: translate(-48px, -54px);
    width: 96px;
  }

  .p-overview__deco--photo {
    inset: 31.5% -13% auto auto;
    width: 31%;
  }

  .p-overview__deco--circle1 {
    inset: 36% auto auto -13%;
    width: 24%;
  }

  .p-overview__deco--circle3 {
    inset: 50% -12% auto auto;
    width: 12%;
  }

  .p-overview__deco--sm {
    inset: -6% 2% auto auto;
    width: 3.8%;
  }

  .p-overview__deco--md {
    inset: 48% auto auto 6.5%;
    width: 5.6%;
  }

  .p-overview__deco--dog {
    inset: 68% auto auto -10%;
    width: 31%;
  }

  .p-event-card {
    border-radius: 16px;
    padding: 22px 12px 48px;
  }

  .p-event-card__badge {
    inset: 0% auto auto 0%;
    transform: translate(12px, -6px);
    width: 30px;
  }

  .p-event-card__image {
    height: 96px;
    margin-bottom: 8px;
  }

  .p-event-card__title {
    font-size: 20px;
    line-height: 22px;
    margin-bottom: 6px;
  }

  .p-event-card__schedule {
    font-size: 14px;
    line-height: 22px;
    margin-bottom: 6px;
  }

  .p-event-card__desc {
    font-size: 12px;
    line-height: 20px;
  }

  .p-event-card__small {
    font-size: 10px;
  }

  .p-events__deco-dog {
    inset: auto 0% 0% auto;
    transform: translateY(34px);
    width: 180px;
  }

  .p-events__deco-paw {
    inset: auto 0% 0% auto;
    transform: translate(-116px, -150px);
    width: 88px;
  }

  .p-events__deco-circle {
    inset: 0% auto auto 0%;
    transform: translate(-70px, -200px);
    width: 220px;
    height: 220px;
  }

  .p-events__deco-star {
    inset: 0% auto auto 0%;
    transform: translate(78px, -42px);
    width: 26px;
  }

  .p-access__deco-dog {
    inset: auto auto -1.8% 8%;
    width: 170px;
  }
}

/* --------------------------------------------------
   Components
   -------------------------------------------------- */

/* ボタン */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  max-width: 390px;
  height: 65px;
  background-color: var(--color-pink);
  color: #fff;
  border-radius: 10px;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
  position: relative;
  margin: 0 auto;
}

.c-btn__arrow {
  position: absolute;
  inset: 50% 0% auto auto;
  transform: translate(-20px, -50%);
  width: 10px;
  height: 15px;
}

/* セクション内のボタン中央寄せ */
.p-ticket__method .c-btn,
.p-access__inner .c-btn,
.p-booth__inner > .c-btn {
  display: flex;
  margin: 0 auto 10px;
}


.c-btn.disabled {
  background: #ccc!important;
  pointer-events: none!important;
}



/* スクロールトップ */
.c-scroll-top {
  position: fixed;
  inset: auto 0% 0% auto;
  transform: translate(-20px, -40px);
  width: 50px;
  height: 79px;
  z-index: 90;
}

.c-scroll-top img {
  width: 100%;
  height: 100%;
}

@media (hover: hover) {
  a {
    transition: opacity 0.2s ease;
  }

  a:hover {
    opacity: 0.8;
  }
}

@media screen and (max-width: 767px) {
  .p-overview {
    padding: 5px 0 280px;
  }

  .p-instagram-cta {
    width: 54%;
    height: auto;
  }

  .p-hero__instagram {
    inset: auto auto 3.59% 1.8%;
    width: 57.2%;
  }

  .p-instagram-cta--2,
  .p-instagram-cta--3,
  .p-instagram-cta--4 {
    position: absolute;
    inset: auto auto 100.5% 22%;
    transform: none;
  }

  .p-overview__heading {
    font-size: 28px;
    line-height: 44px;
    text-align: center;
    margin-bottom: 15px;
  }

  .p-overview__quote {
    inset: 0% auto auto 0%;
    transform: translate(-18px, -27px);
    width: 19.7%;
  }

  .p-overview__deco--photo {
    inset: 35% auto auto 50%;
    width: 66%;
    transform: translateX(-50%);
  }

  .p-overview__ribbon {
    width: 270px;
  }

  .p-overview__detail-label span {
    font-size: 18px;
  }

  .p-overview__heading-line {
    display: block;
  }

  .p-overview__lead {
    font-size: 15px;
    font-weight: 700;
    line-height: 32px;
    text-align: center;
    margin-bottom: 290px;
  }

  .p-overview__date {
    font-size: 24px;
  }

  .p-overview__date-num {
    font-size: 1.67em;
  }

  .p-overview__detail-sub {
    font-size: 18px;
  }

  .p-overview__detail-sub--small {
    font-size: 16px;
  }

  .p-overview__detail-note.p-overview__detail-note--red {
    font-size: 18px;
  }

  .p-overview__detail-note {
    font-size: 11px;
  }

  .p-overview__detail-value--venue {
    font-size: 28px;
    margin-bottom: 0;
  }

  .p-ticket {
    padding: 210px 0 120px;
  }

  .p-ticket__heading {
    margin-bottom: 50px;
  }

  .p-ticket__heading-title {
    font-size: 22px;
  }

  .p-ticket__subtitle {
    font-size: 28px;
    margin-bottom: 15px;
  }

  .p-ticket__highlight {
    font-size: 20px;
    line-height: 26px;
    margin-bottom: 40px;
  }

  .p-ticket__highlight-accent {
    font-size: 1.5em;
    line-height: 1.1;
  }

  .p-ticket__highlight--set {
    margin-bottom: 20px;
  }

  .p-ticket__highlight--set .p-ticket__highlight-accent {
    font-size: 1.5em;
  }

  .p-ticket__highlight--set .p-ticket__highlight-em {
    font-size: 1em;
  }

  .p-ticket__highlight-em,
  .p-ticket__highlight-num {
    font-size: 1em;
  }

  .p-ticket__method:first-of-type .p-ticket__method-title {
    font-size: 20px;
    margin-bottom: 15px;
  }

  .p-ticket__method-title {
    padding-bottom: 12px;
  }

  .p-ticket__method:first-of-type .p-ticket__method-detail {
    font-size: 18px;
    font-weight: 700;
  }

  .p-ticket__frame {
    border-radius: 20px;
    padding: 40px 15px 140px;
  }

  .p-ticket__frame-deco {
    width: 45.8%;
  }

  .p-ticket__deco-dog {
    inset: auto auto -5% 9%;
    width: 40%;
  }

  .p-ticket__frame-deco--tl {
    inset: 0% auto auto 0%;
    transform: translate(-10px, -10px);
  }

  .p-ticket__frame-deco--br {
    inset: auto 0% 0% auto;
    transform: translate(10px, 10px);
  }

  .p-ticket__frame > .p-ticket__method:not(:nth-of-type(3)) {
    margin-bottom: 48px;
  }

  .p-ticket__method-detail {
    font-size: 16px;
    font-weight: 400;
    line-height: 30px;
  }

  .p-ticket__method-detail strong {
    font-size: 18px;
  }

  .p-ticket__method-steps {
    line-height: 2;
  }

  .p-ticket__method-text {
    font-size: 16px;
  }

  .p-ticket__separator {
    margin: 40px 0 35px;
    height: 8px;
    object-fit: cover;
  }

  .p-ticket__set-cards {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 35px;
  }

  .p-ticket__set-item {
    width: 100%;
    max-width: 260px;
  }

  .p-ticket__set-period {
    font-size: 18px;
    margin-bottom: 30px;
  }

  .p-ticket__set-card {
    padding: 18px 0;
  }

  .p-ticket__set-heading span {
    font-size: 20px;
  }

  .p-events__grid {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-inline: 30px;
  }

  .c-btn {
    height: 65px;
    border-radius: 10px;
    max-width: 320px;
  }

  .p-ticket__note {
    font-size: 14px;
  }

  .p-ticket__set-save {
    font-size: 16px;
  }

  .p-ticket__set-name {
    font-size: 20px;
  }

  .p-ticket__set-price {
    font-size: 20px;
  }

  .p-ticket__set-num {
    font-size: 40px;
  }

  .p-ticket__set-note {
    font-size: 14px;
    margin-top: 20px;
  }

  .p-events__lead {
    font-size: 22px;
  }

  .p-event-card__title {
    font-size: 20px;
  }

  .p-events {
    position: relative;
    padding: 240px 0 355px;
  }

  .p-events__heading {
    margin-bottom: 18px;
  }

  .p-events__note {
    font-size: 12px;
  }

  .p-booth {
    position: relative;
    padding: 230px 0 60px;
    background-color: var(--color-lightcyan);
  }

  .p-event-card:first-child .p-event-card__title {
    font-size: 22px;
  }

  .p-event-card:first-child .p-event-card__schedule {
    font-size: 18px;
  }

  .p-event-card:first-child .p-event-card__desc {
    font-size: 15px;
  }

  .p-booth__shop-item--musubi {
    font-size: 17px;
  }

  .p-booth__heading {
    margin-bottom: 20px;
  }

  .p-booth__coming {
    margin-bottom: 25px;
  }

  .p-booth__inner {
    padding-inline: 10px;
  }

  .p-booth__shop-list li:nth-child(-n+2) {
    border-top: none;
  }

  .p-booth__shop-list li:first-child {
    border-top: 1px solid var(--color-turquoise);
  }

  .p-booth__card {
    padding: 65px 25px 60px;
  }

  .p-booth__shop-list {
    grid-template-columns: 1fr;
    column-gap: 0;
  }

  .p-overview__deco--dog {
    inset: auto auto -18.5% 50%;
    width: 67.33%;
    transform: translateX(-50%);
  }

  .p-overview__deco--circle1 {
    inset: 43% auto auto 52.67%;
    width: 27.98%;
  }

  .p-overview__deco--circle3 {
    inset: auto auto -8% -10%;
    width: 49%;
    z-index: 0;
  }

  .p-overview__deco--sm {
    display: none;
  }

  .p-overview__deco--md {
    width: 13%;
    inset: auto auto -4.5% 71%;
  }

  .p-overview__deco--flower {
    display: none;
  }

  .p-events__deco-dog {
    position: absolute;
    inset: auto 21% -8.8% auto;
    transform: none;
    width: 53%;
    z-index: 1;
  }

  .p-events__deco-circle,
  .p-events__deco-circle2 {
    display: none;
  }

  .p-events__deco-star {
    display: none;
  }

  .p-events__deco-paw {
    position: absolute;
    width: 30.15%;
    z-index: 0;
    inset: auto auto -4% 11%;
    transform: none;
  }

  .p-contact__tel-num {
    font-size: 30px;
  }

  .p-contact__tel-note {
    display: block;
    font-size: 14px;
  }

  .p-sponsor__banners {
    gap: 30px;
    grid-template-columns: 1fr;
    margin-bottom: 50px;
  }

  .l-footer__copyright {
    font-size: 13px;
    padding: 35px 0;
  }

  .p-sponsor__supporters {
    font-size: 16px;
  }

  .p-sponsor__label {
    font-size: 18px;
  }

  .p-sponsor__heading-title {
    font-size: 22px;
  }

  .p-contact__heading-title {
    font-size: 22px;
  }

  .p-notice__heading-title {
    font-size: 22px;
  }

  .p-notice {
    padding: 40px 0 60px;
    background-color: var(--color-lightcyan);
  }

  .p-notice__blocks {
    border-radius: 60px;
    background: #fff;
    padding: 40px 15px 80px;
  }

  .p-notice__list {
    padding: 0;
  }

  .p-notice__block:not(:last-child) {
    margin-bottom: 60px;
  }

  .p-contact__org {
    font-size: 18px;
  }

  .p-contact__email {
    font-size: 16px;
  }

  .p-sponsor {
    padding: 20px 0 50px;
    background-color: var(--color-paleturquoise);
  }

  .p-notice__block:nth-of-type(2) .p-notice__item {
    font-size: 15px;
  }

  .p-notice__block:nth-of-type(2) .p-notice__subtitle span {
    font-size: 20px;
  }

  .p-notice__subtitle-deco {
    width: 317px;
  }

  .p-booth__category-tab {
    width: 93.1%;
  }

  .p-booth__category-tab img {
    max-width: 320px;
    margin: auto;
  }

  .p-soulfoodjam {
    padding: 20px 0 60px;
  }

  .p-soulfoodjam__inner {
    padding-inline: 15px;
  }

  .p-soulfoodjam__logos {
    margin-bottom: 30px;
  }

  .p-soulfoodjam__title {
    font-size: 40px;
  }

  .p-access__note {
    font-size: 15px;
  }

  .p-access__parking {
    font-size: 22px;
  }

  .p-sponsor__heading {
    margin-bottom: 30px;
  }

  .p-access__address {
    font-size: 18px;
  }

  .p-access {
    position: relative;
    padding: 50px 0 270px;
  }

  .p-access__deco-dog {
    width: 70%;
  }

  .p-access__lead {
    font-size: 22px;
  }

  .p-access__heading-title {
    font-size: 22px;
  }

  .p-ticket__heading-deco {
    width: 316px;
  }

  .p-events__heading-deco {
    width: 316px;
  }

  .p-booth__heading-deco {
    width: 316px;
  }

  .p-access__heading-deco {
    width: 316px;
  }

  .p-notice__heading-deco {
    width: 316px;
  }

  .p-contact__heading-deco {
    width: 316px;
  }

  .p-sponsor__heading-deco {
    width: 316px;
  }

  .p-access__photo {
    aspect-ratio: 369 / 159.66;
  }

  .u-sp-br {
    display: revert;
  }

  .u-pc-br {
    display: none;
  }

  .p-hero__main {
    inset: 19.58% auto auto 50%;
    width: 100%;
  }

  .p-hero__badge {
    inset: 7.58% 2.4% auto auto;
    width: 41.8%;
  }
}
