.trx-contacto { padding-block: clamp(var(--space-8), 10vw, var(--space-10)); background: var(--bg-base); border-top: 1px solid var(--line); position: relative; }

/* ── Head ─────────────────────────────────────────────────────────── */
.trx-contacto__head { max-width: 56ch; margin-bottom: var(--space-7); padding-bottom: var(--space-5); border-bottom: 1px solid var(--line); }
.trx-contacto__title { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; letter-spacing: -0.025em; margin: var(--space-3) 0 var(--space-3); }
.trx-contacto__lede { font-size: var(--fs-400); color: var(--ink-muted); margin: 0; line-height: 1.55; max-width: 52ch; }

/* ── Layout ───────────────────────────────────────────────────────── */
.trx-contacto__layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--space-6); align-items: start; }
@media (max-width: 960px) { .trx-contacto__layout { grid-template-columns: 1fr; gap: var(--space-5); } }

/* ── Form ─────────────────────────────────────────────────────────── */
.trx-contacto__form { display: flex; flex-direction: column; gap: var(--space-5); padding: var(--space-6); background: var(--bg-elevated); border: 1px solid var(--line); border-radius: var(--radius-md); position: relative; }
.trx-contacto__form::before { content: ''; position: absolute; left: 0; top: var(--space-6); bottom: var(--space-6); width: 3px; background: var(--accent); border-radius: 0 2px 2px 0; }
.trx-contacto__form-grid { display: flex; flex-direction: column; gap: var(--space-5); }

.trx-contacto__field { display: flex; flex-direction: column; gap: var(--space-2); }
.trx-contacto__label { display: inline-flex; align-items: baseline; gap: 10px; }
.trx-contacto__label-num { font-family: var(--font-mono); font-size: var(--fs-100); letter-spacing: 0.12em; color: var(--accent); padding: 2px 6px; border: 1px solid var(--accent); border-radius: var(--radius-pill); line-height: 1; }
.trx-contacto__label-text { font-family: var(--font-display); font-size: var(--fs-400); color: var(--ink-primary); font-weight: 500; letter-spacing: -0.005em; }

.trx-contacto__form input[type=text], .trx-contacto__form input[type=email], .trx-contacto__form input[type=tel], .trx-contacto__form textarea {
  width: 100%; padding: 12px 14px;
  background: var(--bg-base-soft); color: var(--ink-primary);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  font: inherit; font-family: var(--font-body); font-size: var(--fs-300);
  transition: border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}
.trx-contacto__form textarea { resize: vertical; min-height: 110px; line-height: 1.55; }
.trx-contacto__form input:focus, .trx-contacto__form textarea:focus { outline: none; border-color: var(--brand-primary); background: #fff; }
.trx-contacto__form input::placeholder, .trx-contacto__form textarea::placeholder { color: var(--ink-soft); }

.trx-contacto__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
@media (max-width: 540px) { .trx-contacto__row { grid-template-columns: 1fr; } }
.trx-contacto__hint { font-family: var(--font-mono); font-size: var(--fs-100); letter-spacing: 0.04em; color: var(--ink-soft); }

/* Consent */
.trx-contacto__consent { padding-top: var(--space-3); border-top: 1px dashed var(--line); }
.trx-contacto__consent label { display: grid; grid-template-columns: 20px 1fr; gap: var(--space-3); align-items: start; font-size: var(--fs-200); color: var(--ink-muted); line-height: 1.55; }
.trx-contacto__consent input[type=checkbox] { width: 16px; height: 16px; margin-top: 3px; accent-color: var(--accent); cursor: pointer; }
.trx-contacto__consent a { color: var(--brand-primary); border-bottom: 1px solid var(--accent); padding-bottom: 1px; }
.trx-contacto__consent a:hover { color: var(--accent); }

/* Submit */
.trx-contacto__submit-row { display: grid; grid-template-columns: auto 1fr; gap: var(--space-4); align-items: center; padding-top: var(--space-4); border-top: 1px solid var(--line); }
@media (max-width: 540px) { .trx-contacto__submit-row { grid-template-columns: 1fr; gap: var(--space-3); } }
.trx-contacto__submit { padding: 14px 22px; font-size: var(--fs-300); }
.trx-contacto__submit .trx-btn__arrow { display: inline-block; transition: transform var(--dur-fast) var(--ease-out); }
.trx-contacto__submit:hover .trx-btn__arrow { transform: translateX(3px); }
.trx-contacto__sla { margin: 0; display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: var(--fs-100); letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-muted); }
.trx-contacto__sla-dot { width: 8px; height: 8px; border-radius: 999px; background: #4ade80; box-shadow: 0 0 0 3px rgba(74,222,128,0.18); animation: trx-contacto-pulse 2.4s var(--ease-in-out) infinite; }
@keyframes trx-contacto-pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.55; } }
@media (prefers-reduced-motion: reduce) { .trx-contacto__sla-dot { animation: none; } }

