:root {
  --lp-bg: #f7f7f4;
  --lp-surface: rgba(255, 255, 255, 0.94);
  --lp-surface-solid: #ffffff;
  --lp-surface-soft: #f1f3ed;
  --lp-border: #deded8;
  --lp-border-strong: #c9cbc2;
  --lp-text: #171717;
  --lp-text-sub: #4c4c48;
  --lp-text-muted: #878880;
  --lp-green: #6a9e28;
  --lp-green-bright: #8cc63f;
  --lp-gold: #b8860b;
  --lp-blue: #2563eb;
  --lp-red: #d93025;
  --lp-radius: 8px;
  --lp-shadow: 0 18px 50px rgba(24, 28, 20, 0.08);
}

.site-mini-nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 20px;
  background:#111;
  color:#fff;
  position:relative;
  z-index:20;
}
.site-mini-nav a {
  color:#fff;
  text-decoration:none;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.06em;
}
.site-mini-nav__brand {
  color:#8CC63F !important;
}
.site-mini-nav__links {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.site-mini-footer {
  padding:22px 20px 28px;
  background:#111;
  color:rgba(255,255,255,0.72);
  text-align:center;
  font-size:12px;
  position:relative;
  z-index:20;
}
.site-mini-footer a {
  color:#fff;
  text-decoration:none;
  margin:0 8px;
}
.spam-warning {
  display:none;
  margin:0 0 22px;
  padding:14px 16px;
  border:1px solid rgba(217,48,37,0.25);
  border-radius:8px;
  background:rgba(217,48,37,0.06);
  color:#d93025;
  font-size:13px;
  line-height:1.7;
}
.spam-warning.on {
  display:block;
}

@media (max-width: 560px) {
  .site-mini-nav {
    align-items:flex-start;
    flex-direction:column;
  }
  .site-mini-nav__links {
    justify-content:flex-start;
  }
}

html {
  background: var(--lp-bg);
}

body {
  background:
    radial-gradient(circle at 50% -160px, rgba(140, 198, 63, 0.12), transparent 380px),
    var(--lp-bg) !important;
  color: var(--lp-text) !important;
  letter-spacing: 0;
}

body::before {
  opacity: 0.08 !important;
}

.wrap,
.form-wrap {
  width: min(100%, 680px) !important;
  margin: 0 auto !important;
  background: var(--lp-surface) !important;
  box-shadow: var(--lp-shadow) !important;
  position: relative;
  z-index: 1;
}

.header,
.form-header,
.fh {
  background: rgba(255, 255, 255, 0.96) !important;
  border-bottom: 1px solid var(--lp-border) !important;
  color: var(--lp-text) !important;
  padding: 30px 28px 26px !important;
  text-align: center !important;
}

.form-header__bg {
  filter: none !important;
  opacity: 0.16 !important;
}

.form-header__overlay {
  background: rgba(255, 255, 255, 0.82) !important;
}

.form-header__inner {
  padding: 0 !important;
}

.header-badge,
.form-header-badge,
.form-header-label,
.header-label,
.fh-label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  width: auto !important;
  margin: 0 auto 12px !important;
  padding: 5px 15px !important;
  border: 1px solid rgba(106, 158, 40, 0.22) !important;
  border-radius: 999px !important;
  background: rgba(106, 158, 40, 0.08) !important;
  color: var(--lp-green) !important;
  font-family: 'Bebas Neue', 'Noto Sans JP', sans-serif !important;
  font-size: 11px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.22em !important;
  text-align: center !important;
}

.header-label::after {
  display: none !important;
}

.header h1,
.form-header h1,
.fh h1 {
  margin: 0 !important;
  color: var(--lp-text) !important;
  font-size: 25px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.02em !important;
}

.header h1 span,
.form-header h1 span,
.fh h1 span {
  color: var(--lp-green) !important;
}

.header p,
.form-header p,
.fh p {
  margin-top: 9px !important;
  color: var(--lp-text-muted) !important;
  font-size: 13px !important;
  line-height: 1.75 !important;
}

.body,
.form-body,
.form-inner {
  padding: 32px 28px 80px !important;
  background: transparent !important;
}

.form-inner {
  max-width: 680px !important;
}

.sec-label,
.section-title,
.plan-label,
.auth-panel__title,
.mode-select__title,
.confirm-section-title,
.event-card__label {
  margin: 30px 0 18px !important;
  padding: 0 0 0 11px !important;
  border: 0 !important;
  border-left: 3px solid var(--lp-green) !important;
  color: var(--lp-text-muted) !important;
  font-family: 'Bebas Neue', 'Noto Sans JP', sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.24em !important;
}

