@charset "UTF-8";
/*------------------------------------------------------------------------------
  reset
------------------------------------------------------------------------------*/
/* 
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
Twitter: @rich_clark
*/
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input,
select {
  vertical-align: middle;
}

button {
  background-color: transparent;
  cursor: pointer;
}

input,
select,
textarea,
button {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  appearance: none;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

/*------------------------------------------------------------------------------
  base
------------------------------------------------------------------------------*/
body {
  color: #333;
  font-size: 13px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.6;
  letter-spacing: 0.02em;
  font-family: "Noto Sans JP", sans-serif;
  margin: 0;
  background-image: linear-gradient(358.7deg, rgba(211, 211, 211, 0.3) 1.7%, rgba(240, 240, 240, 0.3) 51.1%, rgba(255, 255, 255, 0.3) 95.5%);
}

img {
  border: 0;
  margin: 0;
  vertical-align: bottom;
  max-width: 100%;
  -webkit-user-drag: none;
}

a {
  color: #333;
  text-decoration: none;
  transition: opacity 0.25s ease;
}
a:hover {
  opacity: 0.85;
}

/*------------------------------------------------------------------------------
  common
------------------------------------------------------------------------------*/
#wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  box-sizing: border-box;
  width: 100%;
  overflow: hidden;
}

.l-container {
  margin: 0 auto;
  display: block;
  max-width: 580px;
  background-color: #F7FBFB;
  background-color: #fff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.0509803922);
  width: 100%;
  min-height: 100vh;
  box-sizing: border-box;
  flex: 1;
  position: relative;
  padding: 56px 0;
  height: 100%;
}
@media screen and (min-width: 581px) {
  .l-container {
    overflow-x: hidden;
  }
}

/*------------------------------------------------------------------------------
  l-header
------------------------------------------------------------------------------*/
.l-header {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  background-color: #fff;
  border-bottom: 1px solid #EDF2F3;
  height: 56px;
  padding: 8px 0;
  max-width: 580px;
  display: flex;
  align-items: center;
  overflow: hidden;
  z-index: 9;
}

.l-header__logo {
  width: 84px;
  margin-bottom: -3px;
}

.l-header__menu-wrap {
  display: flex;
  align-items: center;
}

.l-header__menu {
  flex: 0 1 24px;
  margin-left: 24px;
}
.l-header__menu img {
  width: 100%;
  object-fit: contain;
}

.l-header__menu--alert {
  position: absolute;
  top: -7px;
  right: -8px;
  color: #fff;
  font-size: 9px;
  font-weight: bold;
  line-height: 1;
  background-color: #DA3636;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.l-header__return {
  position: fixed;
  width: 22px;
  top: 50%;
  left: 12px;
  transform: translateY(-50%);
  display: block;
  cursor: pointer;
}
.l-header__return img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.l-header__return.c-tap-effect {
  position: fixed;
}

.l-header__helper {
  position: fixed;
  width: 22px;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  display: block;
  cursor: pointer;
}
.l-header__helper img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.l-header__helper.c-tap-effect {
  position: fixed;
}

.l-header__page-heading {
  color: #3B3B3B;
  font-size: 15px;
  font-weight: bold;
  text-align: center;
  display: block;
  width: 100%;
}

.l-header__page-heading--sub {
  color: #ED6B5F;
  font-size: 12px;
}

.l-header__referral {
  position: fixed;
  top: 0;
  right: 48px;
  height: 56px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  font-size: 9px;
  font-weight: 500;
  line-height: 1.1;
  color: #2F9EA3;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  z-index: 10;
}

.l-header__referral-icon {
  width: 18px;
  height: 18px;
}

/*------------------------------------------------------------------------------
  l-inner
------------------------------------------------------------------------------*/
.l-inner {
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0 16px;
  width: 100%;
}

.l-inner--sm {
  padding: 0 8px;
}

/*------------------------------------------------------------------------------
  c-btn
------------------------------------------------------------------------------*/
.c-btn {
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  width: 100%;
  max-width: 160px;
  height: 42px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #2F9EA3;
  box-sizing: border-box;
  border-radius: 42px;
  box-shadow: 0px 2px 10px 0px rgba(8, 63, 66, 0.12);
}
.c-btn:disabled, .c-btn[disabled] {
  background-color: #ccc;
  color: #999;
  cursor: not-allowed;
  box-shadow: none;
  pointer-events: none;
}

.c-btn--white {
  color: #2F9EA3;
  background-color: #fff;
  border: 1px solid #2F9EA3;
}

.c-btn--rectangle {
  max-width: 220px;
  height: 40px;
  border-radius: 2px;
  box-shadow: none;
}

.c-btn--sm {
  font-size: 13px;
  max-width: 136px;
  height: 37px;
  padding: 8px 16px;
}

.c-btn--xs {
  font-size: 11px;
  max-width: 80px;
  height: 28px;
  padding: 4px 12px;
  border-radius: 28px;
}

.c-btn--outline {
  color: #2F9EA3;
  background-color: transparent;
  border: 1px solid #2F9EA3;
  box-shadow: none;
}
.c-btn--outline:hover {
  background-color: rgba(47, 158, 163, 0.05);
}

.c-btn--danger {
  background-color: #DA3636;
  border: 1px solid #DA3636;
  color: #fff;
  box-shadow: none;
}
.c-btn--danger:hover {
  background-color: rgb(195.2571428571, 35.9428571429, 35.9428571429);
}

.c-btn--danger-outline {
  color: #DA3636;
  background-color: transparent;
  border: 1px solid #DA3636;
  box-shadow: none;
}
.c-btn--danger-outline:hover {
  background-color: rgba(218, 54, 54, 0.05);
}

.c-btn--md {
  max-width: 172px;
}

.c-btn__add-icon {
  flex: 0 0 17px;
  width: 17px;
  margin-right: 7px;
  width: 100%;
  height: auto;
  object-fit: contain;
  padding-top: 2px;
}

.c-btn__clock-icon {
  flex: 0 0 16px;
  width: 16px;
  margin-right: 5px;
  width: 100%;
  height: auto;
  object-fit: contain;
  padding-top: 2px;
}

.c-btn--fixed {
  position: fixed;
  bottom: 80px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  box-shadow: 0px 2px 8px 0px rgba(8, 63, 66, 0.25);
}

.c-btn--hidden {
  display: none;
}

.c-btn--refresh {
  font-size: 12px;
  font-weight: 500;
  display: inline-flex;
  width: auto;
  height: 34px;
  max-width: 100%;
  padding: 4px 20px 4px 32px;
  position: relative;
}
.c-btn--refresh::before {
  content: "";
  position: absolute;
  top: 51.7%;
  left: 11px;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background-image: url(../img/refresh.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

/*------------------------------------------------------------------------------
  c-tap-effect
------------------------------------------------------------------------------*/
.c-tap-effect {
  position: relative;
  cursor: pointer;
}
.c-tap-effect::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100px;
  height: 100px;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  transition: transform 0.5s ease, opacity 0.5s ease;
}
.c-tap-effect.is-tapped::after {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
}

/*------------------------------------------------------------------------------
  c-status-badge
------------------------------------------------------------------------------*/
.c-status-badge {
  color: #fff;
  font-size: 11px;
  font-weight: bold;
  display: inline-block;
  justify-content: center;
  align-items: center;
  text-align: center;
  border-radius: 4px;
  align-self: flex-start;
  padding: 3px 9px;
}
.c-status-badge.is-confirmed {
  background-color: #2F9EA3;
}
.c-status-badge.is-unconfirmed {
  background-color: #ED6B5F;
}
.c-status-badge.is-cancelled {
  background-color: #6F6F6F;
}
.c-status-badge.is-expired {
  background-color: #818181;
}
.c-status-badge--incomplete {
  background-color: #f59e0b;
}
.c-status-badge--trial {
  background-color: #3b82f6;
}
.c-status-badge--active {
  background-color: #10b981;
}
.c-status-badge--unpaid {
  background-color: #ef4444;
}
.c-status-badge--canceled {
  background-color: #6b7280;
}

/*------------------------------------------------------------------------------
  c-label
------------------------------------------------------------------------------*/
.c-label {
  color: #2F9EA3;
  font-size: 11px;
  font-weight: bold;
  display: inline-block;
  text-align: center;
  padding: 4px 10px;
  border-radius: 4px;
  border: 1px solid #2F9EA3;
  align-self: flex-start;
  background-color: #fff;
}

.c-label--gray {
  color: #818181;
  border-color: #818181;
}

.c-label--new {
  color: #ED6B5F;
  border-color: #ED6B5F;
  background-color: rgba(237, 107, 95, 0.08);
  padding: 2px 6px;
  vertical-align: middle;
  white-space: nowrap;
}

.c-label--sm {
  font-size: 10px;
  font-weight: normal;
  padding: 2px 5px;
}

.c-label--lg {
  font-size: 13px;
  font-weight: 500;
  padding: 4px 16px;
}

/*------------------------------------------------------------------------------
  c-status-bar
------------------------------------------------------------------------------*/
.c-status-bar {
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  background-color: rgba(21, 21, 21, 0.9);
  min-height: 42px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  padding: 12px 16px;
  width: calc(100% - 32px);
  max-width: 548px;
  border-radius: 2px;
  position: fixed;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  opacity: 0;
  transition: all 0.5s ease-in-out;
  visibility: hidden;
}
.c-status-bar.js-visible {
  opacity: 1;
  z-index: 5;
  visibility: visible;
}

/*------------------------------------------------------------------------------
  c-pagination
------------------------------------------------------------------------------*/
.c-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 24px 16px;
}

.c-pagination__prev,
.c-pagination__next {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid #EDF2F3;
  border-radius: 8px;
  background-color: #fff;
  color: #4F4F4F;
  cursor: pointer;
  transition: all 0.2s ease;
}
.c-pagination__prev:hover:not(:disabled),
.c-pagination__next:hover:not(:disabled) {
  border-color: #2F9EA3;
  color: #2F9EA3;
}
.c-pagination__prev:disabled,
.c-pagination__next:disabled {
  color: #ECECEC;
  cursor: not-allowed;
}

.c-pagination__list {
  display: flex;
  align-items: center;
  gap: 4px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.c-pagination__item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  color: #4F4F4F;
  text-decoration: none;
  transition: all 0.2s ease;
}
.c-pagination__item:hover {
  background-color: #EAF5F6;
  color: #2F9EA3;
}
.c-pagination__item.is-active {
  background-color: #2F9EA3;
  color: #fff;
  pointer-events: none;
}

.c-pagination__ellipsis {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  font-size: 14px;
  color: #818181;
}

.review-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.review-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
}

.review-modal-content {
  position: relative;
  background: #fff;
  border-radius: 12px;
  max-width: 500px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  z-index: 1;
}
.review-modal-content.small {
  max-width: 400px;
}

.review-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  border-bottom: 1px solid #e0e0e0;
}

.review-modal-title {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: #333;
}

.review-modal-close {
  background: none;
  border: none;
  font-size: 28px;
  color: #999;
  cursor: pointer;
  padding: 0;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.review-modal-close:hover {
  color: #333;
}

.review-modal-body {
  padding: 20px;
}

.review-delete-confirm-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: #333;
  text-align: center;
}

.review-modal-footer {
  padding: 16px 20px;
  border-top: 1px solid #e0e0e0;
  display: flex;
  gap: 12px;
  justify-content: flex-end;
}

.review-modal-button {
  padding: 10px 20px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  border: none;
}
.review-modal-button.secondary {
  background: #f8f9fa;
  color: #666;
}
.review-modal-button.secondary:hover {
  background: #e9ecef;
}
.review-modal-button.danger {
  background: #dc3545;
  color: #fff;
}
.review-modal-button.danger:hover:not(:disabled) {
  background: #c82333;
}
.review-modal-button.danger:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