.trx-contacto__success { margin: var(--space-3) 0 0; padding: var(--space-3) var(--space-4); background: rgba(74,222,128,0.12); border: 1px solid rgba(74,222,128,0.4); border-radius: var(--radius-sm); color: var(--ink-primary); display: inline-flex; align-items: center; gap: var(--space-3); font-size: var(--fs-300); }
.trx-contacto__success > span:first-child { width: 22px; height: 22px; border-radius: 999px; background: #4ade80; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; flex-shrink: 0; }

/* ── Panel: map + direct + info ───────────────────────────────────── */
.trx-contacto__panel { display: flex; flex-direction: column; gap: var(--space-4); position: sticky; top: 100px; }
@media (max-width: 960px) { .trx-contacto__panel { position: relative; top: auto; } }

.trx-contacto__map { margin: 0; position: relative; aspect-ratio: 4/3; border-radius: var(--radius-md); overflow: hidden; background: var(--secondary-soft); }
.trx-contacto__map img { width: 100%; height: 100%; object-fit: cover; }
.trx-contacto__map figcaption { position: absolute; left: var(--space-4); bottom: var(--space-4); display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; background: rgba(11,42,74,0.9); color: var(--bg-base); border-radius: var(--radius-pill); font-family: var(--font-mono); font-size: var(--fs-100); letter-spacing: 0.08em; backdrop-filter: blur(8px); }
.trx-contacto__map-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--accent); box-shadow: 0 0 0 3px rgba(232,117,26,0.3); animation: trx-contacto-pulse 2s var(--ease-in-out) infinite; }

.trx-contacto__direct { padding: var(--space-5); background: var(--brand-primary); color: var(--bg-base); border-radius: var(--radius-md); display: flex; flex-direction: column; gap: var(--space-2); position: relative; overflow: hidden; }
.trx-contacto__direct::after { content: ''; position: absolute; right: -30px; bottom: -30px; width: 140px; height: 140px; border-radius: 999px; background: radial-gradient(closest-side, rgba(232,117,26,0.32), transparent 70%); pointer-events: none; }
.trx-contacto__direct > * { position: relative; }
.trx-contacto__direct-label { font-family: var(--font-mono); font-size: var(--fs-100); letter-spacing: 0.14em; text-transform: uppercase; color: var(--secondary-soft); margin: 0; }
.trx-contacto__direct-phone { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-display); font-size: clamp(1.4rem, 2.6vw, 1.85rem); line-height: 1.1; color: var(--bg-base); text-decoration: none; margin-top: 6px; letter-spacing: -0.01em; transition: color var(--dur-fast) var(--ease-out); }
.trx-contacto__direct-phone:hover { color: var(--accent); }
.trx-contacto__direct-phone svg { color: var(--accent); }
.trx-contacto__direct-email { color: var(--secondary-soft); text-decoration: none; font-family: var(--font-mono); font-size: var(--fs-200); letter-spacing: 0.02em; margin-top: 4px; transition: color var(--dur-fast) var(--ease-out); }
.trx-contacto__direct-email:hover { color: var(--accent); }

.trx-contacto__info { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); padding: var(--space-5); background: var(--bg-elevated); border: 1px solid var(--line); border-radius: var(--radius-md); }
@media (max-width: 540px) { .trx-contacto__info { grid-template-columns: 1fr; } }
.trx-contacto__info-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-muted); margin: 0 0 var(--space-2); }
.trx-contacto__info address { font-style: normal; display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-200); color: var(--ink-primary); line-height: 1.5; }
.trx-contacto__hours { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-family: var(--font-mono); font-size: var(--fs-100); }
.trx-contacto__hours li { display: flex; justify-content: space-between; gap: var(--space-3); padding: 4px 0; border-bottom: 1px dashed var(--line); }
.trx-contacto__hours li:last-child { border-bottom: 0; }
.trx-contacto__hours li > span:first-child { color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.08em; }
.trx-contacto__hours li > span:last-child { color: var(--ink-primary); }
