/* Enquiry form: explicit feedback and balanced controls. */
.close-dialog{display:grid;place-items:center;padding:0;line-height:1;background:transparent;border-radius:50%;transition:background .2s}
.close-dialog:hover{background:var(--soft)}
.contact-dialog .dialog-bar{align-items:center;position:sticky;top:0;z-index:2;background:var(--bg);box-shadow:0 -30px 0 var(--bg)}
.contact-dialog .form-field{margin-bottom:18px}
.contact-dialog label{display:block;margin:0 0 8px;font-size:14px;font-weight:500}
.contact-dialog input,.contact-dialog textarea,.contact-dialog select{transition:border-color .2s,box-shadow .2s;border-radius:4px}
.contact-dialog :is(input,textarea,select):focus{outline:none;border-color:var(--text);box-shadow:0 0 0 3px var(--line)}
.contact-dialog [aria-invalid=true]{border-color:#bc361c;background:color-mix(in srgb,var(--surface),#f0521f 4%)}
.field-error{font-size:14px;color:#b52d17;margin-top:7px;line-height:1.4}
[data-theme=dark] .field-error{color:#ffac98}
.form-error-summary{border-left:3px solid #bc361c;background:color-mix(in srgb,var(--bg),#f0521f 9%);padding:12px 15px;margin-bottom:20px;font-size:14px}
.field-meta{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:var(--muted);margin-top:7px}
#message-count{white-space:nowrap}
.submit-button{align-items:center;justify-content:center;position:relative;min-height:62px;padding:18px 52px;font-family:var(--head);font-size:20px;font-weight:500;line-height:1.2;border-radius:3px;transition:background .2s}
.submit-button span{font-size:inherit}
.submit-button svg{position:absolute;right:22px;top:50%;translate:0 -50%}
.submit-button:hover{background:#d74316}
#form-status:not(:empty){border-left:3px solid var(--orange);padding:12px 15px;background:var(--soft)}

/* Distinct, readable hover surfaces for the four capabilities. */
.service-card{transition:background-color .35s,color .35s;padding-inline:23px!important}
.service-card:nth-child(1){--hover-bg:#123d4d;--hover-ink:#fff}
.service-card:nth-child(2){--hover-bg:#f0521f;--hover-ink:#071d25}
.service-card:nth-child(3){--hover-bg:#233968;--hover-ink:#fff}
.service-card:nth-child(4){--hover-bg:#b8d9d9;--hover-ink:#123d4d}
.service-card :is(p,.card-detail,.card-top){transition:color .35s}
.service-grid .service-card:focus-visible{background:var(--hover-bg);color:var(--hover-ink)}
.service-card:focus-visible :is(p,.card-detail,.card-top){color:var(--hover-ink)}
@media(hover:hover){.service-grid .service-card:hover{background:var(--hover-bg);color:var(--hover-ink)}.service-card:hover :is(p,.card-detail,.card-top){color:var(--hover-ink)}}

/* A steady bulb warms up on hover, without looping or pulsing. */
.website-section{position:relative;isolation:isolate;overflow:hidden}
.website-layout{position:relative;z-index:1}
.idea-bulb{position:absolute;left:50%;top:50%;width:clamp(115px,12vw,165px);translate:-50% -50%;opacity:0;pointer-events:none;transition:opacity .8s ease;z-index:0;mix-blend-mode:screen;mask-image:radial-gradient(ellipse,black 48%,transparent 73%)}
.idea-bulb img{position:relative;display:block;width:100%;height:auto;filter:brightness(.85) saturate(.8);transition:filter .65s ease}
.idea-bulb:before{content:'';position:absolute;inset:-10% -35%;background:radial-gradient(ellipse at 50% 36%,#ffc16b88 0%,#f5802938 28%,transparent 62%);opacity:0;transition:opacity .65s ease;pointer-events:none}
.website-section.idea-visible .idea-bulb{opacity:.48}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.website-section.idea-visible.idea-active .idea-bulb{opacity:.95}.idea-active .idea-bulb img{filter:brightness(1.35) saturate(1.2) drop-shadow(0 0 10px #ffb65970)}.idea-active .idea-bulb:before{opacity:1}}
.idea-cursor{position:fixed;top:0;left:0;z-index:30;display:grid;place-items:center;width:66px;height:66px;border:1px solid #ffb995;background:#f0521fe8;color:#fff;border-radius:50%;font-family:var(--head);font-size:17px;letter-spacing:-.03em;pointer-events:none;opacity:0;translate:-50% -50%;scale:.7;transition:opacity .15s,scale .2s;box-shadow:0 5px 25px #00192330}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.idea-active,.idea-active *{cursor:none!important}.idea-active .idea-cursor{opacity:1;scale:1}}

/* Progressive reveals retain normal document flow and accessible text. */
.process-grid li.reveal-pending{opacity:0;transform:translateY(30px)}
.process-grid li.is-revealed{opacity:1;transform:none;transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.complex-word{display:inline-block;white-space:nowrap}
.complex-letter{display:inline-block;position:relative}
.complex-letter-base{visibility:hidden}
.complex-letter-glyph{position:absolute;left:0;top:0;display:block}
.complex-word.is-scrambling{color:var(--orange)}
.complex-word{transition:color .5s}
@media(max-width:650px){.service-card{padding-inline:18px!important}.idea-bulb{width:115px;opacity:.3}.submit-button{font-size:19px}.field-meta{flex-wrap:wrap;gap:3px 15px}.process-grid li.is-revealed{transition-delay:0ms}}
@media(prefers-reduced-motion:reduce){.idea-cursor{display:none}.process-grid li.reveal-pending{opacity:1;transform:none}.complex-letter-glyph{transform:none!important}}
