@charset "UTF-8";
/* ==========================================================================
   TRIDENT TRAINED - brand layer over Physiyo
   Version 1.0.0
   Mobile-first. All colour pairs verified >= WCAG AA (most AAA).
   ========================================================================== */

/* ---------- Fonts (self-hosted, no third-party requests) ---------- */
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/poppins-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'InterT';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'InterT';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/inter-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'InterT';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/inter-latin-600-normal.woff2) format('woff2')}

/* ---------- Tokens ---------- */
:root{
  --t-bg:#0D0D0F;
  --t-bg-2:#141418;
  --t-bg-3:#1C1C22;
  --t-light:#F7F7F5;
  --t-light-2:#ECECE8;

  --t-ink:#F5F5F4;          /* 17.8:1 on --t-bg */
  --t-ink-muted:#A9A9A6;    /*  8.2:1 on --t-bg */
  --t-ink-dark:#17171A;     /* 16.7:1 on --t-light */
  --t-ink-dark-muted:#4A4A4E;

  --t-accent:#F2994A;       /*  8.7:1 on --t-bg  */
  --t-accent-ink:#A85200;   /*  5.1:1 on --t-light */
  --t-accent-hi:#FFB067;
  --t-on-accent:#0D0D0F;    /*  8.7:1 on --t-accent */

  --t-line:#2E2E36;
  --t-line-light:#DEDED8;

  --t-font-display:'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --t-font-body:'InterT',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;

  --t-nav-h:72px;
  --t-max:1200px;
  --t-gut:20px;
  --t-radius:2px;
  --t-ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--t-nav-h) + 16px)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
body.trident{
  margin:0;
  background:var(--t-bg);
  color:var(--t-ink);
  font-family:var(--t-font-body);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.trident img{max-width:100%;height:auto;display:block}
/* body.trident raises specificity above the parent theme's own heading rules.
   Physiyo force-uppercases headings and sets its own family/spacing; without
   text-transform:none our sentence-case headings render as ALL CAPS on a live
   install even though the offline preview looks correct. */
body.trident h1,body.trident h2,body.trident h3,body.trident h4{
  font-family:var(--t-font-display);font-weight:700;line-height:1.12;
  letter-spacing:-.015em;margin:0 0 .5em;color:var(--t-ink);
  text-transform:none;font-style:normal;
  text-wrap:balance;
}
/* Elements where we *do* want uppercase keep it explicitly. */
body.trident .t-eyebrow,body.trident .t-btn,body.trident .t-nav a,
body.trident .t-drawer__link,body.trident .t-card__more,body.trident .t-trust span,
body.trident .t-footer h4,body.trident .t-field label,body.trident .t-mobilebar a,
body.trident .t-post__meta{text-transform:uppercase}
.trident p{margin:0 0 1.1em}
.trident a{color:var(--t-accent);text-decoration-thickness:1px;text-underline-offset:3px}
.trident a:hover{color:var(--t-accent-hi)}
.trident :focus-visible{outline:3px solid var(--t-accent);outline-offset:3px;border-radius:2px}

.t-h1{font-size:clamp(2.1rem,7.2vw,4rem)}
.t-h2{font-size:clamp(1.7rem,5.2vw,2.9rem)}
.t-h3{font-size:clamp(1.2rem,3.4vw,1.55rem)}
.t-lede{font-size:clamp(1.02rem,2.6vw,1.22rem);line-height:1.6;color:var(--t-ink-muted);max-width:62ch}
.t-eyebrow{
  font-family:var(--t-font-display);font-size:.72rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--t-accent);
  margin:0 0 1rem;display:block;
}
.t-accent{color:var(--t-accent)}

/* ---------- Layout ---------- */
.t-wrap{width:100%;max-width:var(--t-max);margin-inline:auto;padding-inline:var(--t-gut)}
.t-wrap--narrow{max-width:860px}
.t-section{padding-block:clamp(56px,10vw,110px);position:relative}
.t-section--tight{padding-block:clamp(40px,7vw,72px)}
.t-section--light{background:var(--t-light);color:var(--t-ink-dark)}
/* Must out-specify `body.trident h2` (0,1,2), hence the body prefix here too. */
body.trident .t-section--light h1,body.trident .t-section--light h2,
body.trident .t-section--light h3,body.trident .t-section--light h4,
body.trident .t-section--light p,body.trident .t-section--light li{color:var(--t-ink-dark)}
body.trident .t-section--light .t-lede,
body.trident .t-section--light .t-formnote,
body.trident .t-section--light .t-cred__detail,
body.trident .t-section--light .t-cred__issuer{color:var(--t-ink-dark-muted)}
body.trident .t-section--light .t-eyebrow{color:var(--t-accent-ink)}
body.trident .t-section--light a{color:var(--t-accent-ink)}
body.trident .t-section--light .t-accent{color:var(--t-accent-ink)}
.t-section--alt{background:var(--t-bg-2)}

