* {
  box-sizing: border-box;
}

.cms-ui .font-bold, .cms-ui b, .cms-ui strong {
  font-weight: 500;
}

.lp-canvas .font-bold, .lp-canvas b, .lp-canvas strong {
  font-weight: 700 !important;
}

body {
  margin: 0;
  font-family: 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', sans-serif;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}

.canvas-block {
  position: relative;
  transition: outline 0.15s;
}

.canvas-block a {
  pointer-events: none;
}

.canvas-block::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 2px solid transparent;
  pointer-events: none;
  z-index: 2;
  transition: border-color 0.15s;
}

.canvas-block:hover::after {
  border-color: #c8c8c8;
}

.canvas-block.selected::after {
  border-color: #242424;
}

.canvas-block:first-child {
  overflow: hidden;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

.canvas-block:first-child::after {
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

.canvas-block:last-child {
  overflow: hidden;
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;
}

.canvas-block:last-child::after {
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;
}

::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: #c8c8c8;
  border-radius: 3px;
}

.spot-scroll::-webkit-scrollbar {
  display: none;
}

.spot-card-item {
  width: 310px;
}

@media (min-width: 600px) {
  .spot-card-item {
    width: 420px;
  }
}

.plan-card {
  transition: box-shadow 0.2s;
  height: 292px;
}

.plan-card:hover {
  box-shadow: 0px 6px 20px 0px rgba(0,0,0,0.14) !important;
}

.pref-row svg {
  transform: translateY(-1px);
}

.plan-card-list {
  transition: box-shadow 0.2s;
}

.plan-card-list:hover {
  box-shadow: 0px 6px 20px 0px rgba(0,0,0,0.14) !important;
}

.pcl-img {
  width: 120px;
  height: 120px;
  flex-shrink: 0;
  overflow: hidden;
}

@media (min-width: 600px) {
  .pcl-img {
    width: 160px;
    height: 160px;
  }
}

.canvas-block .pcl-img {
  width: 120px !important;
  height: 120px !important;
}

.pcl-pref {
  font-size: 10px;
}

.pcl-name {
  font-size: 13px;
}

.pcl-desc {
  font-size: 12px;
}

@media (min-width: 600px) {
  .pcl-pref {
    font-size: 12px;
  }
  .pcl-name {
    font-size: 14px;
  }
  .pcl-desc {
    font-size: 12px;
  }
  .pcl-pref svg {
    width: 12px;
    height: 12px;
  }
}

@media (min-width: 600px) {
  .plan-card {
    height: 306px;
  }
  .plan-card-desc {
    -webkit-line-clamp: 2 !important;
  }
}

.canvas-block .plan-card {
  height: 292px !important;
}

.canvas-block .plan-card-desc {
  -webkit-line-clamp: 3 !important;
}

.quill-wrap .ql-toolbar {
  border-color: #c8c8c8;
  border-radius: 8px 8px 0 0;
  padding: 5px 8px;
}

.quill-wrap .ql-container {
  border-color: #c8c8c8;
  border-radius: 0 0 8px 8px;
  font-size: 13px;
  font-family: 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', sans-serif;
}

.quill-wrap .ql-editor {
  min-height: 100px;
  padding: 8px 12px;
}

.quill-wrap .ql-editor.ql-blank::before {
  color: #c8c8c8;
  font-style: normal;
}

.quill-wrap .ql-toolbar button {
  padding: 2px 4px;
}

.quill-wrap {
  position: relative;
}

.quill-wrap .ql-tooltip {
  left: 0 !important;
  max-width: 100%;
  box-sizing: border-box;
}

.quill-wrap .ql-tooltip a.ql-preview {
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  vertical-align: bottom;
}

.ql-snow .ql-tooltip::before {
  content: 'URL:';
}

.ql-snow .ql-tooltip[data-mode=link]::before {
  content: 'リンクを入力:';
}

.ql-snow .ql-tooltip a.ql-action::after {
  content: '編集';
}

.ql-snow .ql-tooltip[data-mode=link] a.ql-action::after {
  content: '保存';
}

.ql-snow .ql-tooltip a.ql-remove::before {
  content: '削除';
}

.ql-snow .ql-tooltip input[data-link] {
  font-size: 12px;
  width: 120px;
}

.quill-wrap .ql-tooltip {
  overflow: visible;
}

.lp-menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 199;
  opacity: 0;
  transition: opacity 0.25s ease-out;
  pointer-events: none;
}

