/* Disease detail pages: compact illustrations, generous reading rhythm. */
body.ts-disease-detail #content-wrap {
  width: 100%;
  max-width: 1120px !important;
  padding: 0 clamp(22px, 5vw, 70px) !important;
}
body.ts-disease-detail #primary,
body.ts-disease-detail #content { width: 100%; padding: 0; border: 0; }
body .ts-detail-article {
  max-width: 840px;
  margin: 0 auto;
  padding: clamp(44px, 6vw, 78px) 0 96px;
  color: var(--ts-text-light, #455650);
  font-family: var(--ts-sans, Inter, sans-serif);
  font-size: 16px;
  line-height: 1.9;
  overflow-wrap: break-word;
}
body .ts-detail-heading {
  position: relative;
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  align-items: center;
  gap: 28px;
  padding: 0 0 32px;
  margin: 0 0 32px;
  border-bottom: 1px solid #d1dacd;
}
body .ts-detail-heading::after {
  position: absolute;
  content: '';
  width: 62px;
  height: 3px;
  bottom: -2px;
  left: 0;
  background: #a08050;
  border-radius: 4px;
}
body .ts-detail-heading .ts-detail-hero-art {
  display: block;
  width: 112px;
  height: 112px;
  object-fit: contain;
  filter: drop-shadow(0 9px 10px rgba(31, 66, 53, .08));
  transition: transform .45s cubic-bezier(.2,.75,.25,1);
}
body .ts-detail-heading h1,
body .ts-announcement-article .ts-detail-heading .entry-title {
  display: block !important;
  padding: 0;
  margin: 0 !important;
  color: var(--ts-text, #203c35);
  font-family: var(--ts-serif, 'DM Serif Display', Georgia, serif) !important;
  font-size: clamp(34px, 3.7vw, 48px) !important;
  font-weight: 400;
  line-height: 1.16;
  letter-spacing: -.032em;
  text-transform: none;
  overflow-wrap: break-word;
}
body .ts-detail-article p { margin: 0 0 24px; font-size: 16px; line-height: 1.9; }
body .ts-detail-article .ts-detail-lead {
  font-size: clamp(17px, 1.7vw, 19px);
  line-height: 1.8;
  color: #304d43;
  margin-bottom: 26px;
}
body .ts-detail-article strong { color: #294c40; font-weight: 600; }
body .ts-detail-section { margin-top: 44px; padding-top: 29px; border-top: 1px solid #d8dfd3; }
body .ts-detail-section > h2 {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  color: #203c35;
  font-family: var(--ts-serif, 'DM Serif Display', Georgia, serif) !important;
  font-size: clamp(26px, 2.6vw, 33px) !important;
  font-weight: 400;
  letter-spacing: -.024em;
  line-height: 1.24;
  padding: 0;
  margin: 0 0 24px !important;
  scroll-margin-top: 120px;
}
body .ts-detail-section > h2:not(.ts-detail-section-title--illustrated)::before {
  content: '';
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  border-radius: 2px;
  background: #aa8c5e;
  box-shadow: 0 0 0 5px #edeade;
  margin: 0 5px;
  transform: rotate(45deg);
}
body .ts-detail-section .ts-detail-section-art {
  width: 45px;
  height: 45px;
  flex: 0 0 45px;
  object-fit: contain;
  margin-left: -3px;
}
body .ts-detail-section h3 {
  color: #294c40;
  font-family: var(--ts-sans, Inter, sans-serif) !important;
  font-size: 18px !important;
  line-height: 1.55;
  font-weight: 600;
  letter-spacing: -.02em;
  margin: 32px 0 12px !important;
  scroll-margin-top: 120px;
}
body .ts-detail-article ul,
body .ts-detail-article ol { margin: 0 0 28px; padding-left: 25px; max-width: none; }
body .ts-detail-article li { padding-left: 5px; margin-bottom: 10px; line-height: 1.85; }
body .ts-detail-article li::marker { color: #9b8055; font-size: .8em; }
body .ts-detail-article li > ul,
body .ts-detail-article li > ol { margin-top: 10px; margin-bottom: 12px; }
body .ts-detail-article a:not(.wp-block-button__link) {
  color: #7a5c37;
  text-decoration: underline;
  text-decoration-color: #c8b48f;
  text-underline-offset: 4px;
}
body .ts-detail-article table { width: 100%; border-color: #d4dccf; font-size: 14px; }
body .ts-detail-article th { color: #28483d; background: #e8ede1; }
body .ts-detail-article td,
body .ts-detail-article th { padding: 13px 15px; border-color: #d4dccf; }
body .ts-detail-article .wp-block-table { overflow-x: auto; }
body .ts-detail-section--faq {
  padding: 30px clamp(20px, 3vw, 34px) 9px;
  background: #edf0e7;
  border: 1px solid #dae1d4;
  border-radius: 10px;
}
body .ts-detail-section--faq > p { padding-bottom: 21px; border-bottom: 1px solid #d5dfcf; }
body .ts-detail-section--faq > p:last-of-type { border-bottom: 0; padding-bottom: 0; }
body .ts-detail-section--faq > p > strong:first-child { display: block; margin-bottom: 8px; font-size: 17px; }
body .ts-detail-section--appointment {
  position: relative;
  padding: clamp(25px, 4vw, 42px);
  margin-top: 52px;
  border: 1px solid #34584a;
  border-radius: 12px;
  background: radial-gradient(ellipse at 100% 0, #315c49 0, transparent 65%), #193e35;
  box-shadow: 0 16px 40px -26px rgba(22, 50, 39, .5);
}
body .ts-detail-section--appointment > h2 { color: #fbfaf1 !important; }
body .ts-detail-section--appointment p { color: #e0e8dc; }
body .ts-detail-section--appointment strong { color: #fffdf5; }
body .ts-detail-section--appointment .ts-detail-section-art { filter: drop-shadow(0 2px 4px rgba(0,0,0,.15)); }
body .ts-detail-section--appointment .wp-block-buttons { gap: 12px; justify-content: flex-start; margin: 28px 0 22px; }
body .ts-detail-section--appointment .wp-block-button { margin: 0; max-width: 100%; }
body .ts-detail-section--appointment .ts-detail-contact-link {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  min-height: 50px;
  padding: 13px 20px;
  border: 1px solid #e9e9d9;
  border-radius: 5px;
  background: #f3f2e7 !important;
  color: #244637 !important;
  font-family: var(--ts-sans, Inter, sans-serif);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none !important;
  text-decoration: none !important;
  box-shadow: none;
  transition: transform .22s ease, background-color .22s ease, box-shadow .22s ease;
}
body .ts-detail-section--appointment .ts-detail-contact-link--phone {
  background: transparent !important;
  border-color: #789078;
  color: #f5f3e8 !important;
}
body .ts-detail-section--appointment .ts-detail-contact-link:hover { opacity: 1; transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.12); }
body .ts-detail-section--appointment .ts-detail-contact-link--phone:hover { background: #315849 !important; }
body .ts-detail-button-glyph { display: inline-flex; flex: 0 0 24px; width: 24px; height: 24px; font-size: 0; line-height: 0; }
body .ts-detail-button-art { width: 24px; height: 24px; object-fit: contain; }
body .ts-detail-section--appointment .has-small-font-size {
  padding-top: 20px;
  border-top: 1px solid #56705c;
  margin: 0;
  text-align: left;
  font-size: 12px !important;
  line-height: 1.85;
  color: #c8d6c6;
}

/* The original announcements keep their copy, metadata, links and forms. */
body.ts-announcement-detail #content-wrap { max-width: 1180px !important; padding-top: 58px !important; padding-bottom: 72px !important; }
body.ts-announcement-detail #primary { border-right: 0; padding-right: 42px; }
body.ts-announcement-detail #right-sidebar { padding-left: 26px; border-left: 1px solid #d5decf; }
body.ts-announcement-no-sidebar #content-wrap { max-width: 940px !important; }
body.ts-announcement-no-sidebar #primary { width: 100%; float: none; padding-right: 0; }
body.ts-announcement-no-sidebar #right-sidebar { display: none; }
body .ts-announcement-article .ts-detail-heading { grid-template-columns: 94px minmax(0,1fr); gap: 24px; }
body .ts-announcement-article .ts-detail-hero-art { width: 94px; height: 94px; }
body .ts-announcement-article .ts-detail-heading .entry-title { font-size: clamp(29px, 3.3vw, 42px) !important; }
body .ts-announcement-article > .meta {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 18px;
  padding: 0;
  margin: -10px 0 28px;
  color: #657264;
  font-size: 11px;
}
body .ts-announcement-article > .meta li { margin: 0; padding: 0; float: none; font-size: 11px; }
body .ts-announcement-article > .meta li,
body .ts-announcement-article > .meta li a { font-size: 11px !important; letter-spacing: 0; }
body .ts-announcement-article > .meta li::after { display: none; }
body .ts-announcement-article > .entry-content {
  padding: 26px 28px;
  margin-bottom: 36px;
  border: 1px solid #d9e1d2;
  border-radius: 8px;
  background: #edf0e7;
  font-size: 18px;
  line-height: 1.8;
  color: #345143;
}
body .ts-announcement-article > .entry-content p:last-child { margin-bottom: 0; }
body .ts-announcement-article > .entry-content:empty,
body .ts-announcement-article > .ts-announcement-empty { display: none; }
body .ts-announcement-article #related-posts { margin-top: 36px; padding-top: 26px; border-top: 1px solid #d5dece; }
body .ts-announcement-article #related-posts .theme-heading,
body .ts-announcement-article .comment-reply-title { font-size: 25px; letter-spacing: -.02em; text-transform: none; }
body .ts-announcement-article #related-posts .oceanwp-row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; margin: 0; }
body .ts-announcement-article #related-posts .oceanwp-row::after { display: none; }
body .ts-announcement-article #related-posts .related-post {
  float: none;
  width: auto;
  margin: 0;
  padding: 20px;
  border: 1px solid #d5dece;
  border-radius: 8px;
  background: #f8f8f1;
  text-align: left;
  transition: transform .25s ease, border-color .25s ease;
}
body .ts-announcement-article .ts-related-art { display: block; width: 52px; height: 52px; margin-bottom: 12px; }
body .ts-announcement-article .related-post-title { margin: 0 0 13px; font-size: 19px; line-height: 1.4; }
body .ts-announcement-article .related-post time { font-size: 11px; color: #74806f; }
body .ts-announcement-article #comments { margin-top: 40px; padding-top: 30px; border-color: #d5dece; }
body .ts-announcement-article .comment-form input:not([type=checkbox]):not([type=hidden]),
body .ts-announcement-article .comment-form textarea { border-radius: 5px; border-color: #cdd6c7; background: #fafaf4; }
body .ts-announcement-article .comment-form input[type=submit] { background: #244b3d !important; border-color: #244b3d !important; color: #fff; text-transform: none; }
body.ts-announcement-detail .sidebar-box { border-bottom: 1px solid #d9e0d1; padding-bottom: 26px; }
body.ts-announcement-detail .sidebar-box .widget-title { font-size: 17px; letter-spacing: 0; color: #375641; border-color: #a08a5f; text-transform: none; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  body .ts-detail-heading:hover .ts-detail-hero-art { transform: translateY(-4px) rotate(-3deg); }
  body .ts-announcement-article #related-posts .related-post:hover { transform: translateY(-3px); border-color: #aebea2; }
}
@media (prefers-reduced-motion: no-preference) {
  body .ts-detail-heading.ts-detail-arrive { animation: ts-detail-enter .65s cubic-bezier(.2,.7,.25,1) backwards; }
  body .ts-detail-heading.ts-detail-arrive .ts-detail-hero-art { animation: ts-detail-art-enter 1.15s cubic-bezier(.18,.75,.3,1) backwards; }
  body .ts-detail-section > h2.ts-detail-arrive,
  body .ts-announcement-article .related-post.ts-detail-arrive { animation: ts-detail-enter .55s ease backwards; }
}
@keyframes ts-detail-enter { from { opacity: .35; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ts-detail-art-enter { 0% { transform: translateY(8px) rotate(-7deg) scale(.94); } 65% { transform: translateY(-3px) rotate(1deg) scale(1); } 100% { transform: translateY(0) rotate(0) scale(1); } }
@media (max-width: 959px) {
  body.ts-announcement-detail #primary { padding-right: 0; }
  body.ts-announcement-detail #right-sidebar { margin-top: 42px; padding: 26px 0 0; border-left: 0; border-top: 1px solid #d5decf; }
}
@media (max-width: 600px) {
  body .ts-detail-article { padding-top: 34px; padding-bottom: 56px; font-size: 15px; }
  body .ts-detail-heading { grid-template-columns: 78px minmax(0,1fr); gap: 16px; align-items: start; padding-bottom: 25px; margin-bottom: 26px; }
  body .ts-detail-heading .ts-detail-hero-art { width: 78px; height: 78px; }
  body .ts-detail-heading h1 { font-size: clamp(26px, 6.9vw, 36px) !important; line-height: 1.17; }
  body .ts-detail-article p { font-size: 15px; line-height: 1.85; margin-bottom: 22px; }
  body .ts-detail-article .ts-detail-lead { font-size: 16px; line-height: 1.8; }
  body .ts-detail-section { margin-top: 34px; padding-top: 25px; }
  body .ts-detail-section > h2 { font-size: 27px !important; margin-bottom: 20px !important; gap: 11px; }
  body .ts-detail-section .ts-detail-section-art { width: 39px; height: 39px; flex-basis: 39px; }
  body .ts-detail-section h3 { font-size: 17px !important; margin-top: 27px !important; }
  body .ts-detail-article ul,
  body .ts-detail-article ol { padding-left: 20px; }
  body .ts-detail-article li { padding-left: 3px; }
  body .ts-detail-section--faq { padding: 23px 19px 5px; }
  body .ts-detail-section--appointment { padding: 25px 20px; margin-top: 40px; }
  body .ts-detail-section--appointment .wp-block-buttons,
  body .ts-detail-section--appointment .wp-block-button { width: 100%; }
  body .ts-detail-section--appointment .ts-detail-contact-link { width: 100%; font-size: 13px; padding: 13px 12px; }
  body.ts-announcement-detail #content-wrap { padding-top: 34px !important; padding-bottom: 48px !important; }
  body .ts-announcement-article .ts-detail-heading { grid-template-columns: 72px minmax(0,1fr); gap: 14px; }
  body .ts-announcement-article .ts-detail-hero-art { width: 72px; height: 72px; }
  body .ts-announcement-article .ts-detail-heading .entry-title { font-size: 29px !important; }
  body .ts-announcement-article > .entry-content { padding: 22px; font-size: 16px; }
  body .ts-announcement-article #related-posts .oceanwp-row { grid-template-columns: 1fr; }
  body .ts-announcement-article #related-posts .related-post { display: grid; grid-template-columns: 50px minmax(0,1fr); gap: 5px 15px; padding: 19px; }
  body .ts-announcement-article .ts-related-art { grid-row: 1 / 3; width: 50px; height: 50px; margin-bottom: 0; }
  body .ts-announcement-article .related-post-title { margin-bottom: 3px; font-size: 19px; }
  body .ts-announcement-article .related-post time { grid-column: 2; }
}
@media (max-width: 359px) {
  body .ts-detail-heading { grid-template-columns: 65px minmax(0,1fr); gap: 12px; }
  body .ts-detail-heading .ts-detail-hero-art { width: 65px; height: 65px; }
  body .ts-detail-heading h1 { font-size: 25px !important; }
  body .ts-announcement-article .ts-detail-heading .entry-title { font-size: 25px !important; }
}
@media (prefers-reduced-motion: reduce) {
  body .ts-detail-heading,
  body .ts-detail-heading .ts-detail-hero-art,
  body .ts-detail-section > h2,
  body .ts-announcement-article .related-post { animation: none !important; transition: none !important; transform: none !important; }
  body .ts-detail-contact-link { transition: none !important; transform: none !important; }
  body .ts-announcement-article a,
  body .ts-announcement-article input,
  body .ts-announcement-article textarea { transition: none !important; }
}
html.ts-motion-paused .ts-detail-heading,
html.ts-motion-paused .ts-detail-hero-art,
html.ts-motion-paused .ts-detail-section > h2,
html.ts-motion-paused .ts-announcement-article .related-post { animation: none !important; transition: none !important; transform: none !important; }
