/* Locally packaged contact panel; legacy shared CSS still supports the inquiry cart. */
.contact-widget { --contact-red: #c6232a; --contact-ink: #292f34; --contact-muted: #697178; position: fixed; right: 20px; bottom: 20px; z-index: 999; display: flex; flex-direction: column; align-items: flex-end; font-family: Arial, "Helvetica Neue", sans-serif; }
.contact-widget .contact-panel { position: fixed; right: 24px; bottom: 96px; width: min(420px, calc(100vw - 32px)); max-height: calc(100dvh - 128px); padding: 0; overflow-y: auto; background: #fff; color: var(--contact-ink); border: 1px solid #e0e3e5; border-radius: 12px; box-shadow: 0 12px 40px rgb(20 27 32 / 14%); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(8px) scale(.98); transform-origin: bottom right; transition: transform 180ms cubic-bezier(.23, 1, .32, 1), opacity 180ms cubic-bezier(.23, 1, .32, 1), visibility 180ms; z-index: 1001; }
.contact-widget.is-open .contact-panel { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
.contact-widget .contact-panel-inner { padding: 28px; }
.contact-widget .contact-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin: 0 0 12px; }
.contact-widget .contact-kicker { margin: 0 0 10px; color: var(--contact-red); font: 600 11px/1.4 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.contact-widget #contact-panel-title { margin: 0; max-width: none; color: var(--contact-ink); font-family: inherit; font-size: 28px; font-weight: 600; line-height: 1.2; letter-spacing: -.025em; text-wrap: initial; }
.contact-widget .contact-close { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; min-width: 44px; padding: 0; margin: -10px -10px 0 0; border: 0; border-radius: 6px; background: transparent; color: #697178; font: 400 25px/1 Arial, sans-serif; cursor: pointer; }
.contact-widget .contact-panel-copy { margin: 0 0 22px; max-width: none; color: var(--contact-muted); font: 400 16px/1.65 Arial, sans-serif; }
.contact-widget .contact-channel-list { display: grid; gap: 0; margin: 0 0 24px; border-top: 1px solid #e5e7e9; }
.contact-widget .contact-channel { display: grid; grid-template-columns: 24px minmax(0, 1fr) 16px; align-items: center; gap: 12px; padding: 18px 0; border-bottom: 1px solid #e5e7e9; color: var(--contact-ink); text-decoration: none; text-transform: none; letter-spacing: 0; }
.contact-widget .contact-channel svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; color: #7b838a; }
.contact-widget .contact-channel .contact-channel-body { display: grid; min-width: 0; gap: 5px; }
.contact-widget .contact-channel .contact-channel-label { font: 400 13px/1.4 Arial, sans-serif; letter-spacing: 0; text-transform: none; color: var(--contact-muted); }
.contact-widget .contact-channel b { min-width: 0; color: var(--contact-ink); font: 600 16px/1.5 Arial, sans-serif; text-transform: none; letter-spacing: 0; overflow-wrap: anywhere; }
.contact-widget .contact-channel .contact-channel-arrow { color: #8b949b; font-size: 18px; }
.contact-widget .contact-widget-action { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 50px; padding: 12px 18px; border: 1px solid var(--contact-red); border-radius: 6px; background: var(--contact-red); color: #fff; text-decoration: none; font: 600 16px/1.4 Arial, sans-serif; letter-spacing: 0; text-transform: none; }
.contact-widget .contact-launcher { display: flex; align-items: center; gap: 10px; width: auto; min-width: 0; min-height: 52px; height: auto; padding: 12px 20px; border: 0; border-radius: 999px; background: var(--contact-red); color: #fff; box-shadow: 0 4px 16px rgb(20 27 32 / 12%); font: 600 16px/1.4 Arial, sans-serif !important; letter-spacing: 0; text-transform: none; }
.contact-widget .contact-launcher::before { display: none; content: none; }
.contact-widget .contact-launcher svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.contact-widget :is(button, a):focus-visible { outline: 3px solid #1f6fae; outline-offset: 3px; }
/* The old mobile case stylesheet hides this entire wrapper. */
@media screen { body.seo-case-page .contact-widget { display: block !important; } }
@media (hover: hover) and (pointer: fine) {
  .contact-widget .contact-close:hover { background: #f0f2f3; color: var(--contact-ink); }
  .contact-widget .contact-channel:hover b, .contact-widget .contact-channel:hover svg { color: var(--contact-red); }
  .contact-widget .contact-widget-action:hover, .contact-widget .contact-launcher:hover { background: #ab1e25; }
}
@media (max-width: 600px) {
  .contact-widget { right: 16px; bottom: 16px; }
  .contact-widget .contact-panel { right: 16px; bottom: 88px; max-height: calc(100dvh - 108px); }
  .contact-widget .contact-panel-inner { padding: 22px; }
  .contact-widget #contact-panel-title { font-size: 26px; }
  .contact-widget .contact-channel { grid-template-columns: 20px minmax(0, 1fr); gap: 10px; }
  .contact-widget .contact-channel-arrow { display: none; }
  .contact-widget .contact-launcher { right: 16px; bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .contact-widget .contact-panel { transform: none; transition: opacity 100ms, visibility 100ms; }
  .contact-widget.is-open .contact-panel { transform: none; }
}
