/* Font */
body {
    font-family: 'Noto Sans JP', sans-serif;
}

/* Smooth scroll */
html {
    scroll-behavior: smooth;
}

/* Fade in animation */
.fade-in-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s, transform 0.6s;
}

.fade-in-up.visible {
    opacity: 1;
    transform: translateY(0);
}

/* File drop area */
.file-drop-area {
    border: 2px dashed #cbd5e1;
    transition: all 0.3s;
}

.file-drop-area:hover,
.file-drop-area.drag-over {
    border-color: #ff5722;
    background: #fff7ed;
}

/* Map container */
#map {
    min-height: 300px;
}

/* Search result cards */
.result-card-in-area {
    background: linear-gradient(135deg, #ecfdf5, #d1fae5);
    border: 2px solid #10b981;
}

.result-card-out-area {
    background: linear-gradient(135deg, #fffbeb, #fef3c7);
    border: 2px solid #f59e0b;
}

/* FAQ accordion */
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
}

.faq-answer.open {
    max-height: 500px;
}

/* Floating Elements Transition (LP G style) */
.floating-hidden {
    transform: translateY(100px);
    opacity: 0;
    pointer-events: none;
}

.floating-visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

/* Form section slide in */
#application-form {
    transition: all 0.5s ease-out;
}

/* Japan Map Prefecture Styles */
.japan-map .pref {
    stroke: #fff;
    stroke-width: 1;
    stroke-linejoin: round;
    fill-rule: nonzero;
    transition: fill-opacity 0.2s ease;
}

.japan-map .pref.covered {
    fill: #ff5722;
    fill-opacity: 0.75;
    cursor: pointer;
}

.japan-map .pref.covered:hover {
    fill-opacity: 1;
}

.japan-map .pref.uncovered {
    fill: #e2e8f0;
    fill-opacity: 0.9;
}

.japan-map .boundary-line line {
    stroke: #cbd5e1;
    stroke-width: 1;
    stroke-dasharray: 4 3;
}

/* SP only */
@media (max-width: 767px) {
    .sp-only {
        display: inline;
    }
}

@media (min-width: 768px) {
    .sp-only {
        display: none;
    }
}
