/* FenceFinder Calculator — Scoped Styles */
.ffc-wrap *, .ffc-wrap *::before, .ffc-wrap *::after { box-sizing: border-box; }

.ffc-wrap {
  --ffc-forest:      #1a3a2a;
  --ffc-forest-deep: #142e20;
  --ffc-forest-mid:  #234d38;
  --ffc-green:       #2e7d52;
  --ffc-green-bright:#38a169;
  --ffc-lime:        #7cc84c;
  --ffc-lime-glow:   rgba(124,200,76,0.13);
  --ffc-sand:        #f5ede0;
  --ffc-sand-light:  #fdf8f2;
  --ffc-rust:        #c4622d;
  --ffc-rust-hover:  #a8501f;
  --ffc-white:       #ffffff;
  --ffc-text:        #1a2414;
  --ffc-text-mid:    #4a5c40;
  --ffc-text-light:  #7a8c72;
  --ffc-border:      #dde8d5;
  --ffc-radius:      16px;
  --ffc-radius-sm:   10px;
  --ffc-shadow:      0 4px 24px rgba(26,58,42,0.09);
  --ffc-shadow-lg:   0 12px 48px rgba(26,58,42,0.16);
  font-family: 'Nunito', sans-serif;
  color: var(--ffc-text);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--ffc-sand-light);
}

/* HERO */
.ffc-hero {
  background: linear-gradient(155deg, var(--ffc-forest-deep) 0%, var(--ffc-forest) 55%, var(--ffc-forest-mid) 100%);
  padding: 60px 24px 68px;
  text-align: center;
  position: relative;
  overflow: hidden;
  border-radius: var(--ffc-radius) var(--ffc-radius) 0 0;
}
.ffc-hero::before {
  content:'';position:absolute;top:-20%;right:-5%;width:500px;height:500px;
  background:radial-gradient(circle,rgba(124,200,76,0.07) 0%,transparent 65%);pointer-events:none;
}
.ffc-hero::after {
  content:'';position:absolute;bottom:0;left:0;right:0;height:50px;
  background:linear-gradient(to bottom,transparent,var(--ffc-sand-light));
}
.ffc-hero-inner { position:relative;z-index:2;max-width:640px;margin:0 auto; }
.ffc-eyebrow {
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(124,200,76,0.12);border:1px solid rgba(124,200,76,0.25);
  color:var(--ffc-lime);font-size:0.72rem;font-weight:700;text-transform:uppercase;
  letter-spacing:0.1em;padding:4px 14px;border-radius:100px;margin-bottom:16px;
}
.ffc-hero h1 {
  font-family:'Sora',sans-serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800;
  color:var(--ffc-white);letter-spacing:-0.03em;line-height:1.15;margin-bottom:12px;
}
.ffc-hero h1 em { font-style:normal;color:var(--ffc-lime); }
.ffc-hero p { color:rgba(255,255,255,0.55);font-size:0.95rem;max-width:460px;margin:0 auto; }

/* LAYOUT */
.ffc-layout {
  display:grid;
  grid-template-columns:1fr 320px;
  gap:24px;
  padding:32px 16px 64px;
  max-width:1040px;
  margin:0 auto;
  align-items:start;
}
@media(max-width:820px){ .ffc-layout { grid-template-columns:1fr; } }

/* CARD */
.ffc-card {
  background:var(--ffc-white);border-radius:var(--ffc-radius);
  border:2px solid var(--ffc-border);box-shadow:var(--ffc-shadow);
  overflow:hidden;margin-bottom:18px;
}
.ffc-card:last-child { margin-bottom:0; }
.ffc-card-header {
  padding:18px 24px 16px;border-bottom:1px solid var(--ffc-border);
  display:flex;align-items:center;gap:10px;
}
.ffc-card-num {
  width:26px;height:26px;background:var(--ffc-lime);color:var(--ffc-forest-deep);
  font-family:'Sora',sans-serif;font-size:0.75rem;font-weight:800;border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.ffc-card-header h2 { font-family:'Sora',sans-serif;font-size:0.95rem;font-weight:800;color:var(--ffc-forest);margin:0; }
.ffc-card-body { padding:22px 24px; }

/* FIELD */
.ffc-field { margin-bottom:18px; }
.ffc-field:last-child { margin-bottom:0; }
.ffc-field label {
  display:block;font-size:0.75rem;font-weight:700;color:var(--ffc-text-mid);
  text-transform:uppercase;letter-spacing:0.07em;margin-bottom:9px;
}
.ffc-field input,.ffc-field select {
  width:100%;padding:11px 14px;border:2px solid var(--ffc-border);border-radius:var(--ffc-radius-sm);
  font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--ffc-text);background:var(--ffc-sand-light);
  outline:none;appearance:none;transition:border-color 0.2s,box-shadow 0.2s;
}
.ffc-field input:focus,.ffc-field select:focus {
  border-color:var(--ffc-green-bright);box-shadow:0 0 0 3px rgba(56,161,105,0.1);background:white;
}
.ffc-hint { font-size:0.73rem;color:var(--ffc-text-light);margin-top:6px;line-height:1.5; }

