/* Colours follow the site theme: Elementor global primary (or the accent override), theme font and sizes. */
.gof{--g-acc:var(--gof-accent,var(--e-global-color-primary,var(--e-global-color-accent,#3B82C4)));--g-on:#fff;--g-acc-d:#2C6AA3;--g-tint:#EAF5F2;--g-tint2:#D6EBE5;--g-line:#D5DFDA;--g-bg:#F4F7F5;--g-ink:#14201f;--g-mute:#566360;
 display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;padding:28px;background:var(--g-bg);border-radius:16px;color:var(--g-ink);font-family:inherit;font-size:16px;line-height:1.5;box-sizing:border-box}
@supports (color:oklch(from red l c h)){
 .gof{--g-on:oklch(from var(--g-acc) clamp(0,(l - .72) * -1000,1) 0 0)}
}
@supports (color:color-mix(in srgb,red,blue)){
 .gof{--g-acc-d:color-mix(in srgb,var(--g-acc) 78%,#000);--g-tint:color-mix(in srgb,var(--g-acc) 9%,#fff);--g-tint2:color-mix(in srgb,var(--g-acc) 18%,#fff);--g-line:color-mix(in srgb,var(--g-acc) 14%,#dde3e0);--g-bg:color-mix(in srgb,var(--g-acc) 4%,#f6f8f7)}
}
.gof *{box-sizing:border-box}
.gof button,.gof input,.gof select,.gof textarea{font-family:inherit}
.gof h2{margin:0 0 4px;font-size:1.4em;color:var(--g-ink)}.gof h3{margin:0 0 14px;font-size:1.05em;color:var(--g-ink)}
.gof-sub,.gof-hint{color:var(--g-mute);font-size:.9em;margin:0 0 14px}

/* Stepper + progress */
.gof-steps{display:flex;gap:6px;list-style:none;margin:0 0 10px;padding:0}
.gof-steps li{flex:1;min-width:0}
.gof-steps button{display:flex;align-items:center;gap:8px;width:100%;padding:4px 0;background:none;border:0;color:var(--g-mute);font-size:.9em;text-align:left;cursor:default}
.gof-steps button:not(:disabled){cursor:pointer}
.gof-steps button:not(:disabled):hover b{text-decoration:underline}
.gof-steps span{width:28px;height:28px;border-radius:50%;background:#E3EAE6;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85em;flex:none;transition:background .25s,color .25s,transform .25s}
.gof-steps li.is-active span,.gof-steps li.is-done span{background:var(--g-acc);color:var(--g-on)}
.gof-steps li.is-active span{transform:scale(1.12)}
.gof-steps li.is-active button,.gof-steps li.is-done button{color:var(--g-ink)}
.gof-steps b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gof-steps li.is-active b{font-weight:700}
.gof-bar{height:4px;background:#E3EAE6;border-radius:4px;margin-bottom:24px;overflow:hidden}
.gof-bar i{display:block;height:100%;width:0;background:var(--g-acc);border-radius:4px;transition:width .4s ease}
.gof-draft{margin:0 0 14px;padding:8px 12px;background:var(--g-tint);border-radius:8px;font-size:.9em}

/* Step transitions */
.gof section[data-step]{animation:gof-in .35s ease both}
.gof.is-back section[data-step]{animation-name:gof-in-back}
@keyframes gof-in{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
@keyframes gof-in-back{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}
.gof .is-shake{animation:gof-shake .35s}
@keyframes gof-shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}

/* Service cards */
.gof-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gof-card{display:flex;align-items:flex-start;gap:12px;min-height:96px;padding:14px;background:#fff;border:1.5px solid var(--g-line);border-radius:12px;cursor:pointer;position:relative;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s}
.gof-card:hover{transform:translateY(-2px);border-color:var(--g-acc);box-shadow:0 6px 16px rgba(0,0,0,.07)}
.gof-card input{position:absolute;opacity:0;pointer-events:none}
.gof-card:focus-within{outline:3px solid var(--g-tint2);border-color:var(--g-acc)}
.gof-ic{flex:none;width:40px;height:40px;border-radius:10px;background:var(--g-tint);color:var(--g-acc);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.gof-ct{display:flex;flex-direction:column;min-width:0}
.gof-ct b{font-size:.92em;line-height:1.3;font-weight:600}
.gof-ct small{margin-top:3px;color:var(--g-mute);font-size:.78em;line-height:1.35}
.gof-tick{position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:50%;background:var(--g-acc);color:var(--g-on);display:flex;align-items:center;justify-content:center;transform:scale(0);transition:transform .2s cubic-bezier(.3,1.6,.5,1)}
.gof-card.is-sel{border-color:var(--g-acc);background:var(--g-tint);box-shadow:0 0 0 3px var(--g-tint2)}
.gof-card.is-sel .gof-ic{background:var(--g-acc);color:var(--g-on)}
.gof-card.is-sel .gof-tick{transform:scale(1)}

/* Fields */
.gof-field{margin:0 0 16px;padding:0;border:0;min-width:0}
.gof-field label,.gof-field legend{display:block;font-size:.9em;font-weight:600;margin-bottom:6px;padding:0}
.gof-field legend small{font-weight:400;color:var(--g-mute)}
.gof-field input[type=text],.gof-field input[type=email],.gof-field input[type=tel],.gof-field input[type=number],.gof-field input[type=datetime-local],.gof-field select,.gof-field textarea{width:100%;padding:10px 12px;border:1.5px solid var(--g-line);border-radius:10px;background:#fff;font-size:1em;color:inherit;margin-top:6px;transition:border-color .15s,box-shadow .15s}
.gof-field input:focus,.gof-field select:focus,.gof-field textarea:focus{outline:0;border-color:var(--g-acc);box-shadow:0 0 0 3px var(--g-tint2)}
.gof-field.has-err input,.gof-field.has-err textarea{border-color:#B3261E}
.gof-count{text-align:right;font-size:.78em;color:var(--g-mute);margin-top:-2px}
.gof-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}

/* Quantity steppers */
.gof-steppers{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.gof-stepper{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#fff;border:1.5px solid var(--g-line);border-radius:12px}
.gof-stepper>span{font-size:.9em;font-weight:600}
.gof-stepper .ctl{display:flex;align-items:center;gap:6px}
.gof-stepper button{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--g-acc);background:#fff;color:var(--g-acc-d);font-size:1.1em;line-height:1;cursor:pointer;padding:0;transition:background .15s,color .15s,transform .1s}
.gof-stepper button:hover{background:var(--g-acc);color:var(--g-on)}.gof-stepper button:active{transform:scale(.9)}
.gof-stepper input{width:54px!important;margin:0!important;text-align:center;padding:6px!important;-moz-appearance:textfield}
.gof-stepper input::-webkit-inner-spin-button,.gof-stepper input::-webkit-outer-spin-button{-webkit-appearance:none}

/* Pills, chips, toggles */
.gof-pills,.gof-chips,.gof-toggles{display:flex;flex-wrap:wrap;gap:8px}
.gof-chips{margin-bottom:14px}
.gof-pill input,.gof-toggle input{position:absolute;opacity:0;pointer-events:none}
.gof-pill,.gof-toggle{position:relative;display:inline-flex!important;margin:0!important;font-weight:500!important}
.gof-pill span,.gof-toggle span,.gof-chips button{display:inline-block;padding:7px 14px;background:#fff;border:1.5px solid var(--g-line);border-radius:999px;font-size:.88em;cursor:pointer;color:var(--g-ink);transition:background .15s,border-color .15s,color .15s,transform .1s}
.gof-pill span:hover,.gof-toggle span:hover,.gof-chips button:hover{border-color:var(--g-acc)}
.gof-pill input:checked+span,.gof-toggle input:checked+span,.gof-chips button.is-on{background:var(--g-acc);border-color:var(--g-acc);color:var(--g-on)}
.gof-pill input:focus-visible+span,.gof-toggle input:focus-visible+span,.gof-chips button:focus-visible{outline:3px solid var(--g-tint2)}
.gof-pill input:active+span,.gof-chips button:active{transform:scale(.96)}
.gof-toggle span{border-radius:10px;padding:10px 14px}
.gof-toggle input:checked+span::before{content:"\2713\00a0"}
.gof-tone{margin:8px 0 0;padding:6px 12px;border-radius:8px;font-size:.88em;display:inline-block}
.gof-tone.ok{background:var(--g-tint);color:var(--g-acc-d)}.gof-tone.warn{background:#FFF4DB;color:#7A5200}.gof-tone.hot{background:#FDE8E6;color:#8C1D18}

/* Uploads */
.gof-drop{border:2px dashed var(--g-line);border-radius:12px;background:#fff;text-align:center;padding:24px;margin-bottom:12px;transition:border-color .15s,background .15s,transform .15s}
.gof-drop:hover{border-color:var(--g-acc)}
.gof-drop.is-over{border-color:var(--g-acc);background:var(--g-tint);transform:scale(1.01)}
.gof-drop p{margin:0 0 4px}
.gof-link{background:none;border:0;color:var(--g-acc-d);text-decoration:underline;font:inherit;cursor:pointer;padding:0}
.gof-files{list-style:none;margin:0 0 16px;padding:0}
.gof-files li{display:flex;gap:10px;align-items:center;font-size:.9em;padding:8px 10px;background:#fff;border:1px solid var(--g-line);border-radius:8px;margin-bottom:6px;animation:gof-in .25s both}
.gof-files progress{flex:1;height:6px;accent-color:var(--g-acc)}
.gof-files .gof-x{margin-left:auto;background:none;border:0;cursor:pointer;color:var(--g-mute);font-size:1.2em;line-height:1}

/* Review */
.gof-review table{width:100%;border-collapse:collapse;font-size:.92em;margin-bottom:16px;background:#fff;border-radius:10px;overflow:hidden}
.gof-review th{text-align:left;width:30%;padding:9px 12px;color:var(--g-mute);font-weight:500;border-bottom:1px solid var(--g-line);vertical-align:top}
.gof-review td{padding:9px 12px;border-bottom:1px solid var(--g-line)}
.gof-review td.e{width:1%;text-align:right;white-space:nowrap}
.gof-check{display:flex;gap:10px;align-items:flex-start;font-size:.9em;margin:0 0 10px;padding:12px;background:#fff;border:1.5px solid var(--g-line);border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s}
.gof-check:has(input:checked){border-color:var(--g-acc);background:var(--g-tint)}
.gof-check input{margin-top:4px;accent-color:var(--g-acc)}
.gof-check a{color:var(--g-acc-d)}

/* Nav buttons */
.gof-nav{display:flex;justify-content:space-between;gap:12px;margin-top:20px}
.gof-nav #gof-next,.gof-nav #gof-submit{margin-left:auto}
.gof-btn{height:48px;padding:0 28px;border:0;border-radius:10px;background:var(--g-acc);color:var(--g-on);font-weight:700;font-size:1em;cursor:pointer;transition:background .15s,transform .1s,opacity .2s}
.gof-btn:hover{background:var(--g-acc-d)}.gof-btn:active{transform:scale(.97)}
.gof-btn.is-off{opacity:.45}
.gof-btn[disabled]{opacity:.6;cursor:wait}
.gof-ghost{background:#fff;color:var(--g-acc-d);border:1.5px solid var(--g-acc)}.gof-ghost:hover{background:var(--g-tint)}
.gof-error{margin:14px 0 0;padding:10px 12px;border-radius:8px;background:#FDECEA;color:#8C1D18;font-size:.9em;animation:gof-in .25s both}

/* Done */
.gof-done{padding:32px 24px;background:#fff;border-radius:12px;border:1.5px solid var(--g-acc);text-align:center;color:var(--g-acc)}
.gof-done h2,.gof-done p{color:var(--g-ink)}
.gof-check-anim circle,.gof-check-anim path{stroke-dasharray:190;stroke-dashoffset:190;animation:gof-draw .7s .1s ease forwards}
.gof-check-anim path{stroke-dasharray:60;stroke-dashoffset:60;animation-delay:.5s}
@keyframes gof-draw{to{stroke-dashoffset:0}}

/* Summary */
.gof-summary{align-self:start;position:sticky;top:20px;background:#fff;border:1.5px solid var(--g-line);border-radius:14px;padding:20px}
.gof-summary dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 12px;font-size:.9em}
.gof-summary dt{color:var(--g-mute)}.gof-summary dd{margin:0;text-align:right;font-weight:600;overflow-wrap:anywhere}
.gof-summary dd.flash{animation:gof-flash .8s}
@keyframes gof-flash{from{background:var(--g-tint2)}to{background:transparent}}
.gof-next-box{margin-top:16px;padding:12px 14px;background:var(--g-tint);border-radius:10px;font-size:.85em}
.gof-next-box ol{margin:6px 0 0;padding-left:18px}.gof-next-box li{margin:2px 0}
.gof-hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.gof [hidden]{display:none!important}

@media(max-width:860px){.gof{grid-template-columns:1fr;padding:16px}.gof-summary{position:static;order:-1}.gof-cards{grid-template-columns:1fr 1fr}.gof-steps b{display:none}}
@media(max-width:520px){.gof-cards,.gof-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.gof *{animation:none!important;transition:none!important}}

/* ---- Centered layout (0.3.1): one centred column, summary beneath ---- */
.gof{display:block;width:100%;max-width:880px;margin:0 auto;padding:32px}
.gof-main{max-width:100%}
.gof h2,.gof-sub{text-align:center}
.gof-steps{justify-content:center}
.gof-steps button{justify-content:center}
.gof-cards{max-width:100%}
.gof-card{flex-direction:column;align-items:center;text-align:center;justify-content:flex-start;gap:8px;padding:18px 14px}
.gof-ct{align-items:center}
.gof-units legend{text-align:center;width:100%}
.gof-steppers{justify-content:center}
.gof-chips,.gof-pills,.gof-toggles{justify-content:center}
.gof-field legend{text-align:center;width:100%}
.gof-count{text-align:center}
.gof-tone{display:block;text-align:center}
.gof-nav{justify-content:center}
.gof-nav #gof-next,.gof-nav #gof-submit{margin-left:0}
.gof-btn{min-width:170px}
.gof-error{text-align:center}
.gof-draft{text-align:center}
.gof-summary{position:static;max-width:100%;margin-top:28px;text-align:center}
.gof-summary dl{max-width:480px;margin:0 auto;text-align:left}
.gof-next-box{max-width:480px;margin:16px auto 0;text-align:left}
@media(max-width:860px){.gof{padding:18px}}