@media (max-width: 600px) {
  .review-modal-content {
    width: 95%;
    max-height: 95vh;
  }
  .review-modal-header,
  .review-modal-body,
  .review-modal-footer {
    padding: 16px;
  }
}
/*------------------------------------------------------------------------------
  c-link
------------------------------------------------------------------------------*/
.c-link {
  color: #2F9EA3;
  text-decoration: underline;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.c-link:hover {
  opacity: 0.7;
}
.c-link.is-disabled {
  opacity: 0.5;
  pointer-events: none;
  cursor: not-allowed;
}

/*------------------------------------------------------------------------------
  c-email-row
------------------------------------------------------------------------------*/
.c-email-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
}
.c-email-row__address {
  font-size: 14px;
  color: #333;
}
.c-email-row__link {
  display: flex;
  align-items: center;
  color: #2F9EA3;
  font-size: 14px;
  text-decoration: none;
  transition: opacity 0.2s ease;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.c-email-row__link:hover {
  opacity: 0.7;
}
.c-email-row__link:disabled {
  opacity: 0.5;
  pointer-events: none;
  cursor: not-allowed;
}
.c-email-row__arrow {
  margin-left: 4px;
  font-size: 18px;
  line-height: 1;
}
.c-email-row__hint {
  font-size: 12px;
  color: #888;
  margin-top: 4px;
}

/*------------------------------------------------------------------------------
  c-line-setup-banner
  LINE未設定時に表示する案内バナー
------------------------------------------------------------------------------*/
.c-line-setup-banner {
  background-color: #EAF5F6;
  border: 1px solid #ACD8DA;
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 1rem;
}
.c-line-setup-banner__content {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}
.c-line-setup-banner__icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.c-line-setup-banner__body {
  flex: 1;
}
.c-line-setup-banner__text {
  font-size: 13px;
  color: #4F4F4F;
  line-height: 1.6;
  margin-bottom: 0.75rem;
}
.c-line-setup-banner__action {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 13px;
  font-weight: 700;
  color: #2F9EA3;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.c-line-setup-banner__action:hover {
  opacity: 0.8;
}
.c-line-setup-banner__action::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url(../img/caret-right.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

/*------------------------------------------------------------------------------
  c-feature-announcement
  ホーム画面の新機能のお知らせ
------------------------------------------------------------------------------*/
.c-feature-announcement {
  position: relative;
}
.c-feature-announcement__heading {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 0.5rem;
  padding-right: 1rem;
}
.c-feature-announcement__close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #6F6F6F;
}
.c-feature-announcement__close:hover {
  background-color: #D5ECED;
}
.c-feature-announcement__details {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: #2F9EA3;
  font-size: 13px;
  font-weight: 700;
}
.c-feature-announcement__details:hover {
  text-decoration: underline;
}

/*------------------------------------------------------------------------------
  p-login
------------------------------------------------------------------------------*/
.p-login {
  width: 100%;
  height: 100vh;
  background-image: url(../img/login-bg.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.p-login .p-form {
  max-width: 480px;
}

.p-login__logo {
  width: 100%;
  max-width: 180px;
  margin: 0 auto 32px;
}
.p-login__logo img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.p-login__text {
  color: #fff;
  text-align: center;
}
.p-login__text a {
  color: #fff;
  text-decoration: underline;
}

.p-login__link {
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  text-decoration: underline;
}

.p-login__error {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #ED6B5F;
  box-sizing: border-box;
  border-radius: 2px;
  padding: 9px 12px;
}
.p-login__error img {
  width: 15px;
  object-fit: contain;
  margin-right: 1.5px;
  margin-top: 1px;
}
.p-login__error span {
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  margin-left: 1.5px;
}

/*------------------------------------------------------------------------------
  p-home
------------------------------------------------------------------------------*/
.p-home {
  background-color: #fff;
  padding: 16px 0;
  margin-bottom: 8px;
}

.p-home__account-icon {
  flex: 0 0 106px;
  margin-right: 16px;
}
.p-home__account-icon img {
  width: 100%;
  height: 106px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}

.p-home__info {
  flex: 1;
}

.p-home__name {
  color: #3B3B3B;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.25;
  margin-bottom: 4px;
}

.p-home__links {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.p-home__review-wrapper {
  display: flex;
  align-items: center;
  gap: 6px;
}

.p-home__review {
  display: flex;
  align-items: center;
}
.p-home__review span {
  color: #2F9EA3;
  font-size: 12px;
  font-weight: 500;
  display: inline-block;
  margin-right: 4px;
  white-space: nowrap;
}
.p-home__review img {
  max-width: 12px;
  width: 100%;
  height: auto;
  object-fit: contain;
  display: inline-block;
  padding-bottom: 1px;
  filter: brightness(0) saturate(100%) invert(56%) sepia(22%) saturate(1051%) hue-rotate(136deg) brightness(91%) contrast(87%);
}

.p-home__tooltip-wrapper {
  position: relative;
  display: inline-block;
}

.p-home__info-icon {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  transition: opacity 0.2s;
}
.p-home__info-icon:hover {
  opacity: 0.7;
}
.p-home__info-icon svg {
  display: block;
}

.p-home__tooltip {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background-color: #333;
  color: #fff;
  padding: 12px;
  border-radius: 6px;
  font-size: 11px;
  line-height: 1.6;
  white-space: normal;
  width: 240px;
  max-width: calc(100vw - 32px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s, visibility 0.2s;
  pointer-events: none;
}
.p-home__tooltip::after {
  content: "";
  position: absolute;
  bottom: 100%;
  right: 8px;
  border: 6px solid transparent;
  border-bottom-color: #333;
}
.p-home__tooltip.is-visible {
  opacity: 1;
  visibility: visible;
}

.p-home__tooltip-text {
  margin: 0;
}
.p-home__tooltip-text:not(:last-child) {
  margin-bottom: 8px;
}

.p-home__line {
  display: flex;
  align-items: center;
}
.p-home__line span {
  color: #06C755;
  font-size: 12px;
  font-weight: 500;
  display: inline-block;
  margin-right: 4px;
  white-space: nowrap;
}
.p-home__line img {
  max-width: 12px;
  width: 100%;
  height: auto;
  object-fit: contain;
  display: inline-block;
  padding-bottom: 1px;
}

.p-home__stats {
  background-color: #F0F8F9;
  border: 1px solid #82C5C8;
  border-radius: 5px;
  margin-top: 12px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  padding: 12px 18px;
}

/*------------------------------------------------------------------------------
  p-form
------------------------------------------------------------------------------*/
.p-form {
  display: block;
  width: 100%;
  margin: 0 auto;
}

.p-form__line-btn {
  background-color: #06C755;
  border-radius: 12px;
  width: 100%;
  height: 51px;
  max-width: 200px;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  cursor: pointer;
  transition: all 0.2s ease;
}
.p-form__line-btn:hover {
  background-color: #05B34D;
  opacity: 1;
}
.p-form__line-btn:active {
  background-color: #048B3C;
}

.p-form__line-icon {
  flex: 0 0 52px;
  max-width: 52px;
  box-sizing: border-box;
  padding: 0 8px;
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.p-form__line-text {
  color: #fff;
  font-size: 15px;
  font-weight: bold;
  letter-spacing: 0.05em;
  padding-left: 13px;
  border-left: 1px solid rgba(0, 0, 0, 0.08);
  height: 100%;
  display: flex;
  align-items: center;
  padding-bottom: 2px;
}

.p-form__input-heading {
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 8px;
}

.p-form__helper-wrap {
  position: relative;
}
.p-form__helper-wrap.is-active .p-form__tooltip {
  display: block;
}

.p-form__helper {
  position: absolute;
  top: -3px;
  right: -25px;
  width: 18px;
  display: inline-block;
}
.p-form__helper img {
  width: 100%;
  object-fit: contain;
}

.p-form__tooltip {
  font-size: 11px;
  font-weight: 500;
  color: #fff;
  padding: 6px 9px;
  border-radius: 5px;
  position: absolute;
  top: -28px;
  left: 114px;
  z-index: 9;
  width: 176px;
  background-color: #4F4F4F;
  display: none;
}

.p-form__input-text {
  width: 100%;
  box-sizing: border-box;
}
.p-form__input-text input[type=text],
.p-form__input-text input[type=email],
.p-form__input-text input[type=tel],
.p-form__input-text input[type=password],
.p-form__input-text textarea {
  font-size: 16px !important;
  width: 100%;
  padding: 10.5px 8px;
  display: block;
  box-sizing: border-box;
  border: 1px solid #C1E2E3;
  border-radius: 2px;
  background-color: #fff;
  font-family: "Noto Sans JP", sans-serif;
}
.p-form__input-text input[type=text]::placeholder,
.p-form__input-text input[type=email]::placeholder,
.p-form__input-text input[type=tel]::placeholder,
.p-form__input-text input[type=password]::placeholder,
.p-form__input-text textarea::placeholder {
  color: #818181;
  font-size: 14px;
  line-height: 1.6;
  font-weight: normal;
}

.p-form__input-text--sm input[type=text] {
  max-width: 110px;
}

.p-form__input-sub-text {
  color: #4F4F4F;
  font-size: 12px;
  font-weight: 500;
}

.p-form__textarea textarea {
  min-height: 112px;
}

.p-form__char-count {
  text-align: right;
  font-size: 13px;
  color: #999;
  margin-top: 6px;
}
.p-form__char-count.is-over {
  color: #ED6B5F;
}

.p-form__password {
  position: relative;
}

.p-form__password-icon {
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  width: 18px;
  cursor: pointer;
  z-index: 1;
}

.p-form__input-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin-left: 8px;
}
.p-form__input-radio label {
  cursor: pointer;
  display: inline-block;
}
.p-form__input-radio input[type=radio] {
  width: 17px;
  height: 17px;
  border-radius: 50%;
  border: 1px solid #BBBBBB;
  vertical-align: -4px;
  box-shadow: 0 0 0 -2px #fff;
  cursor: pointer;
  display: inline-block;
}
.p-form__input-radio input[type=radio]:checked {
  border: 2.5px solid #fff;
  box-shadow: 0 0 0 1px #4F4F4F;
  background-color: #4F4F4F;
  box-sizing: border-box;
}
.p-form__input-radio.u-primary-color input[type=radio] {
  border-color: #2F9EA3;
}
.p-form__input-radio.u-primary-color input[type=radio]:checked {
  box-shadow: 0 0 0 1px #2F9EA3;
  background-color: #2F9EA3;
}

.p-form__input-radio--lg input[type=radio] {
  width: 23px;
  height: 23px;
}
.p-form__input-radio--lg input[type=radio]:checked {
  border: 3px solid #fff;
}

.p-form__select {
  position: relative;
  max-width: 190px;
}
.p-form__select::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  background-image: url(../img/caret-down.svg);
  width: 16px;
  height: 16px;
  background-repeat: no-repeat;
  background-size: contain;
  cursor: pointer;
}
.p-form__select select {
  color: #4F4F4F;
  font-size: 13px;
  cursor: pointer;
  display: block;
  position: relative;
  background-color: transparent;
  padding: 10.5px 8px;
  display: block;
  box-sizing: border-box;
  border: 1px solid #C1E2E3;
  border-radius: 2px;
  width: 100%;
  height: 46px;
  z-index: 1;
}

.p-form__select--lg {
  max-width: 100%;
}

.p-form__input-checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-left: 8px;
}
.p-form__input-checkbox label {
  cursor: pointer;
  display: inline-block;
}
.p-form__input-checkbox input[type=checkbox] {
  width: 17px;
  height: 17px;
  border-radius: 50%;
  border: 1px solid #BBBBBB;
  vertical-align: -4px;
  box-shadow: 0 0 0 -2px #fff;
  cursor: pointer;
  display: inline-block;
}
.p-form__input-checkbox input[type=checkbox]:checked {
  border: 2.5px solid #fff;
  box-shadow: 0 0 0 1px #4F4F4F;
  background-color: #4F4F4F;
  box-sizing: border-box;
}

.p-form__file {
  position: relative;
}

.p-form__img-prev {
  display: block;
  max-width: 80px;
  aspect-ratio: 1/1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  cursor: pointer;
  border-radius: 2px;
}

.p-form__date {
  max-width: 110px;
}
.p-form__date label {
  width: 110px;
  height: 44px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  border: 1px solid #C1E2E3;
  border-radius: 2px;
  background-color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  position: relative;
  cursor: pointer;
  z-index: 0;
}
.p-form__date label::after {
  content: "";
  position: absolute;
  top: 51%;
  transform: translateY(-50%);
  right: 6px;
  background-image: url(../img/calendar-black.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 16px;
  height: 17px;
  z-index: -2;
}
.p-form__date input[type=date] {
  color: #4F4F4F;
  font-size: 12px;
  font-weight: normal;
  font-family: "Noto Sans JP", sans-serif;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 8px 5px;
  text-align: left;
  position: relative;
  z-index: 0;
}
.p-form__date input[type=date]::-webkit-calendar-picker-indicator {
  position: absolute;
  top: 0;
  left: 0;
  background-color: transparent;
  width: 100%;
  height: 100%;
  background-image: none;
  opacity: 0;
  cursor: pointer;
}

.p-form__input-select {
  width: 70px;
  position: relative;
}
.p-form__input-select::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 6px;
  transform: translateY(-50%);
  background-image: url(../img/caret-down.svg);
  width: 13px;
  height: 13px;
  background-repeat: no-repeat;
  background-size: contain;
  cursor: pointer;
}
.p-form__input-select select {
  color: #4F4F4F;
  font-size: 12px;
  cursor: pointer;
  display: block;
  position: relative;
  background-color: transparent;
  padding: 10.5px 8px;
  display: block;
  box-sizing: border-box;
  border: 1px solid #C1E2E3;
  border-radius: 2px;
  width: 100%;
  height: 44px;
  z-index: 1;
}
.p-form__input-select select:disabled {
  color: #818181;
  border-color: #818181;
  cursor: not-allowed;
  opacity: 0.6;
}
.p-form__input-select.u-primary-color::after {
  background-image: url(../img/caret-teal-down.svg);
}
.p-form__input-select.is-disabled::after {
  background-image: url(../img/caret-down.svg);
  opacity: 0.6;
}

.p-form__input-select--lg {
  width: 90px;
}
.p-form__input-select--lg select {
  font-size: 14px;
  font-weight: bold;
}

.p-form__input-select--full {
  width: 100%;
}

.p-form__input-toggle {
  position: relative;
  display: inline-block;
  width: 56px;
  height: 32px;
}
.p-form__input-toggle input[type=checkbox] {
  opacity: 0;
  width: 0;
  height: 0;
}
.p-form__input-toggle input[type=checkbox]:checked + .p-form__toggle-slider {
  background-color: #2F9EA3;
  border: 1px solid #2F9EA3;
}
.p-form__input-toggle input[type=checkbox]:checked + .p-form__toggle-slider::before {
  background-color: #fff;
  transform: translateX(22px);
}
.p-form__input-toggle input[type=checkbox]:disabled + .p-form__toggle-slider {
  opacity: 0.5;
  cursor: not-allowed;
}

.p-form__toggle-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #fff;
  border: 1px solid #CBCBCB;
  transition: 0.3s;
  border-radius: 32px;
}
.p-form__toggle-slider::before {
  position: absolute;
  content: "";
  height: 28px;
  width: 28px;
  left: 2px;
  bottom: 1px;
  background-color: #CBCBCB;
  transition: 0.3s;
  border-radius: 50%;
}

.p-form__close-btn {
  color: #ED6B5F;
  font-size: 13px;
  font-weight: bold;
  display: flex;
  align-items: center;
  margin-bottom: 6px;
}
.p-form__close-btn img {
  width: 24px;
  object-fit: contain;
  margin-bottom: 1.5px;
}

.p-form__date-exclusion-add {
  color: #4F4F4F;
  font-size: 13px;
  font-weight: 500;
  width: 124px;
  height: 39px;
  border: 1px solid #4F4F4F;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 2px;
  padding-left: 10px;
  padding-top: 2px;
  position: relative;
}
.p-form__date-exclusion-add::before {
  content: "";
  position: absolute;
  top: 11px;
  left: 9px;
  background-image: url(../img/plus.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 15px;
  height: 16px;
}

.p-form__submit {
  max-width: 160px;
  width: 100%;
}
.p-form__submit input[type=submit] {
  cursor: pointer;
}

.p-form__error-text {
  color: #ED6B5F;
  font-size: 13px;
  font-weight: 500;
  display: inline-block;
  margin-top: 4px;
}

.p-form__weekly-schedule {
  width: 100%;
}
.p-form__weekly-schedule li {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
}
.p-form__weekly-schedule li:not(:last-child) {
  margin-bottom: 8px;
}
.p-form__weekly-schedule li .p-form__error-text {
  flex: 0 1 100%;
  margin-bottom: 8px;
}
.p-form__weekly-schedule li .p-form__input-toggle {
  margin-left: auto;
}

.p-form__weekly-schedule-heading {
  font-size: 14px;
  font-weight: 500;
  margin-right: 8px;
  min-width: 50px;
}

.p-form__weekly-schedule-between {
  font-size: 14px;
  font-weight: bold;
  margin-right: 8px;
}

.p-form__input-time {
  max-width: 80px;
}
.p-form__input-time label {
  width: 80px;
  height: 44px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  border: 1px solid #C1E2E3;
  border-radius: 2px;
  background-color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  position: relative;
  cursor: pointer;
  z-index: 0;
}
.p-form__input-time label::after {
  content: "";
  position: absolute;
  top: 51%;
  transform: translateY(-50%);
  right: 7px;
  background-image: url(../img/time-black.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 16px;
  height: 16px;
  z-index: -2;
}
.p-form__input-time input[type=time] {
  color: #4F4F4F;
  font-size: 12px;
  font-weight: normal;
  font-family: "Noto Sans JP", sans-serif;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 8px 4px 8px 12px;
  text-align: left;
  position: relative;
  z-index: 0;
}
.p-form__input-time input[type=time]::-webkit-calendar-picker-indicator {
  position: absolute;
  top: 0;
  left: 0;
  background-color: transparent;
  width: 100%;
  height: 100%;
  background-image: none;
  opacity: 0;
  cursor: pointer;
}

.p-form__datetime-range {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
}

.p-form__datetime-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

.p-form__datetime-between {
  font-size: 14px;
  font-weight: bold;
  color: #4F4F4F;
}

.p-form__datetime-stack {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-left: 8px;
}

.p-form__datetime-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.p-form__datetime-label {
  font-size: 13px;
  font-weight: bold;
  color: #4F4F4F;
  min-width: 32px;
}

.p-form__login {
  background-color: #1A1A1A;
  height: 44px;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  transition: opacity 0.2s ease;
}
.p-form__login input[type=submit] {
  color: #fff;
  font-weight: bold;
  font-size: 13px;
  width: 100%;
  height: 100%;
  cursor: pointer;
}
.p-form__login:hover {
  opacity: 0.8;
}

.p-form__images {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.p-form__image-item {
  position: relative;
}

.p-form__image {
  width: 100px;
  height: 100px;
  border-radius: 8px;
  overflow: hidden;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  display: block;
  cursor: pointer;
}
.p-form__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-form__image-delete {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: #ff4444;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.p-form__image-delete img {
  width: 12px;
  height: 12px;
  filter: brightness(0) invert(1);
}

.p-form__image-add {
  width: 100px;
  height: 100px;
  border: 2px dashed #ccc;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 0.2s;
}
.p-form__image-add:hover {
  border-color: #2F9EA3;
}
.p-form__image-add span {
  font-size: 32px;
  color: #ccc;
}

.p-image-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1080;
  background-color: rgba(0, 0, 0, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  border: none;
}

.p-image-lightbox__image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}

.p-image-lightbox__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.2);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  color: #fff;
  font-size: 20px;
  line-height: 1;
}
.p-image-lightbox__close:hover {
  background-color: rgba(255, 255, 255, 0.35);
}

.p-form__mode-switch-container {
  display: flex;
  gap: 12px;
}

.p-form__mode-switch-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 12px 8px;
  border: 2px solid #ECECEC;
  border-radius: 8px;
  background-color: #fff;
  cursor: pointer;
  transition: all 0.2s ease;
}
.p-form__mode-switch-btn:hover {
  border-color: #82C5C8;
}
.p-form__mode-switch-btn.is-active {
  border-color: #2F9EA3;
  background-color: #F0F8F9;
}

.p-form__mode-switch-icon {
  color: #6F6F6F;
  display: flex;
  align-items: center;
  justify-content: center;
}
.is-active .p-form__mode-switch-icon {
  color: #2F9EA3;
}

.p-form__mode-switch-label {
  font-size: 13px;
  font-weight: bold;
  color: #4F4F4F;
}
.is-active .p-form__mode-switch-label {
  color: #2F9EA3;
}

.p-form__mode-switch-desc {
  font-size: 11px;
  color: #6F6F6F;
}

.p-form__calendar {
  border: 1px solid #ECECEC;
  border-radius: 8px;
  padding: 16px;
  background-color: #fff;
}

.p-form__cally {
  width: 100%;
}

calendar-multi::part(container) {
  width: 100%;
}

calendar-multi::part(header) {
  display: none;
}

calendar-multi::part(heading) {
  font-size: 15px;
  font-weight: bold;
  color: #333;
}

calendar-multi::part(button) {
  width: 32px;
  height: 32px;
  border: 1px solid #ECECEC;
  border-radius: 50%;
  background-color: #fff;
  cursor: pointer;
  color: #4F4F4F;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s;
}
calendar-multi::part(button):hover {
  background-color: #F4F7F7;
}

calendar-month {
  --color-accent: #2F9EA3;
  --color-text-on-accent: #fff;
  width: 100%;
}

calendar-month::part(table) {
  width: 100%;
}

calendar-month::part(weekday) {
  font-size: 12px;
  font-weight: bold;
  color: #6F6F6F;
  padding: 4px;
}

calendar-month::part(button) {
  font-size: 13px;
  color: #4F4F4F;
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  border-radius: 50%;
  cursor: pointer;
  transition: background-color 0.15s;
}
calendar-month::part(button):hover {
  background-color: #EAF5F6;
}

calendar-month::part(selected) {
  background-color: #2F9EA3;
  color: #fff;
  font-weight: bold;
}
calendar-month::part(selected):hover {
  background-color: #59B1B5;
}

calendar-month::part(today) {
  border: 2px solid #ACD8DA;
}

calendar-month::part(day-0) {
  color: #E53935;
}

calendar-month::part(day-6) {
  color: #2196F3;
}

calendar-month::part(holiday) {
  color: #E53935;
}

calendar-month::part(selected day-6) {
  color: #fff;
}

calendar-month::part(selected day-0) {
  background-color: #E53935;
  color: #fff;
}
calendar-month::part(selected day-0):hover {
  background-color: #EF5350;
}

calendar-month::part(selected holiday) {
  background-color: #E53935;
  color: #fff;
}
calendar-month::part(selected holiday):hover {
  background-color: #EF5350;
}

calendar-month::part(outside) {
  color: #818181;
  opacity: 0.4;
}

.p-form__calendar-legend {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 12px;
  font-size: 12px;
  color: #6F6F6F;
}

.p-form__calendar-legend-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

.p-form__calendar-legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
}
.p-form__calendar-legend-dot--selected {
  background-color: #2F9EA3;
}
.p-form__calendar-legend-dot--default {
  background-color: #ECECEC;
}
.p-form__calendar-legend-dot--holiday {
  background-color: #E53935;
}

/*------------------------------------------------------------------------------
  p-nav-bar
------------------------------------------------------------------------------*/
.p-nav-bar {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 56px;
  max-width: 580px;
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  box-shadow: 0px -4px 9px 0px rgba(0, 0, 0, 0.04);
  padding: 0 16px;
  overflow: hidden;
}

.p-nav-bar__item {
  font-size: 10px;
  font-weight: 500;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  box-sizing: border-box;
  padding: 0 16px;
  transition: color 0.1s ease;
}
.p-nav-bar__item::before {
  content: "";
  position: relative;
  top: 0;
  left: 0;
  width: 26px;
  height: 26px;
  background-repeat: no-repeat;
  background-size: 26px 26px;
  display: block;
  text-align: center;
}
.p-nav-bar__item.is-active, .p-nav-bar__item:hover {
  color: #2F9EA3;
  opacity: 1;
}
.p-nav-bar__item::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100px;
  height: 100px;
  background: rgba(47, 158, 163, 0.1);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  transition: transform 0.5s ease, opacity 0.5s ease;
}
.p-nav-bar__item.is-tapped::after {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
}

