/* Supplied MEMORYLANE team portraits with edited travel backgrounds. */
.travel-contact{position:fixed;right:22px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:80;max-width:calc(100vw - 32px);font-family:Prompt,sans-serif;isolation:isolate}
.travel-contact[hidden]{display:none!important}
.travel-contact-link{display:flex;align-items:center;gap:12px;min-height:82px;padding:7px 18px 7px 7px;color:#f3f8f5!important;background:#0b1915ed;border:1px solid #a4d4bc75;border-radius:999px;text-decoration:none!important;box-shadow:0 8px 26px #0004;backdrop-filter:blur(12px);transition:border-color .25s,background .25s;max-width:100%}
.travel-contact-link:hover{border-color:#b6ebd0;background:#163027f5}
.travel-contact-portrait{position:relative;display:block;width:76px;height:76px;flex:0 0 76px;border-radius:50%;overflow:hidden;background:#14382d}
.travel-contact-portrait img{position:absolute;inset:0;display:block;width:100%!important;height:100%!important;max-width:none;object-fit:cover;object-position:50% 46%;border-radius:50%;opacity:0;transition:opacity 1.2s ease;transform:scale(1)!important;transform-origin:50% 33%;filter:none!important;mask-image:none!important}
.travel-contact-portrait img.is-current{opacity:1}
.travel-contact-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.travel-contact-copy strong{font-size:.9375rem;line-height:1.6;font-weight:500;white-space:nowrap}
.travel-contact-copy small{font-size:.8125rem;line-height:1.65;color:#b4d0c1}
.travel-contact-arrow{font-size:1.1rem;color:#b4e7cb;margin-left:3px}
.travel-contact-control{display:flex;justify-content:flex-end;align-items:center;min-height:44px;padding-right:14px}
.travel-contact-pause{font:400 .875rem/1.4 Prompt,sans-serif;color:#b6cec1;background:#0a1711e8;border:1px solid #8bb89e40;border-top:0;border-radius:0 0 12px 12px;padding:5px 12px;min-width:66px;min-height:44px;cursor:pointer}
.travel-contact-pause[hidden]{display:none!important}
.travel-contact:has(.travel-contact-pause[hidden]) .travel-contact-control{display:none}
.travel-contact :is(a,button):focus-visible{outline:2px solid #c3f6d9;outline-offset:5px}
body:has(.cookie-panel:not([hidden])) .travel-contact{visibility:hidden}
@media(max-width:680px){.travel-contact{right:14px;bottom:calc(10px + env(safe-area-inset-bottom,0px))}.travel-contact-link{gap:9px;min-height:64px;padding:5px 13px 5px 5px}.travel-contact-portrait{width:60px;height:60px;flex-basis:60px}.travel-contact-copy strong{font-size:.875rem}.travel-contact-copy small{font-size:.75rem}.travel-contact-control{height:36px}.travel-contact-pause{min-height:36px}.travel-contact-arrow{font-size:1rem}.site-footer,.brand-footer{padding-bottom:132px!important}}
/* Made to stand out (the owner, 18 Sep: "ปรับให้ปุ่ม let's talk travel เด้งขึ้น · เพิ่มไฟวิ่งรอบ border"): a light runs once
   round the border, then rests about five seconds, and the button rises into place the moment it is first shown — at load,
   or once the privacy panel is answered (the panel keeps it out of sight until then). The light stops with พักภาพ, and
   with prefers-reduced-motion there is neither. */
@property --tc-sweep{syntax:'<angle>';inherits:false;initial-value:0deg}
.travel-contact-link{position:relative}
/* ::before is the light on the border itself; ::after the same light blurred into a glow that travels with it — outside
   the border only, so it never washes over the photo or the words. Both are a ring: the pill minus its own inside. */
.travel-contact-link::before,.travel-contact-link::after{content:'';position:absolute;border-radius:inherit;pointer-events:none;opacity:0;
  background:conic-gradient(from var(--tc-sweep),#b5ebd900 0deg 250deg,#b5ebd9 335deg,#fff 354deg,#b5ebd900 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  animation:travel-contact-sweep 6.5s linear 1s infinite}
.travel-contact-link::before{inset:-1px;padding:2.5px}
.travel-contact-link::after{inset:-11px;padding:10px;filter:blur(5px) opacity(.75)}
@keyframes travel-contact-sweep{0%{--tc-sweep:0deg;opacity:0}4%,20%{opacity:1}24%{--tc-sweep:360deg;opacity:0}100%{--tc-sweep:360deg;opacity:0}}
/* Inside no-preference: this selector outweighs the reduced-motion rule below, so it may only exist where motion is welcome. */
@media(prefers-reduced-motion:no-preference){body:not(:has(.cookie-panel:not([hidden]))) .travel-contact-link{animation:travel-contact-rise .7s cubic-bezier(.3,1.6,.55,1)}}
@keyframes travel-contact-rise{from{transform:translateY(22px)}to{transform:none}}
.travel-contact:has(.travel-contact-pause[aria-pressed="true"]) .travel-contact-link::before,.travel-contact:has(.travel-contact-pause[aria-pressed="true"]) .travel-contact-link::after{animation:none}
@media(prefers-reduced-motion:reduce){.travel-contact-link,.travel-contact-portrait img{transition:none}.travel-contact-link,.travel-contact-link::before,.travel-contact-link::after{animation:none}}
@media(forced-colors:active){.travel-contact-link{border:2px solid ButtonText;background:Canvas}.travel-contact-link::before,.travel-contact-link::after{display:none}.travel-contact-portrait{display:none}.travel-contact-copy strong,.travel-contact-copy small{color:LinkText}.travel-contact-control{display:none}}
