/*
 Theme Name:   Web Palm Beaches Child
 Theme URI:    https://webpalmbeaches.com
 Description:  Astra child theme for Web Palm Beaches — AI Consulting & Digital Innovation
 Author:       Web Palm Beaches
 Author URI:   https://webpalmbeaches.com
 Template:     astra
 Version:      1.0.0
 Text Domain:  webpalmbeaches-child
*/

/* ==========================================================================
   WEB PALM BEACHES — CUSTOM STYLES
   Scoped under .wpb to avoid conflicts with Astra/Elementor defaults
   ========================================================================== */

/* === VARIABLES (global) === */
:root {
  --wpb-bg: #ffffff;
  --wpb-bg-alt: #f6f6f6;
  --wpb-bg-ice: #f2f5f7;
  --wpb-bg-dark: #051639;
  --wpb-text-primary: #2c2c2c;
  --wpb-text-secondary: rgba(0,0,0,0.5);
  --wpb-text-muted: #888;
  --wpb-text-light: #ffffff;
  --wpb-accent: #cd6155;
  --wpb-accent-hover: #b8534a;
  --wpb-secondary: #406b95;
  --wpb-tertiary: #295082;
  --wpb-border: rgba(0,0,0,0.08);
  --wpb-heading: 'Montserrat', system-ui, sans-serif;
  --wpb-body: 'Lato', system-ui, sans-serif;
}

/* === SCOPE WRAPPER === */
.wpb { font-family: var(--wpb-body); color: var(--wpb-text-primary); -webkit-font-smoothing: antialiased; }
.wpb *, .wpb *::before, .wpb *::after { box-sizing: border-box; }
.wpb a { color: inherit; text-decoration: none; }

/* === ANIMATIONS === */
.wpb .reveal { opacity: 0; transform: translateY(40px); transition: opacity .8s ease, transform .8s ease; }
.wpb .reveal.visible { opacity: 1; transform: translateY(0); }
.wpb .reveal-left { opacity: 0; transform: translateX(-40px); transition: opacity .8s ease, transform .8s ease; }
.wpb .reveal-left.visible { opacity: 1; transform: translateX(0); }
.wpb .reveal-right { opacity: 0; transform: translateX(40px); transition: opacity .8s ease, transform .8s ease; }
.wpb .reveal-right.visible { opacity: 1; transform: translateX(0); }
.wpb .reveal-scale { opacity: 0; transform: scale(0.9); transition: opacity .8s ease, transform .8s ease; }
.wpb .reveal-scale.visible { opacity: 1; transform: scale(1); }
.wpb .stagger-1 { transition-delay: .1s; }
.wpb .stagger-2 { transition-delay: .2s; }
.wpb .stagger-3 { transition-delay: .3s; }
.wpb .stagger-4 { transition-delay: .4s; }
.wpb .stagger-5 { transition-delay: .5s; }
.wpb .stagger-6 { transition-delay: .6s; }

@keyframes wpb-pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .5; transform: scale(1.3); } }
@keyframes wpb-tabFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes wpb-shake { 0%,100% { transform: translateX(0); } 25% { transform: translateX(-6px); } 50% { transform: translateX(6px); } 75% { transform: translateX(-4px); } }
@keyframes wpb-spin { to { transform: rotate(360deg); } }


/* === PAGE HERO CONTENT (inside Elementor section) === */
.wpb-hero-content { position: relative; z-index: 2; max-width: 750px; color: var(--wpb-text-light); }

.wpb-hero-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .5rem 1.25rem; border: 1px solid rgba(255,255,255,.2);
  font-family: var(--wpb-heading); font-size: .7rem; font-weight: 700;
  color: var(--wpb-text-light); margin-bottom: 2rem;
  letter-spacing: .15em; text-transform: uppercase;
}
.wpb-hero-badge .pulse {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--wpb-accent); animation: wpb-pulse 2s ease-in-out infinite;
}

.wpb-hero-content h1,
.wpb-page-hero h1 {
  font-family: var(--wpb-heading) !important;
  font-size: clamp(2.4rem, 5vw, 3.8rem); line-height: 1.15;
  font-weight: 800; letter-spacing: .02em;
  text-transform: uppercase; margin-bottom: 1.5rem;
  color: var(--wpb-text-light);
}
.wpb-hero-content h1 em,
.wpb-page-hero h1 em { font-style: normal; color: var(--wpb-accent); }

.wpb-hero-sub {
  font-family: var(--wpb-body); font-size: 1.1rem; line-height: 1.8;
  color: rgba(255,255,255,.75); max-width: 560px; margin-bottom: 2.5rem; font-weight: 300;
}

