/* HandyAce homepage visual polish — V3 */
.home-v3 {
  --v3-panel: #181715;
  --v3-panel-2: #201d1a;
  --v3-cream: #f3ece6;
  --v3-muted: #bcaea4;
  --v3-accent: #ffb77d;
  background:
    radial-gradient(circle at 82% 7%, rgba(255,183,125,.08), transparent 26rem),
    #121212;
}

.home-v3 main { padding-top: 102px; }
.home-v3 .ha-shell { width: min(1240px, calc(100% - 48px)); }

/* Header — stronger brand, quieter utility strip */
.home-v3 .ha-utility { height: 30px; background: #0b0b0b; color: rgba(244,232,222,.64); border-bottom-color: rgba(255,255,255,.06); }
.home-v3 .ha-utility .ha-shell { height: 30px !important; }
.home-v3 .ha-header { top: 30px !important; background: rgba(15,15,15,.92); border-bottom-color: rgba(255,255,255,.08); box-shadow: 0 10px 35px rgba(0,0,0,.16); }
.home-v3 .ha-header .ha-shell { height: 72px !important; }
.home-v3 .ha-brand { gap: 12px; }
.home-v3 .ha-brand-icon { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; color: #1b130e; background: var(--v3-accent); font-size: 23px !important; border-radius: 10px; }
.home-v3 .ha-brand strong { font-size: 20px; letter-spacing: -.04em; }
.home-v3 .ha-brand small { margin-top: 6px; font-size: 8px; letter-spacing: .16em; }
.home-v3 .ha-nav-link { font-size: 14px; color: #d7cdc6; }
.home-v3 .ha-phone-link { font-size: 14px; }
.home-v3 .ha-primary-btn,
.home-v3 .ha-secondary-btn { border-radius: 10px; min-height: 48px; padding-inline: 20px; }
.home-v3 .ha-primary-btn { box-shadow: 0 10px 30px rgba(255,183,125,.10); }

/* Hero */
.v3-hero { position: relative; overflow: hidden; border-bottom: 1px solid rgba(255,255,255,.07); }
.v3-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(to bottom, black, transparent 84%);
  opacity: .58;
}
.v3-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.04fr) minmax(420px,.96fr); gap: 56px; align-items: center; min-height: 680px; padding-block: 72px; }
.v3-eyebrow { display: inline-flex; align-items: center; gap: 9px; color: #e7d8ce; font: 700 11px/1 'JetBrains Mono', monospace; letter-spacing: .14em; text-transform: uppercase; }
.v3-eyebrow::before { content:""; width: 28px; height: 2px; background: var(--v3-accent); box-shadow: 0 0 12px rgba(255,183,125,.25); }
.v3-title { max-width: 760px; color: var(--v3-cream); font-size: clamp(52px, 6.1vw, 78px); line-height: .97; letter-spacing: -.055em; font-weight: 680; }
.v3-title .accent { color: var(--v3-accent); }
.v3-copy { max-width: 690px; color: #cabcb3; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.62; }
.v3-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.v3-subnote { margin-top: 17px; color: #8f837b; font-size: 13px; line-height: 1.5; }
.v3-mini-proof { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 38px; max-width: 700px; }
.v3-mini-proof > div { min-height: 78px; padding: 16px; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.07); border-radius: 14px; }
.v3-mini-proof strong { display: block; color: #eee5df; font-size: 14px; margin-bottom: 5px; }
.v3-mini-proof span { color: #8f837b; font-size: 12px; line-height: 1.35; }

.v3-visual { position: relative; min-height: 540px; border-radius: 24px; overflow: hidden; background: #1a1816; border: 1px solid rgba(255,183,125,.24); box-shadow: 0 35px 90px rgba(0,0,0,.38); }
.v3-visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.76) contrast(1.02) brightness(.68); transform: scale(1.015); }
.v3-visual::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(12,12,12,.02) 25%, rgba(12,12,12,.28) 54%, rgba(12,12,12,.96) 100%); }
.v3-visual-badge { position:absolute; z-index:2; top:18px; left:18px; padding:10px 12px; border-radius:999px; background:rgba(16,16,16,.82); border:1px solid rgba(255,255,255,.12); color:#eadfd8; font:700 10px/1 'JetBrains Mono',monospace; letter-spacing:.10em; text-transform:uppercase; backdrop-filter: blur(10px); }
.v3-visual-card { position:absolute; z-index:2; left:22px; right:22px; bottom:22px; padding:24px; border-radius:18px; background:rgba(19,18,17,.88); border:1px solid rgba(255,183,125,.24); backdrop-filter: blur(14px); }
.v3-visual-card .kicker { color:var(--v3-accent); font:700 10px/1 'JetBrains Mono',monospace; letter-spacing:.14em; text-transform:uppercase; }
.v3-visual-card h2 { margin-top:10px; color:#f4ece6; font-size:28px; line-height:1.04; letter-spacing:-.035em; font-weight:700; }
.v3-visual-card p { margin-top:10px; color:#aa9d94; font-size:14px; line-height:1.55; }
.v3-visual-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.v3-visual-list span { padding:7px 9px; border-radius:999px; background:rgba(255,183,125,.08); border:1px solid rgba(255,183,125,.16); color:#d9c7bb; font-size:11px; }

/* Trust strip */
.v3-trust { border-bottom:1px solid rgba(255,255,255,.07); background:#0f0f0f; }
.v3-trust-row { display:grid; grid-template-columns:repeat(4,1fr); }
.v3-trust-item { display:flex; align-items:center; gap:11px; min-height:72px; padding:0 20px; border-right:1px solid rgba(255,255,255,.07); color:#a99c93; font-size:13px; }
.v3-trust-item:last-child { border-right:0; }
.v3-trust-item .material-symbols-outlined { color:var(--v3-accent); font-size:20px !important; }
.v3-trust-item { text-decoration:none; }
.v3-trust-item:hover { color:#e8ddd6; background:rgba(255,183,125,.035); }

.v3-proof-band { border-block:1px solid rgba(255,183,125,.16); background:linear-gradient(90deg,rgba(255,183,125,.055),rgba(255,255,255,.015)); }
.v3-proof-inner { min-height:190px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:36px; align-items:center; padding-block:34px; }
.v3-proof-inner h2 { margin-top:10px; max-width:780px; color:#f2eae4; font-size:clamp(28px,3vw,42px); line-height:1.05; letter-spacing:-.04em; font-weight:680; }
.v3-proof-inner p:not(.v3-kicker) { margin-top:12px; max-width:760px; color:#a99d95; font-size:15px; line-height:1.6; }
.v3-proof-inner .ha-primary-btn { white-space:nowrap; }

/* Sections */
.v3-section { padding-block: 108px; }
.v3-section-soft { background: linear-gradient(180deg, #151514, #111); border-block:1px solid rgba(255,255,255,.07); }
.v3-section-head { display:grid; grid-template-columns:.9fr 1.1fr; gap:48px; align-items:end; margin-bottom:44px; }
.v3-kicker { color:var(--v3-accent); font:700 11px/1.3 'JetBrains Mono',monospace; letter-spacing:.17em; text-transform:uppercase; }
.v3-heading { margin-top:12px; max-width:760px; color:#f2ebe6; font-size:clamp(36px,4.2vw,56px); line-height:1.02; letter-spacing:-.045em; font-weight:680; }
.v3-section-copy { color:#aa9e96; font-size:17px; line-height:1.65; max-width:690px; }

.v3-service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.v3-service { position:relative; min-height:340px; padding:26px; display:flex; flex-direction:column; text-decoration:none; border-radius:18px; overflow:hidden; background:linear-gradient(180deg,#1c1a18,#151514); border:1px solid rgba(255,255,255,.08); transition:transform .25s ease,border-color .25s ease,background .25s ease; }
.v3-service::before { content:""; position:absolute; inset:0 0 auto; height:2px; background:linear-gradient(90deg,var(--v3-accent),transparent 58%); opacity:.65; }
.v3-service:hover { transform:translateY(-4px); border-color:rgba(255,183,125,.32); background:linear-gradient(180deg,#201d1a,#161514); }
.v3-service-icon { width:48px; height:48px; display:flex; align-items:center; justify-content:center; border-radius:14px; background:rgba(255,183,125,.09); border:1px solid rgba(255,183,125,.18); color:var(--v3-accent); }
.v3-service h3 { margin-top:auto; color:#f0e7e1; font-size:24px; line-height:1.05; letter-spacing:-.025em; font-weight:700; }
.v3-service p { margin-top:12px; color:#9d9189; font-size:14px; line-height:1.55; }
.v3-service .more { margin-top:18px; color:var(--v3-accent); font:700 11px/1 'JetBrains Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }

.v3-split { display:grid; grid-template-columns:1.05fr .95fr; gap:18px; }
.v3-big-card, .v3-side-card { border-radius:20px; border:1px solid rgba(255,255,255,.08); background:#171716; overflow:hidden; }
.v3-big-card { padding:38px; position:relative; }
.v3-big-card::after { content:""; position:absolute; width:260px; height:260px; right:-100px; top:-120px; border-radius:50%; background:rgba(255,183,125,.07); filter:blur(4px); }
.v3-big-card h3 { position:relative; z-index:1; color:#f1e9e3; font-size:clamp(32px,3.2vw,46px); line-height:1.02; letter-spacing:-.045em; font-weight:680; max-width:700px; }
.v3-big-card p { position:relative; z-index:1; color:#a99c93; font-size:16px; line-height:1.65; max-width:690px; margin-top:18px; }
.v3-side-card { padding:28px; }
.v3-side-card h4 { color:#eee5df; font-size:20px; font-weight:700; }
.v3-checks { margin-top:20px; display:grid; gap:12px; }
.v3-checks div { display:flex; gap:10px; color:#a99c93; font-size:14px; line-height:1.45; }
.v3-checks .material-symbols-outlined { color:var(--v3-accent); font-size:19px !important; margin-top:1px; }

.v3-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.v3-step { padding:30px; min-height:250px; border-radius:18px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.018); }
.v3-step-num { color:rgba(255,183,125,.38); font:700 42px/1 'JetBrains Mono',monospace; }
.v3-step h3 { margin-top:50px; color:#eee6e0; font-size:22px; font-weight:700; }
.v3-step p { margin-top:10px; color:#968b84; font-size:14px; line-height:1.6; }

/* Estimate */
.v3-estimate-wrap { display:grid; grid-template-columns:.82fr 1.18fr; gap:22px; align-items:start; }
.v3-estimate-copy { position:sticky; top:132px; }
.v3-estimate-copy h2 { color:#f3ebe5; font-size:clamp(40px,4.8vw,62px); line-height:.98; letter-spacing:-.05em; font-weight:680; }
.v3-estimate-copy p { margin-top:18px; color:#a99d95; font-size:17px; line-height:1.65; }
.v3-estimate-box { padding:32px; border-radius:22px; border:1px solid rgba(255,183,125,.22); background:linear-gradient(180deg,#1a1917,#141413); box-shadow:0 28px 80px rgba(0,0,0,.25); }
.v3-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.v3-form-grid .full { grid-column:1/-1; }
.home-v3 .ha-input { border-radius:10px; background:#0f0f0f; min-height:52px; padding:13px 14px; }
.home-v3 textarea.ha-input { min-height:132px; }
.home-v3 .ha-label { font-size:10px; letter-spacing:.13em; }

/* FAQ */
.v3-faq { max-width:920px; margin-inline:auto; border-top:1px solid rgba(255,255,255,.08); }
.v3-faq .faq-item { border-bottom:1px solid rgba(255,255,255,.08); }
.v3-faq .faq-toggle { padding:24px 0; }
.v3-faq .faq-toggle span:first-child { color:#e9e1db; font-size:18px; font-weight:650; }
.v3-faq .faq-body > div { padding:0 0 24px; color:#a2968f; line-height:1.7; }

/* Resource teaser — photos are CSS-first so they work even if site.js is delayed. */
.v3-resource-row { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:14px; }
.v3-resource {
  position:relative;
  min-height:300px;
  padding:26px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  border-radius:18px;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.08);
  background-color:#171716;
  background-size:cover;
  background-position:center;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.v3-resource:nth-child(1) { background-image:linear-gradient(180deg,rgba(18,18,18,.10) 0%,rgba(18,18,18,.48) 42%,rgba(18,18,18,.96) 100%),url("https://images.pexels.com/photos/4312854/pexels-photo-4312854.jpeg?auto=compress,format&cs=tinysrgb&w=900&h=650&fit=crop"); }
.v3-resource:nth-child(2) { background-image:linear-gradient(180deg,rgba(18,18,18,.10) 0%,rgba(18,18,18,.48) 42%,rgba(18,18,18,.96) 100%),url("https://images.pexels.com/photos/5411781/pexels-photo-5411781.jpeg?auto=compress,format&cs=tinysrgb&w=900&h=650&fit=crop"); }
.v3-resource:nth-child(3) { background-image:linear-gradient(180deg,rgba(18,18,18,.10) 0%,rgba(18,18,18,.48) 42%,rgba(18,18,18,.96) 100%),url("https://images.pexels.com/photos/7546718/pexels-photo-7546718.jpeg?auto=compress,format&cs=tinysrgb&w=900&h=650&fit=crop"); }
.v3-resource:hover { transform:translateY(-4px); border-color:rgba(255,183,125,.42); box-shadow:0 18px 42px rgba(0,0,0,.28); }
.v3-resource small { color:var(--v3-accent); font:700 10px/1 'JetBrains Mono',monospace; letter-spacing:.13em; text-transform:uppercase; }
.v3-resource h3 { margin-top:10px; color:#fff7f0; font-size:22px; line-height:1.08; font-weight:700; }
.v3-resource p { margin-top:10px; color:rgba(255,247,240,.72); font-size:13px; line-height:1.55; }

@media (max-width: 1080px) {
  .v3-proof-inner { grid-template-columns:1fr; gap:22px; }
  .v3-proof-inner .ha-primary-btn { width:fit-content; }
  .v3-hero-inner { grid-template-columns:1fr; min-height:auto; padding-block:62px; }
  .v3-visual { min-height:480px; }
  .v3-service-grid { grid-template-columns:repeat(2,1fr); }
  .v3-estimate-wrap { grid-template-columns:1fr; }
  .v3-estimate-copy { position:static; }
}

@media (max-width: 800px) {
  .home-v3 main { padding-top:102px; }
  .home-v3 .ha-shell { width:min(100% - 28px,1240px); }
  .home-v3 .ha-utility { font-size:8px; }
  .v3-hero-inner { gap:34px; padding-block:46px 54px; }
  .v3-title { font-size:clamp(43px,13vw,62px); }
  .v3-copy { font-size:17px; }
  .v3-mini-proof { grid-template-columns:1fr; }
  .v3-visual { min-height:410px; border-radius:18px; }
  .v3-visual-card { left:14px; right:14px; bottom:14px; padding:19px; }
  .v3-visual-card h2 { font-size:24px; }
  .v3-trust-row { grid-template-columns:1fr 1fr; }
  .v3-trust-item { min-height:64px; padding:0 10px; border-bottom:1px solid rgba(255,255,255,.06); font-size:12px; }
  .v3-section { padding-block:76px; }
  .v3-section-head { grid-template-columns:1fr; gap:18px; margin-bottom:30px; }
  .v3-service-grid, .v3-steps, .v3-split, .v3-resource-row { grid-template-columns:1fr; }
  .v3-service { min-height:280px; }
  .v3-big-card { padding:28px; }
  .v3-step { min-height:220px; }
  .v3-form-grid { grid-template-columns:1fr; }
  .v3-form-grid .full { grid-column:auto; }
}

@media (max-width: 520px) {
  .v3-actions { flex-direction:column; }
  .v3-actions .ha-primary-btn, .v3-actions .ha-secondary-btn { width:100%; justify-content:center; }
  .v3-trust-row { grid-template-columns:1fr; }
  .v3-trust-item { border-right:0; }
  .v3-visual { min-height:360px; }
}

/* Reviews carousel */
.v3-reviews-section { background:linear-gradient(180deg,#111,#151514); border-block:1px solid rgba(255,255,255,.07); }
.v3-reviews-head { display:grid; grid-template-columns:1fr auto; gap:28px; align-items:end; margin-bottom:34px; }
.v3-reviews-head .ha-secondary-btn { white-space:nowrap; }
.v3-review-shell { position:relative; }
.v3-review-viewport {
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
  border-radius:20px;
  outline:none;
}
.v3-review-viewport::-webkit-scrollbar { display:none; }
.v3-review-viewport:focus-visible { box-shadow:0 0 0 2px rgba(255,183,125,.72); }
.v3-review-track { display:flex; gap:14px; }
.v3-review-card {
  flex:0 0 calc((100% - 28px) / 3);
  min-width:0;
  min-height:300px;
  scroll-snap-align:start;
  display:flex;
  flex-direction:column;
  padding:26px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.09);
  background:linear-gradient(180deg,#1c1a18,#151514);
}
.v3-review-top { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.v3-review-stars { color:var(--v3-accent); font-size:15px; letter-spacing:.12em; }
.v3-review-source { color:#9f938b; font:700 10px/1 'JetBrains Mono',monospace; letter-spacing:.11em; text-transform:uppercase; }
.v3-review-card blockquote { margin:48px 0 0; color:#f3ebe5; font-size:clamp(24px,2.3vw,32px); line-height:1.08; letter-spacing:-.035em; font-weight:680; }
.v3-review-context { margin-top:16px; color:#a99d95; font-size:14px; line-height:1.6; }
.v3-review-card footer { margin-top:auto; padding-top:26px; display:flex; align-items:flex-end; justify-content:space-between; gap:16px; border-top:1px solid rgba(255,255,255,.07); }
.v3-review-card footer strong { color:#eee5df; font-size:14px; }
.v3-review-card footer span { color:#8f847d; font:600 10px/1.2 'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:.08em; text-align:right; }
.v3-review-controls { display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:18px; }
.v3-review-btn { width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; border:1px solid rgba(255,255,255,.12); background:#191817; color:#f1e9e3; cursor:pointer; transition:border-color .2s ease,background .2s ease,transform .2s ease; }
.v3-review-btn:hover { border-color:rgba(255,183,125,.45); background:#211e1b; transform:translateY(-1px); }
.v3-review-btn:focus-visible { outline:2px solid rgba(255,183,125,.75); outline-offset:2px; }
.v3-review-btn .material-symbols-outlined { font-size:20px !important; }
.v3-review-status { min-width:54px; color:#a99d95; font:700 10px/1 'JetBrains Mono',monospace; letter-spacing:.08em; text-align:center; }

@media (max-width:1080px) {
  .v3-review-card { flex-basis:calc((100% - 14px) / 2); }
}

@media (max-width:800px) {
  .v3-reviews-head { grid-template-columns:1fr; align-items:start; }
  .v3-reviews-head .ha-secondary-btn { width:fit-content; }
  .v3-review-card { flex-basis:100%; min-height:280px; }
  .v3-review-card blockquote { margin-top:36px; font-size:28px; }
  .v3-review-controls { justify-content:space-between; }
}

@media (prefers-reduced-motion:reduce) {
  .v3-review-viewport { scroll-behavior:auto; }
  .v3-review-btn { transition:none; }
}
