/**
 * Custom styles for Bellamy Studio theme
 */
/* reverse columns for mobile class */
@media (max-width: 768px) {
  .reverse-mobile {
    flex-direction: column-reverse;
  }
}

html,
body {
  /*overflow-x: hidden;*/
  font-size-adjust: ex-height 0.53;
}
@media screen and (min-width: 768px) {
  .sticky {
    position: sticky;
    top: 170px;
    z-index: 10;
    align-self: flex-start;
  }
}
:root :where(.is-layout-flow) > *,
:root :where(.is-layout-constrained) > * {
  margin-block-start: var(--wp--preset--spacing--60);
}
button {
  font-family: var(--wp--preset--font-family--harmonia);
}
.entry-content {
  float: none;
}
.entry-content img {
  margin: 0;
  max-width: 100%;
  height: auto;
}
@supports (selector(html:has(body))) {
  .entry-content:not(.no-dropcap):has(p + p) {
    text-align: left;
  }
}
.partner-logo img {
  aspect-ratio: 3 / 2;
  object-fit: contain !important;
  max-height: 180px;
}
.partner-logo__large img {
  max-height: 260px;
  border-radius: 0.5rem;
}
.partner-logo--profile {
  background-color: white;
  padding: 2rem;
  border-radius: 0.75rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

/* we only want to apply these styles to the first paragraph that has a sibling */
.entry-content:not(.no-dropcap):has(p:first-child ~ *) > p:first-child {
  background-color: rgba(255, 255, 255, 0.6);
  padding: var(--wp--preset--spacing--40);
  border-radius: 0.75rem;
  margin: 0 -1rem;
  color: var(--wp--preset--color--foreground);
  border: 3px solid white;
}

.entry-content:not(.no-dropcap):has(p:first-child ~ *)
  > p:first-child:first-letter,
.award-single-content:has(p:first-child ~ *) > p:first-child:first-letter {
  /* color: var(--wp--preset--color--primary); */
  float: left;
  font-size: 70px;
  line-height: 56px;
  padding-top: 10px;
  padding-right: 5px;
  padding-left: 3px;
  font-weight: 900;
}
.entry-content h3 + p {
  margin-block-start: var(--wp--preset--spacing--60) !important;
}
.entry-content p > mark {
  padding: 0.25rem 0.5rem;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.1rem;
  border-radius: 3px;
  line-height: 1.6;
}
/* .entry-content h3 + p:first-child {
  margin-block-start: 0 !important;
} */

.sidebar-box {
  margin: var(--wp--preset--spacing--60) 0;
  padding: var(--wp--preset--spacing--40);
  background: rgba(255, 255, 255, 0.6);
  border-radius: 0.75rem;
  border: 3px solid white;
  overflow: hidden; /* Contain floated elements */
}
.sidebar-box:first-of-type {
  margin-top: 0;
}
.sidebar-box:last-of-type {
  margin-bottom: 0;
}
.sidebar-box h3,
.related-section-wrapper h3 {
  font-size: var(--wp--preset--font-size--medium);
  margin: 0 0 var(--wp--preset--spacing--30) 0;
  line-height: 1.2;
  letter-spacing: -0.1rem;
  color: var(--wp--preset--color--quaternary);
}
.sidebar-box h4,
.related-section-wrapper h4 {
  font-size: var(--wp--preset--font-size--base);
  margin: var(--wp--preset--spacing--30) 0;
}
.sidebar-box p:empty {
  display: none;
}

/* don't show a space for an empty excerpt in a hero */
.hero-excerpt {
  margin-top: 0;
}
.wp-block-post-excerpt__excerpt:not(:empty),
.wp-block-post-excerpt__excerpt:not(:blank) {
  margin-top: var(--wp--preset--spacing--40);
}

.case-study-image {
  display: block;
  overflow: hidden;
  line-height: 1;
}
.case-study-image img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 0.3rem;
}
.case-study-content {
  font-size: var(--wp--preset--font-size--small);
}
.case-study hr {
  margin: var(--wp--preset--spacing--50) 0;
  height: 3px;
  background-color: var(--wp--preset--color--primary-tint);
  border: none;
  border-radius: 2px;
}
.featured-card-image img {
  margin: 0;
}
.wp-block-embed,
.wp-block-image {
  margin-top: var(--wp--preset--spacing--40);
  margin-bottom: var(--wp--preset--spacing--40);
  border-radius: 0.75rem;
  overflow: hidden;
}

