/* ==========================================================
   Site footer (footer.php) – same tokens as the AI School Lab / product pages
   ========================================================== */
.pt-footer {
    --ft-bg: var(--nero-gray, #1e1d1d);
    --ft-muted: rgba(255, 255, 255, .62);
    --ft-faint: rgba(255, 255, 255, .45);
    --ft-line: rgba(255, 255, 255, .14);
    --ft-yellow: #f0d038;
    --ft-display: var(--alt-font, 'Space Grotesk', sans-serif);
    --ft-mono: ui-monospace, "JetBrains Mono", SFMono-Regular, Menlo, Consolas, monospace;
    position: relative; overflow: hidden;
    padding: 90px 0 0; background: var(--ft-bg); color: var(--ft-muted);
}
.pt-footer a:focus-visible { outline: 2px solid var(--ft-yellow); outline-offset: 3px; }

/* top: brand + actions */
.pt-footer-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 30px; padding-bottom: 50px; border-bottom: 1px solid var(--ft-line); }
.pt-footer-logo img { display: block; width: auto; height: 40px; }
.pt-footer-tag { max-width: 430px; margin: 22px 0 0; font-size: 16px; line-height: 1.6; color: var(--ft-muted); }
.pt-footer-cta { display: flex; flex-wrap: wrap; gap: 12px; }
.pt-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 52px; padding: 0 26px; font-family: var(--ft-display); font-size: 15px; font-weight: 600; transition: background-color .25s ease, color .25s ease, border-color .25s ease; }
.pt-footer .pt-btn-solid { background: #fff; color: var(--ft-bg); }
.pt-footer .pt-btn-solid:hover { background: var(--ft-yellow); color: var(--ft-bg); }
.pt-footer .pt-btn-line { border: 1px solid rgba(255, 255, 255, .4); color: #fff; }
.pt-footer .pt-btn-line:hover { border-color: #25d366; color: #25d366; }

/* columns with hairline dividers */
.pt-footer-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.pt-footer-col { padding: 44px 30px 54px; border-left: 1px solid var(--ft-line); }
.pt-footer-col:first-child { padding-left: 0; border-left: 0; }
.pt-footer-label { display: block; margin-bottom: 22px; font-family: var(--ft-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #fff; }
.pt-footer-label b { margin-right: 10px; font-weight: 700; color: var(--ft-yellow); }
.pt-footer ul li { margin-bottom: 10px; }
.pt-footer-col a { font-size: 15px; color: var(--ft-muted); transition: color .2s ease; }
.pt-footer .pt-footer-col a:hover { color: #fff; }
.pt-footer-col p { margin: 0; font-size: 15px; line-height: 1.7; }
.pt-footer ul.pt-footer-contact li { display: flex; flex-direction: column; margin-bottom: 16px; }
.pt-footer-contact small { margin-bottom: 2px; font-family: var(--ft-mono); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--ft-faint); }
.pt-footer .pt-footer-contact a { font-family: var(--ft-display); font-size: 17px; font-weight: 600; color: #fff; }
.pt-footer .pt-footer-contact a:hover { color: var(--ft-yellow); }

/* bottom bar + watermark */
.pt-footer-bottom { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 0; border-top: 1px solid var(--ft-line); font-family: var(--ft-mono); font-size: 12px; }
.pt-footer-bottom p { margin: 0; }
.pt-footer .pt-footer-up { display: inline-flex; align-items: center; gap: 8px; color: var(--ft-muted); }
.pt-footer .pt-footer-up:hover { color: var(--ft-yellow); }
.pt-footer-mark {
    display: block; margin: -1vw 0 -4.2vw; text-align: center; white-space: nowrap;
    font-family: var(--ft-display); font-size: 21vw; font-weight: 600; line-height: 1; letter-spacing: -0.06em;
    color: rgba(255, 255, 255, .045); pointer-events: none; user-select: none;
}

@media (max-width: 1199px) {
    .pt-footer-grid { grid-template-columns: repeat(2, 1fr); }
    .pt-footer-col:nth-child(3) { padding-left: 0; border-left: 0; }
    .pt-footer-col:nth-child(n+3) { border-top: 1px solid var(--ft-line); }
}
@media (max-width: 767px) {
    .pt-footer { padding-top: 64px; }
    .pt-footer-top { align-items: flex-start; padding-bottom: 36px; }
    .pt-footer-logo img { height: 34px; }
    .pt-footer-cta { width: 100%; }
    .pt-btn { flex: 1; padding: 0 16px; }
    /* products + company side by side, the rest full width */
    .pt-footer-col { padding: 30px 0; border-left: 0; }
    .pt-footer-col:nth-child(2) { padding-left: 20px; border-left: 1px solid var(--ft-line); }
    .pt-footer-col:nth-child(n+3) { grid-column: 1 / -1; padding-left: 0; }
    .pt-footer-col a { font-size: 14px; }
    .pt-footer-bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* ---------- floating WhatsApp button (site-wide) ---------- */
.pt-wa { position: fixed; right: 24px; bottom: 24px; z-index: 9999; display: flex; align-items: center; gap: 12px; }
.pt-wa-icon {
    position: relative; display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 50%;
    background: linear-gradient(145deg, #2fe27a, #1da851); color: #fff; font-size: 30px;
    box-shadow: 0 10px 24px rgba(29, 168, 81, .38), 0 2px 6px rgba(0, 0, 0, .15);
    transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s ease;
}
.pt-wa-icon::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 50%; background: #25d366; animation: pt-wa-pulse 2.4s ease-out infinite; }
.pt-wa-label {
    padding: 10px 16px; border-radius: 100px; background: var(--nero-gray, #1e1d1d); box-shadow: 0 8px 20px rgba(0, 0, 0, .18);
    font-family: var(--alt-font, 'Space Grotesk', sans-serif); font-size: 14px; font-weight: 600; white-space: nowrap; color: #fff;
    opacity: 0; transform: translateX(10px); pointer-events: none; transition: opacity .25s ease, transform .25s ease;
}
.pt-wa:hover, .pt-wa:focus { color: #fff; }
.pt-wa:hover .pt-wa-label, .pt-wa:focus-visible .pt-wa-label { opacity: 1; transform: none; }
.pt-wa:hover .pt-wa-icon { transform: scale(1.08); box-shadow: 0 14px 30px rgba(29, 168, 81, .45), 0 2px 6px rgba(0, 0, 0, .15); }
.pt-wa:focus-visible { outline: none; }
.pt-wa:focus-visible .pt-wa-icon { outline: 2px solid var(--nero-gray, #1e1d1d); outline-offset: 3px; }
@keyframes pt-wa-pulse { 0% { transform: scale(1); opacity: .5; } 80%, 100% { transform: scale(1.6); opacity: 0; } }
@media (max-width: 767px) {
    .pt-wa { right: 16px; bottom: 16px; }
    .pt-wa-icon { width: 52px; height: 52px; font-size: 27px; }
    .pt-wa-label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .pt-wa-icon::before { animation: none; opacity: 0; }
}