.t-grid{display:grid;gap:clamp(24px,4vw,40px)}
@media (min-width:720px){
  .t-grid--2{grid-template-columns:repeat(2,1fr)}
  .t-grid--3{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1000px){
  .t-grid--3{grid-template-columns:repeat(3,1fr)}
}

/* Split: image + copy. Stacks on mobile, image first. */
.t-split{display:grid;gap:clamp(28px,5vw,64px);align-items:center}
@media (min-width:880px){
  .t-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .t-split--rev .t-split__media{order:2}
}
.t-split__media{position:relative;overflow:hidden;border-radius:var(--t-radius);background:var(--t-bg-3)}
.t-split__media img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media (max-width:879px){.t-split__media img{aspect-ratio:16/10}}
/* Square variant: used where the source photo is landscape, so a 4:5 frame
   would force an uncomfortably tight crop. */
.t-split__media--square img,.t-split__media--square picture img{aspect-ratio:1/1}
@media (max-width:879px){.t-split__media--square img,.t-split__media--square picture img{aspect-ratio:16/10}}


/* ---------- Icons ----------
   Our inline SVGs are stroke-drawn; without this they render as filled blobs. */
.trident svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.trident .t-social svg{fill:currentColor;stroke:none}
.trident .t-btn svg{width:18px;height:18px;flex:0 0 auto}
.trident .t-card__more svg{width:16px;height:16px;flex:0 0 auto;transition:transform .22s var(--t-ease)}
.trident .t-card__more:hover svg{transform:translateX(3px)}
.trident .t-checks li::before{border-color:var(--t-accent)}

/* ---------- Buttons ---------- */
.trident .t-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  min-height:52px;padding:.85em 1.9em;
  font-family:var(--t-font-display);font-size:.8rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;text-align:center;
  border:1px solid var(--t-accent);border-radius:var(--t-radius);
  background:transparent;color:var(--t-accent);cursor:pointer;
  text-decoration:none;transition:background .22s var(--t-ease),color .22s var(--t-ease),transform .22s var(--t-ease);
}
.trident .t-btn:hover{background:var(--t-accent);color:var(--t-on-accent);transform:translateY(-1px)}
.trident .t-btn--solid{background:var(--t-accent);color:var(--t-on-accent)}
.trident .t-btn--solid:hover{background:var(--t-accent-hi);color:var(--t-on-accent)}
.trident .t-btn--ghost{border-color:var(--t-line);color:var(--t-ink)}
.trident .t-btn--ghost:hover{border-color:var(--t-ink);background:transparent;color:var(--t-ink)}
.trident .t-section--light .t-btn{border-color:var(--t-accent-ink);color:var(--t-accent-ink)}
.trident .t-section--light .t-btn:hover{background:var(--t-accent-ink);color:#fff}
.trident .t-section--light .t-btn--solid{background:var(--t-accent-ink);color:#fff}
.trident .t-btn--block{width:100%}
@media (min-width:560px){.trident .t-btn--block{width:auto}}
.t-btnrow{display:flex;flex-wrap:wrap;gap:14px;margin-top:1.8rem}
@media (max-width:559px){.t-btnrow{flex-direction:column;align-items:stretch}}

/* ---------- Header / nav (mirrors current live layout) ---------- */
.t-header{
  position:fixed;inset:0 0 auto 0;z-index:1000;
  background:rgba(13,13,15,.92);backdrop-filter:saturate(1.4) blur(12px);
  border-bottom:1px solid transparent;transition:border-color .3s,background .3s;
}
.t-header.is-stuck{border-bottom-color:var(--t-line);background:rgba(13,13,15,.98)}
.t-header__bar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  height:var(--t-nav-h);
  width:100%;max-width:var(--t-max);margin-inline:auto;padding-inline:var(--t-gut);
}
.t-logo{display:inline-flex;align-items:center;flex-shrink:0;text-decoration:none;min-height:44px}
.t-logo img,.t-logo svg{height:26px;width:auto;display:block}
@media (min-width:900px){.t-logo img,.t-logo svg{height:30px}}

.t-nav{display:none}
@media (min-width:1000px){
  .t-nav{display:flex;align-items:center;gap:clamp(18px,2.4vw,38px)}
}
.t-nav a{
  font-family:var(--t-font-display);font-size:.75rem;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--t-ink);
  text-decoration:none;padding:8px 0;position:relative;white-space:nowrap;
}
.t-nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;
  background:var(--t-accent);transition:right .28s var(--t-ease);
}
.t-nav a:hover::after,.t-nav a[aria-current="page"]::after{right:0}
.t-nav a[aria-current="page"]{color:var(--t-accent)}

.trident .t-header__cta{display:none}
@media (min-width:1000px){.trident .t-header__cta{display:inline-flex}}
.trident .t-header .t-btn{min-height:44px;padding:.65em 1.5em;font-size:.72rem}

