/* Chat Extension page (tg.php), styled after the Sales Plan page: the same
   palette, type and section patterns as local/sales_plan/sales_plan.css, under
   its own tg- prefix, plus the parts this page alone has -- the illustrative
   chat card, the demo video, screenshots shown at no more than their own size,
   and the Book a Demo form in the closing band. */
.tg-page { --tg-ink:#172c3b; --tg-muted:#59707d; --tg-green:#159b83; --tg-green-dark:#087a69; --tg-mint:#e8f7f3; --tg-white:#fff; --tg-border:#dce7e9; --tg-shadow:0 16px 44px rgba(20,49,61,.09); --tg-radius:20px; --tg-width:1160px; }
.tg-page *, .tg-page *::before, .tg-page *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:120px; }
.tg-page { overflow:hidden; color:var(--tg-ink); background:var(--tg-white); font-family:"Noto Sans", "Segoe UI", Arial, sans-serif; font-size:16px; line-height:1.65; letter-spacing:normal; -webkit-font-smoothing:antialiased; }
.tg-page :focus-visible { outline:3px solid var(--tg-green-dark); outline-offset:3px; }

/* Site template overrides: the template colours h1-h3 and gives bare ul/ol items padding, bullets and counters */
.tg-page h1, .tg-page h2, .tg-page h3 { color:inherit; font-family:inherit; font-weight:700; }
.tg-page h3 { letter-spacing:normal; }
.tg-page ul, .tg-page ol { margin:0; padding:0; list-style:none; }
.tg-page ul li, .tg-page ol li { margin:0; padding:0; }
.tg-page ul li::before, .tg-page ol li::before { content:none; position:static; width:auto; height:auto; border-radius:0; background:none; }

