/* =============================================
  LP（Template Name: LP / page-lp.php）
============================================= */
#wpadminbar {
  display: none;
}

* {
    box-sizing: border-box;
  }
a {
		text-decoration: none;
		color: inherit;
	}
img {
	width: 100%;
	height: auto;
}

.page-lp {
  --header-height: 80px;
  --lp-color-text: #465059;
  --lp-color-accent: #ffa19a;
  --lp-color-line: rgba(247, 199, 220, 0.9);
  font-family: "Noto Sans JP", sans-serif;
  color: var(--lp-color-text);

  @media (max-width: 1023px) {
    --header-height: 64px;
  }
}

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

.p-lp-wrapper {
  padding-top: var(--header-height);
  overflow: clip;
}

/* =============================================
  Utility（改行制御）
============================================= */
.u-br--pc {
  display: inline;

  @media (max-width: 1023px) {
    display: none;
  }
}

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

  @media (max-width: 1023px) {
    display: inline;
  }
}

/* =============================================
  固定エントリーボタン（PC）
============================================= */
.p-lp-fixed-entry {
  position: fixed;
  z-index: 9999;
  right: 0;
  bottom: 10%;
  left: auto;

  @media (max-width: 1023px) {
    display: none;
  }
}

.p-lp-fixed-entry__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 32px 24px;
  border: 2px solid #3bcac1;
  border-radius: 16px 0 0 16px;
  background-color: #3bcac1;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  writing-mode: vertical-lr;
  transition:
    background-color 0.3s ease-in-out,
    color 0.3s ease-in-out;

  @media (hover: hover) {
    &:hover {
      background-color: #fff;
      color: #3bcac1;
    }
  }
}

.p-lp-fixed-entry__icon {
  width: 26px;
  height: auto;

  & svg rect {
    fill: #fff;
  }

  & svg path {
    transition: fill 0.3s ease-in-out;
  }

  @media (hover: hover) {
    .p-lp-fixed-entry__btn:hover & svg path {
      fill: #3bcac1;
    }
  }
}

/* =============================================
  ヘッダー
============================================= */

.p-lp-header {
  position: fixed;
  top: 0;
  z-index: 100;
  background-color: #fff;
  padding: 7px 20px 6px;
  width: 100%;

  @media (max-width: 1023px) {
    padding-top: 0;
    padding-right: 0;
  }
}

.p-lp-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  max-width: 1200px;
  margin: 0 auto;
  min-height: var(--header-height);
}

.p-lp-header__logo {
  /* flex-shrink: 0; */
  margin: 0;
  line-height: 0;

  & a {
    display: block;
  }

  & img {
    width: 191px;
    height: auto;
    max-width: none;

    @media (max-width: 1023px) {
      width: 125px;
    }
  }
}

.p-lp-header__nav {
  display: flex;
  align-items: center;
  gap: 40px;
  margin-left: auto;

  @media (max-width: 1200px) {
    gap: 20px;
  }

  @media (max-width: 1023px) {
    display: none;
  }
}

.p-lp-header__nav-list {
  display: flex;
  align-items: center;
  gap: 29px;
  list-style: none;
  margin: 0;
  padding: 0;

  @media (max-width: 1200px) {
    gap: 16px;
  }
}

.p-lp-header__nav-link {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.8px;
  color: var(--lp-color-text);
  white-space: nowrap;
  transition: opacity 0.3s ease;

  &:hover {
    opacity: 0.7;
  }
}

.p-lp-header__cta-list {
  display: flex;
  align-items: center;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-lp-header__cta-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 16px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.8px;
  color: var(--lp-color-text);
  white-space: nowrap;
  transition: opacity 0.3s ease;
}

.p-lp-header__cta-link--outline {
  border: 1px solid var(--lp-color-text);
  background-color: #fff;
  position: relative;
  transition:
    color 0.3s ease,
    background-color 0.3s ease;

  &::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 100%;
    height: 100%;
    border: 2px solid var(--lp-color-text);
    z-index: -1;
    pointer-events: none;
    filter: blur(2px);
    opacity: 0.5;
  }

  &:hover {
    opacity: 1;
    background: var(--lp-color-text);
    color: #fff;
  }
}

.p-lp-header__cta-item:first-child .p-lp-header__cta-link--outline {
  min-width: 127px;
}

.p-lp-header__cta-item:last-child .p-lp-header__cta-link--outline {
  min-width: 148px;
}

.p-lp-header__menu-btn {
  display: none;
  flex-shrink: 0;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  line-height: 0;

  @media (max-width: 1023px) {
    display: block;
    align-self: flex-start;
    margin: 0;
  }
}

.p-lp-header__menu-btn-icon {
  display: block;
  width: 53px !important;
  height: 45px;
  max-width: none;
}

/* ドロワー */
.p-lp-header__drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 200;
  background-color: #fff;
  overflow-y: auto;
}

.p-lp-header__drawer.is-open {
  display: block;
}

.p-lp-header__drawer-inner {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 0 18px 40px;
}

.p-lp-header__drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  min-height: 64px;
}

.p-lp-header__drawer-logo {
  margin: 0;
  line-height: 0;

  & img {
    width: 125px;
    height: auto;
    max-width: none;
  }
}

.p-lp-header__drawer-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-top: 6px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;

  & img {
    width: 22.5px;
    aspect-ratio: 1/1;
  }
}

.p-lp-header__drawer-nav-list {
  list-style: none;
  margin: 0;
  padding: 0 6px;
}

.p-lp-header__drawer-nav-item {
  border-bottom: 1px solid #e8e8e8;
}

.p-lp-header__drawer-nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 6px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  color: var(--lp-color-text);
}

.p-lp-header__drawer-nav-arrow {
  flex-shrink: 0;
  width: 15px;
  height: auto;
  max-width: none;
}

.p-lp-header__drawer-cta-list {
  list-style: none;
  margin: auto 0 0;
  padding: 48px 24px 0;
}

.p-lp-header__drawer-cta-item {
  & + .p-lp-header__drawer-cta-item {
    margin-top: 16px;
  }
}

.p-lp-header__drawer-cta-link {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 100%;
  max-width: 279px;
  margin: 0 auto;
  min-height: 60px;
  padding: 0 40px 0 24px;
  border-radius: 37px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  transition: opacity 0.3s ease;

  &:hover {
    opacity: 0.85;
  }
}

.p-lp-header__drawer-cta-link--requirements {
  background-color: rgba(255, 161, 154, 0.3);
  color: var(--lp-color-text);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

.p-lp-header__drawer-cta-link--line {
  background-color: var(--lp-color-line);
  border: 1px solid #fff;
  color: #fff;
  font-weight: 700;
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.25);
}

.p-lp-header__drawer-cta-icon {
  position: absolute;
  right: 24px;
  top: 50%;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 8px;
  border-color: transparent transparent transparent var(--lp-color-text);
  transform: translateY(-50%);
}

.p-lp-header__drawer-cta-icon--white {
  border-left-color: #fff;
}

/* =============================================
  FV
============================================= */
.p-fv {
}
.p-fv__inner {
  max-width: calc(100% - 240px);
  margin: 0 auto;
  position: relative;

  @media (max-width: 1023px) {
    max-width: unset;
    padding-inline: 24px;
  }
}

.p-fv__bg-1 {
  position: absolute;
  top: calc(-13 / 1440 * 100vw);
  left: calc(-119 / 1440 * 100vw);
  width: calc(278 / 1440 * 100vw);

  @media (max-width: 1023px) {
    top: calc(-6 / 375 * 100vw);
    left: calc(-48 / 375 * 100vw);
    width: calc(90 / 375 * 100vw);
  }
}
.p-fv__bg-2 {
  position: absolute;
  top: calc(147 / 1440 * 100vw);
  left: calc(-54 / 1440 * 100vw);
  width: calc(147 / 1440 * 100vw);

  @media (max-width: 1023px) {
    top: calc(43 / 375 * 100vw);
    left: calc(-32 / 375 * 100vw);
    width: calc(59 / 375 * 100vw);
  }
}
.p-fv__bg-3 {
  position: absolute;
  top: calc(246 / 1440 * 100vw);
  left: calc(-409 / 1440 * 100vw);
  width: calc(740 / 1440 * 100vw);
  z-index: -1;

  @media (max-width: 1023px) {
    top: calc(61 / 375 * 100vw);
    left: calc(-340 / 375 * 100vw);
    width: calc(500 / 375 * 100vw);
  }
}
.p-fv__bg-4 {
  position: absolute;
  top: 0;
  right: calc(-321 / 1440 * 100vw);
  width: calc(740 / 1440 * 100vw);
  z-index: -1;

  @media (max-width: 1023px) {
    top: calc(-40 / 375 * 100vw);
    right: calc(-120 / 375 * 100vw);
    width: calc(250 / 375 * 100vw);
  }
}