.wpb-hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; }

.wpb-hero-stats {
  display: flex; gap: 3rem; margin-top: 4rem;
  padding-top: 2.5rem; border-top: 1px solid rgba(255,255,255,.15);
}
.wpb-hero-stats .stat { display: flex; flex-direction: column; gap: .25rem; }
.wpb-hero-stats .stat-number {
  font-family: var(--wpb-heading); font-size: 2.4rem; font-weight: 800; color: var(--wpb-accent);
}
.wpb-hero-stats .stat-label {
  font-family: var(--wpb-heading); font-size: .7rem;
  color: rgba(255,255,255,.5); text-transform: uppercase; letter-spacing: .12em;
}

/* === PAGE HERO (subpages — inside Elementor section) === */
.wpb-page-hero { position: relative; z-index: 2; color: var(--wpb-text-light); }
.wpb-page-hero .breadcrumb {
  font-family: var(--wpb-heading); font-size: .7rem; font-weight: 600;
  letter-spacing: .15em; text-transform: uppercase;
  color: rgba(255,255,255,.5); margin-bottom: 1.5rem;
}
.wpb-page-hero .breadcrumb a { color: rgba(255,255,255,.5); transition: color .3s; }
.wpb-page-hero .breadcrumb a:hover { color: var(--wpb-text-light); }
.wpb-page-hero .breadcrumb span { color: var(--wpb-accent); }
.wpb-page-hero p {
  font-family: var(--wpb-body); font-size: 1.15rem; line-height: 1.8;
  color: rgba(255,255,255,.7); max-width: 600px; font-weight: 300;
}

/* === BUTTONS === */
.wpb .btn-primary {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: 1rem 2.5rem; background: var(--wpb-accent);
  color: var(--wpb-text-light); font-family: var(--wpb-heading);
  font-weight: 700; font-size: .8rem; letter-spacing: .15em;
  text-transform: uppercase; border: none; cursor: pointer; transition: all .3s;
}
.wpb .btn-primary:hover {
  background: var(--wpb-accent-hover); color: var(--wpb-text-light);
  box-shadow: 0 6px 25px rgba(205,97,85,.3); transform: translateY(-2px);
}
.wpb .btn-secondary {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: 1rem 2.5rem; background: transparent;
  color: var(--wpb-tertiary); font-family: var(--wpb-heading);
  font-weight: 700; font-size: .8rem; letter-spacing: .15em;
  text-transform: uppercase; border: 2px solid var(--wpb-tertiary);
  cursor: pointer; transition: all .3s;
}
.wpb .btn-secondary:hover { background: var(--wpb-tertiary); color: var(--wpb-text-light); }
.wpb .btn-secondary.light { color: var(--wpb-text-light); border-color: rgba(255,255,255,.3); }
.wpb .btn-secondary.light:hover { border-color: var(--wpb-text-light); background: rgba(255,255,255,.1); }

/* === SECTION HEADINGS === */
.wpb .section-label {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--wpb-heading); font-size: .7rem; font-weight: 700;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--wpb-accent); margin-bottom: 1rem;
}
.wpb .section-label::before { content: ''; width: 24px; height: 2px; background: var(--wpb-accent); }

.wpb .section-title {
  font-family: var(--wpb-heading) !important; font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  line-height: 1.2; letter-spacing: .02em; text-transform: uppercase;
  font-weight: 800; margin-bottom: 1rem; color: var(--wpb-tertiary);
}
.wpb .section-desc {
  color: var(--wpb-text-secondary); font-family: var(--wpb-body);
  font-size: 1.05rem; line-height: 1.8; max-width: 600px;
}
.wpb .section-center { text-align: center; max-width: 650px; margin: 0 auto; }
.wpb .section-center .section-label { justify-content: center; }
.wpb .section-center .section-desc { margin: 0 auto; }

/* Dark background section overrides */
.wpb-dark .section-title { color: var(--wpb-text-light); }
.wpb-dark .section-desc { color: rgba(255,255,255,.65); }
.wpb-dark .section-label { color: var(--wpb-accent); }