.sec-label:first-child,
.section-title:first-child,
.plan-label:first-child {
  margin-top: 0 !important;
}

.field {
  margin-bottom: 20px !important;
}

.field label,
.update-search label,
.upload-slot-label,
.photo-slot-label {
  display: block !important;
  margin-bottom: 7px !important;
  color: var(--lp-text-sub) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.02em !important;
}

.req,
.field label .req {
  color: var(--lp-red) !important;
  margin-left: 4px !important;
  font-size: 11px !important;
}

.field-note {
  margin-top: 6px !important;
  color: var(--lp-text-muted) !important;
  font-size: 11px !important;
  line-height: 1.65 !important;
  letter-spacing: 0 !important;
}

.field-error {
  color: var(--lp-red) !important;
  font-size: 11px !important;
}

input[type='text'],
input[type='email'],
input[type='tel'],
input[type='url'],
input[type='number'],
input[type='date'],
input[type='password'],
select,
textarea,
.time-sel,
.genre-add-input,
.part-free-input,
.ev-search-input,
.pw-wrap input,
.update-search input,
.pro-code-wrap input {
  width: 100% !important;
  min-height: 45px !important;
  padding: 11px 14px !important;
  border: 1px solid var(--lp-border-strong) !important;
  border-radius: var(--lp-radius) !important;
  background-color: #fff !important;
  color: var(--lp-text) !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  line-height: 1.5 !important;
  box-shadow: none !important;
  outline: none !important;
  transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s !important;
}

textarea {
  min-height: 110px !important;
  line-height: 1.75 !important;
  resize: vertical !important;
}

select {
  cursor: pointer !important;
}

input:focus,
select:focus,
textarea:focus,
.time-sel:focus,
.genre-add-input:focus,
.part-free-input:focus,
.ev-search-input:focus,
.pw-wrap input:focus,
.update-search input:focus,
.pro-code-wrap input:focus {
  border-color: var(--lp-green) !important;
  box-shadow: 0 0 0 3px rgba(106, 158, 40, 0.12) !important;
}

input:disabled,
select:disabled,
textarea:disabled {
  background: #f4f4f1 !important;
  color: var(--lp-text-muted) !important;
}

.field-row,
.field-row-3,
.sub-grid,
.sns-row,
.link-row,
.performer-name-row {
  gap: 12px !important;
}

.notice,
.event-card,
.claim-box,
.ticket-panel,
.summary-box,
.update-search,
.work-item,
.pro-section,
.auth-panel,
.mode-select,
.plan-future-note,
.upload-notice {
  border: 1px solid rgba(106, 158, 40, 0.16) !important;
  border-radius: var(--lp-radius) !important;
  background: var(--lp-surface-soft) !important;
  color: var(--lp-text-sub) !important;
  box-shadow: none !important;
}

.tag,
.genre-tag,
.cond-tag,
.part-tag,
.role-card,
.type-tab,
.mode-btn,
.plan-card,
.edit-sec-check,
.ptab,
.ctag,
.genre-btn,
.main-tab {
  border-color: var(--lp-border) !important;
  border-radius: var(--lp-radius) !important;
  background: #fff !important;
  color: var(--lp-text-sub) !important;
  transition: border-color 0.2s, background-color 0.2s, color 0.2s !important;
}

.tag:hover,
.genre-tag:hover,
.cond-tag:hover,
.part-tag:hover,
.role-card:hover,
.type-tab:hover,
.mode-btn:hover,
.plan-card:hover,
.edit-sec-check:hover,
.ptab:hover,
.ctag:hover,
.genre-btn:hover,
.main-tab:hover {
  border-color: var(--lp-green) !important;
  color: var(--lp-green) !important;
}

.tag.sel,
.genre-tag.sel,
.cond-tag.sel,
.part-tag.sel,
.role-card.sel,
.type-tab.sel,
.mode-btn.active,
.mode-btn.sel,
.plan-card.sel,
.edit-sec-check.sel,
.ptab.sel,
.ctag.sel,
.genre-btn.sel,
.main-tab.active {
  border-color: var(--lp-green) !important;
  background: rgba(106, 158, 40, 0.08) !important;
  color: var(--lp-green) !important;
  font-weight: 500 !important;
}

.photo-slot,
.photo-main,
.file-upload,
.file-drop,
.artist-photo-preview,
.performer-photo-preview {
  border-color: var(--lp-border-strong) !important;
  border-radius: var(--lp-radius) !important;
  background: #f7f8f3 !important;
}

