/* AdoPet Wizard Styles
 * ---------------------
 * 14‑step LOST/FOUND wizard, registration wizard, map step, status
 * cards, progress headers and floating-label behaviour.
 */

/* Utility: generic hidden helper, used by Step 4 cropper wrapper */
.hidden {
    display: none !important;
}

/* Wizard base spacing/typography */
.hero-wizard {
    --wizard-pad: 48px;
    max-width: 100%;
}

.hero-wizard .wizard-step {
    padding: var(--wizard-pad) 24px;
    min-height: 400px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.hero-wizard .wizard-step h3 {
    margin: 6px 0 10px;
    text-align: center;
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--adopet-text, #222222);
    line-height: 1.3;
}

.hero-wizard .wizard-step p {
    margin: 0 0 24px 0;
    color: var(--adopet-text-secondary, #555555);
    font-size: 1.05rem;
    line-height: 1.6;
}

.hero-wizard .wizard-step label {
    display: block;
    margin-bottom: 12px;
    font-size: 1rem;
    font-weight: 600;
    color: var(--adopet-text, #222222);
}

.hero-wizard .wizard-actions {
    margin-top: 32px;
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

/* LOST / FOUND mode controls above wizard */
.wizard-controls {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    margin: 8px 0 6px;
    justify-content: center;
}

.found-mode .wizard-controls .btn-secondary {
    border-radius: 50px;
    background-color: var(--found-color);
    color: #ffffff;
    border: 1px solid #000000;
    padding: 10px 20px;
    transition: all 0.3s ease;
}

.found-mode .wizard-controls .btn-secondary:hover {
    background-color: #267347;
    transform: translateY(-1px);
}

.lost-mode .wizard-controls .btn-secondary {
    border-radius: 50px;
    background-color: var(--lost-color);
    color: #ffffff;
    border: 1px solid #000000;
    padding: 10px 20px;
    transition: all 0.3s ease;
}

.lost-mode .wizard-controls .btn-secondary:hover {
    background-color: #8b1623;
    transform: translateY(-1px);
}

/* Wizard numbered progress header */
.wizard-header {
    font-family: 'Montserrat', sans-serif;
    margin-bottom: 40px;
    padding: 0 24px;
}

.wizard-steps {
    display: flex;
    justify-content: space-between;
    position: relative;
    margin-bottom: 20px;
    gap: 12px;
}

.wizard-header .step-progress-compact {
    display: none;
    font-size: 0.95rem;
    margin-top: 8px;
}

@media (max-width:576px){
  .wizard-header .step-circles { display:none; }
  .wizard-header .step-progress-compact {
    display:block;
    text-align:center;
    font-weight:600;
  }
}

@media (min-width:577px) and (max-width:991px){
  .wizard-header .step-circles {
    overflow-x:auto;
    white-space:nowrap;
    -webkit-overflow-scrolling:touch;
  }
  .wizard-header .step-circles .step-circle {
    display:inline-block;
    margin-right:8px;
  }
}

/* Mobile – widen Step 10 date input for better tap target */
@media (max-width:576px){
  .hero-wizard--register .wizard-step[data-step="10"] .wizard-date-input-wrapper,
  .hero-wizard--register .wizard-step[data-step="10"] input[type="date"] {
    width: 100% !important;
    min-width: 100% !important;
  }
}

.step-circle {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background-color: #e5e7eb;
    color: #6b7280;
    font-weight: 700;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    position: relative;
}

.step-circle::after {
    content: '';
    position: absolute;
    width: calc(100% + 8px);
    height: calc(100% + 8px);
    border-radius: 50%;
    border: 2px solid transparent;
    transition: all 0.3s ease;
}

.step-circle.active {
    background-color: var(--wizard-color);
    color: #ffffff;
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.step-circle.active::after {
    border-color: var(--wizard-color);
    opacity: 0.3;
}

.step-circle.completed {
    background-color: var(--wizard-color);
    color: #ffffff;
    opacity: 0.8;
}

.wizard-header .wizard-progress {
    position: relative;
    height: 8px;
    background-color: #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
}

.wizard-header .wizard-progress .bar {
    height: 100%;
    width: 0%;
    background-color: var(--wizard-color);
    transition: width 0.4s ease;
}

.wizard-header.lost {
    --wizard-color: var(--lost-color);
}

.wizard-header.found {
    --wizard-color: var(--found-color);
}

/* Shared wizard containers from adopet-public.css */
.adopet-wizard-page {
    min-height: 100vh;
    display: flex;
    align-items: stretch;
    justify-content: center;
    padding: 40px 16px;
    background: #f5f5f7;
}

.adopet-wizard-card {
    max-width: 960px;
    width: 100%;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.16);
    padding: 32px 32px 28px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.hero-wizard--register {
    display: flex;
    flex-direction: column;
    gap: 24px;
    font-family: 'Montserrat', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.hero-wizard--register .wizard-header {
    margin-bottom: 8px;
}

.hero-wizard--register .wizard-body {
    margin-top: 12px;
}

.hero-wizard--register .wizard-step {
    padding: 24px 0;
}

.hero-wizard--register .wizard-step-title {
    margin: 4px 0 8px;
    font-size: 1.35rem;
    font-weight: 700;
    text-align: left;
    color: #111827;
}

.hero-wizard--register .wizard-step-subtitle {
    margin: 0 0 16px;
    font-size: 0.95rem;
    color: #4b5563;
}

/* Wizard grid + floating labels */
.wizard-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    max-width: 640px;
}

.hero-wizard--register .wizard-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    max-width: 100%;
}

.hero-wizard--register .wizard-step[data-step="1"] .wizard-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    max-width: fit-content;
    justify-content: center;
    margin: 0 auto;
}

/* Step‑scoped centering for single‑field steps */
.hero-wizard--register .wizard-step[data-step="2"] .wizard-floating-group,
.hero-wizard--register .wizard-step[data-step="3"] .wizard-floating-group,
.hero-wizard--register .wizard-step[data-step="7"] .wizard-floating-group,
.hero-wizard--register .wizard-step[data-step="9"] .wizard-floating-group,
.hero-wizard--register .wizard-step[data-step="12"] .wizard-floating-group {
    width: fit-content;
    margin: 0 auto;
}

.hero-wizard--register .wizard-grid .wizard-floating-group {
    position: relative;
    width: 100%;
    max-width: 420px;
}

.wizard-floating-group {
    position: relative;
}

.wizard-input {
    width: 100%;
    max-width: 420px;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid #d1d5db;
    font-size: 0.95rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.hero-wizard--register .wizard-input {
    width: 100%;
    padding: 12px 12px 8px;
    border-radius: 8px;
    border: 2px solid #d1d5db;
}

.wizard-input:focus {
    outline: none;
    border-color: var(--lost-color);
    box-shadow: 0 0 0 3px rgba(171, 28, 45, 0.16);
    background-color: #ffffff;
}

.hero-wizard--register .wizard-input:focus {
    border-color: var(--lost-color);
    box-shadow: 0 0 0 3px rgba(171, 28, 45, 0.12);
}

.wizard-label {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: #ffffff;
    padding: 0 4px;
    font-size: 0.78rem;
    color: #6b7280;
    pointer-events: none;
    white-space: nowrap;
    max-width: calc(100% - 24px);
    overflow: hidden;
    text-overflow: ellipsis;
    transition: transform 0.15s ease, top 0.15s ease, font-size 0.15s ease, color 0.15s ease;
}

.hero-wizard--register .wizard-label {
    font-size: 0.85rem;
}

.wizard-floating-group.is-focused .wizard-label,
.wizard-floating-group.has-value .wizard-label {
    top: 0;
    transform: translateY(-50%) scale(0.9);
    font-size: 0.72rem;
    color: var(--wizard-accent, var(--lost-color));
}

.wizard-label-inline {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 6px;
    color: #374151;
}

/* Wizard textarea, hints & validation */
.wizard-textarea {
    width: 100%;
    max-width: 640px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #d1d5db;
    font-size: 0.95rem;
    resize: vertical;
}

.hero-wizard--register .wizard-textarea {
    border-radius: 8px;
    border: 2px solid #d1d5db;
    min-height: 120px;
}

.wizard-textarea:focus {
    outline: none;
    border-color: var(--lost-color);
    box-shadow: 0 0 0 3px rgba(171, 28, 45, 0.16);
}

.wizard-field-hint {
    margin-top: 6px;
    font-size: 0.8rem;
    color: #9ca3af;
}

.wizard-floating-group .wizard-error,
.wizard-textarea-group .wizard-error {
    display: block;
    margin-top: 4px;
    font-size: 0.8rem;
    color: #dc2626;
}

.wizard-floating-group .wizard-input.is-invalid,
.wizard-textarea-group .wizard-textarea.is-invalid {
    border-color: #dc2626;
}

.wizard-floating-group .wizard-input.is-valid,
.wizard-textarea-group .wizard-textarea.is-valid {
    border-color: #22c55e;
}

.wizard-char-counter {
    display: block;
    margin-top: 4px;
    font-size: 0.8rem;
    color: #6b7280;
    text-align: right;
}

.wizard-char-counter.is-invalid {
    color: #dc2626;
}

.wizard-char-counter.is-valid {
    color: #22c55e;
}

/* Status cards (Steps 6 & 11) */
.wizard-status-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

/* Registration wizard – stack cards and center the group, but keep full intrinsic card width */
.hero-wizard--register .wizard-status-grid {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    margin-top: 4px;
    max-width: 260px;
    margin-left: auto;
    margin-right: auto;
}

.wizard-status-card {
    border-radius: 12px;
    border: 1px solid #d1d5db;
    padding: 16px 20px;
    text-align: left;
    background: #ffffff;
    cursor: pointer;
    width: 100%;
    max-width: 100%;
    transition: border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease;
}

.hero-wizard--register .wizard-status-card {
    text-align: center;
    border-radius: 14px;
    padding: 10px 12px;
}

/* Step‑scoped equal-width status/gender buttons with vertical stacking of title + copy */
.hero-wizard--register .wizard-step[data-step="6"] .wizard-status-card,
.hero-wizard--register .wizard-step[data-step="11"] .wizard-status-card {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.wizard-status-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: #000000;
}

.wizard-status-copy {
    display: block;
    margin-top: 6px;
    font-size: 0.8rem;
    line-height: 1.5;
    color: #6b7280;
}

.wizard-status-card.is-selected {
    background: var(--lost-color);
    border-color: var(--lost-color);
    color: #ffffff;
}

.wizard-status-card.is-selected .wizard-status-title,
.wizard-status-card.is-selected .wizard-status-copy {
    color: #ffffff;
}

.hero-wizard--register .wizard-status-card:not(.is-selected):hover {
    background-color: var(--lost-color) !important;
    border-color: var(--lost-color) !important;
    color: #ffffff !important;
}

.hero-wizard--register .wizard-status-card:not(.is-selected):hover .wizard-status-title,
.hero-wizard--register .wizard-status-card:not(.is-selected):hover .wizard-status-copy {
    color: #ffffff !important;
}

/* Map + address blocks */
.wizard-map-block {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
}

/* Center the map block within Step 8 only */
.hero-wizard--register .wizard-step[data-step="8"] .wizard-map-block {
    align-items: center;
    margin: 0 auto;
}

.wizard-location-field {
    max-width: 420px;
}

.wizard-map-preview {
    border-radius: 12px;
    overflow: hidden;
    background: #e5e7eb;
    min-height: 180px;
}

/* Step 4 – cropper wrapper and preview stability */
.hero-wizard--register .wizard-step[data-step="4"] .adopet-image-crop-tool {
    border: 2px dashed #d1d5db;
    border-radius: 12px;
    padding: 16px;
}

.hero-wizard--register .wizard-step[data-step="4"] .cropper-container,
.hero-wizard--register .wizard-step[data-step="4"] .preview-image {
    min-height: 220px;
    background: #f9fafb;
}

/* Make wrapper positioned so absolute top-right variants align */
.hero-wizard--register .wizard-step[data-step="4"] .adopet-image-crop-tool .cropper-wrapper {
    position: relative;
}

/* Cropper remove button (when cropper active) */
.hero-wizard--register .wizard-step[data-step="4"] .wizard-photo-remove--cropper {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 40;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    background: var(--lost-color, #ab1c2d);
    color: #fff;
    border: 0;
    font-size: 18px;
    cursor: pointer;
}

.hero-wizard--register .wizard-step[data-step="4"] .adopet-image-crop-tool.has-image .wizard-photo-remove--cropper {
    display: flex;
}

/* Step 4 – upload layout & controls */
.hero-wizard--register .wizard-step[data-step="4"] .upload-container {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
}

.hero-wizard--register .wizard-step[data-step="4"] .upload-area {
    position: relative;
    border-radius: 14px;
    border: 1px dashed #d1d5db;
    padding: 18px 16px;
    width: 100%;
    max-width: 420px;
    text-align: center;
    background: #f9fafb;
}

.hero-wizard--register .wizard-step[data-step="4"] .upload-label {
    display: block;
}

.hero-wizard--register .wizard-step[data-step="4"] .upload-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin: 0 auto 8px;
    font-size: 36px;
}

.hero-wizard--register .wizard-step[data-step="4"] .upload-text,
.hero-wizard--register .wizard-step[data-step="4"] .upload-area p {
    text-align: center;
    margin: 4px 0;
}

.hero-wizard--register .wizard-step[data-step="4"] #fileInput {
    display: block;
    margin: 8px auto 0;
}

.hero-wizard--register .wizard-step[data-step="4"] .instructions {
    max-width: 420px;
    margin: 0 auto;
    font-size: 0.9rem;
    color: #4b5563;
}

.hero-wizard--register .wizard-step[data-step="4"] .instructions h3 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 4px;
}

.hero-wizard--register .wizard-step[data-step="4"] .instructions ul {
    padding-left: 18px;
    margin: 0;
}

.hero-wizard--register .wizard-step[data-step="4"] .preview-container {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
    margin-top: 16px;
}

.hero-wizard--register .wizard-step[data-step="4"] .preview-box {
    flex: 1 1 180px;
    max-width: 220px;
    text-align: center;
}

.hero-wizard--register .wizard-step[data-step="4"] .preview-title {
    font-size: 0.9rem;
    margin-bottom: 6px;
}

.hero-wizard--register .wizard-step[data-step="4"] .preview-image {
    width: 100%;
    border-radius: 10px;
    object-fit: cover;
}

/* Hide cropper/preview images until they have a real src */
.adopet-image-crop-tool img.preview-image[src=""],
.adopet-image-crop-tool img.preview-image:not([src]),
.adopet-image-crop-tool img#imageToCrop[src=""],
.adopet-image-crop-tool img#imageToCrop:not([src]) {
    display: none;
}

.hero-wizard--register .wizard-step[data-step="4"] .zoom-controls,
.hero-wizard--register .wizard-step[data-step="4"] .rotation-controls,
.hero-wizard--register .wizard-step[data-step="4"] .cropper-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 10px;
}

