/*
 * Posts & Pages Stylesheet
 *
 * Contains styles for single pages, posts, archives,
 * and other specific templates.
 */

/* ==========================================================================
   GENERAL PAGE/POST STYLES
   ========================================================================== */
.page-template-default p a {
  color: var(--wp--preset--color--primary-alt-accent);
}

.wp-singular main,
.blog main {
  padding-top: 32px !important;
  padding-bottom: 80px !important;
}

.blog main {
  max-width: 100%;
  margin: unset;
}

.wp-singular main a:hover {
  color: var(--wp--preset--color--primary-alt-accent);
}

.entry-content ul {
  list-style: inside;
}

.entry-content ul li,
.entry-content ol li,
.wp-block-post-content ul li,
.wp-block-post-content ol li {
  margin-bottom: 2px;
}

h1.wp-block-heading::after,
h1.wp-block-post-title::after {
  content: '';
  display: block;
  width: 150px;
  height: 4px;
  background-color: var(--wp--preset--color--primary);
  margin: 0.3em 0 0;
}

.wp-block-post-title {
  clear: both;
}

/* ==========================================================================
   PAGE TEMPLATES
   ========================================================================== */

/* --- ABOUT PAGE --- */
.page-template-about-page .aboutpage-title {
  max-width: 1290px;
  margin: 0 auto;
}
.page-template-about-page .entry-content {
  padding-top: 48px;
}
.page-template-about-page .about-services-w-icons .wp-block-column {
  align-self: flex-start !important;
}
.page-template-about-page .pricespage-title {
  max-width: 1290px;
  margin: 0 auto;
}

/* --- TEAM PAGES (ARCHIVE & SINGLE) --- */
.page-template-team-page h2::after {
  content: '';
  display: block;
  width: 60px;
  height: 4px;
  background-color: var(--wp--preset--color--primary);
  margin: 60px 0 30px 0;
}
.page-template-team-page p.anchor-filter {
  position: absolute;
  top: var(--wp--preset--spacing--40); /* 16px */
  right: var(--wp--preset--spacing--40); /* 16px */
}
.page-template-team-page p.anchor-filter > a {
  color: var(--wp--preset--color--primary);
  font-weight: var(--wp--custom--font-weight--medium); /* 500 */
  padding-right: 8px;
  padding-left: 8px;
}
.page-template-team-page p.anchor-filter > a:hover {
  color: var(--wp--preset--color--primary-alt-accent);
}
.page-template-team-page #physiotherapists,
.page-template-team-page #receptionists,
.page-template-team-page #management {
  scroll-margin-top: 300px;
}
.page-template-team-page h3.wp-block-post-title a:hover {
  text-decoration: none;
}
.page-template-team-page li.team > div > div {
  border-color: #dedede !important;
  padding-bottom: 20px !important;
  transition: all 0.4s;
}
.page-template-team-page li.team > div > div:hover {
  box-shadow: 0 5px 10px 0 #dddede;
}
.page-template-team-page li.team .nickname-link {
  color: var(--wp--preset--color--primary);
  font-weight: var(--wp--custom--font-weight--medium);
  justify-content: space-between;
}
.page-template-team-page li.team .more-arrow {
  padding-top: 14px;
  margin-right: 10px;
}
/* Team Page Responsive */
@media (max-width: 849px) {
  .page-template-team-page p.anchor-filter {
	top: 60px;
  }
}
@media screen and (min-width: 569px) and (max-width: 781px) {
  .page-template-team-page ul.columns-2 .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column:first-child {
	flex-basis: 33.33% !important;
  }
  body.page-template-team-page ul.columns-2.is-layout-grid .wp-block-column:last-child {
	padding-top: 36px;
	flex-basis: 60% !important;
  }
}
@media screen and (max-width: 799px) {
  body.page-template-team-page ul.columns-2.is-layout-grid {
	display: block !important;
  }
  .page-template-team-page .wp-block-post.team {
	margin-bottom: 16px;
	height: auto;
  }
}
@media screen and (max-width: 568px) {
  .page-template-team-page li.team h3 {
	font-size: var(--wp--preset--font-size--custom-1); /* 18px */
  }
  .page-template-team-page li.team p.designation {
	font-size: var(--wp--preset--font-size--small); /* 14px */
  }
  .page-template-team-page li.team > div > div {
	height: auto;
  }
}
@media screen and (min-width: 569px) and (max-width: 1024px) {
  .page-template-team-page li.team h3 {
	font-size: var(--wp--preset--font-size--custom-2); /* 20px */
  }
  .page-template-team-page li.team p.designation {
	font-size: var(--wp--preset--font-size--small); /* 14px */
  }
}
@media screen and (min-width: 1025px) {
  .page-template-team-page li.team h3 {
	font-size: var(--wp--preset--font-size--custom-3); /* 24px */
	letter-spacing: -1px;
  }
  .page-template-team-page li.team p {
	font-size: var(--wp--preset--font-size--base); /* 16px */
  }
}

