/* HireFreelance — widget styles */

/* Hero */
.hf-hero{padding:80px 20px}
.hf-hero-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}
.hf-hero .hf-eyebrow{display:inline-block;font-size:.875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-bottom:16px;color:var(--hf-primary)}
.hf-hero h1{font-size:clamp(2rem,4.5vw,3.5rem);line-height:1.1;margin:0 0 16px}
.hf-hero p{font-size:1.125rem;color:var(--hf-muted);margin:0 0 28px;max-width:560px}
.hf-hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.hf-cta-primary{display:inline-block;background:var(--hf-primary);color:#fff!important;padding:14px 24px;border-radius:10px;font-weight:600;text-decoration:none;transition:transform .15s ease, box-shadow .15s ease}
.hf-cta-primary:hover{transform:translateY(-1px);box-shadow:var(--hf-shadow);text-decoration:none}
.hf-cta-secondary{display:inline-block;border:1px solid var(--hf-border);color:var(--hf-text)!important;padding:13px 24px;border-radius:10px;font-weight:600;text-decoration:none;background:#fff}
.hf-cta-secondary:hover{border-color:var(--hf-primary);color:var(--hf-primary)!important;text-decoration:none}
.hf-hero-img img{border-radius:20px;box-shadow:var(--hf-shadow);width:100%;height:auto}
@media (max-width:768px){.hf-hero-inner{grid-template-columns:1fr;text-align:left}}

/* Service Card */
.hf-service-card{display:block;background:#fff;border:1px solid var(--hf-border);border-radius:var(--hf-radius);padding:28px;transition:transform .2s, box-shadow .2s, border-color .2s;color:inherit;text-decoration:none;height:100%}
.hf-service-card:hover{transform:translateY(-4px);box-shadow:var(--hf-shadow);border-color:transparent;text-decoration:none}
.hf-service-card .hf-icon{font-size:2rem;display:inline-block;margin-bottom:12px;color:var(--hf-primary)}
.hf-service-card h3{margin:0 0 8px;font-size:1.25rem}
.hf-service-card p{margin:0;color:var(--hf-muted)}

/* Project Grid */
.hf-project-grid-wrap{}
.hf-project-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;justify-content:center}
.hf-filter{background:#fff;border:1px solid var(--hf-border);padding:8px 16px;border-radius:999px;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--hf-text)}
.hf-filter:hover{border-color:var(--hf-primary);color:var(--hf-primary)}
.hf-filter.is-active{background:var(--hf-primary);color:#fff;border-color:var(--hf-primary)}
.hf-project-grid{display:grid;gap:24px}
.hf-cols-2{grid-template-columns:repeat(2,1fr)}
.hf-cols-3{grid-template-columns:repeat(3,1fr)}
.hf-cols-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.hf-cols-3,.hf-cols-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.hf-cols-2,.hf-cols-3,.hf-cols-4{grid-template-columns:1fr}}

/* Project Card */
.hf-project-card{background:#fff;border:1px solid var(--hf-border);border-radius:var(--hf-radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s, box-shadow .2s}
.hf-project-card:hover{transform:translateY(-4px);box-shadow:var(--hf-shadow)}
.hf-project-img{aspect-ratio:4/3;background:#f1f5f9;overflow:hidden;display:block}
.hf-project-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.hf-project-card:hover .hf-project-img img{transform:scale(1.05)}
.hf-project-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}
.hf-project-cat{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--hf-primary)}
.hf-project-body h3{margin:0;font-size:1.125rem}
.hf-project-body h3 a{color:var(--hf-text);text-decoration:none}
.hf-project-body p{color:var(--hf-muted);margin:0;font-size:.9375rem}
.hf-stack{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:8px 0 0}
.hf-stack li{background:var(--hf-bg-alt);border:1px solid var(--hf-border);font-size:.75rem;padding:3px 10px;border-radius:999px;color:var(--hf-muted)}
.hf-project-links{display:flex;gap:12px;margin-top:auto;padding-top:12px;font-size:.875rem;font-weight:600}

/* Skills */
.hf-skills{display:flex;flex-direction:column;gap:16px}
.hf-skill-row{display:flex;justify-content:space-between;margin-bottom:6px;font-weight:500}
.hf-skill-track{background:var(--hf-bg-alt);border-radius:999px;overflow:hidden;height:8px}
.hf-skill-fill{height:100%;background:linear-gradient(90deg,var(--hf-primary),var(--hf-accent));border-radius:999px;transition:width .8s ease}

/* Timeline */
.hf-timeline{list-style:none;padding:0;margin:0;position:relative}
.hf-timeline:before{content:"";position:absolute;left:120px;top:0;bottom:0;width:2px;background:var(--hf-border)}
.hf-timeline-item{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:16px 0 16px 32px;position:relative}
.hf-timeline-item:before{content:"";position:absolute;left:115px;top:24px;width:12px;height:12px;border-radius:50%;background:var(--hf-primary);border:3px solid #fff;box-shadow:0 0 0 2px var(--hf-primary)}
.hf-timeline-date{font-weight:600;color:var(--hf-muted);font-size:.875rem}
.hf-timeline-body h3{margin:0 0 4px}
.hf-timeline-sub{margin:0;color:var(--hf-primary);font-weight:500}
@media (max-width:600px){.hf-timeline:before{left:8px}.hf-timeline-item{grid-template-columns:1fr;padding-left:32px}.hf-timeline-item:before{left:3px}}

/* Testimonial */
.hf-testimonial{background:#fff;border:1px solid var(--hf-border);border-radius:var(--hf-radius);padding:28px;margin:0}
.hf-rating{color:#f59e0b;letter-spacing:2px;font-size:1.125rem;margin-bottom:12px}
.hf-testimonial blockquote{margin:0 0 20px;font-size:1.125rem;line-height:1.6;color:var(--hf-text)}
.hf-testimonial figcaption{display:flex;align-items:center;gap:12px}
.hf-testimonial figcaption img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.hf-testimonial figcaption span{color:var(--hf-muted);font-size:.875rem}

/* Stats */
.hf-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:24px;text-align:center}
.hf-stat-num{font-size:2.5rem;font-weight:800;color:var(--hf-primary);line-height:1}
.hf-stat-num span{font-size:1.5rem;margin-left:2px;color:var(--hf-accent)}
.hf-stat-label{color:var(--hf-muted);margin-top:6px;font-weight:500}

/* CTA Banner */
.hf-cta-banner{padding:56px 20px;border-radius:var(--hf-radius)}
.hf-cta-banner-inner{max-width:800px;margin:0 auto;text-align:center}
.hf-cta-banner h2{font-size:clamp(1.5rem,3vw,2.25rem);margin:0 0 12px}
.hf-cta-banner p{margin:0 0 24px;opacity:.85}

/* Contact */
.hf-contact-card{background:#fff;border:1px solid var(--hf-border);border-radius:var(--hf-radius);padding:32px;max-width:640px;margin:0 auto;box-shadow:var(--hf-shadow)}
.hf-contact-card h2{margin:0 0 8px}
.hf-form{display:grid;gap:14px;margin-top:20px}
.hf-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.9375rem}
.hf-form input,.hf-form select,.hf-form textarea{padding:11px 14px;border:1px solid var(--hf-border);border-radius:8px;font-family:inherit;font-size:1rem;background:#fff;color:var(--hf-text);font-weight:400}
.hf-form input:focus,.hf-form select:focus,.hf-form textarea:focus{outline:0;border-color:var(--hf-primary);box-shadow:0 0 0 3px rgba(37,99,235,.15)}
.hf-form button{justify-self:start;border:0;cursor:pointer}
.hf-alert{padding:12px 16px;border-radius:8px;margin:12px 0;font-weight:500}
.hf-alert.hf-success{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
.hf-alert.hf-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