.p-fv__image {
  position: relative;

  @media (max-width: 1023px) {
    max-width: calc(100% - 48px);
    margin: 0 auto;
  }
	
	& img {
		width: 100%;
	}
}
.p-fv__content {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 13px;
  transform: translateY(-50%);

  @media (max-width: 1023px) {
    top: 0;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    padding-block: 35px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
}
.p-fv__title-inner {
  font-size: 24px;
  color: #fff;
  font-weight: 900;
  letter-spacing: 0.1em;
  display: flex;
  gap: 18px;
  align-items: baseline;
  line-height: 1;

  @media (max-width: 1023px) {
    font-size: 14px;
    gap: 6px;
    padding-inline: 24px;
    line-height: 1.4;
  }

  & strong {
    font-size: 70px;
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
    font-family: Roboto, sans-serif;

    @media (max-width: 1023px) {
      font-size: 32px;
    }
  }
}
.p-fv__list {
  margin: 15px 0 0;
  list-style: none;
  padding: 0;
  display: grid;
  gap: 15px;

  @media (max-width: 1023px) {
    gap: 5px;
    padding-inline: 32px;
  }
}
.p-fv__item {
  width: max-content;
  background: #fff;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: 0.1em;
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 4px;
  align-items: center;
  padding: 14px;

  @media (max-width: 1023px) {
    font-size: 14px;
    padding: 8px;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
  }

  &::before {
    content: "";
    width: 22px;
    aspect-ratio: 1/1;
    background: url(../img/lp/icon-check.svg) no-repeat center center/cover;

    @media (max-width: 1023px) {
      width: 13px;
    }
  }
}
.p-fv__button {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 1;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;

  @media (max-width: 1023px) {
    margin-top: 12px;
    position: static;
    display: block;
    margin-inline: auto;
  }
}
.p-fv__button-link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  text-align: center;
  background: #fef1ec;
  border: 1px solid #ffa19a;
  position: relative;
  width: 217px;
  aspect-ratio: 1/1;
  border-radius: 50%;

  @media (max-width: 1023px) {
    width: 324px;
    aspect-ratio: unset;
    border-radius: calc(1px / 0);
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    padding: 7px 22px;
    gap: 13px;
  }

  &:hover {
    background: #ffcfbd;
    opacity: 1;

    &::after {
      background: #fef1ec;
    }
  }

  &::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    left: 5px;
    top: 5px;
    border-radius: 50%;
    background: #ffcfbd;
    border: 1px solid #ffa19a;
    z-index: -1;
    transition: background 0.3s ease;

    @media (max-width: 1023px) {
      border-radius: calc(1px / 0);
      left: 3px;
      top: 4px;
    }
  }
}
.p-fv__button-text-1 {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.05em;
  font-family: Roboto, sans-serif;
}
.p-fv__button-text-2 {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;

  & br {
    @media (min-width: 1024px) {
      display: none;
    }
  }

  @media (max-width: 1023px) {
    font-size: 14px;
    text-align: center;
    font-weight: 500;
  }
}
.p-fv__button-image {
  margin-top: 4px;
  position: relative;

  @media (max-width: 1023px) {
    margin-top: 0;
  }

  & img {
    width: 48px;

    @media (max-width: 1023px) {
      width: 45px;
    }
  }

  &::after {
    content: "";
    position: absolute;
    width: 56px;
    aspect-ratio: 56/70;
    top: 10px;
    right: 0;
    background: url(../img/lp/icon-finger.svg) no-repeat center center/contain;

    @media (max-width: 1023px) {
      right: auto;
      left: calc(100% + 9px);
    }
  }
}

/* =============================================
  BANNER
============================================= */
.p-banner {
  margin-top: 100px;
  padding-inline: 20px;

  @media (max-width: 1023px) {
    margin-top: 68px;
  }
}
.p-banner__link {
  display: block;
  max-width: 643px;
  margin: 0 auto;
  text-align: center;
}

/* =============================================
  PICK UP NEWS
============================================= */
.p-pickup {
  --pickup-panel-bg: rgba(255, 161, 154, 0.3);
  --pickup-tab-inactive: rgba(255, 161, 154, 0.5);
  position: relative;
  margin-top: 160px;
  padding: 0 48px 80px;

  @media (max-width: 1023px) {
    margin-top: 60px;
    padding-bottom: 56px;
  }
}

.p-pickup__bg-1 {
  position: absolute;
  width: 18vw;
  top: calc(-320 / 1440 * 100vw);
  left: 0;
  z-index: -1;

  @media (max-width: 1023px) {
    display: none;
  }
}
.p-pickup__bg-2 {
  position: absolute;
  width: 19vw;
  right: 0;
  top: calc(-375 / 1440 * 100vw);
  z-index: -1;

  @media (max-width: 1023px) {
    width: 21vw;
    top: calc(-83 / 375 * 100vw);
  }
}
.p-pickup__bg-3 {
  position: absolute;
  width: 23vw;
  left: 0;
  bottom: calc(-160 / 1440 * 100vw);
  z-index: -1;

  @media (max-width: 1023px) {
    width: 30vw;
    bottom: calc(-78 / 375 * 100vw);
  }
}

.p-pickup__confetti {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
}

.p-pickup__deco {
  position: absolute;
  pointer-events: none;
  z-index: 0;

  & img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
  }
}

.p-pickup__deco--bottom {
  right: max(-40px, calc(50% - 820px));
  bottom: -20px;
  width: clamp(80px, 18vw, 160px);

  @media (max-width: 1023px) {
    right: -24px;
    bottom: 0;
    width: 72px;
    opacity: 0.6;
  }
}

.p-pickup__inner {
  position: relative;
  z-index: 1;
  max-width: 960px;
  margin: 0 auto;
}

.p-pickup__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  margin-bottom: 50px;

  @media (max-width: 1023px) {
    margin-bottom: 28px;
  }
}

.p-pickup__title {
  margin: 0;
  font-family: Roboto, sans-serif;
  font-size: clamp(28px, 5vw, 48px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.05em;
  color: var(--lp-color-accent);
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  position: relative;
  z-index: 0;

  &::before {
    content: "";
    position: absolute;
    bottom: -118px;
    left: -295px;
    width: 799px;
    aspect-ratio: 693/321;
    background: url(../img/lp/pickup-title-deco.svg) no-repeat center center/contain;
    z-index: -1;
    pointer-events: none;

    @media (max-width: 1023px) {
      background-image: url(../img/lp/pickup-title-deco-sp.svg);
      width: 251px;
      aspect-ratio: 251 / 232;
      bottom: -139px;
      left: -46px;
    }
  }
}

.p-pickup__title-line {
  flex: 1 1 200px;
  min-width: 120px;
  line-height: 0;

  & img {
    display: block;
    width: 100%;
    height: 10px;
    max-width: 598px;
  }
}

.p-pickup__box {
  max-width: 960px;
  margin: 0 auto;
}

.p-pickup__tabs {
  display: flex;

  @media (max-width: 1023px) {
    gap: 2px;
  }
}

.p-pickup__tab {
  min-height: 64px;
  margin: 0;
  padding: 12px 32px;
  border: none;
  border-radius: 20px 20px 0 0;
  background-color: var(--pickup-tab-inactive);
  font-family: inherit;
  font-size: clamp(16px, 2.2vw, 24px);
  font-weight: 700;
  line-height: 1.3;
  color: var(--lp-color-text);
  text-align: center;
  cursor: pointer;
  transition: background-color 0.25s ease;

  &:hover {
    filter: brightness(1.02);
  }

  &[aria-selected="true"] {
    background-color: var(--pickup-panel-bg);
  }

  @media (max-width: 1023px) {
    flex-grow: 1;
    min-height: 52px;
    padding: 10px 8px;
    border-radius: 10px 10px 0 0;
  }
}

.p-pickup__tab:last-of-type {
  flex: 0 0 clamp(100px, 22vw, 140px);

  @media (max-width: 1023px) {
    flex: 0 0 60px;
  }
}

.p-pickup__panel {
  background-color: var(--pickup-panel-bg);
  padding: 32px 40px 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 108px;
  row-gap: 12px;

  @media (max-width: 1023px) {
    padding: 24px 16px 28px;
    grid-template-columns: 1fr;
    row-gap: 8px;
  }
}

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

.p-pickup__list {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: subgrid;
  row-gap: 16px;

  @media (max-width: 1023px) {
    row-gap: 12px;
  }
}

.p-pickup__row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: flex-end;
  gap: 12px 16px;
  padding-bottom: 4px;
  border-bottom: 2px solid;

  @media (max-width: 1023px) {
    padding-bottom: 0;
    border-bottom-width: 0.5px;
  }
}

.p-pickup__store {
  margin: 0;
  font-size: clamp(16px, 2.5vw, 24px);
  font-weight: 500;
  line-height: 1.4;
  color: var(--lp-color-text);
}

.p-pickup__meta-label {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--lp-color-text);
  text-align: right;

  @media (max-width: 1023px) {
    font-size: 14px;
  }
}

.p-pickup__meta-label--2 {
  @media (max-width: 1023px) {
    display: none;
  }
}

.p-pickup__remain {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0 4px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--lp-color-text);

  @media (max-width: 1023px) {
    font-size: 14px;
  }
}

.p-pickup__remain-num {
  font-family: Roboto, sans-serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 1;

  @media (max-width: 1023px) {
    font-size: 24px;
  }
}

.p-pickup__cta-wrap {
  margin: 78px 0 0;
  text-align: center;

  @media (max-width: 1023px) {
    margin-top: 28px;
  }
}

/* =============================================
  LP共通ボタン（template-parts/lp-btn.php）
============================================= */
.p-lp-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 374px;
  min-height: 74px;
  padding: 12px 40px;
  border-radius: 37px;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  transition: opacity 0.3s ease;

  &:hover {
    opacity: 0.88;
  }

  @media (max-width: 1023px) {
    min-height: 60px;
    max-width: 279px;
    padding: 12px 28px;
    font-size: 16px;
  }
}

.p-lp-btn__icon {
  position: absolute;
  right: 25px;
  top: 50%;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 7px 0 7px 10px;
  border-color: transparent transparent transparent currentColor;
  transform: translateY(-50%);

  @media (max-width: 1023px) {
    right: 20px;
    border-width: 6px 0 6px 9px;
  }
}

.p-lp-btn--pickup {
  background-color: rgba(255, 161, 154, 0.3);
  color: var(--lp-color-text);
}

.p-lp-btn--entry {
  background-color: #ffffff;
  border: 2px solid var(--lp-color-text);
  color: var(--lp-color-text);
}

.p-lp-btn--line {
  background-color: #f7c7dc;
  border: 2px solid #ffffff;
  color: #ffffff;
}

.p-lp-btn--view-more {
  max-width: 320px;
  background-color: #ffffff;
  border: 2px solid var(--lp-color-text);
  color: var(--lp-color-text);
  font-family: Roboto, sans-serif;
  letter-spacing: 0.05em;
}

/* =============================================
  JOIN（お問い合わせ・LINE エントリー）
============================================= */
.p-join {
}

.p-join__title {
  text-align: center;
  padding-inline: 24px;
  position: relative;

  & img {
    display: inline-block;
    width: auto;
    height: auto;
    max-width: 100%;
    width: 1200px;
  }

  &::after {
    content: "";
    position: absolute;
    bottom: calc(26 / 1440 * 100vw);
    right: 0;
    width: 20vw;
    aspect-ratio: 300 / 499;
    background: url(../img/lp/join-title-deco.svg) no-repeat center center/contain;
    z-index: -1;
    pointer-events: none;

    @media (max-width: 1023px) {
      bottom: calc(34 / 375 * 100vw);
      width: 31.5vw;
    }
  }
}