/* === SERVICE CARDS === */
.wpb .services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.wpb .service-card {
  padding: 2.25rem; background: var(--wpb-bg); border: 1px solid var(--wpb-border);
  transition: all .4s; cursor: default; position: relative; overflow: hidden;
}
.wpb .service-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0;
  height: 3px; background: var(--wpb-accent); opacity: 0; transition: opacity .4s;
}
.wpb .service-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.08); }
.wpb .service-card:hover::before { opacity: 1; }
.wpb .service-icon {
  width: 52px; height: 52px; background: var(--wpb-bg-ice);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1.25rem; font-size: 1.4rem;
}
.wpb .service-card h3 {
  font-family: var(--wpb-heading); font-size: .95rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em; margin-bottom: .6rem; color: var(--wpb-tertiary);
}
.wpb .service-card p { color: var(--wpb-text-secondary); font-size: .9rem; line-height: 1.7; }
.wpb .service-card.featured { border-top: 3px solid var(--wpb-accent); }
.wpb .service-card.featured::before { opacity: 0; }

/* === USE CASES === */
.wpb .usecases-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 3rem; }
.wpb .usecase {
  padding: 2rem; border: 1px solid var(--wpb-border); background: var(--wpb-bg);
  display: flex; gap: 1.5rem; align-items: flex-start; transition: all .35s; cursor: default;
}
.wpb .usecase:hover { border-color: var(--wpb-accent); box-shadow: 0 4px 20px rgba(0,0,0,0.06); }
.wpb .usecase-num {
  flex-shrink: 0; width: 44px; height: 44px; background: var(--wpb-accent);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--wpb-heading); font-size: .85rem;
  color: var(--wpb-text-light); font-weight: 700; letter-spacing: .05em;
}
.wpb .usecase h4 {
  font-family: var(--wpb-heading); font-size: .95rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em; margin-bottom: .4rem; color: var(--wpb-tertiary);
}
.wpb .usecase p { color: var(--wpb-text-secondary); font-size: .875rem; line-height: 1.7; }

/* === PROCESS STEPS === */
.wpb .process-steps {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; margin-top: 3rem; position: relative;
}
.wpb .process-steps::before {
  content: ''; position: absolute; top: 28px; left: 10%; right: 10%;
  height: 2px; background: var(--wpb-border);
}
.wpb .step { text-align: center; position: relative; }
.wpb .step-marker {
  width: 56px; height: 56px; border: 2px solid var(--wpb-border); background: var(--wpb-bg);
  display: flex; align-items: center; justify-content: center; margin: 0 auto 1.25rem;
  font-family: var(--wpb-heading); font-size: .9rem; font-weight: 700;
  color: var(--wpb-accent); position: relative; z-index: 2; transition: all .4s; letter-spacing: .05em;
}
.wpb .step:hover .step-marker {
  border-color: var(--wpb-accent); background: var(--wpb-accent);
  color: var(--wpb-text-light); box-shadow: 0 4px 20px rgba(205,97,85,.25);
}
.wpb .step h4 {
  font-family: var(--wpb-heading); font-size: .9rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em; margin-bottom: .4rem; color: var(--wpb-tertiary);
}
.wpb .step p { color: var(--wpb-text-secondary); font-size: .85rem; line-height: 1.7; }

/* === TESTIMONIALS === */
.wpb .testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 3rem; }
.wpb .testimonial-card {
  padding: 2.5rem; border: 1px solid var(--wpb-border); background: var(--wpb-bg);
  transition: all .4s; position: relative;
}
.wpb .testimonial-card::before {
  content: '\201C'; position: absolute; top: 1.25rem; right: 1.5rem;
  font-family: var(--wpb-heading); font-size: 4rem; color: var(--wpb-bg-alt);
  line-height: 1; pointer-events: none;
}
.wpb .testimonial-card:hover { border-color: var(--wpb-accent); box-shadow: 0 8px 30px rgba(0,0,0,.06); }
.wpb .testimonial-card .stars { color: var(--wpb-accent); font-size: .9rem; margin-bottom: 1rem; letter-spacing: 3px; }
.wpb .testimonial-card blockquote {
  font-family: var(--wpb-body); font-size: 1rem; line-height: 1.8;
  color: var(--wpb-text-secondary); margin-bottom: 1.5rem; font-style: italic;
}
.wpb .testimonial-card .author { display: flex; align-items: center; gap: .75rem; }
.wpb .testimonial-card .avatar {
  width: 44px; height: 44px; background: var(--wpb-secondary);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--wpb-heading); font-weight: 700; font-size: .85rem; color: var(--wpb-text-light);
}
.wpb .testimonial-card .name {
  font-family: var(--wpb-heading); font-weight: 700; font-size: .8rem;
  text-transform: uppercase; letter-spacing: .06em; color: var(--wpb-tertiary);
}
.wpb .testimonial-card .role { font-size: .75rem; color: var(--wpb-text-muted); }

