/* ==================================================================
   Site-wide polish: blog grid, testimonials, contact forms
================================================================== */
:root {
    --ss-ink: #111;
    --ss-text: #333;
    --ss-muted: #6b6b6b;
    --ss-line: #e6e6e6;
    --ss-blue: #2a74ed;
}

/* ------------------------------------------------------------------
   Blog listing: a real grid with equal-height cards (overrides the
   theme's masonry/isotope inline positioning).
------------------------------------------------------------------ */
.et_blog-ajax.row {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 36px 30px;
    height: auto !important;
    margin: 0;
}
.et_blog-ajax.row::before,
.et_blog-ajax.row::after { display: none; }
.et_blog-ajax article.blog-post.post-grid {
    position: static !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    height: 100%;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--ss-line);
    transition: box-shadow .2s ease, transform .2s ease;
}
.et_blog-ajax article.blog-post.post-grid:hover { box-shadow: 0 14px 34px rgba(17, 17, 17, .10); transform: translateY(-2px); }
.et_blog-ajax article.blog-post .wp-picture { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; }
.et_blog-ajax article.blog-post .wp-picture a { display: block; height: 100%; }
.et_blog-ajax article.blog-post .wp-picture img { width: 100%; height: 100%; object-fit: cover; display: block; }
.et_blog-ajax article.blog-post .post-categories { position: absolute; top: 14px; left: 14px; z-index: 2; }
.et_blog-ajax article.blog-post .post-categories a {
    display: inline-block;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    color: var(--ss-ink);
    font-family: "DM Sans", sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.et_blog-ajax article.blog-post .grid-post-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 20px 22px 22px;
}
.et_blog-ajax article.blog-post .post-heading h2 {
    font-family: "Jost", sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(2 * 1.25em);
}
.et_blog-ajax article.blog-post .post-heading h2 a { color: var(--ss-ink); }
.et_blog-ajax article.blog-post .meta-post { font-family: "DM Sans", sans-serif; font-size: 12px; color: var(--ss-muted); margin-bottom: 12px; }
.et_blog-ajax article.blog-post .content-article {
    font-family: "DM Sans", sans-serif;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--ss-text);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 16px;
}
.et_blog-ajax article.blog-post .content-article p { margin: 0; }
.et_blog-ajax article.blog-post .post-footer,
.et_blog-ajax article.blog-post .grid-post-body > *:last-child { margin-top: auto; }
.et_blog-ajax article.blog-post .btn-read-more.style-custom,
.et_blog-ajax article.blog-post .grid-post-body .btn { font-family: "DM Sans", sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }

@media (max-width: 991px) { .et_blog-ajax.row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 22px; } }
@media (max-width: 599px) { .et_blog-ajax.row { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------
   Testimonials over photo backgrounds (XStore testimonials widget):
   dim the photo, put each quote on a card, no half-visible next slide.
------------------------------------------------------------------ */
.elementor-section:has(> .elementor-container .etheme-testimonials),
.e-con:has(.etheme-testimonials) { position: relative; isolation: isolate; }
.elementor-section:has(> .elementor-container .etheme-testimonials)::before,
.e-con:has(.etheme-testimonials)::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10, 10, 10, .55), rgba(10, 10, 10, .7));
    z-index: 0;
    pointer-events: none;
}
.elementor-section:has(> .elementor-container .etheme-testimonials) > .elementor-container,
.e-con:has(.etheme-testimonials) > * { position: relative; z-index: 1; }