.p-join__content {
}

.p-join__box {
  max-width: 1440px;
  margin: 0 auto;
  padding: 90px 20px;
  background-color: #fef1ec;
  border: 5px solid #f7c7dc;
  border-radius: 45px;

  @media (max-width: 1023px) {
    padding: 45px 16px;
    border-width: 3px;
    border-radius: 23px;
  }
}

.p-join__block + .p-join__block {
  margin-top: 67px;

  @media (max-width: 1023px) {
    margin-top: 40px;
  }
}

.p-join__heading {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);
  text-align: center;

  @media (max-width: 1023px) {
    font-size: 18px;
    line-height: 1.6;
  }
}

.p-join__heading-text {
  display: inline;
  background: linear-gradient(to bottom, transparent 80%, #fff 0%);

  @media (max-width: 1023px) {
    padding-bottom: 3px;
    border-bottom-width: 5px;
  }
}

.p-join__heading--line .p-join__heading-text {
  border-bottom-color: #f7c7dc;
}

.p-join__lead {
  margin: 26px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);
  text-align: center;

  @media (max-width: 1023px) {
    margin-top: 15px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.7;
  }
}

.p-join__heading-text--alt {
  background: linear-gradient(to bottom, transparent 80%, #f7c7dc 0%);
}

.p-join__btn {
  display: flex;
  margin: 30px auto 0;

  @media (max-width: 1023px) {
    margin-top: 15px;
  }
}

/* =============================================
  BENEFIT（スタッフから選ばれる3つの理由）
============================================= */
.p-benefit {
  margin-top: 120px;
  padding: 0 24px;
  position: relative;

  @media (max-width: 1023px) {
    margin-top: 48px;
  }
}

.p-benefit__head {
  position: relative;
  z-index: 0;
  max-width: 1440px;
  margin: 0 auto;
  padding-top: 100px;
  text-align: center;

  @media (max-width: 1023px) {
    padding-top: 32px;
  }
}

.p-benefit__bg-text {
  display: block;
  margin-right: -24px;
  text-align: right;
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 200px;
  line-height: 1;
  letter-spacing: 0.2em;
  white-space: nowrap;
  color: rgba(252, 232, 241, 0.5);
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  pointer-events: none;

  @media (max-width: 1023px) {
    font-size: 48px;
    letter-spacing: 0.18em;
  }

  & img {
    width: 1024px;
    height: auto;

    @media (max-width: 1023px) {
      width: 246px;
    }
  }
}

.p-benefit__ellipse {
  position: absolute;
  top: 0;
  left: -275px;
  width: 757px;
  height: 757px;
  border-radius: 50%;
  background: linear-gradient(170deg, #fddde2 8.32%, #fce8f1 34.85%, #fef1ec 51.45%);
  pointer-events: none;
  z-index: -1;

  @media (max-width: 1023px) {
    top: 0;
    left: calc(50% - 259px);
    width: 247px;
    height: 247px;
  }
}

.p-benefit__blob {
  position: absolute;
  top: calc(234 / 1440 * 100vw);
  right: 0;
  width: 15vw;
  pointer-events: none;
  z-index: -1;

  & img {
    display: block;
    width: 100%;
    height: 100%;
  }

  @media (max-width: 1023px) {
    top: calc(60 / 375 * 100vw);
    right: -8px;
    width: calc(86 / 375 * 100vw);
  }
}

.p-benefit__title-wrapper {
  position: relative;
  z-index: 1;
  margin-top: 40px;
  text-align: center;

  @media (max-width: 1023px) {
    margin-top: 20px;
  }
}

.p-benefit__title {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  color: var(--lp-color-text);
  line-height: 1;
  letter-spacing: 0.02em;
}

.p-benefit__title-text {
  font-size: 48px;

  @media (max-width: 1023px) {
    font-size: 24px;
  }
}

.p-benefit__title-num {
  position: relative;
  display: inline-flex;
  align-items: flex-end;
  justify-content: center;
  margin: 0 8px;
  padding-bottom: 6px;

  & strong {
    position: relative;
    z-index: 1;
    font-family: Roboto, sans-serif;
    font-weight: 900;
    font-style: normal;
    font-size: 96px;
    line-height: 1;
    color: #f7c7dc;
    -webkit-text-stroke: 8px #465059;
    text-stroke: 8px #465059;
    paint-order: stroke fill;

    @media (max-width: 1023px) {
      font-size: 48px;
      -webkit-text-stroke-width: 4px;
      text-stroke-width: 4px;
      display: inline-block;
      margin-top: 8px;
    }
  }

  &::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -14px;
    width: 135px;
    aspect-ratio: 114 / 45;
    transform: translateX(-50%);
    pointer-events: none;
    z-index: -1;
    max-width: unset !important;
    background: url(../img/lp/benefit-title-curve.svg) no-repeat center center/contain;

    @media (max-width: 1023px) {
      width: 72px;
      background-image: url(../img/lp/benefit-title-curve-sp.svg);
      bottom: -8px;
    }
  }

  @media (max-width: 1023px) {
    margin: 0 4px;
    padding-bottom: 0;
  }
}

.p-benefit__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 1053px;
  margin: 100px auto 0;
  padding: 60px 0 0;
  list-style: none;

  @media (max-width: 1023px) {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 60px;
    margin-top: 5px;
    padding-top: 30px;
    padding-inline: 24px;
  }
}

.p-benefit__item {
  position: relative;
  display: flex;
  flex-direction: column;
}

.p-benefit__media {
  position: relative;
  margin-bottom: 30px;

  @media (max-width: 1023px) {
    margin-bottom: 20px;
  }
}

.p-benefit__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 333 / 222;
  object-fit: cover;
  border-radius: 35px;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);

  @media (max-width: 1023px) {
    aspect-ratio: 279 / 186;
    border-radius: 25px;
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.25);
  }
}

.p-benefit__badge {
  position: absolute;
  top: -60px;
  left: -13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 98px;
  height: 98px;
  padding-top: 4px;
  background: url("../img/lp/benefit-badge.svg") no-repeat center / contain;
  color: var(--lp-color-text);

  @media (max-width: 1023px) {
    top: -30px;
    left: 0;
    width: 73px;
    height: 73px;
  }
}

.p-benefit__badge-label {
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0;
  line-height: 1;

  @media (max-width: 1023px) {
    font-size: 11px;
  }
}

.p-benefit__badge-num {
  font-family: Roboto, sans-serif;
  font-weight: 900;
  font-size: 40px;
  letter-spacing: 0.05em;
  line-height: 1;

  @media (max-width: 1023px) {
    margin-top: 1px;
    font-size: 24px;
  }
}

.p-benefit__heading {
  margin: 0;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--lp-color-text);
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.05em;
  line-height: 1.4;
  text-align: center;
  color: var(--lp-color-text);

  @media (max-width: 1023px) {
    padding-bottom: 15px;
    font-size: 18px;
  }
}

.p-benefit__desc {
  margin: 12px 6px 50px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media (max-width: 1023px) {
    margin: 15px 6px 12px;
    line-height: 1.7;
  }
}

.p-benefit__btn {
  display: flex;
  margin: auto auto 0;
}

/* =============================================
  TRAINING（BENEFIT 01：充実した研修制度）
============================================= */
.p-training {
  position: relative;
  z-index: 0;
  margin-top: 120px;
  padding: 100px 20px 110px;

  @media (max-width: 1023px) {
    margin-top: 40px;
    padding: 40px 24px 50px;
  }
}

.p-training__bg-wrapper {
  position: absolute;
  inset: 0;
  z-index: -1;
  display: flex;
  flex-direction: column;

  &::after {
    content: "";
    display: block;
    width: 100%;
    height: auto;
    flex-grow: 1;
    background: rgba(252, 232, 241, 0.5);
  }

  @media (max-width: 1023px) {
  }
}
.p-training__inner {
  max-width: 1040px;
  margin: 0 auto;
}

/* セクション見出し（BENEFIT バッジ＋上下二重線）※benefit 01〜03 で共通利用 */
.p-benefit-head {
  position: relative;
  display: flex;
  align-items: center;
  height: 106px;
  background-color: #fff;

  &::before,
  &::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 14px;
    border-top: 1px solid var(--lp-color-text);
    border-bottom: 1px solid var(--lp-color-text);
  }

  &::before {
    top: 0;
  }

  &::after {
    bottom: 0;
  }

  @media (max-width: 1023px) {
    height: 56px;

    &::before,
    &::after {
      height: 7px;
    }
  }
}

.p-benefit-head__badge {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 106px;
  height: 106px;
  margin-left: 158px;
  color: var(--lp-color-text);
  background-color: #fff;

  @media (max-width: 1023px) {
    width: 56px;
    height: 56px;
    margin-left: 40px;
  }
}

.p-benefit-head__label {
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1;

  @media (max-width: 1023px) {
    font-size: 11px;
  }
}

.p-benefit-head__num {
  font-family: Roboto, sans-serif;
  font-weight: 900;
  font-size: 64px;
  letter-spacing: 0.05em;
  line-height: 1.1;

  @media (max-width: 1023px) {
    font-size: 24px;
  }
}

.p-benefit-head__title {
  position: relative;
  z-index: 1;
  margin: 0 0 0 105px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 36px;
  letter-spacing: 0.05em;
  line-height: 1.2;
  color: var(--lp-color-text);

  @media (max-width: 1023px) {
    margin-left: 15px;
    font-size: 18px;
  }
}

.p-training__lead {
  margin: 40px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media (max-width: 1023px) {
    margin: 26px 0 0;
    font-size: 14px;
    line-height: 1.7;
  }
}

/* カードリスト */
.p-training__list {
  display: flex;
  flex-direction: column;
  gap: 130px;
  margin: 80px 0 0;
  padding: 0;
  list-style: none;

  @media (max-width: 1023px) {
    gap: 300px;
    margin-top: 44px;
    align-items: stretch;
  }
}