/* === TABS === */
.wpb .tabs {
  display: flex; gap: 0; border-bottom: 2px solid var(--wpb-border);
  margin-bottom: 3rem; overflow-x: auto;
}
.wpb .tab-btn {
  padding: 1rem 2rem; font-family: var(--wpb-heading); font-size: .8rem;
  font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--wpb-text-muted); background: none; border: none;
  cursor: pointer; position: relative; transition: color .3s; white-space: nowrap;
}
.wpb .tab-btn::after {
  content: ''; position: absolute; bottom: -2px; left: 0; right: 0;
  height: 2px; background: var(--wpb-accent); transform: scaleX(0); transition: transform .3s;
}
.wpb .tab-btn:hover { color: var(--wpb-text-primary); }
.wpb .tab-btn.active { color: var(--wpb-accent); }
.wpb .tab-btn.active::after { transform: scaleX(1); }
.wpb .tab-panel { display: none; animation: wpb-tabFadeIn .5s ease; }
.wpb .tab-panel.active { display: block; }

/* === ACCORDION === */
.wpb .accordion-item {
  border: 1px solid var(--wpb-border); margin-bottom: .75rem; overflow: hidden; transition: all .3s;
}
.wpb .accordion-item:hover { border-color: rgba(0,0,0,.12); }
.wpb .accordion-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.25rem 1.5rem; cursor: pointer; font-family: var(--wpb-heading);
  font-size: .9rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; color: var(--wpb-tertiary); transition: all .3s; background: var(--wpb-bg);
}
.wpb .accordion-header:hover { background: var(--wpb-bg-ice); }
.wpb .accordion-icon { width: 24px; height: 24px; position: relative; flex-shrink: 0; }
.wpb .accordion-icon::before,
.wpb .accordion-icon::after { content: ''; position: absolute; background: var(--wpb-accent); transition: transform .3s; }
.wpb .accordion-icon::before { width: 14px; height: 2px; top: 11px; left: 5px; }
.wpb .accordion-icon::after { width: 2px; height: 14px; top: 5px; left: 11px; }
.wpb .accordion-item.open .accordion-icon::after { transform: rotate(90deg); }
.wpb .accordion-body { max-height: 0; overflow: hidden; transition: max-height .4s ease, padding .4s ease; padding: 0 1.5rem; }
.wpb .accordion-item.open .accordion-body { max-height: 600px; padding: 0 1.5rem 1.5rem; }
.wpb .accordion-body p { color: var(--wpb-text-secondary); font-size: .95rem; line-height: 1.8; }

/* === DETAIL CARDS === */
.wpb .detail-card {
  padding: 2.5rem; background: var(--wpb-bg); border: 1px solid var(--wpb-border);
  transition: all .4s; position: relative; overflow: hidden;
}
.wpb .detail-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0;
  height: 3px; background: var(--wpb-accent); transform: scaleX(0);
  transform-origin: left; transition: transform .4s;
}
.wpb .detail-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.08); }
.wpb .detail-card:hover::before { transform: scaleX(1); }
.wpb .detail-card .card-icon {
  width: 56px; height: 56px; background: var(--wpb-bg-ice);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1.25rem; font-size: 1.5rem; transition: all .3s;
}
.wpb .detail-card:hover .card-icon { background: var(--wpb-accent); color: var(--wpb-text-light); transform: scale(1.05); }
.wpb .detail-card h3 {
  font-family: var(--wpb-heading); font-size: 1rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em; margin-bottom: .75rem; color: var(--wpb-tertiary);
}
.wpb .detail-card p { color: var(--wpb-text-secondary); font-size: .9rem; line-height: 1.7; }
.wpb .detail-card ul { list-style: none; margin-top: 1rem; }
.wpb .detail-card ul li {
  padding: .4rem 0; font-size: .875rem; color: var(--wpb-text-secondary);
  padding-left: 1.25rem; position: relative;
}
.wpb .detail-card ul li::before {
  content: ''; position: absolute; left: 0; top: .75rem;
  width: 6px; height: 6px; background: var(--wpb-accent);
}

