:root {
    --color-primary: #1B4332;
    --color-secondary: #74C69D;
    --color-accent: #40916C;
    --color-bg: #FDFDFA;
    --color-text: #1A2421;
    --transition-smooth: all 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

body {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    background-color: var(--color-bg);
    color: var(--color-text);
    line-height: 1.85;
    letter-spacing: 0.08em;
    -webkit-font-smoothing: antialiased;
    margin: 0;
}

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

.l-header {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(27, 67, 50, 0.08);
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 3000;
}

/* Carousel */
.c-carousel {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    background-color: #f3f4f6;
}
.c-carousel__track {
    display: flex;
    transition: var(--transition-smooth);
    height: 100%;
}
.c-carousel__slide {
    flex: 0 0 100%;
    position: relative;
    aspect-ratio: 16/9;
}
@media (min-width: 1024px) {
    .c-carousel__slide { aspect-ratio: 21/9; }
}

.c-carousel__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.75);
    transition: transform 15s linear;
}
.c-carousel__slide.is-active .c-carousel__image {
    transform: scale(1.1);
}

/* Buttons */
.c-btn {
    padding: 16px 48px;
    border: 1.5px solid var(--color-primary);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.2em;
    border-radius: 2px;
    text-transform: uppercase;
    transition: all 0.4s;
}
.c-btn--primary {
    background: var(--color-primary);
    color: white;
}