.p-training__item {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;

  &:nth-child(1) {
    z-index: 0;
  }

  &:nth-child(2) {
    z-index: 1;
  }
  &:nth-child(3) {
    z-index: 2;
  }

  &:nth-child(even) {
    flex-direction: row-reverse;
  }

  @media (max-width: 1023px) {
    flex-direction: column;
    max-width: none;
    padding-top: 24px;
    overflow: visible;
    background-color: #fff;
    border-radius: 34px;
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
    width: calc(100% + 24px);

    &:nth-child(odd) {
      margin: 0 -24px 0 auto;
      border-radius: 34px 0 0 34px;
    }

    &:nth-child(even) {
      flex-direction: column;
      margin: 0 auto 0 -24px;
      border-radius: 0 34px 34px 0;
    }
  }
}

.p-training__photo {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: 292px;
  height: 291px;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);

  & img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  @media (max-width: 1023px) {
    order: 2;
    width: 274px;
    height: 274px;
    margin: 12px 0 -100px;
    z-index: 2;
  }
}

.p-training__item:nth-child(odd) .p-training__photo {
  @media (max-width: 1023px) {
    align-self: flex-start;
  }
}

.p-training__item:nth-child(even) .p-training__photo {
  @media (max-width: 1023px) {
    align-self: flex-end;
  }
}

.p-training__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 291px;
  padding: 40px 60px 30px;
  background-color: #fff;
  border-radius: 34px;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);

  @media (max-width: 1023px) {
    order: 1;
    width: auto;
    min-height: 0;
    background-color: transparent;
    border-radius: 0;
    box-shadow: none;
    align-items: flex-start;
  }
}

.p-training__item:nth-child(odd) .p-training__body {
  margin-left: -169px;
  padding-left: 230px;

  @media (max-width: 1023px) {
    margin: 0 !important;
    padding: 0 24px 0 21px !important;
  }
}

.p-training__item:nth-child(even) .p-training__body {
  margin-right: -169px;
  padding-left: 120px;
  padding-right: 224px;

  @media (max-width: 1023px) {
    margin: 0 !important;
    padding: 0 24px 0 45px !important;
  }
}

.p-training__num-row {
  display: flex;
  align-items: center;
  gap: 14px;

  @media (max-width: 1023px) {
    gap: 8px;
  }
}

.p-training__num {
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 96px;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #f7c7dc;

  @media (max-width: 1023px) {
    font-size: 64px;
  }
}

.p-training__meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.p-training__label {
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.2em;
  line-height: 1;
  color: #f7c7dc;

  @media (max-width: 1023px) {
    font-size: 24px;
  }
}

.p-training__sub-heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.05em;
  line-height: 1;
  color: var(--lp-color-text);

  @media (max-width: 1023px) {
    font-size: 15.5px;
  }
}

.p-training__text {
  margin: 20px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media (max-width: 1023px) {
    margin-top: 16px;
    font-size: 14px;
    line-height: 1.7;
    font-weight: 500;
  }
}

/* 吹き出し・スタッフ写真 */
.p-training__deco {
  position: absolute;
  z-index: 2;
  pointer-events: none;
}

.p-training__deco--bubble {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 210px;
  height: 180px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;

  @media (max-width: 1023px) {
    display: flex;
  }
}

.p-training__deco-text {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #fff;

  @media (max-width: 1023px) {
    font-size: 14px;
    line-height: 1.7;
  }
}

.p-training__deco--staff {
  & img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  @media (max-width: 1023px) {
    display: block;
  }
}

.p-training__deco--bubble-01 {
  top: 198px;
  left: 615px;
  background-image: url("../img/lp/benefit-training-bubble-01.svg");

  @media (max-width: 1023px) {
    top: calc(100% + 105px);
    left: 50px;
    width: 190px;
    height: 158px;
    padding: 0;
    align-items: center;
  }
}

.p-training__deco--staff-01 {
  z-index: 3;
  top: 213px;
  left: 796px;
  width: 146px;
  height: 217px;

  @media (max-width: 1023px) {
    top: calc(100% + 109px);
    left: 196px;
    width: 128px;
    height: 191px;
  }
}

.p-training__deco--bubble-02 {
  top: 212px;
  left: 250px;
  width: 257px;
  aspect-ratio: 257 / 204;
  align-items: flex-start;
  padding-top: 56px;
  height: auto;
  background-image: url("../img/lp/benefit-training-bubble-02.svg");

  @media (max-width: 1023px) {
    top: calc(100% + 103px);
    left: 137px;
    width: 232px;
    padding: 0;
    align-items: center;
    text-align: center;
  }
}

.p-training__deco--staff-02 {
  z-index: 3;
  top: 235px;
  left: 114px;
  width: 158px;
  height: 196px;

  @media (max-width: 1023px) {
    top: calc(100% + 120px);
    left: 37px;
    width: 144px;
    height: 179px;
  }
}

/* POINT */
.p-training__point {
  margin-top: 80px;
  text-align: center;

  @media (max-width: 1023px) {
    margin-top: 120px;
    padding: 0 24px;
  }
}

.p-training__point-icon {
  display: block;
  width: 160px;
  height: auto;
  margin: 0 auto;

  @media (max-width: 1023px) {
    width: 130px;
  }
}

.p-training__point-text {
  position: relative;
  display: inline-block;
  margin: 24px 0 0;
  padding-bottom: 8px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.05em;
  line-height: 1.2;
  color: var(--lp-color-text);
  z-index: 0;

  &::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 100%;
    max-width: 450px;
    height: 20px;
    border-radius: 10px;
    background-color: #fff;
    transform: translateX(-50%);
    z-index: -1;
  }

  @media (max-width: 1023px) {
    font-size: 16px;
    margin-top: 10px;
  }
}

.p-training__point-em {
  font-weight: 700;
  font-size: 36px;

  @media (max-width: 1023px) {
    font-size: 24px;
  }
}

.p-training__point-sparkle {
  position: absolute;
  width: 40px;
  height: auto;
}

.p-training__point-sparkle--01 {
  top: -40px;
  right: 74px;

  @media (max-width: 1023px) {
    width: 40px;
    right: 5px;
    top: -43px;
  }
}

.p-training__point-sparkle--02 {
  bottom: -53px;
  left: 102px;

  @media (max-width: 1023px) {
    width: 40px;
    left: 42px;
    bottom: -40px;
  }
}

/* =============================================
  SALARY（BENEFIT 02：高い給与水準）
============================================= */
.p-salary {
  padding: 80px 20px 100px;
  background-color: rgba(252, 232, 241, 0.5);

  @media screen and (max-width: 1023px) {
    padding: 40px 24px;
  }
}

.p-salary__inner {
  max-width: 1040px;
  margin: 0 auto;
}

.p-salary__lead {
  margin: 70px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 36px;
  letter-spacing: 0.05em;
  line-height: 1.2;
  text-align: center;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    margin-top: 26px;
    font-size: 16px;
  }
}

/* 月給 25 万円〜 Start!! */
.p-salary__headline {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  margin: 14px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    gap: 4px;
  }
}

.p-salary__yen {
  font-weight: 700;
  font-size: 36px;
  letter-spacing: 0.05em;

  @media screen and (max-width: 1023px) {
    font-size: 16px;
  }
}

.p-salary__num {
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 96px;
  line-height: 1;
  color: #f7c7dc;
  -webkit-text-stroke: 8px var(--lp-color-text);
  text-stroke: 8px var(--lp-color-text);
  paint-order: stroke fill;

  @media screen and (max-width: 1023px) {
    font-size: 64px;
    -webkit-text-stroke: 4px var(--lp-color-text);
    text-stroke: 4px var(--lp-color-text);
  }
}

.p-salary__start {
  margin-left: 6px;
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 48px;
  letter-spacing: 0.05em;

  @media screen and (max-width: 1023px) {
    margin-left: 2px;
    font-size: 32px;
  }
}

/* 頑張った分だけ収入UP！バナー */
.p-salary__banner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: 495px;
  max-width: 100%;
  min-height: 101px;
  margin: 56px auto 0;
  padding: 12px 20px;
  background-color: #f7c7dc;

  &::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    border-left: 19px solid transparent;
    border-right: 19px solid transparent;
    border-top: 24px solid #f7c7dc;
    transform: translateX(-50%);
  }

  @media screen and (max-width: 1023px) {
    width: 276px;
    min-height: 66px;
    gap: 8px;
    margin-top: 20px;

    &::after {
      border-left-width: 13px;
      border-right-width: 13px;
      border-top-width: 16px;
    }
  }
}

.p-salary__banner-text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 32px;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 16px;
  }
}

.p-salary__banner-icon {
  width: 44px;
  height: auto;

  @media screen and (max-width: 1023px) {
    width: 30px;
  }
}

/* 注釈2行 */
.p-salary__notes {
  margin: 56px 0 0;
  text-align: center;

  @media screen and (max-width: 1023px) {
    margin-top: 25px;
  }
}

.p-salary__note {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.6;
  color: var(--lp-color-text);

  & + & {
    margin-top: 22px;
  }

  @media screen and (max-width: 1023px) {
    font-size: 14px;
    line-height: 1.7;

    & + & {
      margin-top: 18px;
    }
  }
}

.p-salary__marker {
  background: linear-gradient(#f7c7dc, #f7c7dc) 0 100% / 100% 2px no-repeat;
  padding-bottom: 6px;
}

/* しかも・・・指名料全額バック！ */
.p-salary__more {
  position: relative;
  margin: 50px 0 0;
  padding: 28px 0;
  text-align: center;

  &::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 234px;
    height: 221px;
    background: url("../img/lp/benefit-salary-burst.svg") center / contain no-repeat;
    transform: translate(-50%, -42%);
    z-index: 0;
  }

  @media screen and (max-width: 1023px) {
    margin-top: 20px;

    &::before {
      width: 150px;
      height: 142px;
    }
  }
}

.p-salary__more-lead {
  position: relative;
  z-index: 1;
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 14px;
  }
}

.p-salary__more-main {
  position: relative;
  z-index: 1;
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 32px;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 18px;
  }
}