/* PILL GROUP */
.ffc-pills { display:flex;flex-wrap:wrap;gap:7px; }
.ffc-pill {
  padding:8px 16px;border-radius:100px;border:2px solid var(--ffc-border);background:var(--ffc-sand-light);
  color:var(--ffc-text-mid);font-size:0.8rem;font-weight:700;cursor:pointer;
  transition:all 0.15s;user-select:none;display:flex;align-items:center;gap:5px;white-space:nowrap;
}
.ffc-pill:hover { border-color:var(--ffc-green-bright);color:var(--ffc-forest); }
.ffc-pill.selected { background:var(--ffc-lime-glow);border-color:var(--ffc-lime);color:var(--ffc-forest); }

/* MATERIAL CARDS */
.ffc-mat-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px; }
@media(max-width:500px){ .ffc-mat-grid { grid-template-columns:1fr; } }
.ffc-mat-card {
  background:var(--ffc-sand);border-radius:var(--ffc-radius-sm);padding:13px 15px;
  border:2px solid transparent;cursor:pointer;transition:all 0.15s;
}
.ffc-mat-card:hover { border-color:var(--ffc-lime); }
.ffc-mat-card.active { border-color:var(--ffc-lime);background:var(--ffc-lime-glow); }
.ffc-mat-top { display:flex;align-items:center;gap:7px;margin-bottom:5px; }
.ffc-mat-icon { font-size:1.1rem; }
.ffc-mat-name { font-family:'Sora',sans-serif;font-size:0.82rem;font-weight:800;color:var(--ffc-forest); }
.ffc-mat-price { font-size:0.68rem;color:var(--ffc-green);font-weight:700;background:rgba(56,161,105,0.1);padding:2px 7px;border-radius:100px;margin-left:auto; }
.ffc-mat-desc { font-size:0.73rem;color:var(--ffc-text-mid);line-height:1.45;margin-bottom:6px; }
.ffc-mat-tags { display:flex;gap:4px;flex-wrap:wrap; }
.ffc-mat-tag { font-size:0.63rem;font-weight:700;background:var(--ffc-border);color:var(--ffc-text-mid);padding:2px 6px;border-radius:4px; }

/* SLIDER */
.ffc-range-val { font-family:'Sora',sans-serif;font-size:1.4rem;font-weight:800;color:var(--ffc-forest);margin-bottom:10px;display:flex;align-items:baseline;gap:4px; }
.ffc-range-val span { font-size:0.82rem;color:var(--ffc-text-mid);font-weight:600; }
.ffc-wrap input[type="range"] { -webkit-appearance:none;width:100%;height:6px;background:var(--ffc-border);border-radius:3px;outline:none;cursor:pointer; }
.ffc-wrap input[type="range"]::-webkit-slider-thumb { -webkit-appearance:none;width:20px;height:20px;background:var(--ffc-forest);border:3px solid var(--ffc-lime);border-radius:50%;cursor:pointer;transition:transform 0.1s; }
.ffc-wrap input[type="range"]::-webkit-slider-thumb:hover { transform:scale(1.15); }
.ffc-range-labels { display:flex;justify-content:space-between;margin-top:7px;color:var(--ffc-text-light);font-size:0.7rem; }

/* GATE GRID */
.ffc-gate-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:9px; }
.ffc-gate {
  border:2px solid var(--ffc-border);border-radius:var(--ffc-radius-sm);padding:13px 8px;
  text-align:center;cursor:pointer;transition:all 0.15s;background:var(--ffc-sand-light);user-select:none;
}
.ffc-gate:hover { border-color:var(--ffc-green-bright); }
.ffc-gate.selected { background:var(--ffc-lime-glow);border-color:var(--ffc-lime); }
.ffc-gate-icon { font-size:1.5rem;margin-bottom:3px; }
.ffc-gate-label { font-size:0.76rem;font-weight:700;color:var(--ffc-text-mid); }
.ffc-gate.selected .ffc-gate-label { color:var(--ffc-forest); }
.ffc-gate-cost { font-size:0.67rem;color:var(--ffc-text-light);margin-top:2px; }

