/*
Theme Name:   Z Plus Limited - Astra Child
Theme URI:    https://hkzplus.com
Description:  Custom child theme for Z Plus Limited based on Astra
Author:       Z Plus Limited
Author URI:   https://hkzplus.com
Template:     astra
Version:      2.1.2
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  z-plus-limited
*/
:root {
    --zplus-primary: #1a3a5c;
    --zplus-secondary: #2980b9;
    --zplus-accent: #e67e22;
    --zplus-whatsapp: #25D366;
    --zplus-dark: #1a1a2e;
    --zplus-light: #f8f9fa;
    --zplus-text: #333333;
    --zplus-white: #ffffff;
    --zplus-border: #e0e0e0;
    --zplus-shadow: 0 4px 20px rgba(0,0,0,0.08);
    --zplus-radius: 12px;
}

/* ── Base ── */
body { font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:var(--zplus-text); line-height:1.7; }
.zplus-container { max-width:1200px; margin:0 auto; padding:0 30px; }

/* ── Header ── */
.zplus-header { background:var(--zplus-white); box-shadow:0 2px 10px rgba(0,0,0,0.06); position:sticky; top:0; z-index:9999; }
.zplus-header-inner { max-width:860px; margin:0 auto; display:flex; align-items:center; justify-content:flex-start; gap:44px; padding:12px 0; }
.zplus-logo img { height:44px; width:auto; display:block; max-width:100%; }
.zplus-logo-text { font-size:24px; font-weight:700; color:var(--zplus-primary); text-decoration:none; letter-spacing:-0.5px; }
.zplus-nav a { color:var(--zplus-text); text-decoration:none; font-weight:600; font-size:13px; text-transform:uppercase; letter-spacing:0.5px; padding:8px 14px; transition:color 0.3s; }
.zplus-nav a:hover { color:var(--zplus-secondary); }

/* Mobile Toggle */
.zplus-mobile-toggle { display:none; background:none; border:none; cursor:pointer; flex-direction:column; gap:5px; padding:8px; }
.zplus-mobile-toggle span { display:block; width:24px; height:2px; background:var(--zplus-primary); transition:0.3s; border-radius:2px; }
@media(max-width:768px) {
    .zplus-header-inner { justify-content:space-between; gap:0; padding:12px 20px; }
    .zplus-mobile-toggle { display:flex; }
    .zplus-nav { display:none; position:absolute; top:100%; left:0; right:0; background:var(--zplus-white); flex-direction:column; padding:15px; box-shadow:0 4px 15px rgba(0,0,0,0.1); }
    .zplus-nav.zplus-nav-open { display:flex; }
    .zplus-nav a { padding:12px 20px; border-bottom:1px solid var(--zplus-border); }
}