.p-nav-bar__item--home::before {
  background-image: url('data:image/svg+xml;utf8,<svg width="26" height="26" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 26"><path d="M14.0915 3.53077C13.7011 3.23904 13.5059 3.09318 13.2904 3.03711C13.1002 2.98763 12.8998 2.98763 12.7096 3.03711C12.4941 3.09318 12.2989 3.23904 11.9086 3.53077L4.37266 9.16264C3.86891 9.53911 3.61704 9.72734 3.43559 9.96307C3.27485 10.1719 3.15511 10.4071 3.08225 10.6572C3 10.9396 3 11.2462 3 11.8594V19.5836C3 20.7794 3 21.3774 3.24221 21.8341C3.45526 22.2359 3.79522 22.5626 4.21335 22.7673C4.68871 23 5.31099 23 6.55556 23H8.77778C9.08892 23 9.24449 23 9.36333 22.9418C9.46786 22.8906 9.55285 22.809 9.60612 22.7085C9.66667 22.5943 9.66667 22.4449 9.66667 22.1459V15.0996C9.66667 14.5016 9.66667 14.2027 9.78777 13.9743C9.8943 13.7734 10.0643 13.6101 10.2733 13.5077C10.511 13.3914 10.8222 13.3914 11.4444 13.3914H14.5556C15.1778 13.3914 15.489 13.3914 15.7267 13.5077C15.9357 13.6101 16.1057 13.7734 16.2122 13.9743C16.3333 14.2027 16.3333 14.5016 16.3333 15.0996V22.1459C16.3333 22.4449 16.3333 22.5943 16.3939 22.7085C16.4471 22.809 16.5321 22.8906 16.6367 22.9418C16.7555 23 16.9111 23 17.2222 23H19.4444C20.689 23 21.3113 23 21.7866 22.7673C22.2048 22.5626 22.5447 22.2359 22.7578 21.8341C23 21.3774 23 20.7794 23 19.5836V11.8594C23 11.2462 23 10.9396 22.9177 10.6572C22.8449 10.4071 22.7252 10.1719 22.5644 9.96307C22.383 9.72734 22.1311 9.53911 21.6273 9.16264L14.0915 3.53077Z" stroke="%236F6F6F" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}
.p-nav-bar__item--home:hover::before, .p-nav-bar__item--home.is-active::before {
  background-image: url('data:image/svg+xml;utf8,<svg width="26" height="26" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 26"><path d="M14.0915 3.53077C13.7011 3.23904 13.5059 3.09318 13.2904 3.03711C13.1002 2.98763 12.8998 2.98763 12.7096 3.03711C12.4941 3.09318 12.2989 3.23904 11.9086 3.53077L4.37266 9.16264C3.86891 9.53911 3.61704 9.72734 3.43559 9.96307C3.27485 10.1719 3.15511 10.4071 3.08225 10.6572C3 10.9396 3 11.2462 3 11.8594V19.5836C3 20.7794 3 21.3774 3.24221 21.8341C3.45526 22.2359 3.79522 22.5626 4.21335 22.7673C4.68871 23 5.31099 23 6.55556 23H8.77778C9.08892 23 9.24449 23 9.36333 22.9418C9.46786 22.8906 9.55285 22.809 9.60612 22.7085C9.66667 22.5943 9.66667 22.4449 9.66667 22.1459V15.0996C9.66667 14.5016 9.66667 14.2027 9.78777 13.9743C9.8943 13.7734 10.0643 13.6101 10.2733 13.5077C10.511 13.3914 10.8222 13.3914 11.4444 13.3914H14.5556C15.1778 13.3914 15.489 13.3914 15.7267 13.5077C15.9357 13.6101 16.1057 13.7734 16.2122 13.9743C16.3333 14.2027 16.3333 14.5016 16.3333 15.0996V22.1459C16.3333 22.4449 16.3333 22.5943 16.3939 22.7085C16.4471 22.809 16.5321 22.8906 16.6367 22.9418C16.7555 23 16.9111 23 17.2222 23H19.4444C20.689 23 21.3113 23 21.7866 22.7673C22.2048 22.5626 22.5447 22.2359 22.7578 21.8341C23 21.3774 23 20.7794 23 19.5836V11.8594C23 11.2462 23 10.9396 22.9177 10.6572C22.8449 10.4071 22.7252 10.1719 22.5644 9.96307C22.383 9.72734 22.1311 9.53911 21.6273 9.16264L14.0915 3.53077Z" stroke="%232F9EA3" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}

.p-nav-bar__item--reserve::before {
  background-image: url('data:image/svg+xml;utf8,<svg width="27" height="26" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 26"><path d="M22.67 11H3.66998M17.3922 3V7M8.94776 3V7M8.73665 23H17.6033C19.3768 23 20.2636 23 20.941 22.673C21.5368 22.3854 22.0212 21.9265 22.3248 21.362C22.67 20.7202 22.67 19.8802 22.67 18.2V9.8C22.67 8.11984 22.67 7.27976 22.3248 6.63803C22.0212 6.07354 21.5368 5.6146 20.941 5.32698C20.2636 5 19.3768 5 17.6033 5H8.73665C6.96315 5 6.0764 5 5.39901 5.32698C4.80317 5.6146 4.31873 6.07354 4.01513 6.63803C3.66998 7.27976 3.66998 8.11984 3.66998 9.8V18.2C3.66998 19.8802 3.66998 20.7202 4.01513 21.362C4.31873 21.9265 4.80317 22.3854 5.39901 22.673C6.0764 23 6.96315 23 8.73665 23Z" stroke="%236F6F6F" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}
.p-nav-bar__item--reserve:hover::before, .p-nav-bar__item--reserve.is-active::before {
  background-image: url('data:image/svg+xml;utf8,<svg width="27" height="26" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 26"><path d="M22.67 11H3.66998M17.3922 3V7M8.94776 3V7M8.73665 23H17.6033C19.3768 23 20.2636 23 20.941 22.673C21.5368 22.3854 22.0212 21.9265 22.3248 21.362C22.67 20.7202 22.67 19.8802 22.67 18.2V9.8C22.67 8.11984 22.67 7.27976 22.3248 6.63803C22.0212 6.07354 21.5368 5.6146 20.941 5.32698C20.2636 5 19.3768 5 17.6033 5H8.73665C6.96315 5 6.0764 5 5.39901 5.32698C4.80317 5.6146 4.31873 6.07354 4.01513 6.63803C3.66998 7.27976 3.66998 8.11984 3.66998 9.8V18.2C3.66998 19.8802 3.66998 20.7202 4.01513 21.362C4.31873 21.9265 4.80317 22.3854 5.39901 22.673C6.0764 23 6.96315 23 8.73665 23Z" stroke="%2359B1B5" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}

.p-nav-bar__item--menu::before {
  background-image: url('data:image/svg+xml;utf8,<svg width="27" height="26" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 26"><path d="M15.965 2.29648V6.84008C15.965 7.45614 15.965 7.76417 16.0808 7.99947C16.1826 8.20645 16.3452 8.37472 16.5451 8.48019C16.7724 8.60008 17.0699 8.60008 17.665 8.60008H22.0537M18.09 14.1H9.58997M18.09 18.5H9.58997M11.715 9.7H9.58997M15.965 2H10.44C8.6548 2 7.76221 2 7.08037 2.35968C6.4806 2.67606 5.99298 3.1809 5.68738 3.80183C5.33997 4.50774 5.33997 5.43183 5.33997 7.28V18.72C5.33997 20.5682 5.33997 21.4923 5.68738 22.1982C5.99298 22.8191 6.4806 23.3239 7.08037 23.6403C7.76221 24 8.6548 24 10.44 24H17.24C19.0251 24 19.9177 24 20.5996 23.6403C21.1993 23.3239 21.687 22.8191 21.9925 22.1982C22.34 21.4923 22.34 20.5682 22.34 18.72V8.6L15.965 2Z" stroke="%236F6F6F" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}
.p-nav-bar__item--menu:hover::before, .p-nav-bar__item--menu.is-active::before {
  background-image: url('data:image/svg+xml;utf8,<svg width="27" height="26" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 26"><path d="M15.965 2.29648V6.84008C15.965 7.45614 15.965 7.76417 16.0808 7.99947C16.1826 8.20645 16.3452 8.37472 16.5451 8.48019C16.7724 8.60008 17.0699 8.60008 17.665 8.60008H22.0537M18.09 14.1H9.58997M18.09 18.5H9.58997M11.715 9.7H9.58997M15.965 2H10.44C8.6548 2 7.76221 2 7.08037 2.35968C6.4806 2.67606 5.99298 3.1809 5.68738 3.80183C5.33997 4.50774 5.33997 5.43183 5.33997 7.28V18.72C5.33997 20.5682 5.33997 21.4923 5.68738 22.1982C5.99298 22.8191 6.4806 23.3239 7.08037 23.6403C7.76221 24 8.6548 24 10.44 24H17.24C19.0251 24 19.9177 24 20.5996 23.6403C21.1993 23.3239 21.687 22.8191 21.9925 22.1982C22.34 21.4923 22.34 20.5682 22.34 18.72V8.6L15.965 2Z" stroke="%2359B1B5" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}

.p-nav-bar__item--settings::before {
  background-image: url('data:image/svg+xml;utf8,<svg width="27" height="26" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 26"><path d="M13.51 16.65C15.2497 16.65 16.66 15.2397 16.66 13.5C16.66 11.7603 15.2497 10.35 13.51 10.35C11.7703 10.35 10.36 11.7603 10.36 13.5C10.36 15.2397 11.7703 16.65 13.51 16.65Z" stroke="%236F6F6F" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/><path d="M20.5736 16.3636C20.4466 16.6515 20.4087 16.9709 20.4648 17.2806C20.521 17.5902 20.6686 17.8759 20.8886 18.1009L20.9459 18.1582C21.1234 18.3355 21.2642 18.546 21.3603 18.7778C21.4564 19.0096 21.5058 19.258 21.5058 19.5089C21.5058 19.7597 21.4564 20.0082 21.3603 20.2399C21.2642 20.4717 21.1234 20.6822 20.9459 20.8595C20.7686 21.037 20.5581 21.1779 20.3263 21.2739C20.0945 21.37 19.8461 21.4195 19.5952 21.4195C19.3444 21.4195 19.0959 21.37 18.8642 21.2739C18.6324 21.1779 18.4219 21.037 18.2446 20.8595L18.1873 20.8023C17.9623 20.5822 17.6766 20.4346 17.3669 20.3784C17.0573 20.3223 16.7379 20.3602 16.45 20.4873C16.1677 20.6083 15.9269 20.8092 15.7573 21.0653C15.5877 21.3214 15.4967 21.6215 15.4955 21.9286V22.0909C15.4955 22.5972 15.2943 23.0828 14.9363 23.4408C14.5783 23.7989 14.0927 24 13.5864 24C13.0801 24 12.5945 23.7989 12.2364 23.4408C11.8784 23.0828 11.6773 22.5972 11.6773 22.0909V22.005C11.6699 21.6891 11.5676 21.3826 11.3838 21.1256C11.1999 20.8685 10.943 20.6727 10.6464 20.5636C10.3585 20.4366 10.0391 20.3987 9.72945 20.4548C9.4198 20.511 9.13407 20.6586 8.9091 20.8786L8.85183 20.9359C8.67452 21.1134 8.46397 21.2542 8.23221 21.3503C8.00045 21.4464 7.75203 21.4958 7.50115 21.4958C7.25026 21.4958 7.00184 21.4464 6.77008 21.3503C6.53832 21.2542 6.32777 21.1134 6.15046 20.9359C5.97296 20.7586 5.83215 20.5481 5.73608 20.3163C5.64 20.0845 5.59055 19.8361 5.59055 19.5852C5.59055 19.3343 5.64 19.0859 5.73608 18.8542C5.83215 18.6224 5.97296 18.4118 6.15046 18.2345L6.20774 18.1773C6.42779 17.9523 6.57541 17.6666 6.63156 17.3569C6.6877 17.0473 6.6498 16.7279 6.52274 16.44C6.40174 16.1577 6.20082 15.9169 5.94473 15.7473C5.68863 15.5777 5.38853 15.4867 5.08137 15.4855H4.9191C4.41278 15.4855 3.92719 15.2843 3.56917 14.9263C3.21115 14.5683 3.01001 14.0827 3.01001 13.5764C3.01001 13.07 3.21115 12.5845 3.56917 12.2264C3.92719 11.8684 4.41278 11.6673 4.9191 11.6673H5.00501C5.32096 11.6599 5.62738 11.5576 5.88443 11.3738C6.14149 11.1899 6.33728 10.933 6.44637 10.6364C6.57344 10.3485 6.61134 10.0291 6.5552 9.71944C6.49905 9.40979 6.35143 9.12406 6.13137 8.89909L6.0741 8.84182C5.8966 8.66451 5.75579 8.45396 5.65971 8.2222C5.56364 7.99044 5.51419 7.74202 5.51419 7.49114C5.51419 7.24025 5.56364 6.99183 5.65971 6.76007C5.75579 6.52831 5.8966 6.31776 6.0741 6.14045C6.2514 5.96295 6.46195 5.82214 6.69371 5.72607C6.92547 5.62999 7.1739 5.58054 7.42478 5.58054C7.67567 5.58054 7.92409 5.62999 8.15585 5.72607C8.38761 5.82214 8.59816 5.96295 8.77546 6.14045L8.83274 6.19773C9.0577 6.41778 9.34343 6.5654 9.65308 6.62155C9.96273 6.67769 10.2821 6.63979 10.57 6.51273H10.6464C10.9287 6.39173 11.1695 6.19081 11.3391 5.93472C11.5087 5.67862 11.5997 5.37852 11.6009 5.07136V4.90909C11.6009 4.40277 11.8021 3.91718 12.1601 3.55916C12.5181 3.20114 13.0037 3 13.51 3C14.0163 3 14.5019 3.20114 14.8599 3.55916C15.218 3.91718 15.4191 4.40277 15.4191 4.90909V4.995C15.4203 5.30216 15.5113 5.60226 15.6809 5.85835C15.8505 6.11445 16.0913 6.31536 16.3736 6.43636C16.6616 6.56343 16.9809 6.60133 17.2906 6.54519C17.6002 6.48904 17.886 6.34142 18.1109 6.12136L18.1682 6.06409C18.3455 5.88659 18.556 5.74578 18.7878 5.6497C19.0196 5.55363 19.268 5.50418 19.5189 5.50418C19.7698 5.50418 20.0182 5.55363 20.2499 5.6497C20.4817 5.74578 20.6923 5.88659 20.8696 6.06409C21.0471 6.24139 21.1879 6.45194 21.2839 6.6837C21.38 6.91546 21.4295 7.16389 21.4295 7.41477C21.4295 7.66566 21.38 7.91408 21.2839 8.14584C21.1879 8.3776 21.0471 8.58815 20.8696 8.76545L20.8123 8.82273C20.5922 9.04769 20.4446 9.33342 20.3885 9.64307C20.3323 9.95272 20.3702 10.2721 20.4973 10.56V10.6364C20.6183 10.9187 20.8192 11.1595 21.0753 11.3291C21.3314 11.4987 21.6315 11.5897 21.9386 11.5909H22.1009C22.6072 11.5909 23.0928 11.792 23.4508 12.1501C23.8089 12.5081 24.01 12.9937 24.01 13.5C24.01 14.0063 23.8089 14.4919 23.4508 14.8499C23.0928 15.208 22.6072 15.4091 22.1009 15.4091H22.015C21.7078 15.4103 21.4078 15.5013 21.1517 15.6709C20.8956 15.8405 20.6946 16.0813 20.5736 16.3636Z" stroke="%236F6F6F" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}
.p-nav-bar__item--settings:hover::before, .p-nav-bar__item--settings.is-active::before {
  background-image: url('data:image/svg+xml;utf8,<svg width="27" height="26" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 26"><path d="M13.51 16.65C15.2497 16.65 16.66 15.2397 16.66 13.5C16.66 11.7603 15.2497 10.35 13.51 10.35C11.7703 10.35 10.36 11.7603 10.36 13.5C10.36 15.2397 11.7703 16.65 13.51 16.65Z" stroke="%2359B1B5" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/><path d="M20.5736 16.3636C20.4466 16.6515 20.4087 16.9709 20.4648 17.2806C20.521 17.5902 20.6686 17.8759 20.8886 18.1009L20.9459 18.1582C21.1234 18.3355 21.2642 18.546 21.3603 18.7778C21.4564 19.0096 21.5058 19.258 21.5058 19.5089C21.5058 19.7597 21.4564 20.0082 21.3603 20.2399C21.2642 20.4717 21.1234 20.6822 20.9459 20.8595C20.7686 21.037 20.5581 21.1779 20.3263 21.2739C20.0945 21.37 19.8461 21.4195 19.5952 21.4195C19.3444 21.4195 19.0959 21.37 18.8642 21.2739C18.6324 21.1779 18.4219 21.037 18.2446 20.8595L18.1873 20.8023C17.9623 20.5822 17.6766 20.4346 17.3669 20.3784C17.0573 20.3223 16.7379 20.3602 16.45 20.4873C16.1677 20.6083 15.9269 20.8092 15.7573 21.0653C15.5877 21.3214 15.4967 21.6215 15.4955 21.9286V22.0909C15.4955 22.5972 15.2943 23.0828 14.9363 23.4408C14.5783 23.7989 14.0927 24 13.5864 24C13.0801 24 12.5945 23.7989 12.2364 23.4408C11.8784 23.0828 11.6773 22.5972 11.6773 22.0909V22.005C11.6699 21.6891 11.5676 21.3826 11.3838 21.1256C11.1999 20.8685 10.943 20.6727 10.6464 20.5636C10.3585 20.4366 10.0391 20.3987 9.72945 20.4548C9.4198 20.511 9.13407 20.6586 8.9091 20.8786L8.85183 20.9359C8.67452 21.1134 8.46397 21.2542 8.23221 21.3503C8.00045 21.4464 7.75203 21.4958 7.50115 21.4958C7.25026 21.4958 7.00184 21.4464 6.77008 21.3503C6.53832 21.2542 6.32777 21.1134 6.15046 20.9359C5.97296 20.7586 5.83215 20.5481 5.73608 20.3163C5.64 20.0845 5.59055 19.8361 5.59055 19.5852C5.59055 19.3343 5.64 19.0859 5.73608 18.8542C5.83215 18.6224 5.97296 18.4118 6.15046 18.2345L6.20774 18.1773C6.42779 17.9523 6.57541 17.6666 6.63156 17.3569C6.6877 17.0473 6.6498 16.7279 6.52274 16.44C6.40174 16.1577 6.20082 15.9169 5.94473 15.7473C5.68863 15.5777 5.38853 15.4867 5.08137 15.4855H4.9191C4.41278 15.4855 3.92719 15.2843 3.56917 14.9263C3.21115 14.5683 3.01001 14.0827 3.01001 13.5764C3.01001 13.07 3.21115 12.5845 3.56917 12.2264C3.92719 11.8684 4.41278 11.6673 4.9191 11.6673H5.00501C5.32096 11.6599 5.62738 11.5576 5.88443 11.3738C6.14149 11.1899 6.33728 10.933 6.44637 10.6364C6.57344 10.3485 6.61134 10.0291 6.5552 9.71944C6.49905 9.40979 6.35143 9.12406 6.13137 8.89909L6.0741 8.84182C5.8966 8.66451 5.75579 8.45396 5.65971 8.2222C5.56364 7.99044 5.51419 7.74202 5.51419 7.49114C5.51419 7.24025 5.56364 6.99183 5.65971 6.76007C5.75579 6.52831 5.8966 6.31776 6.0741 6.14045C6.2514 5.96295 6.46195 5.82214 6.69371 5.72607C6.92547 5.62999 7.1739 5.58054 7.42478 5.58054C7.67567 5.58054 7.92409 5.62999 8.15585 5.72607C8.38761 5.82214 8.59816 5.96295 8.77546 6.14045L8.83274 6.19773C9.0577 6.41778 9.34343 6.5654 9.65308 6.62155C9.96273 6.67769 10.2821 6.63979 10.57 6.51273H10.6464C10.9287 6.39173 11.1695 6.19081 11.3391 5.93472C11.5087 5.67862 11.5997 5.37852 11.6009 5.07136V4.90909C11.6009 4.40277 11.8021 3.91718 12.1601 3.55916C12.5181 3.20114 13.0037 3 13.51 3C14.0163 3 14.5019 3.20114 14.8599 3.55916C15.218 3.91718 15.4191 4.40277 15.4191 4.90909V4.995C15.4203 5.30216 15.5113 5.60226 15.6809 5.85835C15.8505 6.11445 16.0913 6.31536 16.3736 6.43636C16.6616 6.56343 16.9809 6.60133 17.2906 6.54519C17.6002 6.48904 17.886 6.34142 18.1109 6.12136L18.1682 6.06409C18.3455 5.88659 18.556 5.74578 18.7878 5.6497C19.0196 5.55363 19.268 5.50418 19.5189 5.50418C19.7698 5.50418 20.0182 5.55363 20.2499 5.6497C20.4817 5.74578 20.6923 5.88659 20.8696 6.06409C21.0471 6.24139 21.1879 6.45194 21.2839 6.6837C21.38 6.91546 21.4295 7.16389 21.4295 7.41477C21.4295 7.66566 21.38 7.91408 21.2839 8.14584C21.1879 8.3776 21.0471 8.58815 20.8696 8.76545L20.8123 8.82273C20.5922 9.04769 20.4446 9.33342 20.3885 9.64307C20.3323 9.95272 20.3702 10.2721 20.4973 10.56V10.6364C20.6183 10.9187 20.8192 11.1595 21.0753 11.3291C21.3314 11.4987 21.6315 11.5897 21.9386 11.5909H22.1009C22.6072 11.5909 23.0928 11.792 23.4508 12.1501C23.8089 12.5081 24.01 12.9937 24.01 13.5C24.01 14.0063 23.8089 14.4919 23.4508 14.8499C23.0928 15.208 22.6072 15.4091 22.1009 15.4091H22.015C21.7078 15.4103 21.4078 15.5013 21.1517 15.6709C20.8956 15.8405 20.6946 16.0813 20.5736 16.3636Z" stroke="%2359B1B5" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>');
}

/*------------------------------------------------------------------------------
  Bootstrapモーダル用カスタムスタイル
------------------------------------------------------------------------------*/
.p-modal__close {
  display: block;
  position: absolute;
  top: 0px;
  right: 0px;
  width: 24px;
  height: 24px;
  z-index: 1;
}
.p-modal__close img {
  width: 100%;
  object-fit: contain;
}

.p-modal__body {
  background-color: #fff;
  border-radius: 8px;
  max-width: 285px;
  border-radius: 8px;
  padding: 18px 4px;
  margin: 0 auto;
  position: relative;
}

.p-modal__body--lg {
  width: 100%;
  max-width: 400px;
  padding: 16px 0;
}

.p-modal__title {
  font-size: 18px;
  font-weight: bold;
  text-align: center;
}

.p-modal__subtitle {
  font-size: 14px;
  font-weight: 500;
  color: #666;
  margin: 0;
}

.p-modal__text {
  font-size: 14px;
  font-weight: 500;
  text-align: center;
  margin-bottom: 24px;
}

.p-modal__note {
  font-size: 12px;
  color: #666;
  text-align: center;
  margin-bottom: 24px;
}

/* モーダルの表示速度と動きのカスタマイズ */
.modal.fade {
  transition-duration: 0.1s;
}

.modal.in {
  transition-duration: 0.1s;
}

.modal.fade .modal-dialog {
  transition-duration: 0.1s;
  transform: translate3d(0, -5%, 0);
}

.modal.in .modal-dialog {
  transition-duration: 0.1s;
  transform: translate3d(0, 0, 0);
}

.modal.fade .modal-dialog-centered {
  transform: translate3d(0, 0, 0);
}

/*------------------------------------------------------------------------------
  p-modal (カスタムモーダル)
------------------------------------------------------------------------------*/
.p-modal:not(.modal) {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
  align-items: center;
  justify-content: center;
}
.p-modal:not(.modal).is-active {
  display: flex;
}
.p-modal:not(.modal) .p-modal__overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1001;
}
.p-modal:not(.modal) .p-modal__content {
  position: relative;
  background-color: #fff;
  border-radius: 12px;
  max-width: 360px;
  width: 90%;
  max-height: 85vh;
  overflow-y: auto;
  z-index: 1002;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
.p-modal:not(.modal) .p-modal__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  border-bottom: 1px solid #EDF2F3;
}
.p-modal:not(.modal) .p-modal__title {
  font-size: 16px;
  font-weight: 600;
  color: #4F4F4F;
  margin: 0;
  text-align: left;
}
.p-modal:not(.modal) .p-modal__close {
  position: static;
  background: none;
  border: none;
  font-size: 28px;
  color: #999;
  cursor: pointer;
  padding: 0;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s;
}
.p-modal:not(.modal) .p-modal__close:hover {
  color: #333;
}
.p-modal:not(.modal) .p-modal__close img {
  width: 100%;
  object-fit: contain;
}
.p-modal:not(.modal) .p-modal__body {
  padding: 20px;
  background-color: #fff;
  border-radius: 0;
  max-width: none;
  margin: 0;
  position: static;
}
.p-modal:not(.modal) .p-modal__image {
  margin: 0;
  text-align: center;
}
.p-modal:not(.modal) .p-modal__image img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  border: 1px solid #EDF2F3;
}

/*------------------------------------------------------------------------------
  p-home-heading
------------------------------------------------------------------------------*/
.p-home-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.p-home-heading__main {
  display: flex;
  align-items: center;
}

.p-home-heading__icon {
  flex: 0 1 16px;
  margin-right: 4px;
}
.p-home-heading__icon img {
  width: 100%;
  height: auto;
  object-fit: contain;
  padding-bottom: 2px;
}

.p-home-heading__text {
  color: #4F4F4F;
  font-size: 14px;
  font-weight: bold;
}

.p-home-heading__link {
  color: #2F9EA3;
  font-size: 12px;
  font-weight: 500;
  padding-right: 20px;
  position: relative;
}
.p-home-heading__link::after {
  content: "";
  position: absolute;
  top: 49%;
  right: 0;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background-image: url(../img/caret-teal.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

/*------------------------------------------------------------------------------
  p-news-list
------------------------------------------------------------------------------*/
.p-news-list__item {
  display: flex;
  padding: 0 16px;
}
.p-news-list__item:not(:first-child) {
  border-top: 1px solid #EDF2F3;
  margin-top: 12px;
  padding-top: 12px;
}

.p-news-list__date {
  flex: 0 0 79px;
  font-size: 12px;
  box-sizing: border-box;
  padding-right: 8px;
  display: inline-block;
}

.p-news-list__text {
  flex: 1;
  font-size: 12px;
}

/*------------------------------------------------------------------------------
  p-menu
------------------------------------------------------------------------------*/
.p-menu {
  display: flex;
  padding: 16px 0;
  border-bottom: 1px solid #EDF2F3;
  position: relative;
  opacity: 1;
}
.p-menu.is-active .p-menu__actions {
  display: block;
}
.p-menu.is-hidden .p-menu__img,
.p-menu.is-hidden .p-menu__contents,
.p-menu.is-hidden .p-menu__btn {
  opacity: 0.5;
}

.p-menu__img {
  flex: 0 1 80px;
  margin-right: 8px;
  border-radius: 2px;
  align-self: flex-start;
}
.p-menu__img img {
  aspect-ratio: 1/1;
  border-radius: 2px;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.p-menu__contents {
  flex: 1;
}

.p-menu__heading {
  display: flex;
  align-items: center;
  padding-right: 24px;
  margin-bottom: 2px;
}
.p-menu__heading .c-label {
  flex-shrink: 0;
}

.p-menu__name {
  font-size: 14px;
  font-weight: bold;
  margin-left: 6px;
}

.p-menu__info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2px;
}

.p-menu__time {
  color: #818181;
  font-size: 12px;
  padding-right: 8px;
  display: inline-block;
}

.p-menu__price {
  font-size: 15px;
  font-weight: bold;
}

.p-menu__texts {
  color: #4F4F4F;
  font-size: 12px;
}

.p-menu__btn {
  position: absolute;
  width: 18px;
  top: 16.5px;
  right: 0;
  width: 18px;
  height: 18px;
}
.p-menu__btn::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  background-image: url(../img/dots-vertical.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 18px;
  height: 18px;
}

.p-menu__actions {
  display: none;
  position: absolute;
  top: 40px;
  right: 0;
  background-color: #fff;
  border-radius: 2px;
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.08);
  min-width: 144px;
  z-index: 9;
}

.p-menu__action {
  font-size: 14px;
  font-weight: 500;
  padding: 16px;
  display: block;
  width: 100%;
  text-align: left;
  cursor: pointer;
}
.p-menu__action:active {
  color: #2F9EA3;
  background-color: #F0F8F9;
}

/*------------------------------------------------------------------------------
  p-category-header
------------------------------------------------------------------------------*/
.p-category-header {
  display: flex;
  align-items: center;
  padding: 12px 0;
  margin-top: 16px;
  border-bottom: 2px solid #2F9EA3;
}
.p-category-header:first-child {
  margin-top: 0;
}
.p-category-header--uncategorized {
  border-bottom-color: #ccc;
}
.p-category-header--uncategorized .p-category-header__title {
  color: #999;
}

.p-category-header__title {
  font-size: 15px;
  font-weight: 700;
  color: #333;
  margin: 0;
}

.p-category-header__count {
  font-size: 12px;
  color: #666;
  margin-left: 8px;
  background-color: #f0f0f0;
  padding: 2px 10px;
  border-radius: 10px;
}

.p-category-header--draggable {
  user-select: none;
}

.p-menu-sort-group,
.p-menu-sort-group__menus {
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-menu-sort-group .drag-handle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin-right: 4px;
  cursor: grab;
  color: #6F6F6F;
  border-radius: 6px;
  flex-shrink: 0;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.p-menu-sort-group .drag-handle:hover {
  background-color: #F0F8F9;
}
.p-menu-sort-group .drag-handle:active {
  cursor: grabbing;
  background-color: #EAF5F6;
}

.p-menu-sort-group .drag-handle-category {
  margin-right: 4px;
}

.p-menu-sort-group .drag-handle__icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-category-header__drag-handle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  cursor: grab;
  color: #6b7280;
  flex-shrink: 0;
  margin-right: 4px;
  border-radius: 6px;
  transition: background-color 0.2s ease;
}
.p-category-header__drag-handle:hover {
  background-color: rgba(0, 0, 0, 0.04);
}
.p-category-header__drag-handle:active {
  cursor: grabbing;
  background-color: rgba(0, 0, 0, 0.08);
}

/*------------------------------------------------------------------------------
  p-grouped-menu-list (ネスト型ドラッグ並び替え)
------------------------------------------------------------------------------*/
.p-grouped-menu-list__inner {
  min-height: 40px;
}

.category-ghost {
  background: #f8f9fa;
  border: 2px dashed #2F9EA3;
  opacity: 0.5;
}

.category-chosen {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.p-menu-sort-group.menu-ghost,
.p-menu-sort-group__menus .menu-ghost {
  background: #F0F8F9;
  border: 2px dashed #2F9EA3;
  opacity: 0.5;
}

.p-menu-sort-group.menu-chosen,
.p-menu-sort-group__menus .menu-chosen {
  box-shadow: 0px 2px 8px 0px rgba(3, 48, 50, 0.1);
}

/*------------------------------------------------------------------------------
  p-home-reservation
------------------------------------------------------------------------------*/
.p-home-reservation__item {
  display: flex;
  padding-bottom: 16px;
  border-bottom: 1px solid #EDF2F3;
  position: relative;
}
.p-home-reservation__item:not(:last-child) {
  margin-bottom: 16px;
}

.p-home-reservation__icon {
  flex: 0 0 64px;
  margin-right: 8px;
  display: block;
}
.p-home-reservation__icon img {
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: 64px;
  border-radius: 50%;
}

.p-home-reservation__info {
  flex: 1;
}

.p-home-reservation__info-heading {
  display: flex;
  justify-content: space-between;
  padding-right: 8px;
}

.p-home-reservation__name {
  display: flex;
}

.p-home-reservation__name-main {
  font-size: 15px;
  font-weight: bold;
  margin-right: 8px;
}

.p-home-reservation__name-sub {
  color: #6F6F6F;
  font-size: 11px;
  align-self: flex-end;
  padding-bottom: 2px;
}

.p-home-reservation__datetime {
  color: #4F4F4F;
  font-size: 12px;
}

.p-home-reservation__menu {
  display: flex;
  flex-wrap: wrap;
  margin-right: -8px;
}
.p-home-reservation__menu .c-label {
  margin-top: 8px;
  margin-right: 8px;
}

/*------------------------------------------------------------------------------
  p-tab-contents
------------------------------------------------------------------------------*/
.p-tab-contents__menu {
  position: fixed;
  top: 56px;
  left: 50%;
  transform: translateX(-50%);
  max-width: 580px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  border-bottom: 1px solid #EDF2F3;
  min-height: 48px;
  padding-top: 16px;
  z-index: 9;
}

.p-tab-contents__menu--3column .p-tab-contents__heading {
  flex: 0 1 33.33%;
}

.p-tab-contents__menu--2column .p-tab-contents__heading {
  flex: 0 1 50%;
}

.p-tab-contents__panel-area {
  padding-top: 48px;
}

.p-tab-contents__panel {
  display: block;
  flex: 0 0 100%;
  opacity: 1;
  transition: opacity 0.3s ease;
  width: 100%;
}

.p-tab-contents__heading {
  color: #818181;
  font-size: 14px;
  font-weight: 500;
  text-align: center;
  transition: all 0.2s ease;
  padding-bottom: 8px;
  position: relative;
  cursor: pointer;
}
.p-tab-contents__heading.is-active {
  color: #2F9EA3;
}
.p-tab-contents__heading.is-active::before {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 2px;
  background-color: #2F9EA3;
}

.js-panel {
  display: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.js-panel.is-active {
  display: block;
  opacity: 1;
}

/*------------------------------------------------------------------------------
  p-calendar
------------------------------------------------------------------------------*/
.p-calendar {
  padding-top: 59px;
  padding-bottom: 80px;
}

.p-calendar__header {
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px;
  border-bottom: 1px solid #ECECEC;
  position: fixed;
  top: 104px;
  left: 50%;
  transform: translateX(-50%);
  max-width: 580px;
  width: 100%;
  background-color: #fff;
  z-index: 9;
}

.p-calendar__today {
  font-size: 12px;
  font-weight: 500;
  padding: 3px 10px;
  cursor: pointer;
  position: relative;
  z-index: 1;
}

.p-calendar__title {
  font-size: 15px;
  font-weight: bold;
  text-align: center;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}

.p-calendar__header-btn-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 90px;
  width: 100%;
  position: relative;
  z-index: 1;
}

.p-calendar__header-btn {
  width: 100%;
  max-width: 37px;
  display: block;
  cursor: pointer;
}
.p-calendar__header-btn img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.p-calendar__container {
  position: fixed;
  top: 162px;
  left: 50%;
  transform: translateX(-50%);
  max-width: 580px;
  overflow: auto;
  overflow-y: scroll;
  white-space: nowrap;
  width: 100%;
  height: 100%;
  padding-bottom: 110px;
}

/* p-calendar__table */
.p-calendar__table {
  width: 100%;
  border-collapse: collapse;
  width: max-content;
  position: relative;
  margin-bottom: 210px;
}
.p-calendar__table tbody {
  cursor: pointer;
}
.p-calendar__table tbody tr:first-of-type td {
  border-top: none;
}
.p-calendar__table tr th:nth-child(2),
.p-calendar__table tr td:nth-child(2) {
  border-left: none !important;
}

.p-calendar__table th,
.p-calendar__table td {
  height: 49px;
  max-width: 48px;
  width: 48px;
  border: 1px solid #ECECEC;
  padding: 4px;
  vertical-align: middle;
  text-align: center;
  box-sizing: border-box;
}

.p-calendar__thead th {
  background-color: #fff;
  font-size: 12px;
  font-weight: normal;
  line-height: 1.32;
  text-align: center;
  position: sticky;
  top: 0;
  z-index: 6;
  border-bottom: none;
  cursor: pointer;
}
.p-calendar__thead th:first-child {
  left: 0;
  z-index: 9;
  cursor: default;
}
.p-calendar__thead th:first-child::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0.5px;
  width: 100%;
  height: 100%;
  border-right: 1px solid #ECECEC;
  z-index: -1;
}
.p-calendar__thead th.is-sat {
  background-color: #F0F8F9;
}
.p-calendar__thead th.is-rest {
  background-color: #FFE2E0;
}
.p-calendar__thead th::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-bottom: 1px solid #ECECEC;
  z-index: -1;
}

.p-calendar__tbody {
  -webkit-tap-highlight-color: transparent !important;
}
.p-calendar__tbody td {
  color: #818181;
  font-size: 18px;
  font-weight: 500;
  position: relative;
}
.p-calendar__tbody td:first-child {
  font-size: 12px;
  font-weight: normal;
  position: sticky;
  left: 0;
  z-index: 5;
  background-color: #fff;
  text-align: center;
  border-right: none !important;
  border-bottom: none !important;
  cursor: pointer;
}
.p-calendar__tbody td:first-child::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-right: 1px solid #ECECEC;
  z-index: -1;
}
.p-calendar__tbody td:first-child::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  border-bottom: 1px solid #ECECEC;
}
.p-calendar__tbody td.is-disabled {
  font-weight: normal;
  background-color: #E9E9E9;
}
.p-calendar__tbody td.is-past {
  background-color: #E9E9E9;
  cursor: not-allowed;
  -webkit-tap-highlight-color: transparent;
}
.p-calendar__tbody td .is-reserved {
  position: absolute;
  top: 3px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #82C5C8;
  border: 2px solid #59B1B5;
  border-radius: 35px;
  padding: 2px;
  width: calc(100% - 6px);
  height: calc(var(--reservation-rows, 1) * 100% - 6px);
  z-index: 1;
}
.p-calendar__tbody td .is-reserved img {
  height: 31px;
  width: 31px;
  object-fit: cover;
  object-position: center;
  border-radius: 50%;
  aspect-ratio: 1/1;
  position: absolute;
  top: 4px;
  left: 50%;
  transform: translateX(-50%);
}
.p-calendar__tbody td .is-reserved--offgrid {
  background-color: #82C5C8;
  border-color: #59B1B5;
}
.p-calendar__tbody td .is-reserved--overlap {
  left: calc(3px + var(--overlap-index) * (100% - 6px) / var(--overlap-count));
  transform: none;
  width: calc((100% - 6px) / var(--overlap-count) - 1px);
  min-width: 8px;
  border-radius: 8px;
  padding: 0;
}
.p-calendar__tbody td .is-reserved__overlap-number {
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  color: #2F9EA3;
  font-size: 11px;
  font-weight: bold;
}
.p-calendar__tbody td .c-overflow-popover {
  position: absolute;
  top: 100%;
  right: 0;
  min-width: 160px;
  background: #fff;
  border: 1px solid #ECECEC;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  list-style: none;
  margin: 4px 0 0;
  padding: 4px 0;
  z-index: 20;
}
.p-calendar__tbody td .c-overflow-popover__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  font-size: 12px;
  color: #333;
  cursor: pointer;
  white-space: nowrap;
}
.p-calendar__tbody td .c-overflow-popover__item:hover {
  background-color: #F0F8F9;
}
.p-calendar__tbody td .c-overflow-popover__time {
  font-weight: 500;
  color: #2F9EA3;
}
.p-calendar__tbody td .c-overflow-popover__name {
  color: #4F4F4F;
}
.p-calendar__tbody td .is-overflow-badge {
  position: absolute;
  top: 3px;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 6px);
  height: calc(100% - 6px);
  border-radius: 35px;
  background-color: #82C5C8;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 15;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  border: 2px solid #59B1B5;
  padding: 0;
  line-height: 1;
}
.p-calendar__tbody td .is-semicircle-start {
  border-radius: 35px 35px 0 0;
}
.p-calendar__tbody td .is-semicircle-end {
  border-radius: 0 0 35px 35px;
}
.p-calendar__tbody td .is-semicircle-end img {
  display: none;
}

/*------------------------------------------------------------------------------
  c-overflow-popover-backdrop
  ポップオーバー展開中に他のセルへのクリックを遮る透明レイヤー。
------------------------------------------------------------------------------*/
.c-overflow-popover-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10;
  background: transparent;
}

/*------------------------------------------------------------------------------
  c-tooltip
------------------------------------------------------------------------------*/
.c-tooltip {
  position: absolute;
  background-color: rgba(0, 0, 0, 0.8);
  color: #fff;
  padding: 8px 12px;
  border-radius: 4px;
  font-size: 14px;
  white-space: nowrap;
  z-index: 9999;
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.3s ease;
}
.c-tooltip.fade-out {
  opacity: 0;
}
.c-tooltip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: rgba(0, 0, 0, 0.8);
}

/*------------------------------------------------------------------------------
  p-reservation
------------------------------------------------------------------------------*/
.p-reservation-wrap {
  min-height: 0;
}

.p-reservation {
  background-color: #fff;
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 2px 8px 0 rgba(3, 48, 50, 0.1);
  display: block;
  position: relative;
  z-index: 0;
}
.p-reservation:not(:last-child) {
  margin-bottom: 8px;
}

.p-reservation__link {
  display: block;
}

.p-reservation__main {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
}

.p-reservation__img {
  flex: 0 0 64px;
  margin-right: 8px;
}
.p-reservation__img img {
  width: 100%;
  height: 64px;
  object-fit: cover;
  object-position: center;
  border-radius: 50%;
}

.p-reservation__heading {
  flex: 1;
}

.p-reservation__name {
  display: flex;
  flex-wrap: wrap;
  position: relative;
  padding-right: 68px;
}

.p-reservation__name-main {
  font-size: 15px;
  font-weight: bold;
  margin-right: 8px;
}

.p-reservation__name-sub {
  color: #6F6F6F;
  font-size: 11px;
  align-self: flex-end;
  padding-bottom: 2px;
}

.p-reservation__datetime {
  color: #6F6F6F;
  font-size: 11px;
  letter-spacing: 0;
}

.p-reservation__status {
  position: absolute;
  top: 25px;
  right: 16px;
  height: 27px;
  border-radius: 4px;
  z-index: 9;
  pointer-events: auto;
}
.p-reservation__status::after {
  content: "";
  position: absolute;
  top: 7px;
  right: 4px;
  background-image: url(../img/caret-white.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 12px;
  height: 12px;
  z-index: 0;
  pointer-events: none;
}
.p-reservation__status select {
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 0;
  width: 100%;
  height: 100%;
  display: block;
  background-color: #2F9EA3;
  border-radius: 4px;
  padding: 3px 12px 3px 8px;
  cursor: pointer;
}
.p-reservation__status select .is-confirmed {
  background-color: #2F9EA3;
}
.p-reservation__status span {
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 0;
  display: inline-block;
  border-radius: 4px;
  padding: 4px 8px;
  pointer-events: none;
}
.p-reservation__status span.is-cancel {
  background-color: #818181;
}
.p-reservation__status span.is-completion {
  color: #818181;
  border: 1px solid #818181;
  background-color: #fff;
}
.p-reservation__status span::after {
  content: none;
}

div.p-reservation__status::after {
  content: none;
}

.p-reservation__menu {
  display: flex;
  justify-content: space-between;
  border-left: 3px solid #2F9EA3;
  padding-left: 12px;
}
.p-reservation__menu:not(:last-child) {
  margin-bottom: 8px;
}

.p-reservation__menu--option {
  border-color: #818181;
}
.p-reservation__menu--option .c-label {
  font-size: 10px;
  letter-spacing: 0;
  padding: 2px 5px;
  margin-left: 4px;
}

.p-reservation__menu-info {
  padding-right: 16px;
  width: 100%;
}

.p-reservation__menu-name {
  font-size: 12px;
  font-weight: bold;
}

.p-reservation__menu-time {
  color: #818181;
  font-size: 11px;
}

.p-reservation__menu-price {
  font-size: 15px;
  font-weight: bold;
  align-self: flex-end;
}

.p-reservation__status--with-review {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.p-reservation__review-link {
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 0;
  display: inline-block;
  border-radius: 4px;
  padding: 4px 8px;
  background-color: #2F9EA3;
  border: 1px solid #2F9EA3;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}
.p-reservation__review-link:hover {
  background-color: rgb(35.5857142857, 119.6285714286, 123.4142857143);
}

/*------------------------------------------------------------------------------
  p-reservation-info
------------------------------------------------------------------------------*/
.p-reservation-info__main {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
}

.p-reservation-info__icon {
  flex: 0 0 64px;
  margin-right: 8px;
}
.p-reservation-info__icon img {
  width: 100%;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}

.reservation-info__heading {
  flex: 1;
}

.p-reservation-info__name {
  display: flex;
  flex-wrap: wrap;
  position: relative;
  padding-right: 54px;
}

.p-reservation-info__name-main {
  font-size: 15px;
  font-weight: bold;
  margin-right: 8px;
}

.p-reservation-info__name-sub {
  color: #6F6F6F;
  font-size: 11px;
  align-self: flex-end;
  padding-bottom: 2px;
}

.p-reservation-info__datetime {
  color: #4F4F4F;
  font-size: 12px;
}

.p-reservation-info__status-badge {
  position: absolute;
  top: 0;
  right: 0;
}

.p-reservation-info__detail-item {
  display: flex;
}
.p-reservation-info__detail-item:not(:last-child) {
  margin-bottom: 8px;
}
.p-reservation-info__detail-item h4 {
  flex: 0 0 72px;
  min-width: 72px;
  color: #2F9EA3;
  font-size: 13px;
  font-weight: bold;
  padding-right: 8px;
  padding-top: 3px;
}
.p-reservation-info__detail-item p,
.p-reservation-info__detail-item ul {
  flex: 1;
  font-size: 13px;
}

.p-reservation-info__detail-list {
  max-height: 120px;
  overflow-y: scroll;
  font-size: 13px;
}
.p-reservation-info__detail-list::-webkit-scrollbar {
  width: 6px;
}
.p-reservation-info__detail-list::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 3px;
}
.p-reservation-info__detail-list::-webkit-scrollbar-thumb {
  background: #c1c1c1;
  border-radius: 3px;
}
.p-reservation-info__detail-list::-webkit-scrollbar-thumb:hover {
  background: #a1a1a1;
}
.p-reservation-info__detail-list li:not(:last-child) {
  margin-bottom: 8px;
}
.p-reservation-info__detail-list a {
  color: inherit;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.p-reservation-info__detail-list a::after {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2338b2ac' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}
.p-reservation-info__detail-list a:hover {
  color: #38b2ac;
}

.p-reservation-info__detail-list-wrapper {
  position: relative;
  width: 100%;
}
.p-reservation-info__detail-list-wrapper .p-reservation-info__detail-list {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.p-reservation-info__detail-list-wrapper .p-reservation-info__detail-list::-webkit-scrollbar {
  display: none;
}

.custom-scrollbar {
  position: absolute;
  top: 0;
  right: 0;
  width: 6px;
  height: 120px;
  background: #f1f1f1;
  border-radius: 3px;
}
.custom-scrollbar__thumb {
  position: absolute;
  width: 100%;
  background: #c1c1c1;
  border-radius: 3px;
  min-height: 30px;
}
.custom-scrollbar__thumb:hover {
  background: #a1a1a1;
}

/*------------------------------------------------------------------------------
  p-reservation-create
------------------------------------------------------------------------------*/
.customer-info-readonly {
  background: #f5f5f5;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 24px;
}

.menu-checkbox-item {
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 12px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  transition: all 0.2s;
}
.menu-checkbox-item:hover {
  background-color: #f9f9f9;
}
.menu-checkbox-item input[type=checkbox],
.menu-checkbox-item input[type=radio] {
  width: 20px;
  height: 20px;
  cursor: pointer;
  flex-shrink: 0;
}
.menu-checkbox-item input[type=checkbox]:checked ~ .menu-checkbox-item__info .menu-checkbox-item__name,
.menu-checkbox-item input[type=radio]:checked ~ .menu-checkbox-item__info .menu-checkbox-item__name {
  color: #2F9EA3;
}
.menu-checkbox-item:has(input:checked) {
  border-color: #2F9EA3;
  background-color: rgba(47, 158, 163, 0.05);
}

.menu-checkbox-item__info {
  flex: 1;
}

.menu-checkbox-item__name {
  font-size: 15px;
  font-weight: bold;
  margin-bottom: 4px;
}

.menu-checkbox-item__details {
  font-size: 13px;
  color: #666;
}

.reservation-summary {
  background: #f8f9fa;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 24px;
}

.reservation-summary__title {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 16px;
}

.reservation-summary__item {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #e0e0e0;
}
.reservation-summary__item:last-child {
  border-bottom: none;
}

.reservation-summary__label {
  font-size: 14px;
  color: #666;
}

.reservation-summary__value {
  font-size: 14px;
  font-weight: bold;
}

.reservation-summary__total {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 2px solid #333;
}
.reservation-summary__total .reservation-summary__label {
  font-size: 16px;
  font-weight: bold;
  color: #333;
}
.reservation-summary__total .reservation-summary__value {
  font-size: 18px;
  color: #2F9EA3;
}

.datetime-row {
  display: flex;
  gap: 12px;
}
.datetime-row > div {
  flex: 1;
}

/*------------------------------------------------------------------------------
  p-help
------------------------------------------------------------------------------*/
.p-help__title {
  font-size: 15px;
  font-weight: bold;
  text-align: center;
}
.p-help__title span {
  display: inline-block;
  padding: 10px;
  background-color: #EAF5F6;
  border-radius: 6px;
  min-width: 320px;
}

.p-help_img1 {
  max-width: 330px;
  width: 100%;
}
.p-help_img1 img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.p-help__example {
  background-color: #F5FAFA;
  border-radius: 8px;
  padding: 16px;
}

.p-help__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-help__list li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 8px;
  line-height: 1.6;
}
.p-help__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 8px;
  height: 8px;
  background-color: #2F9EA3;
  border-radius: 50%;
}
.p-help__list li:last-child {
  margin-bottom: 0;
}

/*------------------------------------------------------------------------------
  p-help-fab (フローティングヘルプボタン)
------------------------------------------------------------------------------*/
.p-help-fab {
  position: fixed;
  bottom: 80px;
  right: 16px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2F9EA3 0%, rgb(41.2928571429, 138.8142857143, 143.2071428571) 100%);
  color: #fff;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(47, 158, 163, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  z-index: 100;
  transition: all 0.3s;
}
@media (min-width: 612px) {
  .p-help-fab {
    right: calc(50% - 290px + 16px);
  }
}
.p-help-fab:hover {
  transform: scale(1.08);
  box-shadow: 0 6px 20px rgba(47, 158, 163, 0.5);
}
.p-help-fab:active {
  transform: scale(0.95);
}

/*------------------------------------------------------------------------------
  p-help-modal (ヘルプモーダル)
------------------------------------------------------------------------------*/
.p-help-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 200;
  align-items: flex-end;
  justify-content: center;
}
.p-help-modal.is-open {
  display: flex;
}
.p-help-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}
.p-help-modal__content {
  position: relative;
  background: #fff;
  border-radius: 20px 20px 0 0;
  width: 100%;
  max-width: 480px;
  padding: 24px 20px 32px;
  animation: helpModalSlideUp 0.3s ease-out;
}
.p-help-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 32px;
  height: 32px;
  border: none;
  background: #f5f5f5;
  border-radius: 50%;
  font-size: 20px;
  line-height: 1;
  color: #666;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.p-help-modal__close:hover {
  background: #e5e5e5;
  color: #333;
}
.p-help-modal__title {
  font-size: 18px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 8px;
}
.p-help-modal__subtitle {
  font-size: 13px;
  color: #666;
  text-align: center;
  margin-bottom: 24px;
}
.p-help-modal__step {
  display: flex;
  align-items: flex-start;
  margin-bottom: 16px;
}
.p-help-modal__step-number {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #EAF5F6;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: #2F9EA3;
  margin-right: 12px;
  flex-shrink: 0;
}
.p-help-modal__step-content {
  flex: 1;
}
.p-help-modal__step-title {
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 4px;
}
.p-help-modal__step-desc {
  font-size: 13px;
  color: #666;
  margin-bottom: 8px;
}
.p-help-modal__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s;
}
.p-help-modal__btn--pdf {
  background: #fef2f2;
  color: #dc2626;
}
.p-help-modal__btn--pdf:hover {
  background: #fee2e2;
}
.p-help-modal__btn--line {
  background: #06c755;
  color: #fff;
}
.p-help-modal__btn--line:hover {
  background: #05b34c;
}
.p-help-modal__arrow {
  display: flex;
  justify-content: center;
  margin: 8px 0 8px 40px;
  color: #ccc;
}

@keyframes helpModalSlideUp {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}
/*------------------------------------------------------------------------------
  p-settings
------------------------------------------------------------------------------*/
.p-settings__list-link {
  font-size: 15px;
  font-weight: 500;
  display: block;
  border-bottom: 1px solid #EDF2F3;
  padding: 16px 16px 16px 0;
  position: relative;
}
.p-settings__list-link::after {
  content: "";
  position: absolute;
  top: 52%;
  right: -2px;
  transform: translateY(-50%);
  background-image: url(../img/caret-right.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 19px;
  height: 19px;
  pointer-events: none;
}

.p-settings__border-list li {
  padding: 24px 0;
  border-bottom: 1px solid #EDF2F3;
}

.p-settings__textarea textarea {
  background-color: #F5FAFA;
  border-color: #F2F2F2;
  min-height: 168px;
}

.p-settings__help-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 6px;
  width: 20px;
  height: 20px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.p-settings__help-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-settings__payment .c-plan-selector {
  padding: 1rem;
  background-color: #f9f9f9;
  border-radius: 8px;
  margin-bottom: 1.5rem;
}
.p-settings__payment .c-plan-selector__title {
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 0.75rem;
  color: #333;
}
.p-settings__payment .c-plan-options {
  display: flex;
  flex-direction: row;
  gap: 1rem;
}
.p-settings__payment .c-plan-option {
  display: flex;
  align-items: flex-start;
  padding: 1rem;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  background-color: white;
  flex: 1;
}
.p-settings__payment .c-plan-option:hover {
  border-color: #2F9EA3;
}
.p-settings__payment .c-plan-option:has(input[type=radio]:checked) {
  border-color: #2F9EA3;
  background-color: #f0f9fa;
}
.p-settings__payment .c-plan-radio {
  margin-top: 0.25rem;
  margin-right: 0.75rem;
  flex-shrink: 0;
}
.p-settings__payment .c-plan-content {
  flex: 1;
}
.p-settings__payment .c-plan-name {
  font-weight: bold;
  font-size: 1rem;
  margin-bottom: 0.25rem;
  color: #333;
}
.p-settings__payment .c-plan-description {
  font-size: 0.875rem;
  color: #666;
  margin-bottom: 0.5rem;
}
.p-settings__payment .c-plan-price {
  font-size: 1rem;
  font-weight: bold;
  color: #2F9EA3;
  margin-top: 0.5rem;
}
.p-settings__payment .c-plan-note {
  font-size: 0.75rem;
  color: #666;
  margin-top: 0.25rem;
}
.p-settings__payment .c-plan-badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background-color: #f59e0b;
  color: white;
  font-size: 0.75rem;
  font-weight: bold;
  border-radius: 4px;
}
.p-settings__payment .c-payment-status {
  margin-bottom: 1.5rem;
}
.p-settings__payment .c-payment-status__title {
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 0.5rem;
  color: #333;
}
.p-settings__payment .c-payment-button {
  width: 100%;
  padding: 1rem;
  background-color: #2F9EA3;
  color: white;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.p-settings__payment .c-payment-button:hover {
  background-color: #268a8f;
}
.p-settings__payment .c-payment-button:disabled {
  background-color: #ccc;
  cursor: not-allowed;
}
.p-settings__payment .c-current-plan {
  padding: 1rem;
  background-color: #f0f9fa;
  border: 2px solid #2F9EA3;
  border-radius: 8px;
  margin-bottom: 1.5rem;
}
.p-settings__payment .c-current-plan__label {
  font-size: 0.75rem;
  color: #666;
  margin-bottom: 0.5rem;
}
.p-settings__payment .c-current-plan__name {
  font-weight: bold;
  font-size: 1rem;
  margin-bottom: 0.25rem;
  color: #333;
}
.p-settings__payment .c-current-plan__price {
  font-size: 1.25rem;
  font-weight: bold;
  color: #2F9EA3;
  margin-bottom: 0.5rem;
}
.p-settings__payment .c-current-plan__next-billing {
  font-size: 0.875rem;
  color: #666;
}
.p-settings__payment .c-pattern-section {
  padding: 2rem 0;
  border-bottom: 2px solid #e0e0e0;
}
.p-settings__payment .c-pattern-section:last-child {
  border-bottom: none;
}
.p-settings__payment .c-pattern-title {
  font-size: 1.25rem;
  font-weight: bold;
  color: #666;
  margin-bottom: 1.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #ccc;
}
.p-settings__payment .c-plan-info {
  font-size: 0.875rem;
  line-height: 1.8;
  padding: 1rem;
  background-color: #f9fafb;
  border-radius: 8px;
  color: #374151;
  margin-bottom: 1rem;
}
.p-settings__payment .c-plan-info__row {
  margin-bottom: 0.5rem;
}
.p-settings__payment .c-plan-info__row:last-child {
  margin-bottom: 0;
}
.p-settings__payment .c-plan-info__row strong {
  font-weight: bold;
  color: #111827;
}
.p-settings__payment .c-plan-info__remaining {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid #e5e7eb;
  font-weight: bold;
  color: #2F9EA3;
}
.p-settings__payment .c-trial-continuation {
  padding: 1rem;
  background-color: #e3f2fd;
  border: 1px solid #2196f3;
  border-radius: 8px;
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.p-settings__payment .c-trial-continuation__text {
  font-size: 0.875rem;
  color: #1565c0;
  line-height: 1.6;
  margin-bottom: 0.75rem;
}
.p-settings__payment .c-trial-continuation__button {
  width: 100%;
  padding: 0.75rem;
  background-color: #2F9EA3;
  color: white;
  border: none;
  border-radius: 8px;
  font-size: 0.9375rem;
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.p-settings__payment .c-trial-continuation__button:hover {
  background-color: #268a8f;
}
.p-settings__payment .c-trial-continuation__button:disabled {
  background-color: #ccc;
  cursor: not-allowed;
}
.p-settings__payment .c-plan-change {
  margin-bottom: 1.5rem;
}
.p-settings__payment .c-plan-change__title {
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 0.75rem;
  color: #333;
}
.p-settings__payment .c-plan-change__current-info {
  font-size: 0.875rem;
  color: #666;
  margin-bottom: 1rem;
  padding: 0.75rem;
  background-color: #f9f9f9;
  border-radius: 8px;
  line-height: 1.6;
}
.p-settings__payment .c-plan-change__current-info strong {
  color: #2F9EA3;
}
.p-settings__payment .c-plan-change__select {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  font-size: 1rem;
  background-color: white;
  margin-bottom: 0.75rem;
}
.p-settings__payment .c-plan-change__button {
  width: 100%;
  padding: 0.75rem;
  background-color: white;
  color: #2F9EA3;
  border: 2px solid #2F9EA3;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-top: 1rem;
}
.p-settings__payment .c-plan-change__button:hover {
  background-color: #2F9EA3;
  color: white;
}
.p-settings__payment .c-plan-change__button:disabled {
  background-color: #f5f5f5;
  color: #ccc;
  border-color: #ccc;
  cursor: not-allowed;
}
.p-settings__payment .c-plan-change__cancel-button {
  width: 100%;
  padding: 0.75rem;
  background-color: white;
  color: #2F9EA3;
  border: 2px solid #2F9EA3;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-top: 1rem;
}
.p-settings__payment .c-plan-change__cancel-button:hover {
  background-color: #2F9EA3;
  color: white;
}
.p-settings__payment .c-plan-change__explanation {
  margin-top: 1rem;
  padding: 1rem;
  background-color: #f9f9f9;
  border-radius: 8px;
}
.p-settings__payment .c-plan-change__explanation-title {
  font-size: 0.875rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
  color: #333;
}
.p-settings__payment .c-plan-change__explanation-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-settings__payment .c-plan-change__explanation-list li {
  font-size: 0.8125rem;
  color: #666;
  margin-bottom: 0.5rem;
  padding-left: 0;
}
.p-settings__payment .c-plan-change__explanation-list li:last-child {
  margin-bottom: 0;
}
.p-settings__payment .c-plan-change__explanation-list li strong {
  color: #333;
}
.p-settings__payment .c-plan-change__note {
  font-size: 0.75rem;
  color: #666;
  margin-top: 0.75rem;
}
.p-settings__payment .c-scheduled-plan {
  padding: 1rem;
  background-color: #fff3cd;
  border: 1px solid #ffc107;
  border-radius: 8px;
  margin-bottom: 1rem;
}
.p-settings__payment .c-scheduled-plan__text {
  font-size: 0.875rem;
  color: #856404;
  line-height: 1.6;
}
.p-settings__payment .c-scheduled-plan__text strong {
  color: #92400e;
}
.p-settings__payment .c-cancellation-notice {
  padding: 1rem;
  background-color: #fee2e2;
  border: 1px solid #dc2626;
  border-radius: 8px;
  margin-bottom: 1rem;
}
.p-settings__payment .c-cancellation-notice__text {
  font-size: 0.875rem;
  color: #7f1d1d;
  line-height: 1.6;
}
.p-settings__payment .c-cancellation-notice__text strong {
  color: #991b1b;
}
.p-settings__payment .c-payment-method {
  margin-bottom: 2rem;
  padding: 1rem;
  background-color: #f9f9f9;
  border-radius: 8px;
}
.p-settings__payment .c-payment-method__title {
  font-size: 1rem;
  font-weight: bold;
  margin-bottom: 0.75rem;
  color: #333;
}
.p-settings__payment .c-payment-method__button {
  width: 100%;
  padding: 0.75rem;
  background-color: white;
  color: #666;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: normal;
  cursor: pointer;
  transition: all 0.2s ease;
}
.p-settings__payment .c-payment-method__button:hover {
  background-color: #f9f9f9;
  border-color: #ccc;
}
.p-settings__payment .c-payment-portal {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e0e0e0;
}
.p-settings__payment .c-payment-portal__button {
  width: 100%;
  padding: 0.75rem;
  background-color: white;
  color: #666;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: normal;
  cursor: pointer;
  transition: all 0.2s ease;
}
.p-settings__payment .c-payment-portal__button:hover {
  background-color: #f9f9f9;
  border-color: #ccc;
}
.p-settings__payment .c-plan-option.is-selected {
  border-color: #2F9EA3;
  background-color: #f0f9fa;
}

.p-signup__plan .c-signup-progress {
  text-align: center;
  margin-bottom: 2rem;
}
.p-signup__plan .c-signup-progress__step {
  font-size: 0.875rem;
  color: #999;
  margin-bottom: 0.25rem;
}
.p-signup__plan .c-signup-progress__text {
  font-size: 1rem;
  font-weight: bold;
  color: #333;
}
.p-signup__plan .c-trial-notice {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
  background-color: #e3f2fd;
  border: 1px solid #2196f3;
  border-radius: 8px;
}
.p-signup__plan .c-trial-notice__icon {
  font-size: 1.25rem;
  flex-shrink: 0;
}
.p-signup__plan .c-trial-notice__text {
  font-size: 0.875rem;
  color: #333;
  line-height: 1.5;
}
.p-signup__plan .c-trial-notice__text strong {
  color: #1976d2;
}
.p-signup__plan .c-plan-change-note {
  text-align: center;
  font-size: 0.875rem;
  color: #666;
}
.p-signup__plan .c-plan-selector {
  padding: 1rem;
  background-color: #f9f9f9;
  border-radius: 8px;
  margin-bottom: 1.5rem;
}
.p-signup__plan .c-plan-selector__title {
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 0.75rem;
  color: #333;
}
.p-signup__plan .c-plan-options {
  display: flex;
  flex-direction: row;
  gap: 1rem;
}
.p-signup__plan .c-plan-option {
  display: flex;
  align-items: flex-start;
  padding: 1rem;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  background-color: white;
  flex: 1;
}
.p-signup__plan .c-plan-option:hover {
  border-color: #2F9EA3;
}
.p-signup__plan .c-plan-option.is-selected {
  border-color: #2F9EA3;
  background-color: #f0f9fa;
}
.p-signup__plan .c-plan-radio {
  margin-top: 0.25rem;
  margin-right: 0.75rem;
  flex-shrink: 0;
}
.p-signup__plan .c-plan-content {
  flex: 1;
}
.p-signup__plan .c-plan-name {
  font-weight: bold;
  font-size: 1rem;
  margin-bottom: 0.25rem;
  color: #333;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.p-signup__plan .c-plan-badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background-color: #f59e0b;
  color: white;
  font-size: 0.75rem;
  font-weight: bold;
  border-radius: 4px;
}
.p-signup__plan .c-plan-description {
  font-size: 0.875rem;
  color: #666;
  margin-bottom: 0.5rem;
}
.p-signup__plan .c-plan-price {
  font-size: 1rem;
  font-weight: bold;
  color: #2F9EA3;
  margin-top: 0.5rem;
}
.p-signup__plan .c-plan-note {
  font-size: 0.75rem;
  color: #666;
  margin-top: 0.25rem;
}
.p-signup__plan .c-payment-button {
  width: 100%;
  padding: 1rem;
  background-color: #2F9EA3;
  color: white;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.p-signup__plan .c-payment-button:hover {
  background-color: #268a8f;
}
.p-signup__plan .c-payment-button:disabled {
  background-color: #ccc;
  cursor: not-allowed;
}
.p-signup__plan .c-referral-input {
  background-color: #F5FAFA;
  border: 2px dashed #ACD8DA;
  border-radius: 8px;
  padding: 1rem;
}
.p-signup__plan .c-referral-input__title {
  font-size: 14px;
  font-weight: 700;
  color: #2F9EA3;
  margin-bottom: 0.5rem;
}
.p-signup__plan .c-referral-input__description {
  font-size: 13px;
  color: #6F6F6F;
  line-height: 1.6;
  margin-bottom: 1rem;
}
.p-signup__plan .c-referral-input .input-group {
  display: flex;
  gap: 0.5rem;
}
.p-signup__plan .c-referral-input .input-group .form-control {
  flex: 1;
  border: 1px solid #ACD8DA;
  border-radius: 6px;
  background-color: #fff;
  padding: 0.625rem 0.75rem;
  font-size: 14px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.p-signup__plan .c-referral-input .input-group .form-control::placeholder {
  color: #999;
  text-transform: none;
  letter-spacing: normal;
}
.p-signup__plan .c-referral-input .input-group .form-control:focus {
  outline: none;
  border-color: #2F9EA3;
  box-shadow: 0 0 0 3px rgba(47, 158, 163, 0.15);
}
.p-signup__plan .c-referral-input .input-group .form-control.is-invalid {
  border-color: #DA3636;
}
.p-signup__plan .c-referral-input .input-group .form-control.is-invalid:focus {
  box-shadow: 0 0 0 3px rgba(218, 54, 54, 0.15);
}
.p-signup__plan .c-referral-input .input-group .c-btn {
  flex-shrink: 0;
  white-space: nowrap;
}
.p-signup__plan .c-referral-input__error {
  margin-top: 0.5rem;
  font-size: 12px;
  color: #DA3636;
}
.p-signup__plan .c-referral-input__applied {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background-color: #e8f5e9;
  border: 1px solid #4caf50;
  border-radius: 4px;
}
.p-signup__plan .c-referral-input__applied-icon {
  color: #4caf50;
  font-weight: 700;
  font-size: 16px;
}
.p-signup__plan .c-referral-input__applied-text {
  font-size: 13px;
  color: #333;
}
.p-signup__plan .c-referral-input__applied-text strong {
  font-weight: 700;
  letter-spacing: 0.05em;
}

.p-settings__sample-image {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  border: 1px solid #e0e0e0;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.c-mock-pattern-switcher {
  margin-bottom: 1.5rem;
  padding: 1rem;
  background-color: #fff3cd;
  border: 2px dashed #ffc107;
  border-radius: 8px;
}
.c-mock-pattern-switcher__title {
  font-size: 14px;
  font-weight: bold;
  color: #856404;
  margin-bottom: 0.75rem;
}
.c-mock-pattern-switcher__options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.c-mock-pattern-switcher__option {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.375rem 0.75rem;
  background-color: white;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
  transition: all 0.2s ease;
}
.c-mock-pattern-switcher__option:hover {
  border-color: #2F9EA3;
}
.c-mock-pattern-switcher__option:has(input:checked) {
  border-color: #2F9EA3;
  background-color: #f0f9fa;
}
.c-mock-pattern-switcher__option input[type=radio] {
  margin: 0;
}
.c-mock-pattern-switcher__option span {
  color: #333;
}

.p-settings__line .c-pattern-section {
  padding: 1rem 0;
}

.c-line-settings__intro {
  margin-bottom: 1.5rem;
}
.c-line-settings__intro-text {
  font-size: 14px;
  color: #4F4F4F;
  line-height: 1.6;
  margin-bottom: 0.75rem;
}
.c-line-settings__link {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 13px;
  color: #2F9EA3;
  text-decoration: none;
}
.c-line-settings__link:hover {
  text-decoration: underline;
}
.c-line-settings__link img {
  width: 14px;
  height: 14px;
}
.c-line-settings__form {
  margin-bottom: 1.5rem;
}
.c-line-settings__actions {
  margin-top: 1.5rem;
}
.c-line-settings__actions .c-btn {
  width: 100%;
  max-width: none;
}
.c-line-settings__notes {
  padding: 1rem;
  background-color: #F5FAFA;
  border-radius: 8px;
  margin-top: 1.5rem;
}
.c-line-settings__notes-title {
  font-size: 13px;
  font-weight: 700;
  color: #4F4F4F;
  margin-bottom: 0.5rem;
}
.c-line-settings__notes-list {
  margin: 0;
  padding-left: 1.25rem;
  font-size: 12px;
  color: #6F6F6F;
  line-height: 1.8;
}
.c-line-settings__notes-list li {
  margin-bottom: 0.25rem;
}
.c-line-settings__notes-list li:last-child {
  margin-bottom: 0;
}
.c-line-settings__status {
  padding: 1rem;
  background-color: #ecfdf5;
  border: 1px solid #10b981;
  border-radius: 8px;
  margin-bottom: 1.5rem;
}
.c-line-settings__status-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.c-line-settings__status-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
.c-line-settings__status-title {
  font-size: 14px;
  font-weight: 700;
  color: #059669;
}
.c-line-settings__info {
  margin-bottom: 1.5rem;
}
.c-line-settings__info-title {
  font-size: 14px;
  font-weight: 700;
  color: #333;
  margin-bottom: 0.75rem;
}
.c-line-settings__info-table {
  background-color: #f9fafb;
  border-radius: 8px;
  padding: 0.5rem 1rem;
}
.c-line-settings__info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 0;
  border-bottom: 1px solid #EDF2F3;
}
.c-line-settings__info-row:last-child {
  border-bottom: none;
}
.c-line-settings__info-label {
  font-size: 13px;
  color: #6F6F6F;
}
.c-line-settings__info-value {
  font-size: 13px;
  font-weight: 500;
  color: #333;
}
.c-line-settings__info-value--masked {
  font-family: monospace;
  letter-spacing: 0.05em;
}
.c-line-settings__edit {
  margin-bottom: 1.5rem;
}
.c-line-settings__edit-summary {
  font-size: 14px;
  font-weight: 500;
  color: #2F9EA3;
  cursor: pointer;
  padding: 0.75rem 0;
  padding-left: 20px;
  border-bottom: 1px solid #EDF2F3;
  list-style: none;
  position: relative;
}
.c-line-settings__edit-summary::-webkit-details-marker {
  display: none;
}
.c-line-settings__edit-summary::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background-image: url(../img/caret-down.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 14px;
  height: 14px;
  transition: transform 0.2s ease;
}
details[open] .c-line-settings__edit-summary::before {
  transform: translateY(-50%) rotate(180deg);
}
.c-line-settings__edit-content {
  padding-top: 1rem;
}
.c-line-settings__external-links {
  margin-top: 1rem;
}
.c-line-settings__external-link {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 13px;
  color: #2F9EA3;
  text-decoration: none;
}
.c-line-settings__external-link:hover {
  text-decoration: underline;
}
.c-line-settings__external-link img {
  width: 14px;
  height: 14px;
}

.c-referral-section {
  margin-bottom: 1.5rem;
  padding: 1rem;
  background-color: #F5FAFA;
  border: 2px dashed #ACD8DA;
  border-radius: 8px;
}
.c-referral-section__title {
  font-size: 1rem;
  font-weight: bold;
  margin-bottom: 0.75rem;
  color: #2F9EA3;
}
.c-referral-section__description {
  font-size: 13px;
  color: #6F6F6F;
  line-height: 1.6;
  margin-bottom: 1rem;
}
.c-referral-section__input-group {
  display: flex;
  gap: 0.5rem;
}
.c-referral-section__input-group .form-control {
  flex: 1;
  border: 1px solid #ACD8DA;
  border-radius: 6px;
  background-color: #fff;
  padding: 0.625rem 0.75rem;
  font-size: 14px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.c-referral-section__input-group .form-control::placeholder {
  color: #999;
  text-transform: none;
  letter-spacing: normal;
}
.c-referral-section__input-group .form-control:focus {
  outline: none;
  border-color: #2F9EA3;
  box-shadow: 0 0 0 3px rgba(47, 158, 163, 0.15);
}
.c-referral-section__input-group .form-control.is-invalid {
  border-color: #DA3636;
}
.c-referral-section__input-group .form-control.is-invalid:focus {
  box-shadow: 0 0 0 3px rgba(218, 54, 54, 0.15);
}
.c-referral-section__input-group .c-btn {
  flex-shrink: 0;
  white-space: nowrap;
}
.c-referral-section__error {
  margin-top: 0.5rem;
  font-size: 12px;
  color: #DA3636;
}
.c-referral-section__note {
  margin-top: 0.75rem;
  font-size: 12px;
  color: #818181;
}
.c-referral-section__applied-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.c-referral-section__applied-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  background-color: #10b981;
  color: white;
  border-radius: 50%;
  font-size: 14px;
  font-weight: bold;
}
.c-referral-section__applied-title {
  font-size: 14px;
  font-weight: bold;
  color: #10b981;
}
.c-referral-section__applied-info {
  background-color: white;
  border: 1px solid #EDF2F3;
  border-radius: 8px;
  padding: 1rem;
}
.c-referral-section__applied-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0;
  border-bottom: 1px solid #EDF2F3;
}
.c-referral-section__applied-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.c-referral-section__applied-row:first-child {
  padding-top: 0;
}
.c-referral-section__applied-label {
  font-size: 13px;
  color: #6F6F6F;
}
.c-referral-section__applied-value {
  font-size: 13px;
  font-weight: 500;
  color: #333;
  letter-spacing: 0.05em;
}
.c-referral-section__applied-value--status {
  padding: 0.25rem 0.5rem;
  background-color: #10b981;
  color: white;
  font-size: 11px;
  font-weight: bold;
  border-radius: 4px;
}

.booking-tabs {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
  background: #f5f5f5;
  border-bottom: 2px solid #ddd;
}
.booking-tabs__item {
  flex: 1;
  display: flex;
}
.booking-tabs__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 12px 8px;
  color: #666;
  text-decoration: none;
  font-size: 12px;
  font-weight: bold;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  transition: all 0.2s;
  text-align: center;
  line-height: 1.4;
}
.booking-tabs__link:hover {
  color: #2F9EA3;
}
.booking-tabs__link.is-active {
  color: #2F9EA3;
  border-bottom-color: #2F9EA3;
  background: white;
}
@media (min-width: 768px) {
  .booking-tabs__link {
    font-size: 14px;
    padding: 14px 16px;
  }
}

.tab-content {
  display: none;
}
.tab-content.is-active {
  display: block;
}

.guest-form-note {
  background: #fff9e6;
  border: 1px solid #f0e68c;
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 20px;
  font-size: 13px;
  color: #666;
}
.guest-form-note strong {
  color: #2F9EA3;
}

.required-badge {
  display: inline-block;
  background: #ED6B5F;
  color: white;
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 3px;
  margin-left: 8px;
  vertical-align: middle;
}

.optional-badge {
  display: inline-block;
  background: #95a5a6;
  color: white;
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 3px;
  margin-left: 8px;
  vertical-align: middle;
}

.guest-info-section {
  background: #f9f9f9;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 20px;
}
.guest-info-section__title {
  font-weight: bold;
  font-size: 14px;
  margin-bottom: 12px;
  color: #2F9EA3;
  padding-bottom: 8px;
  border-bottom: 1px solid #ddd;
}

/*------------------------------------------------------------------------------
  MenuSelector - メニュー選択コンポーネント
  ※frontendのform-reservation.cssに合わせたスタイル
------------------------------------------------------------------------------*/
.menu-selector__section {
  margin-bottom: 16px;
}

.menu-selector__label {
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 12px;
  color: #333;
}

.menu-selector__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.menu-selector__empty {
  text-align: center;
  padding: 40px 20px;
  color: #666;
}

/* メインメニューアイテム */
.menu-item {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
  padding: 12px;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s ease;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.menu-item.selected {
  border-color: #2F9EA3;
  background: linear-gradient(135deg, #f2faf9 0%, #e6f7f6 100%);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(60, 182, 178, 0.25);
}
.menu-item.selected .menu-details h4 {
  color: #2F9EA3;
  font-weight: 700;
}
.menu-item:hover:not(.selected) {
  border-color: rgb(101.3142857143, 205.9714285714, 210.6857142857);
  box-shadow: 0 4px 12px rgba(60, 182, 178, 0.15);
}

.menu-image {
  width: 70px;
  height: 70px;
  background-color: #e6f7f6;
  border-radius: 6px;
  margin-right: 12px;
  flex-shrink: 0;
  object-fit: cover;
}

.menu-details {
  flex: 1;
}
.menu-details h4 {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-bottom: 4px;
}
.menu-details p {
  font-size: 14px;
  color: #666;
  margin: 0;
}

/* オプションメニューアイテム */
.option-item {
  display: flex;
  align-items: center;
  margin-bottom: 12px;
  padding: 12px;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s ease;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.option-item.selected {
  border-color: #2F9EA3;
  background: linear-gradient(135deg, #f2faf9 0%, #e6f7f6 100%);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(60, 182, 178, 0.2);
}
.option-item.selected .option-details h4 {
  color: #2F9EA3;
  font-weight: 700;
}
.option-item.selected .option-image {
  border: 2px solid #2F9EA3;
}
.option-item:hover:not(.selected) {
  border-color: rgb(101.3142857143, 205.9714285714, 210.6857142857);
  box-shadow: 0 4px 12px rgba(60, 182, 178, 0.15);
}

.option-image-container {
  position: relative;
  margin-right: 12px;
  flex-shrink: 0;
}

.option-image {
  width: 60px;
  height: 60px;
  background-color: #e6f7f6;
  border-radius: 8px;
  object-fit: cover;
  transition: all 0.3s ease;
}

.option-selected-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 20px;
  height: 20px;
  background: #2F9EA3;
  border: 2px solid #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.option-details {
  flex: 1;
}
.option-details h4 {
  font-size: 15px;
  font-weight: 600;
  color: #333;
  margin-bottom: 4px;
}
.option-details p {
  font-size: 13px;
  color: #666;
  margin: 0;
}

/*------------------------------------------------------------------------------
  p-review-summary
------------------------------------------------------------------------------*/
.p-review-summary {
  padding: 24px 16px;
  background-color: #fff;
}

.p-review-summary__heading {
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.p-review-summary__heading-line {
  display: flex;
  align-items: center;
  gap: 8px;
}

.p-review-summary__heading-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}

.p-review-summary__heading-name {
  font-weight: 700;
}

.p-review-summary__rating-container {
  text-align: center;
  margin-bottom: 24px;
}

.p-review-summary__rating-main {
  display: flex;
  align-items: baseline;
  justify-content: center;
  margin-bottom: 8px;
}

.p-review-summary__rating-number {
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  color: #2F9EA3;
}

.p-review-summary__rating-unit {
  font-size: 16px;
  margin-left: 4px;
}

.p-review-summary__stars {
  display: flex;
  justify-content: center;
  gap: 4px;
  margin-bottom: 8px;
}

.p-review-summary__star {
  font-size: 24px;
  color: #E0E0E0;
}
.p-review-summary__star--filled {
  color: #2F9EA3;
}
.p-review-summary__star--half {
  background: linear-gradient(90deg, #2F9EA3 50%, #E0E0E0 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.p-review-summary__count {
  font-size: 14px;
  color: #818181;
}

.p-review-summary__share {
  margin-top: 16px;
  text-align: center;
}

.p-review-summary__share-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background-color: #2F9EA3;
  border: none;
  border-radius: 24px;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.1s ease;
}
.p-review-summary__share-button:hover {
  background-color: rgb(35.5857142857, 119.6285714286, 123.4142857143);
}
.p-review-summary__share-button:active {
  transform: scale(0.98);
}
.p-review-summary__share-button--copied {
  background-color: #28a745;
}

.p-review-summary__share-icon {
  width: 16px;
  height: 16px;
}

.p-review-summary__breakdown {
  display: flex;
  justify-content: space-around;
  margin-bottom: 32px;
  gap: 16px;
}

.p-review-summary__category {
  flex: 1;
  text-align: center;
}

.p-review-summary__category-circle {
  width: 100px;
  height: 100px;
  border: 2px solid #C1E2E3;
  border-radius: 50%;
  background-color: #F5FAFA;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}

.p-review-summary__category-label {
  font-size: 12px;
  margin-bottom: 4px;
}

.p-review-summary__category-score {
  font-size: 24px;
  font-weight: 700;
  color: #2F9EA3;
}
.p-review-summary__category-score small {
  font-size: 12px;
  font-weight: 400;
}

.p-review-summary__distribution {
  margin-top: 24px;
}

.p-review-summary__distribution-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.p-review-summary__distribution-label {
  flex: 0 0 32px;
  font-size: 14px;
}

.p-review-summary__distribution-bar {
  flex: 1;
  height: 8px;
  background-color: #E0E0E0;
  border-radius: 4px;
  overflow: hidden;
}

.p-review-summary__distribution-fill {
  height: 100%;
  background: linear-gradient(90deg, #2F9EA3 0%, #82C5C8 100%);
  transition: width 0.3s ease;
}

.p-review-summary__distribution-percent {
  flex: 0 0 40px;
  text-align: right;
  font-size: 14px;
}

/*------------------------------------------------------------------------------
  p-review-list
------------------------------------------------------------------------------*/
.p-review-list {
  padding: 0 16px;
}

.p-review-list__item {
  padding: 16px 0;
  border-bottom: 1px solid #EDF2F3;
}
.p-review-list__item:last-child {
  border-bottom: none;
}

.p-review-list__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.p-review-list__username {
  font-size: 14px;
  font-weight: 700;
  color: #4F4F4F;
}

.p-review-list__date {
  font-size: 12px;
  color: #818181;
}

.p-review-list__rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.p-review-list__rating-number {
  font-size: 16px;
  font-weight: 700;
  color: #2F9EA3;
}

.p-review-list__stars {
  display: flex;
  gap: 2px;
}

.p-review-list__star {
  font-size: 16px;
  color: #E0E0E0;
}
.p-review-list__star--filled {
  color: #2F9EA3;
}
.p-review-list__star--half {
  background: linear-gradient(90deg, #2F9EA3 50%, #E0E0E0 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.p-review-list__menu-tag {
  display: inline-block;
  padding: 4px 12px;
  font-size: 12px;
  border: 1px solid #2F9EA3;
  border-radius: 12px;
  color: #2F9EA3;
  margin-bottom: 8px;
}

.p-review-list__comment {
  font-size: 14px;
  line-height: 1.7;
  color: #4F4F4F;
}

/*------------------------------------------------------------------------------
  p-review-detail (モーダル内口コミ詳細)
------------------------------------------------------------------------------*/
.p-review-detail {
  background-color: #F5FAFA;
  border-radius: 12px;
  padding: 16px;
}

.p-review-detail__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.p-review-detail__customer-name {
  font-size: 16px;
  font-weight: 700;
  color: #4F4F4F;
}

.p-review-detail__date {
  font-size: 12px;
  color: #818181;
}

.p-review-detail__rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}

.p-review-detail__rating-number {
  font-size: 24px;
  font-weight: 700;
  color: #2F9EA3;
}

.p-review-detail__stars {
  display: flex;
  gap: 2px;
}

.p-review-detail__star {
  font-size: 20px;
  color: #E0E0E0;
}
.p-review-detail__star--filled {
  color: #2F9EA3;
}
.p-review-detail__star--half {
  background: linear-gradient(90deg, #2F9EA3 50%, #E0E0E0 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.p-review-detail__categories {
  display: flex;
  justify-content: space-around;
  gap: 8px;
  margin-bottom: 16px;
  padding: 12px;
  background-color: #fff;
  border-radius: 8px;
}

.p-review-detail__category {
  text-align: center;
}

.p-review-detail__category-label {
  font-size: 12px;
  color: #818181;
  display: block;
  margin-bottom: 4px;
}

.p-review-detail__category-score {
  font-size: 16px;
  font-weight: 700;
  color: #2F9EA3;
}

.p-review-detail__menu {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  padding: 12px;
  background-color: #fff;
  border-radius: 8px;
}

.p-review-detail__menu-label {
  font-size: 12px;
  color: #818181;
  flex-shrink: 0;
}

.p-review-detail__menu-name {
  font-size: 14px;
  font-weight: 700;
  color: #4F4F4F;
}

.p-review-detail__comment {
  padding: 12px;
  background-color: #fff;
  border-radius: 8px;
}

.p-review-detail__comment-label {
  font-size: 12px;
  color: #818181;
  margin-bottom: 8px;
}

.p-review-detail__comment-text {
  font-size: 14px;
  line-height: 1.7;
  color: #4F4F4F;
}

/*------------------------------------------------------------------------------
  Tutorial
------------------------------------------------------------------------------*/
.tutorial-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: transparent;
  z-index: 10002;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 24px;
  pointer-events: none;
}

.tutorial-dark-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10001;
  pointer-events: none;
}

.tutorial-spotlight {
  position: fixed;
  border: 3px solid #2f9ea3;
  border-radius: 8px;
  background-color: transparent;
  pointer-events: none;
  transition: all 0.3s ease;
  z-index: 10001;
}

.tutorial-card {
  position: relative;
  background: white;
  border-radius: 12px;
  padding: 24px;
  max-width: 400px;
  width: 90%;
  z-index: 10002;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
  pointer-events: auto;
}

.tutorial-card__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.tutorial-card__step {
  font-size: 14px;
  color: #2f9ea3;
  font-weight: bold;
}

.tutorial-card__skip {
  background: none;
  border: none;
  color: #818181;
  font-size: 14px;
  cursor: pointer;
  padding: 4px 8px;
}

.tutorial-card__title {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 12px;
  color: #333;
}

.tutorial-card__new-badge {
  display: inline-block;
  background-color: #e74c3c;
  color: #fff;
  font-size: 11px;
  font-weight: bold;
  padding: 2px 8px;
  border-radius: 10px;
  margin-left: 8px;
  vertical-align: middle;
  letter-spacing: 0.5px;
}

.tutorial-card__description {
  font-size: 14px;
  color: #666;
  line-height: 1.6;
  margin-bottom: 24px;
}

.tutorial-card__actions {
  display: flex;
  justify-content: center;
}

.tutorial-card__btn {
  width: 100%;
}

.p-reservation-detail__section {
  display: block;
  width: 100%;
  padding: 16px;
  border-radius: 8px;
  text-align: left;
  text-decoration: none;
}
.p-reservation-detail__section--customer {
  background-color: #f8f9fa;
  border: none;
  cursor: pointer;
}
.p-reservation-detail__section--reservation {
  background-color: #fff;
  border: 1px solid #e0e0e0;
  color: inherit;
}
.p-reservation-detail__section--clickable {
  transition: opacity 0.2s, box-shadow 0.2s;
}
.p-reservation-detail__section--clickable:hover {
  opacity: 0.8;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.p-reservation-detail__section--message {
  background-color: #fff;
  border: 1px solid #e0e0e0;
}
.p-reservation-detail__message-text {
  margin: 12px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: #333;
  white-space: pre-wrap;
  word-break: break-word;
}
.p-reservation-detail__section-body {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.p-reservation-detail__section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.p-reservation-detail__section-title {
  color: #2F9EA3 !important;
}
.p-reservation-detail__chevron {
  width: 24px;
  height: 24px;
  opacity: 0.4;
  flex-shrink: 0;
  margin-left: 12px;
}
.p-reservation-detail__customer-card {
  display: flex;
  align-items: center;
  flex: 1;
}
.p-reservation-detail__customer-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0;
  flex-shrink: 0;
}
.p-reservation-detail__customer-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-reservation-detail__customer-info {
  flex: 1;
  margin-left: 12px;
}
.p-reservation-detail__customer-name {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 4px;
}
.p-reservation-detail__customer-name-main {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
}
.p-reservation-detail__customer-name-sub {
  font-size: 12px;
  color: #999;
}
.p-reservation-detail__customer-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0;
}
.p-reservation-detail__customer-meta-item {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
}
.p-reservation-detail__customer-meta-item dt {
  margin-bottom: 0;
}
.p-reservation-detail__customer-meta-item dd {
  margin: 0;
}
.p-reservation-detail__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  flex: 1;
}
.p-reservation-detail__list-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}
.p-reservation-detail__list-item dt {
  width: 70px;
  flex-shrink: 0;
  margin-bottom: 0;
}
.p-reservation-detail__list-item dd {
  color: #333;
  margin: 0;
}
.p-reservation-detail__list-price {
  margin-left: 8px;
  color: #666;
  font-size: 13px;
}
.p-reservation-detail__section--history {
  background-color: #fff;
  border: 1px solid #e0e0e0;
}
.p-reservation-detail__history-count {
  font-size: 12px;
  font-weight: normal;
  color: #666;
}

.p-customer__info {
  background-color: #f8f9fa;
  border-radius: 8px;
  padding: 16px;
}
.p-customer__info-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
}
.p-customer__info-item {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
}
.p-customer__info-item dt {
  color: #666;
}
.p-customer__info-item dd {
  color: #333;
  font-weight: 500;
  margin: 0;
}
.p-customer__history-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
}
.p-customer__history-item {
  border-bottom: 1px solid #e0e0e0;
}
.p-customer__history-item:last-child {
  border-bottom: none;
}
.p-customer__history-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 12px 16px;
  background: #fff;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background-color 0.2s;
}
.p-customer__history-link:hover {
  background-color: #f8f9fa;
}
.p-customer__history-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.p-customer__history-info time {
  font-size: 14px;
  font-weight: 500;
  color: #333;
}
.p-customer__history-menu {
  font-size: 12px;
  color: #666;
}
.p-customer__history-arrow {
  width: 16px;
  height: 16px;
  opacity: 0.4;
}

.p-karte {
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 16px;
  background-color: #fafafa;
}
.p-karte__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.p-karte__title {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  margin: 0;
}
.p-karte__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.p-karte__section-title {
  font-size: 12px;
  font-weight: 600;
  color: #666;
  margin: 0 0 6px 0;
}
.p-karte__text {
  font-size: 13px;
  color: #333;
  line-height: 1.5;
  margin: 0;
}
.p-karte__images {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.p-karte__image {
  width: 80px;
  height: 80px;
  border-radius: 4px;
  overflow: hidden;
  margin: 0;
}
.p-karte__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-karte-edit__section {
  margin-bottom: 20px;
}
.p-karte-edit__section:last-child {
  margin-bottom: 0;
}
.p-karte-edit__label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #333;
  margin-bottom: 8px;
}
.p-karte-edit__images {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.p-karte-edit__image-item {
  position: relative;
}
.p-karte-edit__image {
  width: 100px;
  height: 100px;
  border-radius: 8px;
  overflow: hidden;
  margin: 0;
}
.p-karte-edit__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-karte-edit__image-delete {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: #ff4444;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.p-karte-edit__image-delete img {
  width: 12px;
  height: 12px;
  filter: brightness(0) invert(1);
}
.p-karte-edit__image-add {
  width: 100px;
  height: 100px;
  border: 2px dashed #ccc;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 0.2s;
}
.p-karte-edit__image-add:hover {
  border-color: var(--color-primary);
}
.p-karte-edit__image-add span {
  font-size: 32px;
  color: #ccc;
}

.p-visit-history__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-visit-history__item {
  border-bottom: 1px solid #eee;
}
.p-visit-history__item:last-child {
  border-bottom: none;
}
.p-visit-history__link {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 12px 0;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.2s;
}
.p-visit-history__link:hover {
  background-color: #f5f5f5;
}
.p-visit-history__date {
  flex: 1;
}
.p-visit-history__date time {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #333;
}
.p-visit-history__time {
  font-size: 12px;
  color: #666;
}
.p-visit-history__menu {
  flex: 1;
  font-size: 13px;
  color: #666;
  padding: 0 12px;
}
.p-visit-history__arrow {
  width: 20px;
}
.p-visit-history__arrow img {
  width: 8px;
  opacity: 0.5;
}

.p-history-memo__section {
  margin-bottom: 20px;
}
.p-history-memo__section:last-child {
  margin-bottom: 0;
}
.p-history-memo__label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #333;
  margin-bottom: 8px;
}
.p-history-memo__images {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.p-history-memo__image-item {
  position: relative;
}
.p-history-memo__image {
  width: 100px;
  height: 100px;
  border-radius: 8px;
  overflow: hidden;
  margin: 0;
}
.p-history-memo__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-history-memo__image-delete {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: #ff4444;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.p-history-memo__image-delete img {
  width: 12px;
  height: 12px;
  filter: brightness(0) invert(1);
}
.p-history-memo__image-add {
  width: 100px;
  height: 100px;
  border: 2px dashed #ccc;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 0.2s;
}
.p-history-memo__image-add:hover {
  border-color: var(--color-primary);
}
.p-history-memo__image-add span {
  font-size: 32px;
  color: #ccc;
}

/*------------------------------------------------------------------------------
  p-category-manage — カテゴリ管理（インライン追加 + モーダル）
------------------------------------------------------------------------------*/
.p-category-select {
  display: flex;
  gap: 8px;
  align-items: center;
}
.p-category-select__dropdown {
  flex: 1;
}
.p-category-select__manage-btn {
  white-space: nowrap;
  flex-shrink: 0;
}

.p-category-inline-form {
  display: none;
  margin-top: 8px;
  padding: 12px;
  background-color: #F5FAFA;
  border: 1px solid #D5ECED;
  border-radius: 8px;
}
.p-category-inline-form__row {
  display: flex;
  gap: 8px;
  align-items: center;
}
.p-category-inline-form__input {
  flex: 1;
}
.p-category-inline-form.is-visible {
  display: block;
}

.p-category-manage-modal__header {
  border-bottom: 1px solid #EDF2F3;
  padding: 16px;
}
.p-category-manage-modal__title {
  font-size: 16px;
  font-weight: 700;
  margin: 0;
}
.p-category-manage-modal__body {
  padding: 16px;
}
.p-category-manage-modal__list {
  max-height: 50vh;
  overflow-y: auto;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-category-manage-modal__add-form {
  display: flex;
  gap: 8px;
  align-items: center;
  padding-bottom: 12px;
  margin-bottom: 4px;
  border-bottom: 1px solid #EDF2F3;
}
.p-category-manage-modal__add-input {
  flex: 1;
}

.p-category-manage-item {
  padding: 12px 0;
  border-bottom: 1px solid #EDF2F3;
  transition: background-color 0.15s ease;
}
.p-category-manage-item--view {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.p-category-manage-item--edit .p-category-manage-item__edit-row {
  display: flex;
  gap: 8px;
  align-items: center;
}
.p-category-manage-item--delete-confirm {
  background-color: #fff8f8;
  margin: 0 -16px;
  padding: 12px 16px;
}
.p-category-manage-item__name {
  font-size: 14px;
  color: #333;
}
.p-category-manage-item__actions {
  display: flex;
  gap: 8px;
}
.p-category-manage-item__edit-input {
  flex: 1;
}
.p-category-manage-item__delete-message {
  font-size: 13px;
  color: #666;
  margin: 0 0 8px 0;
}
.p-category-manage-item__delete-message small {
  font-size: 12px;
  color: #999;
}
.p-category-manage-item__delete-actions {
  display: flex;
  gap: 8px;
}

.p-category-manage-empty {
  text-align: center;
  padding: 24px 0;
  color: #999;
  font-size: 14px;
}

/*------------------------------------------------------------------------------
  p-referral - お友達紹介プログラム
------------------------------------------------------------------------------*/
.p-referral {
  padding-top: 16px;
  padding-bottom: 100px;
}

.p-referral__campaign {
  background-color: #F0F8F9;
  border-radius: 12px;
  padding: 24px 20px;
  margin-bottom: 24px;
  text-align: center;
}

.p-referral__catchcopy {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.7;
  color: #333;
  margin-bottom: 20px;
}

.p-referral__highlight {
  color: #2F9EA3;
  font-size: 18px;
}

.p-referral__benefits {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 16px;
}

.p-referral__benefit {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 10px;
  text-align: left;
}

.p-referral__benefit-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  padding: 4px 12px;
  background-color: #2F9EA3;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  border-radius: 20px;
  flex-shrink: 0;
}
.p-referral__benefit-label--friend {
  background-color: #ED6B5F;
}

.p-referral__benefit-text {
  font-size: 13px;
  font-weight: 500;
  color: #333;
  line-height: 1.5;
  text-align: left;
}

.p-referral__condition {
  font-size: 11px;
  color: #6F6F6F;
  line-height: 1.6;
  text-align: left;
  margin-bottom: 16px;
}

.p-referral__example {
  background-color: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 16px;
  margin-top: 0;
  text-align: left;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.p-referral__example-title {
  font-size: 13px;
  font-weight: 700;
  color: #2F9EA3;
  margin-bottom: 8px;
}

.p-referral__example-intro {
  font-size: 12px;
  color: #4F4F4F;
  margin-bottom: 8px;
  line-height: 1.5;
}

.p-referral__example-list {
  margin: 0;
  padding-left: 20px;
  font-size: 12px;
  color: #4F4F4F;
  line-height: 1.7;
}
.p-referral__example-list li {
  margin-bottom: 4px;
}
.p-referral__example-list li:last-child {
  margin-bottom: 0;
}
.p-referral__example-list strong {
  color: #333;
}

.p-referral__code-section {
  background-color: #fff;
  border: 1px solid #EDF2F3;
  border-radius: 12px;
  padding: 24px 20px;
  margin-bottom: 24px;
}

.p-referral__section-title {
  font-size: 14px;
  font-weight: 700;
  color: #333;
  margin-bottom: 16px;
}

.p-referral__code-display {
  background-color: #F5FAFA;
  border: 2px dashed #ACD8DA;
  border-radius: 8px;
  padding: 20px;
  text-align: center;
  margin-bottom: 20px;
}

.p-referral__code {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: #2F9EA3;
  font-family: "Courier New", Courier, monospace;
}

.p-referral__actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.p-referral__copy-btn {
  width: 100%;
  max-width: 100%;
}

.p-referral__line-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 12px 16px;
  background-color: #06C755;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  border-radius: 8px;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.p-referral__line-btn:hover {
  opacity: 0.85;
  color: #fff;
}
.p-referral__line-btn svg {
  flex-shrink: 0;
}

.p-referral__history-section {
  background-color: #fff;
  border: 1px solid #EDF2F3;
  border-radius: 12px;
  padding: 24px 20px;
}

.p-referral__history-table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.p-referral__history-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.p-referral__history-table th,
.p-referral__history-table td {
  padding: 12px 8px;
  text-align: left;
  border-bottom: 1px solid #EDF2F3;
  white-space: nowrap;
}
.p-referral__history-table th {
  font-weight: 700;
  color: #6F6F6F;
  font-size: 12px;
  background-color: #F5FAFA;
}
.p-referral__history-table tbody tr:last-child td {
  border-bottom: none;
}
.p-referral__history-table tbody tr.is-expired td {
  color: #818181;
}
.p-referral__history-table tbody tr.is-expired .p-referral__salon-name {
  color: #818181;
}

.p-referral__salon-name {
  font-weight: 500;
  color: #333;
}

.p-referral__date {
  color: #6F6F6F;
}

.p-referral__empty-state {
  text-align: center;
  padding: 40px 20px;
}

.p-referral__empty-text {
  font-size: 14px;
  font-weight: 500;
  color: #6F6F6F;
  margin-bottom: 8px;
}

.p-referral__empty-subtext {
  font-size: 12px;
  color: #818181;
  line-height: 1.6;
}

/*------------------------------------------------------------------------------
  p-staff
------------------------------------------------------------------------------*/
.p-staff {
  padding: 24px 0 104px;
}

.p-staff__intro {
  color: #6F6F6F;
  font-size: 12px;
  line-height: 1.7;
  margin-bottom: 20px;
}

.p-staff__toolbar {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: 12px;
}

.p-staff__sort-guide {
  align-items: center;
  color: #6F6F6F;
  display: flex;
  font-size: 11px;
  gap: 6px;
  line-height: 1.5;
  margin: 0 0 10px;
}

.p-staff__sort-guide-icon {
  color: #2F9EA3;
  font-size: 16px;
  line-height: 1;
}

.p-staff__count {
  color: #6F6F6F;
  font-size: 12px;
  margin: 0;
}

.p-staff__limit-note {
  margin: -8px 0 14px;
  color: #6F6F6F;
  font-size: 11px;
  text-align: right;
}

.p-staff__list {
  display: grid;
  gap: 12px;
}

.p-staff__card {
  background: #fff;
  border: 1px solid #EDF2F3;
  border-radius: 8px;
  box-shadow: 0px 2px 8px 0px rgba(3, 48, 50, 0.1);
  padding: 16px 16px 16px 56px;
  position: relative;
  transition: box-shadow 0.12s ease;
}

.p-staff__drag-handle {
  align-items: center;
  background: #F0F8F9;
  border: 0;
  border-right: 1px solid #EDF2F3;
  border-radius: 8px 0 0 8px;
  bottom: 0;
  color: #2F9EA3;
  cursor: grab;
  display: flex;
  justify-content: center;
  left: 0;
  padding: 0;
  position: absolute;
  top: 0;
  touch-action: none;
  user-select: none;
  width: 40px;
}
.p-staff__drag-handle:active {
  cursor: grabbing;
}
.p-staff__drag-handle:focus-visible {
  box-shadow: inset 0 0 0 2px #2F9EA3;
  outline: 0;
}

.p-staff__card.is-sort-chosen {
  box-shadow: 0px 2px 8px 0px rgba(8, 63, 66, 0.25);
  transition: none;
}

.p-staff__card.is-sort-ghost {
  background: #EAF5F6;
  border-color: #ACD8DA;
  opacity: 0.55;
}

.p-staff__card.is-sorting {
  box-shadow: 0px 2px 8px 0px rgba(8, 63, 66, 0.25);
  transition: none;
}

.p-staff__card.is-sort-fallback {
  box-shadow: 0px 2px 8px 0px rgba(8, 63, 66, 0.25);
  opacity: 1;
  pointer-events: none;
  transition: none;
}

.p-staff__sort-status {
  color: #2F9EA3;
  font-size: 11px;
  margin: 8px 0 0;
  min-height: 18px;
  text-align: center;
}

.p-staff__card.is-inactive {
  background: #F2F2F2;
  box-shadow: none;
}

.p-staff__card-head {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.p-staff__image {
  border-radius: 50%;
  flex-shrink: 0;
  height: 48px;
  object-fit: cover;
  width: 48px;
}

.p-staff__main {
  flex: 1;
  min-width: 0;
}

.p-staff__name-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.p-staff__name {
  font-size: 15px;
  font-weight: 700;
  margin: 0;
}

.p-staff__meta {
  color: #6F6F6F;
  font-size: 12px;
  margin: 8px 0 0;
}

.p-staff__actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 14px;
}

.p-staff__empty-note {
  background: #F0F8F9;
  border-radius: 6px;
  color: #4F4F4F;
  font-size: 12px;
  line-height: 1.7;
  margin-top: 16px;
  padding: 12px;
}

.p-staff-form__visibility-note {
  color: #6F6F6F;
  font-size: 11px;
  margin: 6px 0 0;
}

.p-staff-modal__alert {
  background: rgba(218, 54, 54, 0.08);
  border-left: 3px solid #DA3636;
  color: #4F4F4F;
  font-size: 12px;
  line-height: 1.7;
  margin-bottom: 16px;
  padding: 12px;
}

.c-staff-badge {
  border: 1px solid #2F9EA3;
  border-radius: 4px;
  color: #2F9EA3;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
}

.c-staff-badge.is-hidden,
.c-staff-badge.is-inactive {
  border-color: #818181;
  color: #818181;
}

.c-btn--danger-outline {
  background: transparent;
  border-color: #DA3636;
  color: #DA3636;
}

/*------------------------------------------------------------------------------
  スタッフフォーム - 画像アップロード
------------------------------------------------------------------------------*/
.p-staff-form__image-note {
  color: #6F6F6F;
  font-size: 11px;
  margin: 0 0 8px;
}

.p-staff-form__image-upload {
  width: 100px;
}

.p-staff-form__image-placeholder {
  align-items: center;
  background: #F0F8F9;
  border: 2px dashed #ACD8DA;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 4px;
  height: 100px;
  justify-content: center;
  transition: border-color 0.2s, background-color 0.2s;
  width: 100px;
}
.p-staff-form__image-placeholder:hover {
  background: #EAF5F6;
  border-color: #2F9EA3;
}

.p-staff-form__image-placeholder-icon {
  color: #2F9EA3;
  font-size: 28px;
  font-weight: 300;
  line-height: 1;
}

.p-staff-form__image-placeholder-text {
  color: #2F9EA3;
  font-size: 11px;
}

.p-staff-form__image-preview {
  position: relative;
  width: 100px;
}
.p-staff-form__image-preview img {
  border-radius: 8px;
  display: block;
  height: 100px;
  object-fit: cover;
  width: 100px;
}

.p-staff-form__image-delete {
  align-items: center;
  background: #DA3636;
  border: 0;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  display: flex;
  height: 24px;
  justify-content: center;
  padding: 0;
  position: absolute;
  right: -8px;
  top: -8px;
  transition: background-color 0.2s;
  width: 24px;
}
.p-staff-form__image-delete:hover {
  background: rgb(186.6428571429, 34.3571428571, 34.3571428571);
}

/*------------------------------------------------------------------------------
  スタッフフォーム - 紹介文テキストエリア
------------------------------------------------------------------------------*/
.p-staff-form__intro-textarea {
  font-size: 13px;
  line-height: 1.6;
  resize: vertical;
}

.p-staff-form__char-count {
  color: #818181;
  font-size: 11px;
  margin: 4px 0 0;
  text-align: right;
}

/*------------------------------------------------------------------------------
  p-staff-shift (統合版シフト管理)
------------------------------------------------------------------------------*/
.p-staff-shift {
  padding: 24px 0 104px;
}

.p-staff-shift__enable-section {
  background: #fff;
  border: 1px solid #EDF2F3;
  border-radius: 8px;
  margin-bottom: 20px;
  padding: 16px;
}

.p-staff-shift__enable-row {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.p-staff-shift__enable-label {
  flex: 1;
}

.p-staff-shift__enable-title {
  color: #333;
  font-size: 14px;
  font-weight: 700;
}

.p-staff-shift__enable-desc {
  color: #6F6F6F;
  font-size: 12px;
  line-height: 1.6;
  margin: 10px 0 0;
}
.p-staff-shift__enable-desc--off {
  color: #4F4F4F;
}

.p-staff-shift__month-header {
  margin-bottom: 16px;
}

.p-staff-shift__month-nav {
  align-items: center;
  display: flex;
  justify-content: center;
  gap: 16px;
}

.p-staff-shift__month {
  color: #333;
  font-size: 16px;
  font-weight: 700;
  min-width: 100px;
  text-align: center;
}

.p-staff-shift__nav-btn {
  align-items: center;
  background: none;
  border: 1px solid #EDF2F3;
  border-radius: 4px;
  color: #4F4F4F;
  cursor: pointer;
  display: flex;
  justify-content: center;
  padding: 6px;
  transition: background 0.15s ease;
}
.p-staff-shift__nav-btn:hover {
  background: #F2F2F2;
}

.p-staff-shift__publish-section {
  background: #fff;
  border: 1px solid #EDF2F3;
  border-radius: 8px;
  margin-bottom: 16px;
  padding: 16px;
  text-align: center;
}
.p-staff-shift__publish-section--published {
  background: #F0F8F9;
  border-color: #ACD8DA;
}

.p-staff-shift__booking-toggle {
  display: flex;
  justify-content: center;
  margin: 12px 0 8px;
}
.p-staff-shift__booking-toggle .form-check {
  display: flex;
  align-items: center;
  gap: 8px;
}
.p-staff-shift__booking-toggle .form-check-label {
  font-size: 14px;
  font-weight: 700;
}

.p-staff-shift__publish-status {
  margin-bottom: 12px;
}

.p-staff-shift__status-badge {
  border-radius: 4px;
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 12px;
}
.p-staff-shift__status-badge--unpublished {
  background: #ECECEC;
  color: #4F4F4F;
}
.p-staff-shift__status-badge--published {
  background: #2F9EA3;
  color: #fff;
}

.p-staff-shift__publish-note {
  color: #6F6F6F;
  font-size: 12px;
  line-height: 1.6;
  margin: 0 0 16px;
}

.p-staff-shift__unpublish-link {
  background: none;
  border: 0;
  color: #6F6F6F;
  cursor: pointer;
  font-size: 12px;
  padding: 0;
  text-decoration: underline;
  transition: color 0.15s ease;
}
.p-staff-shift__unpublish-link:hover {
  color: #4F4F4F;
}

.p-staff-shift__calendar {
  background: #fff;
  border: 1px solid #EDF2F3;
  border-radius: 8px;
  margin-bottom: 16px;
  padding: 16px;
}

.p-staff-shift__calendar-grid {
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(7, 1fr);
}

.p-staff-shift__calendar-days {
  display: contents;
}

.p-staff-shift__weekday {
  color: #6F6F6F;
  font-size: 11px;
  font-weight: 500;
  padding: 4px 0;
  text-align: center;
}
.p-staff-shift__weekday.is-weekend {
  color: #ED6B5F;
}

.p-staff-shift__day {
  align-items: center;
  aspect-ratio: 1;
  border-radius: 4px;
  cursor: default;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2px;
  position: relative;
}
.p-staff-shift__day.is-outside {
  visibility: hidden;
}
.p-staff-shift__day.is-active {
  background: #EAF5F6;
  cursor: pointer;
  transition: background 0.15s ease;
}
.p-staff-shift__day.is-active:hover {
  background: #D5ECED;
}
.p-staff-shift__day.is-closed {
  background: #F2F2F2;
  color: #818181;
}
.p-staff-shift__day.is-holiday .p-staff-shift__day-num {
  color: #ED6B5F;
}

.p-staff-shift__day-num {
  color: #333;
  font-size: 13px;
  font-weight: 500;
}
.is-closed .p-staff-shift__day-num {
  color: #818181;
}

.p-staff-shift__staff-count {
  background: #2F9EA3;
  border-radius: 8px;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  padding: 2px 4px;
}

.p-staff-shift__legend {
  align-items: center;
  border-top: 1px solid #EDF2F3;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  margin-top: 16px;
  padding-top: 12px;
}

.p-staff-shift__legend-item {
  align-items: center;
  color: #6F6F6F;
  display: flex;
  font-size: 11px;
  gap: 6px;
}

.p-staff-shift__legend-dot {
  border-radius: 2px;
  height: 12px;
  width: 12px;
}
.p-staff-shift__legend-dot.is-active {
  background: #EAF5F6;
  border: 1px solid #ACD8DA;
}
.p-staff-shift__legend-dot.is-closed {
  background: #F2F2F2;
  border: 1px solid #ECECEC;
}

.p-staff-shift__legend-badge {
  background: #2F9EA3;
  border-radius: 8px;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 4px;
}

.p-staff-shift__note {
  color: #6F6F6F;
  font-size: 12px;
  line-height: 1.7;
}

/*------------------------------------------------------------------------------
  p-staff-shift-modal (日別シフト設定モーダル)
------------------------------------------------------------------------------*/
.p-staff-shift-modal__store-hours {
  background: #F0F8F9;
  border-radius: 4px;
  color: #4F4F4F;
  font-size: 12px;
  margin: 12px 0 16px;
  padding: 8px 12px;
  text-align: center;
}

.p-staff-shift-modal__list {
  display: grid;
  gap: 16px;
}

.p-staff-shift-modal__item {
  border-bottom: 1px solid #ECECEC;
  padding-bottom: 16px;
}
.p-staff-shift-modal__item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.p-staff-shift-modal__staff-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 10px;
}

.p-staff-shift-modal__staff-name {
  color: #333;
  font-size: 14px;
  font-weight: 700;
}

.p-staff-shift-modal__staff-meta {
  color: #6F6F6F;
  font-size: 11px;
}

.p-staff-shift-modal__controls {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.p-staff-shift-modal__toggle-wrap .form-check-label {
  font-size: 13px;
  min-width: 40px;
}

.p-staff-shift-modal__time {
  align-items: center;
  display: flex;
  gap: 8px;
}
.p-staff-shift-modal__time.is-hidden {
  display: none;
}
.p-staff-shift-modal__time span {
  color: #6F6F6F;
  font-size: 13px;
}
.p-staff-shift-modal__time .form-select {
  flex: 1;
  font-size: 12px;
  max-width: 120px;
  padding: 6px 28px 6px 10px;
}

.p-staff-shift-modal__note {
  background: #F0F8F9;
  border-radius: 4px;
  color: #6F6F6F;
  font-size: 11px;
  line-height: 1.6;
  margin-top: 16px;
  padding: 10px 12px;
  text-align: center;
}

.p-staff-shift-modal__buttons {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 24px;
}

/*------------------------------------------------------------------------------
  p-salon-public - サロン公開ページ（検索・SNSから来る一般公開ページ）
------------------------------------------------------------------------------*/
.p-salon-public {
  padding-bottom: 96px;
}

.p-salon-hero {
  background-color: #fff;
}

.p-salon-hero__cover {
  position: relative;
  height: 180px;
  margin: 0;
  overflow: hidden;
  background: linear-gradient(135deg, #C1E2E3 0%, #EAF5F6 100%);
}
@media screen and (max-width: 480px) {
  .p-salon-hero__cover {
    height: 148px;
  }
}
.p-salon-hero__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.p-salon-hero__body {
  position: relative;
  padding: 0 16px 20px;
  text-align: center;
}

.p-salon-hero__icon {
  width: 84px;
  height: 84px;
  margin: -42px auto 10px;
  border-radius: 50%;
  border: 3px solid #fff;
  overflow: hidden;
  background-color: #F2F2F2;
  box-shadow: 0px 2px 8px 0px rgba(3, 48, 50, 0.1);
}
.p-salon-hero__icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.p-salon-hero__name {
  font-size: 19px;
  font-weight: 700;
  color: #333;
  line-height: 1.4;
  margin-bottom: 6px;
}

.p-salon-hero__meta {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  font-size: 12px;
  color: #6F6F6F;
  margin-bottom: 10px;
}

.p-salon-hero__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.p-salon-hero__rating {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 13px;
  color: #4F4F4F;
}

.p-salon-hero__rating-score {
  font-size: 15px;
  font-weight: 700;
  color: #333;
}

.p-salon-hero__stars {
  display: inline-flex;
  gap: 1px;
  color: #F5B301;
  font-size: 13px;
  letter-spacing: 0.05em;
}

.p-salon-hero__rating-count {
  font-size: 11px;
  color: #818181;
}

.p-salon-section {
  background-color: #fff;
  margin-top: 10px;
  padding: 20px 16px;
}

.p-salon-section__heading {
  position: relative;
  padding-left: 12px;
  margin-bottom: 14px;
  font-size: 15px;
  font-weight: 700;
  color: #333;
  line-height: 1.4;
}
.p-salon-section__heading::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  bottom: 2px;
  width: 4px;
  border-radius: 2px;
  background-color: #2F9EA3;
}

.p-salon-section__text {
  font-size: 13px;
  line-height: 1.9;
  color: #4F4F4F;
  white-space: pre-line;
}

.p-salon-category {
  font-size: 13px;
  font-weight: 700;
  color: #2F9EA3;
  padding: 10px 0 8px;
  border-bottom: 1px solid #EDF2F3;
  margin-top: 20px;
  margin-bottom: 4px;
}
.p-salon-section__heading + .p-salon-category {
  margin-top: 0;
}

.p-salon-menu-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-salon-menu {
  display: flex;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid #EDF2F3;
}
.p-salon-menu:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.p-salon-menu__img {
  flex: none;
  width: 76px;
  height: 76px;
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
  background-color: #F2F2F2;
}
.p-salon-menu__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.p-salon-menu__body {
  flex: 1;
  min-width: 0;
}

.p-salon-menu__name {
  font-size: 14px;
  font-weight: 700;
  color: #333;
  line-height: 1.5;
  margin-bottom: 4px;
}

.p-salon-menu__info {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-bottom: 5px;
}

.p-salon-menu__time {
  font-size: 11px;
  color: #818181;
}

.p-salon-menu__price {
  font-size: 15px;
  font-weight: 700;
  color: #2F9EA3;
}

.p-salon-menu__price-note {
  font-size: 10px;
  font-weight: 400;
  color: #818181;
}

.p-salon-menu__text {
  font-size: 12px;
  line-height: 1.75;
  color: #6F6F6F;
}

.p-salon-review-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-salon-review {
  padding: 14px 0;
  border-bottom: 1px solid #EDF2F3;
}
.p-salon-review:first-child {
  padding-top: 0;
}
.p-salon-review:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.p-salon-review__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.p-salon-review__name {
  font-size: 12px;
  font-weight: 700;
  color: #4F4F4F;
}

.p-salon-review__date {
  font-size: 11px;
  color: #818181;
}

.p-salon-review__stars {
  color: #F5B301;
  font-size: 12px;
  letter-spacing: 0.05em;
  margin-bottom: 5px;
}

.p-salon-review__text {
  font-size: 13px;
  line-height: 1.8;
  color: #4F4F4F;
}

.p-salon-review__more {
  display: block;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #EDF2F3;
  text-align: center;
  font-size: 12px;
  color: #2F9EA3;
  text-decoration: none;
}

.p-salon-info {
  margin: 0;
  font-size: 13px;
}

.p-salon-info__row {
  display: flex;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #EDF2F3;
}
.p-salon-info__row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.p-salon-info__label {
  flex: none;
  width: 76px;
  font-size: 12px;
  font-weight: 700;
  color: #6F6F6F;
  line-height: 1.8;
}

.p-salon-info__value {
  flex: 1;
  min-width: 0;
  margin: 0;
  line-height: 1.8;
  color: #4F4F4F;
  white-space: pre-line;
}

.p-salon-info__note {
  display: block;
  font-size: 11px;
  color: #818181;
  margin-top: 2px;
}

.p-salon-cta {
  position: fixed;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 100%;
  max-width: 580px;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background-color: rgba(255, 255, 255, 0.96);
  border-top: 1px solid #EDF2F3;
  z-index: 10;
}

.p-salon-cta__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 50px;
  border-radius: 42px;
  background-color: #06C755;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0px 2px 10px 0px rgba(6, 199, 85, 0.24);
  transition: opacity 0.2s;
}
.p-salon-cta__btn:hover {
  opacity: 0.85;
  color: #fff;
}

.p-salon-cta__icon {
  width: 22px;
  height: 22px;
  flex: none;
}

.p-salon-cta__note {
  text-align: center;
  font-size: 10px;
  color: #818181;
  margin-top: 6px;
}

.p-salon-footer {
  margin-top: 10px;
  padding: 22px 16px 26px;
  background-color: #F0F8F9;
  text-align: center;
}

.p-salon-footer__lead {
  font-size: 12px;
  line-height: 1.8;
  color: #6F6F6F;
  margin-bottom: 12px;
}

.p-salon-footer__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  color: #2F9EA3;
  text-decoration: none;
  border: 1px solid #2F9EA3;
  border-radius: 42px;
  padding: 8px 18px;
  background-color: #fff;
  transition: opacity 0.2s;
}
.p-salon-footer__link:hover {
  opacity: 0.85;
}

.p-salon-footer__brand {
  display: block;
  margin-top: 14px;
  font-size: 10px;
  color: #818181;
  letter-spacing: 0.06em;
}
.p-salon-footer__brand a {
  color: #6F6F6F;
  text-decoration: none;
}

.p-salon-empty {
  padding: 18px 16px;
  border: 1px dashed #ECECEC;
  border-radius: 8px;
  text-align: center;
  font-size: 12px;
  line-height: 1.8;
  color: #818181;
  background-color: #F5FAFA;
}

/*------------------------------------------------------------------------------
  p-public-page-setting - サロン公開ページの設定画面
------------------------------------------------------------------------------*/
.p-public-setting__status {
  background-color: #F0F8F9;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 20px;
}

.p-public-setting__status-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.p-public-setting__status-head > div {
  margin-right: auto;
}

.p-public-setting__status-label {
  display: block;
  margin-bottom: 2px;
  font-size: 10px;
  color: #818181;
}

.p-public-setting__status-title {
  font-size: 14px;
  font-weight: 700;
  color: #333;
  margin: 0;
  margin-right: auto;
}

.p-public-setting__status-note {
  font-size: 11px;
  line-height: 1.7;
  color: #6F6F6F;
  margin: 0;
}

.p-public-setting__url {
  display: flex;
  align-items: stretch;
  gap: 8px;
  margin-bottom: 8px;
}

.p-public-setting__url-text {
  flex: 1;
  min-width: 0;
  background-color: #fff;
  border: 1px solid #EDF2F3;
  border-radius: 6px;
  padding: 9px 10px;
  font-size: 11px;
  color: #4F4F4F;
  overflow-x: auto;
  white-space: nowrap;
}

.p-public-setting__url-copy {
  flex: none;
  border: 1px solid #2F9EA3;
  border-radius: 6px;
  background-color: #fff;
  color: #2F9EA3;
  font-size: 11px;
  font-weight: 700;
  padding: 0 12px;
}

.p-public-setting__url-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 10px;
}

.p-public-setting__preview-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 6px 14px;
  border: 1px solid #2F9EA3;
  border-radius: 42px;
  background-color: #fff;
  color: #2F9EA3;
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
}

.p-public-setting__url-link {
  font-size: 11px;
  color: #2F9EA3;
  text-decoration: none;
}

.p-public-setting__meter {
  border: 1px solid #EDF2F3;
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 20px;
}

.p-public-setting__meter-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
}

.p-public-setting__meter-title {
  font-size: 13px;
  font-weight: 700;
  color: #333;
  margin: 0;
  margin-right: auto;
}

.p-public-setting__meter-count {
  font-size: 12px;
  font-weight: 700;
  color: #2F9EA3;
}

.p-public-setting__meter-bar {
  height: 6px;
  border-radius: 3px;
  background-color: #ECECEC;
  overflow: hidden;
  margin-bottom: 10px;
}

.p-public-setting__meter-fill {
  height: 100%;
  border-radius: 3px;
  background-color: #2F9EA3;
}

.p-public-setting__meter-todo {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 11px;
  color: #6F6F6F;
}

.p-public-setting__meter-todo li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-top: 1px solid #EDF2F3;
  line-height: 1.6;
}
.p-public-setting__meter-todo li:first-child {
  border-top: none;
}
.p-public-setting__meter-todo li span {
  flex: 1;
}
.p-public-setting__meter-todo li strong {
  color: #4F4F4F;
}
.p-public-setting__meter-todo li a {
  flex: none;
  color: #2F9EA3;
  font-weight: 700;
  text-decoration: none;
}

.p-public-setting__auto {
  border: 1px solid #EDF2F3;
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 24px;
}

.p-public-setting__auto-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  list-style: none;
}
.p-public-setting__auto-summary::-webkit-details-marker {
  display: none;
}
.p-public-setting__auto-summary > span:first-child {
  flex: 1;
  min-width: 0;
}

.p-public-setting__auto-chevron {
  width: 9px;
  height: 9px;
  border-right: 1px solid #6F6F6F;
  border-bottom: 1px solid #6F6F6F;
  transform: rotate(45deg);
  transition: transform 0.2s;
}

.p-public-setting__auto[open] .p-public-setting__auto-chevron {
  transform: rotate(225deg);
}

.p-public-setting__auto-body {
  padding-top: 10px;
}

.p-public-setting__auto-title {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #333;
  margin-bottom: 4px;
}

.p-public-setting__auto-note {
  display: block;
  font-size: 11px;
  line-height: 1.7;
  color: #6F6F6F;
  margin-top: 2px;
}

.p-public-setting__auto-description {
  margin-bottom: 10px;
  font-size: 11px;
  line-height: 1.7;
  color: #6F6F6F;
}

.p-public-setting__auto-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-public-setting__auto-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-top: 1px solid #EDF2F3;
  font-size: 12px;
  color: #4F4F4F;
}