/* Single Team Member Page */
.single-team h1.wp-block-post-title::after {
  content: none;
  display: initial;
  width: auto;
  height: auto;
  background-color: transparent;
  margin: 0;
}
.single-team .page-title,
.about-single-team > div:first-child,
.about-single-team .testimonials-wrapper,
.testimonials-group {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.team-member-hero {
  height: 262.5px;
}
.team-member-hero .has-background-dim {
  background-color: transparent !important;
}
.single-team .team-member-hero a.wp-block-button__link:hover {
  background-color: transparent !important;
  color: black !important;
  text-decoration: none;
}
p.team-member-location,
p.more.about-nickname {
  margin-block-start: var(--wp--preset--spacing--small);
}
.box-light-orange {
  max-width: 650px;
  margin-left: 0 !important;
}
.wp-block-column[style*="flex-basis:33.33%"] {
  display: flex;
  align-items: center;
  justify-content: center;
}

/*
 * Fix double team intro headings/photos.
 * Template has both:
 *   .single-team-intro-desktop  (+ block-visibility-hide-small-screen)
 *   .single-team-intro-mobile   (+ block-visibility-hide-large-screen)
 * Block Visibility plugin CSS is missing, so both were showing.
 */
@media (max-width: 781px) {
  .block-visibility-hide-small-screen,
  .single-team .single-team-intro-desktop {
	display: none !important;
  }
}
@media (min-width: 782px) {
  .block-visibility-hide-large-screen,
  .single-team .single-team-intro-mobile {
	display: none !important;
  }
}

/* Single Team Responsive */
@media (max-width: 1359px) {
  .single-team .page-title,
  .about-single-team > div:first-child,
  .about-single-team .testimonials-wrapper {
	padding-left: 0 !important;
  }
}
@media screen and (max-width: 768px) {
  .single-team p.designation {
	font-weight: var(--wp--custom--font-weight--medium); /* 500 */
	font-size: var(--wp--preset--font-size--base); /* 16px */
	margin-top: 0 !important;
  }
}
@media screen and (min-width: 769px) {
  .single-team p.designation {
	font-weight: var(--wp--custom--font-weight--semi-bold); /* 600 */
	font-size: 21px;
	margin-top: 0 !important;
  }
  .single-team .team-member-hero .wp-block-buttons {
	padding-bottom: 32px;
  }
}
@media screen and (max-width: 860px) {
  .team-member-hero {
	height: 100%;
  }
  .single-team-img {
	margin: 0 auto !important;
  }
  h1.single-team-name {
	padding-top: 0 !important;
	margin-bottom: -20px;
  }
  .wp-block-buttons.single-team-cta {
	margin: 0 auto;
  }
}
@media screen and (max-width: 1059px) {
  .team-member-hero {
	height: 600px;
  }
}
@media screen and (min-width: 1060px) {
  .team-member-hero {
	height: 300px;
  }
  .single-team-intro-desktop > figure {
	width: 25% !important;
	height: 100% !important;
  }
  .single-team-intro-desktop > figure > img {
	height: 280px !important;
	object-fit: contain !important;
  }
  .single-team-intro-desktop > .wp-block-group {
	width: 75% !important;
  }
}


/* --- TESTIMONIALS ARCHIVE PAGE --- */
.page-template-testimonials-page .testimonial-card {
  height: auto !important;
}
.page-template-testimonials-page .testimonial-image-name {
  justify-content: flex-start !important;
}
.page-template-testimonials-page .testimonial-link a {
  color: var(--wp--preset--color--primary);
}
.page-template-testimonials-page .testimonial-treatments > p {
  margin-top: 0;
  margin-bottom: 0;
}
/* Testimonials Page Responsive */
@media (max-width: 1059px) {
  .page-template-testimonials-page .testimonial-card-wrapper .testimonial-image-name {
	display: block !important;
	text-align: left !important;
	flex: 0 0 auto !important;
  }
}
/* Google Reviews Plugin */
.wp-gr.wpac {
  margin-left: var(--wp--preset--spacing--40) !important; /* 16px */
}

/* --- PRICING & FAQ PAGE (ID 19390/20554) --- */
.page-id-19390 .defaultpage-title,
.page-id-20554 .defaultpage-title,
.page-id-19390 .wp-block-cover__inner-container,
.page-id-20554 .wp-block-cover__inner-container,
.pricespage-content {
  max-width: 1290px !important;
  margin-left: auto;
  margin-right: auto;
}
.treatments-pricing .wp-block-table td {
  border: 0 none;
}
.treatments-pricing .wp-block-group.treatment {
  margin-top: 10px;
}
.treatments-pricing .wp-block-group.treatment.first {
  margin-top: 10px;
}
.wp-block-details summary {
  background-color: #f2f2f2;
  color: var(--wp--preset--color--primary);
  font-weight: var(--wp--custom--font-weight--semi-bold); /* 600 */
  padding: 10px 0 10px 10px;
  margin-block-start: var(--wp--preset--spacing--x-small);
  cursor: pointer;
}
.wp-block-details[open] summary,
.wp-block-details summary:hover,
.wp-block-details summary:focus {
  background-color: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--base);
}
.treatments-pricing .wp-block-details summary::marker {
  content: "+ ";
  font-weight: var(--wp--custom--font-weight--black); /* 900 */
}
.treatments-pricing .wp-block-details[open] summary::marker {
  content: "- ";
}
.treatments-pricing .wp-block-details p,
.treatments-pricing .wp-block-details ul {
  margin: 30px;
}
/* Pricing Page Responsive */
@media screen and (max-width: 959px) {
  .page-id-19390 .wp-block-cover__inner-container > *,
  .page-id-20554 .wp-block-cover__inner-container > * {
	padding-left: 8px;
	padding-right: 8px;
  }
}
@media screen and (min-width: 960px) and (max-width: 1359px) {
  .page-id-19390 .wp-block-cover__inner-container > *,
  .page-id-20554 .wp-block-cover__inner-container > * {
	padding-left: var(--wp--preset--spacing--40); /* 16px */
	padding-right: var(--wp--preset--spacing--40); /* 16px */
  }
}
@media screen and (min-width: 1360px) {
  .page-id-19390 .wp-block-cover__inner-container > *,
  .page-id-20554 .wp-block-cover__inner-container > *,
  .pricespage-content > p,
  .pricespage-content > .wp-block-columns {
	padding-left: var(--wp--style--root--padding-left);
	padding-right: var(--wp--style--root--padding-right);
  }
}