/* Mobile: click-to-call + burger, both 48px targets */
.t-header__mob{display:flex;align-items:center;gap:6px}
@media (min-width:1000px){.t-header__mob{display:none}}
.t-iconbtn{
  display:inline-flex;align-items:center;justify-content:center;
  width:48px;height:48px;padding:0;border:0;background:transparent;
  color:var(--t-ink);cursor:pointer;border-radius:var(--t-radius);
}
.t-iconbtn:hover{color:var(--t-accent)}
.t-iconbtn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.t-burger{flex-direction:column}
.t-burger span{display:block;width:22px;height:2px;background:currentColor;transition:transform .3s var(--t-ease),opacity .2s}
.t-burger span+span{margin-top:5px}
.t-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.t-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.t-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Mobile drawer */
.t-drawer{
  position:fixed;inset:var(--t-nav-h) 0 0 0;z-index:999;
  background:var(--t-bg);
  padding:24px var(--t-gut) 40px;
  display:flex;flex-direction:column;gap:4px;
  overflow-y:auto;overscroll-behavior:contain;
  transform:translateY(-8px);opacity:0;visibility:hidden;
  transition:opacity .26s var(--t-ease),transform .26s var(--t-ease),visibility .26s;
}
.t-drawer.is-open{transform:none;opacity:1;visibility:visible}
@media (min-width:1000px){.t-drawer{display:none}}
.t-drawer a.t-drawer__link{
  font-family:var(--t-font-display);font-size:1.1rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:var(--t-ink);
  text-decoration:none;padding:16px 0;min-height:56px;display:flex;align-items:center;
  border-bottom:1px solid var(--t-line);
}
.t-drawer a.t-drawer__link:hover,.t-drawer a[aria-current="page"]{color:var(--t-accent)}
.t-drawer__foot{margin-top:24px;display:grid;gap:12px}
.t-drawer__meta{color:var(--t-ink-muted);font-size:.92rem;margin:0}
body.t-locked{overflow:hidden}

body.trident .t-skip{
  position:absolute;left:-9999px;top:0;z-index:1200;
  background:var(--t-accent);color:var(--t-on-accent);
  padding:12px 20px;font-weight:600;text-decoration:none;
  font-family:var(--t-font-display);
}
body.trident .t-skip:focus{left:8px;top:8px}

/* Offset for fixed header */
.t-main{padding-top:var(--t-nav-h)}

/* ---------- Hero ---------- */
.t-hero{position:relative;min-height:clamp(420px,72vh,660px);display:grid;align-items:center;overflow:hidden;background:var(--t-bg-2)}
.t-hero__bg{position:absolute;inset:0}
.t-hero__bg img{width:100%;height:100%;object-fit:cover;opacity:.5}
.t-hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,13,15,.72) 0%,rgba(13,13,15,.55) 45%,rgba(13,13,15,.95) 100%)}
.t-hero__inner{position:relative;z-index:2;padding-block:clamp(56px,12vw,96px)}
.t-hero__inner .t-lede{color:#E2E2DF}
.t-hero__mark{
  font-family:var(--t-font-display);font-weight:700;
  font-size:clamp(3rem,14vw,8.5rem);letter-spacing:.06em;line-height:1;
  color:rgba(245,245,244,.10);margin:0 0 .1em;
  pointer-events:none;user-select:none;
}

/* Page hero (interior pages) */
.t-phero{padding-block:clamp(48px,9vw,92px);border-bottom:1px solid var(--t-line);background:var(--t-bg-2)}

/* Ribbed divider - the vertical-rule motif from the current site */
.t-ribs{height:96px;display:flex;align-items:stretch;gap:9px;justify-content:center;opacity:.5;overflow:hidden;padding-inline:var(--t-gut)}
.t-ribs i{display:block;width:1px;background:linear-gradient(180deg,transparent,var(--t-line) 22%,var(--t-line) 78%,transparent)}

/* ---------- Cards ---------- */
.t-card{
  background:var(--t-bg-2);border:1px solid var(--t-line);border-radius:var(--t-radius);
  overflow:hidden;display:flex;flex-direction:column;height:100%;
  transition:border-color .25s var(--t-ease),transform .25s var(--t-ease);
}
.t-card:hover{border-color:var(--t-accent);transform:translateY(-3px)}
.t-card__media{aspect-ratio:16/10;overflow:hidden;background:var(--t-bg-3)}
.t-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--t-ease)}
.t-card:hover .t-card__media img{transform:scale(1.04)}
.t-card__body{padding:24px;display:flex;flex-direction:column;flex:1}
.t-card__body h3{margin-bottom:.55rem;font-size:1.18rem}
.t-card__body p{color:var(--t-ink-muted);font-size:.98rem;margin-bottom:1.2rem}
.trident .t-card__more{
  margin-top:auto;font-family:var(--t-font-display);font-size:.74rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--t-accent);text-decoration:none;
  display:inline-flex;align-items:center;gap:.5em;min-height:44px;
}
.trident .t-card__more:hover{gap:.9em}
.t-card--plain{background:transparent;border-color:var(--t-line)}

