/* Pulse TMS — TMS Treatment (2026) page template.
   Built from "TMS Treatment Page.html" in the Pulse TMS Claude Design project.

   Theme-proofing: pulse-2025/style.css sets `* { padding-bottom:10px }`,
   `img { width:100% }`, `a:hover { opacity:.5 }`, element-level p/h sizes and
   `h1–h6 { font-weight: inherit !important }`. Every rule here is written as
   `.ptt .ptt-…` (two classes) so it outranks those without !important; heading
   weights are the one place !important is needed. The theme already uses the
   .ptms- prefix for the homepage, so this page uses .ptt-. */

/* ---------- Tokens (scoped, from the design system) ---------- */
.ptt {
  --ptt-yellow-500:#fee600; --ptt-yellow-400:#f2da08; --ptt-yellow-300:#fff190; --ptt-yellow-100:#fffbd6;
  --ptt-cream:#fffef1; --ptt-sand:#f9f6ed; --ptt-white:#fff;
  --ptt-grey-050:#f4f5f7; --ptt-grey-200:#e6e7ea; --ptt-grey-500:#747577;
  --ptt-slate-600:#484852; --ptt-slate-700:#47474f; --ptt-ink-800:#37373f; --ptt-ink-900:#1a1a1a;
  --ptt-text-display:var(--ptt-ink-900); --ptt-text-body:var(--ptt-grey-500); --ptt-text-strong:var(--ptt-slate-700);
  --ptt-text-eyebrow:#757575; --ptt-on-dark:#fff; --ptt-on-dark-muted:#c7c7cd;

  --ptt-font-display:"Tinos",Times,"Times New Roman",serif;
  --ptt-font-sans:"DM Sans","Jost","Century Gothic",system-ui,sans-serif;

  --ptt-hero:52px; --ptt-h2:34px; --ptt-h3:24px; --ptt-stat:42px;
  --ptt-body:15px; --ptt-small:13px; --ptt-caption:11px;

  --ptt-section-y:80px; --ptt-max:1180px; --ptt-pad-x:32px; --ptt-gap:24px; --ptt-card-pad:36px;
  --ptt-radius-sm:3px; --ptt-radius-lg:16px; --ptt-radius-xl:28px;
  --ptt-shadow-float:0 4px 14px rgba(26,26,26,.18);
  --ptt-ease:cubic-bezier(.4,0,.2,1);

  /* The theme's #wrapper pads 30px (15px at <=768px); bleed past it so
     section backgrounds reach the screen edges. */
  --ptt-bleed:30px;
  margin-left:calc(-1 * var(--ptt-bleed));
  margin-right:calc(-1 * var(--ptt-bleed));

  background:var(--ptt-white);
  font-family:var(--ptt-font-sans);
  font-size:var(--ptt-body);
  line-height:1.75;
  color:var(--ptt-text-body);
  -webkit-font-smoothing:antialiased;
}

/* ---------- Reset against the theme ---------- */
.ptt :where(*), .ptt :where(*)::before, .ptt :where(*)::after { box-sizing:border-box; padding-bottom:0; }
.ptt :where(h1,h2,h3,h4,p,ul,figure,blockquote) { margin:0; padding:0; font-size:inherit; line-height:inherit; color:inherit; font-family:inherit; }
.ptt :where(ul) { list-style:none; }
.ptt :where(a), .ptt :where(a):hover { color:var(--ptt-text-strong); opacity:1; transition:none; }
.ptt :where(b,strong) { font-weight:600; }

.ptt .ptt-wrap { max-width:calc(var(--ptt-max) + 2 * var(--ptt-pad-x)); margin:0 auto; padding:0 var(--ptt-pad-x); }
.ptt .ptt-section { padding:var(--ptt-section-y) 0; }
.ptt .ptt-bg-white { background:var(--ptt-white); }
.ptt .ptt-bg-warm { background:var(--ptt-sand); }
.ptt .ptt-bg-hero { background:var(--ptt-cream); }
.ptt .ptt-caption { font-size:var(--ptt-caption); line-height:1.5; color:var(--ptt-text-body); }
.ptt .ptt-center { text-align:center; }
.ptt .ptt-actions { display:flex; gap:14px; flex-wrap:wrap; }
.ptt .ptt-actions--center { justify-content:center; }