/* --- CLINIC PAGE --- */
.wp-block-columns.location-details {
  margin-top: 0;
}
.wp-block-columns.location-details > .wp-block-column > .wp-block-group {
  margin-top: 12px;
}
.wp-block-columns.location-details > .wp-block-column > .wp-block-group > figure {
  margin-top: -8px;
}


/* ==========================================================================
   POST TYPE ARCHIVES & SINGLES
   ========================================================================== */

/* --- SERVICE GROUP (ARCHIVE & SINGLE) --- */
.post-type-archive-servicegroup figure.wp-block-post-featured-image {
  margin-left: -20px !important;
}
.post-type-archive-servicegroup ul.columns-3 {
  margin: auto 2%;
}
.services-block {
  margin: 2rem 0;
}
.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--wp--preset--spacing--50); /* 1.5rem */
  margin-top: var(--wp--preset--spacing--40); /* 1rem */
}
.services-grid .service-item {
  border: 1px solid #eee;
  padding: var(--wp--preset--spacing--50); /* 1.5rem */
  border-radius: 5px;
  transition: box-shadow 0.3s ease;
}
.services-grid .service-item:hover {
  box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.services-grid .service-item h3 a {
  color: var(--wp--preset--color--custom-black-242424);
}
.services-grid .service-item h3 a:hover {
  color: var(--wp--preset--color--primary-alt-accent);
}
.services-grid .service-featured-image {
  margin-bottom: var(--wp--preset--spacing--40); /* 1rem */
  overflow: hidden;
  border-radius: 5px;
}
.services-grid .service-thumbnail {
  width: 100%;
  height: auto;
  transition: transform 0.3s ease;
}
.services-grid .service-featured-image:hover .service-thumbnail {
  transform: scale(1.05);
}
.services-grid .service-link {
  display: inline-block;
  margin-top: var(--wp--preset--spacing--40); /* 1rem */
  padding: 0.5rem 1rem;
  background-color: var(--wp--preset--color--primary, #0073aa);
  color: white;
  text-decoration: none;
  border-radius: 3px;
  font-weight: var(--wp--custom--font-weight--medium); /* 500 */
  transition: background-color 0.3s ease;
}
.services-grid .service-link:hover {
  color: var(--wp--preset--color--custom-black-242424);
  background-color: var(--wp--preset--color--secondary, #005177);
}
/* Service Group Responsive */
@media (max-width: 1359px) {
  .page-template-services-page .wp-block-query {
	padding-left: 0;
  }
}
@media (min-width: 1360px) {
  .page-template-services-page .wp-block-query {
	padding-left: 32px;
  }
}
/* Single Service Group */
.video-container > iframe {
  max-width: 85vw !important;
}
.servicegroup-heading {
  flex-wrap: wrap;
}
.servicegroup-heading .wp-block-heading {
  margin-left: -24px;
}

/* --- BLOG (ARCHIVE & SINGLE) --- */
.blog .blogpage-title,
.blog .posts-grid {
  max-width: 1290px !important;
  margin: 0 auto !important;
  display: block !important;
}
/* Blog Responsive */
@media screen and (min-width: 1360px) {
  .blog .blogpage-title .wp-block-heading {
	padding-left: 0;
	padding-right: 0;
  }
  .blog .posts-grid > ul {
	padding-left: var(--wp--style--root--padding-left);
	padding-right: var(--wp--style--root--padding-right);
  }
}
/* Single Post & Sidebar */
.single-post main {
  padding-top: 0 !important;
}
.single-post .wp-block-columns .wp-block-column:last-child {
  align-self: flex-start !important;
  margin-top: 48px;
}
.single-post .wp-block-group.post-meta .taxonomy-category.wp-block-post-terms {
  margin-block-end: 0 !important;
}
.blog-sidebar .categories-list .wp-block-categories-list {
  margin-left: 16px !important;
}
.blog-sidebar .wp-block-group.categories-list li {
  margin-bottom: 4px;
}
.blog-sidebar .social-media .wp-block-heading {
  padding-top: 36px;
}
.blog-sidebar .social-media .wp-block-group {
  margin-top: 0;
  gap: var(--wp--preset--spacing--small);
}
.blog-sidebar .social-media .wp-block-group:first-child {
  margin-block-start: var(--wp--preset--spacing--small);
}
.blog-sidebar .wp-block-query {
  margin-block-start: var(--wp--preset--spacing--small);
}
.blog-sidebar .recent-posts li {
  margin-block-start: 0;
  margin-block-end: 10px;
}
.blog-sidebar .recent-posts h4.wp-block-post-title {
  font-weight: var(--wp--custom--font-weight--medium); /* 500 */
  line-height: 1.2em;
  margin-block-start: 0;
  margin-block-end: 0;
}
.blog-sidebar .wp-block-categories {
  list-style: inside;
}

.single-team p.wp-block-post-title {
  font-weight: 700;
  line-height: var(--wp--custom--line-height--snug);
  margin: 0;
}