/* ============================================================================
   GOTOTHERAPY — single therapist profile
   Scoped to .gtt so it cannot leak into Elementor or the theme, and so the
   theme cannot easily leak into it. Tokens are the Brand Guidelines v1.0 set,
   re-declared locally rather than assumed, because this block has to survive
   being pasted into a site whose :root you do not control.
   ========================================================================== */

.gtt{
  --navy:#0D2C42; --slate:#14405C; --sky:#7FB2D6; --sky-soft:#CFE3F2;
  --wash:#E7F1F9; --paper:#F1F6FB; --paper-deep:#E1ECF5; --surface:#FCFDFF;
  --clay:#C77B4E; --clay-soft:#F6E5D8;
  --ink:#10202E; --ink-soft:#42586C; --ink-mute:#5C6E7F;
  --on-navy:#EEF5FA; --on-navy-soft:#B9CEDF; --on-navy-mute:#A6BED2;
  --line:rgba(16,32,46,.13); --line-soft:rgba(16,32,46,.075);
  --line-navy:rgba(201,218,231,.22);
  --r-input:12px; --r-field:18px; --r-card:26px; --r-panel:36px; --r-pill:999px;
  --shadow-s:0 1px 2px rgba(16,32,46,.04), 0 4px 12px rgba(16,32,46,.06);
  --shadow-m:0 2px 4px rgba(16,32,46,.04), 0 12px 28px rgba(16,32,46,.09);
  --shadow-l:0 4px 8px rgba(16,32,46,.05), 0 24px 60px rgba(16,32,46,.14);
  --display:"Instrument Serif",Georgia,"Times New Roman",serif;
  --ui:"Schibsted Grotesk",-apple-system,"Segoe UI","Helvetica Neue",Helvetica,sans-serif;
  --gut:clamp(1.15rem,4vw,2.5rem); --tap:44px;
  --ease:cubic-bezier(.22,.61,.36,1); --t:350ms; --t-rev:800ms;

  font-family:var(--ui);
  font-size:clamp(1rem,.97rem + .15vw,1.0625rem);
  line-height:1.65; letter-spacing:-.005em; color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
.gtt *,.gtt *::before,.gtt *::after{box-sizing:border-box}
/* Headings are neutralised here and sized by their component class further
   down. Elementor's kit stylesheet targets headings as `.elementor-kit-N h2`,
   which out-specifies a bare class — so every component rule in this file is
   scoped one level deeper at build time, and this reset matches the kit's
   weight while coming later in the document. */
.gtt h1,.gtt h2,.gtt h3,.gtt h4,.gtt h5,.gtt h6{margin:0;padding:0;font-weight:400;
  font-family:var(--ui);font-size:inherit;line-height:1.08;letter-spacing:-.02em;
  text-transform:none;color:var(--ink)}
.gtt p{margin:0;padding:0}
.gtt ul,.gtt ol,.gtt dl{margin:0;padding:0;list-style:none}
.gtt dd{margin:0}
.gtt img{max-width:100%;height:auto;display:block}
.gtt a{color:inherit;text-decoration:none}
.gtt button{font:inherit;color:inherit}
.gtt :focus-visible{outline:2.5px solid var(--clay);outline-offset:3px;border-radius:6px}
.gtt .gtt-serif{font-family:var(--display)}
.gtt .gtt-ital{font-style:italic}
.gtt .gtt-vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* --------------------------------------------------------------- shell --- */
.gtt .gtt-wrap{width:100%;max-width:1180px;margin-inline:auto;padding-inline:var(--gut)}

/* ==========================================================================
   HERO — the dark anchor
   Reversed out of navy so the page opens with contrast instead of another
   pale panel. Two soft radials drift behind it; that is the only decorative
   motion the brand allows.
   ========================================================================== */
.gtt .gtt-hero{position:relative;overflow:hidden;border-radius:var(--r-panel);
  background:linear-gradient(155deg,#0D2C42 0%,#123B57 52%,#14405C 100%);
  color:var(--on-navy);isolation:isolate;margin-bottom:clamp(1.25rem,3vw,2rem)}
.gtt .gtt-hero::before,.gtt .gtt-hero::after{content:"";position:absolute;z-index:0;
  border-radius:50%;pointer-events:none;filter:blur(0px)}
.gtt .gtt-hero::before{width:44rem;height:44rem;right:-14rem;top:-20rem;
  background:radial-gradient(circle,rgba(127,178,214,.30),rgba(127,178,214,0) 62%);
  animation:gtt-drift 28s var(--ease) infinite alternate}
.gtt .gtt-hero::after{width:32rem;height:32rem;left:-12rem;bottom:-16rem;
  background:radial-gradient(circle,rgba(199,123,78,.16),rgba(199,123,78,0) 64%);
  animation:gtt-drift2 32s var(--ease) infinite alternate}
@keyframes gtt-drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-3rem,2.5rem,0)}}
@keyframes gtt-drift2{from{transform:translate3d(0,0,0)}to{transform:translate3d(2.5rem,-2rem,0)}}

.gtt .gtt-hero__in{position:relative;z-index:1;display:grid;gap:clamp(1.5rem,4vw,2.75rem);
  padding:clamp(1.6rem,4.5vw,3.25rem) clamp(1.35rem,4vw,3.25rem) clamp(1.4rem,3vw,2.25rem)}
@media (min-width:760px){.gtt .gtt-hero__in{grid-template-columns:auto minmax(0,1fr);align-items:center}}

/* A third beat on wide screens, so the hero is not two thirds of a headline
   and a third of nothing. Carries the therapist's own sentence where one has
   been written, and the verification summary where one has not. */
.gtt .gtt-hero__aside{display:none}
@media (min-width:1120px){
  .gtt .gtt-hero__in{grid-template-columns:auto minmax(0,1.3fr) minmax(0,.82fr)}
  .gtt .gtt-hero__aside{display:block;align-self:center;
    padding-left:clamp(1.5rem,2.4vw,2.5rem);border-left:1px solid var(--line-navy)}
  .gtt .gtt-only-narrow{display:none}
}
.gtt .gtt-hq{margin:0;font-family:var(--display);font-style:italic;letter-spacing:-.015em;
  font-size:clamp(1.35rem,1.05rem + .8vw,1.7rem);line-height:1.3;color:#fff}
.gtt .gtt-hq cite{display:block;margin-top:.85rem;font-family:var(--ui);font-style:normal;
  font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--on-navy-mute)}
