/* marketing-cac.css: scenes for the (unreleased) CAC product page. Prefix: gp-cac- */
.gp-cac-mock .gp-app { grid-template-columns: 158px 1fr; }
.gp-cac-mock .gp-cursor, .gp-cac-mock .gp-click { z-index: 30; }
.gp-cac-mock .gp-app-content { gap: 9px; }
.gp-cac-card-h { display: flex; align-items: center; gap: 8px; } .gp-cac-card-h b { margin-right: auto; font-size: 13px; font-weight: 600; color: #111827; }
.gp-cac-card-h .gp-chip svg { width: 10px; height: 10px; color: #6b7280; }
.gp-cac-plot { position: relative; margin-top: 4px; } .gp-cac-svg { display: block; overflow: visible; }
.gp-cac-svg text { font-family: 'Public Sans', system-ui, sans-serif; font-size: 8.5px; fill: #9ca3af; }
.gp-cac-tip { position: absolute; left: 0; top: 0; padding: 6px 10px; border-radius: 8px; background: #fff; font-size: 10.5px; color: #111827; pointer-events: none;
    box-shadow: 0 10px 22px -10px rgba(0,0,0,.3), 0 0 0 1px rgba(15,23,42,.07); opacity: 0; transform: translateY(3px); transition: opacity .25s ease, transform .3s ease; white-space: nowrap; }
.gp-cac-tip.on { opacity: 1; transform: none; } .gp-cac-tip small { display: block; font-size: 9.5px; color: #6b7280; }
.gp-cac-tip b { display: flex; align-items: center; gap: 6px; font-weight: 600; } .gp-cac-tip i { width: 7px; height: 7px; border-radius: 50%; background: #2776a0; }
.gp-cac-table { padding: 2px 0; overflow: hidden; }
.gp-cac-table table, .gp-cac-costs table { width: 100%; border-collapse: collapse; font-size: 11px; color: #1f2937; }
.gp-cac-table th { padding: 7px 14px 6px; text-align: right; font-weight: 600; color: #111827; font-size: 11px; } .gp-cac-table th:first-child { width: 170px; }
.gp-cac-table td { padding: 5.5px 14px; text-align: right; border-top: 1px solid #f1f3f5; white-space: nowrap; transition: background .3s ease; }
.gp-cac-table td:first-child { text-align: left; } .gp-cac-table td.hl, .gp-cac-table th.hl { background: #eff6fb; }
.gp-cac-ch { display: inline-flex; align-items: center; gap: 7px; } .gp-cac-ch svg { width: 13px; height: 13px; }
.gp-cac-ch .chev { width: 10px; height: 10px; color: #9ca3af; transition: transform .35s ease; } .gp-cac-open .gp-cac-ch .chev { transform: rotate(180deg); }
.gp-cac-sub td { font-size: 10px; color: #6b7280; padding-top: 0; padding-bottom: 0; border-top-color: transparent; }
.gp-cac-sub td > div { max-height: 0; overflow: hidden; transition: max-height .45s ease, padding .45s ease; }
.gp-cac-sub.on td > div { max-height: 22px; padding: 3.5px 0; } .gp-cac-sub.on td { border-top-color: #f5f6f8; }
.gp-cac-sub td:first-child > div { padding-left: 20px; }
.gp-cac-total td { font-weight: 600; border-top: 2px solid #e5e7eb; } .gp-cac-final td { font-weight: 600; color: #0f172a; }
.gp-cac-final td:not(:first-child) { color: #1e4f7a; }
/* Manage Costs */
.gp-cac-sec { margin-top: 2px; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #6b7280; }
.gp-cac-sec-row { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; }
.gp-cac-plats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 9px; }
.gp-cac-plat { height: 92px; padding: 10px 11px; border-radius: 10px; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 0 0 1px rgba(15,23,42,.05); display: flex; flex-direction: column; transition: box-shadow .3s ease; }
.gp-cac-plat.busy { box-shadow: 0 0 0 1.5px #2b87b8; }
.gp-cac-plat h4 { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 11.5px; font-weight: 600; color: #111827; } .gp-cac-plat h4 svg { width: 14px; height: 14px; }
.gp-cac-plat-s { position: relative; margin-top: auto; height: 30px; }
.gp-cac-btn { display: inline-flex; align-items: center; justify-content: center; height: 24px; padding: 0 12px; border-radius: 999px; background: #0e6fa0; color: #fff; font-size: 10.5px; font-weight: 600; transition: opacity .3s ease, transform .2s ease; }
.gp-cac-plat .gp-cac-btn { position: absolute; right: 0; bottom: 2px; }
.gp-cac-btn.press { transform: scale(.94); }
.gp-cac-ok { position: absolute; left: 0; bottom: 0; display: flex; flex-direction: column; gap: 1px; font-size: 10px; font-weight: 600; color: #15803d; opacity: 0; transform: translateY(4px); transition: opacity .35s ease, transform .4s ease; }
.gp-cac-ok i { position: absolute; left: 0; top: 4px; width: 6px; height: 6px; border-radius: 50%; background: #16a34a; } .gp-cac-ok { padding-left: 11px; }
.gp-cac-ok small { font-weight: 500; color: #6b7280; font-size: 9.5px; }
.gp-cac-plat.on .gp-cac-ok { opacity: 1; transform: none; } .gp-cac-plat.on .gp-cac-btn { opacity: 0; }
.gp-cac-plat.spin .gp-cac-btn::after { content: ""; width: 9px; height: 9px; margin-left: 6px; border-radius: 50%; border: 1.6px solid rgba(255,255,255,.5); border-top-color: #fff; animation: gpCacSpin .7s linear infinite; }
@keyframes gpCacSpin { to { transform: rotate(360deg); } }
.gp-cac-costs { padding: 2px 0; } .gp-cac-costs th { padding: 7px 14px; text-align: left; font-weight: 600; font-size: 11px; color: #111827; }
.gp-cac-costs td { padding: 6px 14px; border-top: 1px solid #f1f3f5; }
.gp-cac-costs tr.new td { animation: gpCacRow 1.8s ease-out; } @keyframes gpCacRow { 0% { background: #e0f2ec; } 100% { background: transparent; } }
.gp-cac-modal { position: absolute; left: 330px; top: 150px; z-index: 20; width: 380px; padding: 0 18px 16px; border-radius: 12px; background: #fff; font-size: 11px; color: #111827;
    box-shadow: 0 30px 60px -20px rgba(0,0,0,.35), 0 0 0 1px rgba(15,23,42,.08); opacity: 0; transform: translateY(10px) scale(.98); transition: opacity .3s ease, transform .35s ease; pointer-events: none; }
.gp-cac-modal.on { opacity: 1; transform: none; }
.gp-cac-modal-h { display: flex; justify-content: space-between; margin: 0 -18px 12px; padding: 11px 18px; border-radius: 12px 12px 0 0; background: #f1f3f5; font-weight: 600; font-size: 12px; } .gp-cac-modal-h span { color: #6b7280; }
.gp-cac-modal label { display: block; margin: 8px 0 4px; font-weight: 600; font-size: 10.5px; }
.gp-cac-in { height: 26px; padding: 0 10px; border-radius: 8px; box-shadow: 0 0 0 1px #e2e5ea; display: flex; align-items: center; font-size: 11px; }
.gp-cac-in.focus { box-shadow: 0 0 0 1.5px #2b87b8; } .gp-cac-in.caret::after { content: ""; width: 1px; height: 12px; margin-left: 1px; background: #111827; animation: gpBlink 1s steps(1) infinite; }
.gp-cac-sel::after { content: ""; margin-left: auto; width: 6px; height: 6px; border-right: 1.5px solid #6b7280; border-bottom: 1.5px solid #6b7280; transform: rotate(45deg) translateY(-2px); }
.gp-cac-two { display: grid; grid-template-columns: 1.3fr 1fr; gap: 10px; }
.gp-cac-period { display: flex; align-items: center; gap: 7px; } .gp-cac-period .gp-cac-in { width: 70px; } .gp-cac-period em { font-style: normal; color: #6b7280; }
.gp-cac-check { width: 14px; height: 14px; border-radius: 4px; box-shadow: 0 0 0 1.5px #cbd5e1; margin-left: 8px; transition: background .2s ease, box-shadow .2s ease; }
.gp-cac-check.on { background: #0e6fa0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.3l2.4 2.4L12 5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; box-shadow: none; }
.gp-cac-modal-f { display: flex; justify-content: flex-end; align-items: center; gap: 14px; margin-top: 14px; }
/* Blended CAC flow */
.gp-cac-blend { position: relative; width: 100%; height: 100%; border-radius: 20px; background: #fff; box-shadow: 0 50px 90px -50px rgba(12,58,65,.4), 0 0 0 1px rgba(15,23,42,.06); font-family: 'Public Sans', system-ui, sans-serif; }
.gp-cac-flow { position: absolute; inset: 0; width: 100%; height: 100%; }
.gp-cac-flow .base { fill: none; stroke: #e2e8f0; stroke-width: 1.6; } .gp-cac-flow .pk { fill: #0e7490; } .gp-cac-flow .pk.bill { fill: #635bff; }
.gp-cac-src { position: absolute; left: 30px; display: flex; align-items: center; gap: 10px; width: 250px; height: 50px; padding: 0 14px; border-radius: 12px; background: #fff; box-shadow: 0 0 0 1px rgba(15,23,42,.09); transition: box-shadow .3s ease; }
.gp-cac-src.hit { box-shadow: 0 0 0 1.5px #0e7490; } .gp-cac-src svg { width: 20px; height: 20px; flex: none; }
.gp-cac-src b { font-size: 14px; font-weight: 600; color: #0f172a; } .gp-cac-src em { margin-left: auto; font-style: normal; font-size: 13.5px; font-weight: 600; color: #334155; }
.gp-cac-bill { width: 300px; } .gp-cac-bill b { white-space: nowrap; } .gp-cac-bill em { font-size: 12px; font-weight: 500; color: #64748b; white-space: nowrap; }
.gp-cac-node { position: absolute; width: 170px; padding: 14px 16px; border-radius: 14px; background: #f8fafc; box-shadow: 0 0 0 1px rgba(15,23,42,.08); }
.gp-cac-node small, .gp-cac-result small { display: block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #64748b; }
.gp-cac-node b { display: block; margin-top: 3px; font-size: 26px; font-weight: 700; letter-spacing: -.02em; color: #0f172a; }
.gp-cac-div { position: absolute; font-size: 40px; font-weight: 300; color: #94a3b8; }
.gp-cac-result { position: absolute; width: 210px; padding: 20px 22px; border-radius: 18px; background: linear-gradient(150deg, #0e5c63, #0c3f47); color: #fff; box-shadow: 0 30px 60px -30px rgba(12,58,65,.7); transition: transform .4s ease; }
.gp-cac-result small { color: #9fd6d2; } .gp-cac-result b { display: block; margin-top: 4px; font-size: 42px; font-weight: 700; letter-spacing: -.02em; } .gp-cac-result span { font-size: 12.5px; color: #9fe1c8; }
.gp-cac-result.pop { transform: scale(1.04); }
.gp-cac-note { position: absolute; right: 22px; bottom: 16px; padding: 3px 9px; border-radius: 999px; background: #e6f3f5; color: #0e7490; font-size: 10.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
/* Payback + LTV:CAC */
.gp-cac-pb, .gp-cac-mg { position: relative; width: 100%; height: 100%; padding: 26px 30px; border-radius: 20px; background: #fff; box-shadow: 0 50px 90px -50px rgba(12,58,65,.4), 0 0 0 1px rgba(15,23,42,.06); font-family: 'Public Sans', system-ui, sans-serif; }
.gp-cac-gm { display: flex; align-items: center; gap: 18px; padding: 14px 18px; border-radius: 14px; background: #f5f7f9; }
.gp-cac-gm b { font-size: 14px; font-weight: 600; color: #0f172a; white-space: nowrap; } .gp-cac-gm span { width: 52px; font-size: 16px; font-weight: 700; color: #0e6fa0; text-align: right; }
.gp-cac-slider { position: relative; flex: 1; height: 6px; border-radius: 3px; background: #dfe5ea; }
.gp-cac-slider i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 3px; background: #2b87b8; }
.gp-cac-slider u { position: absolute; top: 50%; width: 20px; height: 20px; margin: -10px 0 0 -10px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 2px #2b87b8, 0 4px 10px -2px rgba(0,0,0,.25); }
.gp-cac-pb-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }
.gp-cac-panel { position: relative; height: 232px; padding: 20px 22px; border-radius: 16px; box-shadow: 0 0 0 1px rgba(15,23,42,.08); }
.gp-cac-panel small { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #64748b; }
.gp-cac-panel > b { display: block; margin-top: 4px; font-size: 34px; font-weight: 700; letter-spacing: -.02em; color: #0f172a; }
.gp-cac-months { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; margin-top: 18px; }
.gp-cac-months span { position: relative; height: 40px; border-radius: 6px; background: #eef2f5; overflow: hidden; }
.gp-cac-months span i { position: absolute; left: 0; top: 0; bottom: 0; background: linear-gradient(180deg, #37a0c8, #1e6f99); transition: width .35s ease; }
.gp-cac-months-ax { position: relative; height: 14px; margin-top: 6px; font-size: 10px; color: #94a3b8; }
.gp-cac-months-ax span { position: absolute; top: 0; transform: translateX(-50%); } .gp-cac-months-ax span:nth-child(1) { left: 4%; } .gp-cac-months-ax span:nth-child(2) { left: 20.8%; } .gp-cac-months-ax span:nth-child(3) { left: 45.8%; } .gp-cac-months-ax span:nth-child(4) { left: 70.8%; } .gp-cac-months-ax span:nth-child(5) { left: auto; right: 0; transform: none; }
.gp-cac-formula { position: absolute; left: 22px; right: 22px; bottom: 16px; margin: 0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; color: #0e7490; }
.gp-cac-ratio { position: relative; margin-top: 34px; }
.gp-cac-ratio-bar { height: 16px; border-radius: 8px; background: linear-gradient(90deg, #fde2e0 0%, #fde2e0 37.5%, #dcf5e6 37.5%, #dcf5e6 100%); overflow: hidden; }
.gp-cac-ratio-bar i { display: block; height: 100%; border-radius: 8px; background: linear-gradient(90deg, #2aa596, #16a34a); transition: width .35s ease; }
.gp-cac-ratio.low .gp-cac-ratio-bar i { background: linear-gradient(90deg, #f59e8b, #e5484d); }
.gp-cac-ratio > u { position: absolute; top: -8px; height: 32px; width: 2px; margin-left: -1px; background: #334155; }
.gp-cac-ratio > u em { position: absolute; left: 50%; top: -18px; transform: translateX(-50%); font-style: normal; font-size: 10.5px; font-weight: 700; color: #334155; white-space: nowrap; }
.gp-cac-ratio-ax { display: flex; justify-content: space-between; margin-top: 6px; font-size: 10px; color: #94a3b8; }
/* Magic number */
.gp-cac-mg-h { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 14px; } .gp-cac-mg-h > b { font-size: 17px; font-weight: 600; color: #0f172a; }
.gp-cac-mg-kpis { display: flex; gap: 22px; } .gp-cac-mg-kpis small { display: block; font-size: 10.5px; color: #64748b; }
.gp-cac-mg-kpis b { display: block; font-size: 17px; font-weight: 700; color: #0f172a; } .gp-cac-mg-big b { font-size: 26px; color: #16a34a; line-height: 1.1; }
@media (prefers-reduced-motion: reduce) { .gp-cac-mock * { transition: none !important; animation: none !important; } }
/* Platform strip under the hero scene */
.gp-cac-plats-strip { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 1100px; margin: 26px auto 0; }
.gp-cac-plats-strip span { display: inline-flex; align-items: center; gap: 9px; padding: 9px 16px 9px 12px; border-radius: 999px; background: #fff; font-size: 15px; font-weight: 500; color: #0f172a; box-shadow: 0 0 0 1px rgba(15,23,42,.09); }
.gp-cac-plats-strip svg { width: 18px; height: 18px; }
#gpCacReport .gp-launcher { display: none; }