.photo-slot:hover,
.photo-main:hover,
.file-upload:hover,
.file-drop:hover,
.artist-photo-preview:hover,
.performer-photo-preview:hover {
  border-color: var(--lp-green) !important;
  background: rgba(106, 158, 40, 0.05) !important;
}

.btn,
.submit-btn,
.auth-btn,
.claim-btn,
.confirm-submit,
.confirm-back,
.cropper-apply,
.cropper-cancel,
.sns-add-btn,
.genre-add-btn,
.performer-add-btn,
.add-btn,
.edit-load-btn,
.ev-search-btn,
.update-search-btn,
.pro-btn,
.pro-list-btn,
.form-nav__back,
button {
  border-radius: var(--lp-radius) !important;
  font-family: 'Noto Sans JP', sans-serif !important;
}

.btn-primary,
.submit-btn,
.auth-btn,
.claim-btn,
.confirm-submit,
.cropper-apply,
.edit-load-btn,
.ev-search-btn,
.btn-gold,
.pro-btn--code {
  border: none !important;
  background: var(--lp-green) !important;
  color: #fff !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}

.btn-primary:hover,
.submit-btn:hover,
.auth-btn:hover,
.claim-btn:hover,
.confirm-submit:hover,
.cropper-apply:hover,
.edit-load-btn:hover,
.ev-search-btn:hover,
.btn-gold:hover,
.pro-btn--code:hover {
  background: #558020 !important;
  opacity: 1 !important;
}

.btn-ghost,
.btn-secondary,
.confirm-back,
.cropper-cancel,
.sns-add-btn,
.genre-add-btn,
.performer-add-btn,
.add-btn,
.update-search-btn,
.btn-back,
.pro-btn--self,
.pro-btn--cancel,
.pro-list-btn {
  border: 1px solid var(--lp-border-strong) !important;
  background: #fff !important;
  color: var(--lp-text-sub) !important;
}

.btn-ghost:hover,
.btn-secondary:hover,
.confirm-back:hover,
.cropper-cancel:hover,
.sns-add-btn:hover,
.genre-add-btn:hover,
.performer-add-btn:hover,
.add-btn:hover,
.update-search-btn:hover,
.btn-back:hover,
.pro-btn--self:hover,
.pro-btn--cancel:hover,
.pro-list-btn:hover {
  border-color: var(--lp-green) !important;
  background: rgba(106, 158, 40, 0.06) !important;
  color: var(--lp-green) !important;
}

.btn-row,
.nav,
.confirm-btns,
.cropper-btns,
.pro-btns {
  gap: 10px !important;
}

.ps-tab,
.progress-step-item,
.prog-step {
  color: var(--lp-text-muted) !important;
  border-color: transparent !important;
}

.ps-tab.active,
.progress-step-item.active,
.prog-step.active {
  color: var(--lp-green) !important;
  border-color: var(--lp-green) !important;
}

.ps-tab.done,
.progress-step-item.done,
.prog-step.done {
  color: var(--lp-green) !important;
  border-color: rgba(106, 158, 40, 0.45) !important;
}

#progressBar .progress-step {
  background: var(--lp-border) !important;
}

#progressBar .progress-step.active {
  background: var(--lp-green) !important;
}

#progressBar .progress-step.done {
  background: rgba(106, 158, 40, 0.45) !important;
}

.done-title,
.lock-title,
.confirm-box h3 {
  color: var(--lp-green) !important;
}

.sending-bar,
.submitting-bar,
.ov-bar {
  background: var(--lp-green) !important;
}

.spinner,
.sending-spinner {
  border-top-color: var(--lp-green) !important;
}

@media (max-width: 700px) {
  body {
    background: var(--lp-bg) !important;
  }

  .wrap,
  .form-wrap {
    width: 100% !important;
    box-shadow: none !important;
  }

  .header,
  .form-header,
  .fh {
    padding: 26px 20px 22px !important;
  }

  .body,
  .form-body,
  .form-inner {
    padding: 28px 20px 64px !important;
  }

  .header h1,
  .form-header h1,
  .fh h1 {
    font-size: 22px !important;
  }

  .header-badge,
  .form-header-badge,
  .form-header-label,
  .header-label,
  .fh-label {
    letter-spacing: 0.16em !important;
  }
}

@media (max-width: 520px) {
  .field-row,
  .field-row-3,
  .sub-grid,
  .sns-row,
  .link-row,
  .performer-name-row,
  .plan-grid,
  .mode-btns {
    grid-template-columns: 1fr !important;
  }

  .btn-row,
  .nav,
  .confirm-btns,
  .cropper-btns {
    flex-direction: column !important;
  }

  .btn,
  .submit-btn,
  .auth-btn,
  .claim-btn,
  .confirm-submit,
  .confirm-back {
    width: 100% !important;
  }
}

