/* ─── COOKIE CONSENT ─── */
.ck { position: fixed; left: 18px; right: 18px; bottom: 18px; z-index: 200; max-width: 420px;
  background: var(--panel, var(--ink-2)); border: 1px solid var(--line); padding: 20px;
  box-shadow: 0 24px 70px rgba(0,0,0,.55); transform: translateY(20px); opacity: 0; visibility: hidden;
  transition: opacity .5s, transform .5s cubic-bezier(.22,1,.36,1), visibility .5s; }
[data-theme="light"] .ck { background: #fff; box-shadow: 0 24px 70px rgba(10,15,30,.18); }
.ck.show { opacity: 1; transform: translateY(0); visibility: visible; }
.ck::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--orange); }
.ck p { font-size: .82rem; line-height: 1.6; color: var(--muted, var(--mist)); margin-bottom: 14px; }
.ck p a { color: var(--orange); text-decoration: none; }
.ck p a:hover { text-decoration: underline; }
.ck-row { display: flex; gap: 10px; align-items: center; }
.ck-accept { font-family: var(--fd); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: .9rem;
  background: var(--orange); color: #fff; border: 0; padding: 11px 22px; cursor: pointer; transition: transform .3s; }
.ck-accept:hover { transform: translateY(-2px); }

/* ─── PAGESPEED MODAL ─── */
.ps-ov { position: fixed; inset: 0; z-index: 300; background: rgba(3,6,12,.75); backdrop-filter: blur(6px);
  display: grid; place-items: center; padding: 20px; opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s; overflow-y: auto; }
.ps-ov.open { opacity: 1; visibility: visible; }
.ps-modal { width: min(640px, 100%); background: var(--panel, var(--ink-2)); border: 1px solid var(--line);
  padding: clamp(24px, 3.5vw, 40px); position: relative; margin: auto; transform: translateY(16px); transition: transform .4s cubic-bezier(.22,1,.36,1); }
.ps-ov.open .ps-modal { transform: translateY(0); }
[data-theme="light"] .ps-modal { background: #fff; }
.ps-modal::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--orange); }
.ps-close { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border: 1px solid var(--line); background: transparent; cursor: pointer; display: grid; place-items: center; }
.ps-close svg { width: 14px; height: 14px; stroke: var(--muted, var(--mist)); stroke-width: 2.2; stroke-linecap: round; }
.ps-close:hover svg { stroke: var(--orange); }
.ps-modal h3 { font-family: var(--fd); font-weight: 800; text-transform: uppercase; font-size: clamp(1.5rem, 3vw, 2rem); color: var(--text, var(--bone)); margin-bottom: 6px; }
[data-theme="light"] .ps-modal h3 { color: var(--ink-2); }
.ps-modal .ps-sub { font-size: .85rem; color: var(--muted, var(--mist)); line-height: 1.6; margin-bottom: 20px; }
.ps-form { display: flex; gap: 10px; margin-bottom: 22px; }
.ps-form input { flex: 1; min-width: 0; background: transparent; border: 1px solid var(--line); color: var(--text, var(--bone)); padding: 13px 16px; font-family: var(--fb, Inter); font-size: .9rem; }
[data-theme="light"] .ps-form input { color: var(--ink-2); }
.ps-form input:focus { outline: none; border-color: var(--orange); }
.ps-run { font-family: var(--fd); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: .92rem;
  background: var(--orange); color: #fff; border: 0; padding: 0 22px; cursor: pointer; white-space: nowrap; }
.ps-run:disabled { opacity: .55; cursor: wait; }
.ps-tabs { display: flex; gap: 8px; margin-bottom: 20px; }
.ps-tab { flex: 1; font-family: var(--fm); font-size: .6rem; letter-spacing: .14em; text-transform: uppercase;
  border: 1px solid var(--line); background: transparent; color: var(--muted, var(--mist)); padding: 10px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: all .25s; }
.ps-tab svg { width: 13px; height: 13px; stroke: currentColor; stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.ps-tab.on { background: var(--orange); border-color: var(--orange); color: #fff; }
.ps-rings { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ps-ring { text-align: center; }
.ps-ring svg.g { width: 74px; height: 74px; transform: rotate(-90deg); }
.ps-ring .trk { fill: none; stroke: var(--line); stroke-width: 5; }
.ps-ring .val { fill: none; stroke-width: 5; stroke-linecap: round; stroke-dasharray: 208; stroke-dashoffset: 208; transition: stroke-dashoffset 1.1s cubic-bezier(.22,1,.36,1), stroke .4s; }
.ps-ring .sc { font-family: var(--fd); font-weight: 800; font-size: 1.25rem; margin-top: -52px; height: 52px; display: flex; align-items: flex-start; justify-content: center; padding-top: 8px; color: var(--text, var(--bone)); position: relative; }
[data-theme="light"] .ps-ring .sc { color: var(--ink-2); }
.ps-ring .lb { font-family: var(--fm); font-size: .52rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted, var(--mist)); margin-top: 10px; line-height: 1.5; }
.ps-note { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); font-family: var(--fm); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted, var(--mist)); text-align: center; line-height: 1.8; }
.ps-note b { color: var(--green); font-weight: 500; }
.ps-state { display: none; }
.ps-state.on { display: block; }
.ps-loading { text-align: center; padding: 30px 0; }
.ps-loading .sp { width: 40px; height: 40px; margin: 0 auto 16px; border: 2px solid var(--line); border-top-color: var(--orange); border-radius: 50%; animation: ps-spin .9s linear infinite; }
@keyframes ps-spin { to { transform: rotate(360deg); } }
.ps-loading p { font-size: .82rem; color: var(--muted, var(--mist)); }
.ps-error { text-align: center; padding: 24px 0; }
.ps-error p { font-size: .88rem; color: var(--text, var(--bone)); margin-bottom: 6px; }
[data-theme="light"] .ps-error p { color: var(--ink-2); }
.ps-error small { font-size: .76rem; color: var(--muted, var(--mist)); }
@media (max-width: 560px) { .ps-rings { grid-template-columns: repeat(2, 1fr); gap: 20px 10px; } .ps-form { flex-direction: column; } .ps-run { padding: 13px; } }

/* ─── QUIET EXPLORE LINKS ─── */
.hx-cta-stack { margin-top: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 13px; }
.hx-more { display: inline-flex; align-items: center; gap: 7px; font-family: var(--fm); font-size: .6rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted, var(--mist)); text-decoration: none; transition: color .3s, gap .3s; }
.hx-more svg { width: 12px; height: 12px; stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.hx-more:hover { color: var(--orange); gap: 11px; }
.hx-explore { margin-top: 26px; display: flex; gap: 10px 26px; flex-wrap: wrap; justify-content: center; }
@media (max-width: 760px) {
  .hx-cta-stack { align-items: stretch; }
  .hx-cta-stack .hx-more { justify-content: center; }
}

/* ─── LIVE CHAT FAB (GHL widget trigger) ─── */
.chat-fab {
  position: fixed; bottom: 84px; right: 26px;
  width: 50px; height: 50px; z-index: 810;
  background: var(--panel, var(--ink-2)); border: 1px solid rgba(244,81,30,.5); color: var(--orange);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: transform .35s cubic-bezier(.22,1,.36,1), background .3s, color .3s;
}
[data-theme="light"] .chat-fab { background: #fff; }
.chat-fab svg { width: 21px; height: 21px; stroke: currentColor; stroke-width: 1.9; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.chat-fab:hover { transform: translateY(-3px); background: var(--orange); color: #fff; border-color: var(--orange); }
.chat-fab::after { content: ''; position: absolute; inset: -1px; border: 1px solid rgba(244,81,30,.45); animation: chat-ping 2.6s ease-out infinite; pointer-events: none; }
@keyframes chat-ping { 0% { transform: scale(1); opacity: 1; } 70%, 100% { transform: scale(1.45); opacity: 0; } }
@media (max-width: 560px) { .chat-fab { bottom: 82px; right: 18px; } .stp { right: 18px; } }
@media (prefers-reduced-motion: reduce) { .chat-fab::after { animation: none; } }
