/* Cookie consent notice. Hidden by default (PHP renders [hidden]); JS reveals
   it only when no prior consent exists. Sits above the sticky CTA bar on mobile. */

.tmtphcm-cookie-consent[hidden] {
    display: none;
}

.tmtphcm-cookie-consent {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
    padding: 12px 16px;
    background: rgba(33, 33, 33, 0.96);
    color: #ffffff;
    font-size: 13px;
    line-height: 1.4;
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.25);
}

.tmtphcm-cookie-text {
    margin: 0;
    max-width: 720px;
}

.tmtphcm-cookie-text a {
    color: #ffb366;
    text-decoration: underline;
}

.tmtphcm-cookie-accept {
    flex: 0 0 auto;
    padding: 8px 22px;
    border: 0;
    border-radius: 4px;
    background: #ff6600;
    color: #ffffff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.tmtphcm-cookie-accept:hover {
    background: #e65c00;
}

/* clear the sticky CTA bar so the banner doesn't overlap it on mobile.
   :has() scopes the offset to when the bar is actually present, so an
   empty-contacts config leaves the banner flush at the bottom (no gap).
   --tmtphcm-cta-h is defined in sticky-cta.css; 54px fallback keeps this
   correct even if that stylesheet isn't loaded. */
@media (max-width: 849px) {
    body:has(.tmtphcm-sticky-cta) .tmtphcm-cookie-consent {
        bottom: calc(var(--tmtphcm-cta-h, 54px) + env(safe-area-inset-bottom, 0));
    }
}
