html, body {
    overflow-x: hidden;
    background-color: #fefae0;
    color: #1d1c0d;
}

.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

.organic-shape {
    border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
}

.soft-card-shadow {
    box-shadow: 0 20px 25px -5px rgba(110, 92, 55, 0.05), 0 8px 10px -6px rgba(110, 92, 55, 0.05);
}

.hero-pattern {
    background-color: #fefae0;
    background-image: radial-gradient(#d4c4b7 0.5px, transparent 0.5px);
    background-size: 24px 24px;
}

.tonal-card {
    box-shadow: 0 4px 20px rgba(110, 92, 55, 0.1);
}

.home-photo-fade {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.home-photo-fade.is-visible {
    opacity: 1;
    transform: none;
}

/* Subtle hover zoom on photo cards */
.img-zoom img {
    transition: transform 0.5s ease;
}

.img-zoom:hover img {
    transform: scale(1.06);
}

/* Smoothly animated FAQ / info accordions (non-native, class-toggled) */
.faq-body {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease;
}

.faq-body.faq-open {
    grid-template-rows: 1fr;
}

.faq-body-inner {
    overflow: hidden;
    min-height: 0;
}

/* Gentle shake for form validation errors */
@keyframes shake {
    10%, 90% { transform: translateX(-1px); }
    20%, 80% { transform: translateX(2px); }
    30%, 50%, 70% { transform: translateX(-4px); }
    40%, 60% { transform: translateX(4px); }
}

.shake {
    animation: shake 0.5s ease;
}

/* Soft pop-in for the success checkmark */
@keyframes pop-in {
    0% { transform: scale(0.5); opacity: 0; }
    60% { transform: scale(1.08); opacity: 1; }
    100% { transform: scale(1); }
}

.pop-in {
    animation: pop-in 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@media (prefers-reduced-motion: reduce) {
    .img-zoom img,
    .faq-body,
    .shake,
    .pop-in {
        animation: none !important;
        transition: none !important;
    }
}