.t-section--light .t-card{background:#fff;border-color:var(--t-line-light)}
.t-section--light .t-card__body p{color:var(--t-ink-dark-muted)}
.trident .t-section--light .t-card__more{color:var(--t-accent-ink)}

/* Pillars */
.t-pillar{padding:28px;border:1px solid var(--t-line);border-radius:var(--t-radius);background:var(--t-bg-2);height:100%}
.t-pillar svg{width:34px;height:34px;stroke:var(--t-accent);fill:none;stroke-width:1.6;margin-bottom:18px}
.t-pillar h3{font-size:1.12rem;margin-bottom:.5rem}
.t-pillar p{color:var(--t-ink-muted);font-size:.98rem;margin:0}

/* ---------- Checklist grid ("What can it help with?") ---------- */
.t-checks{list-style:none;margin:0;padding:0;display:grid;gap:14px 32px}
@media (min-width:640px){.t-checks{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.t-checks{grid-template-columns:repeat(3,1fr)}}
.t-checks li{position:relative;padding-left:30px;color:var(--t-ink);line-height:1.5}
.t-checks li::before{
  content:"";position:absolute;left:0;top:.45em;width:14px;height:8px;
  border-left:2px solid var(--t-accent);border-bottom:2px solid var(--t-accent);
  transform:rotate(-45deg);
}
.t-section--light .t-checks li{color:var(--t-ink-dark)}
.t-section--light .t-checks li::before{border-color:var(--t-accent-ink)}

/* ---------- CTA band ---------- */
.t-cta{background:var(--t-bg-2);border-block:1px solid var(--t-line);text-align:center}
.t-cta .t-wrap{max-width:760px}
.t-cta h2{margin-bottom:.6rem}
.t-cta p{color:var(--t-ink-muted);margin-bottom:0}
.t-cta .t-btnrow{justify-content:center}

/* ---------- Testimonials ---------- */
.t-quote{padding:28px;border-left:3px solid var(--t-accent);background:var(--t-bg-2);height:100%;display:flex;flex-direction:column}
.t-quote p{font-size:1.05rem;line-height:1.6;margin-bottom:1.2rem}
.t-quote footer{margin-top:auto;font-size:.88rem;color:var(--t-ink-muted)}
.t-quote footer b{display:block;color:var(--t-ink);font-weight:600;font-family:var(--t-font-display)}

/* ---------- FAQ (details/summary, no JS required) ---------- */
.t-faq{border-top:1px solid var(--t-line)}
.t-faq details{border-bottom:1px solid var(--t-line)}
.t-faq summary{
  list-style:none;cursor:pointer;display:flex;gap:16px;align-items:flex-start;justify-content:space-between;
  padding:22px 0;min-height:56px;
  font-family:var(--t-font-display);font-weight:600;font-size:1.04rem;color:var(--t-ink);
}
.t-faq summary::-webkit-details-marker{display:none}
.t-faq summary::after{
  content:"";flex:0 0 auto;width:12px;height:12px;margin-top:.45em;
  border-right:2px solid var(--t-accent);border-bottom:2px solid var(--t-accent);
  transform:rotate(45deg);transition:transform .25s var(--t-ease);
}
.t-faq details[open] summary::after{transform:rotate(-135deg)}
.t-faq details p{color:var(--t-ink-muted);margin:0 0 22px;max-width:70ch}
.t-section--light .t-faq,.t-section--light .t-faq details{border-color:var(--t-line-light)}
.t-section--light .t-faq summary{color:var(--t-ink-dark)}
.t-section--light .t-faq summary::after{border-color:var(--t-accent-ink)}
.t-section--light .t-faq details p{color:var(--t-ink-dark-muted)}

/* ---------- Booking (Jane) ---------- */
.t-jane{
  position:relative;border:1px solid var(--t-line);border-radius:var(--t-radius);
  background:var(--t-bg-2);overflow:hidden;min-height:640px;
}
.t-jane iframe{display:block;width:100%;height:900px;border:0;background:#fff}
@media (max-width:760px){.t-jane iframe{height:1100px}}
.t-jane__fallback{padding:clamp(28px,6vw,56px);text-align:center}
.t-jane__fallback h3{margin-bottom:.6rem}
.t-jane__fallback p{color:var(--t-ink-muted);max-width:56ch;margin-inline:auto}
.t-jane[data-state="blocked"] iframe{display:none}
.t-jane[data-state="ok"] .t-jane__fallback{display:none}
.t-jane[data-state="loading"] .t-jane__fallback{display:none}

.t-booklist{display:grid;gap:12px;margin-top:2rem}
@media (min-width:720px){.t-booklist{grid-template-columns:repeat(3,1fr)}}
.t-booklist a{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:18px 20px;min-height:60px;
  border:1px solid var(--t-line);border-radius:var(--t-radius);
  background:var(--t-bg-2);color:var(--t-ink);text-decoration:none;
  font-family:var(--t-font-display);font-weight:600;font-size:.92rem;
  transition:border-color .22s,color .22s;
}
.t-booklist a:hover{border-color:var(--t-accent);color:var(--t-accent)}
.t-booklist a span{font-size:1.2em;line-height:1}

/* ---------- Contact ---------- */
.t-nap{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.t-nap li{display:flex;gap:14px;align-items:flex-start}
.t-nap svg{flex:0 0 auto;width:20px;height:20px;stroke:var(--t-accent);fill:none;stroke-width:1.7;margin-top:4px}
.t-nap b{display:block;font-family:var(--t-font-display);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--t-ink-muted);margin-bottom:3px;font-weight:600}
.t-nap a{color:var(--t-ink);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.t-nap a:hover{color:var(--t-accent)}

.t-hours{width:100%;border-collapse:collapse;margin-top:8px}
.t-hours th,.t-hours td{text-align:left;padding:11px 0;border-bottom:1px solid var(--t-line);font-size:.96rem;font-weight:400}
.t-hours th{color:var(--t-ink-muted);font-weight:400}
.t-hours td{text-align:right;color:var(--t-ink)}

.t-map{aspect-ratio:16/10;border:1px solid var(--t-line);border-radius:var(--t-radius);overflow:hidden;background:var(--t-bg-3)}
.t-map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(1) invert(.92) contrast(.85)}

/* Forms */
.t-form{display:grid;gap:18px}
@media (min-width:640px){.t-form__row{display:grid;grid-template-columns:1fr 1fr;gap:18px}}
.t-field{display:grid;gap:7px}
.t-field label{font-family:var(--t-font-display);font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--t-ink-muted)}
.t-field input,.t-field textarea,.t-field select{
  width:100%;min-height:52px;padding:14px 16px;
  font-family:var(--t-font-body);font-size:16px; /* 16px prevents iOS zoom-on-focus */
  color:var(--t-ink);background:var(--t-bg-2);
  border:1px solid var(--t-line);border-radius:var(--t-radius);
}
.t-field textarea{min-height:140px;resize:vertical}
.t-field input:focus,.t-field textarea:focus{border-color:var(--t-accent);outline:none;box-shadow:0 0 0 3px rgba(242,153,74,.25)}
.t-field input::placeholder,.t-field textarea::placeholder{color:#6E6E71}
.t-formnote{font-size:.85rem;color:var(--t-ink-muted);margin:0}

/* ---------- Trust / insurance strip ---------- */
.t-trust{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:center;padding-block:26px;border-block:1px solid var(--t-line)}
.t-trust span{
  font-family:var(--t-font-display);font-size:.72rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--t-ink-muted);
  display:inline-flex;align-items:center;gap:.6em;
}
.t-trust svg{width:16px;height:16px;stroke:var(--t-accent);fill:none;stroke-width:2}

/* ---------- Footer ---------- */
.t-footer{background:var(--t-bg-2);border-top:1px solid var(--t-line);padding-block:clamp(48px,7vw,72px) 0}
.t-footer__grid{display:grid;gap:36px}
@media (min-width:760px){.t-footer__grid{grid-template-columns:1.4fr 1fr 1fr}}
@media (min-width:1000px){.t-footer__grid{grid-template-columns:1.6fr 1fr 1fr 1.1fr}}
.t-footer h4{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--t-ink-muted);font-weight:600;margin-bottom:1.1rem}
.t-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.t-footer ul a{color:var(--t-ink);text-decoration:none;font-size:.96rem;display:inline-flex;align-items:center;min-height:40px}
.t-footer ul a:hover{color:var(--t-accent)}
/* Direct children only. Without the child combinator this wordmark rule also
   hit the social icon SVGs nested below, and its margin-bottom:18px pushed
   each glyph off-centre inside its 44px button. */
.t-footer__brand > img,.t-footer__brand > svg{height:26px;width:auto;margin-bottom:18px}
.t-footer__brand p{color:var(--t-ink-muted);font-size:.95rem;max-width:36ch}
.t-social{display:flex;gap:10px;margin-top:18px}
.t-social a{
  display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border:1px solid var(--t-line);border-radius:var(--t-radius);color:var(--t-ink);
}
.t-social a:hover{border-color:var(--t-accent);color:var(--t-accent)}
.t-social svg{width:18px;height:18px;fill:currentColor}
.t-footer__bar{
  margin-top:clamp(36px,6vw,56px);border-top:1px solid var(--t-line);
  padding-block:22px;display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;
  font-size:.85rem;color:var(--t-ink-muted);
}
.t-footer__bar a{color:var(--t-ink-muted);text-decoration:none}
.t-footer__bar a:hover{color:var(--t-accent)}

/* ---------- Sticky mobile booking bar ---------- */
.t-mobilebar{
  position:fixed;left:0;right:0;bottom:0;z-index:900;
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--t-line);
  border-top:1px solid var(--t-line);
  transform:translateY(110%);transition:transform .3s var(--t-ease);
  padding-bottom:env(safe-area-inset-bottom);
}
.t-mobilebar.is-visible{transform:none}
@media (min-width:1000px){.t-mobilebar{display:none}}
.t-mobilebar a{
  display:flex;align-items:center;justify-content:center;gap:.5em;
  min-height:56px;text-decoration:none;
  font-family:var(--t-font-display);font-size:.78rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
}
.t-mobilebar a:first-child{background:var(--t-bg-2);color:var(--t-ink)}
.t-mobilebar a:last-child{background:var(--t-accent);color:var(--t-on-accent)}
.t-mobilebar svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}
@media (max-width:999px){body.trident{padding-bottom:calc(56px + env(safe-area-inset-bottom))}}

