/* Solar4life product configurator */

.s4lp {
	--s4lp-deep: #163b32;
	--s4lp-ink: #203c35;
	--s4lp-bright: #86df94;
	--s4lp-mid: #2f7d4e;
	--s4lp-cream: #faf9f5;
	--s4lp-line: #e0eae4;
	background: var(--s4lp-cream);
	border-top: 1px solid var(--s4lp-line);
	padding: 56px 20px;
	font-family: inherit;
	color: var(--s4lp-ink);
	box-sizing: border-box;
}

.s4lp *, .s4lp *::before, .s4lp *::after { box-sizing: border-box; }

.s4lp__inner { max-width: 880px; margin: 0 auto; }

.s4lp__kicker {
	margin: 0 0 8px;
	font-size: 11px;
	letter-spacing: 1.8px;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--s4lp-mid);
}

.s4lp__title { margin: 0 0 10px; font-size: clamp(24px, 3.6vw, 32px); line-height: 1.2; font-weight: 700; color: var(--s4lp-deep); }
.s4lp__intro { margin: 0 0 28px; font-size: 16px; line-height: 1.6; color: #4a6459; max-width: 62ch; }

/* --- Builder -------------------------------------------------------------- */

.s4lp-builder {
	background: #fff;
	border: 1px solid var(--s4lp-line);
	border-radius: 18px;
	padding: 28px;
}

.s4lp-field { margin-bottom: 24px; }

.s4lp-field__label {
	display: block;
	font-size: 11px;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	font-weight: 700;
	color: #5d7a6f;
	margin-bottom: 12px;
}

.s4lp-field__hint { display: block; margin-top: 8px; font-size: 12.5px; color: #7a938a; }

.s4lp-options { display: flex; flex-wrap: wrap; gap: 10px; }

.s4lp-option {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	padding: 12px 18px;
	border-radius: 12px;
	border: 1.5px solid var(--s4lp-line);
	background: #fff;
	cursor: pointer;
	font-family: inherit;
	text-align: left;
	transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.s4lp-option:hover { border-color: #b9ccc2; transform: translateY(-1px); }
.s4lp-option.is-on { border-color: var(--s4lp-mid); background: #f1f9f4; }

.s4lp-option__label { font-size: 15px; font-weight: 650; color: var(--s4lp-deep); }
.s4lp-option__sub { font-size: 12.5px; color: #5d7a6f; }

.s4lp-stepper { display: inline-flex; align-items: center; gap: 4px; border: 1.5px solid var(--s4lp-line); border-radius: 12px; padding: 4px; }

.s4lp-stepper__btn {
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 9px;
	background: #f1f9f4;
	color: var(--s4lp-deep);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	font-family: inherit;
}

.s4lp-stepper__btn:hover:not(:disabled) { background: var(--s4lp-bright); }
.s4lp-stepper__btn:disabled { opacity: .35; cursor: not-allowed; }
.s4lp-stepper__value { min-width: 48px; text-align: center; font-size: 18px; font-weight: 700; color: var(--s4lp-deep); font-variant-numeric: tabular-nums; }

/* --- Readout -------------------------------------------------------------- */

.s4lp-readout {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 14px;
	padding: 20px;
	background: var(--s4lp-deep);
	border-radius: 14px;
	margin: 4px 0 18px;
}

.s4lp-readout__item { text-align: center; }
.s4lp-readout__item strong { display: block; font-size: 24px; line-height: 1.2; font-weight: 700; color: var(--s4lp-cream); font-variant-numeric: tabular-nums; }
.s4lp-readout__item span { display: block; margin-top: 4px; font-size: 12px; color: #a9c6b7; }
.s4lp-readout__item--price strong { color: var(--s4lp-bright); }

.s4lp-summary { margin: 0 0 18px; font-size: 14px; color: #4a6459; text-align: center; }

.s4lp-cta {
	display: block;
	text-align: center;
	padding: 14px 24px;
	border-radius: 999px;
	background: var(--s4lp-deep);
	color: var(--s4lp-cream);
	font-weight: 700;
	font-size: 16px;
	text-decoration: none;
}

.s4lp-cta:hover { background: #102e27; color: var(--s4lp-cream); }

.s4lp-note { margin: 14px 0 0; font-size: 12.5px; line-height: 1.55; color: #7a938a; text-align: center; }

/* --- Combination table ---------------------------------------------------- */

.s4lp-combos {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border: 1px solid var(--s4lp-line);
	border-radius: 14px;
	overflow: hidden;
	font-size: 14.5px;
}

.s4lp-combos th {
	text-align: left;
	padding: 14px 16px;
	background: #f1f9f4;
	font-size: 11px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: #5d7a6f;
	font-weight: 700;
}

.s4lp-combos td { padding: 14px 16px; border-top: 1px solid var(--s4lp-line); vertical-align: top; }
.s4lp-combos td strong { color: var(--s4lp-deep); }

.s4lp-combos__cta {
	display: inline-block;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--s4lp-deep);
	color: var(--s4lp-cream);
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

/* --- Includes ------------------------------------------------------------- */

.s4lp-includes { margin-top: 28px; }

.s4lp-includes__label {
	margin: 0 0 12px;
	font-size: 11px;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	font-weight: 700;
	color: #5d7a6f;
}

.s4lp-includes ul { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 22px; }

.s4lp-includes li {
	position: relative;
	padding-left: 26px;
	font-size: 14.5px;
	line-height: 1.55;
	color: #3c574c;
}

.s4lp-includes li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 7px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--s4lp-bright);
	box-shadow: 0 0 0 3px rgba(134, 223, 148, .3);
}

.s4lp-footnote { margin: 22px 0 0; font-size: 12.5px; line-height: 1.6; color: #7a938a; }

@media (max-width: 640px) {
	.s4lp { padding: 40px 16px; }
	.s4lp-builder { padding: 20px; }
	.s4lp-combos { display: block; overflow-x: auto; }
	.s4lp-readout__item strong { font-size: 20px; }
}

/* ---- Modular all-in-one builder ---------------------------------------- */
.aio{--aio-ink:#12241c;--aio-ink2:#31453a;--aio-muted:#6d7e70;--aio-card:#fffdf7;--aio-raise:#eef1e8;
 --aio-line:#d9ded2;--aio-line2:#c3ccba;--aio-green:#2f6d4a;--aio-soft:#e2ece2;--aio-deep:#1d4a30;
 --aio-copper:#a9661a;--aio-copper-soft:#f7ead6;--aio-shadow:0 1px 2px rgba(18,36,28,.05),0 10px 30px rgba(18,36,28,.06);
 color:var(--aio-ink);margin:56px 0 8px}
.aio *{box-sizing:border-box}
.aio-head{max-width:640px;margin-bottom:22px}
.aio-eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--aio-green);margin:0 0 10px}
.aio-head h2{font-size:clamp(27px,4.4vw,40px);line-height:1.08;margin:0;letter-spacing:-.6px}
.aio-head h2 em{font-style:normal;color:var(--aio-green)}
.aio-lede{color:var(--aio-ink2);margin:12px 0 0;font-size:16px;max-width:56ch}
.aio-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:26px}
.aio-preset{text-align:left;background:var(--aio-card);border:1px solid var(--aio-line);border-radius:12px;padding:15px 16px;
 cursor:pointer;display:grid;gap:3px;box-shadow:var(--aio-shadow);font:inherit;color:inherit;transition:border-color .15s,transform .15s}
.aio-preset:hover{border-color:var(--aio-green);transform:translateY(-2px)}
.aio-preset .pn{font-size:17px;font-weight:700}
.aio-preset .pk{font-size:12.5px;color:var(--aio-muted);line-height:1.4}
.aio-preset .pv{font-size:13px;color:var(--aio-green);font-weight:700;margin-top:3px}
.aio-cols{display:grid;grid-template-columns:300px minmax(0,1fr);gap:28px;align-items:start}
@media(max-width:860px){.aio-cols{grid-template-columns:minmax(0,1fr);gap:20px}}
.aio-tower-wrap{position:sticky;top:20px;background:var(--aio-card);border:1px solid var(--aio-line);border-radius:12px;
 padding:20px 18px 16px;box-shadow:var(--aio-shadow)}
@media(max-width:860px){.aio-tower-wrap{position:static}}
.aio-tower{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;min-height:290px;padding:4px 0 16px}
.aio-unit{position:relative;box-sizing:border-box;width:min(100%,176px);display:flex;align-items:center;justify-content:center;gap:10px;padding:0 12px;
 color:#56655b;font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:center;line-height:1.2;
 background:linear-gradient(90deg,#cdd3ca 0,#eaede6 8%,#f8f9f5 30%,#fdfdfa 55%,#eff1eb 88%,#c8cec4 100%);
 border:1px solid #c2c9bc;border-radius:4px;box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -2px 0 rgba(18,36,28,.05)}
.aio-ul{display:block;min-width:0}
.aio-unit.base{height:76px;flex-direction:column;gap:9px;border-radius:14px 14px 4px 4px;color:var(--aio-ink2)}
.aio-scr{display:flex;align-items:center;gap:4px;box-sizing:border-box;width:66px;height:15px;padding:0 6px;border-radius:8px;
 background:linear-gradient(180deg,#27362e,#131d17);box-shadow:inset 0 1px 2px rgba(0,0,0,.55),0 1px 0 rgba(255,255,255,.9)}
.aio-scr i{flex:none;width:6px;height:6px;border-radius:50%;background:#5fe08f;box-shadow:0 0 6px 1px rgba(95,224,143,.7)}
.aio-scr b{flex:1;height:2px;border-radius:2px;background:rgba(150,215,178,.35)}
.aio-unit.chg{height:48px;justify-content:flex-start;text-align:left;color:#7a4e14}
.aio-plug{position:relative;flex:none;width:20px;height:20px;border-radius:50%;background:var(--aio-copper);box-shadow:0 0 0 3px var(--aio-copper-soft)}
.aio-plug::before{content:"";position:absolute;left:6px;top:4px;width:8px;height:12px;background:#fff;clip-path:polygon(60% 0,0 58%,42% 58%,30% 100%,100% 38%,58% 38%,72% 0)}
.aio-unit.mod{height:46px;justify-content:space-between;text-align:left}
.aio-unit.mod small{display:block;margin-top:3px;font-size:11px;letter-spacing:0;text-transform:none;color:var(--aio-ink)}
.aio-gauge{flex:none;display:flex;gap:2px;padding:3px;border-radius:3px;background:#1b2620;box-shadow:inset 0 1px 2px rgba(0,0,0,.5),0 1px 0 rgba(255,255,255,.9)}
.aio-gauge i{width:3px;height:11px;border-radius:1px;background:var(--aio-led,#5fe08f);box-shadow:0 0 4px var(--aio-led,#5fe08f)}
.aio-gauge i:last-child{opacity:.3;box-shadow:none}
.aio-unit:has(+ .aio-plinth){border-radius:4px 4px 8px 8px}
.aio-plinth{position:relative;width:min(100%,184px);height:12px;margin-top:1px;border-radius:3px 3px 5px 5px;background:linear-gradient(180deg,#48534c,#29312c)}
.aio-plinth::after{content:"";position:absolute;left:6%;right:6%;bottom:-11px;height:11px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(18,36,28,.22),rgba(18,36,28,0) 70%)}
.aio-unit.is-new{animation:aiodrop .34s cubic-bezier(.2,.8,.3,1) backwards}
.aio .aio-tower .aio-slot{box-sizing:border-box;width:min(100%,176px);height:46px;margin:0;padding:0 8px;display:flex;align-items:center;justify-content:center;
 border:1.5px dashed #aebaa4;border-radius:4px;background:rgba(238,241,232,.6);box-shadow:none;color:var(--aio-green);
 font:inherit;font-size:11.5px;font-weight:600;letter-spacing:0;text-transform:none;line-height:1.2;min-height:0;opacity:.7}
.aio .aio-tower .aio-slot.is-next{opacity:1;margin-bottom:4px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.aio .aio-tower .aio-slot.is-next:hover,.aio .aio-tower .aio-slot.is-next:focus-visible{border-color:var(--aio-green);border-style:solid;background:var(--aio-soft);color:var(--aio-green);outline:none}
@media(max-width:860px){.aio .aio-tower .aio-slot:not(.is-next){display:none}}

.aio-unit.base::after{content:"";position:absolute;right:-4px;top:calc(50% + 4px);width:5px;height:10px;border-radius:2px;background:#2b332e}
.aio-wire{position:absolute;left:100%;top:calc(50% - 15px);width:52px;height:30px;overflow:visible;pointer-events:none}
.aio-wire .w{fill:none;stroke:#2b332e;stroke-width:3;stroke-linecap:round}
.aio-wire .c{fill:none;stroke:#6ff09c;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:2 7;animation:aioflow .8s linear infinite;filter:drop-shadow(0 0 2px rgba(95,224,143,.9))}
.aio-wire .h{fill:var(--aio-card);stroke:var(--aio-ink2);stroke-width:1.4;stroke-linejoin:round}
.aio-wire .r{fill:none;stroke:var(--aio-copper);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.aio-wire .d{fill:none;stroke:var(--aio-ink2);stroke-width:1.2}
@keyframes aioflow{to{stroke-dashoffset:-18}}
@media(prefers-reduced-motion:reduce){.aio-wire .c{animation:none}}
@keyframes aiodrop{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.aio-charger{margin:16px 0 0 35px;padding-top:14px;border-top:1px dashed var(--aio-line2)}
.aio-charger-q{font-size:14px;margin:0 0 10px;color:var(--aio-ink2)}
.aio-charger .aio-seg{margin-left:0}
@keyframes aiopop{from{opacity:0;transform:translateY(7px) scaleY(.7)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.aio-unit.is-new{animation:none}.aio-preset:hover{transform:none}}
.aio-cap{text-align:center;margin-top:12px;padding-top:12px;border-top:1px dashed var(--aio-line2)}
.aio-cap-n{font-size:29px;font-weight:700;letter-spacing:-1px;font-variant-numeric:tabular-nums;line-height:1.1}
.aio-cap-l{font-size:12.5px;color:var(--aio-muted)}
.aio-room{font-size:12.5px;color:var(--aio-copper);margin:10px 0 0;text-align:center;line-height:1.45}
.aio-step{background:var(--aio-card);border:1px solid var(--aio-line);border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:var(--aio-shadow)}
.aio-step h3{font-size:19px;margin:0;display:flex;align-items:center;gap:11px;letter-spacing:-.3px}
.aio-n{font-size:12px;color:var(--aio-green);border:1px solid var(--aio-line2);border-radius:999px;width:24px;height:24px;
 display:grid;place-items:center;flex:none;font-weight:700}
.aio-sub{color:var(--aio-muted);font-size:13.5px;margin:4px 0 15px 35px}
.aio-seg{display:flex;flex-wrap:wrap;gap:8px;margin-left:35px}
.aio-seg button{border:1px solid var(--aio-line2);background:var(--aio-card);padding:9px 15px;border-radius:999px;cursor:pointer;font:inherit;font-size:14px}
.aio-seg button[aria-pressed="true"]{background:var(--aio-green);border-color:var(--aio-green);color:#fff;font-weight:600}
.aio-slider-head{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;margin-left:35px}
.aio-val{font-size:26px;font-weight:700;letter-spacing:-.7px;font-variant-numeric:tabular-nums}
.aio-count{font-size:13px;color:var(--aio-muted)}
.aio-range{width:calc(100% - 35px);margin:14px 0 4px 35px;accent-color:var(--aio-green)}
.aio-scale{position:relative;height:24px;font-size:11px;color:var(--aio-muted);margin-left:35px}
.aio-mark{position:absolute;transform:translateX(-50%);text-align:center;white-space:nowrap}
.aio-mark::before{content:"";display:block;width:1px;height:6px;background:var(--aio-copper);margin:0 auto 3px}
.aio-mark.key{color:var(--aio-copper);font-weight:700}
.aio-mix{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 0 35px}
.aio-chip{font-size:12.5px;font-weight:600;padding:5px 11px;border-radius:7px;background:var(--aio-soft)}
.aio-runs{margin:14px 0 0 35px;padding:13px 15px;border-radius:9px;background:var(--aio-raise);font-size:14px;line-height:1.5;color:var(--aio-ink2)}
.aio-runs b{color:var(--aio-ink)}
.aio-link{background:none;border:0;padding:0;color:var(--aio-green);font-weight:700;font-size:13.5px;cursor:pointer;
 text-decoration:underline;text-underline-offset:3px;margin:13px 0 0 35px;font-family:inherit}
.aio-manual{margin:14px 0 0 35px;display:grid;gap:9px;padding:14px;border:1px dashed var(--aio-line2);border-radius:9px}
.aio-mrow{display:flex;align-items:center;gap:12px;font-size:14px}
.aio-mrow .nm{flex:1}
.aio-mrow .kv{color:var(--aio-muted);font-size:12.5px}
.aio-stepper{display:flex;align-items:center;gap:8px}
.aio-stepper button{width:30px;height:30px;border-radius:7px;border:1px solid var(--aio-line2);background:var(--aio-card);
 cursor:pointer;font-weight:700;line-height:1;font-family:inherit}
.aio-stepper span{min-width:20px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}
.aio-ctrls{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:9px;margin-left:35px}
.aio-ctrl{border:1px solid var(--aio-line2);background:var(--aio-card);border-radius:9px;padding:11px 12px;cursor:pointer;
 text-align:left;display:grid;gap:2px;font:inherit;color:inherit}
.aio-ctrl[aria-pressed="true"]{border-color:var(--aio-green);background:var(--aio-soft);box-shadow:inset 0 0 0 1px var(--aio-green)}
.aio-ctrl .cn{font-weight:700;font-size:14.5px}
.aio-ctrl .cs{font-size:12px;color:var(--aio-muted);line-height:1.35}
.aio-tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--aio-green);
 background:var(--aio-soft);border-radius:4px;padding:1px 5px;margin-left:5px}
.aio-result{background:var(--aio-deep);color:#fff;border-radius:12px;padding:24px;box-shadow:var(--aio-shadow)}
.aio-sku{font-size:12px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;opacity:.75}
.aio-result h3{font-size:24px;margin:7px 0 2px;color:#fff;letter-spacing:-.4px}
.aio-desc{font-size:14px;opacity:.85;line-height:1.5;margin:0}
.aio-prices{display:flex;flex-wrap:wrap;gap:22px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.22)}
.aio-pl{font-size:11.5px;text-transform:uppercase;letter-spacing:.09em;opacity:.75;font-weight:700}
.aio-pv{font-size:29px;font-weight:700;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.aio-pblock.small .aio-pv{font-size:20px;opacity:.8}
.aio-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.aio-btn{border-radius:9px;padding:11px 18px;font-size:14.5px;font-weight:700;cursor:pointer;border:1px solid transparent;
 text-decoration:none;display:inline-block}
.aio-primary{background:#fff;color:var(--aio-deep)}
.aio-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.aio-fine{font-size:12px;opacity:.72;margin:13px 0 0;line-height:1.5}
.aio-explain{margin:14px 0 0 35px;font-size:13.5px}
.aio-explain summary{cursor:pointer;color:var(--aio-green);font-weight:700;list-style:none}
.aio-explain summary::-webkit-details-marker{display:none}
.aio-explain summary::before{content:"? ";font-weight:700}
.aio-explain p{margin:9px 0 0;color:var(--aio-ink2);line-height:1.55;max-width:60ch}
.aio-parts{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:7px}
.aio-parts li{display:flex;justify-content:space-between;gap:14px;align-items:baseline;font-size:14px;
 padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.14)}
.aio-parts li:last-child{border-bottom:0;padding-bottom:0}
.aio-parts .pn{display:flex;flex-direction:column;gap:2px}
.aio-parts .psku{font-size:11px;letter-spacing:.06em;opacity:.65;font-weight:600}
.aio-parts .pp{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.aio-pv s{opacity:.7}
.aio-charger-q{font-size:13px;color:var(--aio-copper);margin:12px 0 0 35px;line-height:1.45}
@media(max-width:640px){.aio-explain,.aio-charger-q{margin-left:0}}

/* Price summary: ex GST, discounts, GST, GST-free rebate, out of pocket (v1.3.7) */
.aio-sum{width:100%;font-variant-numeric:tabular-nums}
.aio-sum .aio-row{display:flex;justify-content:space-between;gap:14px;padding:5px 0;font-size:14.5px}
.aio-sum .aio-row span:first-child{opacity:.85}
.aio-sum .aio-row.is-save span:last-child{color:#b9f0aa}
.aio-sum .aio-row.is-sub{border-top:1px solid rgba(255,255,255,.22);margin-top:4px;padding-top:9px;font-weight:700}
.aio-sum .aio-row.is-sub span:first-child{opacity:1}
.aio-sum .aio-row.is-total{border-top:2px solid rgba(255,255,255,.55);margin-top:8px;padding-top:12px;font-size:21px;font-weight:700}
.aio-sum .aio-row.is-total span:first-child{opacity:1}
.aio-sum .aio-row.is-note{font-size:12.5px;opacity:.72;padding-top:0}
