/* GH perf/overflow safety net: prevent horizontal 跑版 site-wide */
html { overflow-x: clip; }
body { overflow-x: clip; max-width: 100%; }

.footer.site-footer-shared,
.site-footer-shared {
    --footer-ink-0: var(--ink-0, var(--text, #f7f7f8));
    --footer-ink-2: var(--ink-2, var(--muted, #b6b6bb));
    --footer-ink-3: var(--ink-3, var(--muted-2, #8a8a92));
    --footer-ink-4: var(--ink-4, #5c5c64);
    --footer-paper-0: var(--paper-0, var(--bg, #060607));
    --footer-line: var(--line, rgba(255, 255, 255, 0.10));
    --footer-line-soft: var(--line-soft, rgba(255, 255, 255, 0.06));
    --footer-accent: var(--accent, #00bfd1);
    position: relative;
    margin-top: 24px;
    padding: 48px 0 52px;
    border-top: 1px solid var(--footer-line-soft);
    background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.012));
}

.site-footer-shared .footer-shell {
    width: min(calc(100% - 96px), var(--container, 1680px));
    margin: 0 auto;
}

.site-footer-shared .footer-grid {
    display: grid;
    grid-template-columns: minmax(440px, 0.82fr) minmax(560px, 1fr);
    align-items: start;
    gap: clamp(42px, 4.6vw, 82px);
}

.site-footer-shared .footer-card h3 {
    margin: 0 0 10px;
    color: var(--footer-ink-0);
    font-family: var(--font-display, var(--font-sans, "IBMPlexSansTC", "PingFang TC", "Microsoft JhengHei", sans-serif));
    font-size: clamp(1.22rem, 1.25vw, 1.48rem);
    font-weight: 600;
    letter-spacing: 0;
    text-shadow: none;
}

.site-footer-shared .footer-card p.muted {
    max-width: 820px;
    margin: 0;
    color: var(--footer-ink-3);
    font-size: clamp(0.94rem, 0.86vw, 1.04rem);
    line-height: 1.75;
}

.site-footer-shared .footer-copy-line {
    display: block;
    max-width: 100%;
    overflow-wrap: normal;
    word-break: keep-all;
}

.site-footer-shared .footer-links {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    justify-content: flex-start;
    width: 100%;
    margin-top: 22px;
}

.site-footer-shared .footer-links a,
.site-footer-shared .contact-link,
.site-footer-shared .contact-copy {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--footer-line-soft);
    border-radius: 999px;
    color: var(--footer-ink-2);
    background: rgba(255, 255, 255, 0.02);
    font: inherit;
    font-size: clamp(0.9rem, 0.74vw, 1rem);
    line-height: 1;                 /* 消除繼承的高行距，icon 與文字垂直對齊更穩 */
    text-align: left;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

/* footer 連結加粗(top-level,不受  影響) */
.site-footer-shared .footer-links a {
    font-weight: 600;
}

.site-footer-shared .footer-links a i,
.site-footer-shared .contact-link i,
.site-footer-shared .contact-copy i {
    color: var(--footer-ink-3);
    font-size: 0.86em;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.site-footer-shared .footer-links a:hover,
.site-footer-shared .footer-links a:focus-visible,
.site-footer-shared .contact-link:hover,
.site-footer-shared .contact-link:focus-visible,
.site-footer-shared .contact-copy:hover,
.site-footer-shared .contact-copy:focus-visible {
    color: var(--footer-accent);
    border-color: rgba(0, 191, 209, 0.72);
    background: rgba(0, 191, 209, 0.12);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.10),
        0 0 0 1px rgba(0, 191, 209, 0.14),
        0 0 22px rgba(0, 191, 209, 0.16);
    transform: translateY(-2px);
    outline: none;
}

.site-footer-shared .footer-links a:hover i,
.site-footer-shared .footer-links a:focus-visible i,
.site-footer-shared .contact-link:hover i,
.site-footer-shared .contact-link:focus-visible i,
.site-footer-shared .contact-copy:hover i,
.site-footer-shared .contact-copy:focus-visible i {
    color: var(--footer-accent);
}

.site-footer-shared .contact-list {
    display: grid;
    width: max-content;
    max-width: 100%;
    min-width: 0;
    gap: 10px;
    margin-top: 0;
}

.site-footer-shared .footer-contact-layout {
    display: grid;
    grid-template-columns: max-content max-content;
    align-items: start;
    justify-items: start;
    justify-content: space-between;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    gap: clamp(32px, 3.2vw, 56px);
}

.site-footer-shared .footer-contact-card {
    width: min(100%, 780px);
    justify-self: end;
}

.site-footer-shared .footer-contact-card .footer-links {
    width: 100%;
    margin-left: 0;
    justify-content: flex-end;
}

.site-footer-shared .footer-contact-group {
    display: grid;
    align-content: start;
    gap: 12px;
    padding-inline: 0;
}

.site-footer-shared .footer-contact-group:nth-child(2) {
    justify-self: end;
    text-align: right;
}

.site-footer-shared .contact-link span,
.site-footer-shared .contact-copy span,
.site-footer-shared .footer-links a span {
    white-space: nowrap;
}

.site-footer-shared .contact-link span,
.site-footer-shared .contact-copy span {
    display: inline-flex;
    flex-direction: column;
    line-height: 1.3;
    text-align: left;
}

.site-footer-shared .contact-link small,
.site-footer-shared .contact-copy small {
    color: var(--footer-ink-3);
    font-size: 0.84em;
    font-weight: 700;
}

.site-footer-shared .contact-link b,
.site-footer-shared .contact-copy b {
    color: var(--footer-ink-2);
    font-weight: 700;
}

.site-footer-shared .contact-list {
    grid-template-columns: repeat(3, max-content);
    align-items: center;
    gap: 12px;
}

.site-footer-shared .contact-link,
.site-footer-shared .contact-copy {
    position: relative;
    overflow: visible;
    isolation: isolate;
    justify-content: center;
    gap: 0;
    width: 48px;
    min-width: 48px;
    min-height: 48px;
    padding: 0;
    color: rgba(178, 190, 197, 0.9) !important;
    border-color: rgba(255, 255, 255, 0.085) !important;
    background: rgba(14, 26, 36, 0.96) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 12px 28px rgba(0, 0, 0, 0.26) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transform: none;
}

.site-footer-shared .contact-link i,
.site-footer-shared .contact-copy i {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    margin: 0;
    color: rgba(178, 190, 197, 0.9) !important;
    font-size: 1.08rem;
    line-height: 1;
}

.site-footer-shared .contact-link:hover,
.site-footer-shared .contact-link:focus-visible,
.site-footer-shared .contact-copy:hover,
.site-footer-shared .contact-copy:focus-visible {
    width: 48px;
    padding: 0;
    color: var(--footer-accent) !important;
    border-color: rgba(0, 191, 209, 0.72) !important;
    background: rgba(0, 191, 209, 0.16) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.10),
        0 0 0 1px rgba(0, 191, 209, 0.14),
        0 0 22px rgba(0, 191, 209, 0.16) !important;
    transform: translateY(-2px);
}

.site-footer-shared .contact-link:hover i,
.site-footer-shared .contact-link:focus-visible i,
.site-footer-shared .contact-copy:hover i,
.site-footer-shared .contact-copy:focus-visible i {
    color: var(--footer-accent) !important;
}

.site-footer-shared .contact-link::after,
.site-footer-shared .contact-copy::after {
    content: attr(data-label);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 2px);
    z-index: 12;
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border: 1px solid rgba(0, 191, 209, 0.48);
    border-radius: 999px;
    color: rgba(118, 236, 245, 0.96);
    background:
        radial-gradient(120% 160% at 50% 0%, rgba(0, 191, 209, 0.18), transparent 58%),
        linear-gradient(180deg, rgba(24, 40, 44, 0.90), rgba(9, 17, 20, 0.80)),
        rgba(12, 28, 32, 0.88);
    box-shadow:
        0 10px 26px rgba(0, 0, 0, 0.42),
        0 0 0 1px rgba(0, 191, 209, 0.10),
        0 0 18px rgba(0, 191, 209, 0.20),
        inset 0 1px 0 rgba(255,255,255,0.16),
        inset 0 -1px 0 rgba(0, 191, 209, 0.12);
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, 8px);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.site-footer-shared .contact-link:hover::after,
.site-footer-shared .contact-link:focus-visible::after,
.site-footer-shared .contact-copy:hover::after,
.site-footer-shared .contact-copy:focus-visible::after {
    opacity: 1;
    transform: translate(-50%, 0);
}

.site-footer-shared .contact-copy {
    width: 48px;
}

/* 線上聯絡表單：文字膠囊連結（覆寫「Final contact-button lock」的圓鈕樣式，把文字寫出來） */
/* 清單改回單欄靠左：覆寫桌機 grid repeat(3, 48px) + justify-items:center（3 顆圓鈕時代的格線，會把膠囊置中而往左凸出） */
body .site-footer-shared .footer-contact-group .contact-list {
    grid-template-columns: max-content !important;
    justify-items: start !important;
    justify-content: start !important;
}
body .site-footer-shared .contact-list .contact-link,
body .site-footer-shared .contact-list .contact-link:hover,
body .site-footer-shared .contact-list .contact-link:focus-visible {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    place-items: center !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 44px !important;
    padding: 0 18px !important;
    gap: 9px !important;
    border-radius: 999px !important;
}
body .site-footer-shared .contact-list .contact-link i {
    display: inline-flex !important;
    place-items: center !important;
    width: auto !important;
    height: auto !important;
    font-size: 0.98rem !important;
}
body .site-footer-shared .contact-list .contact-link span {
    display: inline !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    clip-path: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    font-weight: 600;
    white-space: nowrap;
}
body .site-footer-shared .contact-list .contact-link::after {
    content: none !important;
}

.site-footer-shared .business-info {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;
    justify-content: flex-end;
    width: 100%;
    max-width: 100%;
    margin: 0;
    min-width: 0;
}

.site-footer-shared .footer-contact-layout .business-info {
    margin-top: 0;
}

.site-footer-shared .business-info > strong {
    color: var(--footer-ink-0);
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1.1;
}

.site-footer-shared .business-info span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: auto;
    max-width: 100%;
    min-height: 42px;
    padding: 0 15px;
    border: 1px solid var(--footer-line-soft);
    border-radius: 999px;
    color: var(--footer-ink-3);
    background: rgba(255, 255, 255, 0.02);
    font-size: clamp(0.9rem, 0.68vw, 1rem);
    white-space: nowrap;
    transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.site-footer-shared .business-info i {
    color: var(--footer-ink-3);
    font-size: 0.92rem;
}

.site-footer-shared .business-info small {
    color: var(--footer-ink-3);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1;
    white-space: nowrap;
}

.site-footer-shared .business-info b {
    color: var(--footer-ink-2);
    font-size: 0.96em;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

/* 營業資訊 (business info) only shows on commerce pages: 商店 (products), 商品內頁 (product detail), 購物車 (cart), 結帳 (checkout), 訂單完成 (order complete), 訪客訂單查詢 (guest order lookup). Hidden everywhere else. */
body:not(.products-page):not(.product-page):not(.cart-page):not(.checkout-page):not(.order-complete-page):not(.guest-order-page) .site-footer-shared .footer-contact-group:has(.business-info) {
    display: none;
}

.site-footer-shared .footer-base {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid var(--footer-line-soft);
    color: var(--footer-ink-4);
    font-size: clamp(0.9rem, 0.78vw, 1rem);
}

/* ===== 合作夥伴：footer 緊湊條（opt-in：footer 元素加 data-footer-partners 才顯示）=====
   自成一列、夾在 footer-grid 與 footer-base 之間，不影響右側「營業資訊」區塊。 */
.site-footer-shared .footer-partners {
    display: flex;
    flex-direction: column;            /* 標籤在上、跑馬燈在下 */
    align-items: stretch;
    gap: clamp(12px, 1.4vw, 18px);
    margin: -24px 0 clamp(36px, 4vw, 56px); /* 負上邊距：往上靠近 footer 頂端 */
    padding-bottom: 2px;
}
.site-footer-shared .footer-partners-label {
    flex: 0 0 auto;
    color: var(--footer-ink-0);
    /* 與 footer 標題（遊戲醫院 GameHospital／聯絡資訊）同字級、同字型 */
    font-family: var(--font-display, var(--font-sans, "IBMPlexSansTC", "PingFang TC", "Microsoft JhengHei", sans-serif));
    font-size: clamp(1.22rem, 1.25vw, 1.48rem);
    font-weight: 600;
    letter-spacing: 0;
    white-space: nowrap;
}
/* 跑馬燈視窗：裁切溢出 + 兩側淡出 */
.site-footer-shared .footer-partners-list {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
}
/* 跑馬燈軌道：多份內容無縫橫向迴圈 */
.site-footer-shared .footer-partners-track {
    display: flex;
    width: max-content;
    align-items: center;
    animation: footer-partners-marquee 72s linear infinite;
    will-change: transform;
}
.site-footer-shared .footer-partners-list:hover .footer-partners-track {
    animation-play-state: paused;   /* 無 JS 後備：滑入暫停（瞬停） */
}
/* JS 接手後關掉 CSS 動畫，改由 rAF 驅動 transform，才能緩動加減速（與首頁日曆同款曲線） */
.site-footer-shared .footer-partners.is-js-marquee .footer-partners-track {
    animation: none;
    will-change: transform;
    transform: translate3d(0, 0, 0);
}
@keyframes footer-partners-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
.site-footer-shared .footer-partner {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    flex: 0 0 auto;
    height: 46px;
    margin-right: clamp(40px, 4.4vw, 76px); /* 作為 logo 間距；每份都有→迴圈接縫也等距 */
    /* 淡化放在連結上，img 的 opacity 留給 image-fade.js 控制淡入（避免衝突造成閃現） */
    opacity: 0.88;
    transition: opacity 0.22s ease, transform 0.22s ease;
}
.site-footer-shared .footer-partner:hover {
    opacity: 1;
    transform: translateY(-1px);
}
.site-footer-shared .footer-partner img {
    max-height: 34px;
    max-width: 190px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    /* 與首頁同款：去色＋提亮成白色標誌。注意：這裡「不要」設 opacity，
       讓 image-fade.js 的 img[data-fade] 0→1 淡入生效，否則會蓋掉淡入而「閃現」。
       白色標誌。 */
    filter: grayscale(1) brightness(2.06);
    transition: opacity 0.5s ease;
}
/* 圖示型 logo（Mastercard、JCB）較方正，等高時視覺偏小，單獨放大做光學平衡 */
.site-footer-shared .footer-partner--icon img {
    max-height: 44px;
}
/* 萊爾富、ECPay 視覺偏小，放大一點做平衡 */
.site-footer-shared .footer-partner--lg img {
    max-height: 40px;
}
@media (max-width: 760px) {
    /* 手機：同樣跑馬燈，整體略縮、速度略快 */
    .site-footer-shared .footer-partners {
        margin: -10px 0 40px;          /* 上移＋與下方區塊拉開間距 */
        gap: 12px;
    }
    .site-footer-shared .footer-partners-track {
        animation-duration: 70s;
    }
    .site-footer-shared .footer-partner {
        height: 38px;
        margin-right: 34px;
    }
    .site-footer-shared .footer-partner img { max-height: 30px; max-width: 165px; }
    .site-footer-shared .footer-partner--icon img { max-height: 38px; }
    .site-footer-shared .footer-partner--lg img { max-height: 34px; }
}
/* 尊重「減少動態」偏好：停止跑馬燈，改為可手動橫向捲動 */
@media (prefers-reduced-motion: reduce) {
    .site-footer-shared .footer-partners-track { animation: none; }
    .site-footer-shared .footer-partners-list { overflow-x: auto; scrollbar-width: none; }
    .site-footer-shared .footer-partners-list::-webkit-scrollbar { display: none; }
}

.copy-toast {
    position: fixed;
    left: 50%;
    top: 50%;
    right: auto !important;
    bottom: auto !important;
    z-index: 120;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: max-content;
    min-width: 132px;
    max-width: min(calc(100vw - 48px), 320px);
    min-height: 46px;
    height: auto;
    padding: 0 18px;
    box-sizing: border-box;
    border: 1px solid rgba(0, 191, 209, 0.58);
    border-radius: 999px;
    color: var(--footer-ink-0, var(--ink-0, var(--text, #f7f7f8)));
    background: #0e2032;
    box-shadow:
        0 0 0 1px rgba(0, 191, 209, 0.18),
        0 0 34px rgba(0, 191, 209, 0.22),
        0 20px 52px rgba(0, 0, 0, 0.42);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
    writing-mode: horizontal-tb;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, -44%) scale(0.96);
    transition: opacity 0.22s ease, transform 0.22s ease;
}

.copy-toast.is-visible,
.copy-toast.show {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.copy-toast i {
    color: var(--footer-accent, var(--accent, #00bfd1));
}

.cart-toast {
    position: fixed;
    left: 50%;
    top: 50%;
    z-index: 140;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px 14px;
    align-items: center;
    width: min(calc(100vw - 32px), 440px);
    padding: 18px;
    border: 1px solid rgba(0, 191, 209, 0.34);
    border-radius: 18px;
    color: var(--footer-ink-0, var(--ink-0, var(--text, #f7f7f8)));
    background:
        linear-gradient(180deg, rgba(18, 25, 27, 0.96), rgba(9, 13, 15, 0.97)),
        rgba(8, 12, 14, 0.96);
    box-shadow:
        0 0 0 1px rgba(0, 191, 209, 0.13),
        0 0 30px rgba(0, 191, 209, 0.16),
        0 26px 70px rgba(0, 0, 0, 0.5);
    pointer-events: none;
    opacity: 0;
    transform: translate3d(-50%, calc(-50% + 14px), 0) scale(0.96);
    transition: opacity 0.24s ease, transform 0.3s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.cart-toast.is-visible {
    pointer-events: auto;
    opacity: 1;
    transform: translate3d(-50%, -50%, 0) scale(1);
}

.cart-toast-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(0, 191, 209, 0.28);
    border-radius: 14px;
    color: var(--footer-accent, var(--accent, #00bfd1));
    background: rgba(0, 191, 209, 0.11);
}

.cart-toast-icon i {
    font-size: 1.1rem;
}

.cart-toast-copy {
    min-width: 0;
}

.cart-toast-copy b,
.cart-toast-copy span {
    display: block;
}

.cart-toast-copy b {
    color: #f7f8f9;
    font-size: 1rem;
    font-weight: 900;
    line-height: 1.28;
}

.cart-toast-copy span {
    max-width: 100%;
    margin-top: 4px;
    overflow: hidden;
    color: #aab2b8;
    font-size: 0.88rem;
    font-weight: 760;
    line-height: 1.45;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cart-toast-actions {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.cart-toast-actions a,
.cart-toast-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 999px;
    color: #d9dee2;
    background: rgba(255, 255, 255, 0.045);
    font: inherit;
    font-size: 0.88rem;
    font-weight: 850;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.cart-toast-actions a {
    color: #071315;
    border-color: rgba(0, 191, 209, 0.50);
    background: linear-gradient(180deg, #2fd6e4, #16bfce);
}

.cart-toast-actions a:hover,
.cart-toast-actions a:focus-visible,
.cart-toast-actions button:hover,
.cart-toast-actions button:focus-visible {
    color: var(--footer-accent, var(--accent, #00bfd1));
    border-color: rgba(0, 191, 209, 0.40);
    background: rgba(0, 191, 209, 0.10);
    box-shadow: 0 0 0 1px rgba(0, 191, 209, 0.12);
}

.cart-toast-actions a:hover,
.cart-toast-actions a:focus-visible {
    color: #051013;
    background: linear-gradient(180deg, #4de6f0, #1fc9d8);
}

@media (max-width: 640px) {
    .cart-toast {
        left: 14px;
        right: 14px;
        top: auto;
        bottom: 88px;
        width: auto;
        border-radius: 16px;
        transform: translate3d(0, 16px, 0) scale(0.98);
    }

    .cart-toast.is-visible {
        transform: translate3d(0, 0, 0) scale(1);
    }

    .cart-toast-actions {
        justify-content: stretch;
    }

    .cart-toast-actions a,
    .cart-toast-actions button {
        flex: 1 1 0;
        min-width: 0;
    }
}

.floating-actions {
    position: fixed !important;
    right: clamp(14px, 1.2vw, 22px) !important;
    bottom: clamp(14px, 1.2vw, 22px) !important;
    z-index: 80 !important;
    display: grid !important;
    grid-auto-flow: row !important;
    gap: clamp(10px, 0.68vw, 13px) !important;
    justify-items: end !important;
    align-items: center !important;
}

.floating-action {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    width: auto !important;
    min-width: clamp(62px, 2.55vw, 70px) !important;
    height: clamp(62px, 2.55vw, 70px) !important;
    min-height: clamp(62px, 2.55vw, 70px) !important;
    max-width: none !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 1px solid rgba(110, 220, 232, 0.22) !important;
    border-radius: 999px !important;
    color: var(--footer-ink-0, #f7f7f8) !important;
    background:
        linear-gradient(135deg, rgba(0, 191, 209, 0.13), rgba(12, 29, 36, 0.52)),
        rgba(7, 16, 20, 0.62) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.08),
        0 18px 42px rgba(0,0,0,0.36) !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transform: none !important;
    transition: padding 0.24s ease, border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
}

.floating-action i {
    display: inline-grid !important;
    place-items: center !important;
    width: clamp(22px, 0.95vw, 25px) !important;
    min-width: clamp(22px, 0.95vw, 25px) !important;
    flex: 0 0 clamp(22px, 0.95vw, 25px) !important;
    margin: 0 !important;
    color: currentColor !important;
    font-size: clamp(1.16rem, 0.86vw, 1.34rem) !important;
    line-height: 1 !important;
    text-align: center !important;
}

.floating-action span {
    display: inline-block !important;
    max-width: 0 !important;
    padding-right: 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
    color: currentColor !important;
    font-size: clamp(0.96rem, 0.72vw, 1.05rem) !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    transition: max-width 0.24s ease, padding-right 0.24s ease, opacity 0.18s ease !important;
}

.floating-action:hover,
.floating-action:focus-visible {
    width: auto !important;
    min-width: clamp(62px, 2.55vw, 70px) !important;
    padding: 0 16px !important;
    color: var(--footer-accent, #00bfd1) !important;
    border-color: rgba(0,191,209,0.58) !important;
    background:
        linear-gradient(135deg, rgba(0, 191, 209, 0.24), rgba(13, 35, 42, 0.64)),
        rgba(0, 191, 209, 0.12) !important;
    box-shadow:
        0 0 0 1px rgba(0,191,209,0.16),
        0 0 28px rgba(0,191,209,0.18),
        0 16px 36px rgba(0,0,0,0.34) !important;
    text-decoration: none !important;
    transform: translateY(-2px) !important;
    outline: none !important;
}

.floating-action:hover span,
.floating-action:focus-visible span {
    max-width: 60px !important;
    padding-right: 8px !important;
    opacity: 1 !important;
}

@media (max-width: 900px) {
    .footer.site-footer-shared,
    .site-footer-shared {
        padding: 16px 0 34px;
    }

    .site-footer-shared .footer-shell {
        width: min(calc(100% - 28px), var(--container, 1680px));
    }

    .site-footer-shared .footer-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .site-footer-shared .footer-copy-line {
        display: block;
    }

    .site-footer-shared .footer-contact-layout {
        grid-template-columns: 1fr;
        width: 100%;
        margin-left: 0;
        gap: 24px;
    }

    .site-footer-shared .footer-contact-card .footer-links {
        margin-left: 0;
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .site-footer-shared .contact-list {
        width: max-content;
        max-width: 100%;
        min-width: 0;
        grid-template-columns: repeat(3, max-content);
        gap: 12px;
    }

    .site-footer-shared .footer-contact-group {
        padding-inline: 8px;
    }

    .site-footer-shared .footer-contact-group:nth-child(2) {
        justify-self: start;
        text-align: left;
    }

    .site-footer-shared .footer-contact-group + .footer-contact-group {
        margin-top: 6px;
    }

    .site-footer-shared .business-info {
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 8px;
    }

    .site-footer-shared .footer-base {
        display: grid;
        justify-items: center;
        text-align: center;
        gap: 8px;
    }

    .site-footer-shared .footer-base span {
        display: block;
    }

    .site-footer-shared .footer-links a,
    .site-footer-shared .contact-link,
    .site-footer-shared .contact-copy {
        white-space: nowrap;
    }

    .site-footer-shared .footer-links a span {
        white-space: nowrap;
    }
}

@media (min-width: 901px) {
    body .site-footer-shared .footer-shell {
        width: min(calc(100% - 96px), 1680px) !important;
        max-width: 1680px !important;
        margin-inline: auto !important;
    }

    body .site-footer-shared .footer-grid {
        display: grid !important;
        grid-template-columns: minmax(520px, 0.95fr) minmax(720px, 1.05fr) !important;
        align-items: start !important;
        gap: clamp(54px, 5vw, 90px) !important;
    }

    body .site-footer-shared .footer-contact-card {
        width: min(100%, 860px) !important;
        justify-self: end !important;
    }

    body .site-footer-shared .footer-contact-layout {
        display: grid !important;
        grid-template-columns: max-content max-content !important;
        align-items: start !important;
        justify-items: start !important;
        justify-content: start !important;
        width: 100% !important;
        gap: clamp(70px, 5.2vw, 112px) !important;
        margin: 0 !important;
    }

    body .site-footer-shared .footer-contact-group {
        gap: 12px !important;
        padding: 0 !important;
    }

    body .site-footer-shared .footer-contact-group:nth-child(2) {
        justify-self: start !important;
        text-align: left !important;
    }

    body .site-footer-shared .contact-list {
        display: grid !important;
        grid-template-columns: repeat(3, max-content) !important;
        align-items: center !important;
        justify-content: start !important;
        width: max-content !important;
        gap: 12px !important;
        margin: 0 !important;
    }

    body .site-footer-shared .business-info {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        width: auto !important;
        margin: 0 !important;
    }

    body .site-footer-shared .footer-contact-card .footer-links {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        gap: 14px !important;
        width: auto !important;
        margin: 26px 0 0 !important;
    }
}

@media (max-width: 900px) {
    body .site-footer-shared .footer-shell {
        width: min(calc(100% - 28px), 1680px) !important;
    }

    body .site-footer-shared .footer-grid {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }

    body .site-footer-shared .footer-contact-layout {
        grid-template-columns: 1fr !important;
        justify-content: start !important;
        width: 100% !important;
        gap: 24px !important;
        margin: 0 !important;
    }

    body .site-footer-shared .footer-contact-group,
    body .site-footer-shared .footer-contact-group:nth-child(2) {
        justify-self: start !important;
        text-align: left !important;
        padding-inline: 8px !important;
    }

    body .site-footer-shared .business-info,
    body .site-footer-shared .footer-contact-card .footer-links {
        justify-content: flex-start !important;
        flex-wrap: wrap !important;
    }
}

/* Final shared footer/floating action lock. Keep this last so page-level legacy CSS
   cannot drift the common controls apart again. */
@media (min-width: 901px) {
    body .site-footer-shared .footer-grid {
        grid-template-columns: minmax(420px, 0.92fr) minmax(760px, 1.08fr) !important;
        gap: clamp(44px, 4.2vw, 76px) !important;
    }

    body .site-footer-shared .footer-card:first-child {
        max-width: 620px !important;
    }

    body .site-footer-shared .footer-contact-card {
        width: 100% !important;
        max-width: 100% !important;
        justify-self: stretch !important;
    }

    body .site-footer-shared .footer-contact-layout {
        width: 100% !important;
        grid-template-columns: max-content max-content !important;
        justify-content: end !important;
        align-items: start !important;
        gap: clamp(96px, 5.1vw, 130px) !important;
    }

    body .site-footer-shared .footer-contact-group:nth-child(2) {
        justify-self: end !important;
        text-align: left !important;
    }

    body .site-footer-shared .footer-contact-group:nth-child(2) .business-info {
        justify-content: flex-end !important;
    }

    body .site-footer-shared .footer-contact-card .footer-links {
        width: 100% !important;
        justify-content: flex-end !important;
        gap: clamp(10px, 0.8vw, 14px) !important;
        margin-top: 22px !important;
    }

    body .site-footer-shared .footer-contact-card .footer-links a {
        flex: 0 0 auto !important;
    }
}

body .site-footer-shared .contact-link,
body .site-footer-shared .contact-copy,
body .site-footer-shared .business-info span,
body .site-footer-shared .footer-links a {
    font-weight: 600;
}

body .site-footer-shared .contact-link::after,
body .site-footer-shared .contact-copy::after {
    bottom: calc(100% + 6px) !important;
    background:
        radial-gradient(120% 180% at 50% 0%, rgba(0, 191, 209, 0.22), transparent 62%),
        linear-gradient(180deg, rgba(29, 47, 52, 0.92), rgba(8, 18, 21, 0.86)),
        rgba(12, 28, 32, 0.90) !important;
}

body .floating-actions {
    right: clamp(14px, 1.15vw, 24px) !important;
    bottom: clamp(14px, 1.15vw, 24px) !important;
    gap: clamp(11px, 0.7vw, 14px) !important;
    z-index: 85 !important;
}

body .floating-action {
    width: auto !important;
    min-width: clamp(58px, 2.65vw, 72px) !important;
    height: clamp(58px, 2.65vw, 72px) !important;
    min-height: clamp(58px, 2.65vw, 72px) !important;
    padding: 0 !important;
    gap: 0 !important;
    justify-content: center !important;
    border-color: rgba(110, 220, 232, 0.32) !important;
    background: linear-gradient(135deg, #0d2228 0%, #061319 100%) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body .floating-action:hover,
body .floating-action:focus-visible {
    width: auto !important;
    min-width: clamp(58px, 2.65vw, 72px) !important;
    padding: 0 18px !important;
    background: linear-gradient(135deg, #114048 0%, #061f26 100%) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body .floating-action span {
    font-size: clamp(0.96rem, 0.76vw, 1.08rem) !important;
}

@media (max-width: 900px) {
    body .site-footer-shared .footer-contact-card {
        width: 100% !important;
        justify-self: stretch !important;
    }

    body .site-footer-shared .footer-contact-layout {
        width: 100% !important;
        gap: 22px !important;
        justify-items: start !important;
    }

    body .site-footer-shared .footer-contact-group,
    body .site-footer-shared .footer-contact-group:nth-child(2) {
        width: 100% !important;
        padding-inline: 0 !important;
        justify-self: start !important;
        text-align: left !important;
    }

    body .site-footer-shared .contact-list {
        justify-content: flex-start !important;
        margin-left: 0 !important;
    }

    body .site-footer-shared .business-info {
        justify-content: flex-start !important;
        width: 100% !important;
        margin-left: 0 !important;
    }

    body .site-footer-shared .footer-contact-card .footer-links {
        justify-content: flex-start !important;
        gap: 8px !important;
        width: 100% !important;
        margin-left: 0 !important;
    }

    body .site-footer-shared .business-info span {
        max-width: 100% !important;
    }

    body .floating-action:hover,
    body .floating-action:focus-visible {
        width: auto !important;
        min-width: clamp(58px, 2.65vw, 72px) !important;
    }
}

@media (max-width: 760px) {
    body .floating-actions {
        right: 12px !important;
        bottom: 14px !important;
        grid-auto-flow: row !important;
        gap: 8px !important;
        justify-items: end !important;
    }

    body .floating-action {
        width: 56px !important;
        min-width: 56px !important;
        height: 56px !important;
        min-height: 56px !important;
        padding: 0 !important;
        justify-content: center !important;
        align-items: center !important;
        box-shadow:
            inset 0 1px 0 rgba(255,255,255,0.08),
            0 12px 26px rgba(0,0,0,0.28) !important;
    }

    body .floating-action i {
        width: auto !important;
        min-width: 0 !important;
        flex: 0 0 auto !important;
        font-size: 1.35rem !important;
        margin: 0 !important;
    }

    body .floating-action span {
        display: none !important;
    }

    body .floating-action:hover,
    body .floating-action:focus-visible {
        width: 56px !important;
        min-width: 56px !important;
        transform: translateY(-1px) !important;
    }

    body .floating-action:hover span,
    body .floating-action:focus-visible span {
        max-width: 0 !important;
        opacity: 0 !important;
    }
}

@media (max-width: 640px) {
    body.product-page .floating-actions {
        bottom: 118px !important;
    }
}

/* Footer alignment lock: keep the 4K composition on desktop/laptop sizes. */
@media (min-width: 901px) {
    body .site-footer-shared .footer-shell {
        width: min(calc(100% - 96px), 1680px) !important;
        max-width: 1680px !important;
        margin-inline: auto !important;
    }

    body .site-footer-shared .footer-grid {
        display: grid !important;
        grid-template-columns: minmax(300px, 0.66fr) minmax(0, 1.34fr) !important;
        align-items: start !important;
        gap: clamp(34px, 3.6vw, 76px) !important;
        width: 100% !important;
        overflow: visible !important;
    }

    body .site-footer-shared .footer-card:first-child {
        width: 100% !important;
        max-width: 620px !important;
        justify-self: start !important;
    }

    body .site-footer-shared .footer-contact-card {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        justify-self: stretch !important;
    }

    body .site-footer-shared .footer-contact-layout {
        display: grid !important;
        grid-template-columns: max-content max-content !important;
        align-items: start !important;
        justify-content: space-between !important;
        gap: clamp(28px, 4.2vw, 128px) !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    body .site-footer-shared .footer-contact-group,
    body .site-footer-shared .footer-contact-group:nth-child(2) {
        width: max-content !important;
        max-width: 100% !important;
        justify-self: auto !important;
        text-align: left !important;
        padding: 0 !important;
    }

    body .site-footer-shared .contact-list {
        display: grid !important;
        grid-template-columns: repeat(3, 48px) !important;
        justify-content: start !important;
        justify-items: center !important;
        gap: 12px !important;
        width: max-content !important;
        margin: 0 !important;
    }

    body .site-footer-shared .business-info {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: flex-end !important;
        align-items: center !important;
        gap: 10px !important;
        width: max-content !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    body .site-footer-shared .footer-contact-card .footer-links {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: flex-end !important;
        align-items: center !important;
        gap: clamp(8px, 0.76vw, 14px) !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 22px 0 0 !important;
    }

    body .site-footer-shared .footer-contact-card .footer-links a,
    body .site-footer-shared .business-info span {
        flex: 0 0 auto !important;
    }
}

@media (min-width: 901px) and (max-width: 1180px) {
    body .site-footer-shared .footer-shell {
        width: min(calc(100% - 36px), 1680px) !important;
    }

    body .site-footer-shared .footer-grid {
        grid-template-columns: minmax(220px, 0.36fr) minmax(0, 1fr) !important;
        gap: 24px !important;
    }

    body .site-footer-shared .footer-card:first-child {
        max-width: 300px !important;
    }

    body .site-footer-shared .footer-contact-layout {
        gap: 22px !important;
    }

    body .site-footer-shared .business-info {
        gap: 8px !important;
    }

    body .site-footer-shared .business-info span {
        min-height: 40px !important;
        padding-inline: 11px !important;
        gap: 7px !important;
    }

    body .site-footer-shared .footer-contact-card .footer-links {
        gap: 7px !important;
    }

    body .site-footer-shared .footer-contact-card .footer-links a {
        min-height: 42px !important;
        padding-inline: 10px !important;
        gap: 7px !important;
        font-size: 0.84rem !important;
    }
}

@media (max-width: 900px) {
    body .site-footer-shared .footer-shell {
        width: min(calc(100% - 28px), 1680px) !important;
    }

    body .site-footer-shared .footer-grid {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
        width: 100% !important;
    }

    body .site-footer-shared .footer-card:first-child,
    body .site-footer-shared .footer-contact-card {
        width: 100% !important;
        max-width: none !important;
        justify-self: stretch !important;
    }

    body .site-footer-shared .footer-contact-layout {
        grid-template-columns: 1fr !important;
        justify-content: start !important;
        justify-items: start !important;
        gap: 24px !important;
        width: 100% !important;
        margin: 0 !important;
    }

    body .site-footer-shared .footer-contact-group,
    body .site-footer-shared .footer-contact-group:nth-child(2) {
        width: 100% !important;
        justify-self: start !important;
        text-align: left !important;
        padding: 0 !important;
    }

    body .site-footer-shared .contact-list,
    body .site-footer-shared .business-info,
    body .site-footer-shared .footer-contact-card .footer-links {
        justify-content: flex-start !important;
        margin-left: 0 !important;
    }
}

/* Final footer composition: upper left edge follows the first footer button,
   upper right edge follows the last business pill. */
@media (min-width: 901px) {
    body .site-footer-shared .footer-contact-card {
        width: max-content !important;
        max-width: 100% !important;
        justify-self: end !important;
    }

    body .site-footer-shared .footer-contact-layout {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: max-content max-content !important;
        align-items: start !important;
        justify-content: space-between !important;
        gap: clamp(52px, 5vw, 116px) !important;
        margin: 0 !important;
    }

    body .site-footer-shared .footer-contact-group,
    body .site-footer-shared .footer-contact-group:nth-child(2) {
        width: max-content !important;
        justify-self: auto !important;
        text-align: left !important;
        padding: 0 !important;
    }

    body .site-footer-shared .contact-list,
    body .site-footer-shared .business-info {
        width: max-content !important;
        justify-content: flex-start !important;
        margin: 0 !important;
    }

    body .site-footer-shared .footer-contact-card .footer-links {
        width: 100% !important;
        max-width: 100% !important;
        justify-content: space-between !important;
        flex-wrap: nowrap !important;
        gap: clamp(8px, 0.7vw, 12px) !important;
        margin: 22px 0 0 !important;
    }
}

@media (min-width: 901px) and (max-width: 1180px) {
    body .site-footer-shared .footer-contact-card {
        width: min-content !important;
        min-width: min(100%, 620px) !important;
    }
}

@media (max-width: 900px) {
    body .site-footer-shared .footer-contact-card,
    body .site-footer-shared .footer-contact-layout,
    body .site-footer-shared .footer-contact-card .footer-links {
        width: 100% !important;
        max-width: none !important;
    }
}

/* Final contact-button lock: plain shared footer buttons across all pages. */
body .site-footer-shared .contact-link,
body .site-footer-shared .contact-copy {
    display: inline-grid !important;
    place-items: center !important;
    width: 50px !important;
    min-width: 50px !important;
    height: 50px !important;
    min-height: 50px !important;
    padding: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    color: rgba(210, 218, 223, 0.94) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    background: #07090a !important;
    background-image: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 10px 22px rgba(0, 0, 0, 0.24) !important;
    transform: none !important;
}

body .site-footer-shared .contact-link:hover,
body .site-footer-shared .contact-link:focus-visible,
body .site-footer-shared .contact-copy:hover,
body .site-footer-shared .contact-copy:focus-visible {
    color: var(--footer-accent) !important;
    border-color: rgba(0, 191, 209, 0.48) !important;
    background: #0b0f10 !important;
    background-image: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 10px 22px rgba(0, 0, 0, 0.24) !important;
    transform: none !important;
}

body .site-footer-shared .contact-link i,
body .site-footer-shared .contact-copy i {
    display: block !important;
    place-self: center !important;
    flex: none !important;
    width: 1.14rem !important;
    height: 1.14rem !important;
    margin: 0 !important;
    color: currentColor !important;
    font-size: 1.14rem !important;
    line-height: 1 !important;
    vertical-align: 0 !important;
    transform: none !important;
}

body .site-footer-shared .contact-link .ig-logo,
body .site-footer-shared .contact-copy .ig-logo {
    display: block !important;
    place-self: center !important;
    flex: none !important;
    width: 1.26rem !important;
    height: 1.26rem !important;
    margin: 0 !important;
    color: currentColor !important;
    font-size: 1.26rem !important;
    line-height: 1 !important;
    vertical-align: 0 !important;
    transform: none !important;
}

body .site-footer-shared .contact-link i,
body .site-footer-shared .contact-copy i {
    display: grid !important;
    place-items: center !important;
}

body .site-footer-shared .contact-link i::before,
body .site-footer-shared .contact-copy i::before {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    line-height: 1 !important;
}

body .site-footer-shared .contact-copy .fa-discord,
body .site-footer-shared .contact-link .fa-discord {
    transform: translateX(-1.5px) !important;
}

body .site-footer-shared .contact-link:hover i,
body .site-footer-shared .contact-link:focus-visible i,
body .site-footer-shared .contact-copy:hover i,
body .site-footer-shared .contact-copy:focus-visible i,
body .site-footer-shared .contact-link:hover .ig-logo,
body .site-footer-shared .contact-link:focus-visible .ig-logo,
body .site-footer-shared .contact-copy:hover .ig-logo,
body .site-footer-shared .contact-copy:focus-visible .ig-logo {
    color: currentColor !important;
}

body .site-footer-shared .contact-link::after,
body .site-footer-shared .contact-copy::after,
body .site-footer-shared .contact-link:hover::after,
body .site-footer-shared .contact-link:focus-visible::after,
body .site-footer-shared .contact-copy:hover::after,
body .site-footer-shared .contact-copy:focus-visible::after {
    background: #07090a !important;
    background-image: none !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.28) !important;
}

@media (max-width: 640px) {
    body .site-footer-shared .contact-link::after,
    body .site-footer-shared .contact-copy::after,
    body .site-footer-shared .contact-link:hover::after,
    body .site-footer-shared .contact-link:focus-visible::after,
    body .site-footer-shared .contact-copy:hover::after,
    body .site-footer-shared .contact-copy:focus-visible::after {
        display: none !important;
        content: none !important;
        opacity: 0 !important;
    }
}

/* Keep the copyright sentence from splitting inside "All rights reserved". */
body .site-footer-shared .footer-base {
    overflow-wrap: normal !important;
    word-break: keep-all !important;
}

body .site-footer-shared .footer-base span {
    max-width: 100% !important;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
}

/* Footer contact icon lock: keep all three round buttons optically centered
   and make hover feedback identical across icon fonts and inline SVG. */
body .site-footer-shared .contact-list {
    align-items: center !important;
}

body .site-footer-shared .contact-link,
body .site-footer-shared .contact-copy {
    place-items: center !important;
    color: rgba(205, 214, 220, 0.94) !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    background: #07090a !important;
    transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease !important;
}

body .site-footer-shared .contact-link:hover,
body .site-footer-shared .contact-link:focus-visible,
body .site-footer-shared .contact-copy:hover,
body .site-footer-shared .contact-copy:focus-visible {
    color: var(--footer-accent) !important;
    border-color: rgba(0, 191, 209, 0.52) !important;
    background: #0a1113 !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 0 0 1px rgba(0, 191, 209, 0.10),
        0 10px 22px rgba(0, 0, 0, 0.24) !important;
}

body .site-footer-shared .contact-link i,
body .site-footer-shared .contact-copy i,
body .site-footer-shared .contact-link .ig-logo,
body .site-footer-shared .contact-copy .ig-logo {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    place-self: center !important;
    width: 22px !important;
    min-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    margin: 0 !important;
    color: currentColor !important;
    line-height: 1 !important;
    transform: none !important;
}

body .site-footer-shared .contact-link i::before,
body .site-footer-shared .contact-copy i::before {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    line-height: 1 !important;
}

body .site-footer-shared .contact-link .fa-comments {
    font-size: 1.16rem !important;
}

body .site-footer-shared .contact-copy .fa-discord {
    font-size: 1.18rem !important;
    transform: none !important;
}

body .site-footer-shared .contact-link .ig-logo {
    width: 21px !important;
    min-width: 21px !important;
    height: 21px !important;
    min-height: 21px !important;
}

/* GH weak-device / reduced-motion degrade: drop frosted-glass blur & heavy glow */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  .hero-logo-mark { filter: drop-shadow(0 0 10px rgba(0, 191, 209, 0.4)) !important; }
}

/* Mobile final lock: keep quick actions tappable without covering card text. */
@media (max-width: 760px) {
    body .floating-actions {
        right: max(8px, env(safe-area-inset-right)) !important;
        bottom: calc(max(8px, env(safe-area-inset-bottom)) + 8px) !important;
        display: flex !important;
        grid-auto-flow: row !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 8px !important;
        opacity: 0.88 !important;
    }

    body .floating-actions:hover,
    body .floating-actions:focus-within {
        opacity: 1 !important;
    }

    body .floating-action,
    body .floating-action:hover,
    body .floating-action:focus-visible {
        width: 54px !important;
        min-width: 54px !important;
        height: 54px !important;
        min-height: 54px !important;
        padding: 0 !important;
        border-color: rgba(110, 220, 232, 0.26) !important;
        background: rgba(7, 18, 24, 0.88) !important;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.08),
            0 10px 22px rgba(0, 0, 0, 0.24) !important;
        transform: none !important;
    }

    body .floating-action i {
        font-size: 1.08rem !important;
    }

    body .site-footer-shared {
        padding-bottom: 112px !important;
    }

    body:has(.site-menu .nav.open) .floating-actions {
        opacity: 0 !important;
        pointer-events: none !important;
    }
}

@media (max-width: 380px) {
    body .floating-actions {
        right: max(7px, env(safe-area-inset-right)) !important;
        bottom: calc(max(7px, env(safe-area-inset-bottom)) + 7px) !important;
        gap: 5px !important;
    }

    body .floating-action,
    body .floating-action:hover,
    body .floating-action:focus-visible {
        width: 50px !important;
        min-width: 50px !important;
        height: 50px !important;
        min-height: 50px !important;
    }
}
