/* Contacto: una superficie luminosa junto a una pieza de origami en movimiento. */
.contact-page{background:#201f1d;color:#f5f2ec}
.contact-main{padding-bottom:5rem}
.contact-skip{position:fixed;top:-5rem;left:1rem;z-index:50;padding:1rem;background:#f5f2ec;color:#231f20}
.contact-skip:focus{top:1rem}
.contact-topline{display:flex;justify-content:space-between;padding:1.7rem 0;border-bottom:1px solid #ffffff26;font: .65rem var(--font-mono);letter-spacing:.12em;color:#c3beb5}
.contact-layout{display:grid;grid-template-columns:1fr 1.06fr;gap:4.5rem;align-items:start;padding-top:3rem}
.contact-eyebrow{font:500 .64rem var(--font-mono);letter-spacing:.08em;line-height:1.7}
.contact-story>.contact-eyebrow{display:flex;gap:.6rem;align-items:center;color:#d2cbc1;margin-bottom:1.7rem}
.contact-story>.contact-eyebrow>span{width:6px;height:6px;background:#f7941d;border-radius:50%}
.contact-story h1{font-size:clamp(2.8rem,4.5vw,4.6rem);font-weight:500;text-transform:none;letter-spacing:-.065em;line-height:1.07}
.contact-story h1 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:#ffad50;font-size:1.25em}
.contact-intro{font-size:.92rem;line-height:1.8;color:#c0bbb3;max-width:43ch;margin-top:1.7rem}
.contact-art{position:relative;height:310px;margin:1.8rem 0;isolation:isolate;overflow:hidden;--light-x:50%;--light-y:50%;background:radial-gradient(ellipse at var(--light-x) var(--light-y),#f7941d23,transparent 64%);border:1px solid #ffffff12;border-radius:4px}
.art-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse,#000,transparent 75%)}
.art-object{position:absolute;inset:28px 0 32px;display:flex;justify-content:center;align-items:center;transform:perspective(800px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .35s ease}
.art-object img{height:100%;width:auto;object-fit:contain;filter:drop-shadow(0 20px 22px #0008);animation:contact-float 7s ease-in-out infinite}
.art-orbit{position:absolute;border:1px solid #f5a34355;border-radius:50%;width:290px;height:170px;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-28deg)}
.orbit-two{width:210px;height:270px;transform:translate(-50%,-50%) rotate(36deg);border-color:#ffffff18}
.orbit-one::after{content:'';position:absolute;left:40px;top:13px;width:6px;height:6px;border-radius:50%;background:#ffb45d;box-shadow:0 0 16px #f7941d}
.art-caption,.art-coordinate{position:absolute;left:1rem;font: .52rem var(--font-mono);letter-spacing:.08em;color:#aaa397}
.art-coordinate{top:1rem}.art-caption{bottom:1rem}
@keyframes contact-float{0%,100%{transform:translateY(3px) rotate(-5deg)}50%{transform:translateY(-9px) rotate(2deg)}}
.contact-direct{display:grid;gap:1rem}.contact-direct a{font-size:.9rem;overflow-wrap:anywhere;transition:color .2s}.contact-direct a:hover{color:#ffad50}.contact-direct a>span{display:block;font: .58rem var(--font-mono);letter-spacing:.08em;color:#a8a297;margin-bottom:.25rem}
.contact-location{font-size:.72rem;color:#aaa397;margin-top:1.3rem}
.contact-panel{background:#f5f2ec;color:#231f20;padding:2rem 2.1rem;border-radius:8px;box-shadow:0 18px 60px #0002}
.panel-heading{display:flex;justify-content:space-between;align-items:center;color:#70685e}.panel-mark{font-size:1.8rem;color:#9d4b10}
.contact-panel h2{font-size:2rem;letter-spacing:-.055em;text-transform:none;font-weight:600;line-height:1.15;margin-top:.5rem}
.panel-intro{font-size:.82rem;line-height:1.7;color:#6b645b;margin-top:.8rem;max-width:39ch}
.contact-progress{margin:1.7rem 0 1.3rem}.progress-label{display:flex;justify-content:space-between;font: .6rem var(--font-mono);color:#6b645b;margin-bottom:.6rem}.progress-track{height:3px;background:#ddd7cd;overflow:hidden}.progress-track>span{display:block;height:100%;width:100%;background:#a45112;transform:scaleX(var(--completion,0));transform-origin:left;transition:transform .3s ease}
.required-note{font-size:.65rem;color:#766c60;margin:1rem 0}
.project-form fieldset{border:0;padding:0;margin:0;min-width:0}.project-form fieldset+fieldset{margin-top:.7rem}.project-form legend{font-size:.79rem;font-weight:700;margin-bottom:1rem;width:100%;border-top:1px solid #d9d2c7;padding-top:1.1rem}.project-form legend>span{font: .62rem var(--font-mono);color:#9d4b10;margin-right:.7rem}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.contact-field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.8rem;min-width:0}.contact-field label{font-size:.72rem;font-weight:600}.contact-field input,.contact-field select,.contact-field textarea{font-family:var(--font-display);font-size:16px;line-height:1.4;width:100%;min-width:0;padding:.75rem .8rem;color:#231f20;background:#fffdf9;border:1px solid #cec7bb;border-radius:4px;transition:border-color .2s,box-shadow .2s}.contact-field input::placeholder,.contact-field textarea::placeholder{font-size:.75rem;color:#80766a;opacity:1}.contact-field textarea{resize:vertical;min-height:114px}.contact-field input:focus,.contact-field textarea:focus,.contact-field select:focus{outline:2px solid #b75a13;outline-offset:2px;border-color:#b75a13}.contact-field [aria-invalid="true"]{border-color:#a92e23;background:#fff7f3}.field-error{color:#a12c22;font-size:.68rem;line-height:1.5}.field-error:empty{display:none}.message-hint{display:flex;justify-content:space-between;gap:1rem;color:#74695e;font-size:.58rem;line-height:1.5}#message-count{white-space:nowrap}
.contact-submit{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;background:#ed922f;color:#231f20;border:1px solid #ed922f;border-radius:4px;padding:.9rem 1.1rem;font:700 .85rem var(--font-display);cursor:pointer;transition:background .2s,transform .2s;margin-top:1rem}.contact-submit>span:last-child{font-size:1.5rem;font-weight:400}.contact-submit:hover{background:#ffa947}.contact-submit:active{transform:translateY(1px)}.contact-submit:disabled{cursor:wait;opacity:.65}.contact-response{text-align:center;font-size:.64rem;color:#61584e;margin:.8rem 0}.contact-data-note{text-align:center;font-size:.6rem;line-height:1.6;color:#756b60;max-width:42ch;margin:0 auto}.form-feedback{font-size:.77rem;line-height:1.6;padding:.8rem;border-left:3px solid #a12c22;background:#f6e3dc;color:#81251d}
.contact-success{padding:3rem 0}.success-mark{display:grid;place-items:center;width:64px;height:64px;background:#e9d9bd;border-radius:50%;font-size:2rem;color:#744115;margin-bottom:2rem}.contact-success h3{font-size:2.5rem;text-transform:none;font-weight:500;letter-spacing:-.06em;margin:1rem 0;line-height:1.12}.contact-success>p:not(.contact-eyebrow){font-size:.9rem;line-height:1.8;color:#655b50}.contact-success a{display:block;margin-top:2rem;font-size:.8rem;text-decoration:underline;text-underline-offset:5px}
.contact-next{margin-top:4rem;padding-top:2rem;border-top:1px solid #ffffff26}.contact-next>.contact-eyebrow{color:#aaa397;margin-bottom:1.5rem}.contact-next ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.contact-next li{display:flex;gap:1rem}.contact-next li>span{font: .65rem var(--font-mono);color:#ffad50;padding-top:.2rem}.contact-next h2{font-size:1rem;font-weight:600;text-transform:none;letter-spacing:-.02em;line-height:1.3}.contact-next li p{font-size:.77rem;color:#aaa397;line-height:1.6;margin-top:.6rem;max-width:28ch}
.contact-page [hidden],.contact-honey{display:none!important}
@media(max-width:1000px){.contact-layout{gap:2rem}.contact-panel{padding:1.6rem}.contact-fields{grid-template-columns:1fr}.contact-art{height:280px}}
@media(max-width:700px){.contact-layout{grid-template-columns:1fr;padding-top:2rem;gap:2.4rem}.contact-story h1{font-size:clamp(3rem,9vw,4rem)}.contact-intro{max-width:44ch}.contact-art{height:235px;margin:1.3rem 0}.contact-direct{grid-template-columns:1fr 1fr;gap:.6rem}.contact-direct a{font-size:.73rem}.contact-topline{font-size:.55rem}.contact-story>.contact-eyebrow{font-size:.57rem}.contact-panel{padding:1.5rem}.contact-panel h2{font-size:1.9rem}.contact-next ol{grid-template-columns:1fr;gap:1.6rem}.contact-next li p{max-width:42ch}.contact-main{padding-bottom:3rem}#contact-form{scroll-margin-top:95px}}
@media(prefers-reduced-motion:reduce){.art-object img{animation:none}.art-object{transform:none;transition:none}.progress-track>span{transition:none}}
@media print{.contact-art{display:none}.contact-page{background:white;color:black}}

/* El submenú compartido declara pointer-events:auto: ocultar el menú cerrado
   evita que sus enlaces intercepten toques o reciban foco sobre el formulario. */
@media(max-width:900px){.contact-page .nav{visibility:hidden;overflow-y:auto}.contact-page .nav.is-open{visibility:visible}}