/* ESTIMATE PANEL */
.ffc-estimate-panel { position:sticky;top:20px; }
.ffc-estimate-card { background:var(--ffc-forest);border-radius:var(--ffc-radius);overflow:hidden;box-shadow:var(--ffc-shadow-lg); }
.ffc-est-header { padding:18px 22px 14px;border-bottom:1px solid rgba(255,255,255,0.08); }
.ffc-est-header p { font-family:'Sora',sans-serif;font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--ffc-lime);margin-bottom:3px; }
.ffc-est-header h3 { font-family:'Sora',sans-serif;font-size:0.95rem;font-weight:800;color:rgba(255,255,255,0.8);margin:0; }
.ffc-est-body { padding:18px 22px; }
.ffc-cost-range { text-align:center;padding:16px 0 14px;border-bottom:1px solid rgba(255,255,255,0.08);margin-bottom:14px; }
.ffc-cost-label { font-size:0.67rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:rgba(255,255,255,0.35);margin-bottom:7px; }
.ffc-cost-main { font-family:'Sora',sans-serif;font-size:2.2rem;font-weight:800;color:var(--ffc-lime);line-height:1;margin-bottom:3px; }
.ffc-cost-sub { font-size:0.75rem;color:rgba(255,255,255,0.4); }
@keyframes ffc-countup { from{opacity:0.4;transform:translateY(4px);}to{opacity:1;transform:translateY(0);} }
.ffc-cost-main.ffc-updating { animation:ffc-countup 0.22s ease; }
.ffc-breakdown { display:flex;flex-direction:column;gap:7px;margin-bottom:14px; }
.ffc-bd-row { display:flex;justify-content:space-between;align-items:center;font-size:0.8rem; }
.ffc-bd-row .ffc-bl { color:rgba(255,255,255,0.45); }
.ffc-bd-row .ffc-bv { color:rgba(255,255,255,0.82);font-weight:600; }
.ffc-bd-row.ffc-total { border-top:1px solid rgba(255,255,255,0.1);padding-top:8px;margin-top:3px; }
.ffc-bd-row.ffc-total .ffc-bl { color:rgba(255,255,255,0.65);font-weight:700; }
.ffc-bd-row.ffc-total .ffc-bv { color:var(--ffc-lime);font-weight:800;font-size:0.88rem; }
.ffc-per-foot { background:rgba(255,255,255,0.05);border-radius:7px;padding:9px 13px;display:flex;justify-content:space-between;align-items:center;font-size:0.78rem;margin-bottom:16px; }
.ffc-per-foot span { color:rgba(255,255,255,0.45); }
.ffc-per-foot strong { color:var(--ffc-lime);font-family:'Sora',sans-serif;font-size:0.9rem; }
.ffc-disclaimer { font-size:0.67rem;color:rgba(255,255,255,0.28);text-align:center;line-height:1.5;margin-bottom:14px; }
.ffc-btn-get-quotes {
  width:100%;padding:14px;background:var(--ffc-rust);color:white;border:none;
  border-radius:var(--ffc-radius-sm);font-family:'Sora',sans-serif;font-size:0.92rem;font-weight:700;
  cursor:pointer;transition:background 0.2s,transform 0.1s;letter-spacing:0.01em;
}
.ffc-btn-get-quotes:hover { background:var(--ffc-rust-hover);transform:translateY(-1px); }
.ffc-cta-sub { text-align:center;font-size:0.67rem;color:rgba(255,255,255,0.28);margin-top:7px;display:flex;align-items:center;justify-content:center;gap:4px; }

