/* KairoCloud page-builder elements. Themes style on top of this. */
.kc-el { position: relative; min-width: 0; }
.kc-el > :first-child { margin-top: 0; }
.kc-el > :last-child { margin-bottom: 0; }

/* Containers (flexbox, like Elementor's) */
.kc-con { display: flex; flex-direction: column; padding: 10px; background-size: cover; background-position: center; }
.kc-con__inner { display: flex; flex-direction: column; gap: 20px; width: 100%; margin: 0 auto; }
.kc-con--boxed > .kc-con__inner { max-width: var(--kc-boxed-width, 1140px); }
.kc-con .kc-con--boxed > .kc-con__inner { max-width: none; }
.kc-con--row > .kc-con__inner { flex-direction: row; }
.kc-con--row > .kc-con__inner > .kc-el { flex: 1 1 0; }
@media (max-width: 767px) {
  .kc-con--row > .kc-con__inner { flex-direction: column; }
}

/* Widgets */
.kc-heading { margin: 0; line-height: 1.2; }
.kc-heading a { color: inherit; text-decoration: none; }
.kc-text > :first-child { margin-top: 0; }
.kc-text > :last-child { margin-bottom: 0; }
.kc-image { margin: 0; }
.kc-image img { max-width: 100%; height: auto; display: inline-block; vertical-align: middle; }
.kc-image figcaption { margin-top: 8px; font-size: .9em; color: #777; text-align: center; }
.kc-btn { display: inline-block; border: 0; cursor: pointer; text-decoration: none; text-align: center; line-height: 1; font: inherit; font-weight: 500;
  background-color: var(--kc-btn-bg, #5070e1); color: var(--kc-btn-color, #fff); border-radius: 3px; transition: filter .2s; }
.kc-btn:hover { filter: brightness(.92); color: var(--kc-btn-color, #fff); }
.kc-btn--xs { font-size: 13px; padding: 10px 20px; }
.kc-btn--sm { font-size: 15px; padding: 12px 24px; }
.kc-btn--md { font-size: 16px; padding: 15px 30px; }
.kc-btn--lg { font-size: 18px; padding: 20px 40px; }
.kc-btn--xl { font-size: 20px; padding: 25px 50px; }
.kc-button-wrap[style*="justify"] .kc-btn { width: 100%; }
.kc-divider { display: flex; }
.kc-divider span { display: block; margin: 0 auto; }
.kc-video { position: relative; width: 100%; background: #000; }
.kc-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.kc-gallery { display: grid; }
.kc-gallery img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.kc-accordion__item { border: 1px solid #e5e5e5; margin-bottom: -1px; background: #f1f1f1; }
.kc-accordion__item summary { cursor: pointer; padding: 15px 20px; font-weight: 600; color: var(--kc-acc-title, #5070e1); list-style: none; display: flex; justify-content: space-between; gap: 10px; }
.kc-accordion__item summary::-webkit-details-marker { display: none; }
.kc-accordion__item summary::after { content: "+"; font-size: 1.2em; line-height: 1; }
.kc-accordion__item[open] summary { background: var(--kc-acc-active, #5070e1); color: #fff; }
.kc-accordion__item[open] summary::after { content: "−"; }
.kc-accordion__body { padding: 15px 20px; background: #fff; }
.kc-testimonial { margin: 0; text-align: center; display: flex; flex-direction: column; }
.kc-testimonial__content { flex: 1; }
.kc-testimonial__content { position: relative; margin: 0 0 20px; padding: 25px 25px 27px; background: #f7f7f7; border-radius: 5px; color: #444; }
.kc-testimonial__content::before { content: "\201D"; display: block; font: 700 60px/0.7 Georgia, serif; color: #c1c1c1; margin: 8px 0 6px; }
.kc-testimonial__content::after { content: ""; position: absolute; left: 50%; bottom: -10px; margin-left: -10px; border: 10px solid transparent; border-bottom: 0; border-top-color: #f7f7f7; }
.kc-testimonial__meta { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.kc-testimonial__meta img { width: 65px; height: 65px; object-fit: cover; border-radius: 50%; margin-bottom: 5px; }
.kc-testimonial__name { color: #222; font-weight: 500; }
.kc-testimonial__job { color: #b7b7b7; font-size: .85em; }
.kc-placeholder { display: grid; place-items: center; min-height: 120px; background: #f1f1f1; border: 1px dashed #c3c4c7; color: #777; font: 14px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; text-align: center; padding: 20px; }

/* Responsive visibility (Advanced tab) */
@media (min-width: 1025px) { .kc-hide-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .kc-hide-tablet { display: none !important; } }
@media (max-width: 767px) { .kc-hide-mobile { display: none !important; } }
