/* DreamCode Thành Vinh contact - modern layout only, isolated from Elementor global styles. */
.elementor-widget-dc_hh_contact .dc-hhc,.elementor-widget-dc_hh_contact .dc-hhc *{box-sizing:border-box}
.elementor-widget-dc_hh_contact .dc-hhc{--dc-tv-left:40%;--dc-tv-bg-overlay:rgba(255,255,255,.975);--dc-tv-btn-bg:#c8010a;--dc-tv-btn-text:#fff;--dc-tv-btn-border:#c8010a;--dc-tv-btn-hover-bg:#080977;--dc-tv-btn-hover-text:#fff;--dc-tv-btn-hover-border:#080977;--dc-tv-circle-bg:#fff;--dc-tv-circle-icon:#c8010a;--dc-tv-circle-hover-bg:#fff;--dc-tv-circle-hover-icon:#080977;position:relative;isolation:isolate;width:100%;max-width:100%;min-width:0;background-color:#fff;padding:39px 24px 64px;overflow:clip;font-family:Arial,Roboto,sans-serif}
.elementor-widget-dc_hh_contact .dc-hhc::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--dc-tv-bg-overlay),var(--dc-tv-bg-overlay)),var(--dc-tv-bg-image,none);background-position:center,var(--dc-tv-bg-position,center bottom);background-size:cover;pointer-events:none}
.elementor-widget-dc_hh_contact .dc-hhc--no-bg::before{background-image:none}
.elementor-widget-dc_hh_contact .dc-hhc__panel{width:100%;max-width:1320px;min-width:0;margin:0 auto}
.elementor-widget-dc_hh_contact .dc-hhc__section-heading{margin:0 0 54px;color:#080977;text-align:center;font-size:36px;font-weight:700;line-height:1.1;letter-spacing:0;overflow-wrap:anywhere}
.elementor-widget-dc_hh_contact .dc-hhc__grid{display:grid;grid-template-columns:minmax(0,var(--dc-tv-left)) minmax(0,1fr);column-gap:65px;align-items:stretch;min-width:0}
.elementor-widget-dc_hh_contact .dc-hhc__contact{display:flex;flex-direction:column;min-height:485px;min-width:0;max-width:100%}
.elementor-widget-dc_hh_contact .dc-hhc__logo{margin:0;line-height:0;max-width:100%;min-width:0}
.elementor-widget-dc_hh_contact .dc-hhc__logo img{display:block;width:400px;max-width:100%;height:auto;object-fit:contain;object-position:left center}
.elementor-widget-dc_hh_contact .dc-hhc__company-name{margin:13px 0 20px;font-size:28px;line-height:1.24;font-weight:700;color:#051a53;overflow-wrap:anywhere}
.elementor-widget-dc_hh_contact .dc-hhc__contact-list{display:grid;row-gap:14px;min-width:0}
.elementor-widget-dc_hh_contact .dc-hhc__contact-item{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:20px;align-items:center;min-width:0;max-width:100%}
.elementor-widget-dc_hh_contact .dc-hhc__contact-item--separator{border-top:1px solid #e7e9ec;padding-top:16px;margin-top:1px}
.elementor-widget-dc_hh_contact .dc-hhc__contact-icon{--dc-tv-circle-size:48px;--dc-tv-icon-size:20px;display:flex;align-items:center;justify-content:center;align-self:start;width:var(--dc-tv-circle-size);height:var(--dc-tv-circle-size);flex:none;background:#f4f7fa;border-radius:50%;color:#080977;font-size:var(--dc-tv-icon-size);line-height:1}
.elementor-widget-dc_hh_contact .dc-hhc__contact-icon :is(svg,img){width:var(--dc-tv-icon-size);height:var(--dc-tv-icon-size);max-width:100%;max-height:100%;object-fit:contain;display:block}
.elementor-widget-dc_hh_contact .dc-hhc__contact-icon i{font-size:var(--dc-tv-icon-size);line-height:1}
.elementor-widget-dc_hh_contact .dc-hhc__contact-copy{min-width:0;max-width:100%;display:flex;flex-direction:column;gap:3px;align-self:center}
.elementor-widget-dc_hh_contact .dc-hhc__contact-label{color:#080977;font-size:16px;font-weight:700;line-height:1.4;min-width:0;overflow-wrap:anywhere}
.elementor-widget-dc_hh_contact .dc-hhc__contact-value,.elementor-widget-dc_hh_contact a.dc-hhc__contact-value{display:block;color:#363b48;font-size:15px;font-weight:400;line-height:1.55;min-width:0;max-width:100%;overflow-wrap:anywhere;text-decoration:none;white-space:normal}
.elementor-widget-dc_hh_contact a.dc-hhc__contact-value:hover,.elementor-widget-dc_hh_contact a.dc-hhc__contact-value:focus-visible{color:#c8010a}
.elementor-widget-dc_hh_contact .dc-hhc__map-actions{display:flex;justify-content:flex-start;align-items:flex-end;min-width:0;margin-top:auto;padding-top:20px}
.elementor-widget-dc_hh_contact .dc-hhc__map-button,.elementor-widget-dc_hh_contact a.dc-hhc__map-button,.elementor-widget-dc_hh_contact .dc-hhc__map-button:visited{display:inline-flex;justify-content:center;align-items:center;gap:14px;min-width:0;max-width:100%;min-height:48px;padding:4px 4px 4px 24px;border:1px solid var(--dc-tv-btn-border);border-radius:999px;background:var(--dc-tv-btn-bg);background-image:none;color:var(--dc-tv-btn-text);font-size:18px;line-height:1.25;font-weight:600;text-align:center;text-decoration:none;box-shadow:none;overflow-wrap:anywhere;white-space:normal;transition:background-color .28s ease,border-color .28s ease,color .28s ease;cursor:pointer}
.elementor-widget-dc_hh_contact .dc-hhc__map-button:hover,.elementor-widget-dc_hh_contact .dc-hhc__map-button:focus-visible,.elementor-widget-dc_hh_contact .dc-hhc__map-button:active{background:var(--dc-tv-btn-hover-bg);background-image:none;color:var(--dc-tv-btn-hover-text);border-color:var(--dc-tv-btn-hover-border)}
.elementor-widget-dc_hh_contact .dc-hhc__map-button:focus-visible{outline:2px solid #080977;outline-offset:3px}
.elementor-widget-dc_hh_contact .dc-hhc__map-button--placeholder{cursor:default}
.elementor-widget-dc_hh_contact .dc-hhc__map-button-text{min-width:0;overflow-wrap:anywhere;font:inherit;color:inherit}
.elementor-widget-dc_hh_contact .dc-hhc__map-button-icon{--dc-tv-btn-icon-size:18px;--dc-tv-btn-circle-size:40px;position:relative;display:grid;place-items:center;flex:none;width:var(--dc-tv-btn-circle-size);height:var(--dc-tv-btn-circle-size);border-radius:50%;background:var(--dc-tv-circle-bg);color:var(--dc-tv-circle-icon);transition:background-color .28s ease,color .28s ease}
.elementor-widget-dc_hh_contact .dc-hhc__cta-icon{display:flex;align-items:center;justify-content:center;position:absolute;inset:0;transition:opacity .2s ease,transform .25s ease}
.elementor-widget-dc_hh_contact .dc-hhc__cta-icon--hover{opacity:0;transform:translateX(-4px)}
.elementor-widget-dc_hh_contact .dc-hhc__map-button:hover .dc-hhc__map-button-icon,.elementor-widget-dc_hh_contact .dc-hhc__map-button:focus-visible .dc-hhc__map-button-icon{background:var(--dc-tv-circle-hover-bg);color:var(--dc-tv-circle-hover-icon)}
.elementor-widget-dc_hh_contact .dc-hhc__map-button:hover .dc-hhc__cta-icon--hover,.elementor-widget-dc_hh_contact .dc-hhc__map-button:focus-visible .dc-hhc__cta-icon--hover{opacity:1;transform:translateX(0)}
.elementor-widget-dc_hh_contact .dc-hhc__map-button:hover .dc-hhc__cta-icon--normal,.elementor-widget-dc_hh_contact .dc-hhc__map-button:focus-visible .dc-hhc__cta-icon--normal{opacity:0;transform:translateX(4px)}
.elementor-widget-dc_hh_contact .dc-hhc__cta-icon :is(svg,img){display:block;width:var(--dc-tv-btn-icon-size);height:var(--dc-tv-btn-icon-size);max-width:100%;object-fit:contain}
.elementor-widget-dc_hh_contact .dc-hhc__cta-icon i{font-size:var(--dc-tv-btn-icon-size)}
.elementor-widget-dc_hh_contact .dc-hhc__map-column{min-width:0;max-width:100%}
.elementor-widget-dc_hh_contact .dc-hhc__map{position:relative;width:100%;max-width:100%;height:485px;min-width:0;overflow:hidden;border-radius:24px;background:#e1f6eb}
.elementor-widget-dc_hh_contact .dc-hhc__map iframe,.elementor-widget-dc_hh_contact .dc-hhc__map img.dc-hhc__map-preview{display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;border:0}
.elementor-widget-dc_hh_contact .dc-hhc__map-empty{display:grid;place-items:center;min-height:100%;padding:20px;text-align:center}
.elementor-widget-dc_hh_contact .dc-hhc__form-area{margin-top:56px;max-width:100%;min-width:0}
.elementor-widget-dc_hh_contact .dc-hhc__form-heading{font-size:28px;color:#080977;margin:0 0 20px}
.elementor-widget-dc_hh_contact .dc-hhc__shortcode,.elementor-widget-dc_hh_contact .dc-hhc__shortcode *{max-width:100%;min-width:0;box-sizing:border-box}
/* Pre-paint animation remains visible without JS after failsafe; JS only triggers final state. */
.elementor-widget-dc_hh_contact .dc-hhc--animate .dc-hhc__reveal{opacity:0;transform:translateY(18px);transition:opacity var(--dc-tv-duration,650ms) ease,transform var(--dc-tv-duration,650ms) cubic-bezier(.22,.61,.36,1);animation:dc-tv-contact-failsafe 0s 3s forwards}
.elementor-widget-dc_hh_contact .dc-hhc--fade-left .dc-hhc__reveal{transform:translateX(-18px)}
.elementor-widget-dc_hh_contact .dc-hhc--fade .dc-hhc__reveal{transform:none}
.elementor-widget-dc_hh_contact .dc-hhc--animate.is-visible .dc-hhc__reveal{opacity:1;transform:none;animation:none}
@keyframes dc-tv-contact-failsafe{to{opacity:1;transform:none}}
.elementor-editor-active .dc-hhc--animate .dc-hhc__reveal,.elementor-editor-preview .dc-hhc--animate .dc-hhc__reveal{opacity:1!important;transform:none!important;animation:none!important}
@media(max-width:1366px){.elementor-widget-dc_hh_contact .dc-hhc__grid{column-gap:42px}.elementor-widget-dc_hh_contact .dc-hhc__section-heading{margin-bottom:45px}.elementor-widget-dc_hh_contact .dc-hhc__company-name{font-size:24px}}
@media(max-width:1024px){.elementor-widget-dc_hh_contact .dc-hhc{padding:40px 28px 52px}.elementor-widget-dc_hh_contact .dc-hhc__grid{column-gap:30px}.elementor-widget-dc_hh_contact .dc-hhc__company-name{font-size:22px}.elementor-widget-dc_hh_contact .dc-hhc__contact-item{column-gap:12px}.elementor-widget-dc_hh_contact .dc-hhc__contact-label{font-size:14px}.elementor-widget-dc_hh_contact .dc-hhc__contact-value{font-size:14px}.elementor-widget-dc_hh_contact .dc-hhc__map{height:410px}.elementor-widget-dc_hh_contact .dc-hhc__contact{min-height:410px}}
@media(max-width:900px){.elementor-widget-dc_hh_contact .dc-hhc{padding:34px 20px 42px}.elementor-widget-dc_hh_contact .dc-hhc__section-heading{font-size:30px;margin-bottom:30px}.elementor-widget-dc_hh_contact .dc-hhc__grid{grid-template-columns:minmax(0,1fr);gap:28px}.elementor-widget-dc_hh_contact .dc-hhc__contact{min-height:0}.elementor-widget-dc_hh_contact .dc-hhc__company-name{font-size:23px;margin:14px 0 22px}.elementor-widget-dc_hh_contact .dc-hhc__logo img{width:300px}.elementor-widget-dc_hh_contact .dc-hhc__map{height:300px}.elementor-widget-dc_hh_contact .dc-hhc__map-button{min-height:48px;font-size:15px}.elementor-widget-dc_hh_contact .dc-hhc__map-actions{margin-top:0;padding-top:26px}}
@media(max-width:390px){.elementor-widget-dc_hh_contact .dc-hhc{padding-inline:16px}.elementor-widget-dc_hh_contact .dc-hhc__contact-item{grid-template-columns:44px minmax(0,1fr);gap:12px}.elementor-widget-dc_hh_contact .dc-hhc__contact-icon{--dc-tv-circle-size:44px}.elementor-widget-dc_hh_contact .dc-hhc__company-name{font-size:20px}.elementor-widget-dc_hh_contact .dc-hhc__map{height:260px}}
@media(prefers-reduced-motion:reduce){.elementor-widget-dc_hh_contact .dc-hhc__reveal,.elementor-widget-dc_hh_contact .dc-hhc__map-button,.elementor-widget-dc_hh_contact .dc-hhc__map-button *{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}