/* LEAD SECTION */
.ffc-lead-section { background:linear-gradient(135deg,var(--ffc-forest-deep),var(--ffc-forest));border-radius:var(--ffc-radius);overflow:hidden;box-shadow:var(--ffc-shadow-lg);margin:0 16px 24px;max-width:1040px;margin-left:auto;margin-right:auto; }
.ffc-lead-inner { padding:32px 32px 36px; }
@media(max-width:600px){ .ffc-lead-inner { padding:24px 20px; } }
.ffc-lead-top { display:flex;align-items:flex-start;gap:18px;margin-bottom:24px; }
@media(max-width:600px){ .ffc-lead-top { flex-direction:column;gap:12px; } }
.ffc-lead-top-text h2 { font-family:'Sora',sans-serif;font-size:clamp(1.2rem,2.5vw,1.7rem);font-weight:800;color:var(--ffc-white);letter-spacing:-0.02em;margin-bottom:6px; }
.ffc-lead-top-text h2 em { font-style:normal;color:var(--ffc-lime); }
.ffc-lead-top-text p { color:rgba(255,255,255,0.5);font-size:0.85rem; }
.ffc-est-badge { background:rgba(124,200,76,0.12);border:1px solid rgba(124,200,76,0.25);border-radius:10px;padding:12px 16px;text-align:center;flex-shrink:0;min-width:120px; }
.ffc-est-badge .ffc-eb-label { font-size:0.62rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--ffc-lime);margin-bottom:3px; }
.ffc-est-badge .ffc-eb-val { font-family:'Sora',sans-serif;font-size:1.4rem;font-weight:800;color:var(--ffc-white);line-height:1.1; }
.ffc-est-badge .ffc-eb-sub { font-size:0.67rem;color:rgba(255,255,255,0.35);margin-top:2px; }
.ffc-lead-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px; }
@media(max-width:540px){ .ffc-lead-grid { grid-template-columns:1fr; } }
.ffc-lead-grid.ffc-full { grid-template-columns:1fr; }
.ffc-lf label { display:block;font-size:0.69rem;font-weight:700;text-transform:uppercase;letter-spacing:0.07em;color:rgba(255,255,255,0.4);margin-bottom:5px; }
.ffc-lf input,.ffc-lf select {
  width:100%;padding:11px 13px;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.11);
  border-radius:var(--ffc-radius-sm);color:var(--ffc-white);font-family:'Nunito',sans-serif;font-size:0.88rem;
  outline:none;appearance:none;transition:border-color 0.2s,background 0.2s;
}
.ffc-lf input:focus,.ffc-lf select:focus { border-color:rgba(124,200,76,0.45);background:rgba(255,255,255,0.1); }
.ffc-lf input::placeholder { color:rgba(255,255,255,0.22); }
.ffc-lf select option { background:var(--ffc-forest-deep); }
.ffc-btn-lead {
  width:100%;padding:16px;background:var(--ffc-rust);color:white;border:none;border-radius:var(--ffc-radius-sm);
  font-family:'Sora',sans-serif;font-size:1rem;font-weight:700;cursor:pointer;
  transition:background 0.2s,transform 0.1s;margin-top:4px;letter-spacing:0.01em;
}
.ffc-btn-lead:hover { background:var(--ffc-rust-hover);transform:translateY(-1px); }
.ffc-btn-lead:disabled { opacity:0.6;cursor:not-allowed;transform:none; }
.ffc-lead-trust { display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:14px; }
.ffc-trust-item { display:flex;align-items:center;gap:4px;color:rgba(255,255,255,0.32);font-size:0.7rem;font-weight:600; }
.ffc-thankyou { display:none;text-align:center;padding:16px 0 6px; }
.ffc-thankyou.ffc-show { display:block;animation:ffc-countup 0.4s ease; }
.ffc-thankyou .ffc-ty-icon { font-size:2.8rem;margin-bottom:10px; }
.ffc-thankyou h3 { font-family:'Sora',sans-serif;font-size:1.4rem;font-weight:800;color:var(--ffc-lime);margin-bottom:8px; }
.ffc-thankyou p { color:rgba(255,255,255,0.5);font-size:0.88rem; }
.ffc-error-notice { background:rgba(196,98,45,0.15);border:1px solid rgba(196,98,45,0.4);border-radius:8px;padding:10px 14px;color:#fca5a5;font-size:0.82rem;margin-bottom:12px;display:none; }

/* SEO INFO */
.ffc-info-section { padding:0 16px 64px;max-width:1040px;margin:0 auto; }
.ffc-info-header { text-align:center;margin-bottom:22px; }
.ffc-section-label { display:inline-block;font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--ffc-green-bright);margin-bottom:8px; }
.ffc-section-title { font-family:'Sora',sans-serif;font-size:clamp(1.2rem,2.5vw,1.7rem);font-weight:800;color:var(--ffc-forest);letter-spacing:-0.02em;margin-bottom:6px; }
.ffc-section-sub { color:var(--ffc-text-mid);font-size:0.85rem; }
.ffc-info-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }
@media(max-width:680px){ .ffc-info-grid { grid-template-columns:1fr; } }
.ffc-info-card { background:var(--ffc-white);border-radius:var(--ffc-radius);border:2px solid var(--ffc-border);padding:20px; }
.ffc-info-card h3 { font-family:'Sora',sans-serif;font-size:0.88rem;font-weight:800;color:var(--ffc-forest);margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--ffc-border); }
.ffc-info-row { display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--ffc-sand);font-size:0.8rem; }
.ffc-info-row:last-child { border-bottom:none; }
.ffc-info-row .ffc-ir-l { color:var(--ffc-text-mid); }
.ffc-info-row .ffc-ir-v { font-weight:700;color:var(--ffc-forest); }