.lp-menu-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

.lp-menu-drawer {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: 65%;
  background: #fff;
  transform: translateX(100%);
  transition: transform 0.25s ease-out;
  z-index: 200;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.lp-menu-drawer.open {
  transform: translateX(0);
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.spin {
  animation: spin 0.8s linear infinite;
  display: block;
}

.ql-preview p {
  margin: 0;
  line-height: 1.7;
}

.ql-preview .ql-size-small {
  font-size: 12px;
  color: #6e6e6e;
}

.ql-preview a {
  color: #242424;
  text-decoration: underline;
}

.ql-preview strong {
  font-weight: bold;
}

@keyframes slideUpSheet {
  from {
    transform: translateX(-50%) translateY(100%);
  }
  to {
    transform: translateX(-50%) translateY(0);
  }
}

@keyframes slideDownSheet {
  from {
    transform: translateX(-50%) translateY(0);
  }
  to {
    transform: translateX(-50%) translateY(100%);
  }
}

@keyframes slideUpSheetPreview {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}

@keyframes slideDownSheetPreview {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(100%);
  }
}

.filter-sheet-panel {
  animation: slideUpSheet 0.28s cubic-bezier(0.32,0.72,0,1) both;
}

.filter-sheet-panel.closing {
  animation: slideDownSheet 0.25s cubic-bezier(0.32,0.72,0,1) both;
}

.filter-sheet-panel--preview {
  animation: slideUpSheetPreview 0.28s cubic-bezier(0.32,0.72,0,1) both;
}

.filter-sheet-panel--preview.closing {
  animation: slideDownSheetPreview 0.25s cubic-bezier(0.32,0.72,0,1) both;
}

.area-tab--active::before, .area-tab--active::after {
  content:'';
  position:absolute;
  bottom:0;
  width:8px;
  height:10px;
  background:var(--tab-accent);
  z-index:3;
}

.area-tab--active::before {
  left:-8px;
  -webkit-mask:radial-gradient(circle at top left, transparent 8px, #000 8.5px);
  mask:radial-gradient(circle at top left, transparent 8px, #000 8.5px);
}

.area-tab--active::after {
  right:-8px;
  -webkit-mask:radial-gradient(circle at top right, transparent 8px, #000 8.5px);
  mask:radial-gradient(circle at top right, transparent 8px, #000 8.5px);
}

.filter-drag-handle {
  display:flex;
  justify-content:center;
  padding:14px 0 0;
  cursor:grab;
  touch-action:none;
}

.cal-nav-btn {
  width:24px;
  align-self:stretch;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:none;
  border:1px solid #d0d0d0;
  border-radius:6px;
  cursor:pointer;
  color:#6e6e6e;
  padding:0;
}

.cal-nav-btn:disabled {
  color:#d0d0d0;
  border-color:#e8e8e8;
  cursor:default;
}

.activity-card-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  padding:1rem;
}

@media (min-width: 768px) {
  .activity-card-grid--responsive {
    grid-template-columns:1fr 1fr;
  }
}

.filter-close-btn {
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:none;
  border:none;
  cursor:pointer;
  color:#6e6e6e;
  font-size:22px;
  line-height:1;
  padding:0;
}

.filter-group {
  padding: 24px 16px 8px;
}

.filter-group-label {
  font-size: 13px;
  font-weight: bold;
  color: #6e6e6e;
  margin-bottom: 12px;
}

.filter-checkbox {
  width:18px;
  height:18px;
  border-radius:4px;
  border:2px solid #d0d0d0;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition:border-color 0.15s, background 0.15s;
}

.filter-checkbox:hover {
  border-color: var(--filter-accent);
}

.filter-checkbox--checked {
  background: var(--filter-accent);
  border-color: var(--filter-accent);
}

.checker-bg {
  background-color:#e0e0e0;
  background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);
  background-size:12px 12px;
  background-position:0 0,0 6px,6px -6px,-6px 0;
}

.checker-bg-lg {
  background-color:#e0e0e0;
  background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);
  background-size:20px 20px;
  background-position:0 0,0 10px,10px -10px,-10px 0px;
}

.kv-img-wrap {
  aspect-ratio: 1200/630;
}

.hm-header {
  padding:16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid #f2f2f2;
}

.hm-cta {
  color:#fff;
  border-radius:999px;
  padding:8px 18px;
  font-weight:bold;
  font-size:13px;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
}

.hm-close-btn {
  width:36px;
  height:36px;
  border-radius:50%;
  border:1px solid #e5e5e5;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex-shrink:0;
}

.hm-body {
  padding:8px 0 16px;
}

.hm-item {
  display:block;
  padding:14px 24px;
  text-decoration:none;
  color:inherit;
  border-bottom:1px solid #f2f2f2;
}

.hm-item-subtitle {
  font-size:10px;
  color:#6e6e6e;
  font-weight:bold;
  letter-spacing:0.12em;
  margin-bottom:4px;
}

.hm-item-title {
  font-size:15px;
  font-weight:bold;
  color:#242424;
  line-height:1.4;
}

.shadow-plan-card {
  box-shadow:0px 2px 8px 0px rgba(0,0,0,0.1);
}

.shadow-spot-card {
  box-shadow:0px 3px 12px 0px rgba(0,0,0,0.14);
}

.shadow-faq-card {
  box-shadow:0px 1px 3px 0px rgba(0,0,0,0.1);
}

.shadow-nav-card {
  box-shadow:0px 1px 4px 0px rgba(0,0,0,0.12);
}

.shadow-activity-card {
  box-shadow:0px 3px 12px 0px rgba(0,0,0,0.14);
}

.scrollbar-none {
  scrollbar-width:none;
  -ms-overflow-style:none;
}

.spot-scroll {
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  -ms-overflow-style:none;
}

.sh-padding {
  padding-top:0;
  padding-bottom:16px;
}

.sh-padding--large {
  padding-top:0;
  padding-bottom:16px;
}

.spot-header-body {
  position:relative;
  padding:56px 16px 24px;
}

.spot-header-title {
  position:relative;
  font-size:26px;
  font-weight:700;
  color:#fff;
  margin:0;
  line-height:1.3;
}

.spot-header-subtitle {
  position:relative;
  font-size:16px;
  color:#fff;
  margin-top:8px;
}

.spot-desc-min-h {
  min-height:calc(1.4em * 2);
}

.faq-body {
  display:grid;
  transition:grid-template-rows 0.25s ease;
}

.sentinel-bar {
  height:1px;
  margin-bottom:-1px;
}

@keyframes tabBarSlideIn {
  from {
    transform:translateY(-100%);
  }
  to {
    transform:translateY(0);
  }
}

.tab-bar-fixed {
  box-shadow:0 2px 6px rgba(0,0,0,0.08);
  animation:tabBarSlideIn 0.18s ease-out;
}

.btn-filter-clear {
  flex:0 0 auto;
  padding:12px 16px;
  font-size:14px;
  font-weight:bold;
  border-radius:8px;
  white-space:nowrap;
  background:#fff;
  color:#242424;
  border:1px solid #e0e0e0;
  cursor:pointer;
}

.btn-filter-apply {
  flex:1;
  padding:12px 0;
  font-size:14px;
  font-weight:bold;
  border-radius:8px;
  color:#fff;
  border:none;
  cursor:pointer;
}

.review-avatar {
  width:16px;
  height:16px;
  flex-shrink:0;
  margin-top:1px;
  object-fit:cover;
  border-radius:50%;
}

*, ::before, ::after {
  --tw-border-spacing-x:0;
  --tw-border-spacing-y:0;
  --tw-translate-x:0;
  --tw-translate-y:0;
  --tw-rotate:0;
  --tw-skew-x:0;
  --tw-skew-y:0;
  --tw-scale-x:1;
  --tw-scale-y:1;
  --tw-pan-x:;
  --tw-pan-y:;
  --tw-pinch-zoom:;
  --tw-scroll-snap-strictness:proximity;
  --tw-gradient-from-position:;
  --tw-gradient-via-position:;
  --tw-gradient-to-position:;
  --tw-ordinal:;
  --tw-slashed-zero:;
  --tw-numeric-figure:;
  --tw-numeric-spacing:;
  --tw-numeric-fraction:;
  --tw-ring-inset:;
  --tw-ring-offset-width:0px;
  --tw-ring-offset-color:#fff;
  --tw-ring-color:rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow:0 0 #0000;
  --tw-ring-shadow:0 0 #0000;
  --tw-shadow:0 0 #0000;
  --tw-shadow-colored:0 0 #0000;
  --tw-blur:;
  --tw-brightness:;
  --tw-contrast:;
  --tw-grayscale:;
  --tw-hue-rotate:;
  --tw-invert:;
  --tw-saturate:;
  --tw-sepia:;
  --tw-drop-shadow:;
  --tw-backdrop-blur:;
  --tw-backdrop-brightness:;
  --tw-backdrop-contrast:;
  --tw-backdrop-grayscale:;
  --tw-backdrop-hue-rotate:;
  --tw-backdrop-invert:;
  --tw-backdrop-opacity:;
  --tw-backdrop-saturate:;
  --tw-backdrop-sepia:;
  --tw-contain-size:;
  --tw-contain-layout:;
  --tw-contain-paint:;
  --tw-contain-style:
}

::backdrop {
  --tw-border-spacing-x:0;
  --tw-border-spacing-y:0;
  --tw-translate-x:0;
  --tw-translate-y:0;
  --tw-rotate:0;
  --tw-skew-x:0;
  --tw-skew-y:0;
  --tw-scale-x:1;
  --tw-scale-y:1;
  --tw-pan-x:;
  --tw-pan-y:;
  --tw-pinch-zoom:;
  --tw-scroll-snap-strictness:proximity;
  --tw-gradient-from-position:;
  --tw-gradient-via-position:;
  --tw-gradient-to-position:;
  --tw-ordinal:;
  --tw-slashed-zero:;
  --tw-numeric-figure:;
  --tw-numeric-spacing:;
  --tw-numeric-fraction:;
  --tw-ring-inset:;
  --tw-ring-offset-width:0px;
  --tw-ring-offset-color:#fff;
  --tw-ring-color:rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow:0 0 #0000;
  --tw-ring-shadow:0 0 #0000;
  --tw-shadow:0 0 #0000;
  --tw-shadow-colored:0 0 #0000;
  --tw-blur:;
  --tw-brightness:;
  --tw-contrast:;
  --tw-grayscale:;
  --tw-hue-rotate:;
  --tw-invert:;
  --tw-saturate:;
  --tw-sepia:;
  --tw-drop-shadow:;
  --tw-backdrop-blur:;
  --tw-backdrop-brightness:;
  --tw-backdrop-contrast:;
  --tw-backdrop-grayscale:;
  --tw-backdrop-hue-rotate:;
  --tw-backdrop-invert:;
  --tw-backdrop-opacity:;
  --tw-backdrop-saturate:;
  --tw-backdrop-sepia:;
  --tw-contain-size:;
  --tw-contain-layout:;
  --tw-contain-paint:;
  --tw-contain-style:
}

/* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */
*,::after,::before {
  box-sizing:border-box;
  border-width:0;
  border-style:solid;
  border-color:#e5e7eb
}

::after,::before {
  --tw-content:''
}

:host,html {
  line-height:1.5;
  -webkit-text-size-adjust:100%;
  -moz-tab-size:4;
  tab-size:4;
  font-family:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-feature-settings:normal;
  font-variation-settings:normal;
  -webkit-tap-highlight-color:transparent
}

body {
  margin:0;
  line-height:inherit
}

hr {
  height:0;
  color:inherit;
  border-top-width:1px
}

abbr:where([title]) {
  -webkit-text-decoration:underline dotted;
  text-decoration:underline dotted
}

h1,h2,h3,h4,h5,h6 {
  font-size:inherit;
  font-weight:inherit
}

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

b,strong {
  font-weight:bolder
}

code,kbd,pre,samp {
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-feature-settings:normal;
  font-variation-settings:normal;
  font-size:1em
}

small {
  font-size:80%
}

sub,sup {
  font-size:75%;
  line-height:0;
  position:relative;
  vertical-align:baseline
}

sub {
  bottom:-.25em
}

sup {
  top:-.5em
}

table {
  text-indent:0;
  border-color:inherit;
  border-collapse:collapse
}

button,input,optgroup,select,textarea {
  font-family:inherit;
  font-feature-settings:inherit;
  font-variation-settings:inherit;
  font-size:100%;
  font-weight:inherit;
  line-height:inherit;
  letter-spacing:inherit;
  color:inherit;
  margin:0;
  padding:0
}

button,select {
  text-transform:none
}

button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]) {
  -webkit-appearance:button;
  background-color:transparent;
  background-image:none
}

