/* Therapy Talks 2027 page (templates/therapy-talks.php). Self-contained, tt-* classes.
   Design language: the members-area V2 / SEND Support pages (navy, blue, green CTA). */
.tt-page { --tt-navy:#0b2f52; --tt-blue:#1578cc; --tt-blue-soft:#e3eff9; --tt-green:#0d7d3f; --tt-green-h:#0a6a35;
  --tt-ink:#14243a; --tt-muted:#5b6876; --tt-border:#dbe7f2; --tt-ground:#f4f8fc;
  background:var(--tt-ground); color:var(--tt-ink); font-size:16px; line-height:1.65; font-weight:300; }
.tt-page p { margin:0 0 14px; font-size:16px; line-height:1.65; } /* the theme sets p to 19px site-wide */
.tt-wrap { max-width:1200px; width:92%; margin:0 auto; }
.tt-narrow { max-width:820px; }
.tt-center { text-align:center; }
.tt-i { flex:none; vertical-align:middle; }

/* Buttons: plain links, so Elementor's kit `button` rule never applies */
.tt-page a.tt-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:13px 30px; border-radius:4px; background:var(--tt-green);
  color:#fff; font:500 12px/1.3 'Heebo', sans-serif; letter-spacing:.125em; text-transform:uppercase; text-decoration:none; transition:background .2s ease; } /* = SEND .ss-btn */
