/* ===== Floating contact button (widget-fab.php) ===== */.fab-wrap {	position: fixed;	right: 20px;	bottom: 20px;	z-index: 9999;	display: flex;	flex-direction: column;	align-items: flex-end;	gap: 12px;	transition: opacity .3s, transform .3s;	/* The closed list still takes up space: let clicks through to the page */	pointer-events: none;}.fab-main {	pointer-events: auto;}/* The theme's scroll-to-top square moves to the other corner */html .scroll-to-top {	right: auto;	left: 10px;}/* Step aside while the cookie banner asks for a choice */html.cc-banner-open .fab-wrap {	opacity: 0;	transform: translateY(20px);	pointer-events: none;}html.cc-banner-open .fab-main {	pointer-events: none;}.fab-main {	position: relative;	width: 60px;	height: 60px;	border: 0;	border-radius: 50%;	background: linear-gradient(135deg, #3fb892, #67d5b3);	color: #fff;	font-size: 24px;	cursor: pointer;	box-shadow: 0 8px 24px rgba(63, 184, 146, .5);	transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s;	-webkit-tap-highlight-color: transparent;}.fab-main:hover {	transform: scale(1.06);	box-shadow: 0 12px 30px rgba(63, 184, 146, .6);}.fab-main:focus-visible {	outline: 3px solid #3fb892;	outline-offset: 3px;}/* Soft pulse ring while closed */.fab-main::before {	content: "";	position: absolute;	top: 0;	right: 0;	bottom: 0;	left: 0;	border-radius: 50%;	border: 2px solid #67d5b3;	animation: fab-pulse 2.2s ease-out infinite;}.fab-wrap.is-open .fab-main::before {	animation: none;	opacity: 0;}.fab-main-open,.fab-main-close {	position: absolute;	top: 0;	right: 0;	bottom: 0;	left: 0;	display: flex;	align-items: center;	justify-content: center;	transition: transform .35s cubic-bezier(.2, .8, .2, 1), opacity .25s;}.fab-main-close {	opacity: 0;	transform: rotate(-90deg) scale(.6);}.fab-wrap.is-open .fab-main {	background: linear-gradient(135deg, #1f2d2a, #3d4f4a);	box-shadow: 0 8px 24px rgba(31, 45, 42, .35);}.fab-wrap.is-open .fab-main-open {	opacity: 0;	transform: rotate(90deg) scale(.6);}.fab-wrap.is-open .fab-main-close {	opacity: 1;	transform: none;}.fab-main-open i {	animation: fab-nudge 4s ease-in-out infinite;}/* "ติดต่อเรา" hint bubble */.fab-hint {	position: absolute;	right: 72px;	bottom: 14px;	white-space: nowrap;	font-size: 14px;	padding: 8px 14px;	border-radius: 999px;	background: #fff;	color: #1f2d2a;	box-shadow: 0 4px 16px rgba(0, 0, 0, .12);	pointer-events: none;	animation: fab-hint 6s ease 1.5s both;}.fab-wrap.is-open .fab-hint {	display: none;}/* Speed-dial items */.fab-list {	list-style: none;	margin: 0;	padding: 0;	display: flex;	flex-direction: column;	align-items: flex-end;	gap: 10px;	pointer-events: none;}.fab-list li {	opacity: 0;	transform: translateY(16px) scale(.8);	transition: opacity .25s ease, transform .3s cubic-bezier(.2, .8, .2, 1);	transition-delay: calc(var(--i) * 45ms);}.fab-wrap.is-open .fab-list {	pointer-events: auto;}.fab-wrap.is-open .fab-list li {	opacity: 1;	transform: none;}.fab-item {	display: flex;	align-items: center;	gap: 10px;	text-decoration: none !important;	margin-right: 4px;}.fab-label {	font-size: 14px;	line-height: 1;	padding: 9px 14px;	border-radius: 999px;	background: #fff;	color: #1f2d2a;	box-shadow: 0 4px 14px rgba(0, 0, 0, .12);	white-space: nowrap;	transition: transform .2s;}.fab-icon {	width: 50px;	height: 50px;	border-radius: 50%;	display: flex;	align-items: center;	justify-content: center;	color: #fff;	font-size: 20px;	box-shadow: 0 6px 16px rgba(0, 0, 0, .18);	transition: transform .2s;}.fab-item.is-line .fab-icon { background: #06c755; font-size: 26px; }.fab-item.is-chat .fab-icon { background: linear-gradient(135deg, #0866ff, #a033ff); }.fab-item.is-call .fab-icon { background: #ff8a3d; }.fab-item:hover .fab-icon,.fab-item:focus-visible .fab-icon {	transform: scale(1.1);}.fab-item:hover .fab-label,.fab-item:focus-visible .fab-label {	transform: translateX(-4px);}.fab-item:focus-visible {	outline: none;}.fab-item:focus-visible .fab-icon {	box-shadow: 0 0 0 3px #fff, 0 0 0 6px #3fb892;}@keyframes fab-pulse {	0% { transform: scale(1); opacity: .8; }	80%, 100% { transform: scale(1.55); opacity: 0; }}@keyframes fab-nudge {	0%, 86%, 100% { transform: none; }	90% { transform: rotate(-12deg) scale(1.1); }	94% { transform: rotate(10deg) scale(1.1); }}@keyframes fab-hint {	0% { opacity: 0; transform: translateX(8px); }	8%, 85% { opacity: 1; transform: none; }	100% { opacity: 0; transform: translateX(8px); }}@media (max-width: 767px) {	.fab-wrap {		right: 14px;		bottom: 14px;	}	.fab-main {		width: 56px;		height: 56px;		font-size: 22px;	}	.fab-hint {		right: 66px;		bottom: 12px;	}}@media (prefers-reduced-motion: reduce) {	.fab-main::before,	.fab-main-open i,	.fab-hint {		animation: none;	}	.fab-hint {		display: none;	}	.fab-list li,	.fab-main-open,	.fab-main-close {		transition: none;	}}