/* Variation A: Dynamic & Playful Styles */

:root {
    --bs-font-sans-serif: "Noto Sans JP", sans-serif;
    --primary-color: #e63946;
    --secondary-color: #383947;
    --tertiary-color: #e6b89c;
    --wheat-color: #ead2ac;
    --bg-warm: #fffaf5;
}

body {
    background-color: var(--bg-warm);
    color: var(--secondary-color);
    overflow-x: hidden;
}

/* Rounded Corners & Organic Shapes */
.rounded-4, .card, .btn {
    border-radius: 1.5rem !important;
}

.rounded-pill {
    border-radius: 50rem !important;
}

/* Hero Section with Fluid Background */
.hero-section {
    position: relative;
    background: linear-gradient(135deg, #fffaf5 0%, #fff 100%);
    overflow: hidden;
}

.hero-grid-bg {
    display: none; /* Hide default grid in favor of blobs */
}

/* Organic Blobs Background */
.blob-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    filter: blur(60px);
    opacity: 0.6;
}

.blob {
    position: absolute;
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
    animation: blob-bounce 10s infinite ease-in-out alternate;
}

.blob-1 {
    top: -10%;
    left: -10%;
    width: 500px;
    height: 500px;
    background: var(--tertiary-color);
    opacity: 0.5;
    animation-duration: 12s;
}

.blob-2 {
    bottom: -10%;
    right: -10%;
    width: 600px;
    height: 600px;
    background: var(--wheat-color);
    opacity: 0.4;
    animation-duration: 15s;
}

.blob-3 {
    top: 20%;
    right: 10%;
    width: 300px;
    height: 300px;
    background: var(--primary-color);
    opacity: 0.2;
    animation-duration: 8s;
}

@keyframes blob-bounce {
    0% { transform: translate(0, 0) rotate(0deg); border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%; }
    100% { transform: translate(20px, 40px) rotate(20deg); border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }
}

/* Cards & Hover Effects */
.process-card, .service-card, .img-hover-container {
    border: none !important;
    background: rgba(255, 255, 255, 0.6) !important;
    backdrop-filter: blur(10px);
    box-shadow: 0 10px 30px rgba(56, 57, 71, 0.05);
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease;
}

.process-card:hover, .service-card:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 15px 40px rgba(230, 57, 70, 0.15);
}

.img-hover-zoom {
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

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

/* Typography Overrides */
h1, h2, h3, h4, h5, .display-1, .display-2, .display-3, .display-4 {
    font-family: "Noto Sans JP", sans-serif !important;
    letter-spacing: -0.02em;
    color: var(--secondary-color);
}

.text-gradient {
    background: linear-gradient(45deg, var(--primary-color), #ff8a5b);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Navbar */
.navbar {
    background: rgba(255, 250, 245, 0.9) !important;
    backdrop-filter: blur(10px);
}

/* Buttons */
.btn-dark {
    background-color: var(--secondary-color);
    border: none;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.btn-dark:hover {
    background-color: var(--primary-color);
    transform: scale(1.05);
    box-shadow: 0 5px 15px rgba(230, 57, 70, 0.4);
}

/* Section Backgrounds */
.bg-slate-50 {
    background-color: rgba(234, 210, 172, 0.1) !important; /* Extremely light wheat */
}

.bg-slate-900 {
    background-color: var(--secondary-color) !important;
}

footer.bg-slate-900 {
    background: linear-gradient(180deg, var(--secondary-color) 0%, #2a2b36 100%) !important;
}
