@charset "UTF-8";
/*
 * LUCUA キャラクターズワールド 入場整理券LP / 2026-10-28改訂PC・SPデザイン
 * Root: .lp-characters / Fonts: Noto Sans JP 2.004-H2, Montserrat 9.000
 * 支給共通領域には適用せず、main内のLPだけに適用する。
 */
@font-face {
  font-family: "lp-characters-noto-sans-jp";
  src: url("../fonts/noto-sans-jp.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: "lp-characters-montserrat";
  src: url("../fonts/montserrat.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
/* LP内だけでサイズ計算を統一し、共通ヘッダー・フッターには適用しない。 */
.lp-characters,
.lp-characters::before,
.lp-characters::after,
.lp-characters *,
.lp-characters *::before,
.lp-characters *::after { box-sizing: border-box; }

.lp-characters {
  --lp-characters-scale: 1;
  --lp-characters-font-jp: "lp-characters-noto-sans-jp", sans-serif;
  --lp-characters-font-en: "lp-characters-montserrat", "lp-characters-noto-sans-jp", sans-serif;
  --lp-characters-accent: #e45926;
  --lp-characters-flow: #ee802b;
  --lp-characters-light: #fb9f39;
  --lp-characters-paper: #fdf4f1;
  --lp-characters-text: #2c2c2c;
  --lp-characters-white: #fff;
  --lp-characters-blue: #8db5f1;
  --lp-characters-pink: #ffa482;
  margin-inline: calc(-1 * var(--layout-page-gutter));
  background: var(--lp-characters-paper);
  color: var(--lp-characters-text);
  font-family: var(--lp-characters-font-jp);
  font-size: calc(0.875rem * var(--lp-characters-scale));
  font-weight: 500;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  letter-spacing: -0.01em;
  line-height: 1.7142857;
  overflow-wrap: anywhere;
}
.lp-characters :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, details) { margin: 0; }
.lp-characters :where(a, button, summary):focus-visible { outline: 3px solid #2c2c2c; outline-offset: 4px; }
.lp-characters :where([id]) { scroll-margin-block-start: 170px; }
.lp-characters-content { width: 100%; margin-inline: auto; background: var(--lp-characters-paper); }
.lp-characters-inner { width: calc(100% - 40px); max-width: 1000px; margin-inline: auto; }
.lp-characters-brand, .lp-characters-sidenav { display: none; }
.lp-characters-notice {
  padding: calc(12px * var(--lp-characters-scale)) 10px calc(19px * var(--lp-characters-scale));
  background: var(--lp-characters-accent);
  color: var(--lp-characters-white);
  font-size: calc(1rem * var(--lp-characters-scale));
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}
.lp-characters-notice span { display: block; font-size: calc(1rem * var(--lp-characters-scale)); }
.lp-characters-intro { padding-block: calc(27px * var(--lp-characters-scale)) calc(48px * var(--lp-characters-scale)); }
.lp-characters-title {
  padding-inline: calc(4px * var(--lp-characters-scale));
  margin-inline: calc(-20px * var(--lp-characters-scale));
  margin-block-end: calc(16px * var(--lp-characters-scale));
  color: var(--lp-characters-accent);
  font-size: calc(1.375rem * var(--lp-characters-scale));
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}
.lp-characters-title span { display: block; }
.lp-characters-entry-table { width: 100%; border-collapse: collapse; table-layout: fixed; margin-block-start: calc(17px * var(--lp-characters-scale)); font-size: calc(0.8125rem * var(--lp-characters-scale)); line-height: 1.6923077; }
.lp-characters-entry-table th { padding: 2px 8px; border: 1px solid var(--lp-characters-paper); background: #f6862b; color: var(--lp-characters-white); font-size: 0.875rem; font-weight: 500; line-height: 22px; text-align: center; }
.lp-characters-entry-table th:first-child { width: 30%; }
.lp-characters-entry-table td { padding: 9px 12px; border: 1px solid var(--lp-characters-paper); background: #ffd6b6; vertical-align: top; }
.lp-characters-entry-table tbody tr:first-child { height: 86px; }
.lp-characters-entry-table tbody tr:nth-child(2) { height: 107px; }
.lp-characters-entry-table tr:nth-child(2) td { background: #ffe9d7; }
.lp-characters-intro-block { margin-block-start: calc(20px * var(--lp-characters-scale)); }
.lp-characters-intro-heading { font-size: calc(1rem * var(--lp-characters-scale)); font-weight: 500; line-height: 1.375; }
.lp-characters-intro-heading::before { content: "■ "; }
.lp-characters-intro-block p { margin-block-start: calc(8px * var(--lp-characters-scale)); }
.lp-characters-callout { padding: calc(10px * var(--lp-characters-scale)) calc(18px * var(--lp-characters-scale)); border-radius: calc(8px * var(--lp-characters-scale)); margin-block-start: calc(24px * var(--lp-characters-scale)); background: var(--lp-characters-white); }
.lp-characters-callout strong, .lp-characters-text-link { color: var(--lp-characters-accent); font-weight: 700; }
.lp-characters-text-link { text-decoration: underline; text-underline-offset: 0.16em; }
.lp-characters-section { padding-block: calc(48px * var(--lp-characters-scale)); background: var(--lp-characters-flow); color: var(--lp-characters-white); }
.lp-characters-section-light { background: var(--lp-characters-light); }
.lp-characters-section-heading {
  padding-block: calc(9px * var(--lp-characters-scale));
  border-block: 2px solid currentColor;
  margin-block-end: calc(24px * var(--lp-characters-scale));
  font-size: calc(1.375rem * var(--lp-characters-scale));
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.2727273;
  text-align: center;
}
.lp-characters-steps { display: grid; gap: calc(20px * var(--lp-characters-scale)); padding: 0; list-style: none; }
.lp-characters-step-link, .lp-characters-step-header {
  display: grid;
  grid-template-columns: calc(60px * var(--lp-characters-scale)) minmax(0, 1fr) calc(32px * var(--lp-characters-scale));
  gap: calc(15px * var(--lp-characters-scale));
  align-items: center;
  min-height: calc(60px * var(--lp-characters-scale));
  padding-inline-end: calc(14px * var(--lp-characters-scale));
  border-radius: 100px;
  background: var(--lp-characters-white);
  color: var(--lp-characters-accent);
  font-size: calc(1.125rem * var(--lp-characters-scale));
  font-weight: 600;
  line-height: 1.3333333;
}
.lp-characters-step-link, .lp-characters-booking-summary { text-decoration: none; }
.lp-characters-step-header { grid-template-columns: calc(60px * var(--lp-characters-scale)) minmax(0, 1fr); }
.lp-characters-step-number { display: grid; align-content: center; width: calc(60px * var(--lp-characters-scale)); height: calc(60px * var(--lp-characters-scale)); border: 2px solid var(--lp-characters-white); border-radius: 50%; background: var(--lp-characters-accent); color: var(--lp-characters-white); font-family: var(--lp-characters-font-en); font-size: calc(0.875rem * var(--lp-characters-scale)); font-weight: 600; line-height: 1; text-align: center; }
.lp-characters-step-number b { font-size: calc(1.625rem * var(--lp-characters-scale)); font-weight: 600; line-height: 1; }
.lp-characters-step-link::after { width: calc(32px * var(--lp-characters-scale)); height: calc(32px * var(--lp-characters-scale)); background: url("../images/icon-down.svg") center / contain no-repeat; content: ""; }
.lp-characters-step-copy { margin-block-start: calc(11px * var(--lp-characters-scale)); }
.lp-characters-step-note { margin-block-start: calc(10px * var(--lp-characters-scale)); font-size: calc(0.75rem * var(--lp-characters-scale)); font-weight: 400; line-height: 1.5; }
.lp-characters-step-options { display: grid; gap: calc(14px * var(--lp-characters-scale)); margin-block-start: calc(18px * var(--lp-characters-scale)); }
.lp-characters-option-title { display: flex; gap: calc(8px * var(--lp-characters-scale)); align-items: flex-start; font-size: calc(1.125rem * var(--lp-characters-scale)); font-weight: 600; line-height: 1.2222222; }
.lp-characters-option-number { flex: 0 0 24px; font-size: 26px; font-weight: 500; line-height: 24px; }
.lp-characters-option-copy { margin-block-start: calc(6px * var(--lp-characters-scale)); font-size: calc(0.75rem * var(--lp-characters-scale)); font-weight: 400; line-height: 1.5; }
.lp-characters-card { padding: calc(18px * var(--lp-characters-scale)); border-radius: calc(8px * var(--lp-characters-scale)); background: var(--lp-characters-white); color: var(--lp-characters-text); }
.lp-characters-ticket { padding: 20px 18px 29px; margin-block-start: 7px; }
.lp-characters-ticket .lp-characters-notes { margin-block-start: 8px; }
.lp-characters-ticket-heading { padding-block: calc(10px * var(--lp-characters-scale)); border-block: 2px solid currentColor; margin-block-end: calc(20px * var(--lp-characters-scale)); color: var(--lp-characters-accent); font-size: calc(1.375rem * var(--lp-characters-scale)); font-weight: 600; letter-spacing: 0.04em; line-height: 1.2727273; text-align: center; }
.lp-characters-notes { padding: 0; margin-block-start: calc(16px * var(--lp-characters-scale)); font-size: calc(0.75rem * var(--lp-characters-scale)); font-weight: 400; line-height: 1.5; list-style: none; }
.lp-characters-notes > li { padding-inline-start: 1em; text-indent: -1em; }
.lp-characters-notes > li::before { content: "※"; }
.lp-characters-booking { margin-block-start: calc(22px * var(--lp-characters-scale)); }
.lp-characters-booking-summary { display: block; padding: 15px 14px; border: 2px solid var(--lp-characters-accent); border-radius: 100px; color: var(--lp-characters-accent); font-size: 1.125rem; font-weight: 600; line-height: 24px; text-align: center; }
.lp-characters-booking-copy { padding: calc(12px * var(--lp-characters-scale)); margin-block-start: calc(10px * var(--lp-characters-scale)); background: var(--lp-characters-paper); font-size: calc(0.75rem * var(--lp-characters-scale)); font-weight: 400; line-height: 1.5; }
.lp-characters-calendar-intro { margin-block-end: calc(24px * var(--lp-characters-scale)); }
.lp-characters-calendar-note { display: block; padding-inline-start: 1em; text-indent: -1em; }
.lp-characters-calendar-notice { display: block; width: fit-content; max-width: 100%; margin-block-start: 10px; padding: 8px 12px; border: 1px solid currentColor; font-weight: 700; }
.lp-characters-calendar-header { display: grid; grid-template-columns: 32px minmax(0, 1fr) 32px; align-items: center; gap: 12px; margin-block-end: 15px; }
.lp-characters-calendar-month { position: relative; height: 55px; font-family: var(--lp-characters-font-en); color: var(--lp-characters-accent); font-size: 0.75rem; font-weight: 600; line-height: 1; text-align: center; }
.lp-characters-calendar-month span { display: block; }
.lp-characters-calendar-month [data-lp-characters-year] { position: absolute; inset: 0 0 auto; }
.lp-characters-calendar-month-number { position: absolute; inset: 8px 0 auto; font-size: 1.75rem; line-height: 1; }
.lp-characters-calendar-month [data-lp-characters-month-en] { position: absolute; inset: 38px 0 auto; font-size: 0.8125rem; }
/* OS標準のボタン装飾に依存せず、カレンダー内だけで表示を統一する。 */
.lp-characters-month-button, .lp-characters-date {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  border: 0;
  margin: 0;
  padding: 0;
  background-color: transparent;
  text-align: center;
}
.lp-characters-month-button { display: grid; place-items: center; width: calc(32px * var(--lp-characters-scale)); height: calc(32px * var(--lp-characters-scale)); border-radius: 50%; background: var(--lp-characters-accent); color: var(--lp-characters-white); }
.lp-characters-month-button { background: url("../images/icon-next.svg") center / contain no-repeat; }
.lp-characters-month-button[data-lp-characters-prev] { transform: rotate(180deg); }
.lp-characters-month-button:disabled { visibility: hidden; }
.lp-characters-calendar-table { width: 100%; border-collapse: collapse; table-layout: fixed; text-align: center; }
.lp-characters-calendar-table th { font-family: var(--lp-characters-font-en); padding-block: 6px; color: var(--lp-characters-accent); font-size: 0.75rem; font-weight: 600; line-height: 14px; }
.lp-characters-calendar-table abbr { text-decoration: none; }
.lp-characters-calendar-table td { height: calc(43px * var(--lp-characters-scale)); padding: 0; }
.lp-characters-date { font-family: var(--lp-characters-font-en); font-weight: 500; width: 100%; min-height: calc(36px * var(--lp-characters-scale)); border-radius: 4px; color: var(--lp-characters-text); font-size: calc(0.75rem * var(--lp-characters-scale)); text-decoration: none; }
.lp-characters-date[data-lp-characters-has-schedule="false"] { color: #B5B5B5; text-decoration: none; }
.lp-characters-date:disabled { opacity: 1; cursor: default; }
.lp-characters-date:not(:disabled):hover { background: var(--lp-characters-paper); }
.lp-characters-date[aria-pressed="true"] { background: var(--lp-characters-paper); color: var(--lp-characters-accent); font-weight: 600; }

/* 日付の背景マーク：サイズや透明度はここで調整できます。 */
.lp-characters-date-number { position: relative; display: inline-block; isolation: isolate; z-index: 0; }
/* 選択できる日だけ下線を表示する。 */
.lp-characters-date:not(:disabled):not([data-mark]) .lp-characters-date-number { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.3em; }
.lp-characters-date[data-mark] .lp-characters-date-number::before { content: ''; position: absolute; z-index: -1; width: 27px; height: 27px; top: 50%; left: 50%; transform: translate(-50%, -50%); background: var(--lp-characters-mark-color, #db5124); opacity: .25; pointer-events: none; }
.lp-characters-date[data-mark="dot"] .lp-characters-date-number::before, .lp-characters-date[data-mark="circle"] .lp-characters-date-number::before { border-radius: 50%; }
.lp-characters-date[data-mark="diamond"] .lp-characters-date-number::before { transform: translate(-50%, -50%) rotate(45deg) scale(.8); }
.lp-characters-date[data-mark="triangle"] .lp-characters-date-number::before { clip-path: polygon(50% 0,100% 100%,0 100%); }
.lp-characters-date[data-mark="star"] .lp-characters-date-number::before { clip-path: polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 94%,50% 72%,21% 94%,32% 57%,2% 35%,39% 35%); }
.lp-characters-mark-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 10px 0 0; padding: 0; list-style: none; font-size: .75rem; }
.lp-characters-mark-legend[hidden] { display: none; }
.lp-characters-mark-legend-item { display: flex; align-items: center; gap: 6px; }
.lp-characters-mark-legend-icon { display: inline-block; flex: none; width: 12px; height: 12px; background: var(--lp-characters-mark-color, #db5124); opacity: .5; }
.lp-characters-mark-legend-icon[data-mark="dot"], .lp-characters-mark-legend-icon[data-mark="circle"] { border-radius: 50%; }
.lp-characters-mark-legend-icon[data-mark="diamond"] { transform: rotate(45deg) scale(.8); }
.lp-characters-mark-legend-icon[data-mark="triangle"] { clip-path: polygon(50% 0,100% 100%,0 100%); }
.lp-characters-mark-legend-icon[data-mark="star"] { clip-path: polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 94%,50% 72%,21% 94%,32% 57%,2% 35%,39% 35%); }
.lp-characters-calendar-detail { padding-block-start: calc(12px * var(--lp-characters-scale)); border-block-start: 1px solid var(--lp-characters-accent); margin-block-start: calc(22px * var(--lp-characters-scale)); }
.lp-characters-selected-date { font-family: var(--lp-characters-font-en); display: block; margin-block-end: calc(10px * var(--lp-characters-scale)); color: var(--lp-characters-accent); font-size: calc(1.5rem * var(--lp-characters-scale)); font-weight: 600; line-height: 29px; }
.lp-characters-selected-date span { line-height: 1; font-size: calc(0.75rem * var(--lp-characters-scale)); }
.lp-characters-calendar-warning { margin-block-end: 6px; color: #ed3f3f; }
.lp-characters-legend { display: grid; gap: 4px; padding: 0; margin-block-end: 16px; list-style: none; }
.lp-characters-legend li { display: flex; gap: calc(6px * var(--lp-characters-scale)); align-items: center; font-size: calc(0.75rem * var(--lp-characters-scale)); }
.lp-characters-badge, .lp-characters-schedule-badge { font-family: var(--lp-characters-font-en); display: grid; flex-shrink: 0; place-items: center; width: calc(36px * var(--lp-characters-scale)); height: calc(36px * var(--lp-characters-scale)); border-radius: 50%; background: var(--lp-characters-blue); color: var(--lp-characters-white); font-size: calc(0.6875rem * var(--lp-characters-scale)); font-weight: 600; line-height: 1.4; letter-spacing: 0; text-align: center; }
.lp-characters-badge[data-theme="pink"], .lp-characters-schedule-item[data-theme="pink"] .lp-characters-schedule-badge { background: var(--lp-characters-pink); }
.lp-characters-schedule-scroll { height: 175px; max-height: 175px; padding-inline-end: 11px; overflow-y: auto; }
.lp-characters-schedule-heading { padding: 5px 6px; border: 1px solid var(--lp-characters-accent); border-radius: 8px; color: var(--lp-characters-accent); font-family: var(--lp-characters-font-jp); font-size: 0.8125rem; font-weight: 600; line-height: 16px; letter-spacing: 0; text-align: center; }
.lp-characters-schedule-list { display: grid; gap: calc(8px * var(--lp-characters-scale)); padding: 0; margin-block-start: calc(8px * var(--lp-characters-scale)); list-style: none; }
.lp-characters-schedule-item { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: calc(8px * var(--lp-characters-scale)); align-items: center; min-height: 42px; padding: 2px 6px; border: 1px solid #7e7e7e; border-radius: calc(8px * var(--lp-characters-scale)); color: #7e7e7e; font-size: calc(0.8125rem * var(--lp-characters-scale)); font-weight: 600; line-height: 1.2307692; text-align: center; }
/* 店舗名は空白などの区切りを優先し、長い語は枠内で折り返す。 */
.lp-characters-schedule-item .lp-characters-schedule-name { min-width: 0; word-break: keep-all; overflow-wrap: break-word; line-break: strict; }
@media (max-width: 767px) {
  .lp-characters-schedule-item .lp-characters-schedule-name { font-size: calc(0.8125rem * var(--lp-characters-scale) - 1px); letter-spacing: -0.04em; }
}
.lp-characters-schedule-note { display: block; font-size: 0.8em; white-space: pre-wrap; overflow-wrap: anywhere; }
.lp-characters-schedule-floor { padding-inline-end: calc(6px * var(--lp-characters-scale)); border-inline-end: 1px solid #7e7e7e; white-space: pre-line; }
.lp-characters-schedule-badge { font-size: calc(0.6875rem * var(--lp-characters-scale)); width: calc(36px * var(--lp-characters-scale)); height: calc(36px * var(--lp-characters-scale)); }
.lp-characters-schedule-badge[data-lp-characters-badge-state="empty"] { visibility: hidden; }
.lp-characters-schedule-badge[data-lp-characters-badge-state="other"] { background: transparent; color: inherit; border-radius: 0; width: auto; }
.lp-characters-schedule-empty { padding: calc(14px * var(--lp-characters-scale)); border-radius: 6px; background: var(--lp-characters-paper); color: var(--lp-characters-text); font-size: calc(0.75rem * var(--lp-characters-scale)); }
.lp-characters-reception-copy { margin-block-end: calc(48px * var(--lp-characters-scale)); }
.lp-characters-accordion-list { display: grid; gap: calc(18px * var(--lp-characters-scale)); }
.lp-characters-accordion { border-radius: calc(8px * var(--lp-characters-scale)); background: var(--lp-characters-white); color: var(--lp-characters-text); }
.lp-characters-accordion-summary { display: flex; gap: calc(10px * var(--lp-characters-scale)); align-items: center; justify-content: space-between; padding: calc(14px * var(--lp-characters-scale)) calc(12px * var(--lp-characters-scale)); border-radius: calc(8px * var(--lp-characters-scale)); background: var(--lp-characters-accent); color: var(--lp-characters-white); font-weight: 500; list-style: none; cursor: pointer; }
.lp-characters-accordion[open] > .lp-characters-accordion-summary { border-end-start-radius: 0; border-end-end-radius: 0; }
.lp-characters-accordion-summary :where(h3, h4) { font-size: calc(0.875rem * var(--lp-characters-scale)); font-weight: 500; }
.lp-characters-accordion-summary h4 { font-size: calc(1rem * var(--lp-characters-scale)); line-height: 1.5; }
.lp-characters-accordion-summary:has(h4) { position: relative; min-height: 61px; padding: 6px 42px; justify-content: center; text-align: center; }
.lp-characters-accordion-summary:has(h4)::after { position: absolute; right: 10px; }
.lp-characters-accordion-summary::after { flex: 0 0 calc(28px * var(--lp-characters-scale)); width: calc(28px * var(--lp-characters-scale)); height: calc(28px * var(--lp-characters-scale)); background: url("../images/icon-plus.svg") center / contain no-repeat; transform: translateX(-4px); content: ""; }
.lp-characters-accordion[open] > .lp-characters-accordion-summary::after { background-image: url("../images/icon-minus.svg"); }
.lp-characters :where(summary)::-webkit-details-marker { display: none; }
.lp-characters-accordion-body { padding: calc(18px * var(--lp-characters-scale)); }
.lp-characters-location { text-align: center; }
.lp-characters-location + .lp-characters-location { margin-block-start: calc(28px * var(--lp-characters-scale)); }
.lp-characters-location-label { display: table; margin-inline: auto; padding: 1.5px 10px; border: 1px solid currentColor; border-radius: 100px; color: var(--lp-characters-accent); font-size: 0.875rem; line-height: 20px; }
.lp-characters-location-number { display: table; padding: 0 6px; margin: 14px auto 0; background: var(--lp-characters-accent); color: var(--lp-characters-white); font-size: 0.9375rem; font-weight: 600; line-height: 23px; }
.lp-characters-location-title { margin-block: 4px 18px; color: var(--lp-characters-accent); font-size: calc(1.125rem * var(--lp-characters-scale)); font-weight: 600; line-height: 1.3333333; }
.lp-characters-map { width: 100%; height: auto; }
.lp-characters-reception-note { margin-block-start: 10px; }
.lp-characters-reception-note .lp-characters-text-link { color: inherit; font-weight: inherit; }
.lp-characters-faq-heading { width: calc(181px * var(--lp-characters-scale)); margin-inline: auto; }
.lp-characters-faq-list .lp-characters-accordion-summary { min-height: calc(56px * var(--lp-characters-scale)); padding-block: calc(9px * var(--lp-characters-scale)); }
.lp-characters-faq-list .lp-characters-question { line-height: 1.4285714; }
.lp-characters-question { display: flex; align-items: flex-start; gap: calc(6px * var(--lp-characters-scale)); }
.lp-characters-question::before { font-family: var(--lp-characters-font-en); flex-shrink: 0; font-size: calc(1.375rem * var(--lp-characters-scale)); font-weight: 500; line-height: 1; content: "Q."; }
.lp-characters-answer { display: flex; align-items: flex-start; gap: calc(6px * var(--lp-characters-scale)); line-height: 1.4285714; }
.lp-characters-answer::before { font-family: var(--lp-characters-font-en); font-weight: 500; line-height: 1; flex-shrink: 0; color: var(--lp-characters-accent); font-size: calc(1.375rem * var(--lp-characters-scale)); content: "A."; }
.lp-characters-answer-note { display: block; margin-block-start: calc(8px * var(--lp-characters-scale)); font-size: calc(0.75rem * var(--lp-characters-scale)); font-weight: 400; line-height: 1.5; }
.lp-characters-noscript { padding: calc(12px * var(--lp-characters-scale)); margin-block-start: calc(14px * var(--lp-characters-scale)); background: var(--lp-characters-paper); color: var(--lp-characters-text); font-size: calc(0.75rem * var(--lp-characters-scale)); font-weight: 400; line-height: 1.5; }
/* 改訂SP：到着時刻の案内も地図の直前に掲載する。 */
.lp-characters-ticket-heading > span { display: block; }
.lp-characters-ticket-heading > span:first-child { white-space: normal; }
.lp-characters .lp-characters-location-guidance { margin-block: -17px 12px; font-size: 0.875rem; font-weight: 500; line-height: 24px; }
.lp-characters-option-copy { padding-inline-start: 1em; text-indent: -1em; }
.lp-characters-faq-list .lp-characters-question { flex: 1; }
.lp-characters-schedule-scroll::-webkit-scrollbar { width: 3px; }
.lp-characters-schedule-scroll::-webkit-scrollbar-track { background: #e9e0dd; border-radius: 4px; }
.lp-characters-schedule-scroll::-webkit-scrollbar-thumb { background: #b8ada8; border-radius: 4px; }
@supports not selector(::-webkit-scrollbar) {
  .lp-characters-schedule-scroll { scrollbar-width: thin; scrollbar-color: #b8ada8 #e9e0dd; }
}
.lp-characters-desktop-break { display: none; }
.lp-characters-intro-heading { display: flex; gap: 4px; }
.lp-characters-intro-heading::before { content: "■"; flex-shrink: 0; }
.lp-characters-faq-list .lp-characters-accordion-body { padding-block: 17px; }
.lp-characters-answer-note { padding-inline-start: 1em; margin-block-start: 3px; text-indent: -1em; }
.lp-characters-entry-table td:first-child { padding-inline: 11.5px 9.5px; }
#lp-characters-flow { padding-block-end: 46px; }
#lp-characters-calendar-title { margin-block-end: 18px; }
.lp-characters-calendar-card { padding-block: 14px 26px; }
.lp-characters-calendar-table td { vertical-align: top; }
.lp-characters-date { display: block; padding-block: 11px; line-height: 14px; }
#lp-characters-reception-title { margin-block-end: 19px; }
.lp-characters-reception-copy { margin-block-end: 43px; }
#lp-characters-reception .lp-characters-accordion:first-child .lp-characters-accordion-body { padding-block-end: 26.55px; }
#lp-characters-reception .lp-characters-accordion:first-child .lp-characters-notes { margin-block-start: 12px; }
#lp-characters-reception .lp-characters-accordion:nth-child(2) .lp-characters-accordion-body { padding-block-end: 25.55px; }
#lp-characters-reception .lp-characters-accordion:nth-child(2) .lp-characters-notes { margin-block-start: 6px; }
.lp-characters-location + .lp-characters-location .lp-characters-location-number { margin-block-start: 0; }
.lp-characters-location:has(img[src*="floor14"]) .lp-characters-map { width: calc(100% - 1.7px); margin-inline: auto; }
@media (min-width: 768px) {
  .lp-characters-desktop-break { display: initial; }
  .lp-characters { font-size: 1rem; line-height: 1.75; }
  .lp-characters-mobile-break { display: none; }
  .lp-characters-notice { padding: 15px 20px 18px; font-size: 1.75rem; line-height: 42px; }
  .lp-characters-notice span { display: inline; font-size: inherit; }
  .lp-characters-intro { padding-block: 48px 64px; }
  .lp-characters-title { padding: 0; margin: 0 0 26px; font-size: 2rem; line-height: 48px; }
  .lp-characters-title span { display: inline; }
  .lp-characters-title span + span { margin-inline-start: 0.25em; }
  .lp-characters-entry-table { margin-block-start: 28px; font-size: 1rem; line-height: 28px; }
  .lp-characters-entry-table th { height: 47px; padding: 8px 20px; font-size: 1rem; line-height: 28px; }
  .lp-characters-entry-table td, .lp-characters-entry-table td:first-child { padding: 16px 20px; vertical-align: middle; }
  .lp-characters-entry-table tbody tr:first-child { height: 86px; }
  .lp-characters-entry-table tbody tr:nth-child(2) { height: 89px; }
  .lp-characters-intro-columns { display: grid; gap: 20px; margin-block-start: 22px; }
  .lp-characters-intro-block { margin: 0; }
  .lp-characters-intro-heading { font-size: 1.0625rem; line-height: 26px; }
  .lp-characters-intro-block p { margin-block-start: 2px; }
  .lp-characters-callout { padding: 14px 24px; margin-block-start: 29px; }
  .lp-characters-callout p { width: fit-content; max-width: 100%; margin-inline: auto; }
  .lp-characters-section, #lp-characters-flow { padding-block: 64px; }
  #lp-characters-calendar-title { margin-block-end: 28px; }
  .lp-characters-section-heading { padding-block: 14px; margin-block-end: 28px; font-size: 1.75rem; line-height: 34px; }
  .lp-characters-steps { width: min(100%,744px); margin-inline: auto; gap: 28px; }
  .lp-characters-step-link, .lp-characters-step-header { grid-template-columns: 72px minmax(0,1fr) 42px; gap: 22px; min-height: 72px; padding-inline-end: 20px; font-size: 1.25rem; line-height: 28px; }
  .lp-characters-step-header { grid-template-columns: 72px minmax(0,1fr); }
  .lp-characters-step-number { width: 72px; height: 72px; font-size: 0.8125rem; }
  .lp-characters-step-number b { font-size: 1.75rem; }
  .lp-characters-step-link::after { width: 42px; height: 42px; }
  .lp-characters-step-copy { margin-block-start: 13px; }
  .lp-characters-step-options { gap: 18px; margin-block-start: 22px; }
  .lp-characters-option-title { line-height: 24px; }
  .lp-characters-option-copy { margin-block-start: 4px; font-size: 0.8125rem; line-height: 20px; }
  .lp-characters-ticket { padding: 36px 80px 34px; margin-block-start: 15px; }
  .lp-characters-ticket-heading { margin-block-end: 13px; }
  .lp-characters-ticket > p { line-height: 30px; }
  .lp-characters-ticket .lp-characters-notes { margin-block-start: 11px; }
  .lp-characters-notes { margin-block-start: 18px; font-size: 0.75rem; line-height: 20px; }
  .lp-characters-booking { width: min(100%,444px); margin: 32px auto 0; }
  .lp-characters-booking-summary { padding-block: 16px; }
  .lp-characters-step-note { font-size: 0.75rem; line-height: 20px; }
  .lp-characters-calendar-intro { margin-block-end: 28px; }
  .lp-characters-calendar-card { padding: 32px 36px; }
  [data-lp-characters-calendar-area]:not([hidden]) { display: grid; grid-template-columns: minmax(0,1.13fr) minmax(0,1fr); gap: 76px; }
  .lp-characters-calendar-face { min-width: 0; }
  .lp-characters-calendar-header { grid-template-columns: 32px minmax(0,1fr) 32px; margin-block-end: 18px; }
  .lp-characters-calendar-month { height: 61px; font-size: 0.875rem; }
  .lp-characters-calendar-month-number { top: 11px; font-size: 2.25rem; }
  .lp-characters-calendar-month [data-lp-characters-month-en] { top: 51px; font-size: 0.875rem; }
  .lp-characters-calendar-table td { height: 48px; }
  .lp-characters-date { padding-block: 10.5px 9.5px; font-size: 0.875rem; line-height: 16px; }
  .lp-characters-calendar-detail { position: relative; padding: 0; border: 0; margin: 0; }
  .lp-characters-calendar-detail::before { position: absolute; inset: 0 auto 0 -32px; width: 1px; background: var(--lp-characters-accent); content: ""; }
  .lp-characters-selected-date { margin-block-end: 9px; font-size: 1.75rem; line-height: 36px; }
  .lp-characters-selected-date span { line-height: 1; font-size: 0.8125rem; }
  .lp-characters-calendar-warning { margin-block-end: 11px; line-height: 27px; }
  .lp-characters-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-block-end: 16px; }
  .lp-characters-legend li { gap: 3px; font-size: 0.8125rem; }
  .lp-characters-legend-separator { display: none; }
  .lp-characters-badge { width: 36px; height: 36px; }
  .lp-characters-schedule-scroll { height: auto; max-height: 192px; padding-inline-end: 7px; }
  .lp-characters-schedule-heading { padding-block: 13px; }
  .lp-characters-schedule-list { gap: 10px; margin-block-start: 10px; }
  .lp-characters-schedule-item { grid-template-columns: 58px minmax(0,1fr) 36px; gap: 8px; min-height: 44px; padding: 3px 6px; }
  .lp-characters-schedule-name br { display: none; }
  .lp-characters-schedule-floor { padding-inline-end: 12px; }
  #lp-characters-reception-title { margin-block-end: 22px; }
  .lp-characters-reception-copy { margin-block-end: 46px; }
  #lp-characters-meeting-title { margin-block-end: 24px; }
  .lp-characters-accordion-list { gap: 24px; }
  .lp-characters-accordion-summary:has(h4) { min-height: 78px; padding-inline: 64px; }
  .lp-characters-accordion-summary h4 { font-size: 1.375rem; line-height: 30px; }
  .lp-characters-accordion-summary h4 br { display: none; }
  .lp-characters-accordion-summary:has(h4)::after { right: 24px; }
  .lp-characters-accordion-summary::after { flex-basis: 42px; width: 42px; height: 42px; }
  #lp-characters-reception .lp-characters-accordion-body { max-width: 706px; padding: 26px 0 35px; margin-inline: auto; }
  #lp-characters-reception .lp-characters-accordion:first-child .lp-characters-accordion-body { padding-block-end: 35px; }
  #lp-characters-reception .lp-characters-accordion:nth-child(2) .lp-characters-accordion-body { padding-block-end: 61.375px; }
  #lp-characters-reception .lp-characters-accordion:first-child .lp-characters-accordion-summary { min-height: 75px; }
  #lp-characters-reception .lp-characters-accordion:nth-child(2) .lp-characters-accordion-summary { min-height: 81px; }
  #lp-characters-reception .lp-characters-accordion:first-child .lp-characters-notes { margin-block-start: 11px; }
  #lp-characters-reception .lp-characters-accordion:nth-child(2) .lp-characters-notes { margin-block-start: 18px; }
  .lp-characters-map[src*="west"] { aspect-ratio: 706 / 287; }
  .lp-characters-map[src*="east"] { aspect-ratio: 706 / 286; }
  .lp-characters-location-label { font-size: 1rem; line-height: 26px; padding: 2px 16px; }
  .lp-characters-location-title { margin-block: 10px 24px; font-size: 1.5rem; line-height: 32px; }
  .lp-characters-location-number { padding: 4px 16px; margin-block-start: 24px; font-size: 1.125rem; line-height: 30px; }
  .lp-characters-location:has(.lp-characters-location-guidance) .lp-characters-location-title { margin-block-end: 18px; }
  .lp-characters .lp-characters-location-guidance { margin-block: -14px 20px; font-size: 1rem; line-height: 24px; }
  .lp-characters-location + .lp-characters-location { margin-block-start: 15px; }
  .lp-characters-location + .lp-characters-location .lp-characters-location-number { margin-block-start: 24px; }
  .lp-characters-location:has(img[src*="floor14"]) .lp-characters-location-guidance { margin-block-end: 4px; }
  .lp-characters-location:has(img[src*="floor14"]) .lp-characters-map { width: calc(100% + 40px); max-width: none; margin-inline: -20px; }
  .lp-characters-reception-note { margin-block-start: 6px; }
  .lp-characters-faq-heading { width: 100%; margin-block-end: 28px; }
  .lp-characters-faq-list { gap: 18px; }
  .lp-characters-faq-list .lp-characters-accordion-summary { min-height: 77px; padding: 17px 24px; }
  .lp-characters-faq-list .lp-characters-question { font-size: 1rem; line-height: 27px; }
  .lp-characters-question { gap: 6px; }
  .lp-characters-question::before, .lp-characters-answer::before { font-size: 1.4375rem; }
  .lp-characters-faq-list .lp-characters-accordion-body { padding: 24px 24px 25px; }
  .lp-characters-answer { font-size: 1rem; line-height: 27px; }
  #lp-characters-faq { padding-block-end: 80px; }
  .lp-characters-answer-note { margin-block-start: 9px; line-height: 20px; }
}
/* 狭い画面（320pxなど）で見出しや表の過剰な折り返しを抑える。 */
@media (max-width: 374px) {
  .lp-characters-title { font-size: 1.1875rem; }
  .lp-characters-section-heading, .lp-characters-ticket-heading { font-size: 1.25rem; letter-spacing: 0.01em; }
  .lp-characters-entry-table th:first-child { width: 34%; }
  .lp-characters-entry-table td, .lp-characters-entry-table td:first-child { padding-inline: 7px; }
  .lp-characters-step-link, .lp-characters-step-header { gap: 8px; font-size: 1rem; }
  .lp-characters-location-title { font-size: 1rem; }
  .lp-characters-accordion-summary:has(h4) { padding-inline: 34px; }
  .lp-characters-schedule-item { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 5px; }
}

/* 見出しはデザインの文字間0%に合わせる。 */
.lp-characters-title,
.lp-characters-intro-heading,
.lp-characters-section-heading,
.lp-characters-step-link,
.lp-characters-step-header,
.lp-characters-option-title,
.lp-characters-ticket-heading,
.lp-characters-schedule-heading,
.lp-characters-accordion-summary :where(h3, h4),
.lp-characters-location-title { letter-spacing: 0; }

/* 狭い画面でも施設名を途中で切らず、見出し内に収める。 */
.lp-characters-name-nowrap { white-space: nowrap; }

.lp-characters-reception-name { white-space: nowrap; }
@media (max-width: 767px) {
  .lp-characters-accordion-summary:has(.lp-characters-reception-name) { padding-inline-start: 12px; }
}

/* 独自の日付設定は既定の本文デザインから選択する。 */
.lp-characters-special { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 0.95rem; line-height: 1.8; }
.lp-characters-special[data-style="box"] { padding: 16px; border: 1px solid var(--lp-characters-accent); border-radius: 8px; }
.lp-characters-special[data-style="notice"] { padding: 16px; background: var(--lp-characters-paper); border-radius: 8px; }

.lp-characters-calendar-warning[hidden], .lp-characters-legend[hidden] { display: none; }
.lp-characters-special + .lp-characters-schedule-heading { margin-block-start: 16px; }

/* キャラクターズワールドの整理券を店舗行と同じ構成で表示 */
.lp-characters .lp-characters-schedule-heading { padding:0; }
.lp-characters-schedule-heading-link { display:grid; grid-template-columns:58px minmax(0,1fr) 36px; gap:8px; align-items:center; min-height:44px; padding:3px 6px; color:inherit; text-align:center; text-decoration:none; }
.lp-characters-schedule-heading-link .lp-characters-schedule-floor { border-color:var(--lp-characters-accent); padding-inline-end:6px; font-size:0.75rem; line-height:1.25; white-space:nowrap; }
.lp-characters-schedule-heading-link .lp-characters-schedule-name { overflow-wrap:anywhere; }
.lp-characters-schedule-heading-link .lp-characters-schedule-badge { background:var(--lp-characters-blue); }
.lp-characters-schedule-heading-link:focus-visible { outline:2px solid var(--lp-characters-accent); outline-offset:3px; border-radius:8px; }
@media (max-width:374px) { .lp-characters-schedule-heading-link { grid-template-columns:48px minmax(0,1fr) 36px; gap:5px; } .lp-characters-schedule-heading-link .lp-characters-schedule-floor { font-size:0.6875rem; } }
/* 整理券名は施設名の直後で改行する。 */
.lp-characters-schedule-heading-link .lp-characters-schedule-name br { display:block; }
.lp-characters-schedule-world-name { white-space:nowrap; font-size:clamp(8px, 2.3vw, 13px); }

/* 特設サイトへの導線 */
.lp-characters-bottom-link { margin: 48px auto 0; max-width: 444px; }
.lp-characters-bottom-link a { position: relative; display: block; padding: 16px 42px 16px 20px; border: 2px solid var(--lp-characters-accent); border-radius: 100px; background: var(--lp-characters-white); color: var(--lp-characters-accent); font-size: 1rem; font-weight: 600; line-height: 1.5; text-align: center; text-decoration: none; }
.lp-characters-bottom-link a::after { position: absolute; top: 50%; right: 22px; width: 9px; height: 9px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: translateY(-50%) rotate(45deg); content: ""; }
.lp-characters-bottom-link a:hover { opacity: .8; }
