.contacto__inner{gap:var(--space-6);display:grid}.contacto__intro{gap:var(--space-4);align-content:start;display:grid}.contacto__title{font-size:var(--text-3xl);max-width:14ch}.contacto__promise{align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:600;display:inline-flex}.contacto__status{background:var(--color-accent);border-radius:50%;flex:none;width:10px;height:10px;position:relative}.contacto__status:after{content:"";background:var(--color-accent);animation:pulse-dot 2s var(--ease-in-out) infinite;border-radius:50%;position:absolute;inset:0}:root[data-theme=light] .contacto__status,:root[data-theme=light] .contacto__status:after{background:var(--color-accent-text)}.contacto__direct{gap:var(--space-2);margin-top:var(--space-3);display:grid}.contacto__direct-label{font-size:var(--text-sm);color:var(--color-text-muted)}.contacto__channel{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);border:var(--border);background:var(--color-surface);transition:border-color var(--dur-fast) ease, transform var(--dur-mid) var(--ease-out-expo);display:flex}.contacto__channel>span:nth-child(2){min-width:0;font-size:var(--text-sm);color:var(--color-text-muted);overflow-wrap:anywhere;flex:1;display:grid}.contacto__channel strong{color:var(--color-text);font-size:var(--text-base)}.contacto__channel-icon{width:var(--tap);height:var(--tap);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-on-accent);flex:none;place-items:center;display:grid}@media (hover:hover) and (pointer:fine){.contacto__channel:hover{border-color:var(--color-text-muted)}}.contacto__location{align-items:center;gap:var(--space-1);margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);display:inline-flex}@media (width>=64em){.contacto__inner{gap:var(--space-8);grid-template-columns:.9fr 1.1fr}}.form{gap:var(--space-3);padding:clamp(var(--space-4), 4vw, var(--space-5));border-radius:var(--radius-lg);border:var(--border);background:var(--color-surface);display:grid;position:relative}.form__row{gap:var(--space-3);display:grid}.field{gap:var(--space-1);display:grid}.field label{font-size:var(--text-sm);font-weight:600}.field__optional{color:var(--color-text-muted);font-weight:400}.field input,.field select,.field textarea{width:100%;min-height:52px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:var(--border);background:var(--color-bg);color:var(--color-text);transition:border-color var(--dur-fast) ease;font-size:1rem}.field textarea{min-height:140px}.field ::placeholder{color:var(--color-text-muted);opacity:.8}.field :is(input,select,textarea):focus-visible{outline:2px solid var(--color-accent);outline-offset:1px;border-color:#0000}.field.is-invalid :is(input,select,textarea){border-color:var(--color-danger)}.field.is-valid :is(input,select,textarea){border-color:var(--color-success)}.field__error{font-size:var(--text-xs);color:var(--color-danger);animation:fade-up var(--dur-mid) var(--ease-out-expo);--reveal-distance:-4px}@media (width>=40em){.form__row{grid-template-columns:1fr 1fr}}.form__trap{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form__noscript{padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-accent-soft);font-size:var(--text-sm)}.form__noscript a{text-decoration:underline}.form__submit{min-height:56px;margin-top:var(--space-2);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-on-accent);transition:transform var(--dur-mid) var(--ease-out-expo);font-weight:700;display:grid;position:relative;overflow:hidden}.form__submit:active{transform:scale(.98)}.form__label{justify-content:center;align-items:center;gap:var(--space-2);transition:opacity var(--dur-mid) ease, transform var(--dur-mid) var(--ease-out-expo);grid-area:1/1;display:inline-flex}.form__label--loading,.form__label--success{opacity:0;transform:translateY(100%)}.form[data-state=loading] .form__label--idle,.form[data-state=success] .form__label--idle,.form[data-state=success] .form__label--loading{opacity:0;transform:translateY(-100%)}.form[data-state=loading] .form__label--loading,.form[data-state=success] .form__label--success{opacity:1;transform:none}.form__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}.form__check path{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24px}.form[data-state=success] .form__check path{animation:draw var(--dur-slow) var(--ease-out-expo) .15s forwards}.form__submit:disabled{cursor:default}.form__status{font-size:var(--text-sm);text-align:center}.form[data-state=error] .form__status{color:var(--color-danger)}
