/* Compact footer and smooth dark contact utility. */
.ori-footer{padding:14px 0;border-top:1px solid var(--ori-border-soft);background:var(--ori-canvas)}
.ori-footer__grid{display:grid;grid-template-columns:140px minmax(0,1fr) auto;align-items:center;gap:10px 24px;min-width:0}
.ori-footer__brand{display:inline-flex;align-items:center}.ori-footer__brand img{display:block;width:140px;height:auto}
.ori-footer__legal{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 14px;color:rgba(216,222,231,.48);font-size:11px;line-height:1.5}.ori-footer__legal a{color:rgba(216,222,231,.66);transition:color .18s}.ori-footer__legal a:hover{color:#fff}
.ori-footer__social{display:flex;align-items:center;gap:4px}.ori-footer__social a{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:#fff;transition:background .18s}.ori-footer__social a:hover,.ori-footer__social a:focus-visible{background:var(--ori-surface-3)}.ori-footer__social svg{display:block;width:16px;height:16px;fill:currentColor}.ori-footer__social a:nth-child(2) svg{width:17px;height:17px}

/* Single owner for the contact dock. Collapsed geometry is one square. */
.ori-contact-dock{
  --ori-dock-size:46px;
  --ori-dock-top-size:42px;
  --ori-dock-padding:4px;
  --ori-dock-gap:4px;
  position:fixed;z-index:450;right:20px;
  bottom:var(--ori-dock-bottom,20px);
  max-width:calc(100vw - 28px);
  direction:ltr;
  transition:opacity .18s,bottom .28s var(--ori-ease);
}
.ori-contact-dock.is-footer-near{opacity:0;pointer-events:none}
.ori-contact-dock__controls{
  display:grid;
  grid-template-columns:0px var(--ori-dock-size);
  align-items:center;
  gap:0;
  width:calc(var(--ori-dock-size) + 10px);
  padding:var(--ori-dock-padding);
  border:1px solid rgba(255,255,255,.075);
  border-radius:999px;
  background:var(--ori-surface-1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 14px 34px rgba(0,0,0,.18);
  overflow:hidden;
  transition:width .32s var(--ori-ease),grid-template-columns .32s var(--ori-ease),gap .32s var(--ori-ease),background .22s;
}
.ori-contact-dock.is-scrolled .ori-contact-dock__controls{
  grid-template-columns:var(--ori-dock-top-size) var(--ori-dock-size);
  gap:var(--ori-dock-gap);
  width:calc(var(--ori-dock-top-size) + var(--ori-dock-size) + var(--ori-dock-gap) + 10px);
}
.ori-contact-dock__controls:hover,.ori-contact-dock:focus-within .ori-contact-dock__controls{background:var(--ori-surface-2)}
.ori-contact-dock__button,.ori-contact-dock__top{
  display:grid;place-items:center;min-width:0;padding:0;border:0;border-radius:50%;
  color:#fff;transition:background .2s,opacity .24s var(--ori-ease),transform .28s var(--ori-ease);
}
.ori-contact-dock__button:hover,.ori-contact-dock__top:hover{background:var(--ori-surface-3)}
.ori-contact-dock__top{
  grid-column:1;width:100%;height:var(--ori-dock-top-size);
  overflow:hidden;opacity:0;visibility:hidden;transform:translateX(12px) scale(.82);
  pointer-events:none;background:transparent;
  transition:opacity .28s var(--ori-ease),transform .32s var(--ori-ease),visibility .32s;
}
.ori-contact-dock.is-scrolled .ori-contact-dock__top{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.ori-contact-dock__button{
  grid-column:2;position:relative;z-index:1;
  width:var(--ori-dock-size);height:var(--ori-dock-size);
  flex:0 0 var(--ori-dock-size);background:var(--ori-surface-3);
}
.ori-contact-dock svg{display:block;width:21px;height:21px;fill:currentColor}
.ori-contact-dock__top svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* Waves animate independently of the square's layout and never reserve space. */
.ori-contact-dock__button:before,.ori-contact-dock__button:after{
  content:"";position:absolute;inset:-7px;border:1px solid rgba(136,59,210,.48);
  border-radius:50%;animation:ori-dock-wave 2.4s ease-out infinite;pointer-events:none;
}
.ori-contact-dock__button:after{animation-delay:.8s;border-color:rgba(59,208,210,.38)}
@keyframes ori-dock-wave{0%{transform:scale(.75);opacity:.75}80%,100%{transform:scale(1.45);opacity:0}}
.ori-contact-panel{
  position:absolute;z-index:2;right:0;bottom:calc(100% + 12px);
  width:min(300px,calc(100vw - 32px));padding:20px;
  border:1px solid rgba(255,255,255,.11);border-radius:20px;background:var(--ori-surface-1);
  box-shadow:0 18px 50px rgba(0,0,0,.24);
  direction:var(--ori-page-direction,ltr);opacity:1;transform:translateY(0) scale(1);
  transform-origin:bottom right;transition:opacity .22s var(--ori-ease),transform .22s var(--ori-ease);
}
.ori-contact-panel[hidden]{display:none!important}
.ori-contact-panel:not([hidden])::after{content:"";position:absolute;left:0;right:0;top:100%;height:14px;pointer-events:auto}
.ori-contact-dock.is-panel-open .ori-contact-panel,.ori-contact-dock.is-contact-open .ori-contact-panel{pointer-events:auto}
.ori-contact-dock:not(.is-contact-open) .ori-contact-panel{pointer-events:none}
.ori-contact-panel__close{position:absolute;right:14px;top:10px;display:grid;place-items:center;width:32px;height:32px;border:0;background:none;color:var(--ori-muted);font-size:24px}
.ori-contact-panel__heading{padding-right:28px}
.ori-contact-panel .ori-eyebrow{min-height:28px;padding:4px 10px;font-size:9px;margin-bottom:0}
.ori-contact-panel p{margin:14px 0 16px;color:var(--ori-muted);font-size:13.5px;line-height:1.5}
.ori-contact-panel .ori-button{--ori-button-height:38px;--ori-button-icon-size:28px;--ori-button-font-size:11px;--ori-button-gap:10px;--ori-button-text-pad:18px;width:auto;min-width:0;padding-right:18px}
.ori-contact-panel .ori-button__icon{display:none}
@media(max-width:700px){
  .ori-footer__grid{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}
  .ori-footer__brand{grid-column:1;grid-row:1}
  .ori-footer__social{grid-column:2;grid-row:1}
  .ori-footer__legal{grid-column:1/-1;grid-row:2;justify-content:flex-start}
  .ori-contact-dock{--ori-dock-size:44px;--ori-dock-top-size:44px;right:14px;bottom:var(--ori-dock-bottom,14px)}
  .ori-contact-panel{right:0;bottom:calc(100% + 12px)}
}
@media(prefers-reduced-motion:reduce){
  .ori-contact-dock,.ori-contact-dock__controls,.ori-contact-dock__button,.ori-contact-dock__top,.ori-contact-panel{transition:none}
  .ori-contact-dock__button:before,.ori-contact-dock__button:after{animation:none}
}
.ori-footer__grid{direction:ltr}
.ori-dir-rtl .ori-footer__legal{direction:rtl}
.ori-dir-rtl .ori-contact-panel{direction:rtl}
.ori-dir-rtl .ori-contact-panel__heading{padding-right:0;padding-left:28px}
.ori-dir-rtl .ori-contact-panel__close{right:auto;left:14px}
