/* Contacto Pro: preset defaults use variables so Elementor controls win. */
.shpe-contact-pro {
 --shpe-contact-accent:#ffb900;
 --shpe-contact-surface:#fff;
 --shpe-contact-text:#172033;
 --shpe-contact-description:#64748b;
 --shpe-contact-label:#334155;
 --shpe-contact-field-bg:#fff;
 --shpe-contact-field-text:#172033;
 --shpe-contact-placeholder:#94a3b8;
 --shpe-contact-field-border:#dbe1ea;
 --shpe-contact-field-hover-bg:var(--shpe-contact-field-bg);
 --shpe-contact-field-hover-border:var(--shpe-contact-accent);
 --shpe-contact-field-focus-border:var(--shpe-contact-accent);
 --shpe-contact-field-focus-shadow:color-mix(in srgb,var(--shpe-contact-accent) 20%,transparent);
 --shpe-contact-button-bg:var(--shpe-contact-accent);
 --shpe-contact-button-text:#111827;
 --shpe-contact-button-hover-bg:#172033;
 --shpe-contact-button-hover-text:#fff;
 --shpe-contact-button-hover-border:#172033;
 --shpe-contact-content-padding:clamp(18px,2vw,32px);
 --shpe-contact-field-radius:10px;
 --shpe-contact-button-radius:10px;
 background:var(--shpe-contact-surface);
 border:1px solid #e5e7eb;
 border-radius:22px;
 box-shadow:0 18px 55px rgba(15,23,42,.1);
 box-sizing:border-box;
 color:var(--shpe-contact-text);
 display:grid;
 grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
 margin-inline:auto;
 min-width:0;
 overflow:hidden;
 width:100%;
 transition:background .2s,border-color .2s,box-shadow .2s,transform .2s;
}
.shpe-contact-pro:where(.shpe-contact-pro--image-right){grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
.shpe-contact-pro--image-right .shpe-contact-pro__visual{grid-column:2;grid-row:1}
.shpe-contact-pro--image-right .shpe-contact-pro__content{grid-column:1;grid-row:1}
.shpe-contact-pro__visual{align-self:stretch;background:linear-gradient(145deg,#172033,#34445c);min-height:420px;min-width:0;overflow:hidden;position:relative}
.shpe-contact-pro__image{display:block;height:100%;inset:0;object-fit:cover;position:absolute;width:100%}
.shpe-contact-pro__image-placeholder{align-items:center;color:var(--shpe-contact-accent);display:flex;font-size:80px;inset:0;justify-content:center;position:absolute}
.shpe-contact-pro__visual:after{background:linear-gradient(180deg,transparent 45%,var(--shpe-contact-overlay,rgba(9,15,27,.48)));content:'';inset:0;pointer-events:none;position:absolute}
.shpe-contact-pro__visual-label{color:#fff;font-size:12px;font-weight:800;letter-spacing:.16em;max-width:calc(100% - 40px);position:absolute;text-transform:uppercase;z-index:2}
.shpe-contact-pro__content{box-sizing:border-box;min-width:0;padding:var(--shpe-contact-content-padding);width:100%}
.shpe-contact-pro__eyebrow{color:var(--shpe-contact-accent);display:block;font-size:12px;font-weight:800;letter-spacing:.16em;margin-bottom:12px}
.shpe-contact-pro__title{color:var(--shpe-contact-text);font-size:clamp(30px,4vw,54px);letter-spacing:-.04em;line-height:1.05;margin:0 0 16px;overflow-wrap:anywhere}
.shpe-contact-pro__description{color:var(--shpe-contact-description);line-height:1.7;margin:0 0 24px}
.shpe-contact-pro__form{min-width:0;position:relative;width:100%}
.shpe-contact-pro__grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;width:100%;text-align:start}
.shpe-contact-pro label{box-sizing:border-box;color:var(--shpe-contact-label);display:flex;flex-direction:column;font-size:12px;font-weight:750;gap:7px;min-width:0;width:100%}
.shpe-contact-pro input,.shpe-contact-pro textarea{background:var(--shpe-contact-field-bg);border:1px solid var(--shpe-contact-field-border);border-radius:var(--shpe-contact-field-radius);box-sizing:border-box;color:var(--shpe-contact-field-text);font:inherit;font-size:14px;max-width:100%;min-width:0;min-height:46px;outline:0;padding:11px 13px;transition:background .18s,border-color .18s,box-shadow .18s;width:100%}
.shpe-contact-pro input::placeholder,.shpe-contact-pro textarea::placeholder{color:var(--shpe-contact-placeholder);opacity:1}
.shpe-contact-pro textarea{min-height:120px;resize:vertical}
.shpe-contact-pro .shpe-contact-pro__grid input:hover,.shpe-contact-pro .shpe-contact-pro__grid textarea:hover{background:var(--shpe-contact-field-hover-bg);border-color:var(--shpe-contact-field-hover-border)}
.shpe-contact-pro .shpe-contact-pro__grid input:focus,.shpe-contact-pro .shpe-contact-pro__grid textarea:focus{border-color:var(--shpe-contact-field-focus-border);box-shadow:0 0 0 3px var(--shpe-contact-field-focus-shadow)}
.shpe-contact-pro__field--full{grid-column:1/-1}
.shpe-contact-pro__button{align-items:center;background:var(--shpe-contact-button-bg);border:1px solid var(--shpe-contact-button-bg);border-radius:var(--shpe-contact-button-radius);box-sizing:border-box;color:var(--shpe-contact-button-text);cursor:pointer;display:inline-flex;font:inherit;font-size:14px;font-weight:800;gap:18px;justify-content:center;margin-top:22px;max-width:100%;min-height:48px;padding:12px 20px;transition:background .18s,border-color .18s,color .18s,transform .18s}
.shpe-contact-pro .shpe-contact-pro__button:hover,.shpe-contact-pro .shpe-contact-pro__button:focus-visible{background:var(--shpe-contact-button-hover-bg);border-color:var(--shpe-contact-button-hover-border);color:var(--shpe-contact-button-hover-text);transform:translateY(-2px)}
.shpe-contact-pro__button:focus-visible{outline:2px solid var(--shpe-contact-accent);outline-offset:3px}
.shpe-contact-pro__button span{font-size:20px}
.shpe-contact-pro__honeypot{display:none!important}
.shpe-contact-pro__notice{border-radius:10px;font-size:13px;margin-bottom:20px;padding:12px 14px}
.shpe-contact-pro__notice--success{background:#ecfdf5;color:#047857}
.shpe-contact-pro__notice--error{background:#fef2f2;color:#b91c1c}
.shpe-contact-pro:where(.shpe-contact-pro--card){display:block;border-radius:18px;box-shadow:0 18px 44px rgba(15,23,42,.12)}
:where(.shpe-contact-pro--card) .shpe-contact-pro__visual{height:240px;min-height:0}
.shpe-contact-pro:where(.shpe-contact-pro--minimal){--shpe-contact-surface:transparent;--shpe-contact-content-padding:20px 0;--shpe-contact-button-radius:0px;border-width:0;border-radius:0;box-shadow:none;display:block}
:where(.shpe-contact-pro--minimal) .shpe-contact-pro__visual{display:none}
:where(.shpe-contact-pro--minimal) .shpe-contact-pro__content{display:grid;column-gap:28px;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}
:where(.shpe-contact-pro--minimal) .shpe-contact-pro__eyebrow,:where(.shpe-contact-pro--minimal) .shpe-contact-pro__title,:where(.shpe-contact-pro--minimal) .shpe-contact-pro__description{grid-column:1}
:where(.shpe-contact-pro--minimal) .shpe-contact-pro__form{grid-column:2;grid-row:1/span 4}
:where(.shpe-contact-pro--minimal) .shpe-contact-pro__button{box-shadow:5px 5px 0 var(--shpe-contact-text)}
.shpe-contact-pro:where(.shpe-contact-pro--dark){--shpe-contact-surface:#0d1726;--shpe-contact-text:#fff;--shpe-contact-description:#cbd5e1;--shpe-contact-label:#cbd5e1;--shpe-contact-field-bg:#172033;--shpe-contact-field-text:#fff;--shpe-contact-field-border:#34445c;--shpe-contact-field-radius:2px;--shpe-contact-button-radius:2px;border-color:#263b5e;border-radius:4px;box-shadow:8px 8px 0 var(--shpe-contact-accent)}
:where(.shpe-contact-pro--dark) .shpe-contact-pro__visual{background:#08111e}
:where(.shpe-contact-pro--dark) .shpe-contact-pro__button{text-transform:uppercase;letter-spacing:.08em}
.shpe-contact-pro:where(.shpe-contact-pro--glass){--shpe-contact-surface:linear-gradient(135deg,rgba(255,255,255,.74),rgba(226,232,240,.38));--shpe-contact-field-bg:rgba(255,255,255,.58);--shpe-contact-field-border:rgba(255,255,255,.9);--shpe-contact-field-radius:16px;--shpe-contact-button-radius:999px;backdrop-filter:blur(22px);border-color:rgba(255,255,255,.8);border-radius:30px;box-shadow:0 24px 80px rgba(30,41,59,.18)}
:where(.shpe-contact-pro--glass) .shpe-contact-pro__visual{background:linear-gradient(145deg,#0f766e,#164e63)}
.elementor-widget-shpe_contact_pro{container-type:inline-size}
@media(max-width:767px){
 .shpe-contact-pro{display:flex;flex-direction:column}
 .shpe-contact-pro__visual{min-height:220px;width:100%}
 .shpe-contact-pro__grid{grid-template-columns:1fr}
 :where(.shpe-contact-pro--minimal) .shpe-contact-pro__content{display:block}
 :where(.shpe-contact-pro--minimal) .shpe-contact-pro__form{margin-top:24px}
}
@container(max-width:700px){
 .shpe-contact-pro{display:flex;flex-direction:column}
 .shpe-contact-pro__visual{min-height:220px;width:100%}
 .shpe-contact-pro__grid{grid-template-columns:1fr}
 :where(.shpe-contact-pro--minimal) .shpe-contact-pro__content{display:block}
 :where(.shpe-contact-pro--minimal) .shpe-contact-pro__form{margin-top:24px}
}