:-moz-focusring {
  outline:auto
}

:-moz-ui-invalid {
  box-shadow:none
}

progress {
  vertical-align:baseline
}

::-webkit-inner-spin-button,::-webkit-outer-spin-button {
  height:auto
}

[type=search] {
  -webkit-appearance:textfield;
  outline-offset:-2px
}

::-webkit-search-decoration {
  -webkit-appearance:none
}

::-webkit-file-upload-button {
  -webkit-appearance:button;
  font:inherit
}

summary {
  display:list-item
}

blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre {
  margin:0
}

fieldset {
  margin:0;
  padding:0
}

legend {
  padding:0
}

menu,ol,ul {
  list-style:none;
  margin:0;
  padding:0
}

dialog {
  padding:0
}

textarea {
  resize:vertical
}

input::placeholder,textarea::placeholder {
  opacity:1;
  color:#9ca3af
}

[role=button],button {
  cursor:pointer
}

:disabled {
  cursor:default
}

audio,canvas,embed,iframe,img,object,svg,video {
  display:block;
  vertical-align:middle
}

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

[hidden]:where(:not([hidden=until-found])) {
  display:none
}

.pointer-events-none {
  pointer-events:none
}

.pointer-events-auto {
  pointer-events:auto
}

.fixed {
  position:fixed
}