/* Custom button styles */
.wp-block-button__link {
  transition: all 0.3s ease;
}

.wp-block-button__link:hover {
  opacity: 0.95;
}
.wp-block-list {
  list-style-type: none;
  padding: 0;
}
ul.wp-block-list li {
  position: relative; /* Positioning for the pseudo-element */
  padding-left: 2rem; /* Space for the dash */
  margin-bottom: var(--wp--preset--spacing--40);
}

ul.wp-block-list li::before {
  content: "—"; /* Use an em dash */
  color: var(--wp--preset--color--primary); /* Set the color to orange */
  position: absolute; /* Position it absolutely */
  left: 0; /* Align it to the left */
}

/* Button variations */
.is-style-rounded .wp-block-button__link {
  border-radius: 50px; /* Fallback in case CSS variables aren'
    t available * /;
}

.is-style-subtle-radius .wp-block-button__link {
  border-radius: 8px; /* Fallback in case CSS variables aren't available */
}

.is-style-thick-border .wp-block-button__link {
  border-width: 4px; /* Fallback in case CSS variables aren't available */
}

/* Compact button style - WordPress doesn't auto-generate this from theme.json */
.is-style-compact .wp-block-button__link {
  padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40) !important;
  font-size: var(--wp--preset--font-size--small) !important;
  line-height: 1.1 !important;
}

/* Outline button style hover effect */
.is-style-outline .wp-block-button__link:hover {
  background-color: rgba(0, 0, 0, 0.05);
}

/* Accessibility improvements */
a:focus,
.wp-block-button__link:focus {
  outline: 1px dashed var(--wp--preset--color--primary);
  outline-offset: calc(var(--wp--preset--font-size--small) * -0.15);
}
.featured-card-image > a:focus {
  outline: 3px solid var(--wp--preset--color--primary);
  outline-offset: -0.75rem;
}

/* Configurable Accordion Styles */
/* Base accordion styling with CSS variable support */
.wp-block-details {
  --accordion-title-color: inherit;
  --accordion-text-color: inherit;
  --accordion-background-color: transparent;
  --accordion-border-color: #ccc;
}

/* Custom CSS for summary elements */
.wp-block-details summary {
  color: var(--accordion-title-color);
  transition: all 0.3s ease;
  cursor: pointer;
}

/* Custom CSS for paragraph elements inside details */
.wp-block-details p {
  color: var(--accordion-text-color);
}

/* Group-based accordion styling */
.is-accordion-primary details,
.wp-block-group.is-accordion-primary .wp-block-details {
  background-color: var(--wp--preset--color--primary);
  border-color: var(--wp--preset--color--primary);
}

.is-accordion-primary details summary,
.is-accordion-primary details p,
.wp-block-group.is-accordion-primary .wp-block-details summary,
.wp-block-group.is-accordion-primary .wp-block-details p {
  color: var(--wp--preset--color--background);
}

.is-accordion-secondary details,
.wp-block-group.is-accordion-secondary .wp-block-details {
  background-color: var(--wp--preset--color--secondary);
  border-color: var(--wp--preset--color--secondary);
}

.is-accordion-secondary details summary,
.is-accordion-secondary details p,
.wp-block-group.is-accordion-secondary .wp-block-details summary,
.wp-block-group.is-accordion-secondary .wp-block-details p {
  color: var(--wp--preset--color--background);
}

.is-accordion-tertiary details,
.wp-block-group.is-accordion-tertiary .wp-block-details {
  background-color: var(--wp--preset--color--primary-tint);
  border-color: rgba(0, 0, 0, 0.1);
  color: var(--wp--preset--color--off-black);
}

/* Block style variations (for backward compatibility) */
.wp-block-details.is-style-primary {
  background-color: var(--wp--preset--color--primary);
  border-color: var(--wp--preset--color--primary);
}

.wp-block-details.is-style-primary summary,
.wp-block-details.is-style-primary p {
  color: var(--wp--preset--color--background);
}

.wp-block-details.is-style-secondary {
  background-color: var(--wp--preset--color--secondary);
  border-color: var(--wp--preset--color--secondary);
}

