@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&family=Shippori+Mincho:wght@500;700&display=swap');

body {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    scroll-behavior: smooth;
}

.font-serif {
    font-family: 'Shippori Mincho', serif;
}

/* アニメーション定義 */
.fade-in-up {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

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

.pulse-btn {
    animation: pulse-custom 2s infinite;
}

@keyframes pulse-custom {
    0% { box-shadow: 0 0 0 0 rgba(217, 119, 6, 0.7); transform: scale(1); }
    70% { box-shadow: 0 0 0 15px rgba(217, 119, 6, 0); transform: scale(1.02); }
    100% { box-shadow: 0 0 0 0 rgba(217, 119, 6, 0); transform: scale(1); }
}

.floating-cta {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 50;
    width: 90%;
    max-width: 400px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.3);
    display: none; /* JSでスクロール後に表示 */
}

.hero-gradient {
    background: linear-gradient(135deg, #FFF5F7 0%, #FFF0E6 100%);
}

.check-icon {
    color: #FF8BA7;
    margin-right: 0.5rem;
}

/* フォームのスタイル調整 */
input[type="radio"], input[type="checkbox"] {
    accent-color: #FF8BA7;
    width: 1.2rem;
    height: 1.2rem;
}

.form-label {
    display: block;
    font-weight: bold;
    margin-bottom: 0.5rem;
    color: #4a5568;
}

.required-badge {
    background-color: #E53E3E;
    color: white;
    font-size: 0.7rem;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    margin-left: 0.5rem;
    vertical-align: middle;
}

.optional-badge {
    background-color: #718096;
    color: white;
    font-size: 0.7rem;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    margin-left: 0.5rem;
    vertical-align: middle;
}

/* FAQ アコーディオン */
details summary::-webkit-details-marker {
    display: none;
}

details summary {
    list-style: none;
}

details[open] summary {
    border-bottom: none;
}

/* ヘッダー非表示 */
header {
    transition: transform 0.3s ease, opacity 0.3s ease;
}

header.header-hidden {
    transform: translateY(-100%);
    opacity: 0;
}

/* モーダルスタイル */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100;
}

.modal-overlay.hidden {
    display: none;
}

.modal-content {
    background: white;
    padding: 2rem;
    border-radius: 1rem;
    max-width: 400px;
    margin: 1rem;
    animation: modalFadeIn 0.3s ease;
}

@keyframes modalFadeIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* POLAハンドトリートメント注意書き (CSSにて追加) */
.pola-note::after {
    content: "※3/15(日)・3/22(日)は実施しておりません。";
    display: block;
    color: #ef4444; /* Tailwind bg-red-500 */
    font-size: 0.75rem; /* Tailwind text-xs */
    font-weight: bold;
    margin-top: 0.25rem;
}
