/* Only explicitly marked Bento sections receive the finish. */
.elementor .pl-section {
  background-image: url('paper-grain.svg'), radial-gradient(ellipse at 10% 20%, rgba(181,157,111,.045), transparent 65%);
  background-repeat: repeat, no-repeat;
}
.elementor .pl-section.pl-separated::after {
  content: ''; position: absolute; top: 0; left: max(24px, calc((100% - 1232px)/2));
  right: max(24px, calc((100% - 1232px)/2)); height: 1px; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(112,126,96,.22) 18%, rgba(112,126,96,.22) 82%, transparent);
}
.elementor .pl-section .elementor-widget-button .elementor-button {
  transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease;
}
.elementor .pl-section .elementor-widget-button .elementor-button:hover {
  transform: translateY(-2px); box-shadow: 0 6px 18px rgba(22,63,52,.13);
}
/* The two sides share one height, with equal tiles in the right column. */
.elementor .pl-mosaic {
  display: grid !important; grid-template-columns: minmax(0,1.44fr) minmax(0,1fr);
  grid-template-rows: minmax(0,1fr);
  gap: 22px; height: 590px; align-items: stretch;
}
.elementor .pl-mosaic > .e-con { width: 100%; min-width: 0; min-height: 0; height: 100%; }
.elementor .pl-mosaic-main > .elementor-widget-image,
.elementor .pl-mosaic-side > .e-con:first-child > .elementor-widget-image { height: 100%; width: 100%; }
.elementor .pl-mosaic .elementor-widget-image .elementor-widget-container { height: 100%; }
.elementor .pl-mosaic .elementor-widget-image figure { height: 100%; display: flex; flex-direction: column; margin: 0; }
.elementor .pl-mosaic .elementor-widget-image img { display: block; width: 100%; height: 100% !important; min-height: 0; object-fit: cover; }
.elementor .pl-mosaic .elementor-widget-image figure img { flex: 1; }
.elementor .pl-mosaic .elementor-widget-image figcaption { flex: 0 0 auto; padding-top: 8px; }
.elementor .pl-mosaic-side { display: grid !important; grid-template-rows: minmax(0,1fr) minmax(0,1fr); gap: 22px; }
.elementor .pl-mosaic-side > .e-con { width: 100%; min-height: 0; }
.elementor .pl-mosaic-quote { justify-content: center; background-image: url('paper-grain.svg'); box-shadow: 0 12px 28px rgba(22,63,52,.10); }
/* Keep Elementor's native accordion and make its affordances explicit. */
.elementor .pl-faq .elementor-accordion { display: grid; gap: 12px; }
.elementor .pl-faq .elementor-accordion-item { border: 1px solid rgba(22,63,52,.13) !important; border-radius: 16px; overflow: hidden; background: rgba(255,255,255,.7); box-shadow: 0 3px 12px rgba(22,63,52,.025); }
.elementor .pl-faq .elementor-tab-title { padding: 23px 26px !important; background: transparent !important; display: flex; align-items: center; gap: 20px; line-height: 1.45; transition: background-color .25s ease; }
.elementor .pl-faq .elementor-tab-title:hover,
.elementor .pl-faq .elementor-tab-title.elementor-active { background: rgba(22,63,52,.055) !important; }
.elementor .pl-faq .elementor-tab-title:focus-visible { outline: 2px solid #72855b; outline-offset: -4px; }
.elementor .pl-faq .elementor-accordion-title { flex: 1; order: 0; }
.elementor .pl-faq .elementor-accordion-icon { order: 1; margin-left: auto; float: none !important; flex: 0 0 32px; width: 32px !important; height: 32px; border-radius: 50%; background: rgba(22,63,52,.07); display: grid; place-items: center; font-size: 13px; }
.elementor .pl-faq .elementor-accordion-icon svg { width: 13px; height: 13px; }
.elementor .pl-faq .elementor-tab-content { background: transparent !important; border-top: 0 !important; padding: 0 26px 26px !important; line-height: 1.7; }
.elementor .pl-faq .elementor-tab-content p:last-child { margin-bottom: 0; }
@media (prefers-reduced-motion: no-preference) {
  .elementor .pl-revealed > .e-con-inner { animation: pl-arrive .7s cubic-bezier(.22,.61,.36,1) both; }
  @keyframes pl-arrive { from { opacity: .25; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
}
@media (max-width: 1024px) and (min-width: 768px) {
  .elementor .pl-mosaic { height: 540px; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); }
  .elementor .pl-mosaic-quote { padding: 24px; gap: 16px; }
  .elementor .pl-mosaic-quote .elementor-heading-title { font-size: 29px; }
}
@media (max-width: 767px) {
  .elementor .pl-mosaic { grid-template-columns: minmax(0,1fr); grid-template-rows: none; height: auto; gap: 18px; }
  .elementor .pl-mosaic > .pl-mosaic-main { height: 360px; }
  .elementor .pl-mosaic-side { grid-template-rows: 240px auto; gap: 18px; height: auto; }
  .elementor .pl-mosaic-quote { min-height: 210px; }
  .elementor .pl-faq .elementor-tab-title { padding: 20px !important; gap: 12px; font-size: 18px; }
  .elementor .pl-faq .elementor-tab-content { padding: 0 20px 22px !important; }
  .elementor .pl-section.pl-separated::after { left: 20px; right: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor .pl-section *, .elementor .pl-section *::before, .elementor .pl-section *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
