/* ========================================
 * サーチュインクリニック - 共通コンポーネント統合CSS
 * Version: 1.0.6 - ボタン位置固定強化版
 * 統合内容: mobile-menu, mobile-cta, floating-cta, scroll-to-top
 * ======================================== */

/* モバイルメニュー */
.mobile-menu{position:fixed;top:0;right:-100%;width:85%;max-width:320px;height:100vh;background:#fff;box-shadow:-4px 0 20px rgba(0,0,0,.15);z-index:10001;transition:right .4s cubic-bezier(.4,0,.2,1);overflow-y:auto;display:none}@media (max-width:1024px){.mobile-menu{display:block}}.mobile-menu.active{right:0}.mobile-menu nav{padding:100px 0 60px;background:#fff}.mobile-menu-close{display:none!important}.mobile-menu ul{list-style:none;margin:0;padding:0}.mobile-menu li{border-bottom:1px solid #f0f0f0}.mobile-menu a{display:block;padding:16px 24px;color:#333;font-size:16px;font-weight:500;text-decoration:none;transition:all .3s ease}.mobile-menu a:active,.mobile-menu a:focus,.mobile-menu a:hover{background:linear-gradient(135deg,#E6FFFA 0%,#B2F5EA 100%);color:#2C7A7B;padding-left:32px}.mobile-menu a.active{background:linear-gradient(135deg,#2C7A7B 0%,#4FD1C5 100%);color:#fff;font-weight:600}.hamburger{display:none;flex-direction:column;justify-content:space-between;width:28px;height:22px;background:0 0;border:none;cursor:pointer;padding:0;z-index:10000;position:relative}@media (max-width:1024px){.hamburger{display:flex}}.hamburger span{display:block;width:100%;height:3px;background:#2C7A7B;border-radius:2px;transition:all .3s ease}.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(8px,8px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-7px)}.mobile-menu-overlay{position:fixed;top:0;left:0;width:100%;height:100vh;background:rgba(0,0,0,.6);z-index:10000;opacity:0;visibility:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);display:none}@media (max-width:1024px){.mobile-menu-overlay{display:block}}.mobile-menu-overlay.active{opacity:1;visibility:visible}@media (min-width:1025px){.mobile-menu,.mobile-menu-nav,.hamburger,.mobile-menu-overlay{display:none!important}}

/* モバイルCTA */
.mobile-cta,.mobile-cta-container{display:none;position:fixed;bottom:0;left:0;right:0;z-index:1000;background:var(--white);box-shadow:0 -4px 20px rgba(10,37,64,.15);padding:10px 8px;border-top:1px solid var(--border-light);pointer-events:auto}.mobile-cta-content{display:flex;gap:8px;max-width:100%;margin:0;width:100%}.mobile-cta-button,.mobile-cta-call,.mobile-cta-line,.mobile-cta-phone,.mobile-cta-reserve{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:50px!important;font-size:.95rem;font-weight:600;letter-spacing:.05em;transition:all .3s ease;cursor:pointer;text-decoration:none;border:none;white-space:nowrap;-webkit-appearance:none;-moz-appearance:none;appearance:none}.mobile-cta-button:active,.mobile-cta-call:active,.mobile-cta-line:active,.mobile-cta-phone:active,.mobile-cta-reserve:active{border-radius:50px!important;transform:scale(.98)}.mobile-cta-call,.mobile-cta-phone{background:linear-gradient(135deg,#F6AD55 0%,#FBD38D 100%);color:#2C7A7B;border:none;box-shadow:0 4px 15px rgba(246,173,85,.3)}.mobile-cta-call:hover,.mobile-cta-phone:hover{background:linear-gradient(135deg,#ED8936 0%,#F6AD55 100%);color:#fff;transform:translateY(-2px);box-shadow:0 8px 20px rgba(246,173,85,.4)}.mobile-cta-call i,.mobile-cta-phone i{font-size:1.3rem}.mobile-cta-line,.mobile-cta-reserve{background:#06C755;color:var(--white);border:2px solid #06C755}.mobile-cta-line:hover,.mobile-cta-reserve:hover{background:#05B04D;border-color:#05B04D}.mobile-cta-line i,.mobile-cta-reserve i{font-size:1.3rem}.phone-modal,.line-modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:1001;background:rgba(10,37,64,.8);backdrop-filter:blur(4px)}.phone-modal.active,.line-modal.active{display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .3s ease}.phone-modal-content,.line-modal-content{background:var(--white);width:100%;max-width:500px;max-height:80vh;overflow-y:auto;border-radius:20px 20px 0 0;padding:24px 20px calc(env(safe-area-inset-bottom) + 32px);margin-bottom:0;animation:slideUp .3s ease;position:relative}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}.phone-modal-header,.line-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-light)}.phone-modal-title,.line-modal-title{font-family:'Noto Serif JP',serif;font-size:1.25rem;font-weight:500;color:var(--primary-navy);letter-spacing:.08em}.phone-modal-close,.line-modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--light-gray);border:none;border-radius:50%;cursor:pointer;transition:all .3s ease;color:var(--text-dark);font-size:1.2rem}.phone-modal-close:hover,.line-modal-close:hover{background:var(--mid-gray);transform:rotate(90deg)}.phone-list,.line-list{display:flex;flex-direction:column;gap:12px}.phone-item,.line-item{display:flex;flex-direction:column;gap:8px;padding:20px;background:var(--light-gray);border-radius:12px;border:2px solid transparent;transition:all .3s ease;cursor:pointer;text-decoration:none}.phone-item:hover{background:rgba(246,173,85,.1);border-color:var(--color-accent);transform:translateX(4px)}.line-item:hover{background:#E8F8F0;border-color:#06C755;transform:translateX(4px)}.phone-item-clinic,.line-item-clinic{display:flex;align-items:center;gap:8px;font-family:'Noto Serif JP',serif;font-size:1rem;font-weight:500;color:var(--primary-navy);letter-spacing:.05em}.phone-item-clinic i{color:var(--color-accent);font-size:1.1rem}.line-item-clinic i{color:#06C755;font-size:1.1rem}.phone-item-number{display:flex;align-items:center;gap:8px;font-size:1.1rem;font-weight:600;color:var(--text-dark);letter-spacing:.05em}.phone-item-number i{color:var(--primary-navy);font-size:1rem}.line-item-link{display:flex;align-items:center;gap:8px;font-size:.95rem;font-weight:500;color:var(--text-dark);letter-spacing:.05em}.line-item-link i{color:#06C755;font-size:1.1rem}.phone-item-info,.line-item-info{font-size:.75rem;color:var(--text-light);letter-spacing:.03em;margin-top:4px}.line-item-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#06C755;color:#fff;border-radius:12px;font-size:.7rem;font-weight:600;letter-spacing:.05em;margin-top:4px;align-self:flex-start}.line-item-badge i{font-size:.75rem}.mobile-cta-spacer{display:none;height:0}.footer-mobile-cta-spacing{}@media (max-width:768px){.mobile-cta,.mobile-cta-container{display:flex}.mobile-cta-spacer{display:block!important;height:90px!important;background:transparent;pointer-events:none;flex-shrink:0}footer,.footer,footer.footer,.footer-mobile-cta-spacing{padding-bottom:100px!important;margin-bottom:0!important}.footer-bottom{padding-bottom:20px!important}body{padding-bottom:90px!important;margin-bottom:0!important}footer:not(:first-child)::before,.footer:not(:first-child)::before{content:'';display:block;height:20px}}@media (max-width:480px){.mobile-cta,.mobile-cta-container{padding:8px 6px}.mobile-cta-content,.mobile-cta-container{flex-direction:row;gap:6px}.mobile-cta-button,.mobile-cta-call,.mobile-cta-line,.mobile-cta-phone,.mobile-cta-reserve{flex:1;padding:12px 20px;font-size:.9rem;border-radius:50px!important}.mobile-cta-button span,.mobile-cta-call span,.mobile-cta-line span,.mobile-cta-phone span,.mobile-cta-reserve span{font-size:.95rem}.phone-modal-content,.line-modal-content{padding:20px 16px 28px}.phone-modal-title,.line-modal-title{font-size:1.1rem}.phone-item,.line-item{padding:16px}.phone-item-clinic,.line-item-clinic{font-size:.95rem}.phone-item-number,.line-item-link{font-size:1rem}.mobile-cta-spacer{height:85px!important}footer,.footer,footer.footer,.footer-mobile-cta-spacing{padding-bottom:95px!important}body{padding-bottom:85px!important}}@media (max-width:360px){.mobile-cta,.mobile-cta-container{padding:6px 4px}.mobile-cta-content{gap:4px}.mobile-cta-button,.mobile-cta-call,.mobile-cta-line,.mobile-cta-phone,.mobile-cta-reserve{padding:10px 16px;font-size:.85rem;gap:6px;border-radius:50px!important}.mobile-cta-button i,.mobile-cta-call i,.mobile-cta-line i,.mobile-cta-phone i,.mobile-cta-reserve i{font-size:1.1rem}.mobile-cta-button span,.mobile-cta-call span,.mobile-cta-line span,.mobile-cta-phone span,.mobile-cta-reserve span{font-size:.85rem}.mobile-cta-spacer{height:80px!important}footer,.footer,footer.footer,.footer-mobile-cta-spacing{padding-bottom:90px!important}body{padding-bottom:80px!important}}.nav-menu.active~.mobile-cta{display:none}

/* フローティングCTA */
.floating-cta{position:fixed;bottom:30px!important;right:30px!important;z-index:999;display:flex;flex-direction:column;gap:12px;transition:opacity .3s ease,visibility .3s ease}.floating-cta.hidden{opacity:0;visibility:hidden}.floating-btn{display:flex;align-items:center;justify-content:center;width:60px!important;height:60px!important;border-radius:50%;box-shadow:0 4px 20px rgba(0,0,0,.15);transition:all .3s ease;cursor:pointer;text-decoration:none;border:none;position:relative;overflow:hidden}.floating-btn:hover{transform:translateY(-4px);box-shadow:0 6px 25px rgba(0,0,0,.2)}.floating-btn i{font-size:24px;color:#fff;z-index:1}.floating-btn-reserve{background:linear-gradient(135deg,#2C7A7B,#4FD1C5);animation:pulse 2s infinite}.floating-btn-reserve:hover{background:linear-gradient(135deg,#1a5657,#38b2ac)}.floating-btn-phone{background:linear-gradient(135deg,#48BB78,#38A169)}.floating-btn-phone:hover{background:linear-gradient(135deg,#38A169,#2F855A)}.floating-btn-line{background:#06C755}.floating-btn-line:hover{background:#05B04D}.floating-btn::before{content:attr(data-tooltip);position:absolute;right:70px;background:rgba(0,0,0,.85);color:#fff;padding:8px 12px;border-radius:8px;font-size:.9rem;font-weight:600;white-space:nowrap;opacity:0;visibility:hidden;transition:all .3s ease;pointer-events:none}.floating-btn:hover::before{opacity:1;visibility:visible;right:75px}@keyframes pulse{0%,100%{box-shadow:0 4px 20px rgba(44,122,123,.3)}50%{box-shadow:0 4px 30px rgba(44,122,123,.6)}}@media (max-width:1024px){.floating-cta{bottom:20px!important;right:20px!important;gap:10px}.floating-btn{width:55px!important;height:55px!important}.floating-btn i{font-size:22px}}@media (max-width:768px){.floating-cta{display:none}}.floating-btn:focus{outline:3px solid #4FD1C5;outline-offset:3px;border-radius:50%!important}.floating-btn:active{transform:translateY(-2px) scale(.98);border-radius:50%!important}.floating-btn:hover{border-radius:50%!important}

/* スクロールトップ */
.scroll-to-top{display:none;position:fixed;right:30px!important;bottom:246px!important;z-index:998;width:60px!important;height:60px!important;border-radius:50%;background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-light) 100%);color:var(--color-text-primary);border:none;cursor:pointer;box-shadow:var(--shadow-accent);transition:all .3s cubic-bezier(.4,0,.2,1);align-items:center;justify-content:center;opacity:0;transform:translateY(20px);pointer-events:none}.scroll-to-top.visible{display:flex;opacity:1;transform:translateY(0);pointer-events:auto}.scroll-to-top:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 10px 32px rgba(246,173,85,.4);background:linear-gradient(135deg,var(--color-accent-dark) 0%,var(--color-accent) 100%)}.scroll-to-top:active{transform:scale(.95)}.scroll-to-top i{font-size:1.5rem}@media (max-width:768px){.scroll-to-top{right:20px!important;bottom:90px!important}}@media (max-width:480px){.scroll-to-top{width:55px!important;height:55px!important;right:16px!important;bottom:90px!important}.scroll-to-top i{font-size:1.3rem}}@media (max-width:360px){.scroll-to-top{width:48px!important;height:48px!important}.scroll-to-top i{font-size:1.2rem}}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.scroll-to-top.visible{animation:fadeInUp .4s ease-out}