.hero-wizard--register .wizard-step[data-step="4"] .wizard-photo-drop {
    position: relative;
    margin-top: 16px;
}

/* Step 4 – dedicated remove button overlay on final main preview */
.hero-wizard--register .wizard-step[data-step="4"] .wizard-photo-drop .wizard-photo-remove {
    position: absolute;
    top: 6px;
    right: 6px;
    background: var(--lost-color);
    color: #fff;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wizard-map-preview iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: none;
}

/* Date field wrapper (Step 10) */
.wizard-date-input-wrapper {
    position: relative;
}

.wizard-date-input-wrapper .wizard-input.is-valid {
    border-color: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.18);
}

.wizard-date-input-wrapper .wizard-input.is-invalid {
    border-color: #dc2626;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.16);
}

/* Step‑scoped centering + internal icon alignment for Step 10 date field */
.hero-wizard--register .wizard-step[data-step="10"] .wizard-label-inline {
    text-align: center;
    margin: 0 auto 6px;
}

.hero-wizard--register .wizard-step[data-step="10"] .wizard-date-input-wrapper {
    position: relative !important;
    display: block;
    width: fit-content;
    margin: 0 auto;
}

.hero-wizard--register .wizard-step[data-step="10"] .wizard-date-input-wrapper .wizard-input {
    display: block;
    width: fit-content;
    padding-right: 42px;
    margin: 0 auto;
}