.absolute {
  position:absolute
}

.relative {
  position:relative
}

.inset-0 {
  inset:0px
}

.right-1\.5 {
  right:0.375rem
}

.right-2 {
  right:0.5rem
}

.right-4 {
  right:1rem
}

.top-1\.5 {
  top:0.375rem
}

.top-1\/2 {
  top:50%
}

.top-3 {
  top:0.75rem
}

.left-0\.5 {
  left:0.125rem
}

.top-0\.5 {
  top:0.125rem
}

.mx-4 {
  margin-left:1rem;
  margin-right:1rem
}

.mb-4 {
  margin-bottom:1rem
}

.mb-6 {
  margin-bottom:1.5rem
}

.mt-auto {
  margin-top:auto
}

.mb-0\.5 {
  margin-bottom:0.125rem
}

.mb-2 {
  margin-bottom:0.5rem
}

.mb-3 {
  margin-bottom:0.75rem
}

.mb-5 {
  margin-bottom:1.25rem
}

.ml-auto {
  margin-left:auto
}

.mt-1 {
  margin-top:0.25rem
}

.mt-1\.5 {
  margin-top:0.375rem
}

.mt-2 {
  margin-top:0.5rem
}

.mt-3 {
  margin-top:0.75rem
}

.mt-8 {
  margin-top:2rem
}

