/* Owner-requested contact links. Native anchors, no tracking or animation loop. */
.hly-social-rail {
  --social-size:50px;
  position:fixed;
  inset:auto max(18px,env(safe-area-inset-right,0px)) auto auto;
  top:50%;
  transform:translateY(-50%);
  z-index:45;
  isolation:isolate;
}
.hly-social-rail ul {
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:12px;
}
.hly-social-rail li {margin:0;padding:0;position:relative;}
.hly-social-rail ul::before {
  content:"";position:absolute;left:50%;top:-20px;bottom:-20px;width:1px;
  background:linear-gradient(transparent,#b7aa75 16%,#b7aa75 84%,transparent);
  opacity:.48;z-index:-1;pointer-events:none;
}
.hly-social-link {
  position:relative;display:grid;place-items:center;
  width:var(--social-size);height:var(--social-size);
  border:1px solid #c0b381;border-radius:50%;
  background:linear-gradient(145deg,#11583f,#073a2b);
  color:#f2efd9;text-decoration:none;
  box-shadow:0 4px 14px #032e241f,inset 0 0 0 3px #e8dfb311;
  transition:transform .22s ease,background-color .22s ease,color .22s ease,box-shadow .22s ease;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.hly-social-link svg {display:block;width:23px;height:23px;fill:currentColor;pointer-events:none;}
.hly-social-link:focus-visible {
  outline:2px solid #f8f4de;outline-offset:3px;
  box-shadow:0 0 0 6px #0b533d,0 6px 20px #032e2433;
}
.hly-social-label {
  position:absolute;right:calc(100% + 12px);top:50%;
  transform:translate(4px,-50%);opacity:0;visibility:hidden;
  padding:7px 12px;border:1px solid #c0b381;border-radius:6px;
  background:#faf8ed;color:#164f3b;
  font:500 12px/1.5 var(--f-body);white-space:nowrap;
  box-shadow:0 3px 12px #032e2417;pointer-events:none;
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
}
.hly-social-link:focus-visible .hly-social-label {
  visibility:visible;opacity:1;transform:translate(0,-50%);
}
/* Leave the page-progress indicator in its own lane below these links. */
html .ig7-side-index {top:auto;bottom:22px;right:31px;transform:none;}
/* Reserve only a narrow outer gutter; text and native controls stay clear. */
main .wrap,.site-footer .wrap {padding-right:max(var(--gutter),84px,env(safe-area-inset-right,0px));}
html .ig7-cinema-content {width:calc(100% - max(10vw,150px));}
/* The modal menu owns focus and covers all contact shortcuts. */
body:has(#menu-panel:not([hidden])) .hly-social-rail {visibility:hidden;pointer-events:none;}
@media(hover:hover) and (any-pointer:fine) {
  .hly-social-link:hover {transform:translateX(-3px);background:#f3f0dd;color:#0b513a;box-shadow:0 7px 20px #032e242b,inset 0 0 0 3px #b1a57320;}
  .hly-social-link:hover .hly-social-label {visibility:visible;opacity:1;transform:translate(0,-50%);}
}
@media(max-width:900px) {
  .hly-social-rail {--social-size:44px;right:max(8px,env(safe-area-inset-right,0px));}
  .hly-social-rail ul {gap:9px;}
  .hly-social-link svg {width:21px;height:21px;}
  main .wrap,.site-footer .wrap {padding-right:max(64px,env(safe-area-inset-right,0px));}
  html .ig7-cinema-content {width:calc(100% - 84px);margin-left:20px;}
}
@media(max-height:560px) {
  .hly-social-rail {top:auto;bottom:max(12px,env(safe-area-inset-bottom,0px));transform:none;--social-size:44px;}
  .hly-social-rail ul {gap:6px;}
  html .ig7-side-index {display:none!important;}
}
@media(prefers-reduced-motion:reduce) {
  .hly-social-link,.hly-social-label {transition:none;}
  .hly-social-link:hover {transform:none;}
}
@media print {.hly-social-rail {display:none;}}

/* R9: each botanical rim has its own motion; icon remains still. */
.hly-social-link{isolation:isolate}
.hly-floral{position:absolute;inset:-9px;z-index:-1;pointer-events:none;transform-origin:center;will-change:transform}
.hly-floral-white,.hly-floral-green{position:absolute;inset:0;background:center/contain no-repeat;pointer-events:none}
.hly-floral-white{background-image:url('/assets/art/social-floral-r9-white.svg')}
.hly-floral-green{background-image:url('/assets/art/social-floral-r9-green.svg');animation:hly-r9-tint 4.7s ease-in-out infinite;opacity:0;will-change:opacity}
.hly-social-link>svg{position:relative;z-index:1}
.hly-social-label{z-index:3}
[data-social="facebook"] .hly-floral{animation:hly-r9-orbit 17s linear infinite}
[data-social="messenger"] .hly-floral{animation:hly-r9-sway 5.9s ease-in-out -1.7s infinite}
[data-social="zalo"] .hly-floral{animation:hly-r9-bloom 6.7s ease-in-out -3.1s infinite}
[data-social="tiktok"] .hly-floral{animation:hly-r9-pendulum 7.3s ease-in-out -4.4s infinite}
[data-social="phone"] .hly-floral{animation:hly-r9-float 8.1s ease-in-out -2.3s infinite}
[data-social="messenger"] .hly-floral-green{animation-duration:6.1s;animation-delay:-2.1s;animation-direction:reverse}
[data-social="zalo"] .hly-floral-green{animation-duration:5.3s;animation-delay:-3.8s}
[data-social="tiktok"] .hly-floral-green{animation-duration:7.7s;animation-delay:-.8s;animation-direction:reverse}
[data-social="phone"] .hly-floral-green{animation-duration:6.9s;animation-delay:-4.9s}
@keyframes hly-r9-tint{0%,100%{opacity:0}23%{opacity:.78}39%{opacity:.12}68%{opacity:1}84%{opacity:.35}}
@keyframes hly-r9-orbit{to{transform:rotate(360deg)}}
@keyframes hly-r9-sway{0%,100%{transform:rotate(-17deg) translateY(-1px)}47%{transform:rotate(18deg) translateY(1px)}}
@keyframes hly-r9-bloom{0%,100%{transform:scale(.94) rotate(-5deg)}38%{transform:scale(1.09) rotate(7deg)}72%{transform:scale(1.01) rotate(2deg)}}
@keyframes hly-r9-pendulum{0%,100%{transform:rotate(22deg)}31%{transform:rotate(-8deg) translateX(-1px)}68%{transform:rotate(-25deg) translateX(1px)}}
@keyframes hly-r9-float{0%,100%{transform:translateY(-2px) rotate(-9deg)}27%{transform:translate(1px,1px) rotate(4deg)}64%{transform:translate(-1px,2px) rotate(15deg)}}
@media(max-width:900px){.hly-floral{inset:-8px}html.hly-r8-scrolling .hly-floral,html.hly-r8-scrolling .hly-floral-green{animation-play-state:paused}}
html.hly-r8-hidden .hly-floral,html.hly-r8-hidden .hly-floral-green{animation-play-state:paused}
@media(max-height:410px){.hly-social-rail{top:50%;bottom:auto;transform:translateY(-50%)}.hly-social-rail ul{gap:4px}.hly-floral{inset:-6px}}
@media(prefers-reduced-motion:reduce){.hly-floral,.hly-floral-green{animation:none!important;will-change:auto}.hly-floral-green{opacity:.3}}

html.hly-social-paused .hly-floral,html.hly-social-paused .hly-floral-green{animation-play-state:paused}