.hero-wizard--register .wizard-step[data-step="10"] .wizard-date-input-wrapper .wizard-date-icon {
    position: absolute !important;
    right: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
}

/* Password / eye toggle */
.wizard-password-group {
    max-width: 420px;
}

/* Step 14 – center entire password group within the wizard */
.hero-wizard--register .wizard-step[data-step="14"] .wizard-password-group {
    margin: 0 auto;
}

/* Step 14 – vertical space between password group and alerts */
.hero-wizard--register .wizard-step[data-step="14"] .wizard-password-group {
    margin-bottom: 24px;
}

/* Step 14 – legend/labels padding inside alerts fieldset (and other inline labels) */
.hero-wizard--register .wizard-step[data-step="14"] .wizard-label-inline {
    display: block;
    text-align: center;
    margin: 0 auto 8px;
    width: 100%;
    padding-top: 60px !important; /* Overrides Elementor/theme spacing for Step 14 only */
}

/* Step 14 – Alerts legend (section title) */
.hero-wizard--register .wizard-step[data-step="14"] #wizard-alerts-title {
    text-align: left !important;
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    margin-bottom: 12px;
    padding-top: 0 !important;
}

/* Global modal + wizard password wrapper: keep layout inline but allow absolute eye button */
.wizard-password-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
}