/* === TIMELINE === */
.wpb .timeline { position: relative; padding: 2rem 0; }
.wpb .timeline::before {
  content: ''; position: absolute; left: 50%; top: 0; bottom: 0;
  width: 2px; background: var(--wpb-border); transform: translateX(-50%);
}
.wpb .timeline-item { display: flex; align-items: flex-start; margin-bottom: 3rem; position: relative; }
.wpb .timeline-item:nth-child(odd) { flex-direction: row; padding-right: calc(50% + 2rem); }
.wpb .timeline-item:nth-child(even) { flex-direction: row-reverse; padding-left: calc(50% + 2rem); }
.wpb .timeline-dot {
  position: absolute; left: 50%; top: .5rem; width: 16px; height: 16px;
  background: var(--wpb-accent); transform: translateX(-50%); z-index: 2; transition: all .3s;
}
.wpb .timeline-item:hover .timeline-dot {
  transform: translateX(-50%) scale(1.4); box-shadow: 0 0 20px rgba(205,97,85,.4);
}
.wpb .timeline-content {
  padding: 1.75rem; background: var(--wpb-bg); border: 1px solid var(--wpb-border);
  transition: all .3s; width: 100%;
}
.wpb .timeline-content:hover { border-color: var(--wpb-accent); box-shadow: 0 4px 20px rgba(0,0,0,.06); }
.wpb .timeline-step {
  font-family: var(--wpb-heading); font-size: .7rem; font-weight: 700;
  letter-spacing: .15em; text-transform: uppercase; color: var(--wpb-accent); margin-bottom: .5rem;
}
.wpb .timeline-content h3 {
  font-family: var(--wpb-heading); font-size: 1rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em; color: var(--wpb-tertiary); margin-bottom: .5rem;
}
.wpb .timeline-content p { color: var(--wpb-text-secondary); font-size: .9rem; line-height: 1.7; }
.wpb .timeline-tag {
  display: inline-block; font-family: var(--wpb-heading); font-size: .65rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .08em; padding: .35rem .75rem;
  background: var(--wpb-bg-ice); color: var(--wpb-secondary); margin-right: .5rem; margin-top: .5rem;
}

/* === COUNTER === */
.wpb .counter { font-family: var(--wpb-heading); font-size: 2.8rem; font-weight: 800; color: var(--wpb-accent); }
.wpb .counter-label {
  font-family: var(--wpb-heading); font-size: .7rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .12em; color: var(--wpb-text-muted); margin-top: .25rem;
}

/* === CONTACT FORM === */
.wpb .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.wpb .form-group { position: relative; }
.wpb .form-group.full-width { grid-column: 1 / -1; }
.wpb .form-group label {
  display: block; font-family: var(--wpb-heading); font-size: .7rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: var(--wpb-tertiary); margin-bottom: .5rem;
}
.wpb .form-group input,
.wpb .form-group textarea,
.wpb .form-group select {
  width: 100%; padding: 1rem 1.25rem; border: 2px solid var(--wpb-border);
  background: var(--wpb-bg); color: var(--wpb-text-primary);
  font-family: var(--wpb-body); font-size: .95rem; outline: none;
  transition: all .3s; appearance: none; border-radius: 0;
}
.wpb .form-group select {
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23888' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 1.25rem center; padding-right: 3rem;
}
.wpb .form-group input:focus,
.wpb .form-group textarea:focus,
.wpb .form-group select:focus { border-color: var(--wpb-accent); box-shadow: 0 0 0 3px rgba(205,97,85,.1); }
.wpb .form-group input::placeholder,
.wpb .form-group textarea::placeholder { color: var(--wpb-text-muted); }
.wpb .form-group textarea { resize: vertical; min-height: 140px; }
.wpb .form-group .input-hint { font-size: .75rem; color: var(--wpb-text-muted); margin-top: .35rem; }
.wpb .form-group.error input,
.wpb .form-group.error textarea,
.wpb .form-group.error select { border-color: var(--wpb-accent); }
.wpb .form-group.error label { color: var(--wpb-accent); }
.wpb .form-group.success input,
.wpb .form-group.success textarea { border-color: #4caf50; }

.wpb .form-card {
  padding: 3rem; background: var(--wpb-bg); border: 1px solid var(--wpb-border);
  position: relative; overflow: hidden;
}
.wpb .form-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--wpb-accent); }
.wpb .form-card h2 {
  font-family: var(--wpb-heading); font-size: 1.3rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .04em; color: var(--wpb-tertiary); margin-bottom: .5rem;
}
.wpb .form-card .form-subtitle { font-size: .95rem; color: var(--wpb-text-secondary); margin-bottom: 2rem; line-height: 1.6; }

.wpb .form-progress { display: flex; gap: 0; margin-bottom: 2.5rem; border: 1px solid var(--wpb-border); }
.wpb .form-progress .fp-step {
  flex: 1; padding: .75rem; text-align: center; font-family: var(--wpb-heading);
  font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--wpb-text-muted); background: var(--wpb-bg-alt); transition: all .3s;
  cursor: pointer; position: relative;
}
.wpb .form-progress .fp-step.active { background: var(--wpb-accent); color: var(--wpb-text-light); }
.wpb .form-progress .fp-step.completed { background: var(--wpb-tertiary); color: var(--wpb-text-light); }
.wpb .form-progress .fp-step .fp-num { display: block; font-size: .7rem; margin-bottom: .15rem; }