/* 給与例カード */
.p-salary__example {
  position: relative;
  width: 763px;
  max-width: 100%;
  margin: 56px auto 0;

  @media screen and (max-width: 1023px) {
    width: 100%;
    margin-top: 54px;
    max-width: 330px;
  }
}

.p-salary__card {
  width: 574px;
  max-width: 100%;
  margin-left: auto;
  padding: 36px 40px 32px;
  background-color: #f7c7dc;
  border-radius: 19px;
  display: flex;
  flex-direction: column;
  align-items: center;

  @media screen and (max-width: 1023px) {
    width: 238px;
    padding: 18px 14px 16px;
    border-radius: 14px;
  }
}

.p-salary__card-title {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 32px;
  letter-spacing: 0.02em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 14px;
    letter-spacing: 0;
  }
}

.p-salary__income {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 6px 0 0;

  @media screen and (max-width: 1023px) {
    gap: 4px;
  }
}

.p-salary__income-label,
.p-salary__income-unit {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 32px;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 14px;
  }
}

.p-salary__income-num {
  position: relative;
  z-index: 0;
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 128px;
  line-height: 1;
  color: #fff;
  -webkit-text-stroke: 8px var(--lp-color-text);
  text-stroke: 8px var(--lp-color-text);
  paint-order: stroke fill;

  &::before {
    content: "";
    position: absolute;
    left: -3%;
    bottom: -9px;
    width: 112%;
    aspect-ratio: 247 / 45;
    background: url("../img/lp/benefit-salary-line-yellow.svg") center / 100% 100% no-repeat;
    z-index: -1;
  }

  &::after {
    content: "35";
    position: absolute;
    top: 3px;
    left: 0;
    color: var(--lp-color-text);
    z-index: -1;
  }

  @media screen and (max-width: 1023px) {
    font-size: 64px;
    -webkit-text-stroke: 4px var(--lp-color-text);
    text-stroke: 4px var(--lp-color-text);

    &::before {
      aspect-ratio: 110 / 33;
      width: 110px;
      background-image: url("../img/lp/benefit-salary-line-yellow-sp.svg");
      bottom: -12px;
      left: 3px;
    }
  }
}

.p-salary__card-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 14px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 32px;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    margin-top: 8px;
    font-size: 14px;
  }
}

.p-salary__card-sparkle {
  width: 40px;
  height: auto;

  @media screen and (max-width: 1023px) {
    width: 24px;
  }
}

/* スタッフ写真・吹き出し */
.p-salary__staff {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  width: 262px;
  height: auto;

  @media screen and (max-width: 1023px) {
    width: 114px;
  }
}

.p-salary__voice {
  position: absolute;
  left: -52px;
  top: 4px;
  z-index: 3;
  width: 200px;

  @media screen and (max-width: 1023px) {
    left: -37px;
    top: -23px;
    width: 152px;
  }
}

.p-salary__voice-text {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--lp-color-text);
  transform: rotate(-22deg);
  position: relative;

  @media screen and (max-width: 1023px) {
    font-size: 14px;
    transform: rotate(-15deg);
  }

  &::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -32px;
    transform: translateX(-50%);
    width: 166px;
    aspect-ratio: 166 / 40;
    background: url("../img/lp/benefit-salary-arrow.svg") center / contain no-repeat;

    @media screen and (max-width: 1023px) {
      width: 136px;
      bottom: -21px;
    }
  }
}

/* =============================================
  ENVIRONMENT（BENEFIT 03：労働環境）
============================================= */
.p-environment {
  padding: 80px 20px 0;
  background: linear-gradient(180deg, rgba(252, 232, 241, 0.5) 0%, rgba(255, 255, 255, 0.5) 100%);

  @media screen and (max-width: 1023px) {
    padding: 40px 24px 0;
  }
}

.p-environment__inner {
  max-width: 1040px;
  margin: 0 auto;
}

/* 離職率5%以下 */
.p-environment__rate {
  position: relative;
  width: max-content;
  margin: 64px auto 0;

  @media screen and (max-width: 1023px) {
    margin-top: 48px;
  }
}

.p-environment__rate-label {
  display: inline-block;
  margin-bottom: 2px;
  padding: 3px 12px;
  background-color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.1em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    padding: 2px;
    font-size: 16px;
    margin-left: -24px;
  }
}

.p-environment__rate-main {
  margin-top: -40px;
  display: flex;
  align-items: baseline;
}

.p-environment__rate-text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 36px;
  letter-spacing: 0.1em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 16px;
  }
}

.p-environment__rate-num {
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 96px;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #f7c7dc;
  margin-left: 20px;
  -webkit-text-stroke: 8px var(--lp-color-text);
  text-stroke: 8px var(--lp-color-text);
  paint-order: stroke fill;

  @media screen and (max-width: 1023px) {
    font-size: 64px;
    -webkit-text-stroke: 4px var(--lp-color-text);
    text-stroke: 4px var(--lp-color-text);
    margin-left: 3px;
  }
}

.p-environment__rate-note {
  position: absolute;
  top: -14px;
  right: 88px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.1em;
  color: var(--lp-color-text);
  transform: rotate(16deg);

  @media screen and (max-width: 1023px) {
    top: -22px;
    right: 0;
    font-size: 14px;
  }
}

.p-environment__rate-arrow {
  position: absolute;
  top: -17px;
  right: 69px;
  width: 124px;
  height: auto;

  @media screen and (max-width: 1023px) {
    top: -18px;
    right: -11px;
    width: 96px;
  }
}

/* その理由は…充実した福利厚生（逆三角形） */
.p-environment__reason {
  position: relative;
  margin: 36px auto 0;
  padding: 0 0 85px;
  text-align: center;

  &::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 462px;
    max-width: 86%;
    aspect-ratio: 462 / 160;
    background: url("../img/lp/benefit-env-triangle.svg") top center / contain no-repeat;
    transform: translateX(-50%);
    z-index: 0;
  }

  @media screen and (max-width: 1023px) {
    margin-top: 0;
    padding: 22px 0 30px;

    &::before {
      width: 270px;
    }
  }
}

.p-environment__reason-lead {
  position: relative;
  z-index: 1;
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 16px;
  }
}

.p-environment__reason-main {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: flex-start;
  gap: 4px;
  margin: 8px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 36px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 24px;
  }
}

.p-environment__reason-sparkle {
  width: 30px;
  height: auto;

  @media screen and (max-width: 1023px) {
    position: absolute;
    width: 27px;
    bottom: calc(100% + 8px);
    right: 0;
  }
}

/* 福利厚生リスト */
.p-environment__benefits {
  position: relative;
  margin: 88px 0 0;
  padding-bottom: 200px;

  @media screen and (max-width: 1023px) {
    margin-top: 24px;
    padding-bottom: 78px;
  }
}

.p-environment__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  row-gap: 36px;
  column-gap: 70px;
  margin: 0;
  padding: 0 30px;
  list-style: none;

  @media screen and (max-width: 1023px) {
    row-gap: 16px;
    column-gap: 34px;
    padding: 0;
    justify-content: flex-start;
  }
}

.p-environment__item {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: none;
  padding-bottom: 10px;
  border-bottom: 2px solid;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    gap: 6px;
    padding-bottom: 7px;
    font-size: 16px;
    letter-spacing: 0;
    align-items: flex-start;
  }
}

/* 横長アイテム（祝・休日休暇制度）：内容幅で左寄せ・単独行 */
.p-environment__item--wide {
  width: fit-content;
}

/* スタッフ写真スペースを確保するための空セル */
.p-environment__spacer {
  flex: none;
  width: 22%;

  @media screen and (max-width: 1023px) {
    display: none;
  }
}

.p-environment__item--wide .p-environment__item-text {
  white-space: nowrap;

  @media screen and (max-width: 1023px) {
    white-space: normal;
  }
}

.p-environment__check {
  flex-shrink: 0;
  width: 36px;
  height: 36px;

  @media screen and (max-width: 1023px) {
    width: 20px;
    height: 20px;
    margin-top: 0.1lh;
  }
}

/* スタッフ写真・nice!! */
.p-environment__staff {
  position: absolute;
  right: 30px;
  bottom: 0;
  z-index: 1;
  width: 277px;
  height: auto;

  @media screen and (max-width: 1023px) {
    right: 0;
    width: 106px;
  }
}

.p-environment__nice {
  position: absolute;
  right: 0px;
  top: 151px;
  z-index: 2;
  font-family: "Nanum Pen Script", cursive;
  font-size: 36px;
  line-height: 1;
  color: var(--lp-color-text);
  transform: rotate(29deg);

  @media screen and (max-width: 1023px) {
    right: 0px;
    top: auto;
    bottom: 130px;
    font-size: 24px;
  }
}

/* =============================================
  CTA（LINEで気軽に応募）
============================================= */
.p-cta-line {
  padding: 0 0 100px;
  background-color: #fff;

  @media screen and (max-width: 1023px) {
    padding-bottom: 40px;
  }
}

.p-cta-line__inner {
  position: relative;
  max-width: 1440px;
  margin: 0 auto;
  padding: 56px 20px 60px;
  background-color: #fef1ec;
  border: 5px solid #f7c7dc;
  border-radius: 45px;
  text-align: center;

  @media screen and (max-width: 1023px) {
    padding: 45px 16px;
    border-radius: 45px;
  }
}

.p-cta-line__title {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 32px;
  letter-spacing: 0.02em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 18px;
  }
}

.p-cta-line__note {
  width: 28px;
  height: auto;

  @media screen and (max-width: 1023px) {
    width: 18px;
  }
}

.p-cta-line__deco {
  position: absolute;
  right: calc(100% + 20px);
  bottom: 7px;
  display: inline-block;
  width: max-content;

  @media screen and (max-width: 1023px) {
    right: calc(100% - 28px);
    bottom: calc(100% + 9px);
  }
}

.p-cta-line__deco-text {
  font-family: "Nanum Pen Script", cursive;
  font-size: 36px;
  line-height: 1;
  color: var(--lp-color-text);
  transform: rotate(-15deg);
  display: inline-block;
}