.wizard-password-toggle {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    width: auto;
    height: auto;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    cursor: pointer;
}

.wizard-password-toggle:hover,
.wizard-password-toggle:focus {
    background: transparent !important;
    color: inherit;
}

/* Position the eye icon inside the input for modal + wizard */
.wizard-password-wrapper .wizard-password-toggle {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
}

/* Override WordPress emoji sprite sizing inside the eye toggle only */
.wizard-password-toggle .emoji {
    width: 18px !important;
    height: 18px !important;
    display: block !important;
}

/* Step 14 – center password wrapper within the wizard, preserve Step 1 */
.hero-wizard--register .wizard-step[data-step="14"] .wizard-password-wrapper {
    margin: 0 auto;
    width: fit-content;
}

/* Step 14 – tighten password label vertical spacing (match Step 12) */
.hero-wizard--register .wizard-step[data-step="14"] .wizard-password-group .wizard-label-inline {
    padding-top: 0 !important;
    margin-top: 0;
}

/* Step 14 – alerts fieldset stacked vertically with consistent spacing */
.hero-wizard--register .wizard-step[data-step="14"] .wizard-alerts {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Global alerts layout within the registration wizard */
.hero-wizard--register .wizard-alerts {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px;
}

/* Step 14 – submit / back layout aligned to the right (matches previous steps) */
.hero-wizard--register .wizard-step[data-step="14"] .wizard-actions {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center;
    gap: 12px;
}

/* Step 14 – keep Back button next to Submit (no auto push to far left) */
.hero-wizard--register .wizard-step[data-step="14"] .wizard-actions .wizard-prev {
    margin-right: 0 !important;
}

.hero-wizard--register .wizard-step[data-step="14"] .adopet-submit-btn {
    width: auto !important;
    margin-left: 0 !important;
}

.wizard-beta-badge {
    background: #fec76f;
    color: #fff;
    padding: 2px 6px;
    border-radius: 6px;
    font-size: 0.65rem;
    margin-left: 6px;
}

/* Wizard actions */
.wizard-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 24px;
}

