/* Contacto · V114 */
body.page-contact{background:#06101d;color:#eef6ff}.contact-page{background:radial-gradient(ellipse at 15% 0,rgba(27,112,190,.13),transparent 55%);padding:34px 0 72px}.contact-breadcrumb{display:flex;gap:12px;font-size:14px;color:#96abc1;margin-bottom:48px}.contact-heading{max-width:880px;margin-bottom:44px}.contact-heading .eyebrow,.contact-kicker{color:#72d3ff;font-size:12px;letter-spacing:.14em;font-weight:750}.contact-title{font-size:clamp(36px,5vw,66px);line-height:1.1;letter-spacing:-.045em;font-weight:750;margin:18px 0 22px;color:#f4f8ff}.contact-title span{color:#71d3ff}.contact-subtitle{font-size:18px;line-height:1.7;color:#a9bcd0;max-width:640px;margin:0}.page-contact .contact-layout{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:34px;align-items:start}.page-contact .contact-info{background:linear-gradient(145deg,#10253c,#091828);border:1px solid #20394f;padding:34px;border-radius:24px;box-shadow:none}.contact-info h2{font-size:30px;line-height:1.2;letter-spacing:-.025em;margin:18px 0}.page-contact .contact-info p{color:#a9bdd1;font-size:16px;line-height:1.75;margin-bottom:28px}.page-contact .contact-detail{border-color:#22364b;padding:19px 0}.page-contact .contact-detail-label{color:#ecf5ff;font-size:16px;margin-bottom:6px}.page-contact .contact-detail-value{color:#a9bdd1;font-size:14px;line-height:1.7}.contact-prices-link{display:flex;justify-content:space-between;gap:12px;margin-top:28px;font-size:14px;font-weight:650;color:#72d3ff!important}.page-contact .contact-form{min-width:0;background:#0c1c2d;border:1px solid #263c52;padding:34px;border-radius:24px;box-shadow:0 24px 60px #0002}.contact-form-heading h2{font-size:27px;line-height:1.25;letter-spacing:-.025em;margin:12px 0}.contact-form-heading p{font-size:14px;color:#9db1c7;margin:0 0 26px}.page-contact .form-label{color:#dceafa;font-size:14px;font-weight:600;margin-bottom:8px;display:block}.page-contact .form-control{background:#071422;border:1px solid #334a62;color:#eff7ff;font-size:16px;border-radius:10px;min-width:0;padding:12px 14px;line-height:1.5;color-scheme:dark}.page-contact .form-control::placeholder{color:#8298b0;opacity:1}.page-contact .form-control:focus{border-color:#71d3ff;box-shadow:0 0 0 3px #71d3ff20}.page-contact textarea{resize:vertical;min-height:140px}.page-contact .form-group{margin-bottom:19px;min-width:0}.contact-optional{color:#9db1c7;font-weight:400}.contact-service-hint{font-size:14px;color:#b4cce0;padding:13px 16px;background:#102a40;border-left:2px solid #66cdfa;border-radius:0 8px 8px 0;margin:-3px 0 22px}.contact-data-note{font-size:14px;color:#9db1c7;margin:0 0 24px;line-height:1.65}.page-contact .form-submit-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.page-contact .form-help{font-size:14px;color:#a9bdd1}.page-contact .btn-primary{min-height:48px;font-size:15px;gap:20px}.contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contact-status{font-size:15px;border:1px solid #42617b;padding:14px;border-radius:10px;margin:20px 0 0;color:#edf7ff;background:#102a40}.contact-status[data-state=error]{border-color:#c58575;background:#352426}.contact-status[hidden]{display:none}.page-contact button:disabled{opacity:.6;cursor:wait}.contact-next{margin-top:58px;padding-top:38px;border-top:1px solid #22364b}.contact-next h2{font-size:28px;letter-spacing:-.025em;margin:10px 0 28px}.contact-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.contact-steps li{display:flex;gap:15px;min-width:0}.contact-steps li>span{font-size:14px;color:#72d3ff;font-weight:650;padding-top:3px}.contact-steps h3{font-size:17px;margin:0 0 8px}.contact-steps p{font-size:14px;line-height:1.7;margin:0;color:#a9bdd1}.page-contact :focus-visible{outline:2px solid #71d3ff;outline-offset:4px}.page-contact .site-footer{background:#050d18;color:#a9bdd1;border-top:1px solid #20394f}
@media(max-width:850px){.page-contact .contact-layout{grid-template-columns:1fr}.contact-info h2 br{display:none}.contact-steps{grid-template-columns:1fr;gap:24px}.contact-heading{margin-bottom:30px}.contact-breadcrumb{margin-bottom:32px}}
@media(max-width:540px){.contact-page{padding-top:24px}.page-contact .contact-info,.page-contact .contact-form{padding:24px 20px;border-radius:18px}.page-contact .form-row{grid-template-columns:1fr;gap:0}.contact-title{font-size:38px}.contact-subtitle{font-size:16px}.contact-form-heading h2{font-size:25px}.page-contact .form-submit-row{align-items:stretch;flex-direction:column;gap:12px}.page-contact .form-help{text-align:center}.contact-next{margin-top:38px}.contact-heading .eyebrow{font-size:11px}}

/* ================================================================
   DN TECH · V117 · CONTACTO FINAL
   Legibilidad, validación, contexto dinámico y acabado premium.
   ================================================================ */
.page-contact{overflow-x:hidden;isolation:isolate}
.page-contact .contact-page{position:relative;z-index:1;padding-top:30px;background:
  radial-gradient(ellipse at 14% 2%,rgba(24,121,196,.13),transparent 52%),
  radial-gradient(circle at 92% 28%,rgba(32,167,231,.05),transparent 34%)}
.page-contact .contact-page-cursor-light{position:fixed;left:0;top:0;z-index:0;width:620px;height:620px;pointer-events:none;border-radius:50%;opacity:0;transform:translate(calc(var(--contact-x,50vw) - 50%),calc(var(--contact-y,38vh) - 50%));background:radial-gradient(circle,rgba(51,188,244,.085) 0,rgba(27,124,188,.04) 29%,transparent 69%);filter:blur(3px);transition:opacity .24s ease;will-change:transform}
.page-contact .contact-page-cursor-light.is-visible{opacity:1}
.page-contact .contact-container,.page-contact .site-header,.page-contact .site-footer{position:relative;z-index:2}

.page-contact .contact-breadcrumb{margin-bottom:38px}
.page-contact .contact-heading{margin-bottom:36px}
.page-contact .contact-title{max-width:880px}
.page-contact .contact-layout{gap:26px}

.page-contact .contact-info,.page-contact .contact-form{position:relative;overflow:hidden;background:linear-gradient(145deg,rgba(13,35,55,.96),rgba(6,21,35,.98));border-color:rgba(104,199,241,.17);box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 24px 60px rgba(0,0,0,.12)}
.page-contact .contact-info::after,.page-contact .contact-form::after{content:"";position:absolute;inset:auto -24% -38% auto;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(42,174,230,.07),transparent 68%);pointer-events:none}
.page-contact .contact-info{padding:32px}
.page-contact .contact-form{padding:32px}
.page-contact .contact-detail{position:relative;padding:18px 0;border-color:rgba(113,190,226,.12)}
.page-contact .contact-detail:last-of-type{border-bottom:1px solid rgba(113,190,226,.12)}
.page-contact .contact-prices-link{position:relative;z-index:1;align-items:center;padding:13px 15px;border:1px solid rgba(104,207,250,.18);border-radius:12px;background:rgba(8,29,46,.52);transition:transform .18s ease,border-color .18s ease,background .18s ease}
.page-contact .contact-prices-link:hover{transform:translateY(-2px);border-color:rgba(104,207,250,.35);background:rgba(13,47,70,.62)}