.mb-1\.5 {
  margin-bottom:0.375rem
}

.mt-0\.5 {
  margin-top:0.125rem
}

.line-clamp-2 {
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2
}

.block {
  display:block
}

.flex {
  display:flex
}

.h-full {
  height:100%
}

.h-5 {
  height:1.25rem
}

.h-6 {
  height:1.5rem
}

.h-screen {
  height:100vh
}

.h-8 {
  height:2rem
}

.min-h-screen {
  min-height:100vh
}

.w-full {
  width:100%
}

.w-5 {
  width:1.25rem
}

.w-6 {
  width:1.5rem
}

.w-72 {
  width:18rem
}

.w-80 {
  width:20rem
}

.w-auto {
  width:auto
}

.w-px {
  width:1px
}

.w-11 {
  width:2.75rem
}

.w-8 {
  width:2rem
}

.max-w-md {
  max-width:28rem
}

.flex-1 {
  flex:1 1 0%
}

.flex-shrink-0 {
  flex-shrink:0
}

.-translate-y-1\/2 {
  --tw-translate-y:-50%;
  transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.cursor-pointer {
  cursor:pointer
}

.cursor-grab {
  cursor:grab
}

.select-none {
  -webkit-user-select:none;
  user-select:none
}

.resize-none {
  resize:none
}

.flex-col {
  flex-direction:column
}

.flex-wrap {
  flex-wrap:wrap
}

.items-center {
  align-items:center
}

.justify-end {
  justify-content:flex-end
}

.justify-center {
  justify-content:center
}

.justify-between {
  justify-content:space-between
}

.gap-2 {
  gap:0.5rem
}

.gap-3 {
  gap:0.75rem
}

.gap-1 {
  gap:0.25rem
}

.gap-1\.5 {
  gap:0.375rem
}

.gap-2\.5 {
  gap:0.625rem
}

.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse:0;
  margin-top:calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom:calc(0.75rem * var(--tw-space-y-reverse))
}