.tt-page a.tt-btn:hover, .tt-page a.tt-btn:focus-visible { background:var(--tt-green-h); color:#fff; }
.tt-page a.tt-btn--ghost { background:rgba(255,255,255,.12); border:1.5px solid rgba(255,255,255,.75); }
.tt-page a.tt-btn--ghost:hover, .tt-page a.tt-btn--ghost:focus-visible { background:rgba(255,255,255,.24); }

/* Hero */
.tt-hero { position:relative; overflow:hidden; min-height:640px; display:flex; align-items:center; background:var(--tt-navy); color:#fff; }
.tt-hero__video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tt-hero__shade { position:absolute; inset:0; background:linear-gradient(100deg, rgba(11,47,82,.92) 0%, rgba(11,47,82,.78) 45%, rgba(11,47,82,.35) 100%); }
.tt-hero__inner { position:relative; padding:96px 0; }
.tt-hero__meta { display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:0 0 22px; padding:0; }
.tt-hero__meta li { display:inline-flex; align-items:center; gap:8px; padding:6px 13px; border-radius:999px; background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.3); font-size:14px; font-weight:500; }
.tt-page .tt-hero__h1 { margin:0 0 14px; font:700 clamp(34px, 4.2vw, 48px)/1.08 'Heebo', sans-serif; color:#fff; }
.tt-page .tt-hero__sub { max-width:600px; margin:0 0 10px; font-size:19px; line-height:1.5; font-weight:500; color:#fff; }
.tt-page .tt-hero__lead { max-width:600px; margin:0 0 28px; font-size:16px; color:rgba(255,255,255,.88); }
.tt-hero__cta { display:flex; flex-wrap:wrap; gap:12px; }

/* Video dialog */
.tt-dialog { width:min(1100px, 94vw); max-width:none; padding:0; border:0; border-radius:14px; background:#000; overflow:hidden; }
.tt-dialog::backdrop { background:rgba(4,17,31,.82); }
.tt-dialog__bar { position:absolute; top:10px; right:10px; z-index:2; margin:0; }
.tt-dialog .tt-dialog__close { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; padding:0; border:0; border-radius:50%;
  background:rgba(255,255,255,.9); color:var(--tt-navy); cursor:pointer; min-width:0; letter-spacing:0; text-transform:none; }
.tt-dialog .tt-dialog__close:hover { background:#fff; }
.tt-dialog__video { display:block; width:100%; height:auto; max-height:86vh; background:#000; }

/* ===== Sections (restyle 28 Sep 2026: homepage / SEND Support design language, no eyebrows) ===== */
.tt-page .tt-h2 { margin:0 0 14px; font:700 clamp(26px, 2.6vw, 30px)/1.2 'Heebo', sans-serif; color:var(--tt-navy); }
.tt-head { max-width:720px; margin:0 auto 34px; text-align:center; }
.tt-head p { color:var(--tt-muted); margin-bottom:6px; }

/* Key facts strip (homepage stats band) */
.tt-facts { background:#fff; border-bottom:1px solid var(--tt-border); }
.tt-facts__grid { display:grid; grid-template-columns:repeat(4, 1fr); }
.tt-fact { padding:30px 22px; text-align:center; border-left:1px solid var(--tt-border); }
.tt-fact:first-child { border-left:0; }
.tt-fact__i { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; margin-bottom:10px; border-radius:50%;
  background:var(--tt-blue-soft); color:var(--tt-blue); }
.tt-page .tt-fact__v { margin:0 0 4px; font:700 20px/1.25 'Heebo', sans-serif; color:var(--tt-navy); }
.tt-page .tt-fact__l { margin:0; font-size:14px; line-height:1.45; color:var(--tt-muted); }

/* About: two columns */
.tt-about { padding:84px 0 64px; }
.tt-about__grid { display:grid; grid-template-columns:5fr 7fr; gap:56px; align-items:start; }
.tt-page .tt-intro { margin:0 0 10px; font:700 21px/1.4 'Heebo', sans-serif; color:var(--tt-navy); }
.tt-page .tt-intro--soft { color:var(--tt-blue); }
.tt-about__head { position:sticky; top:24px; padding-left:22px; border-left:4px solid var(--tt-green); }

/* Quote band (homepage "Helping people find support..." band) */
.tt-quote { background:var(--tt-blue); color:#fff; }
.tt-quote__inner { display:flex; gap:22px; align-items:center; padding:46px 0; }
.tt-quote__mark { flex:none; color:rgba(255,255,255,.55); }
.tt-page .tt-quote__text { margin:0; font:700 clamp(21px, 2.2vw, 26px)/1.35 'Heebo', sans-serif; color:#fff; }

/* Keynote feature (SEND framed image) */
.tt-keynote { padding:96px 0 84px; background:#fff; }
.tt-keynote__grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.tt-keynote__media { position:relative; min-width:0; }
/* SEND's accent was designed for a navy hero; on this white section it's toned down (tint + soft shadow) */
.tt-keynote__accent { position:absolute; inset:0; transform:translate(16px, 16px); border-radius:34px 34px 8px 34px;
  background:linear-gradient(135deg, rgba(21,120,204,.16), rgba(13,125,63,.13)); z-index:0; }
.tt-keynote__dots { position:absolute; top:-22px; left:-24px; width:96px; height:96px; z-index:0; opacity:.6;
  background-image:radial-gradient(rgba(21,120,204,.35) 2px, transparent 2px); background-size:14px 14px; }
.tt-keynote__img { position:relative; z-index:1; display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; object-position:55% 30%;
  border:4px solid #fff; border-radius:28px 28px 4px 28px; box-shadow:0 10px 28px rgba(11,47,82,.12); }
.tt-keynote__initials { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; aspect-ratio:3/2;
  border:4px solid #fff; border-radius:28px 28px 4px 28px; background:var(--tt-blue-soft); font:800 84px 'Heebo', sans-serif; color:var(--tt-blue); }
.tt-page .tt-label { display:inline-flex; align-items:center; gap:7px; margin:0 0 12px; padding:5px 12px; border-radius:999px;
  background:var(--tt-blue-soft); color:var(--tt-navy); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.tt-page .tt-keynote__name { margin:0 0 12px; font:700 clamp(26px, 2.6vw, 30px)/1.2 'Heebo', sans-serif; color:var(--tt-navy); }
.tt-keynote__talk { margin:0 0 20px; padding:4px 0 4px 20px; border-left:4px solid var(--tt-blue); }
.tt-page .tt-keynote__title { margin:0 0 4px; font:700 19px/1.35 'Heebo', sans-serif; color:var(--tt-blue); }
.tt-page .tt-keynote__subtitle { margin:0; color:var(--tt-muted); }

/* What the day will explore: tick cards (homepage "Why people choose ASLTIP") */
.tt-explore { padding:84px 0 72px; }
.tt-cards { display:grid; grid-template-columns:repeat(6, 1fr); gap:18px; }
.tt-card { grid-column:span 2; display:flex; flex-direction:column; gap:12px; padding:24px 22px; background:#fff; border:1px solid var(--tt-border);
  border-radius:16px; box-shadow:0 4px 14px rgba(4,26,46,.05); }
.tt-card:nth-child(4) { grid-column:2 / span 2; }
.tt-card__tick { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:#e0f7ea; color:var(--tt-green); }
.tt-page .tt-card p { margin:0; font-size:15px; line-height:1.55; color:var(--tt-ink); }
.tt-page .tt-card p::first-letter { text-transform:uppercase; }

/* Who is it for: membership-band panel */
.tt-who { padding:0 0 84px; }
.tt-who__panel { display:grid; grid-template-columns:3fr 2fr; gap:40px; align-items:center; padding:48px 52px; border-radius:22px; color:#fff;
  background:linear-gradient(135deg, #0f5595 0%, #1266a8 45%, #1578cc 100%); } /* lighter than the navy hero, at Dylan's request; #1578cc still passes AA with white text */
.tt-page .tt-who__panel .tt-h2 { color:#fff; }
.tt-page .tt-who__panel p { color:rgba(255,255,255,.9); }
.tt-page .tt-who__note { display:flex; gap:14px; align-items:center; margin:0; padding:22px 24px; border-radius:16px; background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.3); font:700 16.5px/1.45 'Heebo', sans-serif; color:#fff; }

/* Tickets: search-card style */
.tt-tickets { padding:84px 0 72px; background:#fff; scroll-margin-top:20px; }
.tt-tickets__grid { display:grid; grid-template-columns:1fr 380px; gap:28px; align-items:start; }
.tt-book { overflow:hidden; background:#fff; border:1px solid var(--tt-border); border-radius:18px; box-shadow:0 14px 34px rgba(4,26,46,.10); }
.tt-book__bar { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; padding:15px 22px; background:var(--tt-navy); color:#fff; font:700 15px 'Heebo', sans-serif; }
.tt-book__bar span { font-weight:500; color:rgba(255,255,255,.75); }
.tt-soon { padding:56px 28px; text-align:center; background:var(--tt-ground); }
.tt-page .tt-soon__h { margin:0; font:700 20px 'Heebo', sans-serif; color:var(--tt-navy); }
.tt-includes { padding:26px; background:var(--tt-ground); border:1px solid var(--tt-border); border-radius:18px; }
.tt-page .tt-includes__h { margin:0 0 14px; font:700 18px 'Heebo', sans-serif; color:var(--tt-navy); }
.tt-checks { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.tt-checks li { display:flex; gap:12px; align-items:flex-start; padding:10px 14px; background:#fff; border:1px solid var(--tt-border); border-radius:12px; }
.tt-checks li .tt-i { margin-top:4px; color:var(--tt-green); }
.tt-page .tt-includes__agm { margin:16px 0 0; font-size:15px; color:var(--tt-muted); }

/* FAQ: SEND Support's chat bubbles */
.tt-faq { padding:84px 0; }
.tt-chat { display:flex; flex-direction:column; gap:14px; max-width:760px; margin:0 auto; }
.tt-chat__q, .tt-chat__a { width:fit-content; max-width:82%; padding:14px 20px; font-size:15.5px; line-height:1.55; }
.tt-chat__q { background:#eef2f6; color:#00070e; font:600 15.5px 'Heebo', sans-serif; border-radius:18px 18px 18px 4px; cursor:pointer; list-style:none; transition:background .2s ease; }
.tt-chat__q::-webkit-details-marker { display:none; }
.tt-chat__q::after { content:"+"; margin-left:10px; color:var(--tt-blue); font-weight:700; }
.tt-chat__item[open] .tt-chat__q::after { content:"\2212"; }
.tt-chat__q:hover { background:var(--tt-blue-soft); }
.tt-chat__a { background:var(--tt-blue); color:#fff; border-radius:18px 18px 4px 18px; margin:14px 0 6px auto; }
.tt-chat__item[open] .tt-chat__a { animation:tt-chat-in .25s ease; }
.tt-page .tt-chat__a p { margin:0; font-size:15.5px; line-height:1.55; color:#fff; }
@keyframes tt-chat-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce) { .tt-chat__item[open] .tt-chat__a { animation:none; } }

/* Closing photo band (SEND "Ready to find a therapist?") */
.tt-final { padding:88px 0 96px; color:#fff;
  background:linear-gradient(180deg, rgba(6,32,56,.82) 0%, rgba(6,32,56,.66) 100%), url('/media/ASLTIP_Highlight_Video-band.jpg') center 35% / cover no-repeat; }
.tt-page .tt-final__h2 { margin:0 0 8px; font:700 clamp(26px, 2.6vw, 30px) 'Heebo', sans-serif; color:#fff; }
.tt-page .tt-final__sub { margin:0 auto; font-size:17px; color:#dbe9f6; }
.tt-final__cta { margin-top:26px; }

/* Password gate (the theme sets label{font-size:19px} site-wide, so scope it) */
.tt-gate { padding:90px 0; }
.tt-gate__box { max-width:560px; padding:36px; background:#fff; border:1px solid var(--tt-border); border-radius:16px; }
.tt-page .tt-gate__h1 { margin:0 0 12px; font-size:30px; color:var(--tt-navy); }
.tt-gate label { font-size:16px; }
.tt-gate input[type="password"] { width:100%; max-width:320px; padding:10px 12px; border:1px solid var(--tt-border); border-radius:8px; }

/* Hero pause control (WCAG 2.2.2); two classes so Elementor's kit `button` rule loses */
.tt-hero .tt-hero__pause { position:absolute; right:20px; top:20px; /* top: the site's fixed reCAPTCHA badge covers the bottom right */ z-index:2; display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; min-width:0; padding:0; border:1.5px solid rgba(255,255,255,.7); border-radius:50%; background:rgba(11,47,82,.55);
  color:#fff; cursor:pointer; letter-spacing:0; text-transform:none; }
.tt-hero .tt-hero__pause:hover, .tt-hero .tt-hero__pause:focus-visible { background:rgba(11,47,82,.85); }
.tt-hero .tt-hero__pause[hidden] { display:none; }
.tt-hero__pause-i--play, .tt-hero__pause.is-paused .tt-hero__pause-i--pause { display:none; }
.tt-hero__pause.is-paused .tt-hero__pause-i--play { display:inline-flex; }

/* Small screens */
@media (max-width: 960px) {
  .tt-facts__grid { grid-template-columns:repeat(2, 1fr); }
  .tt-fact:nth-child(3) { border-left:0; }
  .tt-fact:nth-child(n+3) { border-top:1px solid var(--tt-border); }
  .tt-about__grid, .tt-keynote__grid, .tt-who__panel, .tt-tickets__grid { grid-template-columns:1fr; gap:32px; }
  .tt-about__head { position:static; }
  .tt-keynote__media { max-width:560px; }
  .tt-cards { grid-template-columns:repeat(2, 1fr); }
  .tt-card, .tt-card:nth-child(4) { grid-column:auto; }
  .tt-who__panel { padding:36px 28px; }
}
@media (max-width: 699px) {
  .tt-hero { min-height:0; background:var(--tt-navy) center/cover no-repeat; }
  .tt-hero__inner { padding:64px 0; }
  .tt-hero__shade { background:rgba(11,47,82,.82); }
  .tt-cards { grid-template-columns:1fr; }
  .tt-quote__inner { flex-direction:column; align-items:flex-start; gap:10px; padding:36px 0; }
  .tt-keynote__accent { transform:translate(12px, 12px); }
  .tt-chat__q, .tt-chat__a { max-width:92%; }
  .tt-about, .tt-keynote, .tt-explore, .tt-tickets, .tt-faq { padding-top:60px; padding-bottom:56px; }
  .tt-fact { padding:24px 12px; }
  .tt-page .tt-fact__v { font-size:17px; }
  .tt-page .tt-intro { font-size:19px; }
}
.tt-page .tt-gate input[type="submit"] { margin:0 0 0 6px; vertical-align:bottom; padding:0 26px; height:51px; line-height:51px; border:0; border-radius:10px; background:var(--tt-green); color:#fff;
  font-weight:700; font-size:16px; cursor:pointer; min-width:0; letter-spacing:0; text-transform:none; }
.tt-page .tt-gate input[type="submit"]:hover, .tt-page .tt-gate input[type="submit"]:focus-visible { background:var(--tt-green-h); }
@media (max-width: 699px) { .tt-page .tt-gate input[type="submit"] { margin:10px 0 0; } }
/* Tablets: the text column reaches the light end of the gradient, so use a flat tint (keeps AA over bright frames) */
@media (max-width: 1024px) { .tt-hero__shade { background:rgba(11,47,82,.82); } }