.hero-wizard--register .wizard-actions {
    margin-top: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.hero-wizard--register .btn-primary {
    background: linear-gradient(135deg, #ab1c2d 0%, #c73650 100%);
    border: 1px solid rgba(199, 54, 80, 0.9);
    color: #ffffff;
    border-radius: 999px;
    padding: 10px 20px;
    font-weight: 700;
    font-size: 0.95rem;
    cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s;
}

.hero-wizard--register .btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(171, 28, 45, 0.35);
}

.hero-wizard--register .btn-primary:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    box-shadow: none;
}

.hero-wizard--register .btn-secondary {
    background: #f3f4f6;
    border-radius: 999px;
    border: 1px solid #d1d5db;
    padding: 8px 16px;
    font-size: 0.9rem;
    font-weight: 500;
    color: #111827;
    cursor: pointer;
}

.hero-wizard--register .btn-link {
    background: transparent;
    border: none;
    padding: 8px 0;
    font-size: 0.85rem;
    color: #6b7280;
    text-decoration: underline;
    cursor: pointer;
}

/* Lost/Found wizard map layout & filters (Step 8) */
.hero-wizard[data-type] {
  --accent-color: var(--lost-color);
  --wizard-accent: var(--lost-color);
}

.hero-wizard[data-type="found"] {
  --accent-color: var(--found-color);
  --wizard-accent: var(--found-color);
}