.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse:0;
  margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom:calc(1rem * var(--tw-space-y-reverse))
}

.self-start {
  align-self:flex-start
}

.overflow-hidden {
  overflow:hidden
}

.overflow-y-auto {
  overflow-y:auto
}

.truncate {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.whitespace-nowrap {
  white-space:nowrap
}

.rounded-full {
  border-radius:9999px
}

.rounded-lg {
  border-radius:0.5rem
}

.rounded-2xl {
  border-radius:1rem
}

.rounded {
  border-radius:0.25rem
}

.rounded-\[8px\] {
  border-radius:8px
}

.rounded-xl {
  border-radius:0.75rem
}

.border {
  border-width:1px
}

.border-b {
  border-bottom-width:1px
}

.border-l {
  border-left-width:1px
}

.border-r {
  border-right-width:1px
}

.border-t {
  border-top-width:1px
}

.border-\[\#e5e5e5\] {
  --tw-border-opacity:1;
  border-color:rgb(229 229 229 / var(--tw-border-opacity, 1))
}

.border-\[\#c8c8c8\] {
  --tw-border-opacity:1;
  border-color:rgb(200 200 200 / var(--tw-border-opacity, 1))
}

.border-\[\#f2f2f2\] {
  --tw-border-opacity:1;
  border-color:rgb(242 242 242 / var(--tw-border-opacity, 1))
}

.bg-gray-100 {
  --tw-bg-opacity:1;
  background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))
}

.bg-\[\#242424\] {
  --tw-bg-opacity:1;
  background-color:rgb(36 36 36 / var(--tw-bg-opacity, 1))
}

.bg-\[\#f7f7f7\] {
  --tw-bg-opacity:1;
  background-color:rgb(247 247 247 / var(--tw-bg-opacity, 1))
}

.bg-white {
  --tw-bg-opacity:1;
  background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))
}

.bg-\[\#f0f0f0\] {
  --tw-bg-opacity:1;
  background-color:rgb(240 240 240 / var(--tw-bg-opacity, 1))
}

.bg-\[\#f2f2f2\] {
  --tw-bg-opacity:1;
  background-color:rgb(242 242 242 / var(--tw-bg-opacity, 1))
}

.bg-white\/70 {
  background-color:rgb(255 255 255 / 0.7)
}

.bg-\[\#c8c8c8\] {
  --tw-bg-opacity:1;
  background-color:rgb(200 200 200 / var(--tw-bg-opacity, 1))
}

.bg-\[\#e0e0e0\] {
  --tw-bg-opacity:1;
  background-color:rgb(224 224 224 / var(--tw-bg-opacity, 1))
}

.bg-\[\#f44336\] {
  --tw-bg-opacity:1;
  background-color:rgb(244 67 54 / var(--tw-bg-opacity, 1))
}

