/* A single contact element grows from a compact circle into the complete rail. */
.contact-rail{position:fixed;z-index:90;right:16px;top:50%;transform:translateY(-50%);width:48px;height:48px;border:1px solid #ffffff66;border-radius:24px;background:var(--brand);box-shadow:0 5px 20px #061b3d30;color:var(--navy);transition:height .32s cubic-bezier(.22,.61,.36,1),width .32s ease,background .24s ease,border-color .24s ease,box-shadow .24s ease}
.contact-rail.is-open{width:60px;height:392px;border-color:var(--line);border-radius:30px;background:rgba(255,255,255,.98);box-shadow:0 8px 30px #061b3d20}
.contact-rail__toggle{position:absolute;left:50%;bottom:1px;transform:translateX(-50%);display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:#fff;cursor:pointer;z-index:2;transition:bottom .32s cubic-bezier(.22,.61,.36,1),background .24s ease}
.contact-rail.is-open .contact-rail__toggle{bottom:7px;background:var(--brand)}
.contact-rail__toggle:hover{background:var(--navy)}
.contact-rail__toggle:focus-visible,.contact-rail__item:focus-visible{outline:2px solid var(--brand);outline-offset:4px}
.contact-rail__chat,.contact-rail__close{grid-area:1 / 1;transition:opacity .18s ease}
.contact-rail__close{opacity:0}
.contact-rail.is-open .contact-rail__chat{opacity:0}
.contact-rail.is-open .contact-rail__close{opacity:1}
.contact-rail__panel{position:absolute;left:7px;right:7px;top:7px;height:max(0px,calc(100% - 64px));display:flex;flex-direction:column;gap:3px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .24s ease,visibility .24s ease}
.contact-rail.is-open .contact-rail__panel{visibility:visible;opacity:1;pointer-events:auto}
.contact-rail.is-settled .contact-rail__panel{overflow:visible}
.contact-rail__item{position:relative;display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:12px;color:var(--navy);transition:background .18s,color .18s}
.contact-rail__item:hover,.contact-rail__item:focus-visible{background:var(--brand-50);color:var(--brand)}
.contact-rail__item--direct{background:var(--brand);color:#fff}
.contact-rail__item--direct:hover,.contact-rail__item--direct:focus-visible{background:var(--navy);color:#fff}
.contact-rail__item--pending{color:var(--muted);opacity:.5}
.contact-rail__tip{position:absolute;right:calc(100% + 15px);top:50%;transform:translateY(-50%);width:max-content;max-width:calc(100vw - 100px);padding:9px 13px;border-radius:9px;background:var(--navy);color:#fff;font-family:var(--font);font-size:13px;font-weight:600;line-height:1.4;box-shadow:0 3px 14px #061b3d20;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,visibility .18s}
.contact-rail__item:hover .contact-rail__tip,.contact-rail__item:focus-visible .contact-rail__tip{opacity:1;visibility:visible}
@media(max-width:750px),(max-height:600px){
 .contact-rail{top:auto;bottom:max(14px,env(safe-area-inset-bottom));right:12px;transform:none}
 .contact-rail.is-open{height:min(392px,calc(100svh - var(--header-h) - 48px))}
 .contact-rail.is-settled .contact-rail__panel{overflow-y:auto;overflow-x:hidden}
 .contact-rail__tip{display:none}
 body{padding-bottom:76px}
}
@media(prefers-reduced-motion:reduce){.contact-rail,.contact-rail__toggle,.contact-rail__panel,.contact-rail__item,.contact-rail__tip,.contact-rail__chat,.contact-rail__close{transition:none}}
/* Larger desktop presence, with the same single expanding contact element. */
.contact-rail{--contact-closed-size:48px;--contact-open-width:60px;--contact-expanded-height:392px;width:var(--contact-closed-size);height:var(--contact-closed-size)}
.contact-rail.is-open{width:var(--contact-open-width);height:min(var(--contact-expanded-height),calc(100svh - 24px))}
.contact-rail__toggle{touch-action:none;cursor:grab}
.contact-rail.is-dragging{transition:none;user-select:none}
.contact-rail.is-dragging .contact-rail__toggle{cursor:grabbing}
.contact-rail.is-positioned{left:var(--contact-center-x);right:auto;top:auto;bottom:var(--contact-bottom);transform:translateX(-50%)}
.contact-rail.is-left-side .contact-rail__tip{right:auto;left:calc(100% + 15px)}
@media(min-width:751px) and (min-height:650px){
 .contact-rail{--contact-closed-size:64px;--contact-open-width:72px;--contact-expanded-height:508px;border-radius:32px;box-shadow:0 6px 24px #061b3d40}
 .contact-rail.is-open{border-radius:36px}
 .contact-rail__toggle{width:60px;height:60px}
 .contact-rail__toggle svg{width:30px;height:30px}
 .contact-rail__panel{left:9px;right:9px;top:9px;height:calc(100% - 84px);gap:7px}
 .contact-rail__item{width:52px;height:52px;border-radius:14px}
 .contact-rail__item svg{width:28px;height:28px}
 .contact-rail__tip{font-size:15.5px;line-height:1.45;padding:11px 16px;border-radius:11px}
}
/* One additional size step on desktop, as requested. */
@media(min-width:751px) and (min-height:650px){
 .contact-rail{--contact-closed-size:72px;--contact-open-width:80px;--contact-expanded-height:568px;border-radius:36px}
 .contact-rail.is-open{border-radius:40px}
 .contact-rail__toggle{width:68px;height:68px}
 .contact-rail__toggle svg{width:33px;height:33px}
 .contact-rail__panel{left:9px;right:9px;height:calc(100% - 92px);gap:7px}
 .contact-rail__item{width:60px;height:60px}
 .contact-rail__item svg{width:31px;height:31px}
 .contact-rail__tip{font-size:16.5px;padding:12px 17px}
}
/* The circle remains under the cursor while its menu opens above or below it. */
.contact-rail.is-positioned{top:var(--contact-top);bottom:auto;transform:translateX(-50%)}
.contact-rail.is-positioned.is-open{height:var(--contact-menu-height);transition:height .32s cubic-bezier(.22,.61,.36,1),width .32s ease,background .24s ease;transform:translateX(-50%)}
.contact-rail.is-positioned.opens-up.is-open{transform:translate(-50%,calc(var(--contact-closed-size) - 100%))}
.contact-rail.is-positioned .contact-rail__toggle{bottom:1px}
.contact-rail.is-positioned.is-open:not(.opens-up) .contact-rail__toggle{top:1px;bottom:auto}
.contact-rail.is-positioned.is-open:not(.opens-up) .contact-rail__panel{top:calc(var(--contact-closed-size) + 12px);bottom:9px;height:auto}
.contact-rail.is-positioned.is-open .contact-rail__toggle{transition:background .2s ease}
.contact-rail.is-positioned.needs-scroll.is-open .contact-rail__panel{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.contact-rail.needs-scroll .contact-rail__tip{display:none}
.contact-rail.is-dragging,.contact-rail.is-dragging .contact-rail__toggle{transition:none!important;cursor:grabbing}
.contact-rail__toggle svg{pointer-events:none;user-select:none;-webkit-user-select:none}
/* Compact desktop rail; preserve the same drag anchor and all seven contacts. */
@media(min-width:751px) and (min-height:650px){
 .contact-rail{--contact-closed-size:52px;--contact-open-width:60px;--contact-expanded-height:418px;border-radius:26px}
 .contact-rail.is-open{border-radius:30px}
 .contact-rail__toggle{width:48px;height:48px}
 .contact-rail__toggle svg{width:25px;height:25px}
 .contact-rail__panel{left:7px;right:7px;top:7px;height:calc(100% - 72px);gap:5px}
 .contact-rail__item{width:44px;height:44px;border-radius:11px}
 .contact-rail__item svg{width:23px;height:23px}
 .contact-rail__tip{font-size:13px;line-height:1.4;padding:8px 11px;border-radius:8px}
}
/* Keep social links above the central direct contact and contact details below. */
.contact-rail__panel{justify-content:space-between}
.contact-rail.needs-scroll .contact-rail__panel{justify-content:flex-start}
/* The closed contact circle remains the centre of the expanded menu. */
.contact-rail.is-positioned.is-open,.contact-rail.is-positioned.opens-up.is-open{height:303px;transform:translate(-50%,-150px);overflow:visible}
.contact-rail.is-positioned.is-open .contact-rail__panel,.contact-rail.is-positioned.is-open:not(.opens-up) .contact-rail__panel{top:7px;bottom:auto;left:7px;right:7px;height:auto;gap:5px;justify-content:flex-start;overflow:visible}
.contact-rail.is-positioned.is-open .contact-rail__item{width:44px;height:44px;flex-shrink:0}
.contact-rail.is-positioned.is-open .contact-rail__item--direct{border-radius:50%;touch-action:none}
.contact-rail.is-positioned.is-open .contact-rail__toggle{opacity:0;pointer-events:none}
/* The contact circle stays fixed while the white menu grows from its centre. */
.contact-rail.is-positioned,.contact-rail.is-positioned.is-open,.contact-rail.is-positioned.opens-up.is-open{width:60px;height:303px;top:var(--contact-top);transform:translate(-50%,-150px);background:transparent;border:0;box-shadow:none;overflow:visible;pointer-events:none;transition:none}
.contact-rail.is-positioned::before{content:"";position:absolute;inset:0;background:#fff;border:1px solid var(--line);border-radius:30px;box-shadow:0 8px 30px #061b3d20;transform:scaleY(.17);transform-origin:50% 58%;opacity:0;transition:transform .38s cubic-bezier(.22,1,.36,1),opacity .18s ease;pointer-events:none}
.contact-rail.is-positioned.is-open::before{transform:scaleY(1);opacity:1}
.contact-rail.is-positioned .contact-rail__toggle,.contact-rail.is-positioned.is-open:not(.opens-up) .contact-rail__toggle{top:150px;bottom:auto;width:52px;height:52px;background:var(--brand);color:#fff;pointer-events:auto;opacity:1;transition:opacity .12s ease}
.contact-rail.is-positioned.is-open .contact-rail__toggle{opacity:0;pointer-events:none}
.contact-rail.is-positioned .contact-rail__panel,.contact-rail.is-positioned.is-open .contact-rail__panel,.contact-rail.is-positioned.is-open:not(.opens-up) .contact-rail__panel{top:7px;left:8px;right:8px;bottom:auto;height:auto;gap:5px;justify-content:flex-start;overflow:visible;transition:opacity .22s ease,visibility .22s ease}
.contact-rail.is-positioned.is-open{pointer-events:auto}
.contact-rail.is-positioned .contact-rail__item{transition:transform .38s cubic-bezier(.22,1,.36,1),opacity .24s ease,background .2s,color .2s}
.contact-rail.is-positioned:not(.is-open) .contact-rail__item:nth-child(1){transform:translateY(147px)}
.contact-rail.is-positioned:not(.is-open) .contact-rail__item:nth-child(2){transform:translateY(98px)}
.contact-rail.is-positioned:not(.is-open) .contact-rail__item:nth-child(3){transform:translateY(49px)}
.contact-rail.is-positioned:not(.is-open) .contact-rail__item:nth-child(5){transform:translateY(-49px)}
.contact-rail.is-positioned:not(.is-open) .contact-rail__item:nth-child(6){transform:translateY(-98px)}
.contact-rail.is-positioned.is-open .contact-rail__item--direct{width:52px;height:52px;margin:-4px;border-radius:50%;background:var(--brand);color:#fff}
.contact-rail.is-positioned.is-open .contact-rail__item--direct:hover,.contact-rail.is-positioned.is-open .contact-rail__item--direct:focus-visible{background:var(--brand);color:#fff}
@media(prefers-reduced-motion:reduce){.contact-rail.is-positioned::before,.contact-rail.is-positioned .contact-rail__item,.contact-rail.is-positioned .contact-rail__panel{transition:none}}