/* Shared bits */
.tg-page .tg-container { width:min(var(--tg-width), calc(100% - 44px)); margin:0 auto; }
.tg-page .tg-topline { height:5px; background:linear-gradient(90deg, #087a69, #23b69a 58%, #9be2d2); }
.tg-page .tg-btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 20px; border:1px solid transparent; border-radius:10px; font-family:inherit; font-size:16px; font-weight:750; text-decoration:none; cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, background .18s ease; }
.tg-page .tg-btn:hover { transform:translateY(-2px); }
.tg-page .tg-btn-primary, .tg-page .tg-btn-primary:hover { color:#fff; background:var(--tg-green-dark); box-shadow:0 9px 20px rgba(8,122,105,.18); }
.tg-page .tg-btn-primary:hover { background:#056858; }
.tg-page .tg-btn-secondary, .tg-page .tg-btn-secondary:hover { color:var(--tg-ink); background:rgba(255,255,255,.78); border-color:#cbdcde; }
.tg-page .tg-btn-arrow { margin-left:10px; }

/* Hero, with the site-wide buy heading (extbc_buy_head) as its first row */
.tg-page .tg-hero { position:relative; padding:40px 0 72px; background:radial-gradient(circle at 83% 19%, rgba(56,193,163,.15), transparent 26%), radial-gradient(circle at 8% 88%, rgba(63,143,168,.09), transparent 28%), linear-gradient(135deg, #f7fbfb 0%, #edf7f5 56%, #f8fbfc 100%); border-bottom:1px solid var(--tg-border); }
.tg-page .tg-buy { margin-bottom:56px; padding-bottom:22px; border-bottom:1px solid var(--tg-border); }
.tg-page .tg-buy .buy-head__title { font-size:clamp(1.2rem, 2vw, 1.5rem); font-weight:800; line-height:1.3; letter-spacing:-.02em; }
.tg-page .tg-buy .buy-head__note { color:var(--tg-muted); }
.tg-page .tg-hero-grid { display:grid; grid-template-columns:minmax(0, 1.15fr) minmax(320px, .85fr); gap:54px; align-items:center; }
.tg-page .tg-eyebrow { display:inline-flex; align-items:center; gap:9px; padding:7px 12px; border:1px solid #c9e9e2; border-radius:999px; color:var(--tg-green-dark); background:rgba(255,255,255,.8); font-size:12px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.tg-page .tg-eyebrow-dot { width:7px; height:7px; border-radius:50%; background:var(--tg-green); }
.tg-page .tg-hero .tg-display { max-width:720px; margin:22px 0 20px; font-size:clamp(38px, 5vw, 62px); line-height:1.06; letter-spacing:-.045em; font-weight:780; }
.tg-page .tg-hero .tg-display span { color:var(--tg-green-dark); }
.tg-page .tg-lead { max-width:690px; margin:0; color:#435d6b; font-size:clamp(18px, 2vw, 21px); line-height:1.6; }
.tg-page .tg-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.tg-page .tg-hero-note { margin-top:17px; color:var(--tg-muted); font-size:13px; }

/* Illustrative chat card, drawn like the Sales Plan dashboard card: the
   channels as its tiles and a short conversation in place of the chart */
.tg-page .tg-chat { position:relative; padding:20px; border:1px solid rgba(197,218,220,.95); border-radius:22px; background:rgba(255,255,255,.87); box-shadow:var(--tg-shadow); transform:rotate(1deg); }
.tg-page .tg-chat::before { content:""; position:absolute; inset:-11px 14px 14px -11px; z-index:-1; border-radius:22px; background:#cceee5; }
.tg-page .tg-chat-head { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-bottom:16px; border-bottom:1px solid var(--tg-border); }
.tg-page .tg-chat-title { font-size:13px; font-weight:800; }
.tg-page .tg-chat-docked { color:var(--tg-muted); font-size:11px; white-space:nowrap; }
.tg-page .tg-channels { display:grid; grid-template-columns:repeat(2, 1fr); gap:10px; margin-top:14px; }
.tg-page .tg-channel { padding:13px; border:1px solid #e4edef; border-radius:12px; background:#fbfdfd; }
.tg-page .tg-channel-label { color:var(--tg-muted); font-size:11px; }
.tg-page .tg-channel-value { margin-top:2px; font-size:22px; font-weight:800; letter-spacing:-.035em; }
.tg-page .tg-channel-value small { font-size:11px; color:var(--tg-green-dark); letter-spacing:0; }
.tg-page .tg-thread { margin-top:12px; padding:15px; border:1px solid #e4edef; border-radius:12px; background:#fbfdfd; }
.tg-page .tg-thread-title { font-size:11px; font-weight:750; }
.tg-page .tg-msg { width:fit-content; max-width:85%; margin-top:10px; padding:8px 12px; border:1px solid #e1eaec; border-radius:12px; background:#fff; font-size:12px; line-height:1.45; }
.tg-page .tg-msg-out { margin-left:auto; border-color:#cfe9e2; background:var(--tg-mint); }
.tg-page .tg-msg-meta { display:block; margin-bottom:2px; color:var(--tg-muted); font-size:10px; font-weight:700; }
.tg-page .tg-file { display:flex; align-items:center; gap:6px; width:fit-content; margin-top:7px; padding:5px 9px; border:1px solid #cfe0e2; border-radius:8px; background:#fff; font-size:11px; font-weight:750; }
.tg-page .tg-file svg, .tg-page .tg-composer svg { flex:0 0 auto; width:13px; height:13px; }
.tg-page .tg-reaction { display:block; width:fit-content; margin:6px 0 0 auto; padding:0 7px; border:1px solid #cfe9e2; border-radius:99px; background:#fff; font-family:"Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif; font-size:11px; }
.tg-page .tg-voice { display:flex; align-items:center; gap:9px; }
.tg-page .tg-wave { display:flex; align-items:center; gap:2px; height:18px; }
.tg-page .tg-wave i { display:block; width:3px; border-radius:2px; background:#24aa91; }
.tg-page .tg-composer { display:flex; align-items:center; gap:10px; margin-top:12px; padding:10px 12px; border:1px solid #e4edef; border-radius:10px; background:#fff; color:var(--tg-muted); font-size:11px; }
.tg-page .tg-composer span { flex:1; }

/* Sections */
.tg-page .tg-section { padding:82px 0; }
.tg-page .tg-section-alt { background:#f7fafb; border-top:1px solid #edf2f3; border-bottom:1px solid #edf2f3; }
.tg-page .tg-section-heading { max-width:790px; margin:0 auto 40px; text-align:center; }
.tg-page .tg-kicker { margin:0 0 10px; color:var(--tg-green-dark); font-size:12px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.tg-page .tg-section h2 { margin:0; font-size:clamp(29px, 3.2vw, 42px); line-height:1.16; letter-spacing:-.035em; }
.tg-page .tg-section-heading > p:last-child { margin:17px auto 0; max-width:700px; color:var(--tg-muted); font-size:17px; }

/* Demo video */
.tg-page .tg-video { max-width:880px; margin:0 auto 40px; overflow:hidden; aspect-ratio:16 / 9; border:1px solid var(--tg-border); border-radius:14px; background:#10394a; box-shadow:var(--tg-shadow); }
.tg-page .tg-video iframe { display:block; width:100%; height:100%; border:0; }

/* Screenshots: each links to the full-size image. The pictures are small UI
   captures, so each shows at no more than its own pixel size (its width
   attribute) and is centred where its column is wider; the link shrinks to fit
   it, so the frame hugs the picture. */
.tg-page .tg-shot { margin:0; text-align:center; }
.tg-page .tg-shot a { display:inline-block; max-width:100%; vertical-align:top; overflow:hidden; border:1px solid var(--tg-border); border-radius:14px; background:#fff; box-shadow:var(--tg-shadow); transition:transform .18s ease, box-shadow .18s ease; }
.tg-page .tg-shot a:hover { transform:translateY(-2px); box-shadow:0 20px 50px rgba(20,49,61,.14); }
.tg-page .tg-shot img { display:block; max-width:100%; height:auto; }
.tg-page .tg-shot figcaption { margin-top:12px; color:var(--tg-muted); font-size:14px; text-align:left; }
.tg-page .tg-shot figcaption strong { color:var(--tg-ink); }
/* one wide capture over two narrow ones: 2fr 1fr 1fr brings the three to about the same height */
.tg-page .tg-shot-grid { display:grid; grid-template-columns:minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap:24px; align-items:start; margin-top:32px; }
.tg-page .tg-shot-stack { display:grid; gap:24px; }

/* Capabilities */
.tg-page .tg-feature-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:18px; }
.tg-page .tg-card { height:100%; padding:26px; border:1px solid var(--tg-border); border-radius:var(--tg-radius); background:#fff; box-shadow:0 5px 20px rgba(20,49,61,.025); }
.tg-page .tg-card-icon { display:flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:13px; background:var(--tg-mint); color:var(--tg-green-dark); }
.tg-page .tg-card-icon svg { width:23px; height:23px; }
.tg-page .tg-card h3 { margin:19px 0 9px; font-size:19px; line-height:1.3; letter-spacing:-.015em; }
.tg-page .tg-card p { margin:0; color:var(--tg-muted); font-size:14px; }
.tg-page .tg-checklist { display:grid; gap:9px; margin:19px 0 0; padding:0; list-style:none; }
.tg-page .tg-checklist li { position:relative; padding-left:22px; color:#405965; font-size:14px; }
.tg-page .tg-checklist li::before { content:"✓"; position:absolute; left:0; top:0; color:var(--tg-green-dark); font-weight:900; }

/* Developer-ready automation: copy beside the setup screenshots */
.tg-page .tg-split { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:62px; align-items:center; }
.tg-page .tg-copy p { color:var(--tg-muted); }
.tg-page .tg-copy h2 { max-width:620px; }
.tg-page .tg-copy h2 + p { margin-top:17px; }
.tg-page .tg-benefit-list { display:grid; gap:15px; margin-top:26px; }
.tg-page .tg-benefit { display:grid; grid-template-columns:30px 1fr; gap:13px; align-items:start; }
.tg-page .tg-benefit-check { display:flex; width:28px; height:28px; align-items:center; justify-content:center; border-radius:50%; background:var(--tg-mint); color:var(--tg-green-dark); font-weight:900; }
.tg-page .tg-benefit strong { display:block; margin:0 0 2px; font-size:15px; }
.tg-page .tg-benefit span { display:block; color:var(--tg-muted); font-size:14px; }

/* How it works */
.tg-page .tg-flow { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:12px; counter-reset:tg-step; }
.tg-page .tg-flow-step { position:relative; padding:22px 18px; border:1px solid var(--tg-border); border-radius:16px; background:#fff; counter-increment:tg-step; }
.tg-page .tg-flow-step::before { content:counter(tg-step, decimal-leading-zero); display:flex; width:34px; height:34px; align-items:center; justify-content:center; margin-bottom:17px; border-radius:10px; background:var(--tg-mint); color:var(--tg-green-dark); font-size:12px; font-weight:900; }
.tg-page .tg-flow-step h3 { margin:0 0 8px; font-size:16px; line-height:1.32; }
.tg-page .tg-flow-step p { margin:0; color:var(--tg-muted); font-size:13px; }

/* FAQ */
.tg-page .tg-faq { max-width:860px; margin:0 auto; }
.tg-page .tg-faq details { padding:20px 0; border-bottom:1px solid var(--tg-border); }
.tg-page .tg-faq summary { position:relative; padding-right:28px; list-style:none; font-weight:800; cursor:pointer; }
.tg-page .tg-faq summary::-webkit-details-marker { display:none; }
.tg-page .tg-faq summary::after { content:"+"; position:absolute; right:2px; top:-4px; color:var(--tg-green-dark); font-size:24px; font-weight:400; }
.tg-page .tg-faq details[open] summary::after { content:"−"; }
.tg-page .tg-faq details p { margin:12px 0 0; color:var(--tg-muted); }

/* Closing band: text left, the Book a Demo form right on a white card (its
   #book-a-demo id is where the buy button lands while card payments are off) */
.tg-page .tg-cta { padding:72px 0; color:#fff; background:linear-gradient(120deg, #10394a, #0c695f); }
.tg-page .tg-cta-grid { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 460px); gap:56px; align-items:center; }
.tg-page .tg-cta h2 { max-width:620px; margin:0; font-size:clamp(28px, 3.3vw, 40px); line-height:1.15; letter-spacing:-.035em; }
.tg-page .tg-cta-copy p { max-width:560px; margin:13px 0 0; color:#d1e4e6; }
.tg-page .tg-cta-points { display:grid; gap:9px; margin-top:24px; }
.tg-page .tg-cta-points li { position:relative; padding-left:24px; color:#e6f1f2; font-size:15px; }
.tg-page .tg-cta-points li::before { content:"✓"; position:absolute; left:0; top:0; color:#7fdcc7; font-weight:900; }
.tg-page .tg-form-card { padding:30px; border-radius:var(--tg-radius); background:#fff; color:var(--tg-ink); box-shadow:0 24px 60px rgba(4,24,32,.35); }
.tg-page .tg-form-card h3 { margin:0 0 18px; font-size:22px; line-height:1.25; letter-spacing:-.02em; }
.tg-page .tg-field { margin-bottom:14px; }
.tg-page .tg-field label { display:block; margin-bottom:5px; font-size:13px; font-weight:700; }
.tg-page .tg-field input, .tg-page .tg-field textarea { display:block; width:100%; height:auto; margin:0; padding:11px 13px; border:1px solid #cfdcdf; border-radius:10px; background:#fbfdfd; color:var(--tg-ink); font-family:inherit; font-size:15px; line-height:1.4; }
.tg-page .tg-field textarea { min-height:120px; resize:vertical; }
.tg-page .tg-field input:focus, .tg-page .tg-field textarea:focus { border-color:var(--tg-green); background:#fff; }
.tg-page .tg-form .tg-btn { width:100%; margin-top:6px; }
.tg-page #form-status { margin-top:14px; font-size:14px; }

@media (max-width:980px) {
    .tg-page .tg-hero-grid, .tg-page .tg-split, .tg-page .tg-cta-grid { grid-template-columns:1fr; }
    .tg-page .tg-hero-grid { gap:42px; }
    .tg-page .tg-chat { max-width:590px; width:100%; margin:0 auto; }
    .tg-page .tg-feature-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .tg-page .tg-flow { grid-template-columns:repeat(3, minmax(0, 1fr)); }
    .tg-page .tg-shot-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .tg-page .tg-shot-grid > :first-child { grid-column:1 / -1; }
    .tg-page .tg-cta-grid { gap:36px; }
}
@media (max-width:640px) {
    .tg-page .tg-container { width:min(var(--tg-width), calc(100% - 30px)); }
    .tg-page .tg-hero { padding:28px 0 52px; }
    .tg-page .tg-buy { margin-bottom:34px; }
    .tg-page .tg-section { padding:58px 0; }
    .tg-page .tg-feature-grid, .tg-page .tg-flow, .tg-page .tg-shot-grid { grid-template-columns:1fr; }
    .tg-page .tg-card { padding:22px; }
    .tg-page .tg-hero-actions { flex-direction:column; align-items:stretch; }
    .tg-page .tg-btn { width:100%; }
    .tg-page .tg-chat { padding:14px; }
    .tg-page .tg-channel-value { font-size:20px; }
    .tg-page .tg-cta { padding:56px 0; }
    .tg-page .tg-form-card { padding:22px; }
}
@media (prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto; }
    .tg-page .tg-btn, .tg-page .tg-shot a { transition:none; }
    .tg-page .tg-btn:hover, .tg-page .tg-shot a:hover { transform:none; }
}