.bg-black\/40 {
  background-color:rgb(0 0 0 / 0.4)
}

.object-cover {
  object-fit:cover
}

.p-3 {
  padding:0.75rem
}

.p-2 {
  padding:0.5rem
}

.p-4 {
  padding:1rem
}

.p-6 {
  padding:1.5rem
}

.px-6 {
  padding-left:1.5rem;
  padding-right:1.5rem
}

.py-20 {
  padding-top:5rem;
  padding-bottom:5rem
}

.px-2 {
  padding-left:0.5rem;
  padding-right:0.5rem
}

.py-0\.5 {
  padding-top:0.125rem;
  padding-bottom:0.125rem
}

.px-10 {
  padding-left:2.5rem;
  padding-right:2.5rem
}

.px-3 {
  padding-left:0.75rem;
  padding-right:0.75rem
}

.px-4 {
  padding-left:1rem;
  padding-right:1rem
}

.py-1\.5 {
  padding-top:0.375rem;
  padding-bottom:0.375rem
}

.py-2 {
  padding-top:0.5rem;
  padding-bottom:0.5rem
}

.py-2\.5 {
  padding-top:0.625rem;
  padding-bottom:0.625rem
}

.py-3 {
  padding-top:0.75rem;
  padding-bottom:0.75rem
}

.py-3\.5 {
  padding-top:0.875rem;
  padding-bottom:0.875rem
}

.py-4 {
  padding-top:1rem;
  padding-bottom:1rem
}

.py-6 {
  padding-top:1.5rem;
  padding-bottom:1.5rem
}

.py-7 {
  padding-top:1.75rem;
  padding-bottom:1.75rem
}

.py-9 {
  padding-top:2.25rem;
  padding-bottom:2.25rem
}

.px-5 {
  padding-left:1.25rem;
  padding-right:1.25rem
}

.py-5 {
  padding-top:1.25rem;
  padding-bottom:1.25rem
}

.pb-6 {
  padding-bottom:1.5rem
}

.pt-10 {
  padding-top:2.5rem
}

.pl-3 {
  padding-left:0.75rem
}

.pr-12 {
  padding-right:3rem
}

.pr-7 {
  padding-right:1.75rem
}

.pb-5 {
  padding-bottom:1.25rem
}

.pt-4 {
  padding-top:1rem
}

.text-left {
  text-align:left
}

.text-center {
  text-align:center
}

.font-mono {
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace
}

.text-2xl {
  font-size:1.5rem;
  line-height:2rem
}

.text-sm {
  font-size:0.875rem;
  line-height:1.25rem
}

.text-xl {
  font-size:1.25rem;
  line-height:1.75rem
}

.text-xs {
  font-size:0.75rem;
  line-height:1rem
}

.text-\[10px\] {
  font-size:10px
}

.text-base {
  font-size:1rem;
  line-height:1.5rem
}

.text-3xl {
  font-size:1.875rem;
  line-height:2.25rem
}

.text-\[14px\] {
  font-size:14px
}

.text-\[24px\] {
  font-size:24px
}

.font-bold {
  font-weight:700
}

.font-normal {
  font-weight:400
}

.uppercase {
  text-transform:uppercase
}

.leading-none {
  line-height:1
}

.leading-relaxed {
  line-height:1.625
}

.leading-snug {
  line-height:1.375
}

.tracking-\[0\.2em\] {
  letter-spacing:0.2em
}

.tracking-wider {
  letter-spacing:0.05em
}

.text-\[\#242424\] {
  --tw-text-opacity:1;
  color:rgb(36 36 36 / var(--tw-text-opacity, 1))
}

.text-\[\#6e6e6e\] {
  --tw-text-opacity:1;
  color:rgb(110 110 110 / var(--tw-text-opacity, 1))
}

.text-white {
  --tw-text-opacity:1;
  color:rgb(255 255 255 / var(--tw-text-opacity, 1))
}

.text-\[\#a0a0a0\] {
  --tw-text-opacity:1;
  color:rgb(160 160 160 / var(--tw-text-opacity, 1))
}