/* ---------- Button ---------- */
.ptt .ptt-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px; margin:0;
  font-family:var(--ptt-font-sans); font-weight:600; letter-spacing:.01em; line-height:1.2;
  border-radius:999px; border:1px solid transparent; cursor:pointer; text-decoration:none; white-space:nowrap;
  font-size:13px; padding:13px 26px; opacity:1;
  background:var(--ptt-yellow-500); color:var(--ptt-ink-900);
  transition:background-color .2s var(--ptt-ease), color .2s var(--ptt-ease), transform .12s var(--ptt-ease);
}
.ptt .ptt-btn:hover { background:var(--ptt-yellow-400); color:var(--ptt-ink-900); opacity:1; }
.ptt .ptt-btn:active { transform:scale(.98); }
.ptt .ptt-btn:focus-visible { outline:2px solid var(--ptt-slate-700); outline-offset:2px; }
.ptt .ptt-btn--sm { font-size:12px; padding:9px 18px; }
.ptt .ptt-btn--lg { font-size:15px; padding:16px 34px; }
.ptt .ptt-btn--block { display:flex; width:100%; }
.ptt .ptt-btn--outline { background:transparent; color:var(--ptt-ink-900); border-color:var(--ptt-ink-900); }
.ptt .ptt-btn--outline:hover { background:var(--ptt-ink-900); color:var(--ptt-white); }
.ptt .ptt-btn--ghost { background:transparent; color:var(--ptt-text-strong); }
.ptt .ptt-btn--ghost:hover { background:transparent; color:var(--ptt-ink-900); text-decoration:underline; }
.ptt .ptt-btn--on-dark-ghost { background:transparent; color:var(--ptt-on-dark-muted); }
.ptt .ptt-btn--on-dark-ghost:hover { background:transparent; color:var(--ptt-white); text-decoration:underline; }

/* ---------- Chip, eyebrow, section heading ---------- */
.ptt .ptt-chip {
  display:inline-flex; align-items:center; gap:6px; font-size:10px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; line-height:1.4; padding:7px 14px; border-radius:999px;
  background:var(--ptt-yellow-400); color:var(--ptt-slate-700);
}
.ptt .ptt-eyebrow {
  font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ptt-text-eyebrow); margin-bottom:14px; line-height:1.5;
}
.ptt .ptt-heading { text-align:center; max-width:720px; margin:0 auto; }
.ptt .ptt-heading--left { text-align:left; max-width:none; margin:0; }
.ptt .ptt-h2 {
  font-family:var(--ptt-font-display); font-weight:400 !important; font-size:var(--ptt-h2);
  line-height:1.24; letter-spacing:-.01em; color:var(--ptt-text-display);
}
.ptt .ptt-sub { font-size:var(--ptt-body); line-height:1.75; margin:14px auto 0; max-width:560px; }
.ptt .ptt-heading--left .ptt-sub { margin-left:0; }

/* ---------- Checklist, steps, FAQ ---------- */
.ptt .ptt-check { display:flex; gap:10px; align-items:flex-start; margin:0; font-size:var(--ptt-small); line-height:1.7; color:var(--ptt-text-strong); }
.ptt .ptt-check::before { content:"✓"; color:var(--ptt-ink-900); font-weight:700; line-height:1.5; }

.ptt .ptt-step { display:flex; gap:14px; align-items:flex-start; }
.ptt .ptt-step__n {
  flex:0 0 auto; width:26px; height:26px; border-radius:var(--ptt-radius-sm); background:var(--ptt-ink-900);
  color:var(--ptt-white); font-size:11px; font-weight:700; line-height:1; display:flex; align-items:center; justify-content:center;
}
.ptt .ptt-step__t { font-size:var(--ptt-body); font-weight:600; color:var(--ptt-text-display); line-height:1.5; }
.ptt .ptt-step__b { font-size:var(--ptt-small); line-height:1.75; color:var(--ptt-text-body); margin-top:4px; }

