body {
    /* font-family: 'Noto Sans JP', sans-serif; */
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    scroll-behavior: smooth;
}

.hero-bg {
    background: linear-gradient(rgba(0, 20, 50, 0.5), rgba(0, 20, 50, 0.5)), url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?ixlib=rb-4.0.3&auto=format&fit=crop&w=2015&q=80');
    /* background: linear-gradient(rgba(0, 86, 145, 0.9), rgba(0, 56, 101, 0.9)), url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?ixlib=rb-4.0.3&auto=format&fit=crop&w=2015&q=80'); */
    background-size: cover;
    background-position: center;
}

.gradient-text {
    background: linear-gradient(90deg, #005691 0%, #003865 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.check-list-item::before {
    content: '\f00c';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    color: #005691;
    margin-right: 0.5rem;
}

/* CTA Button Animation */
.cta-btn {
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(245, 158, 11, 0.4), 0 2px 4px -1px rgba(245, 158, 11, 0.2);
}

.cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(245, 158, 11, 0.5), 0 4px 6px -2px rgba(245, 158, 11, 0.3);
}

.sub-cta-btn {
    transition: all 0.3s ease;
}

.sub-cta-btn:hover {
    background-color: rgba(255, 255, 255, 0.1);
    transform: translateY(-2px);
}

.cta-shimmer {
    position: relative;
    overflow: hidden;
}

.cta-shimmer::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    animation: shimmer 2.5s infinite;
}

@keyframes shimmer {
    100% {
        left: 100%;
    }
}

/* テキストシャドウ */
.text-shadow-sm {
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.pb-safe {
    padding-bottom: env(safe-area-inset-bottom);
}

html {
    scroll-padding-top: 80px;
}

.logo_box {
    width: 100%;
    max-width: 200px;
}

.origin-height {
    height: 400px;
}

@media screen and (max-width: 768px) {
    .origin-height {
        height: 200px;
    }
}