/* Scoped Sprint 1 components; no global slider or Elementor overrides. */
.et-carousel {
  --et-gap: 1.5rem;
  --et-columns: 3;
  inline-size: 100%;
  min-inline-size: 0;
  padding-block: 1.5rem;
}
.et-carousel__header { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-block-end: 1.5rem; }
.et-carousel__header h2 { margin: 0; font-size: clamp(1.5rem, 2.5vw, 2.3rem); line-height: 1.25; }
.et-carousel__controls { display: flex; flex-shrink: 0; gap: .5rem; }
.et-carousel__controls[hidden] { display: none; }
.et-carousel .et-carousel__button { padding: 0; inline-size: 2.75rem; block-size: 2.75rem; border: 1px solid #880808; border-radius: 50%; background: #fff; color: #880808; font: inherit; font-size: 1.5rem; cursor: pointer; }
.et-carousel .et-carousel__button:hover:enabled { background: #880808; color: #fff; }
.et-carousel .et-carousel__button:disabled { opacity: .35; cursor: default; }
.et-carousel :focus-visible, .et-profession-list a:focus-visible, .et-camp-page :focus-visible { outline: 3px solid #bb3030; outline-offset: 3px; }
.et-carousel__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--et-columns) - 1) * var(--et-gap)) / var(--et-columns)); gap: var(--et-gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 0; padding-block: .3rem 1rem; scrollbar-width: thin; }
.et-carousel__slide { min-inline-size: 0; scroll-snap-align: start; overflow-wrap: anywhere; }
.et-profession-card { block-size: 100%; background: #f7f7f7; border-radius: .5rem; overflow: hidden; }
.et-profession-card a { display: block; color: #262626; block-size: 100%; text-decoration: none; }
.et-profession-card a:hover { color: #880808; }
.et-profession-card h3 { font-size: 1.15rem; line-height: 1.45; margin: 0; padding: 1.1rem 1.25rem 1.5rem; }
.et-card__image { aspect-ratio: 4 / 3; overflow: hidden; background: #eae6e3; }
.et-card__image img, .et-card__placeholder { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.et-card__placeholder { background: linear-gradient(135deg, #e8e2dc, #f5f0eb); }
.et-profession-section > .elementor-container, .et-related-section > .elementor-container { min-inline-size: 0; }
/* Negative margins keep stretched service sections inside Firefox's scroll area. */
.content .elementor:has(> .et-related-section) > .elementor-section-stretched.elementor-fixed,
.et-camp-page .content .elementor > .elementor-section-stretched.elementor-fixed { left: 0 !important; margin-inline: calc(50% - 50vw) !important; }
.et-related-section > .elementor-container > .elementor-column { min-inline-size: 0; }
.et-related-section--with-banner > .elementor-container { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1.5rem; padding-inline: 15px; }
.et-related-section--with-banner > .elementor-container > .elementor-column { width: auto; }
.et-related-section--with-banner > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0; align-content: start; }
.et-related-section--with-banner .et-carousel { --et-columns: 2; }
.et-related-section--with-banner .et-carousel__header { flex-wrap: wrap; gap: .75rem; }
.et-related-section--with-banner .et-carousel__header h2 { flex: 1 1 12rem; }
.et-related-section--with-banner .et-related-aside { padding-block: 1.5rem; }
.et-related-section--with-banner .et-related-aside img { display: block; inline-size: 100%; block-size: auto; border-radius: .5rem; }
.et-related-section--with-banner .et-related-main .elementor-widget-trx_sc_button { margin-block: 0 1.5rem; }
.et-profession-section:not(:has(.et-profession-links)),
.et-related-section:not(:has(.et-related-articles, .sc_blogger_item, article)) { display: none; }
.et-related-articles .et-article-card { display: flex; flex-direction: column; inline-size: 100%; max-inline-size: none; margin: 0; padding: 0; opacity: 1; transform: none; }
.et-related-articles .post_featured { float: none; inline-size: 100%; max-inline-size: none; aspect-ratio: 4 / 3; margin: 0 0 1rem; overflow: hidden; border-radius: .5rem; }
.et-related-articles .post_featured img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.et-related-articles .post_featured .et-article-image-link { position: absolute; inset: 0; display: block; z-index: 2; }
.et-related-articles .post_featured .et-article-image-link:focus-visible { outline-offset: -4px; }
.et-related-articles .sc_blogger_item_body { display: flex; flex-direction: column; inline-size: 100%; padding: 0; }
.et-related-articles .sc_blogger_item_body > .post_featured { flex: none; inline-size: 100% !important; block-size: auto; padding: 0; background-size: cover; background-position: center; }
.et-related-articles .et-article-card .sc_blogger_item_body > .sc_blogger_item_content { flex: none; inline-size: 100% !important; padding: 0 !important; margin: 0; }
.et-related-articles .sc_blogger_item_content { inline-size: auto; padding: 0; margin: 0; overflow: visible; }
.et-related-articles .sc_blogger_item_title, .et-related-articles .post_title { margin-block: .5rem 1rem; font-size: 1.15rem; line-height: 1.5; }
.et-related-articles .post_meta { line-height: 1.5; }
.et-related-articles .post_meta_item { white-space: normal; }
.et-footer-professions { border-block-start: 1px solid rgb(255 255 255 / 15%); margin-block-start: 0; padding-block: 2rem; background: #252525; color: #fff; }
.et-profession-list h3 { font-size: 1.25rem; margin-block: 0 1.25rem; color: inherit; }
.et-profession-list ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem 2rem; list-style: none; padding: 0; margin: 0; }
.et-profession-list li { margin: 0; padding: 0; line-height: 1.6; }
/* Override the theme's dark-footer hover rule only for this dark link group. */
.footer_wrap .et-profession-list a,
.footer_wrap .et-profession-list a:is(:hover, :focus-visible, :active) { color: #fff; }
.et-profession-list a { text-decoration: none; overflow-wrap: anywhere; }
.et-profession-list a:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: .2em; }
.footer_wrap .et-profession-list a:focus-visible { outline-color: #fff; }
/* CAMP uses the existing WAT Elementor templates; only content-specific safeguards live here. */
.et-camp-section { scroll-margin-block-start: 7rem; }
.et-camp-section .elementor-widget-trx_sc_button { margin-block-start: 2rem; }
.et-camp-table { max-inline-size: 100%; overflow-x: auto; margin-block: 1.5rem; }
.et-camp-table table { inline-size: 100%; min-inline-size: 34rem; border-collapse: collapse; }
.et-camp-promo { font-weight: 700; margin-block: 1.5rem; }
@media (width >= 768px) {
  .et-camp-page #custom-sticky.is-sticky + .et-camp-section { margin-block-start: calc(80px + var(--et-camp-menu-height, 70px)); }
  .et-camp-page .et-camp-section { scroll-margin-block-start: max(7rem, calc(var(--et-camp-menu-height, 70px) + 1rem)); }
}
@media (768px <= width < 1024px) {
  .et-carousel { --et-columns: 2; }
  .et-related-section--with-banner > .elementor-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .et-related-section--with-banner .et-carousel { --et-columns: 1; }
  .et-profession-list ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (width < 768px) {
  .et-carousel { --et-columns: 1; --et-gap: 1rem; }
  .et-related-section--with-banner > .elementor-container { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .et-related-section--with-banner .et-carousel { --et-columns: 1; }
  .et-related-section--with-banner > .elementor-container > .et-related-aside { width: 100%; padding-block-start: 0; max-inline-size: 26rem; justify-self: center; }
  .et-carousel__header { align-items: flex-start; gap: .75rem; }
  .et-carousel__header h2 { font-size: 1.5rem; }
  .et-profession-list ul { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .et-carousel__track { scroll-behavior: auto; }
}