.wpb .form-step { display: none; animation: wpb-tabFadeIn .4s ease; }
.wpb .form-step.active { display: block; }
.wpb .form-nav { display: flex; justify-content: space-between; margin-top: 2rem; gap: 1rem; }
.wpb .form-nav .btn-back {
  display: inline-flex; align-items: center; gap: .5rem; padding: 1rem 2rem;
  background: transparent; color: var(--wpb-text-secondary); font-family: var(--wpb-heading);
  font-weight: 700; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase;
  border: 2px solid var(--wpb-border); cursor: pointer; transition: all .3s;
}
.wpb .form-nav .btn-back:hover { border-color: var(--wpb-text-primary); color: var(--wpb-text-primary); }

.wpb .checkbox-group { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: .25rem; }
.wpb .checkbox-label {
  display: flex; align-items: center; gap: .6rem; padding: .6rem .75rem;
  border: 1px solid var(--wpb-border); cursor: pointer; transition: all .3s;
  font-size: .875rem; color: var(--wpb-text-secondary);
}
.wpb .checkbox-label:hover { border-color: var(--wpb-accent); background: rgba(205,97,85,.02); }
.wpb .checkbox-label input { display: none; }
.wpb .checkbox-label .check-box {
  width: 18px; height: 18px; flex-shrink: 0; border: 2px solid var(--wpb-border);
  display: flex; align-items: center; justify-content: center; transition: all .2s;
  font-size: .7rem; color: transparent;
}
.wpb .checkbox-label input:checked ~ .check-box { background: var(--wpb-accent); border-color: var(--wpb-accent); color: var(--wpb-text-light); }
.wpb .checkbox-label input:checked ~ span:last-child { color: var(--wpb-text-primary); font-weight: 600; }

.wpb .budget-options { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin-top: .25rem; }
.wpb .budget-option {
  text-align: center; padding: .75rem; border: 2px solid var(--wpb-border);
  cursor: pointer; transition: all .3s; font-family: var(--wpb-heading);
  font-size: .75rem; font-weight: 700; letter-spacing: .05em; color: var(--wpb-text-muted);
}
.wpb .budget-option:hover { border-color: var(--wpb-accent); color: var(--wpb-accent); }
.wpb .budget-option input { display: none; }
.wpb .budget-option:has(input:checked) { border-color: var(--wpb-accent); background: rgba(205,97,85,.05); color: var(--wpb-accent); }

.wpb .success-message { display: none; text-align: center; padding: 3rem 2rem; }
.wpb .success-message.show { display: block; }
.wpb .success-message .success-icon { font-size: 3rem; margin-bottom: 1rem; }
.wpb .success-message h3 {
  font-family: var(--wpb-heading); font-size: 1.2rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .04em; color: var(--wpb-tertiary); margin-bottom: .75rem;
}
.wpb .success-message p { color: var(--wpb-text-secondary); font-size: 1rem; line-height: 1.7; max-width: 400px; margin: 0 auto; }

.wpb .spinner {
  display: inline-block; width: 14px; height: 14px;
  border: 2px solid rgba(255,255,255,.3); border-top-color: white;
  border-radius: 50%; animation: wpb-spin .6s linear infinite;
}

/* === CONTACT INFO SIDEBAR === */
.wpb .contact-layout { display: grid; grid-template-columns: 1fr 1.5fr; gap: 4rem; align-items: start; }
.wpb .contact-info { position: sticky; top: 6rem; }
.wpb .contact-method { display: flex; gap: 1rem; align-items: start; padding: 1.25rem 0; border-bottom: 1px solid var(--wpb-border); }
.wpb .contact-method:last-child { border-bottom: none; }
.wpb .contact-method .cm-icon {
  width: 44px; height: 44px; flex-shrink: 0; background: var(--wpb-bg-ice);
  display: flex; align-items: center; justify-content: center; font-size: 1.1rem; transition: all .3s;
}
.wpb .contact-method:hover .cm-icon { background: var(--wpb-accent); color: var(--wpb-text-light); }
.wpb .contact-method h4 {
  font-family: var(--wpb-heading); font-size: .8rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em; color: var(--wpb-tertiary); margin-bottom: .25rem;
}
.wpb .contact-method p { font-size: .9rem; color: var(--wpb-text-secondary); line-height: 1.5; }
.wpb .contact-method a { color: var(--wpb-accent); font-weight: 700; transition: color .3s; }
.wpb .contact-method a:hover { color: var(--wpb-accent-hover); }