.ptt .ptt-faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--ptt-grey-200); border:1px solid var(--ptt-grey-200); }
.ptt .ptt-faq { background:var(--ptt-white); padding:22px 26px; display:flex; flex-direction:column; gap:8px; }
.ptt .ptt-faq h3 {
  font-family:var(--ptt-font-sans); font-size:var(--ptt-body); font-weight:600 !important; line-height:1.5;
  color:var(--ptt-text-display); padding-left:12px; border-left:3px solid var(--ptt-yellow-500);
}
.ptt .ptt-faq p { font-size:var(--ptt-small); line-height:1.75; color:var(--ptt-text-body); }

/* ---------- Video (Vimeo embeds) ---------- */
.ptt .ptt-video { position:relative; aspect-ratio:16 / 9; border-radius:var(--ptt-radius-sm); overflow:hidden; background:#111; }
.ptt .ptt-video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; padding:0; }

/* ---------- Announcement ---------- */
.ptt .ptt-announce { background:var(--ptt-ink-900); }
.ptt .ptt-announce__in { padding-top:12px; padding-bottom:12px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.ptt .ptt-announce__msg { font-size:var(--ptt-caption); line-height:1.5; color:var(--ptt-on-dark); }

/* ---------- Hero ---------- */
.ptt .ptt-hero { padding:54px 0 60px; }
.ptt .ptt-hero__grid { display:grid; grid-template-columns:1.05fr 1fr; gap:56px; align-items:start; }
.ptt .ptt-hero h1 {
  font-family:var(--ptt-font-display); font-weight:400 !important; font-size:var(--ptt-hero);
  line-height:1.18; letter-spacing:-.01em; color:var(--ptt-text-display); margin-top:22px;
}
.ptt .ptt-hero__lead { font-size:var(--ptt-body); line-height:1.75; color:var(--ptt-text-body); max-width:480px; margin:22px 0 18px; }
.ptt .ptt-hero .ptt-actions { margin-bottom:16px; }
.ptt .ptt-hero__note { margin-bottom:20px; }
.ptt .ptt-trust { display:flex; gap:6px 18px; flex-wrap:wrap; font-size:var(--ptt-caption); line-height:1.5; color:var(--ptt-text-body); }
.ptt .ptt-trust--dark { color:var(--ptt-on-dark-muted); }
.ptt .ptt-stars { color:var(--ptt-yellow-400); letter-spacing:1px; }
.ptt .ptt-trust--dark .ptt-stars { color:var(--ptt-yellow-500); }
.ptt .ptt-quote { background:var(--ptt-sand); padding:18px 20px; margin-top:14px; display:flex; gap:14px; align-items:flex-start; }
.ptt .ptt-quote::before { content:""; width:18px; height:18px; border-radius:50%; background:var(--ptt-yellow-500); flex:0 0 auto; margin-top:2px; }
.ptt .ptt-quote blockquote { font-size:var(--ptt-small); line-height:1.6; font-style:italic; color:var(--ptt-text-strong); border:0; }
.ptt .ptt-quote figcaption { margin-top:6px; }
.ptt .ptt-hero__checks { margin-top:16px; display:grid; gap:10px; }

/* ---------- Stat band ---------- */
.ptt .ptt-stats { background:var(--ptt-yellow-500); }
.ptt .ptt-stats__grid { padding-top:44px; padding-bottom:44px; display:grid; grid-template-columns:repeat(4,1fr); gap:var(--ptt-gap); }
.ptt .ptt-stat { text-align:center; color:var(--ptt-slate-700); }
.ptt .ptt-stat__v { font-family:var(--ptt-font-display); font-size:var(--ptt-stat); line-height:1.1; color:var(--ptt-slate-700); }
.ptt .ptt-stat__l { font-size:var(--ptt-caption); font-weight:600; letter-spacing:.08em; text-transform:uppercase; line-height:1.4; margin-top:10px; color:var(--ptt-slate-700); }
.ptt .ptt-stats__foot { background:var(--ptt-yellow-300); text-align:center; font-size:10px; line-height:1.5; color:var(--ptt-text-strong); padding:10px var(--ptt-pad-x); }

/* ---------- Session ---------- */
.ptt .ptt-split { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.ptt .ptt-steps { display:grid; gap:18px; margin:28px 0 30px; }

/* ---------- Eligibility ---------- */
.ptt .ptt-elig { display:grid; grid-template-columns:1.4fr 1fr; gap:var(--ptt-gap); margin-top:40px; align-items:start; }
.ptt .ptt-elig__qs { background:var(--ptt-white); padding:8px 0; }
.ptt .ptt-elig__q { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 26px; border-bottom:1px solid var(--ptt-grey-200); }
.ptt .ptt-elig__q:last-child { border-bottom:0; }
.ptt .ptt-elig__text { font-size:var(--ptt-body); line-height:1.55; color:var(--ptt-text-display); padding-left:12px; border-left:3px solid var(--ptt-yellow-500); }
.ptt .ptt-elig__btns { display:flex; gap:8px; flex:0 0 auto; }
.ptt .ptt-elig__btns .ptt-btn { min-width:58px; }
.ptt .ptt-elig__btns .ptt-btn[aria-pressed="true"][data-val="yes"] { background:var(--ptt-yellow-500); color:var(--ptt-ink-900); border-color:transparent; }
.ptt .ptt-elig__btns .ptt-btn[aria-pressed="true"][data-val="no"] { background:var(--ptt-ink-800); color:var(--ptt-white); border-color:transparent; }
.ptt .ptt-elig__result { background:var(--ptt-ink-800); padding:var(--ptt-card-pad); min-height:250px; display:flex; flex-direction:column; gap:14px; }
.ptt .ptt-elig__result[hidden] { display:none; }
.ptt .ptt-elig__kicker { font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ptt-yellow-500); line-height:1.4; }
.ptt .ptt-elig__result h3 { font-family:var(--ptt-font-display); font-weight:400 !important; font-size:var(--ptt-h3); line-height:1.3; color:var(--ptt-on-dark); }
.ptt .ptt-elig__result p { font-size:var(--ptt-body); line-height:1.75; color:var(--ptt-on-dark-muted); }
.ptt .ptt-elig__result .ptt-elig__kicker { font-size:10px; line-height:1.4; color:var(--ptt-yellow-500); }
.ptt .ptt-elig__foot { margin-top:auto; }
.ptt .ptt-elig__ctas { display:grid; gap:10px; margin-top:auto; }

/* ---------- Objections ---------- */
.ptt .ptt-objections { padding-bottom:56px; }
.ptt .ptt-objections .ptt-faq-grid { margin:40px 0 32px; }
.ptt .ptt-objections .ptt-caption { margin-bottom:28px; }

/* ---------- Clinicians: restyles [pulse_team] cards as small avatars ---------- */
.ptt .ptt-team { margin-top:44px; }
.ptt .ptt-team .pt-grid { display:flex; flex-wrap:wrap; justify-content:center; gap:32px 64px; max-width:none; padding:0; margin:0; }
.ptt .ptt-team .pt-card, .ptt .ptt-team .pt-card:hover { background:transparent !important; border-radius:0; box-shadow:none; transform:none; overflow:visible; width:200px; }
.ptt .ptt-team .pt-card-inner { padding:0; color:var(--ptt-text-display); opacity:1; }
.ptt .ptt-team .pt-photo-wrap { width:68px; height:68px; margin:0 0 12px; background:var(--ptt-grey-200); padding:0; }
.ptt .ptt-team .pt-photo { width:100%; height:100%; padding:0; }
.ptt .ptt-team .pt-initials { font-size:20px; color:var(--ptt-ink-900); background:var(--ptt-grey-200); }
.ptt .ptt-team .pt-name { font-family:var(--ptt-font-sans); font-size:var(--ptt-small); font-weight:600 !important; line-height:1.4; color:var(--ptt-text-display); margin:0; }
.ptt .ptt-team .pt-role { font-size:var(--ptt-caption); font-style:normal; line-height:1.5; color:var(--ptt-text-body); opacity:1; margin:4px 0 0; }
.ptt .ptt-team .pt-btn { display:none; }
.ptt .ptt-team .pt-card-inner:hover .pt-name { text-decoration:underline; }

/* ---------- Cost ---------- */
.ptt .ptt-cost__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--ptt-gap); margin:44px 0 34px; }

