:root{--tsp-text:#0f172a;--tsp-muted:#475569;--tsp-line:#e2e8f0;--tsp-bg:#f5f8f7;--tsp-card:#fff}
.tsp-single-main{background:var(--tsp-bg);padding:0!important;margin:0!important;max-width:none!important;width:100%!important}
.tsp-profile,.tsp-directory{--tsp-main:#006b4f;--tsp-cta:#006b4f;color:var(--tsp-text);font-family:inherit}
.tsp-profile *,.tsp-directory *{box-sizing:border-box}
.tsp-profile svg,.tsp-directory svg{display:block;flex:0 0 auto}
.tsp-hero{position:relative;overflow:hidden;background-image:var(--tsp-hero-bg);background-size:cover;background-position:center 54%;border-bottom:1px solid rgba(15,23,42,.06)}
.tsp-hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.93) 0%,rgba(255,255,255,.82) 42%,rgba(255,255,255,.45) 72%,rgba(255,255,255,.23) 100%)}
.tsp-hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:190px minmax(0,1fr);column-gap:34px;row-gap:14px;max-width:1120px;margin:0 auto;padding:42px 32px 34px;align-items:start}
.tsp-avatar-wrap{grid-row:1 / span 4;align-self:start;padding-top:2px}
.tsp-avatar{position:relative;overflow:hidden;border-radius:50%;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.12);border:4px solid rgba(255,255,255,.82);display:grid;place-items:center;color:#fff}
.tsp-avatar--large{width:172px;height:172px}
.tsp-avatar--small{width:78px;height:78px;border-width:3px;box-shadow:0 6px 18px rgba(15,23,42,.10)}
.tsp-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.tsp-avatar.is-initial{background:linear-gradient(145deg,var(--tsp-main),#024a3a)}
.tsp-avatar.is-initial span{font-weight:800;font-size:76px;line-height:1}
.tsp-avatar--small.is-initial span{font-size:34px}
.tsp-avatar.is-fallback-image{background:#f8fafc}
.tsp-tie-overlay{position:absolute;left:50%;bottom:9%;width:18px;height:34px;transform:translateX(-50%);background:var(--tsp-tie,#0f766e);clip-path:polygon(50% 0,82% 20%,68% 100%,32% 100%,18% 20%);filter:drop-shadow(0 1px 1px rgba(0,0,0,.22));z-index:3}
.tsp-avatar--small .tsp-tie-overlay{width:10px;height:19px;bottom:8%}
.tsp-name{font-size:clamp(30px,3vw,42px)!important;line-height:1.12!important;margin:0 0 4px!important;color:#0f172a!important;font-weight:800!important;letter-spacing:.01em}
.tsp-role{font-size:18px;font-weight:800;color:var(--tsp-main);margin-bottom:4px}
.tsp-office{font-size:16px;font-weight:600;margin-bottom:13px;color:#1e293b}
.tsp-meta-list{display:grid;gap:8px;max-width:760px}
.tsp-meta-row{display:flex;align-items:flex-start;gap:9px;font-size:15.5px;font-weight:600;line-height:1.45;color:#1e293b;text-shadow:0 1px 0 rgba(255,255,255,.65)}
.tsp-meta-row svg{width:19px;height:19px;margin-top:1px;color:var(--tsp-main);stroke-width:2.2}
.tsp-tags{grid-column:2;display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.tsp-tags span,.tsp-directory-tags span{display:inline-flex;align-items:center;padding:7px 13px;border-radius:999px;background:rgba(240,253,248,.92);border:1px solid rgba(0,107,79,.08);color:#125744;font-size:13px;font-weight:800;line-height:1.2;backdrop-filter:blur(2px)}
.tsp-hero-actions{grid-column:2;display:flex;gap:12px;align-items:stretch;max-width:650px;margin-top:2px}
.tsp-btn{min-height:52px;display:inline-flex!important;align-items:center;justify-content:center;gap:10px;text-decoration:none!important;border-radius:10px;font-weight:800!important;font-size:15px;line-height:1.2;padding:0 22px;border:2px solid transparent;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease,background .18s ease;box-shadow:0 5px 14px rgba(15,23,42,.09)}
.tsp-btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.14)}
.tsp-btn:focus-visible{outline:3px solid rgba(59,130,246,.35);outline-offset:2px}
.tsp-btn svg{width:21px;height:21px}
.tsp-btn b{font-size:25px;line-height:1;margin-left:auto;font-weight:400}
.tsp-btn--primary{background:linear-gradient(180deg,color-mix(in srgb,var(--tsp-cta) 92%,white),var(--tsp-cta));color:#fff!important;flex:1 1 auto;border-color:color-mix(in srgb,var(--tsp-cta) 86%,black)}
.tsp-btn--primary:hover{filter:brightness(.96);color:#fff!important}
.tsp-btn--secondary{background:rgba(255,255,255,.92);border-color:var(--tsp-main);color:var(--tsp-main)!important;flex:0 1 250px}
.tsp-btn--secondary:hover{background:#fff;color:var(--tsp-main)!important}
.tsp-content{max-width:1120px;margin:0 auto;padding:22px 32px 72px}
.tsp-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}
.tsp-card{background:var(--tsp-card);border:1px solid #e6ece9;border-radius:12px;box-shadow:0 6px 20px rgba(15,23,42,.045);padding:20px 22px;margin-bottom:14px}
.tsp-card h2{font-size:18px!important;line-height:1.3!important;margin:0!important;color:#0f172a!important;font-weight:800!important}
.tsp-card-head{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.tsp-icon-circle{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--tsp-main) 8%,white);color:var(--tsp-main);flex:0 0 auto}
.tsp-icon-circle svg{width:21px;height:21px;stroke-width:2.2}
.tsp-card-body{padding-left:51px;color:#334155;font-size:15px;line-height:1.7}
.tsp-summary-card{min-height:118px;margin:0}
.tsp-summary-card .tsp-card-body{font-size:14.5px;line-height:1.62}
.tsp-card--wide{padding-top:22px;padding-bottom:22px}
.tsp-prose{font-size:15.5px;line-height:1.85}
.tsp-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.95fr);gap:14px;align-items:start}
.tsp-services-card{margin:0;height:100%}
.tsp-check-list{list-style:none!important;margin:5px 0 0 51px!important;padding:0!important;display:grid;gap:10px}
.tsp-check-list li{display:flex;gap:10px;align-items:flex-start;color:#334155;font-size:14.5px;line-height:1.55;margin:0!important;padding:0!important}
.tsp-check{width:20px;height:20px;border-radius:50%;background:color-mix(in srgb,var(--tsp-main) 88%,white);color:#fff;font-size:12px;font-weight:900;display:grid;place-items:center;flex:0 0 20px;margin-top:1px}
.tsp-side-stack{display:grid;gap:14px}
.tsp-mini-grid{display:grid;grid-template-columns:1fr;gap:14px}
.tsp-mini-card{margin:0;min-height:123px}
.tsp-website-card{margin:0}
.tsp-website-link{color:var(--tsp-main)!important;font-weight:800;text-decoration:none!important;border-bottom:1px solid color-mix(in srgb,var(--tsp-main) 35%,transparent)}
.tsp-website-link:hover{border-bottom-color:var(--tsp-main)}
.tsp-website-card small{display:block;margin-top:6px;color:#64748b;font-size:12px}
.tsp-map-card{margin-top:14px;padding-bottom:16px}
.tsp-map-wrap{width:100%;height:280px;overflow:hidden;border-radius:10px;background:#e2e8f0}
.tsp-map-wrap iframe{width:100%;height:100%;border:0;display:block}
.tsp-map-address{display:flex;gap:8px;align-items:flex-start;margin-top:12px;color:#334155;font-size:14px;font-weight:600}
.tsp-map-address svg{color:var(--tsp-main);width:18px;height:18px;margin-top:1px}
.tsp-bottom-cta{margin-top:14px;padding:24px 20px 20px;border-radius:12px;background-size:cover;background-position:center;display:flex;flex-direction:column;align-items:center;gap:10px;border:1px solid #e5ece9}
.tsp-bottom-cta__label{font-size:16px;font-weight:800;color:#0f513f}
.tsp-bottom-cta__button{min-width:320px;max-width:100%}
.tsp-mobile-sticky{display:none}

/* Directory */
.tsp-directory{max-width:1120px;margin:0 auto;padding:10px 0 40px}
.tsp-pref-section{margin:0 0 34px}
.tsp-pref-heading{display:flex;align-items:center;justify-content:space-between;border-left:5px solid var(--tsp-main);padding:2px 0 2px 13px;margin-bottom:14px}
.tsp-pref-heading h2{margin:0!important;font-size:24px!important;color:#0f172a!important;line-height:1.25!important;font-weight:800!important}
.tsp-pref-heading span{color:#64748b;font-size:13px;font-weight:700}
.tsp-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tsp-directory-card{position:relative;display:grid;grid-template-columns:88px minmax(0,1fr);gap:14px;background:#fff;border:1px solid #e4ebe8;border-radius:14px;padding:17px 17px 48px;box-shadow:0 6px 18px rgba(15,23,42,.045);min-height:160px}
.tsp-directory-avatar-link{align-self:start;text-decoration:none!important}
.tsp-directory-info h3{font-size:20px!important;line-height:1.25!important;margin:0 0 3px!important;font-weight:800!important}
.tsp-directory-info h3 a{color:#0f172a!important;text-decoration:none!important}
.tsp-directory-office{color:#475569;font-size:13.5px;font-weight:600;line-height:1.45;margin-bottom:8px}
.tsp-directory-meta{display:flex;gap:6px;align-items:flex-start;color:#475569;font-size:13px;line-height:1.45;margin-bottom:8px}
.tsp-directory-meta svg{color:var(--tsp-main);width:16px;height:16px;margin-top:1px}
.tsp-directory-tags{display:flex;flex-wrap:wrap;gap:5px}
.tsp-directory-tags span{font-size:11px;padding:5px 8px}
.tsp-directory-more{position:absolute;left:119px;bottom:15px;color:var(--tsp-main)!important;text-decoration:none!important;font-size:13px;font-weight:800}
.tsp-directory-more span{font-size:18px;vertical-align:-1px;margin-left:4px}
.tsp-empty{padding:32px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;text-align:center;color:#475569}

/* Consultation target */
.tsp-consult-target{display:flex;align-items:center;gap:12px;padding:16px 18px;margin:0 auto 20px;background:#f0fbf7;border:1px solid #cceadd;border-radius:12px;color:#0f513f;max-width:900px}
.tsp-consult-target__icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--tsp-main,#006b4f);box-shadow:0 2px 8px rgba(15,23,42,.06)}
.tsp-consult-target strong{display:block;font-size:16px;line-height:1.4}
.tsp-consult-target span{display:block;margin-top:2px;font-size:13px;color:#40665a}

@media (max-width:900px){
  .tsp-hero__inner{grid-template-columns:150px minmax(0,1fr);column-gap:22px;padding:34px 24px 28px}
  .tsp-avatar--large{width:140px;height:140px}
  .tsp-avatar.is-initial span{font-size:62px}
  .tsp-content{padding-left:20px;padding-right:20px}
  .tsp-summary-grid{grid-template-columns:1fr 1fr}
  .tsp-summary-grid .tsp-summary-card:last-child:nth-child(odd){grid-column:1/-1}
  .tsp-detail-grid{grid-template-columns:1fr}
  .tsp-side-stack{grid-template-columns:1fr}
  .tsp-mini-grid{grid-template-columns:1fr 1fr}
  .tsp-directory-grid{grid-template-columns:1fr}
}

@media (max-width:600px){
  .tsp-single-main{overflow:hidden}
  .tsp-hero{background-position:center center}
  .tsp-hero__shade{background:linear-gradient(180deg,rgba(255,255,255,.66) 0%,rgba(255,255,255,.50) 45%,rgba(255,255,255,.68) 100%)}
  .tsp-hero__inner{grid-template-columns:118px minmax(0,1fr);column-gap:14px;row-gap:10px;padding:28px 16px 16px}
  .tsp-avatar-wrap{grid-row:auto;grid-column:1;padding-top:3px}
  .tsp-avatar--large{width:112px;height:112px;border-width:3px;box-shadow:0 7px 20px rgba(15,23,42,.12)}
  .tsp-avatar.is-initial span{font-size:50px}
  .tsp-identity{grid-column:2;min-width:0}
  .tsp-name{font-size:27px!important;margin-top:0!important}
  .tsp-role{font-size:15px;margin-top:1px}
  .tsp-office{font-size:12.5px;line-height:1.4;margin-bottom:8px}
  .tsp-meta-list{gap:6px}
  .tsp-meta-row{font-size:12.7px;gap:7px;line-height:1.4}
  .tsp-meta-row svg{width:16px;height:16px;min-width:16px}
  .tsp-tags{grid-column:1/-1;gap:6px;margin-top:5px;justify-content:flex-start}
  .tsp-tags span{font-size:11.5px;padding:7px 10px;background:rgba(247,255,252,.94)}
  .tsp-hero-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr;gap:8px;max-width:none;margin-top:1px}
  .tsp-btn{min-height:54px;border-radius:8px;font-size:15px;padding:0 17px}
  .tsp-btn--secondary{flex-basis:auto}
  .tsp-content{padding:14px 14px 96px;background:#f5f8f7}
  .tsp-summary-grid{grid-template-columns:1fr;gap:10px;margin-bottom:10px}
  .tsp-summary-grid .tsp-summary-card:last-child:nth-child(odd){grid-column:auto}
  .tsp-card{border-radius:10px;padding:15px 14px;margin-bottom:10px}
  .tsp-card h2{font-size:16px!important}
  .tsp-card-head{gap:10px;margin-bottom:6px}
  .tsp-icon-circle{width:38px;height:38px}
  .tsp-card-body{padding-left:48px;font-size:13.5px;line-height:1.65}
  .tsp-summary-card{min-height:auto;margin:0}
  .tsp-summary-card .tsp-card-body{font-size:13px}
  .tsp-prose{font-size:13.5px;line-height:1.75}
  .tsp-detail-grid{gap:10px}
  .tsp-check-list{margin:4px 0 0 48px!important;gap:7px}
  .tsp-check-list li{font-size:13px}
  .tsp-side-stack{gap:10px}
  .tsp-mini-grid{grid-template-columns:1fr 1fr;gap:10px}
  .tsp-mini-card{min-height:118px;padding:13px 11px}
  .tsp-mini-card .tsp-card-head{align-items:flex-start;gap:7px}
  .tsp-mini-card .tsp-icon-circle{width:34px;height:34px}
  .tsp-mini-card .tsp-card-head h2{font-size:14px!important;padding-top:6px}
  .tsp-mini-card .tsp-card-body{padding-left:41px;font-size:12.5px;line-height:1.55}
  .tsp-website-card{margin:0}
  .tsp-map-card{margin-top:0}
  .tsp-map-wrap{height:190px;border-radius:8px}
  .tsp-map-address{font-size:12.5px;margin-top:10px}
  .tsp-bottom-cta{display:none}
  .tsp-mobile-sticky{display:block;position:fixed;left:0;right:0;bottom:0;z-index:9997;padding:8px 12px max(8px,env(safe-area-inset-bottom));background:rgba(255,255,255,.93);backdrop-filter:blur(10px);border-top:1px solid rgba(15,23,42,.08)}
  .tsp-mobile-sticky a{max-width:540px;margin:0 auto;min-height:54px;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--tsp-cta);border:1px solid color-mix(in srgb,var(--tsp-cta) 82%,black);color:#fff!important;text-decoration:none!important;border-radius:9px;font-weight:800;box-shadow:0 5px 14px rgba(15,23,42,.12)}
  .tsp-mobile-sticky svg{width:21px;height:21px}.tsp-mobile-sticky b{font-size:23px;font-weight:400}
  .tsp-directory{padding:0 0 24px}
  .tsp-pref-section{margin-bottom:28px}
  .tsp-pref-heading h2{font-size:20px!important}
  .tsp-directory-grid{gap:10px}
  .tsp-directory-card{grid-template-columns:74px minmax(0,1fr);gap:11px;padding:14px 13px 43px;min-height:145px;border-radius:11px}
  .tsp-avatar--small{width:68px;height:68px}
  .tsp-avatar--small.is-initial span{font-size:30px}
  .tsp-directory-info h3{font-size:17px!important}
  .tsp-directory-office{font-size:12px;margin-bottom:6px}
  .tsp-directory-meta{font-size:11.5px}
  .tsp-directory-more{left:98px;bottom:12px;font-size:12px}
  .tsp-consult-target{margin:0 12px 16px;padding:13px 14px;border-radius:10px}
  .tsp-consult-target strong{font-size:14px}
}