/* === FEATURED TESTIMONIALS === */
.wpb .featured-testimonial { display: grid; grid-template-columns: 1fr 1.2fr; gap: 0; border: 1px solid var(--wpb-border); overflow: hidden; margin-bottom: 3rem; }
.wpb .featured-testimonial .ft-visual {
  background: linear-gradient(135deg, var(--wpb-bg-dark), var(--wpb-tertiary));
  padding: 3rem; color: var(--wpb-text-light); display: flex; flex-direction: column; justify-content: center;
}
.wpb .featured-testimonial .ft-visual .big-quote { font-family: var(--wpb-heading); font-size: 6rem; line-height: 1; color: var(--wpb-accent); margin-bottom: .5rem; }
.wpb .featured-testimonial .ft-visual .ft-name { font-family: var(--wpb-heading); font-size: 1.1rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.wpb .featured-testimonial .ft-visual .ft-role { font-size: .85rem; color: rgba(255,255,255,.5); margin-top: .25rem; }
.wpb .featured-testimonial .ft-visual .ft-stars { color: var(--wpb-accent); letter-spacing: 3px; margin-top: 1rem; }
.wpb .featured-testimonial .ft-content { padding: 3rem; background: var(--wpb-bg); display: flex; flex-direction: column; justify-content: center; }
.wpb .featured-testimonial .ft-content blockquote { font-family: var(--wpb-body); font-size: 1.15rem; line-height: 1.9; color: var(--wpb-text-secondary); font-style: italic; margin-bottom: 1.5rem; }
.wpb .featured-testimonial .ft-content .ft-result { padding: 1rem; background: var(--wpb-bg-ice); border-left: 3px solid var(--wpb-accent); }
.wpb .featured-testimonial .ft-content .ft-result strong { font-family: var(--wpb-heading); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--wpb-accent); display: block; margin-bottom: .35rem; }
.wpb .featured-testimonial .ft-content .ft-result span { font-size: .9rem; color: var(--wpb-text-secondary); line-height: 1.6; }
.wpb .testimonials-masonry { columns: 2; column-gap: 1.5rem; margin-top: 3rem; }
.wpb .testimonials-masonry .testimonial-card { break-inside: avoid; margin-bottom: 1.5rem; }

/* === VALUES GRID === */
.wpb .values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 3rem; }
.wpb .value-card { padding: 2rem; text-align: center; border: 1px solid var(--wpb-border); background: var(--wpb-bg); transition: all .4s; }
.wpb .value-card:hover { transform: translateY(-4px); box-shadow: 0 8px 30px rgba(0,0,0,.06); border-color: var(--wpb-accent); }
.wpb .value-card .v-icon { font-size: 2rem; margin-bottom: 1rem; }
.wpb .value-card h4 { font-family: var(--wpb-heading); font-size: .85rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--wpb-tertiary); margin-bottom: .5rem; }
.wpb .value-card p { font-size: .875rem; color: var(--wpb-text-secondary); line-height: 1.7; }

/* === INDUSTRIES GRID === */
.wpb .industries-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; margin-top: 3rem; }
.wpb .industry-card { text-align: center; padding: 2rem 1.5rem; border: 1px solid var(--wpb-border); background: var(--wpb-bg); transition: all .4s; cursor: default; }
.wpb .industry-card:hover { border-color: var(--wpb-accent); transform: translateY(-4px); box-shadow: 0 8px 30px rgba(0,0,0,.06); }
.wpb .industry-card .ind-icon { font-size: 2rem; margin-bottom: 1rem; }
.wpb .industry-card h4 { font-family: var(--wpb-heading); font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--wpb-tertiary); margin-bottom: .5rem; }
.wpb .industry-card p { font-size: .8rem; color: var(--wpb-text-secondary); line-height: 1.6; }

