/* Shared contact bar, approved design 2026-10-16. */
body { padding-bottom:calc(112px + env(safe-area-inset-bottom,0px)); }
#kd-contact-bar { position:fixed; inset:auto 0 0; z-index:99999; background:transparent; border:0; box-shadow:none; backdrop-filter:none; pointer-events:none; color:#075e96; font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP","Yu Gothic",Meiryo,sans-serif; line-height:1.4; text-align:left; }
#kd-contact-bar *,#kd-contact-bar *::before { box-sizing:border-box; }
#kd-contact-bar .kd-inner { max-width:760px; margin:0 auto; padding:4px 10px calc(10px + env(safe-area-inset-bottom,0px)); }
#kd-contact-bar .kd-support { display:flex; align-items:center; justify-content:center; gap:8px; margin:0 0 4px; }
#kd-contact-bar .kd-operator { display:block; flex:none; width:34px; height:34px; object-fit:contain; margin:0; border:0; }
#kd-contact-bar .kd-speech { position:relative; padding:1px 10px; border:1px solid #bbdff4; background:#eaf6fe; border-radius:10px; box-shadow:0 2px 7px #1a4f701a; text-align:center; }
#kd-contact-bar .kd-speech::before { content:""; position:absolute; left:-5px; top:12px; width:8px; height:8px; background:#eaf6fe; border-left:1px solid #bbdff4; border-bottom:1px solid #bbdff4; transform:rotate(45deg); }
#kd-contact-bar .kd-catch { margin:0; font-size:13px; line-height:16px; font-weight:800; white-space:nowrap; text-align:center; }
#kd-contact-bar .kd-assurance { display:flex; align-items:center; justify-content:center; gap:6px; font-size:11px; line-height:14px; font-weight:700; white-space:nowrap; }
#kd-contact-bar .kd-assurance span { line-height:inherit; }
#kd-contact-bar .kd-payment { padding:0 6px; border-radius:20px; background:#fff2ce; color:#725111; }
#kd-contact-bar .kd-actions { display:grid; grid-template-columns:1fr 1.1fr .92fr; gap:7px; width:auto; height:auto; padding:0; margin:0; background:none; }
#kd-contact-bar .kd-action { pointer-events:auto; display:flex; align-items:center; justify-content:center; gap:5px; height:54px; padding:7px 3px; border-radius:16px; border:0; text-decoration:none; font-size:12px; line-height:1.35; font-weight:700; opacity:1; transition:filter .15s,transform .15s; }
#kd-contact-bar .kd-action strong { font-size:13px; font-weight:700; white-space:nowrap; }
#kd-contact-bar .kd-action svg { width:18px; height:18px; flex:none; }
#kd-contact-bar .kd-call { background:#087abd; color:white; box-shadow:0 3px 0 #095784,0 4px 10px #12344b18; }
#kd-contact-bar .kd-form { background:#fff; color:#08639e; border:1px solid #c6e3f5; box-shadow:0 3px 0 #d7e9f3,0 4px 10px #12344b18; }
#kd-contact-bar .kd-line { background:#087f42; color:#fff; box-shadow:0 3px 0 #086233,0 4px 10px #12344b18; }
#kd-contact-bar .kd-pc-label { display:none; }
#kd-contact-bar .kd-action:hover { filter:brightness(1.06); }
#kd-contact-bar .kd-action:active { transform:translateY(2px); }
#kd-contact-bar .kd-action:focus-visible { outline:3px solid #edac27; outline-offset:3px; }
/* Mobile icons: 0.6 seconds of gentle motion, then 2.4 seconds at rest. */
@media(max-width:767px) and (prefers-reduced-motion:no-preference) {
 #kd-contact-bar .kd-action:not(.kd-line) svg { animation:kd-icon-nudge 3s ease-in-out 3s infinite; transform-origin:50% 50%; }
}
@keyframes kd-icon-nudge {
 0%,20%,100% { transform:rotate(0deg); }
 4% { transform:rotate(-9deg); }
 8% { transform:rotate(7deg); }
 12% { transform:rotate(-5deg); }
 16% { transform:rotate(3deg); }
}
@media(min-width:768px) {
 body { padding-bottom:calc(126px + env(safe-area-inset-bottom,0px)); }
 #kd-contact-bar .kd-inner { display:grid; grid-template-columns:minmax(0,1fr); gap:6px; align-items:center; padding:6px 16px calc(10px + env(safe-area-inset-bottom,0px)); }
 #kd-contact-bar .kd-support { margin:0; gap:8px; }
 #kd-contact-bar .kd-operator { width:38px; height:38px; }
 #kd-contact-bar .kd-speech { padding:3px 14px; }
 #kd-contact-bar .kd-actions { grid-template-columns:1.35fr 1fr .85fr; gap:10px; }
 #kd-contact-bar .kd-action { height:60px; gap:10px; }
 #kd-contact-bar .kd-action strong { font-size:16px; }
 #kd-contact-bar .kd-mobile-label { display:none; }
 #kd-contact-bar .kd-pc-label { display:flex; flex-direction:column; align-items:center; }
 #kd-contact-bar .kd-pc-label small { font-size:11px; }
 #kd-contact-bar .kd-pc-label strong { font-size:20px; }
}
@media(max-width:355px) {
 #kd-contact-bar .kd-support { gap:7px; }
 #kd-contact-bar .kd-operator { width:32px; height:34px; }
 #kd-contact-bar .kd-speech { padding:1px 7px; }
 #kd-contact-bar .kd-catch { font-size:12px; }
 #kd-contact-bar .kd-assurance { gap:4px; }
 #kd-contact-bar .kd-action { gap:3px; }
 #kd-contact-bar .kd-action svg { width:16px; height:16px; }
 #kd-contact-bar .kd-action strong { font-size:11.5px; }
}

/* LINE glyph remains static; preserve the white mark and its wordmark. */
#kd-contact-bar .kd-line svg.kd-line-logo { width:26px; height:26px; fill:currentColor; }
@media(min-width:768px) { #kd-contact-bar .kd-line svg.kd-line-logo { width:30px; height:30px; } }