.gtt .gtt-hchecks{display:grid;gap:.6rem}
.gtt .gtt-hchecks li{display:flex;align-items:flex-start;gap:.6rem;font-size:.875rem;
  line-height:1.5;color:var(--on-navy-soft)}
.gtt .gtt-hchecks .gtt-tick{flex:0 0 18px;width:18px;height:18px;margin-top:.14rem;
  background:rgba(255,255,255,.15);color:#fff}

/* Portrait. A ring rather than a border, so a member photograph and the
   initials fallback sit at exactly the same optical weight. */
.gtt .gtt-portrait{position:relative;margin:0;flex:0 0 auto;
  width:clamp(122px,24vw,196px);aspect-ratio:1}
.gtt .gtt-portrait__f{position:absolute;inset:0;border-radius:28%;overflow:hidden;
  background:linear-gradient(150deg,#D5E7F5,#AFCFE8);display:grid;place-items:center;
  font-family:var(--display);font-size:clamp(2.6rem,7vw,4rem);color:var(--navy);
  line-height:1;box-shadow:0 18px 44px rgba(4,18,30,.45);
  transition:transform var(--t-rev) var(--ease)}
.gtt .gtt-portrait__f img{width:100%;height:100%;object-fit:cover}
.gtt .gtt-portrait::after{content:"";position:absolute;inset:-9px;border-radius:32%;
  border:1px solid rgba(127,178,214,.42);pointer-events:none;
  transition:transform var(--t-rev) var(--ease),opacity var(--t-rev)}
.gtt .gtt-hero:hover .gtt-portrait::after{transform:scale(1.035)}

.gtt .gtt-hero h1{font-family:var(--display);color:#fff;
  font-size:clamp(2.35rem,1.5rem + 3.6vw,4.1rem);line-height:1.02;letter-spacing:-.028em;
  margin:.55rem 0 0;text-wrap:balance}
.gtt .gtt-role{margin-top:.55rem;font-size:clamp(1rem,.95rem + .3vw,1.125rem);color:var(--on-navy-soft)}
.gtt .gtt-role b{font-weight:500;color:var(--on-navy)}
.gtt .gtt-role span{color:var(--on-navy-mute)}
.gtt .gtt-blurb{margin-top:1rem;max-width:48ch;color:var(--on-navy-soft);line-height:1.66}

.gtt .gtt-eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-size:.6875rem;
  font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--on-navy-mute)}
.gtt .gtt-eyebrow::before{content:"";width:24px;height:1px;background:var(--sky)}

/* Verified badge. Navy circle, paper tick — never blue-tick shaped, and it
   always carries the words, because meaning is never colour alone. */
.gtt .gtt-vbadge{display:inline-flex;align-items:center;gap:.5rem;position:relative;
  background:rgba(255,255,255,.10);border:1px solid var(--line-navy);
  border-radius:var(--r-pill);padding:.42rem .95rem .42rem .45rem;
  font-size:.8125rem;font-weight:600;color:#fff;min-height:40px;
  transition:background var(--t),transform var(--t) var(--ease)}
.gtt .gtt-vbadge:hover,.gtt .gtt-vbadge:focus-visible{background:rgba(255,255,255,.18);transform:translateY(-2px)}
.gtt .gtt-tick{display:inline-grid;place-items:center;flex:0 0 22px;width:22px;height:22px;
  border-radius:50%;background:var(--paper);color:var(--navy)}
.gtt .gtt-vbadge .gtt-tick{background:var(--paper);color:var(--navy)}
.gtt .gtt-tip{position:absolute;left:0;top:calc(100% + .55rem);width:min(23rem,78vw);z-index:30;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-field);
  box-shadow:var(--shadow-l);padding:.9rem 1.05rem;font-size:.8125rem;font-weight:400;
  line-height:1.62;color:var(--ink-soft);opacity:0;visibility:hidden;transform:translateY(-4px);
  transition:opacity .25s,visibility .25s,transform .25s var(--ease)}
.gtt .gtt-vbadge:hover .gtt-tip,.gtt .gtt-vbadge:focus-visible .gtt-tip{opacity:1;visibility:visible;transform:none}

.gtt .gtt-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.1rem}
.gtt .gtt-chip{font-size:.78125rem;font-weight:500;background:rgba(255,255,255,.09);
  border:1px solid var(--line-navy);color:var(--on-navy);padding:.34rem .78rem;border-radius:var(--r-pill)}
.gtt .gtt-chip--clay{background:rgba(199,123,78,.20);border-color:rgba(199,123,78,.42);color:#F3DCCB}

.gtt .gtt-hero__cta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem}

/* Stat strip. The four questions people are actually holding, answered before
   they scroll: what it costs, whether the first call is free, how long the
   wait is, and how sessions happen. */
.gtt .gtt-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,1fr);
  border-top:1px solid var(--line-navy)}
@media (min-width:760px){.gtt .gtt-stats{grid-template-columns:repeat(4,1fr)}}
.gtt .gtt-stat{padding:1.05rem clamp(1.35rem,4vw,3.25rem);border-top:1px solid var(--line-navy)}
.gtt .gtt-stat:nth-child(-n+2){border-top:0}
@media (min-width:760px){
  .gtt .gtt-stat{border-top:0;border-left:1px solid var(--line-navy)}
  .gtt .gtt-stat:first-child{border-left:0}
}
@media (max-width:759px){.gtt .gtt-stat:nth-child(2n){border-left:1px solid var(--line-navy)}}
.gtt .gtt-stat dt{font-size:.6875rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;
  color:var(--on-navy-mute);margin-bottom:.3rem}