.p-public-setting__auto-name {
  margin-right: auto;
}

.p-public-setting__auto-value {
  font-size: 11px;
  color: #818181;
}

.p-public-setting__auto-link {
  font-size: 11px;
  color: #2F9EA3;
  text-decoration: none;
  flex: none;
}

.p-public-setting__section {
  margin-bottom: 16px;
  padding: 16px;
  border: 1px solid #EDF2F3;
  border-radius: 12px;
  background-color: #fff;
}

.p-public-setting__section-head {
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid #EDF2F3;
}
.p-public-setting__section-head p {
  margin: 4px 0 0;
  font-size: 11px;
  line-height: 1.7;
  color: #6F6F6F;
}

.p-public-setting__section-title {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  color: #333;
}

.p-public-setting__cover-upload {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 132px;
  padding: 20px;
  border: 1px dashed #82C5C8;
  border-radius: 8px;
  background-color: #F5FAFA;
  color: #2F9EA3;
  cursor: pointer;
}

.p-public-setting__file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.p-public-setting__file-input:focus-visible + .p-public-setting__cover-upload,
.p-public-setting__file-input:focus-visible + .p-public-setting__cover-actions .p-public-setting__cover-change {
  outline: 2px solid #2F9EA3;
  outline-offset: 2px;
}

