/* Decora Nova · revisión profesional. Componentes nuevos, aislados del tema existente. */
html #contacto.dn-contact-upgraded {
  position:relative; isolation:isolate; overflow:hidden; min-height:880px;
  padding:64px max(5vw,24px) 76px!important; background:#111212!important;
  color:#fff; scroll-margin-top:0;
}
html #contacto.dn-contact-upgraded::before {
  content:""; position:absolute; z-index:-1; inset:-40%; pointer-events:none;
  background:linear-gradient(122deg,transparent 43%,#ffffff03 43.1%,#0006 54%,transparent 54.2%),
    linear-gradient(136deg,transparent 38%,#ffffff04 38.2%,#0005 66%,transparent 66.2%);
}
html #contacto .dn-contact-brand {
  display:inline-flex; align-items:center; gap:15px; color:#fff;
  text-decoration:none; margin:0 0 54px!important; position:relative;
}
html #contacto .dn-contact-brand img { display:block; width:55px; height:55px; }
html #contacto .dn-contact-brand span { font-size:21px; letter-spacing:.19em; font-weight:500; }
html #contacto .dnv-contact-card {
  display:grid!important; grid-template-columns:minmax(0,1fr) minmax(330px,470px)!important;
  gap:clamp(48px,8vw,120px)!important; align-items:center!important;
  width:100%!important; max-width:1240px!important; margin:0 auto!important;
  padding:0!important; border:0!important; border-radius:0!important;
  background:none!important; box-shadow:none!important; min-height:620px;
}
html #contacto .dnv-contact-cardcopy { padding:0!important; max-width:550px!important; }
html #contacto .dnv-contactkicker { display:block; color:#c5a577!important; font-size:10px!important; letter-spacing:.2em!important; margin:0 0 22px!important; }
html #contacto .dnv-contacttitle { font-size:clamp(40px,4.4vw,64px)!important; line-height:1.06!important; letter-spacing:-.045em!important; font-weight:400!important; color:#fff!important; margin:0 0 26px!important; }
html #contacto .dnv-contacttitle em { color:#cfb17f; font-style:normal; }
html #contacto .dnv-contacttext { color:#b6b8b8!important; font-size:15px!important; line-height:1.8!important; max-width:450px!important; margin:0 0 24px!important; }
html #contacto .dn-contact-specialties { color:#e1e0dc; font-size:11px; line-height:1.8; margin:0 0 35px; }
html #contacto .dn-contact-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding:24px 0 0; margin:0 0 36px; list-style:none; border-top:1px solid #ffffff26; }
html #contacto .dn-contact-steps li { padding:0; margin:0; }
html #contacto .dn-contact-steps span { display:block; color:#bfa06c; font-size:10px; margin-bottom:12px; letter-spacing:.1em; }
html #contacto .dn-contact-steps strong { display:block; color:#fff; font-size:12px; font-weight:500; margin-bottom:5px; }
html #contacto .dn-contact-steps small { display:block; color:#a8aaaa; font-size:11px; line-height:1.6; }
html #contacto .dn-contact-location { color:#979a9a; font-size:11px; margin:0 0 12px; }
html #contacto .dn-contact-links { display:flex; flex-wrap:wrap; gap:12px 24px; }
html #contacto .dn-contact-links a { color:#fff; font-size:12px; text-decoration:none; border-bottom:1px solid #5d6060; padding:8px 0; transition:color .2s,border-color .2s; }
html #contacto .dn-contact-links a:hover { color:#dfc69d; border-color:#dfc69d; }
html #contacto .dn-contact-column { align-self:center; min-width:0; }
html #contacto .dn-contact-panel {
  background:#fff!important; color:#16191b!important; padding:30px!important;
  border-radius:8px!important; border:1px solid #e4e4e1!important;
  width:100%!important; max-width:none!important; margin:0!important;
  box-shadow:0 22px 65px #0003!important;
}
html #contacto .dn6-form-heading { display:block!important; padding:0!important; margin:0 0 23px!important; border:0!important; }
html #contacto .dn6-form-heading h3 { margin:0!important; color:#121617!important; font-size:24px!important; line-height:1.2!important; font-weight:500!important; letter-spacing:-.035em!important; }
html #contacto .dn-contact-panel form { display:flex!important; flex-direction:column!important; gap:13px!important; padding:0!important; margin:0!important; background:none!important; }
html #contacto .dn-contact-panel .dnv-field { display:flex!important; flex-direction:column!important; gap:6px!important; margin:0!important; padding:0!important; width:100%!important; color:#3b4246!important; font-size:11px!important; line-height:1.4!important; font-weight:500!important; }
html #contacto .dn-contact-panel .dnv-field .dn-label { display:flex; gap:4px; align-items:baseline; }
html #contacto .dn-optional { font-weight:400; color:#6d7276; margin-left:auto; font-size:10px; }
html #contacto .dn-required { color:#6f5a39; }
html #contacto .dn-contact-panel .dnv-input,
html #contacto .dn-contact-panel .dnv-textarea {
  display:block!important; box-sizing:border-box!important; width:100%!important;
  min-width:0!important; height:43px!important; min-height:43px!important;
  padding:11px 12px!important; margin:0!important; border:1px solid #dadeda!important;
  background:#fafbf9!important; border-radius:4px!important; color:#192024!important;
  font:400 12px/1.5 Arial,sans-serif!important; box-shadow:none!important;
  transition:border-color .2s,box-shadow .2s;
}
html #contacto .dn-contact-panel .dnv-input::placeholder,
html #contacto .dn-contact-panel .dnv-textarea::placeholder { color:#777e80!important; opacity:1; }
html #contacto .dn-contact-panel .dnv-select { appearance:auto!important; padding-right:10px!important; }
html #contacto .dn-contact-panel .dnv-textarea { resize:vertical!important; height:94px!important; min-height:94px!important; }
html #contacto .dn-contact-panel :is(input,select,textarea):focus-visible { outline:2px solid #9e7a43!important; outline-offset:2px!important; border-color:#9e7a43!important; }
html #contacto .dn-contact-hint { color:#737a7b; font-size:10px; font-weight:400; line-height:1.5; }
html #contacto .dn-contact-panel .dn-form-button {
  width:100%!important; min-height:46px!important; margin:4px 0 0!important;
  padding:12px 18px!important; background:#15191a!important; color:#fff!important;
  border:1px solid #15191a!important; border-radius:3px!important; font-size:12px!important;
  letter-spacing:.02em!important; font-weight:500!important; text-transform:none!important;
  cursor:pointer; transition:background .2s!important;
}
html #contacto .dn-contact-panel .dn-form-button:hover { background:#343d3e!important; transform:none!important; }
html #contacto .dn-contact-panel .dn-form-button:disabled { opacity:.6; cursor:wait; }
html #contacto .dn-contact-verification { width:100%; min-height:65px; margin:0!important; }
html #contacto .dn-contact-status { margin:0!important; color:#55452d!important; font-size:11px!important; line-height:1.6!important; overflow-wrap:anywhere; }
html #contacto .dn-contact-status:empty { display:none; }
html #contacto .dn-contact-success { display:flex; align-items:flex-start; gap:13px; background:#d7eff7; color:#173d4b; border:1px solid #9fd3e5; padding:21px 23px; border-radius:7px; box-shadow:0 12px 32px #0002; }
html #contacto .dn-contact-success svg { width:24px; height:24px; flex:0 0 24px; margin-top:2px; }
html #contacto .dn-contact-success p { color:inherit!important; margin:0!important; font-size:13px!important; line-height:1.65!important; }
html #contacto .dn-contact-success strong { display:block; font-weight:600; margin-bottom:4px; }
html #contacto [hidden] { display:none!important; }
html #contacto .dn-contact-trap { position:absolute!important; width:1px!important; height:1px!important; left:-10000px!important; overflow:hidden!important; }
html #contacto :is(a,button):focus-visible { outline:2px solid #c8a46d!important; outline-offset:5px!important; }
html #contacto .dn-contact-success:focus-visible { outline:2px solid #a4daed; outline-offset:6px; }