.etheme-testimonials .swiper,
.etheme-testimonials.swiper-entry { overflow: hidden !important; }
.etheme-testimonials .testimonial.style-1 {
    max-width: 820px;
    margin: 0 auto;
    padding: 36px 40px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .10);
    border: 1px solid rgba(255, 255, 255, .18);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    text-align: center;
}
.etheme-testimonials .testimonial.style-1,
.etheme-testimonials .testimonial.style-1 p,
.etheme-testimonials .testimonial.style-1 .testimonial-content,
.etheme-testimonials .testimonial.style-1 .testimonial-text {
    color: #fff !important;
    font-family: "DM Sans", sans-serif;
    font-style: normal !important;
    font-size: 16px;
    line-height: 1.65;
}
.etheme-testimonials .testimonial.style-1 .testimonial-name,
.etheme-testimonials .testimonial.style-1 .name,
.etheme-testimonials .testimonial.style-1 h4,
.etheme-testimonials .testimonial.style-1 h5 {
    color: #fff !important;
    font-family: "DM Sans", sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-top: 18px;
}
.etheme-testimonials .testimonial.style-1 .star-rating,
.etheme-testimonials .testimonial.style-1 .testimonial-rating { margin: 0 auto 16px; color: #f5b301; }
.etheme-testimonials .swiper-pagination-bullet { background: #fff; opacity: .45; }
.etheme-testimonials .swiper-pagination-bullet-active { opacity: 1; }
.etheme-testimonials .swiper-button-prev,
.etheme-testimonials .swiper-button-next { color: #fff; }
@media (max-width: 767px) {
    .etheme-testimonials .testimonial.style-1 { padding: 24px 20px; font-size: 15px; }
}

/* ------------------------------------------------------------------
   Contact Form 7 (all forms): bordered, rounded inputs and a real button
------------------------------------------------------------------ */
.wpcf7 form { font-family: "DM Sans", sans-serif; }
.wpcf7 form label,
.wpcf7 form .wpcf7-form-control-wrap { display: block; width: 100%; }
.wpcf7 form label { font-size: 13px; font-weight: 600; letter-spacing: .02em; color: var(--ss-text); margin-bottom: 6px; }
.wpcf7 form p { margin-bottom: 18px; }
.wpcf7 form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):not(.wpcf7-acceptance):not(.wpcf7-file) {
    width: 100%;
    height: 50px;
    padding: 0 16px;
    border: 1px solid #cfcfcf !important;
    border-radius: 8px;
    background: #fff !important;
    color: var(--ss-text);
    font-size: 16px;
    line-height: 48px;
    box-shadow: none !important;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.wpcf7 form .wpcf7-textarea { height: auto !important; min-height: 150px; padding: 12px 16px !important; line-height: 1.5 !important; resize: vertical; }
.wpcf7 form .wpcf7-select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23666' stroke-width='2'><path d='M5 8l5 5 5-5'/></svg>") !important; background-repeat: no-repeat !important; background-position: right 14px center !important; background-size: 14px !important; padding-right: 40px; }
.wpcf7 form .wpcf7-form-control:focus { outline: none; border-color: var(--ss-blue) !important; box-shadow: 0 0 0 3px rgba(42, 116, 237, .15) !important; }
.wpcf7 form ::placeholder { color: #9a9a9a; }
.wpcf7 form .wpcf7-not-valid { border-color: #c72a2a !important; }
.wpcf7 form .wpcf7-not-valid-tip { font-size: 12px; color: #c72a2a; margin-top: 4px; }
.wpcf7 form .wpcf7-submit {
    display: inline-block;
    min-width: 220px;
    padding: 16px 34px;
    border: 0;
    border-radius: 10px;
    background: var(--ss-ink);
    color: #fff;
    font-family: "DM Sans", sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s ease;
}
.wpcf7 form .wpcf7-submit:hover { background: var(--ss-blue); }
.wpcf7 form .wpcf7-spinner { margin-left: 12px; }
.wpcf7 form .wpcf7-response-output { margin: 18px 0 0; padding: 12px 16px; border-radius: 8px; border: 1px solid var(--ss-line); font-size: 14px; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #2e9e5b; background: #eef8f1; color: #1f6e3f; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output { border-color: #c72a2a; background: #fdf1f1; color: #8a1f1f; }

/* Elementor CF7 widget: give the form a card and center its heading */
.elementor-widget-et-contact-form-7 .wpcf7 {
    max-width: 860px;
    margin: 0 auto;
    padding: 34px 36px 30px;
    border: 1px solid var(--ss-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(17, 17, 17, .06);
}
.elementor-widget-et-contact-form-7 .wpcf7 .wpcf7-submit { display: block; margin: 6px auto 0; }
@media (max-width: 767px) {
    .elementor-widget-et-contact-form-7 .wpcf7 { padding: 22px 18px; }
    .wpcf7 form .wpcf7-submit { width: 100%; }
}

/* XStore testimonial inner markup (.content-wrapper > .inner-content > .content / author) */
.etheme-testimonials .testimonial.style-1 .inner-content .content,
.etheme-testimonials .testimonial.style-1 .inner-content .content p { color: #fff !important; font-style: normal !important; font-size: 16px; line-height: 1.65; }
.etheme-testimonials .testimonial.style-1 .inner-content .content p:last-child { margin-bottom: 0; }
.etheme-testimonials .testimonial.style-1 .author,
.etheme-testimonials .testimonial.style-1 .author-name,
.etheme-testimonials .testimonial.style-1 .testimonial-author,
.etheme-testimonials .testimonial.style-1 .author * { color: #fff !important; font-family: "DM Sans", sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-style: normal !important; }
.etheme-testimonials .testimonial.style-1 .author { margin-top: 18px; }
.etheme-testimonials .testimonial.style-1 .star-rating-wrapper { display: block; margin: 0 auto 16px; }
.etheme-testimonials .testimonial.style-1 .star-rating { margin: 0 auto; }

/* Footer newsletter form keeps its own compact look (not the contact-form card) */
.elementor-location-footer .wpcf7,
.elementor-14687 .wpcf7 { max-width: none; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.elementor-location-footer .wpcf7 form p,
.elementor-14687 .wpcf7 form p { margin: 0; }
.elementor-location-footer .wpcf7 form .wpcf7-form-control:not(.wpcf7-submit),
.elementor-14687 .wpcf7 form .wpcf7-form-control:not(.wpcf7-submit) {
    height: 46px;
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, .45) !important;
    color: #fff;
    font-size: 14px;
    line-height: 44px;
}
.elementor-location-footer .wpcf7 form ::placeholder,
.elementor-14687 .wpcf7 form ::placeholder { color: rgba(255, 255, 255, .6); }
.elementor-location-footer .wpcf7 form .wpcf7-form-control:focus,
.elementor-14687 .wpcf7 form .wpcf7-form-control:focus { border-color: #fff !important; box-shadow: none !important; }
.elementor-location-footer .wpcf7 form .wpcf7-submit,
.elementor-14687 .wpcf7 form .wpcf7-submit { min-width: 0; margin: 0; padding: 0; }