.gtt .gtt-stat dd{font-family:var(--display);font-size:clamp(1.35rem,1.1rem + .9vw,1.85rem);
  line-height:1.12;color:#fff;min-height:2.24em;display:flex;flex-direction:column;justify-content:flex-start}
.gtt .gtt-stat dd small{display:block;font-family:var(--ui);font-size:.78125rem;
  color:var(--on-navy-soft);letter-spacing:0;margin-top:.15rem}

/* ==========================================================================
   SCROLL-SPY NAV
   Sticky, horizontally scrollable on small screens, and it tracks the section
   you are actually reading. Long profiles are a scroll problem before they are
   a design problem.
   ========================================================================== */
.gtt .gtt-spy{position:sticky;top:0;z-index:40;margin-bottom:clamp(1.5rem,4vw,2.5rem);
  background:rgba(241,246,251,.86);backdrop-filter:saturate(1.6) blur(14px);
  -webkit-backdrop-filter:saturate(1.6) blur(14px);
  border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.gtt .gtt-spy__in{display:flex;gap:.15rem;overflow-x:auto;scrollbar-width:none;
  -ms-overflow-style:none;scroll-snap-type:x proximity}
.gtt .gtt-spy__in::-webkit-scrollbar{display:none}
.gtt .gtt-spy a{position:relative;flex:0 0 auto;scroll-snap-align:start;
  display:inline-flex;align-items:center;min-height:var(--tap);padding:.7rem .95rem;
  font-size:.875rem;font-weight:500;color:var(--ink-soft);white-space:nowrap;
  transition:color .25s}
.gtt .gtt-spy a::after{content:"";position:absolute;left:.95rem;right:.95rem;bottom:0;height:2px;
  background:var(--slate);border-radius:2px 2px 0 0;transform:scaleX(0);transform-origin:left;
  transition:transform var(--t) var(--ease)}
.gtt .gtt-spy a:hover{color:var(--ink)}
.gtt .gtt-spy a.is-here{color:var(--ink);font-weight:600}
.gtt .gtt-spy a.is-here::after{transform:scaleX(1)}

/* ==========================================================================
   COLUMNS
   ========================================================================== */
.gtt .gtt-cols{display:grid;gap:clamp(1.75rem,4vw,3.25rem);align-items:start}
.gtt .gtt-main{min-width:0}
@media (min-width:1040px){.gtt .gtt-cols{grid-template-columns:minmax(0,1fr) 21.5rem}}
.gtt .gtt-side{display:grid;gap:1rem}
@media (min-width:1040px){.gtt .gtt-side{position:sticky;top:5rem}}

.gtt .gtt-sec{scroll-margin-top:5.5rem}
.gtt .gtt-sec + .gtt-sec{margin-top:clamp(2.5rem,6vw,4rem)}
.gtt .gtt-h{display:flex;align-items:baseline;gap:.8rem;margin-bottom:1.15rem}
.gtt .gtt-h h2{font-family:var(--display);font-size:clamp(1.6rem,1.2rem + 1.7vw,2.35rem);line-height:1.08}
.gtt .gtt-h__n{font-family:var(--display);font-size:1rem;color:var(--sky);flex:0 0 auto;line-height:1}

/* ------------------------------------------------------------- prose ----- */
.gtt .gtt-prose{max-width:66ch}
.gtt .gtt-prose > * + *{margin-top:1.05rem}
.gtt .gtt-prose p{color:var(--ink-soft);line-height:1.74;font-size:1.03125rem}
.gtt .gtt-prose strong{color:var(--ink);font-weight:600}
.gtt .gtt-prose a{color:var(--slate);text-decoration:underline;text-decoration-color:var(--sky);text-underline-offset:3px}
/* First paragraph carries a little more weight so the bio has an entry point
   without resorting to a drop cap, which reads decorative on a health page. */
.gtt .gtt-prose > p:first-child{font-size:clamp(1.09375rem,1.03rem + .3vw,1.25rem);
  line-height:1.6;color:var(--ink)}

/* Pull quote. Italic Instrument Serif is the only emphasis device in display
   type, so the quote is the emphasis and nothing else competes with it. */
.gtt .gtt-quote{margin:1.9rem 0 0;padding:1.3rem 0 1.3rem 1.5rem;border-left:2px solid var(--sky);
  font-family:var(--display);font-style:italic;font-size:clamp(1.375rem,1.1rem + 1.1vw,1.85rem);
  line-height:1.32;letter-spacing:-.015em;color:var(--slate);max-width:24ch}

/* Long bios collapse. The 150-word floor means these run long, and a wall of
   text is the commonest reason someone leaves a profile without enquiring. */
.gtt .gtt-more{position:relative}
.gtt .gtt-more[data-open="0"] .gtt-more__body{max-height:22rem;overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,#000 62%,transparent);
  mask-image:linear-gradient(180deg,#000 62%,transparent)}
.gtt .gtt-more__btn{margin-top:1rem;display:inline-flex;align-items:center;gap:.45rem;
  min-height:var(--tap);padding:.6rem 1.15rem;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-pill);cursor:pointer;
  font-size:.875rem;font-weight:600;transition:background var(--t),border-color var(--t),transform var(--t) var(--ease)}
.gtt .gtt-more__btn:hover{background:var(--wash);border-color:var(--sky);transform:translateY(-2px)}
.gtt .gtt-more__btn svg{transition:transform var(--t) var(--ease)}
.gtt .gtt-more[data-open="1"] .gtt-more__btn svg{transform:rotate(180deg)}

/* ------------------------------------------------------------- pills ----- */
.gtt .gtt-pills{display:flex;flex-wrap:wrap;gap:.5rem}
.gtt .gtt-pill{display:inline-flex;align-items:center;gap:.55rem;min-height:var(--tap);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);
  padding:.65rem 1.1rem;font-size:.9375rem;font-weight:500;color:var(--ink);
  transition:transform var(--t) var(--ease),border-color var(--t),box-shadow var(--t) var(--ease)}
.gtt .gtt-pill:hover{transform:translateY(-2px);border-color:var(--sky);box-shadow:var(--shadow-m)}
.gtt .gtt-pill--wash{background:var(--wash);border-color:transparent}
.gtt .gtt-pill em{font-style:normal;font-size:.75rem;font-weight:600;color:var(--ink-mute)}

/* ---------------------------------------------------------- timeline ----- */
/* Training as a timeline rather than a table. A table invites comparison
   between rows; a career is a sequence. */
.gtt .gtt-tl{position:relative;padding-left:1.6rem}
.gtt .gtt-tl::before{content:"";position:absolute;left:5px;top:.55rem;bottom:.55rem;width:1px;
  background:linear-gradient(180deg,var(--sky),rgba(127,178,214,.15))}
.gtt .gtt-tl li{position:relative;padding-block:.65rem}
.gtt .gtt-tl li + li{border-top:1px solid var(--line-soft)}
.gtt .gtt-tl li::before{content:"";position:absolute;left:-1.6rem;top:1.35rem;width:11px;height:11px;
  border-radius:50%;background:var(--surface);border:2px solid var(--sky);
  transition:background var(--t),transform var(--t) var(--ease)}
.gtt .gtt-tl li:hover::before{background:var(--sky);transform:scale(1.2)}
.gtt .gtt-tl__y{font-family:var(--display);font-size:1.0625rem;color:var(--sky);line-height:1.4}
.gtt .gtt-tl__t{font-size:1rem;font-weight:600;letter-spacing:-.01em;margin-top:.1rem}
.gtt .gtt-tl__b{font-size:.875rem;color:var(--ink-soft);margin-top:.1rem}

/* -------------------------------------------------------- check card ----- */
/* The five verification checks, shown as what they are. This is the claim the
   whole directory rests on, so it gets a panel of its own rather than a badge
   and a hope. */
.gtt .gtt-verify{background:var(--surface);border:1px solid var(--line-soft);
  border-radius:var(--r-card);padding:clamp(1.2rem,3vw,1.75rem);box-shadow:var(--shadow-s)}
.gtt .gtt-checks{display:grid;gap:.1rem;margin-top:.35rem}
@media (min-width:620px){.gtt .gtt-checks{grid-template-columns:repeat(2,1fr);gap:.1rem 1.5rem}}
.gtt .gtt-checks li{display:flex;align-items:flex-start;gap:.65rem;padding:.6rem 0;
  border-bottom:1px solid var(--line-soft);font-size:.9375rem}
.gtt .gtt-checks li .gtt-tick{background:var(--navy);color:var(--paper);margin-top:.1rem;
  flex:0 0 20px;width:20px;height:20px;transform:scale(.6);opacity:0;
  transition:transform 420ms var(--ease),opacity 300ms}
.gtt .gtt-in .gtt-checks li .gtt-tick{transform:none;opacity:1}
.gtt .gtt-checks li:nth-child(2) .gtt-tick{transition-delay:70ms}
.gtt .gtt-checks li:nth-child(3) .gtt-tick{transition-delay:140ms}
.gtt .gtt-checks li:nth-child(4) .gtt-tick{transition-delay:210ms}
.gtt .gtt-checks li:nth-child(5) .gtt-tick{transition-delay:280ms}
.gtt .gtt-verify__note{margin-top:1rem;font-size:.8125rem;color:var(--ink-soft);line-height:1.62}
.gtt .gtt-verify__note a{color:var(--slate);text-decoration:underline;text-underline-offset:3px}

/* ------------------------------------------------------------- panel ----- */
.gtt .gtt-panel{background:var(--surface);border:1px solid var(--line-soft);
  border-radius:var(--r-card);padding:1.35rem 1.3rem;box-shadow:var(--shadow-s)}
.gtt .gtt-panel__h{font-family:var(--ui);font-size:.6875rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:.9rem}
.gtt .gtt-panel--navy{background:linear-gradient(158deg,#0D2C42,#14405C);border-color:transparent;
  color:var(--on-navy);box-shadow:var(--shadow-m)}
.gtt .gtt-panel--navy .gtt-panel__h{color:var(--on-navy-mute)}
.gtt .gtt-panel--navy .gtt-btn--ghost{background:transparent;border-color:var(--line-navy);color:var(--on-navy)}
.gtt .gtt-panel--navy .gtt-btn--ghost:hover{background:rgba(255,255,255,.10);border-color:var(--sky);color:#fff}

/* Registration card */
.gtt .gtt-reg__abbr{font-family:var(--display);font-size:2.1rem;line-height:1;letter-spacing:-.02em;color:#fff}
.gtt .gtt-reg__name{margin-top:.45rem;font-size:.8125rem;line-height:1.55;color:var(--on-navy-soft)}
.gtt .gtt-reg__cta{margin-top:1.15rem}

.gtt .gtt-dl > div{display:grid;grid-template-columns:8.5rem 1fr;gap:.9rem;padding:.6rem 0;
  border-bottom:1px solid var(--line-soft)}
.gtt .gtt-dl > div:last-child{border-bottom:0}
.gtt .gtt-dl dt{font-size:.8125rem;font-weight:600;color:var(--ink-soft)}
.gtt .gtt-dl dd{font-size:.9375rem}
@media (max-width:560px){.gtt .gtt-dl > div{grid-template-columns:1fr;gap:.1rem}}

/* ------------------------------------------------------------ buttons ---- */
.gtt .gtt-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-weight:600;font-size:.9375rem;letter-spacing:-.01em;min-height:var(--tap);
  padding:.8rem 1.45rem;border-radius:var(--r-pill);border:1px solid transparent;
  cursor:pointer;text-align:center;
  transition:transform var(--t) var(--ease),background-color var(--t),
             box-shadow var(--t) var(--ease),border-color var(--t)}
.gtt .gtt-btn--primary{background:var(--slate);color:var(--paper);
  box-shadow:0 1px 0 rgba(255,255,255,.15) inset,var(--shadow-s)}
.gtt .gtt-btn--primary:hover{background:var(--navy);transform:translateY(-2px);box-shadow:var(--shadow-m)}
.gtt .gtt-btn--ghost{background:var(--surface);border-color:var(--line);color:var(--ink)}
.gtt .gtt-btn--ghost:hover{background:var(--wash);border-color:var(--sky);transform:translateY(-2px)}
.gtt .gtt-btn--block{width:100%}
.gtt .gtt-hero .gtt-btn--primary{background:var(--paper);color:var(--navy)}
.gtt .gtt-hero .gtt-btn--primary:hover{background:#fff}
.gtt .gtt-hero .gtt-btn--ghost{background:transparent;border-color:var(--line-navy);color:var(--on-navy)}
.gtt .gtt-hero .gtt-btn--ghost:hover{background:rgba(255,255,255,.10);border-color:var(--sky)}

/* -------------------------------------------------------------- form ----- */
.gtt .gtt-field{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-field);
  padding:.6rem .95rem .5rem;transition:border-color .3s,box-shadow .3s}
.gtt .gtt-field:focus-within{border-color:var(--sky);box-shadow:0 0 0 4px var(--wash)}
.gtt .gtt-field label{display:block;font-size:.6875rem;font-weight:600;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:.1rem}
.gtt .gtt-field input,.gtt .gtt-field textarea,.gtt .gtt-field select{width:100%;border:0;background:transparent;
  padding:0;font:inherit;font-size:1rem;font-weight:500;outline:none;resize:vertical;color:var(--ink)}
.gtt .gtt-field ::placeholder{color:var(--ink-mute)}
/* A native select inside a field box is the one control that always gives the
   theme away. Chevron drawn here, text allowed to ellipsis rather than clip. */
.gtt .gtt-field select{appearance:none;-webkit-appearance:none;cursor:pointer;
  padding-right:1.5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;
  background-repeat:no-repeat;background-position:right center;background-size:13px 13px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2342586C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}
.gtt .gtt-field select::-ms-expand{display:none}
.gtt .gtt-field select option{color:var(--ink);background:var(--surface)}
.gtt .gtt-form{display:grid;gap:.55rem}

/* Praxis Directory's own enquiry shortcode renders inside this panel when the
   plugin is active. Its stylesheet is registered rather than enqueued, so on a
   page carrying none of its widgets the form would otherwise arrive bare.
   Styled here to the same tokens so it cannot look like a different product. */
.gtt .gtt-panel .prx-form-grid{display:grid;gap:.55rem}
.gtt .gtt-panel .prx-field{background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-field);padding:.6rem .95rem .5rem;transition:border-color .3s,box-shadow .3s}
.gtt .gtt-panel .prx-field:focus-within{border-color:var(--sky);box-shadow:0 0 0 4px var(--wash)}
.gtt .gtt-panel .prx-field label{display:block;font-size:.6875rem;font-weight:600;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:.1rem}
.gtt .gtt-panel .prx-field input,.gtt .gtt-panel .prx-field textarea{width:100%;border:0;background:transparent;
  padding:0;font:inherit;font-size:1rem;font-weight:500;outline:none;resize:vertical;color:var(--ink)}
.gtt .gtt-panel .prx-field ::placeholder{color:var(--ink-mute)}
.gtt .gtt-panel .prx-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-weight:600;font-size:.9375rem;letter-spacing:-.01em;min-height:var(--tap);padding:.8rem 1.45rem;
  border-radius:var(--r-pill);border:1px solid transparent;cursor:pointer;
  transition:transform var(--t) var(--ease),background-color var(--t),box-shadow var(--t) var(--ease)}
.gtt .gtt-panel .prx-btn--primary{background:var(--slate);color:var(--paper);
  box-shadow:0 1px 0 rgba(255,255,255,.15) inset,var(--shadow-s)}
.gtt .gtt-panel .prx-btn--primary:hover{background:var(--navy);color:var(--paper);
  transform:translateY(-2px);box-shadow:var(--shadow-m)}
.gtt .gtt-panel .prx-formnote{margin-top:.85rem;font-size:.75rem;color:var(--ink-soft);line-height:1.6}
.gtt .gtt-panel .prx-formnote a{color:var(--slate);text-decoration:underline;text-underline-offset:2px}
.gtt .gtt-panel .prx-sent{font-size:.9375rem;color:var(--ink);line-height:1.6}
.gtt .gtt-note{font-size:.75rem;color:var(--ink-soft);line-height:1.6}
.gtt .gtt-note a{color:var(--slate);text-decoration:underline;text-underline-offset:2px}
.gtt .gtt-hp{position:absolute;left:-9999px}

/* ----------------------------------------------------------- contact ----- */
/* No form. A message about somebody's mental health travelling through, and
   usually resting in, a database that did not need to hold it is a liability
   nobody asked for. A mailto and a phone number put the visitor in touch
   directly and leave nothing behind here. */
.gtt .gtt-contact__lead{font-size:.875rem;line-height:1.6;color:var(--ink-soft);margin-bottom:.9rem}
.gtt .gtt-contact{display:grid;gap:.5rem}
.gtt .gtt-contact__tel{display:flex;align-items:center;gap:.7rem;min-height:var(--tap);
  padding:.65rem .95rem;border:1px solid var(--line);border-radius:var(--r-field);
  background:var(--surface);font-size:1rem;font-weight:600;letter-spacing:-.01em;
  transition:transform var(--t) var(--ease),border-color var(--t),box-shadow var(--t) var(--ease)}
.gtt .gtt-contact__tel:hover{transform:translateY(-2px);border-color:var(--sky);box-shadow:var(--shadow-s)}
.gtt .gtt-contact__tel svg{flex:0 0 auto;color:var(--slate)}
.gtt .gtt-contact__tel small{display:block;font-size:.6875rem;font-weight:600;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:.05rem}
.gtt .gtt-contact__note{display:flex;align-items:flex-start;gap:.5rem;margin-top:.75rem;
  font-size:.8125rem;line-height:1.55;color:var(--ink-soft)}
.gtt .gtt-contact__note .gtt-tick{background:var(--navy);color:var(--paper);flex:0 0 18px;
  width:18px;height:18px;margin-top:.1rem}

/* ------------------------------------------------------------- where ----- */
/* Real OpenStreetMap tiles, drawn as an area rather than a pin. Until Leaflet
   loads — and if it never does — the same box is a quiet abstract plate, so
   the section never collapses. */
.gtt .gtt-map{position:relative;width:100%;overflow:hidden;border-radius:var(--r-card);
  aspect-ratio:16/8;border:1px solid var(--line-soft);
  background:
    repeating-linear-gradient(90deg,rgba(16,32,46,.045) 0 1px,transparent 1px 52px),
    repeating-linear-gradient(0deg,rgba(16,32,46,.045) 0 1px,transparent 1px 52px),
    linear-gradient(160deg,#DCEAF5,#EEF4FA);
  display:grid;place-items:center;z-index:0}
.gtt .gtt-map::after{content:"";position:absolute;left:50%;top:50%;width:min(26%,170px);aspect-ratio:1;
  transform:translate(-50%,-50%);border-radius:50%;border:1.5px dashed rgba(20,64,92,.4);
  background:rgba(127,178,214,.2);transition:opacity .4s}
.gtt .gtt-map--live::after{opacity:0}
.gtt .gtt-map--live{background:var(--wash)}
@media (max-width:700px){.gtt .gtt-map{aspect-ratio:4/3}}
.gtt .gtt-map__wait{position:relative;z-index:2;font-size:.8125rem;color:var(--ink-soft);
  background:var(--surface);border-radius:var(--r-input);padding:.55rem .9rem;box-shadow:var(--shadow-s)}
.gtt .gtt-map--live .gtt-map__wait{display:none}

/* Leaflet's own furniture, brought onto the brand. */
.gtt .gtt-map .leaflet-container{width:100%;height:100%;border-radius:inherit;
  font:inherit;background:var(--wash)}
.gtt .gtt-map .leaflet-control-attribution{background:rgba(252,253,255,.9);
  font-family:var(--ui);font-size:10px;color:var(--ink-soft);padding:2px 6px;border-radius:6px 0 0 0}
.gtt .gtt-map .leaflet-control-attribution a{color:var(--slate)}
.gtt .gtt-map .leaflet-control-zoom a{width:32px;height:32px;line-height:32px;color:var(--ink);
  background:var(--surface);border-color:var(--line)}
.gtt .gtt-map .leaflet-control-zoom a:hover{background:var(--wash)}
.gtt .gtt-map .leaflet-bar{border-radius:10px;overflow:hidden;box-shadow:var(--shadow-s);border:1px solid var(--line)}

.gtt .gtt-map__plate{margin-top:.85rem;font-size:.8125rem;color:var(--ink-soft);line-height:1.6;
  display:flex;align-items:flex-start;gap:.5rem;max-width:60ch}
.gtt .gtt-map__plate svg{flex:0 0 auto;color:var(--sky);margin-top:.15rem}

/* ------------------------------------------------------------- cards ----- */
.gtt .gtt-grid{display:grid;gap:.9rem;grid-template-columns:1fr}
@media (min-width:640px){.gtt .gtt-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.gtt .gtt-grid{grid-template-columns:repeat(3,1fr)}}
.gtt .gtt-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-card);
  padding:1.35rem 1.25rem;display:flex;flex-direction:column;gap:.7rem;
  transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease),border-color .3s}