/* Final form asset normalization.
   Keep every standalone form feeling like the same product, even when a page has older inline CSS. */
:root {
  --lp-control-height: 52px;
  --lp-control-radius: 8px;
  --lp-control-border: #cfd1c8;
  --lp-control-pad-x: 16px;
}

input[type='text'],
input[type='email'],
input[type='tel'],
input[type='url'],
input[type='number'],
input[type='date'],
input[type='time'],
input[type='password'],
input[type='search'],
select,
.time-sel,
.genre-add-input,
.part-free-input,
.ev-search-input,
.pw-wrap input,
.update-search input,
.pro-code-wrap input,
.contact-row input,
.contact-row select,
.sns-row input,
.sns-row select,
.performer-card input[type='text'],
.performer-card input[type='email'],
.performer-card input[type='url'],
.performer-card select,
.slot-row input,
.lpe-field input,
.lpe-field select {
  width: 100% !important;
  height: var(--lp-control-height) !important;
  min-height: var(--lp-control-height) !important;
  max-height: var(--lp-control-height) !important;
  box-sizing: border-box !important;
  padding: 0 var(--lp-control-pad-x) !important;
  border: 1px solid var(--lp-control-border) !important;
  border-radius: var(--lp-control-radius) !important;
  background-color: #fff !important;
  color: var(--lp-text) !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: normal !important;
  box-shadow: none !important;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

select,
.time-sel,
.contact-row select,
.sns-row select {
  padding-right: 42px !important;
  cursor: pointer !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5L7 7l5.5-5.5' stroke='%23878880' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 15px center !important;
  background-size: 14px 9px !important;
}

input[type='time']::-webkit-calendar-picker-indicator,
input[type='date']::-webkit-calendar-picker-indicator {
  opacity: 0.55 !important;
  cursor: pointer !important;
}

textarea,
.field textarea,
.performer-card textarea,
.slot-row textarea {
  width: 100% !important;
  box-sizing: border-box !important;
  min-height: 118px !important;
  padding: 15px var(--lp-control-pad-x) !important;
  border: 1px solid var(--lp-control-border) !important;
  border-radius: var(--lp-control-radius) !important;
  background-color: #fff !important;
  color: var(--lp-text) !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  box-shadow: none !important;
  outline: none !important;
  resize: vertical !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

input[type='file'] {
  width: 100% !important;
  min-height: var(--lp-control-height) !important;
  box-sizing: border-box !important;
  padding: 10px 14px !important;
  border: 1px solid var(--lp-control-border) !important;
  border-radius: var(--lp-control-radius) !important;
  background: #fff !important;
  color: var(--lp-text) !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}

input[type='file']::file-selector-button {
  margin-right: 12px !important;
  padding: 8px 14px !important;
  border: 1px solid var(--lp-border-strong) !important;
  border-radius: 7px !important;
  background: #fff !important;
  color: var(--lp-text) !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}

input:focus,
select:focus,
textarea:focus,
.time-sel:focus,
.genre-add-input:focus,
.part-free-input:focus,
.ev-search-input:focus,
.pw-wrap input:focus,
.update-search input:focus,
.pro-code-wrap input:focus,
.contact-row input:focus,
.contact-row select:focus,
.sns-row input:focus,
.sns-row select:focus,
.performer-card input:focus,
.performer-card select:focus {
  border-color: var(--lp-green) !important;
  box-shadow: 0 0 0 3px rgba(106, 158, 40, 0.12) !important;
}

.time-row,
.time-pair,
.field-row,
.field-row-3,
.sub-grid,
.sns-row,
.link-row,
.performer-name-row,
.contact-row {
  gap: 12px !important;
  align-items: start !important;
}

.time-pair,
.time-row .time-pair {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
}

.time-sel {
  text-align: center !important;
  font-size: 15px !important;
}

.file-upload,
.file-drop,
.photo-slot,
.photo-main,
.artist-photo-preview,
.performer-photo-preview {
  border-width: 1px !important;
  border-color: var(--lp-control-border) !important;
  border-radius: var(--lp-control-radius) !important;
}

.performer-card,
.work-item,
.event-card,
.ticket-panel,
.summary-box,
.update-search,
.auth-panel,
.mode-select {
  border-radius: var(--lp-control-radius) !important;
}

@media (max-width: 520px) {
  input[type='text'],
  input[type='email'],
  input[type='tel'],
  input[type='url'],
  input[type='number'],
  input[type='date'],
  input[type='time'],
  input[type='password'],
  input[type='search'],
  select,
  .time-sel {
    font-size: 16px !important;
  }
}