/* === SOLUTION SHOWCASES === */
.wpb .solution-showcase { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 3rem 0; border: 1px solid var(--wpb-border); overflow: hidden; }
.wpb .solution-showcase .visual { background: linear-gradient(135deg, var(--wpb-bg-dark), var(--wpb-tertiary)); padding: 3rem; color: var(--wpb-text-light); display: flex; flex-direction: column; justify-content: center; }
.wpb .solution-showcase .visual .big-num { font-family: var(--wpb-heading); font-size: 5rem; font-weight: 800; color: var(--wpb-accent); line-height: 1; margin-bottom: .5rem; }
.wpb .solution-showcase .visual h3 { font-family: var(--wpb-heading); font-size: 1.2rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin-bottom: .75rem; }
.wpb .solution-showcase .visual p { font-size: .95rem; line-height: 1.7; color: rgba(255,255,255,.65); }
.wpb .solution-showcase .details { padding: 3rem; background: var(--wpb-bg); }
.wpb .solution-showcase .details h4 { font-family: var(--wpb-heading); font-size: .85rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--wpb-accent); margin-bottom: .75rem; }
.wpb .solution-showcase .details p { font-size: .95rem; line-height: 1.8; color: var(--wpb-text-secondary); margin-bottom: 1.25rem; }
.wpb .solution-showcase .details .benefit { display: flex; gap: .75rem; align-items: start; padding: .5rem 0; }
.wpb .solution-showcase .details .benefit-icon { width: 28px; height: 28px; flex-shrink: 0; background: var(--wpb-bg-ice); display: flex; align-items: center; justify-content: center; font-size: .75rem; }
.wpb .solution-showcase .details .benefit span { font-size: .9rem; color: var(--wpb-text-secondary); line-height: 1.5; }
.wpb .solution-showcase:nth-child(even) .visual { order: 2; }
.wpb .solution-showcase:nth-child(even) .details { order: 1; }

/* === CTA BANNER CONTENT (inside dark Elementor section) === */
.wpb-dark .cta-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-top: 1.5rem; }
.wpb-dark .phone-link { display: block; margin-top: 1rem; font-family: var(--wpb-heading); font-size: .85rem; font-weight: 700; color: var(--wpb-accent); letter-spacing: .05em; transition: color .3s; }
.wpb-dark .phone-link:hover { color: var(--wpb-text-light); }

/* === UTILITY: CHECKLIST === */
.wpb .check-list { list-style: none; margin-bottom: 2rem; }
.wpb .check-list li {
  padding: .6rem 0; font-size: .95rem; color: var(--wpb-text-secondary);
  padding-left: 1.5rem; position: relative;
}
.wpb .check-list li::before {
  content: '\2713'; position: absolute; left: 0;
  color: var(--wpb-accent); font-weight: 700;
}

/* === RESPONSIVE === */
@media (max-width: 1024px) {
  .wpb .services-grid { grid-template-columns: repeat(2, 1fr); }
  .wpb .process-steps { grid-template-columns: repeat(2, 1fr); gap: 2.5rem; }
  .wpb .process-steps::before { display: none; }
  .wpb .testimonials-grid { grid-template-columns: 1fr 1fr; }
  .wpb .timeline::before { left: 2rem; }
  .wpb .timeline-item:nth-child(odd),
  .wpb .timeline-item:nth-child(even) { flex-direction: row; padding-right: 0; padding-left: 4rem; }
  .wpb .timeline-dot { left: 2rem; }
}
@media (max-width: 768px) {
  .wpb .services-grid,
  .wpb .usecases-grid,
  .wpb .testimonials-grid { grid-template-columns: 1fr; }
  .wpb .process-steps { grid-template-columns: 1fr 1fr; }
  .wpb .form-grid { grid-template-columns: 1fr; }
  .wpb .tabs { flex-wrap: wrap; }
  .wpb .tab-btn { padding: .75rem 1.25rem; font-size: .7rem; }
  .wpb .timeline::before { left: 1rem; }
  .wpb .timeline-item:nth-child(odd),
  .wpb .timeline-item:nth-child(even) { padding-left: 2.5rem; }
  .wpb .timeline-dot { left: 1rem; }
  .wpb .contact-layout { grid-template-columns: 1fr; }
  .wpb .contact-info { position: static; }
  .wpb .checkbox-group { grid-template-columns: 1fr; }
  .wpb .budget-options { grid-template-columns: 1fr 1fr; }
  .wpb .values-grid { grid-template-columns: 1fr; }
  .wpb .industries-grid { grid-template-columns: 1fr 1fr; }
  .wpb .solution-showcase { grid-template-columns: 1fr; }
  .wpb .solution-showcase:nth-child(even) .visual { order: 0; }
  .wpb .solution-showcase:nth-child(even) .details { order: 0; }
  .wpb .featured-testimonial { grid-template-columns: 1fr; }
  .wpb .testimonials-masonry { columns: 1; }
  .wpb .hero-stats { flex-wrap: wrap; gap: 2rem; }
  .wpb-hero-content h1,
  .wpb-page-hero h1 { font-size: 2rem; }
}