.hero-wizard .wizard-map-layout {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  gap: 0;
}

.hero-wizard .filter-sidebar {
  width: 100%;
  background: #ffffff;
  position: sticky;
  top: 0;
  z-index: 10;
  border-right: 1px solid #e5e7eb;
}

.hero-wizard .filter-header {
  background: #ffffff;
  padding: 16px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #d1d5db;
}

.hero-wizard .filter-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--accent-color);
  margin: 0;
}

.hero-wizard .filter-section {
  border-bottom: 1px solid #d1d5db;
}

.hero-wizard .filter-summary {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 20px;
  background: none;
  border: none;
  font-size: 14px;
  font-weight: 700;
  color: #1f2937;
  cursor: pointer;
}

.hero-wizard .filter-content {
  padding: 0 20px 16px;
  display: none;
}

.hero-wizard .filter-section[open] .filter-content {
  display: block;
}

.hero-wizard .filter-options {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.hero-wizard .filter-option {
  display: flex;
  align-items: center;
  gap: 12px;
}

.hero-wizard .filter-option input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--accent-color);
}

.hero-wizard .location-search,
.hero-wizard .date-select {
  width: 100%;
  padding: 12px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 14px;
}

/* Microchip view + list/map toggle */
.hero-wizard .view-toggle {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 6;
    display: flex;
    gap: 8px;
    background: #ffffff;
    padding: 8px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

.hero-wizard .view-toggle-button {
    padding: 8px 12px;
    border: 1px solid #e5e7eb;
    background: #ffffff;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    transition: all 0.2s;
}

.hero-wizard .view-toggle-button.active {
    background: var(--accent-color);
    color: #ffffff;
    border-color: var(--accent-color);
}

/* Registration wizard: LOST/FOUND pet cards overrides inside wizard
   (kept here so Elementor overrides are contained). */
.hero-wizard .lost-found-pet-card .lost-found-pet-info {
    padding: 20px 24px !important;
}

.hero-wizard .lost-found-pet-card .lost-found-reporter,
.hero-wizard .elementor-widget .lost-found-pet-card .lost-found-reporter {
    font-size: 15px !important;
    color: #6b7280 !important;
    margin-bottom: 12px !important;
    font-style: italic !important;
}

.hero-wizard .lost-found-pet-card .reporter-name,
.hero-wizard .elementor-widget .lost-found-pet-card .reporter-name {
    font-weight: 600 !important;
    color: #374151 !important;
    font-style: normal !important;
}

.hero-wizard .lost-found-pet-card h2.lost-found-pet-name,
.hero-wizard .elementor-widget .lost-found-pet-card h2.lost-found-pet-name {
    font-size: 24px !important;
    font-weight: 700 !important;
    margin-bottom: 12px !important;
    line-height: 1.2 !important;
    text-align: left !important;
}

.hero-wizard .lost-found-pet-card.lost-status h2.lost-found-pet-name {
    color: var(--lost-color) !important;
}

.hero-wizard .lost-found-pet-card.found-status h2.lost-found-pet-name {
    color: var(--found-color) !important;
}

.hero-wizard .lost-found-pet-card .lost-found-pet-detail,
.hero-wizard .elementor-widget .lost-found-pet-card .lost-found-pet-detail {
    font-size: 14px !important;
    color: #4b5563 !important;
    margin-bottom: 8px !important;
}

.hero-wizard .lost-found-pet-card .lost-found-pet-detail strong {
    color: #1f2937 !important;
    font-weight: 600 !important;
}

.hero-wizard .lost-found-pet-card .lost-found-actions,
.hero-wizard .elementor-widget .lost-found-pet-card .lost-found-actions {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-top: 16px !important;
    gap: 12px !important;
}

.hero-wizard .lost-found-pet-card .lost-found-contact-btn,
.hero-wizard .elementor-widget .lost-found-pet-card .lost-found-contact-btn {
    flex: 1 !important;
    padding: 12px 20px !important;
    border-radius: 25px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    text-align: center !important;
}

.hero-wizard .lost-found-pet-card.lost-status .lost-found-contact-btn,
.hero-wizard .elementor-widget .lost-found-pet-card.lost-status .lost-found-contact-btn {
    background-color: var(--lost-color) !important;
    color: #ffffff !important;
}

.hero-wizard .lost-found-pet-card.found-status .lost-found-contact-btn,
.hero-wizard .elementor-widget .lost-found-pet-card.found-status .lost-found-contact-btn {
    background-color: var(--found-color) !important;
    color: #ffffff !important;
}

.hero-wizard .lost-found-pet-card .lost-found-contact-btn:hover,
.hero-wizard .elementor-widget .lost-found-pet-card .lost-found-contact-btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

/* Step 5 – image delete button inside each photo slot */
.wizard-photo-remove {
    display: none;
    position: absolute;
    top: 6px;
    right: 6px;
}

.pet-photo-slot.has-image .wizard-photo-remove {
    display: flex;
}

.hero-wizard--register .wizard-step[data-step="5"] .wizard-photo-remove {
    background: var(--lost-color);
    color: #fff;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
}

/* Step 5 – gallery grid layout + slot base styling */
.hero-wizard--register .wizard-step[data-step="5"] .pet-photo-upload-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-areas:
      "main main main"
      "body face markings";
    gap: 12px;
    align-items: start;
}