/* ---------- Breadcrumbs ---------- */
.t-crumbs{font-size:.8rem;color:var(--t-ink-muted);margin-bottom:1.2rem;display:flex;flex-wrap:wrap;gap:.5em}
.t-crumbs a,.t-crumbs span{display:inline-flex;align-items:center;min-height:24px}
.t-crumbs a{color:var(--t-ink-muted);text-decoration:none}
.t-crumbs a:hover{color:var(--t-accent)}
.t-crumbs span[aria-current]{color:var(--t-ink)}

/* ---------- Blog ---------- */
.t-post{border-bottom:1px solid var(--t-line);padding-block:32px}
.t-post:first-child{padding-top:0}
.t-post h3{font-size:1.35rem;margin-bottom:.4rem}
.t-post h3 a{color:var(--t-ink);text-decoration:none}
.t-post h3 a:hover{color:var(--t-accent)}
.t-post__meta{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--t-ink-muted);margin-bottom:.8rem;font-family:var(--t-font-display)}

/* ---------- Reveal on scroll ---------- */
.t-reveal{opacity:0;transform:translateY(18px);transition:opacity .6s var(--t-ease),transform .6s var(--t-ease)}
.t-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.t-reveal{opacity:1;transform:none}}
.no-js .t-reveal{opacity:1;transform:none}

