﻿body {
    background-color: #FFF1AB; /* alohas-ivory */
    color: #4A3F35; /* alohas-dark */
    overflow-x: hidden;
}

/* パララックス背景固定用 */
.bg-fixed-parallax {
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

/* ダイナミックレイアウト用 */
.dynamic-offset-left {
    margin-left: max(1rem, calc((100vw - 1200px) / 2));
    padding-right: 2rem;
}
.dynamic-offset-right {
    margin-right: max(1rem, calc((100vw - 1200px) / 2));
    padding-left: 2rem;
}

/* ボタンホバーエフェクト */
.btn-hover-effect {
    transition: all 0.3s ease;
}
.btn-hover-effect:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

/* 追従CTAの調整 */
.floating-cta {
    bottom: 2rem;
    right: 2rem;
    animation: bounce-soft 2s infinite;
    z-index: 60;
}
@keyframes bounce-soft {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

/* スムーズなフェード切り替え用 */
.bg-layer {
    will-change: opacity;
}

/* セクションが重ならないようにするための担保 */
section {
    position: relative;
    z-index: 10;
}

/* ハンバーガーメニューのアニメーション */
.nav-toggle span {
    display: block;
    width: 30px;
    height: 2px;
    background-color: #4A3F35;
    transition: all 0.4s;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}
.nav-toggle span:nth-child(1) { top: 35%; }
.nav-toggle span:nth-child(2) { top: 50%; }
.nav-toggle span:nth-child(3) { top: 65%; }

.is-active .nav-toggle span:nth-child(1) {
    top: 50%;
    transform: translateX(-50%) rotate(45deg);
}
.is-active .nav-toggle span:nth-child(2) {
    opacity: 0;
}
.is-active .nav-toggle span:nth-child(3) {
    top: 50%;
    transform: translateX(-50%) rotate(-45deg);
}

/* メニューオーバーレイ */
#menu-overlay {
    clip-path: circle(0% at 90% 5%);
    transition: clip-path 0.6s ease-in-out;
}
#menu-overlay.open {
    clip-path: circle(150% at 90% 5%);
}


