:root {
    --swiper-theme-color: #007aff;
}
@media (max-width: 767px) {
    html, body { height: 100%; overflow: hidden; margin: 0 !important; padding: 0 !important; }
    .my-lp-swiper { height: 100vh; width: 100%; position: relative; }
    .swiper-slide { overflow: hidden; background-color: #fff; }
    .swiper-slide > .wp-block-image { width: 100%; height: 100%; margin: 0; }
    .swiper-slide > .wp-block-image img { width: 100%; height: 100%; object-fit: contain; object-position: top center; }
    
    /* --- Pagination & Scrollbar Base --- */
    .swiper-pagination, .swiper-scrollbar { position: absolute; z-index: 10; }
    .swiper-pagination-bullet-active { background: var(--swiper-theme-color) !important; }
    .swiper-scrollbar { background: rgba(0,0,0,0.1); }
    .swiper-scrollbar-drag { background: var(--swiper-theme-color) !important; }
    
    /* --- 縦スワイプ (Vertical) --- */
    [data-direction="vertical"] .swiper-pagination-bullets { right: 10px !important; top: 50% !important; transform: translateY(-50%) !important; left: auto !important; bottom: auto !important; }
    [data-direction="vertical"] .swiper-scrollbar { right: 5px !important; top: 25% !important; width: 4px !important; height: 50% !important; left: auto !important; bottom: auto !important; }
    [data-direction="vertical"] .swiper-pagination-fraction { right: 15px !important; top: 20px !important; bottom: auto !important; left: auto !important; }
    
    /* --- 横スワイプ (Horizontal) --- */
    [data-direction="horizontal"] .swiper-pagination-bullets { bottom: calc(var(--cta-height, 0px) + 5px) !important; top: auto !important; }
    [data-direction="horizontal"] .swiper-scrollbar { bottom: calc(var(--cta-height, 0px) + 5px) !important; left: 5% !important; width: 90% !important; height: 5px !important; top: auto !important; right: auto !important; }
    [data-direction="horizontal"] .swiper-pagination-fraction { right: 15px !important; top: 20px !important; bottom: auto !important; left: auto !important; }
    
    /* --- ページ番号表示 (Fraction) --- */
    .swiper-pagination-fraction { 
        position: absolute !important;
        width: auto !important; 
        padding: 5px 10px; 
        border-radius: 5px; 
        background: rgba(0,0,0,0.6) !important; 
        color: #fff !important;
        font-size: 14px; 
        opacity: 0; 
        transition: opacity 0.3s ease-in-out; 
        pointer-events: none;
    }
    .swiper-pagination-fraction.is-visible { opacity: 1; }
}
@media (min-width: 768px) {
    html, body { overflow: auto; background-color: #ffffff !important; }
    .pc-content-wrapper { max-width: 750px; margin: 0 auto; padding-bottom: 0; }
    .pc-fallback-section { line-height: 0; }
    .pc-static-cta { width: 100%; max-width: 600px; text-align: center; margin: 80px auto; background-color: var(--cta-container-bg, transparent); padding: 20px; border-radius: 15px; }
    .pc-static-cta.has-micro-copy { margin: 40px auto 15px; }
    .pc-static-cta.no-micro-copy { margin: 30px auto; }
    .pc-floating-cta { position: fixed; bottom: 20px; right: 20px; z-index: 999; width: 320px; background-color: var(--cta-container-bg, transparent); padding: 15px; border-radius: 15px; opacity: 0; transform: translateY(20px); transition: opacity 0.3s, transform 0.3s; pointer-events: none; box-sizing: border-box; }
    .pc-floating-cta.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
    .pc-floating-cta.is-hidden { opacity: 0; transform: translateY(20px); pointer-events: none; }
    .pc-cta-inner { display: flex; flex-direction: column; align-items: center; justify-content: center; }
    
    /* PC Hover Effects */
    .cta-button-link, .cta-button-dummy, .pc-cta-inner.is-image a img { transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); }
    .cta-button-link:hover, .cta-button-dummy:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0,0,0,0.15); filter: brightness(1.1); }
    .pc-cta-inner.is-image a:hover img { transform: translateY(-3px); filter: brightness(1.1); }
    .pc-floating-cta .cta-button-link { font-size: 16px; padding: 10px 20px; min-height: 45px; }
    .pc-floating-cta.is-image img { max-height: 80px; }
}
.floating-cta { position: fixed; z-index: 100; bottom: 0; left: 0; width: 100%; padding-bottom: env(safe-area-inset-bottom); padding-top: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center; background-color: var(--cta-container-bg, transparent); transform: translateY(100%); opacity: 0; transition: opacity 0.4s ease, transform 0.4s ease; pointer-events: auto; }
.floating-cta.is-visible { opacity: 1; transform: translateY(0); }
.floating-cta.is-image { padding: 10px 0 calc(10px + env(safe-area-inset-bottom)) 0; }
.floating-cta.is-image img, .pc-cta-inner img { width: auto; max-width: 100%; max-height: 100px; object-fit: contain; }
.floating-cta.is-button, .pc-cta-inner.is-button { padding-left: 5%; padding-right: 5%; padding-bottom: calc(10px + env(safe-area-inset-bottom)); width: 100%; box-sizing: border-box; }
.cta-button-link, .cta-button-dummy { display: flex; justify-content: center; align-items: center; width: 100%; max-width: 600px; min-height: 55px; padding: 12px 20px; margin: 0 auto; font-size: 18px; font-weight: bold; border-radius: 50px; text-decoration: none; line-height: 1.4; text-align: center; box-shadow: 0 4px 6px rgba(0,0,0,0.2); color: inherit; background-color: inherit; white-space: normal; word-break: break-all; }
.floating-cta.is-non-clickable { cursor: default; }
.cta-micro-copy { font-size: 12px; margin-top: 8px; color: #333; font-weight: normal; text-align: center; line-height: 1.4; text-shadow: 0 1px 2px rgba(255,255,255,0.8); }
@keyframes pulse { 0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(255, 102, 0, 0.7); } 50% { transform: scale(1.03); box-shadow: 0 0 0 10px rgba(255, 102, 0, 0); } 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(255, 102, 0, 0); } }
@keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0); } 40% { transform: translateY(-10px); } 60% { transform: translateY(-5px); } }
@keyframes shine { 0% { left: -100%; opacity: 0; } 40% { left: 200%; opacity: 1; } 100% { left: 200%; opacity: 0; } }
.animate-pulse .cta-button-link, .animate-pulse .cta-button-dummy, .animate-pulse.is-image a, .animate-pulse.is-image img, .animate-pulse .pc-cta-inner a, .animate-pulse .pc-cta-inner img { animation: pulse 2s infinite; }
.animate-bounce .cta-button-link, .animate-bounce .cta-button-dummy, .animate-bounce.is-image a, .animate-bounce.is-image img, .animate-bounce .pc-cta-inner a, .animate-bounce .pc-cta-inner img { animation: bounce 2s infinite; }
.animate-shine .cta-button-link, .animate-shine .cta-button-dummy, .animate-shine.is-image a, .animate-shine.is-image .is-non-clickable, .animate-shine .pc-cta-inner a { position: relative; overflow: hidden; display: inline-block; vertical-align: middle; }
.animate-shine .cta-button-link::after, .animate-shine .cta-button-dummy::after, .animate-shine.is-image a::after, .animate-shine.is-image .is-non-clickable::after, .animate-shine .pc-cta-inner a::after { content: ''; position: absolute; top: 0; left: -100%; width: 200px; height: 100%; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0) 100%); transform: skewX(-25deg); opacity: 0; pointer-events: none; animation: shine 3s infinite; }