.p-public-setting__cover-plus {
  position: relative;
  flex: none;
  width: 42px;
  height: 42px;
  border: 2px solid #82C5C8;
  border-radius: 50%;
}
.p-public-setting__cover-plus::before, .p-public-setting__cover-plus::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 2px;
  border-radius: 1px;
  background-color: #2F9EA3;
  transform: translate(-50%, -50%);
}
.p-public-setting__cover-plus::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.p-public-setting__cover-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.p-public-setting__cover-copy strong {
  font-size: 13px;
}
.p-public-setting__cover-copy small {
  font-size: 10px;
  color: #818181;
}

.p-public-setting__toggle-row {
  padding: 2px 0;
}

.p-public-setting__save {
  position: fixed;
  z-index: 5;
  left: 50%;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  max-width: 580px;
  margin: 0;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  border-top: 1px solid #EDF2F3;
  background-color: rgba(255, 255, 255, 0.96);
  transform: translateX(-50%);
}
.p-public-setting__save p {
  flex: 1;
  margin: 0;
  font-size: 10px;
  line-height: 1.5;
  color: #818181;
}
.p-public-setting__save .p-form__submit {
  flex: none;
  margin: 0;
}
.p-public-setting__save .c-btn {
  width: 150px;
}

.p-public-setting__section:last-of-type {
  margin-bottom: 84px;
}