/* ── Hero Carousel ── */
.zplus-hero { position:relative; min-height:560px; width:100%; display:flex; align-items:center; justify-content:center; text-align:center; color:var(--zplus-white); overflow:hidden; }
.elementor-widget-shortcode .elementor-shortcode { width:100%; }
.home .elementor-top-section .elementor-column { width:100% !important; }
.zplus-hero-slide { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.2s ease; display:flex; align-items:center; justify-content:center; text-align:center; }
.zplus-hero-slide.active { opacity:1; z-index:1; }
.zplus-hero-overlay { position:absolute; inset:0; background:linear-gradient(rgba(255,255,255,0.55),rgba(255,255,255,0.45)); z-index:2; }
.zplus-hero-content { position:relative; z-index:10; max-width:820px; padding:40px 20px; }
.zplus-hero-content h1 { font-size:30px; font-weight:800; margin-bottom:16px; line-height:1.3; color:#111; text-shadow:none; }
.zplus-hero-content p { font-size:15px; margin-bottom:28px; opacity:0.95; line-height:1.6; color:#333; }
.zplus-hero-buttons { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
/* Hero buttons — dark outline for light overlay */
.zplus-hero-content .zplus-btn-secondary { background:transparent; color:#111; border-color:#111; }
.zplus-hero-content .zplus-btn-secondary:hover { background:#111; color:#fff; }

/* Hero Dots */
.zplus-hero-dots { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); z-index:15; display:flex; gap:10px; }
.zplus-dot { width:12px; height:12px; border-radius:50%; border:2px solid #333; background:transparent; cursor:pointer; transition:0.3s; padding:0; }
.zplus-dot.active { background:#333; }
.zplus-dot:hover { background:rgba(51,51,51,0.5); }

/* ── Buttons ── */
.zplus-btn { display:inline-block; padding:14px 36px; border-radius:6px; font-weight:700; font-size:14px; text-decoration:none; text-transform:uppercase; letter-spacing:1px; transition:all 0.3s; cursor:pointer; border:2px solid transparent; line-height:1.4; }
.zplus-btn-primary { background:var(--zplus-accent); color:var(--zplus-white); border-color:var(--zplus-accent); }
.zplus-btn-primary:hover { background:#d35400; border-color:#d35400; transform:translateY(-2px); box-shadow:0 6px 22px rgba(230,126,34,0.4); }
.zplus-btn-secondary { background:transparent; color:var(--zplus-white); border-color:var(--zplus-white); }
.zplus-btn-secondary:hover { background:var(--zplus-white); color:var(--zplus-primary); }
.zplus-btn-whatsapp { background:var(--zplus-whatsapp); color:var(--zplus-white); border-color:var(--zplus-whatsapp); }
.zplus-btn-whatsapp:hover { background:#1ebe57; border-color:#1ebe57; transform:translateY(-2px); box-shadow:0 6px 22px rgba(37,211,102,0.4); }
.zplus-btn-outline { background:transparent; color:var(--zplus-primary); border-color:var(--zplus-primary); }
.zplus-btn-outline:hover { background:var(--zplus-primary); color:var(--zplus-white); }
.zplus-btn-lg { padding:18px 48px; font-size:16px; }

/* ── Sections ── */
.zplus-section { padding:80px 30px; }
.zplus-section-title { text-align:center; font-size:32px; font-weight:800; color:var(--zplus-primary); margin-bottom:12px; text-transform:uppercase; letter-spacing:1px; }
.zplus-section-subtitle { text-align:center; font-size:17px; color:#666; margin-bottom:50px; max-width:650px; margin-left:auto; margin-right:auto; }

/* ── Why Choose (Features Grid) ── */
.zplus-why-section { background:var(--zplus-light); }
.zplus-features-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:28px; }
.zplus-feature-card { background:var(--zplus-white); border-radius:var(--zplus-radius); padding:36px 28px; text-align:center; box-shadow:var(--zplus-shadow); transition:transform 0.3s,box-shadow 0.3s; border:1px solid var(--zplus-border); }
.zplus-feature-card:hover { transform:translateY(-6px); box-shadow:0 10px 35px rgba(0,0,0,0.12); }
.zplus-feature-highlight { grid-column:1 / -1; background:linear-gradient(135deg,var(--zplus-primary),var(--zplus-secondary)); color:var(--zplus-white); border:none; }
.zplus-feature-highlight h3, .zplus-feature-highlight p { color:var(--zplus-white); }
.zplus-feature-icon { font-size:46px; margin-bottom:18px; }
.zplus-feature-card h3 { font-size:17px; font-weight:700; color:var(--zplus-primary); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:14px; }
.zplus-feature-card p { font-size:14px; color:#555; line-height:1.65; }
.zplus-note { text-align:center; font-size:13px; color:#999; margin-top:35px; font-style:italic; }
.zplus-intro-text { font-size:16px; color:#555; line-height:1.8; max-width:840px; margin:0 auto 42px; text-align:center; }
.zplus-advantages { max-width:860px; margin:0 auto; padding-left:0; list-style:none; counter-reset:zplus-adv; }
.zplus-advantages li { position:relative; padding:20px 20px 20px 64px; margin-bottom:16px; background:var(--zplus-white); border:1px solid var(--zplus-border); border-radius:var(--zplus-radius); box-shadow:var(--zplus-shadow); counter-increment:zplus-adv; font-size:15px; color:#555; line-height:1.7; text-align:left; }
.zplus-advantages li::before { content:counter(zplus-adv); position:absolute; left:16px; top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:50%; background:var(--zplus-accent); color:var(--zplus-white); font-weight:800; font-size:16px; display:flex; align-items:center; justify-content:center; }
.zplus-advantages li strong { color:var(--zplus-primary); display:block; margin-bottom:4px; font-size:16px; }

/* ── Product Categories ── */
.zplus-products-section { background:var(--zplus-white); }
.zplus-products-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(420px,1fr)); gap:40px; }
.zplus-product-cat { background:var(--zplus-white); border-radius:var(--zplus-radius); overflow:hidden; box-shadow:var(--zplus-shadow); border:1px solid var(--zplus-border); transition:transform 0.3s; }
.zplus-product-cat:hover { transform:translateY(-4px); box-shadow:0 10px 35px rgba(0,0,0,0.1); }
.zplus-product-cat-img { width:100%; height:240px; object-fit:cover; }
.zplus-product-cat-body { padding:32px; }
.zplus-product-cat-body h3 { font-size:22px; font-weight:700; color:var(--zplus-primary); margin-bottom:18px; }
.zplus-product-list { list-style:none; padding:0; margin:0 0 24px; }
.zplus-product-list li { display:flex; align-items:center; gap:12px; padding:8px 0; border-bottom:1px solid var(--zplus-border); font-size:14px; }
.zplus-product-list li:last-child { border-bottom:none; }
.zplus-product-list img { width:36px; height:36px; object-fit:cover; border-radius:6px; flex-shrink:0; }
.zplus-product-note { font-size:14px; color:var(--zplus-accent); margin-bottom:18px; line-height:1.6; }

/* ── Trust Bar ── */
.zplus-trust-bar { background:var(--zplus-dark); padding:40px 30px; text-align:center; }
.zplus-trust-text { color:rgba(255,255,255,0.85); font-size:16px; margin-bottom:20px; font-weight:500; }
.zplus-clients-row { display:flex; justify-content:center; flex-wrap:wrap; gap:16px; }
.zplus-client-badge { background:rgba(255,255,255,0.08); color:var(--zplus-white); padding:10px 24px; border-radius:30px; font-size:14px; font-weight:600; letter-spacing:0.5px; border:1px solid rgba(255,255,255,0.15); }

/* ── CTA Section (Gold) ── */
.zplus-cta-section { background:linear-gradient(135deg,#caa12b,#a87d14); padding:70px 30px; text-align:center; color:var(--zplus-white); }
.zplus-cta-inner { max-width:700px; margin:0 auto; }
.zplus-cta-inner h2 { font-size:34px; font-weight:800; margin-bottom:16px; text-shadow:0 2px 8px rgba(0,0,0,0.25); }
.zplus-cta-inner p { font-size:17px; opacity:0.9; margin-bottom:32px; }
.zplus-cta-buttons { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.zplus-btn-dark { background:var(--zplus-dark); color:var(--zplus-white); border-color:var(--zplus-dark); }
.zplus-btn-dark:hover { background:#2a2a44; border-color:#2a2a44; transform:translateY(-2px); box-shadow:0 6px 22px rgba(0,0,0,0.3); }

/* ── Contact Section (Homepage) ── */
.zplus-contact-section { background:var(--zplus-light); padding:60px 30px; }
.zplus-contact-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; max-width:900px; margin:0 auto; }
.zplus-contact-item { display:flex; align-items:flex-start; gap:14px; background:var(--zplus-white); padding:24px; border-radius:var(--zplus-radius); box-shadow:var(--zplus-shadow); border:1px solid var(--zplus-border); }
.zplus-contact-icon { font-size:26px; flex-shrink:0; }
.zplus-contact-item strong { display:block; margin-bottom:4px; color:var(--zplus-primary); }
.zplus-contact-item a { color:var(--zplus-secondary); text-decoration:none; font-weight:500; }
.zplus-contact-item a:hover { text-decoration:underline; }

/* ── Footer ── */
.zplus-footer { background:var(--zplus-dark); color:rgba(255,255,255,0.7); font-size:14px; }
.zplus-footer-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:40px; padding:50px 30px; max-width:1200px; margin:0 auto; }
.zplus-footer-col h4 { color:var(--zplus-white); font-size:16px; font-weight:700; margin-bottom:18px; text-transform:uppercase; letter-spacing:1px; }
.zplus-footer-col p { line-height:1.7; font-size:14px; }
.zplus-footer-col ul { list-style:none; padding:0; margin:0; }
.zplus-footer-col ul li { padding:6px 0; }
.zplus-footer-col ul li a { color:rgba(255,255,255,0.7); text-decoration:none; transition:color 0.3s; font-size:14px; }
.zplus-footer-col ul li a:hover { color:var(--zplus-accent); }
.zplus-footer-contact li { display:flex; align-items:flex-start; gap:8px; font-size:14px; }
.zplus-footer-bottom { border-top:1px solid rgba(255,255,255,0.08); padding:20px 30px; text-align:center; font-size:13px; }
.zplus-footer-bottom a { color:var(--zplus-accent); text-decoration:none; }

/* ── Inner Page Header ── */
.zplus-page-header { background:linear-gradient(135deg,var(--zplus-primary),var(--zplus-secondary)); color:var(--zplus-white); padding:60px 30px; text-align:center; }
.zplus-page-header h1 { font-size:36px; font-weight:700; margin-bottom:10px; }
.zplus-page-header p { font-size:16px; opacity:0.85; }
.zplus-page-content { max-width:1000px; margin:0 auto; padding:60px 30px; }

/* ── Case Studies & News ── */
.zplus-case-grid, .zplus-news-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:30px; }
.zplus-case-card, .zplus-news-card { border-radius:var(--zplus-radius); overflow:hidden; box-shadow:var(--zplus-shadow); border:1px solid var(--zplus-border); transition:transform 0.3s; }
.zplus-case-card:hover, .zplus-news-card:hover { transform:translateY(-3px); }
.zplus-case-card img, .zplus-news-card img { width:100%; height:200px; object-fit:cover; }
.zplus-case-card-body, .zplus-news-card-body { padding:25px; }
.zplus-case-card-body h3 { font-size:18px; color:var(--zplus-primary); margin-bottom:10px; }
.zplus-news-date { font-size:12px; color:#999; text-transform:uppercase; margin-bottom:8px; }

/* ── Contact Form ── */
.zplus-contact-form-wrap { max-width:600px; margin:0 auto; }
.zplus-contact-form-wrap input, .zplus-contact-form-wrap textarea { width:100%; padding:12px 16px; border:1px solid var(--zplus-border); border-radius:6px; font-size:15px; margin-bottom:16px; font-family:inherit; box-sizing:border-box; transition:border-color 0.3s; }
.zplus-contact-form-wrap textarea { min-height:150px; resize:vertical; }
.zplus-contact-form-wrap input:focus, .zplus-contact-form-wrap textarea:focus { border-color:var(--zplus-secondary); outline:none; box-shadow:0 0 0 3px rgba(41,128,185,0.15); }

/* ── Responsive ── */
@media(max-width:768px) {
    .zplus-hero { min-height:450px; }
    .zplus-hero-content h1 { font-size:22px; }
    .zplus-hero-content p { font-size:14px; }
    .zplus-hero-buttons { flex-direction:column; align-items:center; }
    .zplus-section { padding:50px 20px; }
    .zplus-section-title { font-size:24px; }
    .zplus-products-grid { grid-template-columns:1fr; }
    .zplus-cta-inner h2 { font-size:24px; }
    .zplus-btn-lg { padding:14px 32px; font-size:14px; }
    .zplus-footer-grid { grid-template-columns:1fr 1fr; gap:30px; }
    .zplus-contact-grid { grid-template-columns:1fr; }
}

/* ═══════ INNER PAGE STYLES ═══════ */

/* About Page */
.zplus-about-grid { display:grid; grid-template-columns:1.2fr 0.8fr; gap:40px; margin-bottom:50px; align-items:start; }
.zplus-about-text h2 { font-size:28px; color:var(--zplus-primary); margin-bottom:20px; }
.zplus-about-text p { font-size:15px; line-height:1.8; margin-bottom:16px; }
.zplus-about-img img { width:100%; border-radius:var(--zplus-radius); box-shadow:var(--zplus-shadow); }
.zplus-inner-title { font-size:26px; font-weight:700; color:var(--zplus-primary); margin:50px 0 30px; padding-bottom:12px; border-bottom:3px solid var(--zplus-accent); display:inline-block; }

/* Timeline */
.zplus-timeline { position:relative; padding-left:30px; margin-bottom:40px; }
.zplus-timeline::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--zplus-border); }
.zplus-timeline-item { position:relative; margin-bottom:32px; padding-left:24px; }
.zplus-timeline-item::before { content:''; position:absolute; left:-33px; top:6px; width:13px; height:13px; border-radius:50%; background:var(--zplus-secondary); border:3px solid var(--zplus-white); box-shadow:0 0 0 2px var(--zplus-secondary); }
.zplus-year { display:inline-block; background:var(--zplus-primary); color:var(--zplus-white); padding:4px 14px; border-radius:20px; font-size:13px; font-weight:700; margin-bottom:8px; }
.zplus-timeline-item h3 { font-size:17px; color:var(--zplus-primary); margin-bottom:6px; }
.zplus-timeline-item p { font-size:14px; color:#555; line-height:1.7; }

/* Trust Numbers Grid */
.zplus-trust-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:24px; margin:40px 0; text-align:center; }
.zplus-trust-item { background:var(--zplus-light); padding:28px 16px; border-radius:var(--zplus-radius); border:1px solid var(--zplus-border); }
.zplus-trust-num { display:block; font-size:36px; font-weight:800; color:var(--zplus-accent); }
.zplus-trust-label { font-size:13px; color:#666; font-weight:500; text-transform:uppercase; letter-spacing:0.5px; }

/* About CTA */
.zplus-about-cta { background:linear-gradient(135deg,var(--zplus-primary),var(--zplus-secondary)); color:var(--zplus-white); padding:48px; border-radius:var(--zplus-radius); text-align:center; margin-top:50px; }
.zplus-about-cta h3 { font-size:26px; margin-bottom:12px; }
.zplus-about-cta p { font-size:16px; opacity:0.9; margin-bottom:24px; }
.zplus-about-cta .zplus-btn { margin:0 8px; }
@media(max-width:768px){ .zplus-about-grid{grid-template-columns:1fr;} .zplus-about-cta{padding:30px 20px;} }

/* Services Page */
.zplus-service-block { margin-bottom:60px; padding-bottom:40px; border-bottom:1px solid var(--zplus-border); }
.zplus-service-block:last-of-type { border-bottom:none; }
.zplus-service-header { display:flex; gap:24px; align-items:center; margin-bottom:28px; }
.zplus-service-header img { width:80px; height:80px; object-fit:cover; border-radius:12px; flex-shrink:0; }
.zplus-service-header h2 { font-size:24px; color:var(--zplus-primary); margin-bottom:6px; }
.zplus-service-header p { font-size:15px; color:#666; margin:0; }

/* Product Showcase Grid */
.zplus-products-showcase { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; }
.zplus-product-item { background:var(--zplus-white); border:1px solid var(--zplus-border); border-radius:var(--zplus-radius); overflow:hidden; transition:transform 0.3s; }
.zplus-product-item:hover { transform:translateY(-3px); box-shadow:var(--zplus-shadow); }
.zplus-product-item img { width:100%; height:180px; object-fit:cover; }
.zplus-product-item h3 { font-size:16px; color:var(--zplus-primary); padding:16px 18px 6px; margin:0; }
.zplus-product-item p { font-size:13px; color:#666; padding:0 18px 18px; line-height:1.6; margin:0; }

/* Service Steps */
.zplus-service-steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; margin-top:24px; }
.zplus-step { text-align:center; padding:24px 16px; background:var(--zplus-light); border-radius:var(--zplus-radius); }
.zplus-step-num { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; background:var(--zplus-accent); color:var(--zplus-white); font-weight:800; font-size:18px; margin-bottom:12px; }
.zplus-step h4 { font-size:15px; color:var(--zplus-primary); margin-bottom:8px; }
.zplus-step p { font-size:13px; color:#666; line-height:1.5; margin:0; }

/* Checklist */
.zplus-checklist { list-style:none; padding:0; margin:20px 0; }
.zplus-checklist li { padding:10px 0; font-size:15px; line-height:1.7; border-bottom:1px solid #f0f0f0; }
.zplus-checklist li:last-child { border-bottom:none; }

/* Verify Grid */
.zplus-verify-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; margin:24px 0; }
.zplus-verify-item { background:var(--zplus-light); padding:24px; border-radius:var(--zplus-radius); border-left:4px solid var(--zplus-secondary); }
.zplus-verify-item h4 { font-size:15px; color:var(--zplus-primary); margin-bottom:8px; }
.zplus-verify-item p { font-size:13px; color:#666; margin:0; line-height:1.6; }

/* Shipping Info */
.zplus-shipping-info { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; margin:24px 0; }
.zplus-shipping-col { background:var(--zplus-light); padding:24px; border-radius:var(--zplus-radius); }
.zplus-shipping-col h4 { font-size:16px; color:var(--zplus-primary); margin-bottom:10px; }
.zplus-shipping-col p { font-size:14px; color:#666; line-height:1.6; margin:0; }

/* Services CTA */
.zplus-services-cta { text-align:center; padding:48px 30px; background:var(--zplus-light); border-radius:var(--zplus-radius); margin-top:50px; }
.zplus-services-cta h3 { font-size:26px; color:var(--zplus-primary); margin-bottom:12px; }
.zplus-services-cta p { font-size:16px; color:#666; margin-bottom:24px; }
.zplus-services-cta .zplus-btn { margin:0 8px; }

/* Case Studies Page */
.zplus-cases-content { max-width:1100px; margin:0 auto; }
.zplus-case-featured { display:grid; grid-template-columns:1fr 1.2fr; gap:36px; background:var(--zplus-light); border-radius:var(--zplus-radius); overflow:hidden; margin-bottom:50px; box-shadow:var(--zplus-shadow); }
.zplus-case-featured img { width:100%; height:100%; min-height:300px; object-fit:cover; }
.zplus-case-featured-body { padding:36px; }
.zplus-case-badge { display:inline-block; background:var(--zplus-accent); color:var(--zplus-white); padding:4px 14px; border-radius:20px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:1px; margin-bottom:14px; }
.zplus-case-featured-body h2 { font-size:22px; color:var(--zplus-primary); margin-bottom:16px; }
.zplus-case-featured-body p { font-size:14px; line-height:1.8; color:#555; margin-bottom:12px; }
.zplus-case-cat { display:inline-block; background:var(--zplus-secondary); color:var(--zplus-white); padding:3px 12px; border-radius:12px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; margin-bottom:10px; }
.zplus-cases-cta { text-align:center; padding:48px 30px; background:var(--zplus-light); border-radius:var(--zplus-radius); margin-top:50px; }
.zplus-cases-cta h3 { font-size:26px; color:var(--zplus-primary); margin-bottom:12px; }
.zplus-cases-cta p { font-size:16px; color:#666; margin-bottom:24px; }
.zplus-cases-cta .zplus-btn { margin:0 8px; }
@media(max-width:768px){ .zplus-case-featured{grid-template-columns:1fr;} .zplus-service-header{flex-direction:column;} .zplus-service-header img{width:60px;height:60px;} }

/* Contact Page */
.zplus-contact-page { max-width:1000px; margin:0 auto; }
.zplus-contact-intro { display:grid; grid-template-columns:1fr 1.5fr; gap:30px; align-items:center; margin-bottom:48px; }
.zplus-contact-intro img { width:100%; border-radius:var(--zplus-radius); }
.zplus-contact-intro h2 { font-size:28px; color:var(--zplus-primary); margin-bottom:12px; }
.zplus-contact-intro p { font-size:15px; color:#666; line-height:1.7; }
.zplus-contact-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px; margin-bottom:48px; }
.zplus-contact-card { background:var(--zplus-white); border:1px solid var(--zplus-border); border-radius:var(--zplus-radius); padding:28px; text-align:center; box-shadow:var(--zplus-shadow); }
.zplus-contact-card-icon { font-size:42px; display:block; margin-bottom:14px; }
.zplus-contact-card h3 { font-size:17px; color:var(--zplus-primary); margin-bottom:10px; }
.zplus-contact-card a { color:var(--zplus-secondary); font-weight:600; font-size:16px; text-decoration:none; }
.zplus-contact-card a:hover { text-decoration:underline; }
.zplus-contact-card p { font-size:13px; color:#888; margin-top:8px; }
.zplus-contact-form-section { background:var(--zplus-light); padding:48px; border-radius:var(--zplus-radius); margin-bottom:40px; }
.zplus-contact-form-section h2 { text-align:center; font-size:26px; color:var(--zplus-primary); margin-bottom:8px; }
.zplus-contact-form-section > p { text-align:center; color:#666; margin-bottom:30px; }
.zplus-form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.zplus-form-row input { margin-bottom:0 !important; }
.zplus-contact-form-wrap select { width:100%; padding:12px 16px; border:1px solid var(--zplus-border); border-radius:6px; font-size:15px; margin-bottom:16px; font-family:inherit; background:var(--zplus-white); cursor:pointer; }
.zplus-contact-form-wrap button { width:100%; cursor:pointer; }
address { font-style:normal; line-height:1.8; color:#555; }
@media(max-width:768px){ .zplus-contact-intro{grid-template-columns:1fr;} .zplus-form-row{grid-template-columns:1fr;} .zplus-contact-cards{grid-template-columns:1fr;} }

/* FAQ Page */
.zplus-faq-content { max-width:900px; margin:0 auto; }
.zplus-faq-list { margin-bottom:40px; }
.zplus-faq-item { background:var(--zplus-white); border:1px solid var(--zplus-border); border-radius:var(--zplus-radius); padding:28px 32px; margin-bottom:20px; box-shadow:var(--zplus-shadow); transition:box-shadow 0.3s; }
.zplus-faq-item:hover { box-shadow:0 8px 30px rgba(0,0,0,0.1); }
.zplus-faq-item h3 { font-size:17px; color:var(--zplus-primary); margin-bottom:12px; padding-bottom:10px; border-bottom:2px solid var(--zplus-light); }
.zplus-faq-item p { font-size:14px; line-height:1.8; color:#555; margin-bottom:10px; }
.zplus-faq-item ul,.zplus-faq-item ol { padding-left:20px; margin:10px 0; }
.zplus-faq-item li { font-size:14px; line-height:1.7; color:#666; margin-bottom:6px; }
.zplus-faq-item li strong { color:var(--zplus-text); }
.zplus-faq-cta { text-align:center; padding:48px 30px; background:var(--zplus-light); border-radius:var(--zplus-radius); }
.zplus-faq-cta h3 { font-size:26px; color:var(--zplus-primary); margin-bottom:12px; }
.zplus-faq-cta p { font-size:16px; color:#666; margin-bottom:24px; }
.zplus-faq-cta .zplus-btn { margin:0 8px; }

/* ── Elementor Homepage CTA (gold) ── */
.zplus-home-cta { background-color:#a87d14 !important; padding:55px 0 !important; }
.zplus-home-cta .elementor-heading-title { color:#ffffff !important; font-size:32px !important; font-weight:700 !important; }
.zplus-home-cta .elementor-button { font-weight:600 !important; border-radius:6px !important; padding:15px 30px !important; }
.zplus-home-cta-wa .elementor-button { background-color:#25d366 !important; color:#ffffff !important; }
.zplus-home-cta-wa .elementor-button:hover { background-color:#1ebe5b !important; color:#ffffff !important; }
.zplus-home-cta-quote .elementor-button { background-color:#111111 !important; color:#ffffff !important; }
.zplus-home-cta-quote .elementor-button:hover { background-color:#000000 !important; color:#ffffff !important; }

/* ── Floating WhatsApp Button ── */
.zplus-wa-float { position:fixed; right:22px; bottom:22px; z-index:99999; display:inline-flex; align-items:center; gap:8px; background:#25D366; color:#ffffff; text-decoration:none; padding:13px 20px; border-radius:50px; box-shadow:0 6px 20px rgba(0,0,0,0.25); font-weight:700; font-size:14px; letter-spacing:0.3px; transition:background 0.3s, transform 0.2s; }
.zplus-wa-float:hover { background:#1ebe5b; color:#ffffff; transform:translateY(-2px); }
.zplus-wa-float svg { width:22px; height:22px; flex-shrink:0; }
@media(max-width:768px){ .zplus-wa-float { right:14px; bottom:14px; padding:11px 15px; font-size:13px; } .zplus-wa-float svg { width:20px; height:20px; } }

/* ═══════ PRIME SLIDER HERO OVERRIDES (zplus-ps-hero) ═══════ */
/* Light overlay + dark text so content reads on light hero images */
.zplus-ps-hero .bdt-ps-slide-img::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(rgba(255,255,255,0.60),rgba(255,255,255,0.50)) !important;
  z-index:1;
}
.zplus-ps-hero .bdt-prime-slider-content { position:relative; z-index:2; }
.zplus-ps-hero .bdt-title-tag,
.zplus-ps-hero .bdt-main-title,
.zplus-ps-hero .bdt-slider-excerpt { color:#111111 !important; text-shadow:none !important; }
.zplus-ps-hero .bdt-title-tag { font-weight:800 !important; font-size:34px !important; line-height:1.25 !important; }
.zplus-ps-hero .bdt-slider-excerpt { font-size:16px !important; line-height:1.6 !important; max-width:760px !important; margin:0 auto 26px !important; }
.zplus-ps-hero .bdt-slide-btn { background-color:#e67e22 !important; color:#ffffff !important; border-radius:6px !important; font-weight:700 !important; padding:14px 34px !important; }
.zplus-ps-hero .bdt-slide-btn:hover { background-color:#d35400 !important; color:#ffffff !important; }
.zplus-ps-hero .bdt-slide-btn .bdt-prime-slider-button-text { color:#ffffff !important; }
.zplus-ps-hero .bdt-slide-btn svg polyline,
.zplus-ps-hero .bdt-slide-btn svg line { stroke:#ffffff !important; }
/* Guarantee hero content is visible even if the reveal animation doesn't fire */
.zplus-ps-hero .bdt-main-title,
.zplus-ps-hero .bdt-title-tag,
.zplus-ps-hero .bdt-slider-excerpt,
.zplus-ps-hero .bdt-slide-btn { opacity:1 !important; transform:none !important; }
@media(max-width:768px){
  .zplus-ps-hero .bdt-slideshow-item,
  .zplus-ps-hero .bdt-ps-slide-img { min-height:480px !important; }
  .zplus-ps-hero .bdt-title-tag { font-size:24px !important; }
}

/* zp-bounce-arrow */
a.elementor-icon[href="#zp-services-list"]{display:inline-block;animation:zpbounce 1.6s ease-in-out infinite;}
@keyframes zpbounce{0%,100%{transform:translateY(0);}50%{transform:translateY(8px);}}

/* ZPLUS feature-service cards */
.zp-svc-col{border-radius:12px;overflow:hidden;transition:transform .25s ease, box-shadow .25s ease;}
body:not(.elementor-editor-active) .zp-svc-col .zp-card-link{position:absolute;inset:0;z-index:20;cursor:pointer;}
.zp-svc-col:hover{transform:translateY(-6px);box-shadow:0 14px 32px rgba(20,40,70,.28);}
.zp-svc-header{text-align:center;}
body:not(.elementor-editor-active) .zp-services-list > .elementor-container{display:flex;flex-wrap:wrap;gap:22px;}
body:not(.elementor-editor-active) .zp-services-list > .elementor-container > .elementor-column{width:calc(20% - 17.6px) !important;flex:0 0 calc(20% - 17.6px) !important;max-width:calc(20% - 17.6px) !important;}
@media (max-width:1024px){
  body:not(.elementor-editor-active) .zp-services-list > .elementor-container > .elementor-column{width:calc(33.333% - 14.7px) !important;flex:0 0 calc(33.333% - 14.7px) !important;max-width:calc(33.333% - 14.7px) !important;}
}
@media (max-width:767px){
  body:not(.elementor-editor-active) .zp-services-list > .elementor-container > .elementor-column{width:100% !important;flex:0 0 100% !important;max-width:100% !important;}
}

/* ZPLUS nav dropdown (Services hover menu) — scoped to fallback nav only */
.zplus-nav-item{position:relative;display:inline-block;}
.zplus-nav-item .zplus-caret{font-size:9px;margin-left:4px;vertical-align:middle;}
.zplus-subnav{position:absolute;top:100%;left:0;min-width:230px;margin:0;padding:8px 0;list-style:none;background:var(--zplus-primary,#16365c);box-shadow:0 10px 30px rgba(0,0,0,.18);border-radius:0 0 8px 8px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease, transform .2s ease;z-index:1000;}
.zplus-nav-item:hover .zplus-subnav{opacity:1;visibility:visible;transform:translateY(0);}
.zplus-subnav a{display:block;color:#fff;padding:10px 20px;font-size:13px;text-transform:none;letter-spacing:0;white-space:nowrap;}
.zplus-subnav a:hover{background:rgba(255,255,255,.12);color:#fff;}
@media(max-width:768px){
  .zplus-subnav{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:rgba(0,0,0,.04);padding:0 0 0 12px;min-width:0;}
  .zplus-subnav a{color:var(--zplus-text);padding:10px 20px;}
  .zplus-subnav a:hover{background:transparent;color:var(--zplus-secondary);}
}


/* ZPLUS nav dropdown safety: never clip by sticky header */
.zplus-header, .zplus-header-inner, .zplus-nav { overflow: visible; }
.zplus-subnav { z-index: 10000; }
.zplus-nav-item.zplus-open .zplus-subnav { opacity: 1; visibility: visible; transform: translateY(0); }


/* compact list rows for News & Case Studies (zplus-list-row) */
.zplus-list-row { padding-top: 14px !important; padding-bottom: 14px !important; }
.zplus-list-row .elementor-image { margin: 0; }
.zplus-list-row .elementor-image img { display: block; width: 100%; height: 130px; object-fit: cover; border-radius: 8px; }
.zplus-list-row .elementor-heading-title { margin: 0; }

/* push image away from text in list rows */
.zplus-list-row .elementor-col-30 { padding-right: 30px !important; }
.zplus-list-row .elementor-col-70 { padding-left: 0 !important; }
/* What Our Clients Say - 左小头像 + 右评价 + 下方 姓名·公司,国家 (2x2) */
.zplus-testi-grid > .elementor-container{display:flex;flex-wrap:wrap;gap:24px;align-items:stretch}
.zplus-testi-grid > .elementor-container > .elementor-column.zplus-testi-card{
  width:calc(50% - 12px)!important;flex:0 0 calc(50% - 12px);
  background:#fff;border-radius:14px;padding:22px;box-sizing:border-box;
  box-shadow:0 6px 20px rgba(20,40,80,.08);
}
.zplus-testi-title{text-align:center;margin-bottom:6px}
.zplus-testi-title .elementor-heading-title{color:#16365c;font-size:30px}
.zplus-testi-inner > .elementor-container{display:flex;align-items:flex-start;gap:16px}
.zplus-testi-inner > .elementor-container > .elementor-column:first-child{width:64px!important;flex:0 0 64px}
.zplus-testi-inner > .elementor-container > .elementor-column:last-child{width:auto!important;flex:1 1 auto}
.zplus-testi-inner > .elementor-container > .elementor-column:first-child img{width:64px!important;height:64px!important;border-radius:50%!important;object-fit:cover;display:block}
.zplus-testi-quote{font-size:15px;line-height:1.6;color:#2b2b2b;margin:0 0 12px}
.zplus-testi-name{font-size:14px}
.zplus-testi-name strong{color:#16365c}
@media(max-width:768px){
  .zplus-testi-grid > .elementor-container > .elementor-column.zplus-testi-card{width:100%!important;flex:0 0 100%}
}

/* === What Our Clients Say : vertical list (v2.1.9, :has based) === */
/* outer testimonials section (contains the heading directly) */
.elementor-section:has(> .elementor-container > .elementor-column .zplus-testi-heading) {
  padding: 56px 0;
  background: #fff;
}
.zplus-testi-heading { text-align: center; margin-bottom: 34px; }
.zplus-testi-heading .elementor-heading-title { font-size: 30px; font-weight: 700; color: #1b2a4a; }

/* each testimonial row */
.elementor-section:has(> .elementor-container > .elementor-column:has(> .elementor-widget-wrap > .zplus-testi-quote)) {
  display: block !important;
  margin: 0 auto 88px !important;
  padding: 26px 28px;
  background: #f6f8fb;
  border: 1px solid #eef1f6;
  border-radius: 14px;
  max-width: 820px;
}
.zplus-testi-quote { font-size: 16px; line-height: 1.75; color: #374151; margin: 0 0 16px !important; text-align: left; }
.zplus-testi-quote p { text-align: left; margin: 0 !important; }

/* name row: small avatar before name, right aligned as a group */
.zplus-testi-meta { margin-top: 2px !important; font-size: 14px; text-align: right; }
.zplus-testi-meta p { margin: 0 !important; text-align: right; }
.zplus-testi-meta img { width: 72px !important; height: 72px !important; border-radius: 50% !important; object-fit: cover !important; display: inline-block !important; vertical-align: middle; margin-right: 14px; }
.zplus-testi-meta .zplus-testi-name { font-weight: 700; color: #1b2a4a; }
.zplus-testi-meta .zplus-testi-co { font-weight: 500; color: #6b7280; }

@media (max-width: 600px) {
  .elementor-section:has(> .elementor-container > .elementor-column:has(> .elementor-widget-wrap > .zplus-testi-quote)) {
    padding: 20px 18px;
    margin-bottom: 64px !important;
  }
}
/* zplus testimonials v2.1.14 - 手写 HTML 版块 */
.zplus-ti-list {
  max-width: 920px;
  margin: 0 auto;
}
.zplus-ti-row {
  margin-bottom: 88px;
}
.zplus-ti-row:last-child {
  margin-bottom: 0;
}
.zplus-ti-quote {
  text-align: left;
  font-size: 17px;
  line-height: 1.7;
  color: #2c2c2c;
  margin: 0 0 18px 0;
}
.zplus-ti-meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  text-align: right;
}
.zplus-ti-ava {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 72px;
}
.zplus-ti-name {
  font-weight: 700;
  color: #1a1a1a;
}
.zplus-ti-co {
  color: #777;
  font-size: 14px;
}
@media (max-width: 768px) {
  .zplus-ti-row { margin-bottom: 56px; }
  .zplus-ti-quote { font-size: 16px; }
}
.zplus-ti-row:last-child {
  margin-bottom: 0 !important;
}
.zplus-ti-quote {
  text-align: left !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: #2c2c2c !important;
  margin: 0 0 18px 0 !important;
}
.zplus-ti-metabox {
  display: flex !important;
  justify-content: flex-end !important;
}
.zplus-ti-metabox .elementor-image-box-wrapper {
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-end !important;
  text-align: right !important;
  gap: 14px;
}
.zplus-ti-metabox .elementor-image-box-img {
  flex: 0 0 72px !important;
}
.zplus-ti-metabox .elementor-image-box-img img {
  width: 72px !important;
  height: 72px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
}
.zplus-ti-metabox .elementor-image-box-content {
  text-align: right !important;
}
.zplus-ti-metabox .elementor-image-box-title {
  font-weight: 700 !important;
  color: #1a1a1a !important;
}
.zplus-ti-metabox .elementor-image-box-description {
  color: #777 !important;
  font-size: 14px !important;
}

/* Why Choose Z Plus 每个回答间距 */
.elementor-element-d04e938 li {
  margin-bottom: 22px !important;
  line-height: 1.7 !important;
}
.elementor-element-d04e938 ol {
  padding-left: 1.2em !important;
}
@media (max-width: 768px) {
  .zplus-ti-row { margin-bottom: 56px !important; }
}
/* zplus testimonials 原生扁平版 v2.1.16 */
.zplus-testi-list .elementor-widget-text-editor.zplus-ti-quote .elementor-widget-container,
.zplus-ti-quote .elementor-widget-container {
  text-align: left !important;
}
.zplus-ti-quote {
  text-align: left !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: #2c2c2c !important;
  margin-bottom: 12px !important;
}
.zplus-ti-metabox {
  display: flex !important;
  justify-content: flex-end !important;
  margin-bottom: 80px !important; /* 每条评价之间的大间距 */
}
.zplus-ti-metabox:last-child {
  margin-bottom: 0 !important;
}
.zplus-ti-metabox .elementor-image-box-wrapper {
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-end !important;
  text-align: right !important;
  gap: 14px;
}
.zplus-ti-metabox .elementor-image-box-img {
  flex: 0 0 72px !important;
}
.zplus-ti-metabox .elementor-image-box-img img {
  width: 72px !important;
  height: 72px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
}
.zplus-ti-metabox .elementor-image-box-content {
  text-align: right !important;
}
.zplus-ti-metabox .elementor-image-box-title {
  font-weight: 700 !important;
  color: #1a1a1a !important;
}
.zplus-ti-metabox .elementor-image-box-description {
  color: #777 !important;
  font-size: 14px !important;
}

/* Why Choose Z Plus 每个回答间距 */
.elementor-element-d04e938 li {
  margin-bottom: 22px !important;
  line-height: 1.7 !important;
}
.elementor-element-d04e938 ol {
  padding-left: 1.2em !important;
}
@media (max-width: 768px) {
  .zplus-ti-metabox { margin-bottom: 52px !important; }
}

/* ── 2026-08-08 FIX: Hero black text + visible buttons + Why Choose spacing ── */
/* Hero 文字强制黑色（覆盖旧浅色），并加浅色遮罩保证照片背景上可读 */
.elementor-20 .elementor-element-zhero_sec > .elementor-background-overlay{
    background-color: rgba(255,255,255,0.74) !important;
    opacity: 1 !important;
}
.elementor-20 .elementor-element-zhero_h1 .elementor-widget-container,
.elementor-20 .elementor-element-zhero_p .elementor-widget-container,
.elementor-20 .elementor-element-zhero_trust .elementor-widget-container,
.elementor-20 .elementor-element-zhero_val .elementor-widget-container{
    color:#111111 !important;
}
.elementor-20 .elementor-element-zhero_h1 h1,
.elementor-20 .elementor-element-zhero_p p,
.elementor-20 .elementor-element-zhero_trust p,
.elementor-20 .elementor-element-zhero_val p{
    color:#111111 !important;
    text-shadow:none !important;
}
/* 主 CTA：原来是白底白字看不见，改成深蓝底白字，清晰可见且链接正常 */
.elementor-20 .elementor-element-zhero_btn1 .elementor-button{
    background-color:#1a3a5c !important;
    color:#ffffff !important;
}
.elementor-20 .elementor-element-zhero_btn1 .elementor-button:hover{
    background-color:#142d47 !important;
    color:#ffffff !important;
}
/* WhatsApp 按钮保持绿色（链接正常） */
.elementor-20 .elementor-element-zhero_btn2 .elementor-button{
    color:#ffffff !important;
}
/* Why Choose：5 项列表上下间距拉大 */
.elementor-20 .elementor-element-why_list ol{
    margin:0 0 0 1.1em;
    padding:0;
    list-style:decimal outside;
}
.elementor-20 .elementor-element-why_list ol li{
    margin-bottom:28px;
    line-height:1.85;
    color:#333333;
}
.elementor-20 .elementor-element-why_list ol li strong{
    color:#1a3a5c;
}
/* We Work for You 差异化块：与上方列表拉开间距 + 卡片区分，明确属于 Why Choose 内容 */
.elementor-20 .elementor-element-why_diff{
    margin-top:52px;
    padding:36px 30px;
    background:#f8f9fa;
    border:1px solid #e0e0e0;
    border-top:3px solid #1a3a5c;
    border-radius:12px;
}
.elementor-20 .elementor-element-why_diff h3{
    color:#1a3a5c;
    font-size:22px;
    margin-bottom:14px;
}
.elementor-20 .elementor-element-why_diff p{
    color:#333333;
    line-height:1.85;
    margin-bottom:12px;
}
/* ── END 2026-08-08 FIX ── */
/* ===== Z Plus editable Hero carousel (native Elementor, rebuilt 2026-08-12) ===== */
/* Slides targeted by data-id (always rendered). Background photos are real
   Image widgets (.zhero-slide-bg) so the user can click+replace them in the
   backend. Frontend: slides stack absolutely + cross-fade. Editor: normal flow. */

/* Host section + column must size the absolutely-positioned slides.
   Force the Hero OUTER container to true full-width (override Elementor's
   boxed max-width so the background photo reaches both screen edges). */
.elementor-element-zhero_sec { min-height: 600px; overflow: hidden; position: relative; }
.elementor-element-zhero_sec > .elementor-container {
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
}
.elementor-column.elementor-element-zhero_col { position: relative !important; min-height: 600px !important; }

/* Frontend: stack the 4 slide sections absolutely and hide by default */
body:not(.elementor-editor-active) [data-id="zhero_s1"],
body:not(.elementor-editor-active) [data-id="zhero_s2"],
body:not(.elementor-editor-active) [data-id="zhero_s3"],
body:not(.elementor-editor-active) [data-id="zhero_s4"] {
	position: absolute;
	left: 0; right: 0; top: 0; bottom: 0;
	height: 100%;
	opacity: 0;
	visibility: hidden;
	transition: opacity .9s ease, visibility .9s ease;
	z-index: 1;
}
body:not(.elementor-editor-active) [data-id="zhero_s1"].zhero-active,
body:not(.elementor-editor-active) [data-id="zhero_s2"].zhero-active,
body:not(.elementor-editor-active) [data-id="zhero_s3"].zhero-active,
body:not(.elementor-editor-active) [data-id="zhero_s4"].zhero-active {
	opacity: 1;
	visibility: visible;
	z-index: 2;
}
body:not(.elementor-editor-active):not(.zhero-js) [data-id="zhero_s1"] {
	opacity: 1;
	visibility: visible;
	z-index: 2;
}

/* Background column fills the whole slide (it is the positioning context for
   the background image widget, which would otherwise be trapped in a 1/3 column).
   NOTE: Elementor does NOT render column-level _css_classes, so we target by
   data-id (always rendered) instead of a class. */
body:not(.elementor-editor-active) [data-id$="bgcol"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}
/* Background photo = real Image widget, fills the slide (bottom layer, z-index 0) */
body:not(.elementor-editor-active) [data-id^="zhero_s"] .zhero-slide-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	margin: 0;
}
body:not(.elementor-editor-active) [data-id^="zhero_s"] .zhero-slide-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Light overlay ONLY on the 4 slide sections (not on descendant columns/sections).
   Gradient: stronger on the left where text lives, fading to almost clear on the
   right so the photo stays vivid. */
body:not(.elementor-editor-active) [data-id="zhero_s1"]::before,
body:not(.elementor-editor-active) [data-id="zhero_s2"]::before,
body:not(.elementor-editor-active) [data-id="zhero_s3"]::before,
body:not(.elementor-editor-active) [data-id="zhero_s4"]::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(255,255,255,0.58) 0%, rgba(255,255,255,0.28) 55%, rgba(255,255,255,0.06) 100%);
	z-index: 1;
	pointer-events: none;
}

/* Every slide's inner container: true full width (override Elementor boxed
   max-width) so the background photo reaches both screen edges. The 8% left
   breathing room is applied ONLY to the text content column, not the photo. */
body:not(.elementor-editor-active) [data-id^="zhero_s"] > .elementor-container {
	position: relative;
	height: 100%;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	align-items: center;
}
/* Text content column: fixed 55% width on the left so copy + buttons sit on
   the left, while the background image behind it stays full-bleed. */
body:not(.elementor-editor-active) [data-id$="_content"] {
	width: 55% !important;
	padding-left: 8%;
	padding-right: 4%;
}
body:not(.elementor-editor-active) [data-id^="zhero_s"] .elementor-widget:not(.zhero-slide-bg) {
	position: relative;
	z-index: 2;
}

/* Text */
.zhero-slide-h .elementor-heading-title {
	color: #111111 !important;
	font-size: 34px;
	font-weight: 800;
	line-height: 1.25;
	text-shadow: 0 1px 2px rgba(255,255,255,0.85);
}
.zhero-slide-p { color: #222222 !important; font-size: 17px; line-height: 1.6; text-shadow: 0 1px 2px rgba(255,255,255,0.85); }
.elementor-widget.zhero-slide-p .elementor-widget-container {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}
.zhero-slide-wa .elementor-button,
.zhero-slide-q .elementor-button {
	margin: 6px 8px;
}

/* Hero navigation dots (injected by main.js) — bottom-center, like a typical
   carousel. Current slide highlighted. Hidden inside the Elementor editor so
   they don't clutter backend editing of the slides. */
.zhero-dots {
	position: absolute;
	left: 50%;
	bottom: 24px;
	transform: translateX(-50%);
	display: flex;
	gap: 14px;
	z-index: 10;
}
.zhero-dot {
	width: 14px;
	height: 14px;
	padding: 0;
	border-radius: 50%;
	border: 2px solid rgba(255,255,255,0.9);
	background: rgba(255,255,255,0.25);
	cursor: pointer;
	box-shadow: 0 1px 3px rgba(0,0,0,0.35);
	transition: background .25s ease, transform .25s ease;
}
.zhero-dot:hover { background: rgba(255,255,255,0.6); }
.zhero-dot.zhero-active { background: #ffffff; transform: scale(1.3); }
.elementor-editor-active .zhero-dots { display: none !important; }

/* ===== Editor mode: show slides in normal flow, image as a normal clickable
   block so the user can select + replace each photo and edit each slide ===== */
.elementor-editor-active [data-id^="zhero_s"] {
	position: relative !important;
	opacity: 1 !important;
	visibility: visible !important;
	height: auto !important;
	min-height: 480px;
	margin-bottom: 24px;
}
.elementor-editor-active [data-id="zhero_s1"]::before,
.elementor-editor-active [data-id="zhero_s2"]::before,
.elementor-editor-active [data-id="zhero_s3"]::before,
.elementor-editor-active [data-id="zhero_s4"]::before { display: none !important; }
/* In the editor, stack the slide's columns vertically so each (image / text /
   buttons) is shown full-width and easy to click + edit */
.elementor-editor-active [data-id^="zhero_s"] > .elementor-container > .elementor-column {
	width: 100% !important;
}
.elementor-editor-active [data-id$="bgcol"] {
	position: relative !important;
	inset: auto !important;
	width: 100% !important;
	height: auto !important;
	z-index: 0 !important;
}
.elementor-editor-active [data-id^="zhero_s"] .zhero-slide-bg {
	position: relative !important;
	inset: auto !important;
	width: 100% !important;
	height: auto !important;
	z-index: 0 !important;
}
.elementor-editor-active [data-id^="zhero_s"] .zhero-slide-bg img {
	width: 100% !important;
	height: auto !important;
	object-fit: initial !important;
}
