@charset "utf-8";
/* ===== お片づけの窓口 シミュレーター ===== */
.simulator {
  max-width: 640px !important;
  margin: 0 auto !important;
  background: #f5f8f6 !important;
  line-height: 1.6 !important;
}

/* Header */
.sim-header {
  text-align: center !important;
  padding: 28px 16px 12px !important;
  background: linear-gradient(135deg, #2e8b57, #3aa86a) !important;
  color: #fff !important;
}
.sim-header h1 {
  font-size: 20px !important;
  letter-spacing: 0.5px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
}
.sim-header p {
  font-size: 13px !important;
  opacity: 0.85 !important;
  margin-top: 4px !important;
  color: #fff !important;
}

/* Truck Area */
.truck-area {
  position: sticky !important;
  top: 0 !important;
  z-index: 100 !important;
  background: #fff !important;
  border-bottom: 2px solid #dde8e2 !important;
  padding: 16px 16px 12px !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06) !important;
}
.truck-display {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  min-height: 120px !important;
}
.truck-svg-wrap {
  position: relative !important;
  transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}
.truck-svg-wrap img {
  display: block !important;
  max-height: 120px !important;
  width: auto !important;
  object-fit: contain !important;
}
.truck-info {
  text-align: center !important;
  margin-top: 8px !important;
}
.truck-name {
  font-size: 16px !important;
  font-weight: 800 !important;
  color: #2e8b57 !important;
}
.truck-capacity-bar {
  margin-top: 8px !important;
  background: #e8ece9 !important;
  border-radius: 20px !important;
  height: 10px !important;
  overflow: hidden !important;
}
.truck-capacity-fill {
  height: 100% !important;
  background: linear-gradient(90deg, #2e8b57, #3aa86a) !important;
  border-radius: 20px !important;
  transition: width 0.5s ease !important;
}
.truck-capacity-fill.warning { background: linear-gradient(90deg, #e8a735, #e07800) !important; }
.truck-capacity-fill.full { background: linear-gradient(90deg, #e05555, #c43c3c) !important; }
.capacity-label {
  font-size: 11px !important;
  color: #777 !important;
  margin-top: 4px !important;
  display: flex !important;
  justify-content: space-between !important;
}
.loaded-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  background: #e8f5ee !important;
  color: #2e8b57 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  padding: 3px 10px !important;
  border-radius: 20px !important;
  margin-top: 6px !important;
}

/* Items Grid */
.items-section {
  padding: 20px 16px !important;
}
.items-section-title {
  font-size: 15px !important;
  font-weight: 700 !important;
  margin-bottom: 4px !important;
  color: #333 !important;
}
.items-section-sub {
  font-size: 12px !important;
  color: #777 !important;
  margin-bottom: 16px !important;
}
.items-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px !important;
}
@media (min-width: 500px) {
  .items-grid { grid-template-columns: repeat(4, 1fr) !important; }
}
.item-card {
  background: #fff !important;
  border: 2px solid #dde8e2 !important;
  border-radius: 12px !important;
  padding: 12px 6px 10px !important;
  text-align: center !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  position: relative !important;
  user-select: none !important;
  -webkit-tap-highlight-color: transparent !important;
}
.item-card:hover { border-color: #2e8b57 !important; transform: translateY(-2px) !important; }
.item-card:active { transform: scale(0.94) !important; }
.item-card.has-qty {
  border-color: #2e8b57 !important;
  background: #e8f5ee !important;
}
.item-card .item-icon {
  width: 56px !important;
  height: 56px !important;
  margin: 0 auto 6px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.item-card .item-icon svg { width: 100% !important; height: 100% !important; }
.item-card .item-name {
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  color: #333 !important;
}
.item-badge {
  position: absolute !important;
  top: -6px !important;
  right: -6px !important;
  background: #ff6b35 !important;
  color: #fff !important;
  width: 24px !important;
  height: 24px !important;
  border-radius: 50% !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 2px 6px rgba(255,107,53,0.4) !important;
}
.item-card.has-qty .item-badge { display: flex !important; }
.item-remove {
  position: absolute !important;
  top: -6px !important;
  left: -6px !important;
  background: #e05555 !important;
  color: #fff !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  border: none !important;
  line-height: 1 !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2) !important;
  padding: 0 !important;
}
.item-card.has-qty .item-remove { display: flex !important; }

/* Flying animation */
.flying-item {
  position: fixed !important;
  z-index: 9999 !important;
  pointer-events: none !important;
  transition: all 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
  opacity: 1 !important;
}
.flying-item.fly {
  opacity: 0 !important;
  transform: scale(0.3) !important;
}

/* View Result Button */
.view-result-btn {
  display: none;
  margin: 0 16px 16px !important;
  padding: 18px !important;
  border: none !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #ff6b35, #e55a28) !important;
  color: #fff !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
  text-align: center !important;
  width: calc(100% - 32px) !important;
  box-shadow: 0 4px 16px rgba(255,107,53,0.3) !important;
}
.view-result-btn:active { transform: scale(0.97) !important; }

/* Result Panel */
.result-panel {
  background: #fff !important;
  margin: 0 16px 16px !important;
  border-radius: 14px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08) !important;
  overflow: hidden !important;
}
.result-header {
  background: linear-gradient(135deg, #2e8b57, #3aa86a) !important;
  color: #fff !important;
  padding: 20px !important;
  text-align: center !important;
}
.result-header .label { font-size: 13px !important; opacity: 0.9 !important; }
.result-header .price {
  font-size: 36px !important;
  font-weight: 800 !important;
  margin-top: 4px !important;
  color: #fff !important;
}
.result-header .price small { font-size: 15px !important; font-weight: 600 !important; }
.result-header .range {
  font-size: 12px !important;
  opacity: 0.8 !important;
  margin-top: 4px !important;
}
.result-breakdown { padding: 16px 20px !important; }
.result-breakdown h3 {
  font-size: 13px !important;
  font-weight: 700 !important;
  margin-bottom: 10px !important;
  color: #777 !important;
}
.bd-row {
  display: flex !important;
  justify-content: space-between !important;
  font-size: 13px !important;
  padding: 5px 0 !important;
  border-bottom: 1px solid #f0f0f0 !important;
}
.bd-row:last-child { border-bottom: none !important; }
.bd-row.total {
  border-top: 2px solid #2e8b57 !important;
  border-bottom: none !important;
  margin-top: 6px !important;
  padding-top: 10px !important;
  font-weight: 800 !important;
  font-size: 15px !important;
  color: #2e8b57 !important;
}
.result-note {
  padding: 12px 20px 16px !important;
  font-size: 11px !important;
  color: #777 !important;
  line-height: 1.7 !important;
  background: #fafcfb !important;
}

/* CTA Panel */
.cta-panel {
  margin: 0 16px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
.cta-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 16px !important;
  border-radius: 12px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  border: none !important;
  cursor: pointer !important;
}
.cta-tel { background: #2e8b57 !important; color: #fff !important; }
.cta-tel:hover { background: #246d45 !important; color: #fff !important; }
.cta-reset {
  background: none !important;
  color: #777 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  padding: 12px !important;
  cursor: pointer !important;
  border: 1.5px solid #dde8e2 !important;
  border-radius: 12px !important;
}
.cta-reset:hover { color: #2e8b57 !important; border-color: #2e8b57 !important; }

/* Phone Overlay */
.phone-overlay {
  display: none;
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
  background: rgba(0,0,0,0.5) !important;
  align-items: center !important;
  justify-content: center !important;
}
.phone-overlay.active { display: flex !important; }
.phone-modal {
  background: #fff !important;
  border-radius: 20px !important;
  width: 90% !important;
  max-width: 400px !important;
  padding: 32px 24px 24px !important;
  text-align: center !important;
  box-shadow: 0 12px 40px rgba(0,0,0,0.2) !important;
  animation: simModalIn 0.3s ease !important;
}
@keyframes simModalIn {
  from { opacity: 0; transform: translateY(30px) scale(0.95); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.phone-modal-icon {
  width: 56px !important;
  height: 56px !important;
  background: #ff6b35 !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto 16px !important;
}
.phone-modal-icon svg { width: 28px !important; height: 28px !important; }
.phone-modal h2 {
  font-size: 18px !important;
  font-weight: 800 !important;
  margin-bottom: 8px !important;
  color: #333 !important;
}
.modal-desc {
  font-size: 13px !important;
  color: #777 !important;
  margin-bottom: 20px !important;
  line-height: 1.7 !important;
}
.phone-input-wrap {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  border: 2px solid #dde8e2 !important;
  border-radius: 12px !important;
  padding: 12px 14px !important;
  margin-bottom: 16px !important;
}
.phone-input-wrap:focus-within { border-color: #ff6b35 !important; }
.phone-input-wrap svg { flex-shrink: 0 !important; color: #777 !important; }
.phone-input-wrap input {
  flex: 1 !important;
  border: none !important;
  outline: none !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #333 !important;
  background: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}
.phone-input-wrap input::placeholder { color: #ccc !important; font-weight: 400 !important; }
.phone-error {
  color: #e05555 !important;
  font-size: 12px !important;
  margin-top: -10px !important;
  margin-bottom: 12px !important;
  display: none;
}
.phone-submit-btn {
  width: 100% !important;
  padding: 16px !important;
  border: none !important;
  border-radius: 12px !important;
  background: #ff6b35 !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
}
.phone-submit-btn:hover { background: #e55a28 !important; }
.phone-back-btn {
  background: none !important;
  border: none !important;
  color: #777 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  margin-top: 12px !important;
  cursor: pointer !important;
  padding: 8px 16px !important;
}

/* CF7 inside modal */
.cf7-wrap .wpcf7-form input[type="tel"] {
  width: 100% !important;
  border: 2px solid #dde8e2 !important;
  border-radius: 12px !important;
  padding: 14px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  margin-bottom: 16px !important;
  outline: none !important;
}
.cf7-wrap .wpcf7-form input[type="tel"]:focus { border-color: #ff6b35 !important; }
.cf7-wrap .wpcf7-form input[type="submit"],
.cf7-wrap .wpcf7-form button[type="submit"] {
  width: 100% !important;
  padding: 16px !important;
  border: none !important;
  border-radius: 12px !important;
  background: #ff6b35 !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
}

/* Animations */
@keyframes simTruckUpgrade {
  0% { transform: scale(1); }
  30% { transform: scale(1.08); }
  60% { transform: scale(0.96); }
  100% { transform: scale(1); }
}
.truck-upgrade { animation: simTruckUpgrade 0.5s ease !important; }
@keyframes simBadgePop {
  0% { transform: scale(0); }
  60% { transform: scale(1.3); }
  100% { transform: scale(1); }
}
.badge-pop { animation: simBadgePop 0.3s ease !important; }