/* Las portadas usan imágenes nativas con carga diferida. */
html #portafolio .dnv-card,html #portafolio .dn4-projectimage { background-image:none!important; }
html .dn-project-cover { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .65s cubic-bezier(.2,.6,.2,1); }
@media(hover:hover) and (pointer:fine) {
  html .dnv-card:is(:hover,:focus-within) .dn-project-cover { transform:scale(1.025); }
}
html .dn-dialog .dn-image { transition:opacity .18s; }
html .dn-dialog .dn-image.is-loading { opacity:.45; }
html .dn-gallery-controls { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 0 8px; color:#d6dada; font-size:11px; }
html .dn-gallery-controls button { color:#fff; background:transparent; border:1px solid #ffffff45; border-radius:3px; min-height:44px; padding:9px 15px; cursor:pointer; }
html .dn-gallery-controls button:hover { background:#ffffff15; }
html .dn-gallery-controls button:focus-visible { outline:2px solid #c8a46d; outline-offset:3px; }
html .dn-gallery-position { font-variant-numeric:tabular-nums; letter-spacing:.08em; }
@media(min-width:1600px) { html #contacto .dn-contact-brand { margin-left:calc((100% - 1240px)/2)!important; } }
@media(max-width:900px) {
  html #contacto .dnv-contact-card { grid-template-columns:minmax(0,1fr) minmax(320px,.95fr)!important; gap:32px!important; }
  html #contacto .dnv-contacttitle { font-size:42px!important; }
  html #contacto .dn-contact-panel { padding:25px!important; }
  html #contacto .dn-contact-steps { gap:12px; }
}
@media(max-width:700px) {
  html #contacto.dn-contact-upgraded { padding:35px 22px 45px!important; min-height:0; }
  html #contacto .dn-contact-brand { margin-bottom:38px!important; }
  html #contacto .dn-contact-brand img { width:46px; height:46px; }
  html #contacto .dn-contact-brand span { font-size:17px; }
  html #contacto .dnv-contact-card { grid-template-columns:1fr!important; gap:36px!important; min-height:0; }
  html #contacto .dnv-contact-cardcopy { max-width:none!important; }
  html #contacto .dnv-contacttitle { font-size:clamp(38px,8.8vw,52px)!important; max-width:500px; }
  html #contacto .dnv-contacttext { font-size:14px!important; }
  html #contacto .dn-contact-steps { margin-bottom:24px; }
  html #contacto .dn-contact-panel { padding:25px 21px!important; }
  html #contacto .dn-contact-panel :is(.dnv-input,.dnv-textarea) { font-size:16px!important; }
  html .dn-gallery-controls button { padding:9px 12px; }
}
@media(prefers-reduced-motion:reduce) {
  html .dn-project-cover,html .dn-dialog .dn-image { transition:none!important; transform:none!important; }
}

@media(hover:hover) and (pointer:fine){html #portafolio .dnv-card:is(:hover,:focus-within) .dn4-projectimage{transform:none!important}}

html #inicio .dn6-motion,html .dn4-image-arrow{display:none!important}html .dnv-shell :is(a,button,summary)::after{content:none!important}