/* ---------- Insurance: wraps [pulse_insurance] (Flickity carousel) ---------- */
.ptt .ptt-ins { padding:56px 0 48px; overflow:hidden; }
.ptt .ptt-ins__sub { font-size:var(--ptt-body); line-height:1.75; color:var(--ptt-text-body); margin:12px 0 22px; }
.ptt .ptt-ins__logos { margin-top:40px; }
.ptt .ptt-ins__logos .pulse-insurance-carousel img { width:auto; max-width:none; height:40px; margin:0 28px; padding:0; }

/* ---------- Closing CTA panel ---------- */
.ptt .ptt-cta-wrap { padding-top:var(--ptt-section-y); padding-bottom:var(--ptt-section-y); }
.ptt .ptt-cta { background:var(--ptt-slate-600); border-radius:var(--ptt-radius-xl); padding:44px 48px; }
.ptt .ptt-cta__top { display:flex; align-items:flex-start; justify-content:space-between; gap:32px; }
.ptt .ptt-cta h2 { font-family:var(--ptt-font-sans); font-weight:700 !important; font-size:26px; line-height:1.25; color:var(--ptt-on-dark); max-width:380px; }
.ptt .ptt-cta__benefits { margin-top:40px; display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.ptt .ptt-cta__benefits h3 { font-family:var(--ptt-font-sans); font-weight:700 !important; font-size:15px; line-height:1.3; color:var(--ptt-yellow-500); }
.ptt .ptt-cta__benefits p { font-size:var(--ptt-small); line-height:1.75; color:var(--ptt-on-dark-muted); margin-top:12px; }

/* ---------- Responsive (the design is desktop-only; these fill the gap) ---------- */
@media (max-width:768px) {
  .ptt { --ptt-bleed:15px; }
}
@media (max-width:960px) {
  .ptt { --ptt-section-y:64px; --ptt-hero:42px; }
  .ptt .ptt-hero__grid, .ptt .ptt-split, .ptt .ptt-elig { grid-template-columns:1fr; gap:40px; }
  .ptt .ptt-split > .ptt-video { order:-1; }
  .ptt .ptt-stats__grid { grid-template-columns:repeat(2,1fr); row-gap:32px; }
  .ptt .ptt-cost__grid { grid-template-columns:1fr; max-width:520px; margin-left:auto; margin-right:auto; }
  .ptt .ptt-cta__benefits { grid-template-columns:1fr; gap:24px; }
}
@media (max-width:680px) {
  .ptt { --ptt-pad-x:16px; --ptt-section-y:52px; --ptt-hero:34px; --ptt-h2:28px; --ptt-stat:34px; --ptt-card-pad:26px; }
  .ptt .ptt-announce__in { flex-direction:column; align-items:flex-start; gap:10px; }
  .ptt .ptt-hero { padding:36px 0 44px; }
  .ptt .ptt-hero .ptt-actions .ptt-btn { flex:1 1 100%; }
  .ptt .ptt-trust { flex-direction:column; }
  .ptt .ptt-trust__sep { display:none; }
  .ptt .ptt-faq-grid { grid-template-columns:1fr; }
  .ptt .ptt-elig__q { flex-direction:column; align-items:flex-start; gap:12px; padding:18px 20px; }
  .ptt .ptt-elig__btns { padding-left:15px; }
  .ptt .ptt-team .pt-grid { gap:28px 24px; }
  .ptt .ptt-team .pt-card, .ptt .ptt-team .pt-card:hover { width:calc(50% - 12px); }
  .ptt .ptt-cta { padding:32px 24px; border-radius:var(--ptt-radius-lg); }
  .ptt .ptt-cta__top { flex-direction:column; }
  .ptt .ptt-actions--center .ptt-btn { flex:1 1 100%; }
  .ptt .ptt-ins__logos .pulse-insurance-carousel img { height:32px; margin:0 16px; }
}