/* Main slot spans full width on first row */
.hero-wizard--register .wizard-step[data-step="5"] .pet-photo-slot[data-slot="main-extra"] {
    grid-area: main;
    min-height: 260px;
}

.hero-wizard--register .wizard-step[data-step="5"] .pet-photo-slot[data-slot="full-body"] {
    grid-area: body;
}

.hero-wizard--register .wizard-step[data-step="5"] .pet-photo-slot[data-slot="face"] {
    grid-area: face;
}

.hero-wizard--register .wizard-step[data-step="5"] .pet-photo-slot[data-slot="markings"] {
    grid-area: markings;
}

.hero-wizard--register .wizard-step[data-step="5"] .pet-photo-slot {
    position: relative;
    border: 1px dashed #e6e7e9;
    border-radius: 8px;
    padding: 12px;
    min-height: 120px;
    background: #fff;
}

.hero-wizard--register .wizard-step[data-step="5"] .pet-photo-main-inner {
    min-height: 220px;
    background-position: center;
    background-size: cover;
    border-radius: 8px;
}

/* Step 5 – preview area inside small slots */
.hero-wizard--register .wizard-step[data-step="5"] .wizard-photo-thumb {
    width: 100%;
    min-height: 140px;
    border-radius: 8px;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

/* Step 5 – placeholder icons sizing */
.hero-wizard--register .wizard-step[data-step="5"] .pet-photo-placeholder-icon {
    width: 40px;
    height: 40px;
    margin: 12px auto 8px;
    background-size: contain;
    background-repeat: no-repeat;
}

.hero-wizard--register .wizard-step[data-step="5"] .pet-photo-placeholder-img {
    max-width: 100%;
    max-height: 100%;
    display: block;
}

.hero-wizard--register .wizard-step[data-step="5"] .pet-photo-small-label {
    text-align: center;
    font-size: 0.85rem;
}

/* Step 4 – "no photo" helper copy */
.no-photo-note {
    text-align: center;
    margin-bottom: 8px;
    color: var(--text-secondary, #6b7280);
}

/* Step 4 – "no photo" helper copy */
.no-photo-note {
    text-align: center;
    margin-bottom: 8px;
    color: var(--text-secondary, #6b7280);
}
