.fge-calc {
    --green:#719a3c;
    --green-dark:#557828;
    --green-light:#8db84d;
    --green-pale:#f2f7eb;
    --green-mid:#deeecb;
    --charcoal:#1e2820;
    --text:#2c3a2d;
    --muted:#5a6b5c;
    --warm:#f8f9f6;
    --border:#d8e8c4;
    --white:#fff;
    --shadow:0 4px 24px rgba(30,40,32,.10);
    --shadow-lg:0 12px 48px rgba(30,40,32,.14);
    --radius:14px;
    --radius-sm:8px;
    font-family:'Poppins',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    color:var(--text);
    width:100%;
    max-width:980px;
    margin:0 auto;
    box-sizing:border-box;
}
.fge-calc *, .fge-calc *::before, .fge-calc *::after { box-sizing:border-box; }
.fge-calc button, .fge-calc input, .fge-calc select, .fge-calc textarea { font:inherit; }
.fge-calc .is-hidden { display:none!important; }
.fge-calc__top {
    position:relative; overflow:hidden; text-align:center; background:var(--charcoal); color:#fff;
    padding:52px 34px 48px; border-radius:var(--radius) var(--radius) 0 0;
}
.fge-calc__top::before { content:""; position:absolute; inset:0; background:radial-gradient(ellipse 65% 80% at 20% 30%,rgba(113,154,60,.26),transparent 70%),radial-gradient(ellipse 50% 80% at 85% 70%,rgba(113,154,60,.15),transparent 70%); pointer-events:none; }
.fge-calc__top::after { content:""; position:absolute; left:0; right:0; bottom:0; height:6px; background:linear-gradient(90deg,var(--green),var(--green-light),var(--green)); }
.fge-calc__top > * { position:relative; z-index:1; }
.fge-calc__eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--green-light); background:rgba(113,154,60,.18); border:1px solid rgba(113,154,60,.35); padding:7px 15px; border-radius:100px; margin-bottom:18px; }
.fge-calc__dot { width:7px; height:7px; border-radius:50%; background:currentColor; }
.fge-calc__top h2 { margin:0 0 14px; color:#fff; font-size:clamp(1.8rem,4.5vw,2.8rem); line-height:1.15; font-weight:800; }
.fge-calc__top h2 span { color:var(--green-light); }
.fge-calc__top p { margin:0 auto; max-width:700px; color:rgba(255,255,255,.68); line-height:1.7; font-size:.95rem; }
.fge-calc__body { background:#fff; padding:34px; border:1.5px solid var(--border); border-top:0; border-radius:0 0 var(--radius) var(--radius); box-shadow:var(--shadow-lg); }
.fge-calc__notice { display:flex; gap:10px; align-items:flex-start; border-radius:var(--radius-sm); padding:16px 18px; margin-bottom:28px; font-size:.86rem; line-height:1.65; }
.fge-calc__notice strong { flex:0 0 auto; color:var(--charcoal); }
.fge-calc__notice--important { background:#fff8f0; border:1.5px solid #f0c78f; border-left:4px solid #d68a23; }
.fge-calc__notice--green { background:var(--green-pale); border:1.5px solid var(--border); border-left:4px solid var(--green); }
.fge-calc__notice--result { margin-top:28px; }
.fge-calc__notice--after-button { margin:16px 0 0; }
.fge-calc__section { padding:30px 0; border-bottom:1px solid var(--border); }
.fge-calc__section:first-child { padding-top:4px; }
.fge-calc__section:last-of-type { border-bottom:0; }
.fge-calc__section-head { display:flex; align-items:flex-start; gap:14px; margin-bottom:20px; }
.fge-calc__section-head > span { width:38px; height:38px; border-radius:9px; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.78rem; flex:0 0 auto; }
.fge-calc__section-head h3, .fge-calc__form-head h3, .fge-calc__factors h3 { margin:0; color:var(--charcoal); font-size:1.08rem; line-height:1.3; font-weight:700; }
.fge-calc__section-head p, .fge-calc__form-head p { margin:5px 0 0; color:var(--muted); font-size:.84rem; line-height:1.6; }
.fge-calc__toggle { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:5px; background:var(--warm); border:1.5px solid var(--border); border-radius:10px; margin-bottom:18px; }
.fge-calc__toggle button { border:0; padding:11px 14px; background:transparent; border-radius:7px; cursor:pointer; color:var(--muted); font-weight:600; transition:.25s ease; }
.fge-calc__toggle button.is-active { background:#fff; color:var(--green-dark); box-shadow:0 2px 10px rgba(30,40,32,.09); }
.fge-calc__grid { display:grid; gap:16px; }
.fge-calc__grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.fge-calc__grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.fge-calc label { display:flex; flex-direction:column; gap:7px; color:var(--charcoal); font-size:.82rem; font-weight:600; }
.fge-calc input, .fge-calc select, .fge-calc textarea { width:100%; border:1.5px solid var(--border); border-radius:8px; background:#fff; color:var(--text); padding:12px 13px; outline:none; transition:border-color .2s, box-shadow .2s; }
.fge-calc textarea { resize:vertical; min-height:110px; }
.fge-calc input:focus, .fge-calc select:focus, .fge-calc textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(113,154,60,.12); }
.fge-calc input.is-invalid, .fge-calc select.is-invalid, .fge-calc textarea.is-invalid { border-color:#b94040; box-shadow:0 0 0 3px rgba(185,64,64,.08); }
.fge-calc__field-error { display:block; color:#9b2c2c; font-size:.72rem; font-weight:600; line-height:1.4; margin-top:1px; }
.fge-calc__area-output { display:none; margin-top:12px; padding:10px 13px; border-radius:8px; background:var(--green-pale); color:var(--green-dark); font-size:.83rem; font-weight:700; }
.fge-calc__area-output.is-visible { display:inline-block; }
.fge-calc__products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.fge-calc__product { display:flex; flex-direction:column; border:1.5px solid var(--border); border-radius:12px; overflow:hidden; background:#fff; transition:.25s ease; }
.fge-calc__product:hover, .fge-calc__product.is-selected { border-color:var(--green); box-shadow:0 8px 28px rgba(113,154,60,.12); transform:translateY(-2px); }
.fge-calc__product-select { flex:1; text-align:left; border:0; background:transparent; padding:16px; cursor:pointer; color:var(--text); }
.fge-calc__product-select strong { display:block; color:var(--charcoal); font-size:.88rem; line-height:1.35; margin-top:9px; }
.fge-calc__product-select small { display:block; color:var(--muted); font-size:.72rem; line-height:1.45; margin-top:4px; }
.fge-calc__radio { display:block; width:18px; height:18px; border-radius:50%; border:2px solid var(--border); position:relative; }
.fge-calc__product.is-selected .fge-calc__radio { border-color:var(--green); }
.fge-calc__product.is-selected .fge-calc__radio::after { content:""; position:absolute; width:8px; height:8px; border-radius:50%; background:var(--green); inset:3px; }
.fge-calc__product > a { display:flex; justify-content:space-between; align-items:center; padding:10px 16px; border-top:1px solid var(--border); background:var(--warm); color:var(--green-dark); text-decoration:none; font-size:.74rem; font-weight:700; }
.fge-calc__validation { min-height:20px; margin:12px 0; color:#9b2c2c; font-size:.82rem; font-weight:600; }
.fge-calc__btn { border:0; border-radius:8px; padding:13px 22px; font-weight:700; font-size:.88rem; cursor:pointer; transition:.25s ease; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
.fge-calc__btn--primary { background:var(--green); color:#fff; box-shadow:0 4px 16px rgba(113,154,60,.30); }
.fge-calc__btn--primary:hover { background:var(--green-dark); transform:translateY(-1px); }
.fge-calc__btn--ghost { background:var(--warm); color:var(--charcoal); border:1.5px solid var(--border); }
.fge-calc__btn--ghost:hover { border-color:var(--green); color:var(--green-dark); }
.fge-calc__btn--wide { width:100%; padding:15px 22px; }
.fge-calc__btn:disabled { opacity:.65; cursor:not-allowed; transform:none; }
.fge-calc__result-card { background:var(--charcoal); border-radius:14px; padding:34px; color:#fff; text-align:center; position:relative; overflow:hidden; }
.fge-calc__result-card::before { content:""; position:absolute; inset:0; background:radial-gradient(ellipse 60% 100% at 50% 100%,rgba(113,154,60,.22),transparent 70%); pointer-events:none; }
.fge-calc__result-card > * { position:relative; z-index:1; }
.fge-calc__tag { display:inline-block; color:var(--green-light); font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; font-weight:800; margin-bottom:8px; }
.fge-calc__result-card h3 { margin:0; color:#fff; font-size:1rem; }
.fge-calc__price { font-size:clamp(2.2rem,6vw,3.5rem); font-weight:800; line-height:1.1; margin:14px 0 2px; color:#fff; }
.fge-calc__price-note { color:#a9bba2; font-size:.8rem; margin-bottom:22px; }
.fge-calc__money-row { max-width:480px; margin:0 auto; padding:9px 0; display:flex; justify-content:space-between; gap:20px; border-top:1px solid rgba(255,255,255,.10); color:#c8d4c3; font-size:.82rem; }
.fge-calc__money-row strong { color:#fff; }
.fge-calc__summary { margin:18px auto 0; max-width:560px; padding-top:16px; border-top:1px solid rgba(255,255,255,.10); color:#a9bba2; font-size:.8rem; }
.fge-calc__result .fge-calc__notice--green { margin-top:20px; }
.fge-calc__factors { margin-top:32px; }
.fge-calc__factors h3 { margin-bottom:14px; }
.fge-calc__factor-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.fge-calc__factor { padding:17px; background:var(--warm); border:1.5px solid var(--border); border-radius:10px; }
.fge-calc__factor strong { display:block; color:var(--charcoal); font-size:.83rem; margin-bottom:5px; }
.fge-calc__factor span { color:var(--muted); font-size:.78rem; line-height:1.55; }
.fge-calc__factor[data-factor="small-area"] { background:#fff8f0; border-color:#f0c78f; }
.fge-calc__result-actions { display:flex; gap:12px; justify-content:flex-end; margin-top:22px; }
.fge-calc__form-head { margin-bottom:24px; }
.fge-calc__form-head h3 { font-size:1.35rem; margin-top:4px; }
.fge-calc__contact-grid { margin-bottom:16px; }
.fge-calc__enquiry form > .fge-calc__grid { margin-bottom:16px; }
.fge-calc__mini-estimate { margin:18px 0; padding:16px 18px; border-radius:10px; background:var(--green-pale); border:1.5px solid var(--border); display:grid; grid-template-columns:1fr auto; gap:4px 16px; align-items:center; }
.fge-calc__mini-estimate span { font-size:.78rem; color:var(--muted); font-weight:600; }
.fge-calc__mini-estimate strong { font-size:1rem; color:var(--green-dark); }
.fge-calc__mini-estimate small { grid-column:1/-1; font-size:.72rem; color:var(--muted); }
.fge-calc__consent { flex-direction:row!important; align-items:flex-start; gap:9px!important; font-weight:500!important; line-height:1.5; }
.fge-calc__consent input { width:auto; margin-top:3px; }
.fge-calc__privacy { margin:12px 0 0; text-align:right; font-size:.7rem; color:var(--muted); }
.fge-calc__hp { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

@media (max-width:900px) {
    .fge-calc__products { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .fge-calc__grid--3 { grid-template-columns:1fr; }
}
@media (max-width:680px) {
    .fge-calc__body { padding:22px 18px; }
    .fge-calc__top { padding:42px 20px 38px; }
    .fge-calc__notice { flex-direction:column; }
    .fge-calc__grid--2, .fge-calc__factor-list { grid-template-columns:1fr; }
    .fge-calc__result-actions { flex-direction:column-reverse; }
    .fge-calc__result-actions .fge-calc__btn { width:100%; }
    .fge-calc__mini-estimate { grid-template-columns:1fr; }
    .fge-calc__mini-estimate small { grid-column:auto; }
}
@media (max-width:460px) {
    .fge-calc__toggle, .fge-calc__products { grid-template-columns:1fr; }
    .fge-calc__result-card { padding:28px 18px; }
    .fge-calc__money-row { font-size:.78rem; }
}
