/* NORYX · Contacto */
.contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);height:100svh;min-height:560px;padding-top:var(--header-h)}
.contact__form{overflow:auto}
.contact__aside{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-end}
.contact__media{position:absolute;inset:0;z-index:-2}
.contact__media img{width:100%;height:100%;object-fit:cover;object-position:62% center}
.contact__aside::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(12,12,12,.95) 10%,rgba(12,12,12,.55) 70%,rgba(12,12,12,.35))}
.contact__intro{padding:clamp(24px,5vh,64px) clamp(24px,4vw,56px)}
.contact__intro h1{font-size:clamp(28px,min(3.6vw,6.4vh),56px);line-height:1.05}
.contact__intro>p{margin-top:clamp(12px,2.4vh,24px);color:#e3e3e3;max-width:40ch}
.contact__channels{margin-top:clamp(16px,3vh,32px);padding-top:clamp(12px,2vh,24px);border-top:1px solid var(--line-strong);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s2)}
.contact__channels a,.contact__channels span{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:var(--white);font-size:16px}
.contact__channels a:hover{color:var(--gold)}
.contact__channels .icon{width:20px;height:20px;color:var(--gold)}
.js .contact__intro{animation:rise 1.1s var(--ease) both}

.contact__form{display:flex;flex-direction:column;justify-content:center;padding:var(--s6) clamp(24px,7vw,112px)}
.form-meta{display:flex;justify-content:space-between;color:var(--muted)}
.form-progress{height:2px;background:var(--steel);margin:var(--s2) 0 var(--s6)}
.form-progress i{display:block;height:100%;width:0;background:var(--gold);transition:width .7s var(--ease)}
.question h2{font-size:clamp(28px,3vw,46px);line-height:1.1;margin-bottom:var(--s2)}
.question .description{color:var(--muted);margin-bottom:var(--s4)}
.js .question{animation:rise .7s var(--ease) both}
.field-label{display:block;font-size:var(--fs-label);font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--s1)}
.question input,.question textarea{width:100%;border:0;border-bottom:1px solid #5f5f5f;background:transparent;color:var(--white);padding:12px 0;font-size:clamp(20px,1.6vw,24px);border-radius:0;outline:none;transition:border-color .3s}
.question textarea{font-size:18px;line-height:1.6;resize:vertical;min-height:160px}
.question input:focus,.question textarea:focus{border-bottom-color:var(--gold)}
.question input::placeholder,.question textarea::placeholder{color:#8a8a8a}
.question input[aria-invalid="true"],.question textarea[aria-invalid="true"]{border-bottom-color:#e8a24a}
.counter{margin-top:var(--s1);font-size:var(--fs-small);color:var(--subtle);text-align:right}
.options{display:grid;gap:12px;border:0;padding:0;margin:0}
.option{display:flex;align-items:center;gap:var(--s2);min-height:60px;padding:12px var(--s3) 12px 12px;border:1px solid var(--steel);border-radius:2px;cursor:pointer;font-size:17px;transition:border-color .3s,background .3s}
.option:hover{border-color:var(--line-strong)}
.option:has(input:checked){border-color:var(--gold);background:rgba(212,160,58,.08)}
.option:focus-within{outline:2px solid var(--gold);outline-offset:3px}
.option input{position:absolute;opacity:0;pointer-events:none}
.option kbd{display:grid;place-items:center;width:32px;height:32px;flex:none;border:1px solid #5f5f5f;border-radius:2px;font:500 13px var(--font-text);color:var(--muted);transition:all .3s}
.option:has(input:checked) kbd{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.form-error{min-height:24px;margin-top:var(--s2);color:#f0b45c;font-size:15px}
.form-error a{text-decoration:underline;text-underline-offset:3px}
.form-controls{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s3)}
.btn-back{width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:2px;color:var(--white);transition:border-color .3s,color .3s}
.btn-back:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}
.btn-back:disabled{opacity:.3;cursor:default}
.form-controls .btn:disabled{opacity:.7;cursor:progress}
.enter-hint{font-size:var(--fs-small);color:var(--subtle)}
.consent{margin-top:var(--s4);font-size:var(--fs-small);color:var(--subtle);max-width:56ch}
.consent a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.consent a:hover{color:var(--gold)}
.bot-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.sent{max-width:560px}
.sent__mark{width:56px;height:auto;margin-bottom:var(--s4)}
.sent__mark path{fill:var(--gold);stroke:var(--gold);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;fill-opacity:0;animation:draw 1.6s var(--ease-in-out) forwards,fill-full .8s 1.2s var(--ease) forwards}
.sent h2{font-size:clamp(30px,3.2vw,48px);line-height:1.1;margin:var(--s2) 0 var(--s3)}
.sent>p:not(.label){color:var(--muted);margin-bottom:var(--s4)}
.sent a:not(.btn){color:var(--gold);text-decoration:underline;text-underline-offset:3px}
[hidden]{display:none!important}

@media (max-width:960px){
  .contact{grid-template-columns:minmax(0,1fr);height:auto;min-height:0}
  .contact__form{overflow:visible}
  .contact__aside{min-height:auto}
  .contact__intro{padding:var(--s4) var(--gutter) var(--s4)}
  .contact__intro .breadcrumb,.contact__channels{display:none}
  .contact__channels{grid-template-columns:1fr 1fr}
  .contact__form{padding:var(--s5) var(--gutter) var(--s7);justify-content:flex-start}
  .form-progress{margin-bottom:var(--s5)}
  .enter-hint{display:none}
}
@media (max-width:560px){
  .contact__channels{grid-template-columns:minmax(0,1fr)}
  .form-controls .btn{flex:1}
}
@media (prefers-reduced-motion:reduce){.sent__mark path{stroke-dashoffset:0;fill-opacity:1}}
@keyframes fill-full{to{fill-opacity:1}}