.p-cta-line__deco-arrow {
  display: block;
  width: 100%;
  height: auto;
  position: absolute;
  bottom: -14px;
  left: 50%;
  transform: translateX(-50%);
  max-width: unset;

  @media screen and (max-width: 1023px) {
    width: 115%;
    bottom: -17px;
  }
}

.p-cta-line__lead {
  margin: 24px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    margin-top: 20px;
    line-height: 1.7;
  }
}

.p-cta-line__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
  max-width: 374px;
  margin: 32px auto 0;

  @media screen and (max-width: 1023px) {
    gap: 16px;
    max-width: 279px;
    margin-top: 16px;
  }
}

.p-cta-line__btn {
  width: 100%;
}

.p-cta-line__form-link {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: opacity 0.3s ease;

  &:hover {
    opacity: 0.7;
  }

  @media screen and (max-width: 1023px) {
    font-size: 14px;
  }
}

/* =============================================
  INTERVIEW（STAFF VOICE）
============================================= */
.p-interview {
  position: relative;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 24px 100px;
  background-color: #fff;

  @media screen and (max-width: 1023px) {
    padding-bottom: 40px;
  }
}

.p-interview__head {
  position: relative;
  z-index: 0;
  padding-top: 80px;
  text-align: center;

  @media screen and (max-width: 1023px) {
    padding-top: 40px;
  }
}

.p-interview__bg-text {
  display: block;
  margin-right: -24px;
  margin-left: auto;
  text-align: right;
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 170px;
  line-height: 1;
  letter-spacing: 0.2em;
  white-space: nowrap;
  color: #fdf1f6;
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.12);
  pointer-events: none;

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

  @media screen and (max-width: 1023px) {
    top: 30px;
    font-size: 48px;
    letter-spacing: 0.18em;
  }
}

.p-interview__ellipse {
  position: absolute;
  top: 0;
  left: -236px;
  width: 757px;
  height: 757px;
  border-radius: 50%;
  background: linear-gradient(170deg, #fddde2 8.32%, #fce8f1 34.85%, #fef1ec 51.45%);

  pointer-events: none;
  z-index: -1;

  @media screen and (max-width: 1023px) {
    top: 0;
    left: calc(50% - 259px);
    width: 247px;
    height: 247px;
  }
}

.p-interview__title {
  position: relative;
  z-index: 1;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 35px;
  width: 100%;

  @media screen and (max-width: 1023px) {
    margin-top: 24px;
  }
}

.p-interview__mic {
  width: 120px;
  height: auto;

  @media screen and (max-width: 1023px) {
    width: 96px;
  }
}

.p-interview__title-text {
  position: relative;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 36px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);
  display: flex;
  align-items: center;
  width: 960px;
  margin: 0 auto;
  max-width: 100%;
  gap: 35px;

  &::before,
  &::after {
    content: "";
    display: block;
    width: 1px;
    height: 13px;
    border-top: 2px solid var(--lp-color-text);
    border-bottom: 1px solid var(--lp-color-text);
    flex-grow: 1;
  }

  @media screen and (max-width: 1023px) {
    font-size: 18px;
    gap: 11px;
    width: 100%;

    &::before,
    &::after {
      height: 5px;
    }
  }
}

/* Q&Aリスト */
.p-interview__list {
  position: relative;
  z-index: 1;
  max-width: 1000px;
  margin: 70px auto 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 49px;
  list-style: none;

  @media screen and (max-width: 1023px) {
    margin-top: 20px;
    gap: 18px;
  }
}

.p-interview__item {
  display: flex;
  align-items: flex-start;
  gap: 40px;

  &:nth-child(even) {
    flex-direction: row-reverse;

    @media screen and (min-width: 1024px) {
      .p-interview__question {
        justify-content: flex-end;
      }
    }
  }

  @media screen and (max-width: 1023px) {
    flex-direction: column;
    align-items: center;
    gap: 0;

    &:nth-child(even) {
      flex-direction: column;
    }
  }
}

.p-interview__person {
  position: relative;
  flex-shrink: 0;
  width: 195px;
  display: flex;
  flex-direction: column;
  align-items: center;

  @media screen and (max-width: 1023px) {
    width: 169px;
  }
}

.p-interview__photo {
  width: 195px;
  height: 195px;
  border-radius: 50%;
  object-fit: cover;

  @media screen and (max-width: 1023px) {
    width: 169px;
    height: 169px;
  }
}

.p-interview__name {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 145px;
  height: 44px;
  margin-top: -20px;
  padding: 0 18px 4px;
  background: url("../img/lp/interview-nametag.svg") center / 100% 100% no-repeat;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);
}

.p-interview__qa {
  flex: 1;
  min-width: 0;
  padding-top: 6px;

  @media screen and (max-width: 1023px) {
    width: 100%;
    padding-top: 0;
  }
}

.p-interview__question {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    gap: 8px;
    font-size: 16px;
  }
}

.p-interview__q {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  padding-bottom: 4px;
  background: url("../img/lp/interview-q-badge.svg") center / contain no-repeat;
  font-family: Roboto, sans-serif;
  font-weight: 900;
  font-size: 24px;
  letter-spacing: 0.05em;
  color: #fff;

  @media screen and (max-width: 1023px) {
    width: 46px;
    height: 46px;
    font-size: 20px;
  }
}

.p-interview__bubble {
  position: relative;
  margin-top: 6px;
  padding: 24px 30px;
  background-color: #fff;
  border: 3px solid #f7d2df;
  border-radius: 7px;

  /* 吹き出しの三角（PCは写真側＝外向き） */
  &::before,
  &::after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
  }

  @media screen and (max-width: 1023px) {
    padding: 20px 24px;
  }
}

/* PC: 奇数=写真左→しっぽ左 / 偶数=写真右→しっぽ右 */
.p-interview__item:nth-child(odd) .p-interview__bubble::before {
  top: 28px;
  left: -18px;
  border-width: 13px 18px 13px 0;
  border-color: transparent #f7d2df transparent transparent;
}
.p-interview__item:nth-child(odd) .p-interview__bubble::after {
  top: 31px;
  left: -12px;
  border-width: 10px 15px 10px 0;
  border-color: transparent #fff transparent transparent;
}
.p-interview__item:nth-child(even) .p-interview__bubble::before {
  top: 28px;
  right: -18px;
  border-width: 13px 0 13px 18px;
  border-color: transparent transparent transparent #f7d2df;
}
.p-interview__item:nth-child(even) .p-interview__bubble::after {
  top: 31px;
  right: -12px;
  border-width: 10px 0 10px 15px;
  border-color: transparent transparent transparent #fff;
}

/* SP: しっぽは上向き＋「左下が直角」の直角三角形（デザイン準拠）。
   PC の nth-child 指定と同じ詳細度で上書き */
@media screen and (max-width: 1023px) {
  /* 外側（ピンクの縁取り）：底辺=吹き出し上端、左辺=垂直、右辺=斜辺 */
  .p-interview__item:nth-child(odd) .p-interview__bubble::before,
  .p-interview__item:nth-child(even) .p-interview__bubble::before {
    top: -20px;
    bottom: auto;
    border-width: 0 18px 20px 0;
    border-color: transparent transparent #f7d2df transparent;
    transform: none;
  }
  /* 内側（白）：縁取り3pxぶん内側に。底辺は吹き出し内部までのばして連結 */
  .p-interview__item:nth-child(odd) .p-interview__bubble::after,
  .p-interview__item:nth-child(even) .p-interview__bubble::after {
    top: -17px;
    bottom: auto;
    border-width: 0 16px 20px 0;
    border-color: transparent transparent #fff transparent;
    transform: none;
  }

  /* 奇数・偶数とも同じ見た目（右寄り・左下が直角） */
  .p-interview__item:nth-child(odd) .p-interview__bubble::before,
  .p-interview__item:nth-child(even) .p-interview__bubble::before {
    left: 70%;
    right: auto;
  }
  .p-interview__item:nth-child(odd) .p-interview__bubble::after,
  .p-interview__item:nth-child(even) .p-interview__bubble::after {
    left: calc(70% + 3px);
    rotate: -1deg;
    top: -12.5px;
    right: auto;
  }
}

.p-interview__answer {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 14px;
  }
}

/* =============================================
  スタッフの1日（1day）
============================================= */
.p-1day {
  padding: 80px 20px;
  background-color: #fff;

  @media screen and (max-width: 1023px) {
    padding: 40px 24px;
  }
}

.p-1day__box {
  position: relative;
  max-width: 1040px;
  margin: 0 auto;
  padding: 50px 40px 100px;
  background-color: #c9e4ea;

  @media screen and (max-width: 1023px) {
    padding: 27px 24px 40px;
  }
}

.p-1day__clip {
  position: absolute;
  top: -66px;
  left: 43px;
  width: 111px;
  height: auto;

  @media screen and (max-width: 1023px) {
    width: 53px;
    left: 8px;
    top: -28px;
  }
}

.p-1day__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.p-1day__clock {
  width: 138px;
  height: auto;

  @media screen and (max-width: 1023px) {
    width: 74px;
  }
}

.p-1day__title-text {
  width: 100%;
  position: relative;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 36px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 35px;
  white-space: nowrap;

  &::before,
  &::after {
    content: "";
    width: 180px;
    height: 16px;
    border-top: 2px solid var(--lp-color-text);
    border-bottom: 1px solid var(--lp-color-text);
    flex-grow: 1;
  }

  @media screen and (max-width: 1023px) {
    font-size: 22px;
    gap: 11px;

    &::before,
    &::after {
      width: 40px;
      height: 5px;
    }
  }
}

.p-1day__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 78px 30px;
  margin: 60px 0 0;
  padding: 0;
  list-style: none;

  @media screen and (max-width: 1023px) {
    grid-template-columns: 1fr;
    gap: 76px;
    margin: 60px auto 0;
  }
}

.p-1day__card {
  position: relative;
  background-color: #fff;
  border-radius: 17px;
  box-shadow: 4px 4px 0 0 rgba(255, 255, 255, 0.5);
}

.p-1day__head {
  text-align: center;
  position: relative;
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 12px;

  @media screen and (max-width: 1023px) {
    min-height: 56px;
    padding-top: 8px;
  }
}