@media screen and (max-width: 369px) {
  .p-public-setting__save p {
    display: none;
  }
  .p-public-setting__save .p-form__submit,
  .p-public-setting__save .c-btn {
    width: 100%;
    max-width: none;
  }
}
.p-public-setting__checks {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.p-public-setting__check {
  position: relative;
}

.p-public-setting__check input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.p-public-setting__check span {
  display: inline-block;
  border: 1px solid #ECECEC;
  border-radius: 42px;
  padding: 7px 14px;
  font-size: 12px;
  color: #6F6F6F;
  background-color: #fff;
  cursor: pointer;
}

.p-public-setting__check input:checked + span {
  border-color: #2F9EA3;
  background-color: #EAF5F6;
  color: #2F9EA3;
  font-weight: 700;
}

.p-public-setting__check input:focus-visible + span {
  outline: 2px solid #2F9EA3;
  outline-offset: 2px;
}

.p-public-setting__optional {
  font-size: 10px;
  font-weight: 400;
  color: #818181;
  margin-left: 6px;
}

/*------------------------------------------------------------------------------
  u-color
------------------------------------------------------------------------------*/
.u-black-color {
  color: #333;
}

.u-black-color2 {
  color: #4F4F4F;
}

.u-primary-color {
  color: #2F9EA3 !important;
}

.u-coral-color {
  color: #ED6B5F !important;
}

/*------------------------------------------------------------------------------
  u-bgc
------------------------------------------------------------------------------*/
.u-bgc-white {
  background-color: #fff !important;
}

.u-bgc-primary-color4pct {
  background-color: #F7FBFB !important;
}

/*------------------------------------------------------------------------------
  u-borderC
------------------------------------------------------------------------------*/
.u-borderC-main {
  border-color: #EDF2F3 !important;
}

/*------------------------------------------------------------------------------
  u-fz
------------------------------------------------------------------------------*/
.u-fz17 {
  font-size: 17px !important;
}

.u-fz16 {
  font-size: 16px !important;
}

.u-fz15 {
  font-size: 15px !important;
}

.u-fz14 {
  font-size: 14px !important;
}

.u-fz13 {
  font-size: 13px !important;
}

.u-fz12 {
  font-size: 12px !important;
}

.u-fz11 {
  font-size: 11px !important;
}

.u-fz10 {
  font-size: 10px !important;
}

/*------------------------------------------------------------------------------
  u-fw
------------------------------------------------------------------------------*/
.u-fw-bold {
  font-weight: bold !important;
}

.u-fw-semibold {
  font-weight: 600 !important;
}

.u-fw-medium {
  font-weight: 500 !important;
}

.u-fw-normal {
  font-weight: 400 !important;
}

/*------------------------------------------------------------------------------
  u-text-align
------------------------------------------------------------------------------*/
.u-text-align-left {
  text-align: left !important;
}

.u-text-align-center {
  text-align: center !important;
}

.u-text-align-right {
  text-align: right !important;
}

/*------------------------------------------------------------------------------
  u-td
------------------------------------------------------------------------------*/
.u-td-underline {
  text-decoration: underline;
}

/*------------------------------------------------------------------------------
  u-border-bottom
------------------------------------------------------------------------------*/
.u-border-bottom-1 {
  border-bottom: 1px solid;
}

/*------------------------------------------------------------------------------
  margin
------------------------------------------------------------------------------*/
.u-mt-0 {
  margin-top: 0 !important;
}

.u-mt-space-1 {
  margin-top: 1px !important;
}

.u-mt-space-2 {
  margin-top: 2px !important;
}

.u-mt-space-3 {
  margin-top: 3px !important;
}

.u-mt-space-4 {
  margin-top: 4px !important;
}

.u-mt-1 {
  margin-top: 8px !important;
}

.u-mt-2 {
  margin-top: 16px !important;
}

.u-mt-3 {
  margin-top: 24px !important;
}

.u-mt-4 {
  margin-top: 32px !important;
}

.u-mt-5 {
  margin-top: 40px !important;
}

.u-mt-6 {
  margin-top: 48px !important;
}

.u-mt-7 {
  margin-top: 56px !important;
}

.u-mb-0 {
  margin-bottom: 0 !important;
}

.u-mb-space-2 {
  margin-bottom: 2px !important;
}

.u-mb-space-3 {
  margin-bottom: 3px !important;
}

.u-mb-space-4 {
  margin-bottom: 4px !important;
}

.u-mb-05 {
  margin-bottom: 4px !important;
}

.u-mb-1 {
  margin-bottom: 8px !important;
}

.u-mb-2 {
  margin-bottom: 16px !important;
}

.u-mb-3 {
  margin-bottom: 24px !important;
}

.u-mb-4 {
  margin-bottom: 32px !important;
}

.u-mb-5 {
  margin-bottom: 40px !important;
}

.u-mb-6 {
  margin-bottom: 48px !important;
}

.u-mb-7 {
  margin-bottom: 56px !important;
}

.u-my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.u-mb-space-1 {
  margin-bottom: 1px !important;
}

.u-my-1 {
  margin-top: 8px !important;
  margin-bottom: 8px !important;
}

.u-my-2 {
  margin-top: 16px !important;
  margin-bottom: 16px !important;
}

.u-my-3 {
  margin-top: 24px !important;
  margin-bottom: 24px !important;
}

.u-my-4 {
  margin-top: 32px !important;
  margin-bottom: 32px !important;
}

.u-my-5 {
  margin-top: 40px !important;
  margin-bottom: 40px !important;
}

.u-my-6 {
  margin-top: 48px !important;
  margin-bottom: 48px !important;
}

.u-my-7 {
  margin-top: 56px !important;
  margin-bottom: 56px !important;
}

.u-ml-1 {
  margin-left: 8px !important;
}

.u-ml-2 {
  margin-left: 16px !important;
}

.u-ml-3 {
  margin-left: 24px !important;
}

.u-ml-05 {
  margin-left: 4px !important;
}

.u-mr-1 {
  margin-right: 8px !important;
}

.u-mr-2 {
  margin-right: 16px !important;
}

.u-mr-3 {
  margin-right: 24px !important;
}

.u-mr-4 {
  margin-right: 32px !important;
}

.u-mr-5 {
  margin-right: 40px !important;
}

.u-m-space-4 {
  margin: 4px !important;
}

.u-m-1 {
  margin: 8px !important;
}

.u-m-2 {
  margin: 16px !important;
}

.u-mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.u-ml-auto {
  margin-left: auto !important;
}

.u-mr-auto {
  margin-right: auto !important;
}

/*------------------------------------------------------------------------------
  padding
------------------------------------------------------------------------------*/
.u-pt-0 {
  padding-top: 0 !important;
}

.u-pt-1 {
  padding-top: 8px !important;
}

.u-pt-2 {
  padding-top: 16px !important;
}

.u-pt-3 {
  padding-top: 24px !important;
}

.u-pt-4 {
  padding-top: 32px !important;
}

.u-pt-5 {
  padding-top: 40px !important;
}

.u-pt-6 {
  padding-top: 48px !important;
}

.u-pt-7 {
  padding-top: 56px !important;
}

.u-pb-0 {
  padding-bottom: 0 !important;
}

.u-pb-1 {
  padding-bottom: 8px !important;
}

.u-pb-2 {
  padding-bottom: 16px !important;
}

.u-pb-3 {
  padding-bottom: 24px !important;
}

.u-pb-4 {
  padding-bottom: 32px !important;
}

.u-pb-5 {
  padding-bottom: 40px !important;
}

.u-pb-6 {
  padding-bottom: 48px !important;
}

.u-pb-7 {
  padding-bottom: 56px !important;
}

.u-pb-8 {
  padding-bottom: 64px !important;
}

.u-pb-9 {
  padding-bottom: 72px !important;
}

.u-pb-10 {
  padding-bottom: 80px !important;
}

.u-pb-11 {
  padding-bottom: 88px !important;
}

.u-py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.u-py-1 {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

.u-py-2 {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}

.u-py-3 {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}

.u-py-4 {
  padding-top: 32px !important;
  padding-bottom: 32px !important;
}

.u-py-5 {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

.u-py-6 {
  padding-top: 48px !important;
  padding-bottom: 48px !important;
}

.u-py-7 {
  padding-top: 56px !important;
  padding-bottom: 56px !important;
}

.u-pl-space-4 {
  padding-left: 4px !important;
}

.u-pl-1 {
  padding-left: 8px !important;
}

.u-pl-2 {
  padding-left: 16px !important;
}

.u-pl-3 {
  padding-left: 24px !important;
}

.u-pr-1 {
  padding-right: 8px !important;
}

.u-pr-2 {
  padding-right: 16px !important;
}

.u-px-3 {
  padding-left: 24px !important;
  padding-right: 24px !important;
}

.u-p-0 {
  padding: 0 !important;
}

.u-p-1 {
  padding: 8px !important;
}

.u-p-2 {
  padding: 16px !important;
}

/*------------------------------------------------------------------------------
  u-flex
------------------------------------------------------------------------------*/
.u-flex {
  display: flex !important;
}

.u-justify-content-star {
  justify-content: start !important;
}

.u-justify-content-end {
  justify-content: end !important;
}

.u-justify-content-between {
  justify-content: space-between !important;
}

.u-justify-content-center {
  justify-content: center !important;
}

.u-gap-1 {
  gap: 8px !important;
}

.u-gap-2 {
  gap: 16px !important;
}

.u-align-items-start {
  align-items: start !important;
}

.u-align-items-flex-start {
  align-self: flex-start !important;
}

.u-align-items-end {
  align-items: end !important;
}

.u-align-items-center {
  align-items: center !important;
}

.u-align-self-start {
  align-self: start !important;
}

.u-align-self-end {
  align-self: end !important;
}

.u-align-self-center {
  align-self: center !important;
}

.u-align-self-strech {
  align-self: stretch !important;
}

.u-align-self-flex-end {
  align-self: flex-end !important;
}

.u-flex-grow-1 {
  flex-grow: 1 !important;
}

.u-flex-shrink-0 {
  flex-shrink: 0 !important;
}