.page-contact .form-row{gap:14px}
.page-contact .form-group{margin-bottom:16px}
.page-contact .form-control{min-height:48px;border-color:rgba(128,180,213,.28);background:rgba(4,17,29,.82);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.page-contact textarea.form-control{min-height:148px}
.page-contact .form-control:hover{border-color:rgba(124,197,232,.42)}
.page-contact .form-control:focus{background:rgba(5,21,35,.96);border-color:#71d3ff;box-shadow:0 0 0 3px rgba(113,211,255,.12)}
.page-contact .form-control.is-invalid{border-color:#ff9b8b;box-shadow:0 0 0 3px rgba(255,133,112,.10)}
.page-contact .form-field-help{margin:7px 2px 0;color:#879fb5;font-size:12.5px;line-height:1.5}
.page-contact .form-field-help strong{color:#b9d4e7;font-weight:700}
.page-contact .form-field-help.is-muted-by-error{opacity:.48}
.page-contact .form-error{margin:7px 2px 0;color:#ffb3a5;font-size:12.5px;line-height:1.45;font-weight:650}
.page-contact .form-error[hidden]{display:none}
.page-contact .contact-context-group[hidden]{display:none!important}
.page-contact .contact-service-hint{margin:-2px 0 17px;font-size:13.5px;line-height:1.6;background:rgba(14,47,70,.62);border-left-color:#61ccf8}
.page-contact .contact-data-note{margin-bottom:16px;font-size:13px}

.page-contact .contact-form-points{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.page-contact .contact-form-points span{display:inline-flex;align-items:center;gap:7px;min-height:29px;padding:0 10px;border:1px solid rgba(107,193,232,.13);border-radius:999px;background:rgba(7,28,45,.65);color:#9eb8cb;font-size:11.5px;font-weight:700}
.page-contact .contact-form-points span::before{content:"✓";color:#65d8ff;font-size:11px}
.page-contact .form-submit-row{position:relative;z-index:1;padding-top:2px}
.page-contact .form-submit-row .btn-primary{min-width:190px}

.page-contact .contact-status[data-state=pending]{border-color:rgba(91,202,246,.26);background:rgba(12,47,68,.72)}
.page-contact .contact-status[data-state=success]{border-color:rgba(73,220,176,.32);background:rgba(15,73,61,.55);color:#d9fff2}

/* Los pasos finales funcionan como cierre visual y no como una lista secundaria. */
.page-contact .contact-next{margin-top:52px;padding:34px 0 0;border-top:1px solid rgba(98,181,219,.12)}
.page-contact .contact-next-intro{display:flex;justify-content:space-between;align-items:end;gap:24px}
.page-contact .contact-next h2{margin-bottom:24px;font-size:32px}
.page-contact .contact-steps{gap:14px}
.page-contact .contact-steps li{position:relative;min-height:138px;padding:22px;border:1px solid rgba(104,194,235,.13);border-radius:18px;background:linear-gradient(145deg,rgba(12,35,54,.78),rgba(5,21,34,.70));transition:transform .18s ease,border-color .18s ease,background .18s ease}
.page-contact .contact-steps li:hover{transform:translateY(-2px);border-color:rgba(104,207,250,.27);background:linear-gradient(145deg,rgba(15,43,64,.88),rgba(6,23,38,.78))}
.page-contact .contact-steps li>span{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;padding:0;border:1px solid rgba(100,205,247,.20);border-radius:11px;background:rgba(10,47,68,.58);font-size:11px}
.page-contact .contact-steps h3{font-size:18px}
.page-contact .contact-steps p{font-size:14px}

.page-contact .footer-brand-new{display:inline-flex;align-items:center;gap:10px}
.page-contact .footer-brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(65,190,235,.24);border-radius:10px;background:#092137}
.page-contact .footer-brand-icon{display:block;width:21px;height:21px;object-fit:contain}
.page-contact .footer-brand-main{font-size:12px;letter-spacing:.035em;color:#eef8ff}

@media(max-width:850px){
  .page-contact .contact-page-cursor-light{display:none!important}
  .page-contact .contact-page{padding-top:24px}
  .page-contact .contact-breadcrumb{margin-bottom:26px}
  .page-contact .contact-layout{gap:18px}
  .page-contact .contact-info,.page-contact .contact-form{padding:25px 22px}
  .page-contact .contact-next{margin-top:38px}
  .page-contact .contact-steps{gap:12px}
  .page-contact .contact-steps li{min-height:0}
}
@media(max-width:540px){
  .page-contact .contact-heading{margin-bottom:26px}
  .page-contact .contact-title{font-size:clamp(38px,12vw,50px);line-height:1.06}
  .page-contact .contact-subtitle{font-size:16px;line-height:1.65}
  .page-contact .contact-info,.page-contact .contact-form{padding:22px 18px}
  .page-contact .contact-form-points{display:grid;grid-template-columns:1fr 1fr}
  .page-contact .contact-form-points span:last-child{grid-column:1/-1;width:max-content}
  .page-contact .form-submit-row .btn-primary{width:100%}
  .page-contact .contact-next h2{font-size:28px}
}
@media(prefers-reduced-motion:reduce){
  .page-contact .contact-page-cursor-light{display:none!important}
  .page-contact .contact-info,.page-contact .contact-form,.page-contact .contact-steps li,.page-contact .contact-prices-link{transition:none!important}
}


/* V118 · Correo público de contacto */
.page-contact .contact-detail-email{padding-top:16px;padding-bottom:16px}
.page-contact .contact-email-link{display:inline-flex;align-items:center;gap:8px;width:max-content;max-width:100%;color:#dff6ff;text-decoration:none;font-weight:750;overflow-wrap:anywhere;transition:color .18s ease,transform .18s ease}
.page-contact .contact-email-link span{color:#62d2ff;font-size:.9em;transition:transform .18s ease}
.page-contact .contact-email-link:hover{color:#72d8ff;transform:translateX(2px)}
.page-contact .contact-email-link:hover span{transform:translate(2px,-2px)}
@media(max-width:540px){.page-contact .contact-email-link{font-size:14px}}

/* V128 · Adjuntos del formulario de contacto */
.page-contact .contact-file-input{padding:10px 12px;height:auto;line-height:1.35;color:#b9d4e7}
.page-contact .contact-file-input::file-selector-button{margin-right:12px;padding:9px 13px;border:1px solid rgba(104,207,250,.24);border-radius:9px;background:rgba(13,47,70,.78);color:#dff6ff;font:inherit;font-weight:700;cursor:pointer}
.page-contact .contact-file-input:hover::file-selector-button{border-color:rgba(104,207,250,.42);background:rgba(18,61,88,.86)}

/* V133 */
.page-contact .contact-heading{padding-top:10px}

/* V150 · Contacto: título primero y kicker debajo en móvil */
@media (max-width: 540px) {
  .page-contact .contact-next-intro {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
    margin-bottom: 20px;
  }
  .page-contact .contact-next-intro .contact-kicker {
    display: block;
    width: 100%;
    margin: 0;
    font-size: 11px;
    line-height: 1.35;
    letter-spacing: .14em;
    text-align: center;
  }
  .page-contact .contact-next h2 {
    width: 100%;
    margin: 0;
    font-size: 28px;
    line-height: 1.12;
    text-align: center;
  }
  .page-contact .contact-steps {
    margin-top: 0;
  }
}