.p-1day__time {
  position: absolute;
  left: 0;
  top: 0;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--lp-color-text);
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 26px;
  line-height: 1;
  color: #fff;
  width: 93px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;

  &::before {
    content: "";
    display: block;
    width: 20px;
    aspect-ratio: 20 / 19;
    background: url("../img/lp/1day-time-dot.svg") center / contain no-repeat;
    position: absolute;
    top: -11px;
    left: 0;
  }

  &::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 6px;
    width: 16px;
    height: 20px;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
    background-color: var(--lp-color-text);
    rotate: -74deg;
  }

  @media screen and (max-width: 1023px) {
    width: 83px;
    font-size: 24px;
    transform: none;
    top: -50px;
  }
}

.p-1day__label {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.05em;
  white-space: nowrap;
  color: var(--lp-color-text);
}

.p-1day__photo {
  display: block;
  width: 100%;
  height: 162px;
  object-fit: cover;
  border-radius: 17px;
  padding-inline: 24px;

  @media screen and (max-width: 1023px) {
    height: 161px;
    padding-inline: 16px;
  }
}

.p-1day__desc {
  padding-inline: 24px;
  padding-bottom: 32px;
  margin: 16px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    padding-inline: 16px;
    padding-bottom: 15px;
    line-height: 1.7;
  }
}

/* 矢印 */
.p-1day__card::after {
  content: "";
  position: absolute;
  background: url("../img/lp/1day-arrow.svg") center / contain no-repeat;
  pointer-events: none;
  z-index: 1;
}

/* PC: 横矢印（1-2, 2-3, 4-5, 5-6） */
.p-1day__card:nth-child(1)::after,
.p-1day__card:nth-child(2)::after,
.p-1day__card:nth-child(4)::after,
.p-1day__card:nth-child(5)::after {
  top: 50%;
  left: 100%;
  width: 34px;
  aspect-ratio: 1 / 1;
  transform: translateY(-50%);
}

/* PC: 3→4 への下向き矢印 */
.p-1day__card:nth-child(3)::after {
  top: 103%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 34px;
  aspect-ratio: 1 / 1;
  background-image: url("../img/lp/1day-arrow-down.svg");
}

.p-1day__card:nth-child(6)::after {
  content: none;
}

@media screen and (max-width: 1023px) {
  /* SP: すべて中央・下向き矢印（PC の nth-child 指定と同じ詳細度で上書き） */
  .p-1day__card:nth-child(1)::after,
  .p-1day__card:nth-child(2)::after,
  .p-1day__card:nth-child(3)::after,
  .p-1day__card:nth-child(4)::after,
  .p-1day__card:nth-child(5)::after {
    top: auto;
    bottom: -53px;
    left: 50%;
    right: auto;
    width: 26px;
    height: 26px;
    transform: translateX(-50%) rotate(90deg);
    background-image: url("../img/lp/1day-arrow.svg");
  }
  .p-1day__card:nth-child(6)::after {
    content: none;
  }
}

/* =============================================
  MOVIE（朝のルーティンを覗き見）
============================================= */
.p-move {
  position: relative;
  z-index: 0;
  padding: 120px 20px 109px;
  background-color: #fff;

  @media screen and (max-width: 1023px) {
    padding: 40px 24px;
  }
}

.p-move__blob {
  position: absolute;
  z-index: -1;
  height: auto;
  pointer-events: none;
}

.p-move__blob--1 {
  width: 27vw;
  left: 0;
  bottom: calc(20 / 1440 * 100vw);

  @media screen and (max-width: 1023px) {
    width: 50vw;
    bottom: 0;
  }
}

.p-move__blob--2 {
  width: 30vw;
  right: 0;
  top: 0;

  @media screen and (max-width: 1023px) {
    width: 50vw;
    top: calc(20 / 375 * 100vw);
  }
}

.p-move__blob--3 {
  width: calc(278 / 1440 * 100vw);
  right: calc(50% + 5vw);
  top: 245px;

  @media screen and (max-width: 1023px) {
    width: 30vw;
    top: 109px;
    right: auto;
    left: calc(6 / 375 * 100vw);
  }
}

.p-move__inner {
  position: relative;
  z-index: 1;
  max-width: 1000px;
  margin: 0 auto;
}

.p-move__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.p-move__icon {
  width: 138px;
  height: auto;

  @media screen and (max-width: 1023px) {
    width: 74px;
  }
}

.p-move__title-text {
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 36px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);
  display: flex;
  align-items: center;
  gap: 35px;

  &::before,
  &::after {
    content: "";
    display: block;
    width: 180px;
    height: 13px;
    border-top: 2px solid var(--lp-color-text);
    border-bottom: 1px solid var(--lp-color-text);
    flex-grow: 1;
  }

  @media screen and (max-width: 1023px) {
    font-size: 18px;
    gap: 11px;

    &::before,
    &::after {
      width: 30px;
      height: 5px;
    }
  }
}

.p-move__video {
  position: relative;
  width: 331px;
  max-width: 100%;
  margin: 90px auto 0;
  padding: 9px;
  background-color: #fff;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);

  @media screen and (max-width: 1023px) {
    width: 280px;
    margin-top: 25px;
  }
}

.p-move__video-img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 313 / 560;
  object-fit: cover;
}

/* TikTok / Instagram 埋め込み時（縦型動画） */
.p-move__video--embed {
  width: 325px;
  padding: 0;
  background-color: transparent;
  box-shadow: none;
  @media screen and (max-width: 1023px) {
    width: 100%;
    max-width: 325px;
  }
}

.p-move__video--embed iframe,
.p-move__video--embed .instagram-media,
.p-move__video--embed .tiktok-embed {
  max-width: 100% !important;
  margin: 0 auto !important;
}

.p-move__play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 72px;
  height: 72px;
  transform: translate(-50%, -50%);
  transition: opacity 0.3s ease;

  &:hover {
    opacity: 0.85;
  }

  & img {
    display: block;
    width: 100%;
    height: 100%;
  }

  @media screen and (max-width: 1023px) {
    width: 60px;
    height: 60px;
  }
}

/* =============================================
  SALON INFO.（店舗一覧）
============================================= */
.p-salon {
  padding: 100px 24px 110px;
  background: #fddde2;
  position: relative;

  @media screen and (max-width: 1023px) {
    padding: 40px 24px;
  }
}

.p-salon__inner {
  max-width: 726px;
  margin: 0 auto;
}

.p-salon__head {
  text-align: center;
}

.p-salon__title {
  margin: 0;
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 48px;
  letter-spacing: 0.08em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 32px;
    letter-spacing: 0.2em;
  }
}

.p-salon__subtitle {
  position: relative;
  padding-top: 18px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.1em;
  color: var(--lp-color-text);

  &::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 54px;
    height: 1px;
    background-color: var(--lp-color-text);
    transform: translateX(-50%);
  }

  @media screen and (max-width: 1023px) {
    margin-top: 10px;
    font-size: 18px;
    padding-top: 10px;
  }
}

.p-salon__lead {
  position: relative;
  margin-top: 80px;
  padding-bottom: 120px;

  @media screen and (max-width: 1023px) {
    margin-top: 30px;
    padding-bottom: 46px;
  }
}

.p-salon__map {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 360px;
  height: auto;
  transform: translate(-50%, -50%);
  opacity: 0.7;
  pointer-events: none;
  z-index: 0;
  max-width: unset;

  @media screen and (max-width: 1023px) {
    top: 55%;
  }
}

.p-salon__intro {
  position: relative;
  z-index: 1;
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  & p {
    margin: 0;
  }
  & p + p {
    margin-top: 1.7em;

    @media screen and (max-width: 1023px) {
      margin-top: .8em;
    }
  }

  @media screen and (max-width: 1023px) {
    font-weight: 700;
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: 0.05em;
    padding-inline: 20px;
  }
}

.p-salon__list {
  padding: 40px 96px 48px;
  background-color: #fff;

  @media screen and (max-width: 1023px) {
    padding: 30px 24px 32px;
  }
}

.p-salon__list-title {
  margin: 0 0 45px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 28px;
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--lp-color-text);
  padding-bottom: 20px;
  border-bottom: 1px solid;

  @media screen and (max-width: 1023px) {
    margin-bottom: 20px;
    padding-bottom: 0;
    border-bottom: none;
    font-size: 18px;
    letter-spacing: 0.1em;
  }
}

.p-salon__region-head {
  position: relative;
  display: flex;
  align-items: center;
  margin: 34px 0 0;
  padding: 9px 40px 9px 24px;
  background-color: rgba(70, 80, 89, 0.7);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.05em;
  color: #fff;
  cursor: pointer;
  list-style: none;

  &::-webkit-details-marker {
    display: none;
  }

  &::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 24px;
    width: 11px;
    height: 11px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: translateY(-70%) rotate(45deg);
    transition: transform 0.3s ease;
  }

  @media screen and (max-width: 1023px) {
    margin-top: 18px;
    padding: 4px 30px 4px 10px;
    font-size: 14px;
    line-height: 1.2;
  }
}

.p-salon__region[open] .p-salon__region-head::after {
  transform: translateY(-30%) rotate(225deg);
}

.p-salon__region-stores {
  margin: 14px 0 16px;
  padding: 0 4px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    margin: 8px 0 0;
    padding: 0 10px;
    font-size: 14px;
    line-height: 1.7;
  }
}

/* =============================================
  DESCRIPTION（募集要項）
============================================= */
.p-description {
  padding: 100px 24px;
  background-color: #fce8f1;

  @media screen and (max-width: 1023px) {
    padding: 40px 24px;
  }
}

.p-description__inner {
  max-width: 1040px;
  margin: 0 auto;
}

.p-description__head {
  text-align: center;
}

.p-description__title {
  margin: 0;
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 48px;
  letter-spacing: 0.2em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 32px;
  }
}

.p-description__subtitle {
  position: relative;
  padding-top: 22px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  &::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 54px;
    height: 1px;
    background-color: var(--lp-color-text);
    transform: translateX(-50%);
  }

  @media screen and (max-width: 1023px) {
    font-size: 18px;
    padding-top: 10px;
  }
}