/* ---------- Print ---------- */
@media print{
  .t-header,.t-mobilebar,.t-drawer,.t-jane,.t-ribs{display:none!important}
  body.trident{background:#fff;color:#000}
}

/* ---------- Reviews ---------- */
.t-reviews__head{display:grid;gap:20px;align-items:end;margin-bottom:clamp(28px,4vw,44px)}
@media (min-width:900px){.t-reviews__head{grid-template-columns:1fr auto}}
.t-gstat{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.t-gstat__score{font-family:var(--t-font-display);font-weight:700;font-size:2.6rem;line-height:1;color:var(--t-ink)}
.t-stars{display:inline-flex;gap:3px}
.t-stars svg{width:19px;height:19px;fill:var(--t-accent);stroke:none}
.t-gstat__meta{font-size:.9rem;color:var(--t-ink-muted)}
.t-gstat__meta b{color:var(--t-ink);font-weight:600}

.t-review{
  background:var(--t-bg-2);border:1px solid var(--t-line);border-radius:var(--t-radius);
  padding:26px;display:flex;flex-direction:column;height:100%;
}
.t-review .t-stars{margin-bottom:14px}
.t-review p{font-size:1rem;line-height:1.6;margin-bottom:1.2rem}
.t-review footer{margin-top:auto;display:flex;align-items:center;gap:12px}
.t-review__avatar{
  flex:0 0 auto;width:40px;height:40px;border-radius:50%;
  background:var(--t-bg-3);border:1px solid var(--t-line);
  display:grid;place-items:center;
  font-family:var(--t-font-display);font-weight:600;font-size:.95rem;color:var(--t-accent);
}
.t-review__who{font-size:.88rem;color:var(--t-ink-muted);line-height:1.35}
.t-review__who b{display:block;color:var(--t-ink);font-weight:600;font-family:var(--t-font-display);font-size:.95rem}
.t-section--light .t-review{background:#fff;border-color:var(--t-line-light)}
.t-section--light .t-review__who{color:var(--t-ink-dark-muted)}
.t-section--light .t-review__who b{color:var(--t-ink-dark)}
.t-section--light .t-gstat__score{color:var(--t-ink-dark)}
.t-section--light .t-stars svg{fill:var(--t-accent-ink)}

/* Where a Google-reviews plugin renders. Neutralises common plugin chrome
   so third-party widgets inherit Trident spacing instead of fighting it. */
.t-reviews__feed{margin-top:8px}
.t-reviews__feed img{border-radius:50%}
.t-reviews__feed a{color:var(--t-accent)}

.t-leave{
  border:1px solid var(--t-line);border-radius:var(--t-radius);
  background:var(--t-bg-2);padding:clamp(26px,5vw,44px);
  display:grid;gap:22px;align-items:center;
}
@media (min-width:860px){.t-leave{grid-template-columns:1fr auto}}
.t-leave h3{margin-bottom:.5rem}
.t-leave p{color:var(--t-ink-muted);margin:0;max-width:56ch}
.t-leave .t-btnrow{margin-top:0}

/* <picture> wrappers must not break the media box's aspect-ratio contract. */
.trident picture{display:block;width:100%;height:100%}
.t-split__media picture img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media (max-width:879px){.t-split__media picture img{aspect-ratio:16/10}}

/* ---------- Credentials / certification badges ----------
   Notched plate reads as a dog tag or unit patch rather than a generic card,
   which suits a veteran-owned clinic. Pure CSS, so it stays crisp at any size
   and needs no third-party logo assets. */
.t-creds{display:grid;gap:16px}
@media (min-width:620px){.t-creds{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.t-creds{grid-template-columns:repeat(4,1fr)}}

.t-cred{
  position:relative;overflow:hidden;height:100%;
  display:flex;flex-direction:column;
  padding:26px 22px 22px;
  background:linear-gradient(158deg,var(--t-bg-3) 0%,var(--t-bg-2) 62%);
  border:1px solid var(--t-line);border-radius:var(--t-radius);
  transition:border-color .25s var(--t-ease),transform .25s var(--t-ease);
}
.t-cred:hover{border-color:var(--t-accent);transform:translateY(-3px)}
/* clipped corner accent */
.t-cred::before{
  content:"";position:absolute;top:0;right:0;
  border-top:24px solid var(--t-accent);border-left:24px solid transparent;
}
/* faint trident watermark */
.t-cred::after{
  content:"";position:absolute;right:-18px;bottom:-26px;width:110px;height:110px;
  background:var(--t-cred-mark) center/contain no-repeat;opacity:.05;pointer-events:none;
}
.t-cred__abbr{
  font-family:var(--t-font-display);font-weight:700;line-height:1;
  font-size:clamp(1.6rem,4.4vw,1.95rem);letter-spacing:.01em;
  color:var(--t-accent);margin:0 0 14px;
}
.t-cred__name{font-family:var(--t-font-display);font-weight:600;font-size:1rem;line-height:1.3;color:var(--t-ink);margin:0 0 5px}
.t-cred__issuer{
  font-family:var(--t-font-display);font-size:.68rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--t-ink-muted);margin:0 0 12px;
}
.t-cred__detail{font-size:.92rem;line-height:1.55;color:var(--t-ink-muted);margin:0 0 14px}
.t-cred__verify{
  margin-top:auto;display:inline-flex;align-items:center;gap:.5em;min-height:44px;
  font-family:var(--t-font-display);font-size:.7rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--t-accent);text-decoration:none;
}
.t-cred__verify svg{width:14px;height:14px;flex:0 0 auto}
.t-cred__verify:hover{color:var(--t-accent-hi)}

.t-section--light .t-cred{background:#fff;border-color:var(--t-line-light)}
.t-section--light .t-cred__abbr,.t-section--light .t-cred__verify{color:var(--t-accent-ink)}
.t-section--light .t-cred::before{border-top-color:var(--t-accent-ink)}
.t-section--light .t-cred__name{color:var(--t-ink-dark)}
.t-section--light .t-cred__detail,.t-section--light .t-cred__issuer{color:var(--t-ink-dark-muted)}

/* Inline chip: sits beside a service heading to mark a certified technique. */
.t-credchip{
  display:inline-flex;align-items:center;gap:.7em;
  min-height:44px;padding:.6em 1.15em;
  border:1px solid var(--t-accent);border-radius:999px;
  background:rgba(242,153,74,.09);
  font-family:var(--t-font-display);font-size:.72rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--t-accent);
  text-decoration:none;
}
.t-credchip:hover{background:rgba(242,153,74,.18);color:var(--t-accent-hi)}
.t-credchip b{font-weight:700;letter-spacing:.02em;font-size:1.05em}
.t-credchip svg{width:14px;height:14px;flex:0 0 auto}

/* ---------- Video hero ----------
   Full-bleed looping background with a scrim heavy enough that white headline
   text clears WCAG AA over the brightest frame of the footage, not just the
   average one. The poster carries the same grade so the swap is invisible. */
.t-vhero{
  position:relative;isolation:isolate;overflow:hidden;
  background:var(--t-bg);
  min-height:clamp(430px,68vh,620px);
  display:grid;align-items:end;
}
.t-vhero__media{position:absolute;inset:0;z-index:0}
.t-vhero__media video,.t-vhero__media img{
  width:100%;height:100%;object-fit:cover;display:block;
}
/* Two-stop scrim: heavier at the bottom where the copy sits. */
.t-vhero__media::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(13,13,15,.80) 0%,rgba(13,13,15,.55) 38%,rgba(13,13,15,.93) 100%),
    linear-gradient(90deg,rgba(13,13,15,.85) 0%,rgba(13,13,15,.35) 55%,rgba(13,13,15,.55) 100%);
}
.t-vhero__inner{position:relative;z-index:1;padding-block:clamp(44px,7vw,72px)}
.t-vhero .t-lede{color:#E6E6E3;max-width:56ch}
.t-vhero .t-crumbs{margin-bottom:1rem}

/* Motion toggle, bottom-right. Users who want the movement stopped can stop it. */
.t-vhero__toggle{
  position:absolute;right:16px;bottom:16px;z-index:2;
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  min-height:44px;min-width:44px;padding:0 14px;
  border:1px solid rgba(245,245,244,.35);border-radius:999px;
  background:rgba(13,13,15,.6);color:var(--t-ink);cursor:pointer;
  font-family:var(--t-font-display);font-size:.66rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;
  backdrop-filter:blur(6px);
}
.t-vhero__toggle:hover{border-color:var(--t-accent);color:var(--t-accent)}
.t-vhero__toggle svg{width:14px;height:14px}
.no-js .t-vhero__toggle{display:none}
@media (max-width:559px){
  .t-vhero__toggle{right:12px;bottom:12px;padding:0 12px;font-size:.6rem}
}

/* ==========================================================================
   PARENT-THEME RESET
   Physiyo and its Bootstrap dependency set colours and backgrounds directly on
   base elements (p, td, th, input, textarea). Anywhere Trident relied on
   inheriting from body.trident, those rules won and the result was invisible
   text on a live install while the offline preview looked perfect.

   :where() carries zero specificity, so this layer beats the parent theme on
   source order alone while every Trident component rule still overrides it.
   ========================================================================== */
:where(body.trident) p,
:where(body.trident) li,
:where(body.trident) dd,
:where(body.trident) dt,
:where(body.trident) blockquote,
:where(body.trident) figcaption{color:var(--t-ink)}
:where(body.trident) table,
:where(body.trident) thead,
:where(body.trident) tbody,
:where(body.trident) tr,
:where(body.trident) td,
:where(body.trident) th{background:transparent;color:var(--t-ink)}

/* Form fields need real specificity: the parent targets input[type="text"]
   and friends, which ties with `.t-field input` and wins on source order. */
/* theme-style.css line 388 sets `background: var(--themeht-light-color)
   !important` on every text input, which is the only reason !important appears
   in this file. Without it the fields paint pale mint and the typed text is
   invisible. */
body.trident .t-field input,
body.trident .t-field textarea,
body.trident .t-field select{
  background:var(--t-bg-2) !important;
  border:1px solid var(--t-line) !important;
  /* Typed text in brand orange, per the clinic's request. 8.7:1 on --t-bg-2. */
  color:var(--t-accent);
  -webkit-text-fill-color:var(--t-accent);   /* Safari autofill */
}
body.trident .t-field input::placeholder,
body.trident .t-field textarea::placeholder{color:#6E6E71;-webkit-text-fill-color:#6E6E71}
body.trident .t-field input:focus,
body.trident .t-field textarea:focus,
body.trident .t-field select:focus{
  border-color:var(--t-accent);outline:none;box-shadow:0 0 0 3px rgba(242,153,74,.25);
}
/* Chrome paints autofilled fields with its own background; this masks it. */
body.trident .t-field input:-webkit-autofill{
  -webkit-box-shadow:0 0 0 1000px var(--t-bg-2) inset;
  -webkit-text-fill-color:var(--t-accent);
}
body.trident .t-field select option{background:var(--t-bg-2);color:var(--t-ink)}

/* Opening hours: day labels muted, times in brand orange. */
body.trident .t-hours{background:transparent;border:0}
body.trident .t-hours th{color:var(--t-ink-muted);background:transparent;font-weight:400}
body.trident .t-hours td{color:var(--t-accent);background:transparent}
body.trident .t-hours th,
body.trident .t-hours td{border-bottom:1px solid var(--t-line)}

/* Review and testimonial quotes read as primary copy, not secondary. */
body.trident .t-review p,
body.trident .t-quote p{color:var(--t-ink)}

/* Our review cards are <blockquote> elements, and Physiyo styles bare
   blockquotes as pull quotes: `margin-left:110px !important` plus a 70px
   icon-font quote glyph absolutely positioned at left:-110px, with the copy
   itself indented another 30px. Inside a grid column that ate a third of each
   card's width and pushed the text off centre. Reset all three. The
   !important is required only because the parent uses one. */
body.trident .t-review,
body.trident .t-quote{
  margin-left:0 !important;
  margin-right:0;
  font-size:inherit;line-height:inherit;font-weight:inherit;
}
body.trident .t-review::after,
body.trident .t-quote::after{content:none !important;display:none !important}
body.trident .t-review p,
body.trident .t-quote p{padding-left:0}

/* ---------- Booking hand-off panel ----------
   Replaces the Jane iframe. Jane refuses framing, so this is presented as a
   deliberate hand-off rather than a fallback. */
.t-booknow{
  border:1px solid var(--t-line);border-radius:var(--t-radius);
  background:linear-gradient(158deg,var(--t-bg-3) 0%,var(--t-bg-2) 60%);
  padding:clamp(32px,6vw,64px) clamp(24px,5vw,56px);
  text-align:center;position:relative;overflow:hidden;
}
.t-booknow::before{
  content:"";position:absolute;top:0;right:0;
  border-top:28px solid var(--t-accent);border-left:28px solid transparent;
}
.t-booknow img{width:52px;height:auto;margin:0 auto 22px;opacity:.9}
.t-booknow p{color:var(--t-ink-muted);max-width:58ch;margin-inline:auto}
.t-booknow .t-btnrow{justify-content:center}

/* Footer social buttons.
   Root cause of the earlier off-centre glyphs was the .t-footer__brand
   wordmark rule leaking margin-bottom:18px onto these nested SVGs; that is
   fixed at the source above. These rules stay because Physiyo decorates
   footer links with icon-font pseudo-elements and an inherited line box,
   both of which would otherwise skew the button. */
body.trident .t-social{display:flex;align-items:center;gap:10px;margin-top:18px}
body.trident .t-social a{
  display:inline-flex !important;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  width:44px;height:44px;
  padding:0;
  line-height:0;              /* kills the inherited 28px line box */
  border:1px solid var(--t-line);
  border-radius:var(--t-radius);
  color:var(--t-ink);
  transition:border-color .22s var(--t-ease),color .22s var(--t-ease);
}
body.trident .t-social a::before,
body.trident .t-social a::after{content:none !important;display:none !important}
body.trident .t-social a:hover{border-color:var(--t-accent);color:var(--t-accent)}
body.trident .t-social svg{
  display:block;flex:0 0 auto;
  margin:0 !important;        /* never inherit a spacing rule from an ancestor */
  fill:currentColor;stroke:none;
}
/* Optical sizing: the LinkedIn mark is a solid square, Instagram an outline.
   Matched pixel sizes make LinkedIn look noticeably heavier. */
body.trident .t-social .t-si--instagram{width:19px;height:19px}
body.trident .t-social .t-si--linkedin{width:17px;height:17px}