.wp-block-details.is-style-secondary summary,
.wp-block-details.is-style-secondary p {
  color: var(--wp--preset--color--background);
}

.wp-block-details.is-style-tertiary {
  background-color: var(--wp--preset--color--primary-tint);
  border-color: rgba(0, 0, 0, 0.1);
  color: var(--wp--preset--color--off-black);
}

/* Improved accordion interactivity */
.wp-block-details summary:hover {
  opacity: 0.9;
}

.wp-block-details[open] summary {
  font-weight: 500;
}

/* Adding transition for smooth open/close animation */
.wp-block-details > *:not(summary) {
  transition: max-height 0.3s ease-out;
}

/* FAQ specific styling */
.faq-accordion .wp-block-details,
.wp-block-details.is-style-faq-item {
  position: relative;
  border: 1px solid var(--wp--preset--color--primary-tint, #d4f2ff);
  border-radius: 4px;
  margin-bottom: 0.75rem;
}

.faq-accordion .wp-block-details summary,
.wp-block-details.is-style-faq-item summary {
  cursor: pointer;
  font-weight: 500;
  padding: 1rem;
  list-style-position: outside;
  list-style-type: none;
}

/* Custom arrow for FAQ items */
.faq-accordion .wp-block-details summary::before,
.wp-block-details.is-style-faq-item summary::before {
  content: "▶";
  display: inline-block;
  width: 1em;
  font-size: 0.75em;
  margin-right: 0.5em;
  transition: transform 0.2s;
}

.faq-accordion .wp-block-details[open] summary::before,
.wp-block-details.is-style-faq-item[open] summary::before {
  transform: rotate(90deg);
}

/* Remove the default arrow */
.faq-accordion .wp-block-details summary::-webkit-details-marker,
.wp-block-details.is-style-faq-item summary::-webkit-details-marker {
  display: none;
}

/* Content styling */
.faq-accordion .wp-block-details > *:not(summary),
.wp-block-details.is-style-faq-item > *:not(summary) {
  padding: 0 1rem 1rem;
  margin-top: 0;
}

/* Placeholder for portfolio grid featured images */
.wp-block-post-featured-image:empty {
  background-image: url("https://placehold.co/800x600/d4f2ff/333333");
  background-size: cover;
  background-position: center;
  height: 280px;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}

/* Ensure slide items have full height for equal-height slides */
.slide-item,
.wp-block-group.slide-item,
.splide__slide .slide-item,
.horizontal-slider .splide__slide .slide-item {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Custom styles for the Link List block */
.wh-link-list-block {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5em 0;
}
.wh-link-list-block li {
  margin: 0;
  padding: 0;
}
.wh-link-list-block a {
  display: block;
  text-decoration: none;
  padding: 1rem;
  border-top: 1px solid rgba(0, 0, 0, 0.5);
  transition: all 0.3s ease;
}
.wh-link-list-block a:hover {
  padding-left: 2rem;
}

/* Ensure .wp-block-buttons always has a minimum gap between buttons */
.wp-block-buttons {
  gap: min(0.75rem, var(--wp--preset--spacing--30, 0.75rem));
}

@media (min-width: 1024px) {
  .has-desktop-horizontal-padding {
    padding-left: var(--wp--preset--spacing--80, 4rem) !important;
    padding-right: var(--wp--preset--spacing--80, 4rem) !important;
  }
}

/* Editor Typography Styles */
.editor-styles-wrapper {
  /* Base font size */
  font-size: var(--wp--preset--font-size--base);
}
.team-member,
.editor-styles-wrapper .team-member {
  cursor: pointer;
  transition: all 0.3s ease;
}
.team-member figure img,
.editor-styles-wrapper .team-member figure img {
  transition: all 0.3s ease;
}
.team-member:hover figure img {
  transform: scale(1.025);
}
.staff-pic {
  filter: grayscale(1);
  transition: filter 0.3s ease-out;
}
.staff-pic:hover {
  filter: grayscale(0);
}

.wp-block-cloudcatch-light-modal-block,
.editor-styles-wrapper .wp-block-cloudcatch-light-modal-block {
  max-width: 56rem !important;
}
.wp-block-cloudcatch-light-modal-block__content {
  overflow-x: hidden;
}
/* .lmb-open {
  overflow: hidden;
} */
@media (max-width: 768px) {
  .wp-block-cloudcatch-light-modal-block,
  .editor-styles-wrapper .wp-block-cloudcatch-light-modal-block {
    max-width: 95% !important;
    overflow-y: auto !important;
  }
  .wp-block-cloudcatch-light-modal-block .modal-member-photo {
    display: none;
  }
}

/* balance out headings */
h1,
.editor-styles-wrapper h1,
h2,
.editor-styles-wrapper h2,
h3,
.editor-styles-wrapper h3,
h4,
.editor-styles-wrapper h4,
h5,
.editor-styles-wrapper h5,
h6,
.editor-styles-wrapper h6,
.balance {
  text-wrap: balance;
}
.has-h-1-font-size,
.has-hero-font-size {
  letter-spacing: -0.1rem;
}
.has-h-2-font-size {
  letter-spacing: -0.1rem;
}
.has-h-3-font-size {
  letter-spacing: -0.075rem;
}
.has-h-4-font-size {
  letter-spacing: -0.05rem;
}

/* Responsive adjustments for xxx-large font size */
/* Make xxx-large text smaller on mobile devices (under 480px) */
@media (max-width: 479px) {
  .has-xxx-large-font-size,
  .editor-styles-wrapper .has-xxx-large-font-size {
    font-size: 2.5rem !important;
    letter-spacing: -0.1rem !important;
  }
  .wp-block-heading.has-h-1-font-size {
    font-size: 3rem !important;
  }
}

/* Make xxx-large text larger on big viewports (over 1200px) */
@media (min-width: 1200px) {
  .has-xxx-large-font-size,
  .editor-styles-wrapper .has-xxx-large-font-size {
    font-size: clamp(3.8rem, 1.2cqi + 3.5rem, 7.5rem) !important;
  }
}

/* Override WordPress core padding for blocks with backgrounds */
/* This removes the automatic padding that WordPress adds to blocks with background colors */

/* Remove WordPress's automatic padding but allow custom padding to work */
.wp-block-group.has-background:not([style*="padding"]) {
  padding: 0;
}

.wp-block-template-part.has-background:not([style*="padding"]) {
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}

/* Remove automatic padding from other blocks but allow custom padding */
.wp-block.has-background:not([style*="padding"]) {
  padding: 0;
}

.wp-block-columns.has-background:not([style*="padding"]) {
  padding: 0;
}

.wp-block-column.has-background:not([style*="padding"]) {
  padding: 0;
}

.wp-block-cover.has-background:not([style*="padding"]) {
  padding: 0;
}

/* Alternative approach: Use CSS custom properties to override WordPress's values */
.wp-block-group.has-background {
  --wp--custom--spacing--padding: 0;
}

.wp-block-template-part.has-background {
  --wp--custom--spacing--padding: 0;
  margin-bottom: 0;
  margin-top: 0;
}

/* If you need specific padding for certain blocks, add it explicitly */
/* Example: If you want padding on specific group blocks, target them specifically */
.wp-block-group.has-background.needs-padding {
  padding: var(--wp--preset--spacing--40);
}

/*make block columns stackable on tablets */
@media (min-width: 440px and max-width: 768px) {
  .wp-block-columns.tablet-stack {
    flex-direction: column;
  }
}

/* collapsible filter container for mobile */
.mobile-toggle-btn {
  display: none !important;
}
.mobile-toggle-content {
  transition: all 0.3s ease;
}

@media (max-width: 768px) {
  .mobile-toggle-btn {
    display: block !important;
  }

  .mobile-toggle-content {
    max-height: 0;
    overflow: hidden;
  }

  .mobile-toggle-content.show {
    max-height: 2000px;
  }
}
.archive-category-filter .search-filter-input-group {
  max-height: 15ch;
  overflow-y: auto;
  border: 1px solid #ccc;
  padding: var(--wp--preset--spacing--20);
  border-radius: 0.25rem;
}
.search-filter-input-checkbox__count {
  white-space: nowrap;
}

p:has(.post-type-name) {
  display: contents; /* Makes the p tag "disappear" while keeping its content */
}
.post-type-name {
  text-transform: uppercase;
  font-size: var(--wp--preset--font-size--small);
}

/* map header */
.hero-content {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-content: start;
  width: 100%;
  text-align: left;
}
.hero-content h1,
.hero-content p {
  width: 100%;
}