.gtt .gtt-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-l);border-color:var(--sky-soft)}
.gtt .gtt-av{width:60px;height:60px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
  font-family:var(--display);font-size:1.4rem;color:var(--navy);
  background:linear-gradient(150deg,#D5E7F5,#AFCFE8);box-shadow:inset 0 0 0 1px rgba(16,32,46,.09)}
.gtt .gtt-av img{width:100%;height:100%;object-fit:cover}
.gtt .gtt-card h3{display:flex;align-items:center;gap:.4rem;font-family:var(--display);font-size:1.25rem}
.gtt .gtt-card h3 .gtt-tick{background:var(--navy);color:var(--paper);width:18px;height:18px;flex:0 0 18px}
.gtt .gtt-card__s{font-size:.875rem;font-weight:600;color:var(--ink)}
.gtt .gtt-card__m{font-size:.8125rem;color:var(--ink-soft);line-height:1.55}
.gtt .gtt-card .gtt-chip{background:var(--wash);border-color:transparent;color:var(--ink-soft)}
.gtt .gtt-card .gtt-btn{margin-top:auto;width:100%}

/* ------------------------------------------------------------ crisis ----- */
.gtt .gtt-crisis{margin-top:clamp(2rem,5vw,3rem);border:1px solid var(--line);background:var(--surface);
  border-radius:var(--r-field);padding:.95rem 1.1rem;font-size:.8125rem;line-height:1.62;
  color:var(--ink-soft);max-width:68ch}
.gtt .gtt-crisis strong{display:block;margin-bottom:.15rem;font-size:.875rem;color:var(--ink)}
.gtt .gtt-crisis a{color:var(--slate);text-decoration:underline;text-underline-offset:3px}

/* --------------------------------------------------------- sticky bar ---- */
.gtt .gtt-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:rgba(252,253,255,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(16,32,46,.08);
  padding:.65rem var(--gut) calc(.65rem + env(safe-area-inset-bottom));
  display:flex;gap:.6rem;align-items:center;justify-content:space-between;
  transform:translateY(110%);transition:transform 450ms var(--ease)}
.gtt .gtt-bar.is-up{transform:none}
.gtt .gtt-bar__f{font-size:.75rem;color:var(--ink-soft);line-height:1.3}
.gtt .gtt-bar__f strong{display:block;color:var(--ink);font-size:.9375rem}
@media (min-width:1040px){.gtt .gtt-bar{display:none}}

/* ------------------------------------------------------------ editor ----- */
.gtt .gtt-ed{border:1px dashed var(--clay);background:var(--clay-soft);border-radius:var(--r-field);
  padding:.8rem 1rem;font-size:.8125rem;line-height:1.6;color:#6B3F1E;max-width:68ch;margin-top:1.1rem}
.gtt .gtt-ed strong{display:block;margin-bottom:.2rem}

/* ------------------------------------------------------------ reveal ----- */
.gtt.gtt-js .gtt-rv{opacity:0;transform:translateY(20px);
  transition:opacity var(--t-rev) var(--ease),transform var(--t-rev) var(--ease)}
.gtt.gtt-js .gtt-rv.gtt-in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .gtt *,.gtt *::before,.gtt *::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important}
  .gtt.gtt-js .gtt-rv{opacity:1;transform:none}
  .gtt .gtt-bar{transform:none}
}

@media print{
  .gtt .gtt-spy,.gtt .gtt-bar,.gtt .gtt-side .gtt-panel:first-child{display:none}
  .gtt .gtt-hero{background:#fff;color:#000;border:1px solid #999}
  .gtt .gtt-hero h1,.gtt .gtt-stat dd{color:#000}
  .gtt .gtt-more[data-open="0"] .gtt-more__body{max-height:none;-webkit-mask-image:none;mask-image:none}
}

/* ============================================================================
   Touch targets
   A pointer that is a fingertip gets 44px, which is the floor in the brand
   guidelines and in WCAG 2.5.8. A mouse does not need it, and forcing it there
   makes small controls look inflated — so it is asked for by input type rather
   than by screen width. Inline links inside a paragraph are exempt on both
   counts, and are left alone.
   ========================================================================== */
@media (pointer:coarse){
  .gtt .gtt-vbadge,.gtt .gtt-seg label,.gtt .gtt-drop,.gtt .gtt-clear,.gtt .gtt-row__tags a,.gtt .gtt-more__btn{min-height:44px}
  .gtt .gtt-field{padding-block:.7rem .6rem}
}

/* ============================================================================
   GOTOTHERAPY — directory listing
   The archive template. Same tokens, same components, same namespace as the
   profile, so a visitor moving from a listing to a profile does not feel the
   join.
   ========================================================================== */

/* ------------------------------------------------------------ list hero -- */
.gtt .gtt-hero--list .gtt-hero__in{align-items:end}
@media (min-width:900px){
  .gtt .gtt-hero--list .gtt-hero__in{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
}
@media (min-width:1120px){
  .gtt .gtt-hero--list .gtt-hero__in{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
}
.gtt .gtt-hero--list h1{margin-top:.7rem;max-width:17ch}

/* The 40-to-55 word answer, reversed out. Written so an assistant can lift it
   whole and it still makes sense with no page around it. */
.gtt .gtt-answer{margin-top:1.15rem;max-width:52ch;font-size:clamp(1.03125rem,.98rem + .3vw,1.15rem);
  line-height:1.62;color:var(--on-navy-soft)}
.gtt .gtt-answer b{font-weight:500;color:#fff}

.gtt .gtt-hero__side{display:grid;gap:.6rem;align-content:end}
.gtt .gtt-hero__side .gtt-hchecks{margin-top:.35rem}

/* ------------------------------------------------------------- refine ---- */
/* A real GET form. It works with JavaScript off, and every state it can reach
   is a URL somebody can send to a friend. */
.gtt .gtt-refine{position:relative;z-index:3;margin-top:-1.6rem;margin-bottom:clamp(1.5rem,4vw,2.25rem);
  background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-card);
  box-shadow:var(--shadow-m);padding:clamp(.9rem,2.2vw,1.15rem)}
.gtt .gtt-refine__grid{display:grid;gap:.55rem;align-items:end}
@media (min-width:760px){.gtt .gtt-refine__grid{grid-template-columns:repeat(2,minmax(0,1fr)) auto}}
@media (min-width:1080px){.gtt .gtt-refine__grid{grid-template-columns:repeat(3,minmax(0,1fr)) auto}}
.gtt .gtt-refine .gtt-btn{white-space:nowrap}

/* Segmented control. The thumb is sized from the active label rather than a
   fixed fraction, because "In person" and "Online or phone" are not the same
   width and a half-width thumb sits wrong under one of them. */
.gtt .gtt-seg{position:relative;display:inline-flex;background:var(--wash);border-radius:var(--r-pill);
  padding:4px;margin-bottom:.7rem;max-width:100%;overflow-x:auto;scrollbar-width:none}
.gtt .gtt-seg::-webkit-scrollbar{display:none}
.gtt .gtt-seg input{position:absolute;opacity:0;pointer-events:none}
/* Sized by their own text, never by a fraction of the track. "Any" and
   "Online or phone" are not the same width, and a thumb built on an even split
   sits wrong under one of them. */
.gtt .gtt-seg label{flex:0 0 auto;position:relative;z-index:2;display:inline-flex;
  align-items:center;justify-content:center;min-height:40px;padding:.35rem 1rem;
  border-radius:var(--r-pill);font-size:.875rem;font-weight:600;color:var(--ink-soft);
  white-space:nowrap;cursor:pointer;transition:color var(--t)}
@media (max-width:400px){.gtt .gtt-seg label{padding:.35rem .75rem;font-size:.8125rem}}
.gtt .gtt-seg input:checked + label{color:var(--ink)}
.gtt .gtt-seg input:focus-visible + label{outline:2.5px solid var(--clay);outline-offset:2px}
.gtt .gtt-seg__thumb{position:absolute;top:4px;bottom:4px;z-index:1;border-radius:var(--r-pill);
  background:var(--surface);box-shadow:var(--shadow-s);
  transition:transform var(--t) var(--ease),width var(--t) var(--ease)}

/* Active filters, each one a link that removes itself. */
.gtt .gtt-active{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:1.1rem}
.gtt .gtt-active__l{font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-soft);margin-right:.2rem}
.gtt .gtt-drop{display:inline-flex;align-items:center;gap:.45rem;min-height:38px;padding:.4rem .6rem .4rem .85rem;
  background:var(--wash);border-radius:var(--r-pill);font-size:.8125rem;font-weight:500;color:var(--ink);
  transition:background var(--t)}
.gtt .gtt-drop:hover{background:var(--sky-soft)}
.gtt .gtt-drop svg{opacity:.65}
.gtt .gtt-clear{display:inline-flex;align-items:center;min-height:38px;padding-inline:.4rem;
  font-size:.8125rem;color:var(--slate);text-decoration:underline;text-underline-offset:3px}

/* ---------------------------------------------------------- list header -- */
.gtt .gtt-lhead{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:baseline;
  justify-content:space-between;margin-bottom:1rem}
.gtt .gtt-lhead h2{font-family:var(--display);font-size:clamp(1.4rem,1.15rem + .9vw,1.9rem)}
.gtt .gtt-lhead p{font-size:.8125rem;color:var(--ink-soft)}

/* -------------------------------------------------------------- rows ----- */
/* Rows rather than a card grid. People compare fees down a column, and a
   three-across grid makes that a zig-zag. */
.gtt .gtt-rows{display:grid;gap:.85rem}
.gtt .gtt-row{position:relative;background:var(--surface);border:1px solid var(--line-soft);
  border-radius:var(--r-card);padding:clamp(1.1rem,2.5vw,1.4rem);
  display:grid;gap:1rem 1.35rem;align-items:start;
  transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease),border-color .3s}
.gtt .gtt-row:hover{transform:translateY(-2px);box-shadow:var(--shadow-l);border-color:var(--sky-soft)}
@media (min-width:560px){.gtt .gtt-row{grid-template-columns:auto minmax(0,1fr)}}
@media (min-width:900px){.gtt .gtt-row{grid-template-columns:auto minmax(0,1fr) 12.5rem}}

.gtt .gtt-row__p{width:clamp(72px,14vw,104px);aspect-ratio:1;border-radius:24%;overflow:hidden;
  display:grid;place-items:center;font-family:var(--display);font-size:clamp(1.5rem,4vw,2rem);
  color:var(--navy);background:linear-gradient(150deg,#D5E7F5,#AFCFE8);
  box-shadow:inset 0 0 0 1px rgba(16,32,46,.09)}
.gtt .gtt-row__p img{width:100%;height:100%;object-fit:cover}

.gtt .gtt-row__n{display:flex;align-items:center;gap:.45rem;font-family:var(--display);
  font-size:clamp(1.35rem,1.15rem + .6vw,1.6rem);letter-spacing:-.015em}
.gtt .gtt-row__n a{transition:color var(--t)}
.gtt .gtt-row__n a:hover{color:var(--slate)}
.gtt .gtt-row__n .gtt-tick{background:var(--navy);color:var(--paper);width:19px;height:19px;flex:0 0 19px}
.gtt .gtt-row__s{margin-top:.2rem;font-size:.875rem;font-weight:600;color:var(--ink)}
.gtt .gtt-row__b{margin-top:.5rem;font-size:.9375rem;line-height:1.62;color:var(--ink-soft);max-width:62ch}
.gtt .gtt-row__chips{margin-top:.7rem}
.gtt .gtt-row .gtt-chip{background:var(--wash);border:0;color:var(--ink-soft)}
.gtt .gtt-row__tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem}
.gtt .gtt-row__tags a{display:inline-flex;align-items:center;min-height:34px;
  font-size:.75rem;color:var(--slate);background:transparent;
  border:1px solid var(--line);border-radius:var(--r-pill);padding:.3rem .8rem;
  transition:border-color var(--t),background var(--t)}
.gtt .gtt-row__tags a:hover{border-color:var(--sky);background:var(--wash)}

.gtt .gtt-row__side{display:grid;gap:.5rem;align-content:start}
@media (min-width:900px){
  .gtt .gtt-row__side{border-left:1px solid var(--line-soft);padding-left:1.35rem;height:100%}
}
@media (max-width:899px){
  .gtt .gtt-row__side{grid-column:1/-1;border-top:1px solid var(--line-soft);padding-top:.9rem}
}
.gtt .gtt-row__fee{font-family:var(--display);font-size:1.65rem;line-height:1.1;color:var(--ink)}
.gtt .gtt-row__fee small{display:block;font-family:var(--ui);font-size:.75rem;color:var(--ink-soft);margin-top:.2rem}
.gtt .gtt-row__side .gtt-btn{width:100%}
.gtt .gtt-row__free{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;
  color:var(--slate)}

/* -------------------------------------------------------------- empty ---- */
.gtt .gtt-empty{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-card);
  padding:clamp(1.4rem,4vw,2.25rem);box-shadow:var(--shadow-s)}
.gtt .gtt-empty h2{font-family:var(--display);font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);max-width:24ch}
.gtt .gtt-empty p{margin-top:.7rem;color:var(--ink-soft);line-height:1.7;max-width:58ch}
.gtt .gtt-empty__b{margin-top:1.4rem}
.gtt .gtt-empty__b + .gtt-empty__b{margin-top:1.6rem}
.gtt .gtt-empty__l{font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:.7rem}

/* ------------------------------------------------------------- pager ----- */
.gtt .gtt-pager{margin-top:1.75rem;display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.gtt .gtt-pager a,.gtt .gtt-pager span{display:inline-flex;align-items:center;justify-content:center;
  min-width:var(--tap);min-height:var(--tap);padding:.5rem .85rem;border-radius:var(--r-pill);
  font-size:.9375rem;font-weight:600;background:var(--surface);border:1px solid var(--line-soft);
  color:var(--ink-soft);transition:transform var(--t) var(--ease),border-color .3s,color .3s}
.gtt .gtt-pager a:hover{transform:translateY(-2px);border-color:var(--sky);color:var(--ink)}
.gtt .gtt-pager .current{background:var(--navy);border-color:var(--navy);color:var(--paper)}
.gtt .gtt-pager .dots{background:transparent;border-color:transparent}
.gtt .gtt-pager .gtt-pager__note{display:block;width:100%;margin-top:.6rem;padding:0;min-width:0;
  min-height:0;background:transparent;border:0;border-radius:0;text-align:left;
  font-size:.75rem;font-weight:400;color:var(--ink-soft)}

/* ------------------------------------------------------------ long-form -- */
.gtt .gtt-body{margin-top:clamp(2.5rem,6vw,4rem)}
.gtt .gtt-body .gtt-prose h2{font-family:var(--display);font-size:clamp(1.5rem,1.2rem + 1.3vw,2.1rem);
  line-height:1.1;margin-top:2.4rem}
.gtt .gtt-body .gtt-prose h3{font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;margin-top:1.7rem;color:var(--ink)}
.gtt .gtt-body .gtt-prose ul{display:grid;gap:.55rem;list-style:none;padding:0}
.gtt .gtt-body .gtt-prose li{position:relative;padding-left:1.35rem;color:var(--ink-soft);line-height:1.7}
.gtt .gtt-body .gtt-prose li::before{content:"";position:absolute;left:.15rem;top:.75em;width:6px;height:6px;
  border-radius:50%;background:var(--sky)}

/* Named reviewer as visible text, not only in schema. Non-negotiable on a
   clinical page. */
.gtt .gtt-reviewed{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.1rem;margin-top:1.4rem;
  background:var(--wash);border-radius:var(--r-field);padding:.85rem 1.05rem;
  font-size:.8125rem;color:var(--ink-soft);max-width:66ch}
.gtt .gtt-reviewed strong{color:var(--ink);font-weight:600}

/* ------------------------------------------------------------ linkgrid --- */
.gtt .gtt-links{display:grid;gap:.5rem;grid-template-columns:1fr}
@media (min-width:620px){.gtt .gtt-links{grid-template-columns:repeat(2,1fr)}}
@media (min-width:980px){.gtt .gtt-links{grid-template-columns:repeat(3,1fr)}}
.gtt .gtt-links a{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:var(--tap);padding:.85rem 1.05rem;background:var(--surface);
  border:1px solid var(--line-soft);border-radius:var(--r-field);font-size:.9375rem;font-weight:500;
  transition:transform var(--t) var(--ease),border-color .3s,box-shadow var(--t) var(--ease)}
.gtt .gtt-links a:hover{transform:translateY(-2px);border-color:var(--sky);box-shadow:var(--shadow-s)}
.gtt .gtt-links .n{font-size:.75rem;font-weight:600;color:var(--ink-soft)}
.gtt .gtt-links svg{color:var(--sky);flex:0 0 auto}

/* ============================================================================
   The archive wrapper
   Lives outside .gtt, because it is the element get_header() hands the page to.
   Defaults are declared at zero specificity through :where(), so anything you
   write in Elementor → Site Settings → Custom CSS beats them without needing
   !important — even though this stylesheet is printed later in the document.

     #gtt-main { --gtt-top: 120px; --gtt-side: 80px; --gtt-bottom: 80px; }

   Breakpoints match Elementor's own (1024 tablet, 767 mobile) so a responsive
   value set there lines up with what happens here.
   ========================================================================== */
:where(#gtt-main){--gtt-top:100px;--gtt-side:0px;--gtt-bottom:80px}
@media (max-width:1024px){:where(#gtt-main){--gtt-top:80px;--gtt-bottom:60px}}
@media (max-width:767px){:where(#gtt-main){--gtt-top:64px;--gtt-bottom:48px}}
#gtt-main{display:block;
  padding-block:var(--gtt-top,100px) var(--gtt-bottom,80px);
  padding-inline:var(--gtt-side,0px)}
