/* WebFirm – Default Module Styles v2 */
:root {
  --wf-primary:   #2563eb;
  --wf-primary-d: #1d4ed8;
  --wf-accent:    #2563eb;
  --wf-dark:      #111827;
  --wf-text:      #1f2937;
  --wf-muted:     #6b7280;
  --wf-light:     #f9fafb;
  --wf-border:    #e5e7eb;
  --wf-radius:    12px;
}

/* HERO */
#hero.wf-hero { min-height: 100vh; display: flex; align-items: center; padding-top: 80px; background: linear-gradient(135deg, var(--wf-dark) 0%, #1e3a8a 100%); position: relative; overflow: hidden; }
.wf-hero--bg { background: var(--hero-bg, linear-gradient(135deg, #111827 0%, #1e3a8a 100%)) center/cover no-repeat !important; }
.wf-hero--bg::before { content:''; position:absolute; inset:0; background:rgba(0,0,0,.5); }
.wf-hero-inner { position:relative; z-index:1; padding:60px 5vw; max-width:820px; }
.wf-hero-tag { font-size:11px; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,.4); margin-bottom:16px; display:block; }
.wf-hero-h1 { font-size:clamp(40px,6.5vw,84px); font-weight:800; color:#fff; line-height:1.05; margin-bottom:20px; letter-spacing:-1.5px; }
.wf-hero-sub { font-size:clamp(16px,1.8vw,20px); color:rgba(255,255,255,.7); max-width:560px; margin-bottom:36px; line-height:1.8; font-weight:300; }
.wf-hero-actions { display:flex; gap:14px; flex-wrap:wrap; }
.wf-hero-btn { display:inline-flex; align-items:center; padding:15px 32px; background:var(--wf-accent); color:#fff; font-size:14px; font-weight:600; border-radius:8px; transition:all .2s; text-decoration:none; }
.wf-hero-btn:hover { filter:brightness(1.12); transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.25); }

/* SECTIONS */
.wf-section { padding:96px 5vw; }
.wf-section-alt { background:var(--wf-light); }
.wf-section-dark { background:var(--wf-dark); color:#fff; }
.wf-container { max-width:1200px; margin:0 auto; }
.wf-section-title { font-size:clamp(28px,4vw,48px); font-weight:700; color:var(--wf-text); margin-bottom:48px; line-height:1.15; letter-spacing:-.5px; }
.wf-section-dark .wf-section-title { color:#fff; }
.wf-text-center { text-align:center; }

/* ABOUT */
.wf-about-inner { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; max-width:1100px; margin:0 auto; }
.wf-about-image img { width:100%; border-radius:var(--wf-radius); aspect-ratio:4/5; object-fit:cover; }
.wf-about-content { font-size:16px; color:var(--wf-muted); line-height:1.9; font-weight:300; }
.wf-about-content p { margin-bottom:16px; }

/* SERVICES */
.wf-services-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:24px; max-width:1200px; margin:0 auto; }
.wf-service-card { background:#fff; border:1px solid var(--wf-border); border-radius:var(--wf-radius); padding:32px 24px; transition:all .2s; }
.wf-service-card:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(0,0,0,.08); border-color:var(--wf-primary); }
.wf-service-icon { font-size:32px; margin-bottom:16px; display:block; }
.wf-service-title { font-size:18px; font-weight:700; color:var(--wf-text); margin-bottom:8px; }
.wf-service-desc { font-size:14px; color:var(--wf-muted); line-height:1.7; }

/* GALLERY */
.wf-gallery-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px; max-width:1200px; margin:0 auto; }
.wf-gallery-item { aspect-ratio:1; overflow:hidden; border-radius:10px; cursor:pointer; }
.wf-gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.wf-gallery-item:hover img { transform:scale(1.06); }

/* REVIEWS */
.wf-reviews-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; max-width:1200px; margin:0 auto; }
.wf-review-card { background:#fff; border:1px solid var(--wf-border); border-radius:var(--wf-radius); padding:28px; }
.wf-review-stars { color:#f59e0b; font-size:14px; letter-spacing:2px; margin-bottom:12px; }
.wf-review-text { font-size:15px; font-style:italic; color:var(--wf-text); margin-bottom:16px; line-height:1.7; }
.wf-review-author { font-size:13px; font-weight:600; color:var(--wf-muted); }

/* PRICING */
.wf-pricing-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:24px; max-width:1000px; margin:0 auto; }
.wf-pricing-card { background:#fff; border:2px solid var(--wf-border); border-radius:var(--wf-radius); padding:36px 24px; text-align:center; transition:all .2s; }
.wf-pricing-card:hover { border-color:var(--wf-primary); }
.wf-pricing-name { font-size:11px; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; color:var(--wf-muted); margin-bottom:16px; }
.wf-pricing-price { font-size:48px; font-weight:800; color:var(--wf-primary); margin-bottom:16px; line-height:1; }
.wf-pricing-desc { font-size:13px; color:var(--wf-muted); line-height:1.9; white-space:pre-line; }

/* FAQ */
.wf-faq-list { max-width:760px; margin:0 auto; }
.wf-faq-item { border-bottom:1px solid var(--wf-border); overflow:hidden; }
.wf-faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; padding:20px 0; background:none; border:none; cursor:pointer; font-size:16px; font-weight:600; color:var(--wf-text); text-align:left; gap:16px; font-family:inherit; }
.wf-faq-q:hover { color:var(--wf-primary); }
.wf-faq-arrow { font-size:18px; color:var(--wf-primary); transition:transform .2s; flex-shrink:0; }
.wf-faq-q.active .wf-faq-arrow { transform:rotate(45deg); }
.wf-faq-a { display:none; padding:0 0 20px; font-size:15px; color:var(--wf-muted); line-height:1.8; font-weight:300; }
.wf-faq-a.open { display:block; }

/* STATS */
.wf-stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:40px; text-align:center; max-width:900px; margin:0 auto; }
.wf-stat-number { font-size:56px; font-weight:900; line-height:1; margin-bottom:8px; color:inherit; }
.wf-section-dark .wf-stat-number { color:#fff; }
.wf-stat-label { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.5); }

/* TEAM */
.wf-team-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:32px; max-width:1000px; margin:0 auto; text-align:center; }
.wf-team-avatar { width:80px; height:80px; border-radius:50%; background:var(--wf-light); border:2px solid var(--wf-primary); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; font-size:28px; font-weight:700; color:var(--wf-primary); }
.wf-team-name { font-size:17px; font-weight:700; margin-bottom:4px; }
.wf-team-role { font-size:12px; color:var(--wf-muted); }

/* CTA */
.wf-cta { padding:80px 5vw; text-align:center; background:var(--wf-primary); }
.wf-cta-title { font-size:clamp(30px,4.5vw,52px); font-weight:800; color:#fff; margin-bottom:12px; }
.wf-cta-subtitle { font-size:18px; color:rgba(255,255,255,.75); margin-bottom:32px; }
.wf-btn-white { display:inline-flex; align-items:center; padding:14px 32px; background:#fff; color:var(--wf-primary); font-size:14px; font-weight:700; border-radius:8px; transition:all .2s; text-decoration:none; }
.wf-btn-white:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.15); }

/* CONTACT */
.wf-contact-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:64px; align-items:start; max-width:1000px; margin:0 auto; }
.wf-contact-item { display:flex; align-items:flex-start; gap:14px; margin-bottom:22px; font-size:15px; color:var(--wf-text); }
.wf-contact-icon { font-size:18px; flex-shrink:0; }
.wf-contact-item a { color:var(--wf-primary); }
.wf-form input, .wf-form textarea { width:100%; padding:12px 16px; border:1.5px solid var(--wf-border); border-radius:8px; font-size:15px; font-family:inherit; outline:none; transition:border .2s; margin-bottom:12px; background:#fff; color:var(--wf-text); }
.wf-form input:focus, .wf-form textarea:focus { border-color:var(--wf-primary); }
.wf-form textarea { resize:vertical; min-height:120px; }
.wf-btn-primary { display:inline-flex; align-items:center; padding:13px 28px; background:var(--wf-primary); color:#fff; font-size:14px; font-weight:600; border:none; border-radius:8px; cursor:pointer; transition:all .2s; font-family:inherit; }
.wf-btn-primary:hover { filter:brightness(1.1); transform:translateY(-1px); }

/* FOOTER */
.wf-footer { background:var(--wf-dark); color:rgba(255,255,255,.6); padding:48px 5vw 0; }
.wf-footer-inner { display:flex; align-items:center; justify-content:space-between; padding-bottom:32px; flex-wrap:wrap; gap:24px; border-bottom:1px solid rgba(255,255,255,.08); }
.wf-footer-name { font-size:20px; font-weight:700; color:#fff; }
.wf-footer-logo { height:36px; }
.wf-footer-links { display:flex; gap:24px; }
.wf-footer-links a { font-size:13px; color:rgba(255,255,255,.4); transition:color .2s; }
.wf-footer-links a:hover { color:#fff; }
.wf-footer-bottom { display:flex; align-items:center; justify-content:space-between; padding:20px 0; font-size:12px; flex-wrap:wrap; gap:8px; }
.wf-footer-credit a { color:rgba(255,255,255,.25); transition:color .2s; }
.wf-footer-credit a:hover { color:#fff; }

@media(max-width:900px) {
  .wf-about-inner, .wf-contact-grid { grid-template-columns:1fr; gap:40px; }
  .wf-about-image { order:-1; }
}
@media(max-width:600px) {
  .wf-section { padding:64px 5vw; }
  .wf-stats-grid { grid-template-columns:1fr 1fr; }
}

/* TEAM - photo support */
.wf-team-avatar--photo {
  background: none;
  padding: 0;
  overflow: hidden;
  border: 2px solid var(--wf-primary, #2563eb);
}
.wf-team-avatar--photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.wf-team-desc {
  font-size: 12px;
  color: var(--wf-muted, #6b7280);
  margin-top: 4px;
}

/* STATS - icon + color variants */
.wf-stat-icon {
  font-size: 28px;
  margin-bottom: 8px;
  display: block;
}
.wf-section-primary {
  background: var(--wf-primary, #2563eb);
  color: #fff;
}
.wf-section-primary .wf-section-title { color: #fff; }
.wf-section-primary .wf-stat-number { color: #fff; }
.wf-section-primary .wf-stat-label { color: rgba(255,255,255,.6); }
.wf-section-alt .wf-stat-number { color: var(--wf-text, #1f2937); }
.wf-section-alt .wf-stat-label { color: var(--wf-muted, #6b7280); }

/* REVIEWS on dark bg */
.wf-section-dark .wf-reviews-grid .wf-review-card {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.1);
}
.wf-section-dark .wf-review-text { color: rgba(255,255,255,.9); }
.wf-section-dark .wf-review-author { color: rgba(255,255,255,.45); }

/* ABOUT - typography improvements */
.wf-about-content {
  font-size: 16px;
  color: var(--wf-muted, #6b7280);
  line-height: 1.9;
  font-weight: 300;
}
.wf-about-content p { margin-bottom: 14px; }
.wf-about-content strong { color: var(--wf-text, #1f2937); font-weight: 600; }