.text-\[\#c8c8c8\] {
  --tw-text-opacity:1;
  color:rgb(200 200 200 / var(--tw-text-opacity, 1))
}

.text-\[\#e8e8e8\] {
  --tw-text-opacity:1;
  color:rgb(232 232 232 / var(--tw-text-opacity, 1))
}

.text-\[\#f44336\] {
  --tw-text-opacity:1;
  color:rgb(244 67 54 / var(--tw-text-opacity, 1))
}

.opacity-0 {
  opacity:0
}

.opacity-20 {
  opacity:0.2
}

.shadow {
  --tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.shadow-md {
  --tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.shadow-sm {
  --tw-shadow:0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);
  box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.shadow-xl {
  --tw-shadow:0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.shadow-2xl {
  --tw-shadow:0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);
  box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.outline-none {
  outline:2px solid transparent;
  outline-offset:2px
}

.transition-colors {
  transition-property:color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
  transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
  transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration:150ms
}

.transition-opacity {
  transition-property:opacity;
  transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration:150ms
}

.transition-transform {
  transition-property:transform;
  transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration:150ms
}

.duration-200 {
  transition-duration:200ms
}

.hover\:scale-110:hover {
  --tw-scale-x:1.1;
  --tw-scale-y:1.1;
  transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.hover\:border-\[\#242424\]:hover {
  --tw-border-opacity:1;
  border-color:rgb(36 36 36 / var(--tw-border-opacity, 1))
}

.hover\:bg-\[\#404040\]:hover {
  --tw-bg-opacity:1;
  background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1))
}

.hover\:bg-\[\#f7f7f7\]:hover {
  --tw-bg-opacity:1;
  background-color:rgb(247 247 247 / var(--tw-bg-opacity, 1))
}

.hover\:bg-\[\#f2f2f2\]:hover {
  --tw-bg-opacity:1;
  background-color:rgb(242 242 242 / var(--tw-bg-opacity, 1))
}

.hover\:bg-\[\#f5f5f5\]:hover {
  --tw-bg-opacity:1;
  background-color:rgb(245 245 245 / var(--tw-bg-opacity, 1))
}

.hover\:bg-red-50:hover {
  --tw-bg-opacity:1;
  background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))
}

.hover\:bg-\[\#d32f2f\]:hover {
  --tw-bg-opacity:1;
  background-color:rgb(211 47 47 / var(--tw-bg-opacity, 1))
}

.hover\:text-\[\#242424\]:hover {
  --tw-text-opacity:1;
  color:rgb(36 36 36 / var(--tw-text-opacity, 1))
}

.focus\:border-\[\#242424\]:focus {
  --tw-border-opacity:1;
  border-color:rgb(36 36 36 / var(--tw-border-opacity, 1))
}

.focus\:border-transparent:focus {
  border-color:transparent
}

.focus\:shadow-\[0_0_0_2px_\#242424\]:focus {
  --tw-shadow:0 0 0 2px #242424;
  --tw-shadow-colored:0 0 0 2px var(--tw-shadow-color);
  box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.focus\:outline-none:focus {
  outline:2px solid transparent;
  outline-offset:2px
}

.focus\:ring-0:focus {
  --tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)
}

.disabled\:cursor-not-allowed:disabled {
  cursor:not-allowed
}

.disabled\:opacity-30:disabled {
  opacity:0.3
}

.group:hover .group-hover\:text-\[\#242424\] {
  --tw-text-opacity:1;
  color:rgb(36 36 36 / var(--tw-text-opacity, 1))
}

/* ===== レイアウト ===== */
html, body {
  background: #e8e8e8;
  margin: 0;
  padding: 0;
}

#root > div {
  background: #fff;
  max-width: 480px;
  margin: 0 auto;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.animate-spin {
  animation: spin 1s linear infinite;
}

.lp-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 4rem 0;
  gap: 0.375rem;
}

.lp-loading-text {
  font-size: 0.875rem;
  margin: 0;
}

.lp-loading-text--gray {
  color: #c8c8c8;
}

.lp-loading-text--white {
  color: rgba(255,255,255,0.6);
}