/* タブ */
.p-description__tabs {
  display: flex;
  gap: 10px;
  margin-top: 80px;

  @media screen and (max-width: 1023px) {
    margin-top: 30px;
  }
}

.p-description__tab {
  flex: 1;
  min-height: 60px;
  padding: 8px 4px;
  border: none;
  background-color: #fef1ec;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);
  cursor: pointer;

  @media screen and (max-width: 1023px) {
    min-height: 50px;
    font-size: 13px;
  }
}

.p-description__tab--active {
  background-color: #f7c7dc;
}

.p-description__tab-sub {
  @media screen and (max-width: 1023px) {
    display: block;
  }
}

/* テーブル */
.p-description__panel {
  border: 20px solid #f7c7dc;
  background-color: #fff;

  @media screen and (max-width: 1023px) {
    border-width: 8px;
  }
}

.p-description__table {
  margin: 0;
}

.p-description__row {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid rgba(70, 80, 89, 0.5);

  &:last-child {
    border-bottom: 0;
  }

  @media screen and (max-width: 1023px) {
    flex-direction: column;
    border: none;
  }
}

.p-description__term {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 200px;
  min-height: 112px;
  padding: 24px 20px;
  background-color: #fef1ec;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    width: 100%;
    justify-content: center;
    padding: 8px;
    font-size: 14px;
    min-height: unset;
  }
}

.p-description__desc {
  flex: 1;
  margin: 0;
  padding: 24px 28px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);
  display: grid;
  align-items: center;

  @media screen and (max-width: 1023px) {
    padding: 8px 14px;
    font-size: 14px;
    font-weight: 500;
  }
}

/* =============================================
  FAQ（よくある質問）
============================================= */
.p-faq {
  padding: 108px 20px 100px;
  background-color: #fff;

  @media screen and (max-width: 1023px) {
    padding: 40px 24px;
  }
}

.p-faq__inner {
  max-width: 1040px;
  margin: 0 auto;
}

.p-faq__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin: 0 0 85px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 48px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    gap: 10px;
    margin-bottom: 36px;
    font-size: 24px;
  }
}

.p-faq__title-badges {
  display: inline-flex;
  align-items: center;
}

.p-faq__title-badges .p-faq__badge--q {
  &::before {
    bottom: 8px;
    right: auto;
    left: -7px;
    rotate: -197deg;

    @media screen and (max-width: 1023px) {
      bottom: 4px;
      left: -6px;
    }
  }
}
.p-faq__title-badges .p-faq__badge--a {
  margin-top: 15px;
  margin-left: -14px;

  @media screen and (max-width: 1023px) {
    margin-top: 6px;
    margin-left: -4px;
  }
}

.p-faq__badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  font-family: Roboto, sans-serif;
  font-weight: 700;
  font-size: 30px;
  line-height: 1;
  position: relative;
  z-index: 0;

  &::before {
    content: "";
    position: absolute;
    background-color: inherit;
    width: 16px;
    height: 12px;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
    bottom: 8px;
    right: -7px;
    rotate: 25deg;
    z-index: -1;
  }

  @media screen and (max-width: 1023px) {
    width: 36px;
    font-size: 24px;

    &::before {
      bottom: 4px;
      right: -6px;
    }
  }
}

.p-faq__badge--q {
  background-color: #f7c7dc;
  color: #fff;

  &::before {
  }
}

.p-faq__badge--a {
  background-color: #c9e4ea;
  color: var(--lp-color-text);
}

.p-faq__list {
  display: flex;
  flex-direction: column;
  gap: 50px;

  @media screen and (max-width: 1023px) {
    gap: 25px;
  }
}

.p-faq__item {
  padding: 20px 28px;
  background-color: #fce8f1;
  border: 1px solid var(--lp-color-text);
  border-radius: 10px;

  @media screen and (max-width: 1023px) {
    padding: 10px;
  }
}

.p-faq__q {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  padding-right: 40px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.05em;
  line-height: 1.4;
  color: var(--lp-color-text);
  cursor: pointer;
  list-style: none;

  &::-webkit-details-marker {
    display: none;
  }

  @media screen and (max-width: 1023px) {
    gap: 10px;
    padding-right: 12px;
    font-size: 16px;
    font-weight: 500;
  }
}

.p-faq__chevron {
  position: absolute;
  top: 50%;
  right: 4px;
  width: 16px;
  height: 16px;
  border-right: 2px solid var(--lp-color-text);
  border-bottom: 2px solid var(--lp-color-text);
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.3s ease;

  @media screen and (max-width: 1023px) {
    width: 12px;
    height: 12px;
    right: 0;
  }
}

.p-faq__item[open] .p-faq__chevron {
  transform: translateY(-30%) rotate(225deg);
}

.p-faq__a {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-top: 14px;

  @media screen and (max-width: 1023px) {
    gap: 10px;
    margin-top: 12px;
  }
}

.p-faq__a-text {
  margin: 0;
  padding-top: 10px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    padding-top: 6px;
    font-size: 16px;
    line-height: 1.7;
  }
}

/* =============================================
  ENTRY（応募フォーム）
============================================= */
.p-entry {
  padding: 100px 20px;
  background-color: rgba(201, 228, 234, 0.5);

  @media screen and (max-width: 1023px) {
    padding: 40px 24px 70px;
  }
}

.p-entry__inner {
  max-width: 726px;
  margin: 0 auto;
}

.p-entry__title {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 48px;
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    font-size: 24px;
  }
}

.p-entry__lead {
  margin: 50px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.6;
  text-align: center;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    margin-top: 36px;
    font-size: 14px;
    line-height: 1.7;
    text-align: left;
  }
}

.p-entry__line-btn {
  display: flex;
  margin: 32px auto 0;

  @media screen and (max-width: 1023px) {
    margin-top: 24px;
  }
}

.p-entry__form {
  margin-top: 42px;

  @media screen and (max-width: 1023px) {
    margin-top: 36px;
  }
}

.p-entry__field {
  & + & {
    margin-top: 34px;
  }

  @media screen and (max-width: 1023px) {
    & + & {
      margin-top: 36px;
    }
  }
}

.p-entry__label {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);

  @media screen and (max-width: 1023px) {
    margin-bottom: 14px;
    font-size: 16px;
  }
}

.p-entry__required {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 59px;
  height: 28px;
  padding-bottom: 1px;
  background-color: var(--lp-color-text);
  border-radius: 30px;
  font-size: 16px;
  letter-spacing: 0.05em;
  color: #fff;
}

.p-entry__input,
.p-entry__textarea {
  display: block;
  width: 100%;
  padding: 0 20px;
  background-color: #fff;
  border: none;
  border-radius: 10px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 20px;
  color: var(--lp-color-text);

  &::placeholder {
    color: rgba(70, 80, 89, 0.3);
  }

  @media screen and (max-width: 1023px) {
    font-size: 16px;
    padding: 0 16px;
  }
}

.p-entry__input {
  height: 65px;

  @media screen and (max-width: 1023px) {
    height: 54px;
  }
}

.p-entry__textarea {
  height: 299px;
  padding-top: 18px;
  resize: vertical;

  @media screen and (max-width: 1023px) {
    height: 215px;
    padding-top: 16px;
    text-align: left;
  }
}

.p-entry__privacy {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 60px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.05em;
  color: var(--lp-color-text);
  cursor: pointer;

  @media screen and (max-width: 1023px) {
    margin-top: 30px;
    font-size: 16px;
  }
}

.p-entry__checkbox {
  width: 23px;
  height: 23px;
  flex-shrink: 0;
  margin: 0;
  accent-color: var(--lp-color-text);
}

.p-entry__submit {
  display: block;
  width: 100%;
  max-width: 374px;
  min-height: 74px;
  margin: 64px auto 0;
  padding: 12px 40px;
  background-color: #fff;
  border: 2px solid #465059;
  color: #465059;
  border-radius: 37px;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: opacity 0.3s ease;
	
	&:disabled {
  		border: 2px solid rgba(70, 80, 89, 0.3);
		color: rgba(70, 80, 89, 0.3);
	}

  &:hover {
    opacity: 0.85;
  }

  @media screen and (max-width: 1023px) {
    max-width: 279px;
    min-height: 60px;
    margin-top: 40px;
    font-weight: 500;
    font-size: 16px;
  }
}

/* =============================================
  ご応募フォーム（Contact Form 7 対応）
============================================= */
/* CF7 はコントロールを span.wpcf7-form-control-wrap で包むため、入力欄を全幅化 */
.p-entry__form .wpcf7-form-control-wrap {
  display: block;
}

/* CF7 はフォーム全体を div.wpcf7 > form でラップするので余白を調整 */
.p-entry__inner .wpcf7 {
  margin-top: 42px;

  @media screen and (max-width: 1023px) {
    margin-top: 36px;
  }
}

.p-entry__form {
  margin-top: 0;
}

/* 同意チェックボックス（[acceptance]）のレイアウト */
.p-entry__privacy .wpcf7-acceptance,
.p-entry__privacy .wpcf7-list-item {
  margin: 0;
}

.p-entry__privacy .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font-weight: inherit;
  cursor: pointer;
}

.p-entry__privacy input[type="checkbox"] {
  width: 23px;
  height: 23px;
  flex-shrink: 0;
  margin: 0;
  accent-color: var(--lp-color-text);
}

/* バリデーション表示・送信スピナー */
.p-entry__form .wpcf7-not-valid-tip {
  margin-top: 8px;
  font-size: 14px;
  font-weight: 500;
}

/* 初回送信前（data-status="init"）はリアルタイム検証のエラーメッセージを表示しない
   （CF7のchangeハンドラ自体は動かすので、同意チェック→送信ボタン有効化は機能する）。
   一度送信して失敗した後（invalid 等）はリアルタイムにエラーを表示する。 */
.p-entry__form[data-status="init"] .wpcf7-not-valid-tip {
  display: none;
}

.p-entry__form .wpcf7-response-output {
  margin: 24px auto 0;
  text-align: center;
}

.p-entry__form .wpcf7-spinner {
  margin: 16px auto 0;
  position: absolute;
}
