/* MOD_CONTACTANOS 1.6.0 - diseño aislado del resto de Joomla */
.contact-sections{
    position:relative;
    padding:90px 0;
    overflow:hidden;
    background-color:#fff;
    background-position:center;
    background-repeat:no-repeat;
    background-size:cover;
    color:#29415c;
}
.contact-sections::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(255,255,255,var(--contact-overlay,.18));
    z-index:0;
    pointer-events:none;
}
.contact-sections *,.contact-sections *::before,.contact-sections *::after{box-sizing:border-box}
.contact-sections .container-contact{
    position:relative;
    z-index:2;
    width:min(1200px,92%);
    margin:auto;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:70px;
    align-items:center;
}
.contact-sections .contact-card{
    position:relative;
    padding:45px;
    background:rgba(255,255,255,.96);
    border:1px solid rgba(41,65,92,.16);
    border-radius:20px;
    box-shadow:0 12px 35px rgba(0,0,0,.08);
}
.contact-sections .contact-card h3{
    margin:0 0 10px;
    color:#29415c;
    font-weight:900;
}
.contact-sections .subtitle{
    margin:0 0 35px;
    color:#6f7882;
    line-height:1.5;
}
.contact-sections .grid-contact{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px;
}
.contact-sections .field{
    display:flex;
    flex-direction:column;
    margin-bottom:20px;
}
.contact-sections .field-message{grid-column:1 / -1}
.contact-sections .field label{
    margin-bottom:8px;
    color:#717982;
    font-size:.75rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.5px;
}
.contact-sections .required-mark{color:#db372d}
.contact-sections .field input,
.contact-sections .field textarea{
    width:100%;
    padding:15px;
    color:#29415c;
    background:#fff;
    border:1px solid #d3d7da;
    border-radius:40px;
    transition:border-color .3s,box-shadow .3s,background .3s;
}
.contact-sections .field textarea{
    border-radius:10px;
    resize:none;
}
.contact-sections .field input:focus,
.contact-sections .field textarea:focus{
    outline:none;
    border-color:var(--contact-theme);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--contact-theme) 15%,transparent);
}
.contact-sections .field input.contact-invalid,
.contact-sections .field textarea.contact-invalid{
    border-color:#db372d;
    box-shadow:0 0 0 3px rgba(219,55,45,.1);
}
.contact-sections .btn-contact{
    position:relative;
    overflow:hidden;
    width:100%;
    padding:16px;
    border:none;
    border-radius:10px;
    background:linear-gradient(135deg,#e1d240 0%,#a5611a 100%);
    color:#fff;
    font-weight:700;
    text-transform:uppercase;
    cursor:pointer;
    transition:transform .3s,box-shadow .3s,opacity .3s;
}
.contact-sections .btn-contact::before{
    content:"";
    position:absolute;
    inset:0;
    transform:translateX(-100%);
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);
    transition:transform .8s;
}
.contact-sections .btn-contact:hover::before{transform:translateX(100%)}
.contact-sections .btn-contact:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 25px rgba(165,97,26,.25);
}
.contact-sections .btn-contact:disabled{opacity:.7;cursor:wait}
.contact-sections .assistant-panel h3{
    margin:0 0 18px;
    color:#29415c;
    font-weight:900;
    line-height:1.2;
}
.contact-sections .assistant-panel p{
    max-width:440px;
    margin:0 0 45px;
    color:#707982;
    line-height:1.5;
}
.contact-sections .assistant-panel h3::after{
    content:"";
    display:block;
    width:55px;
    height:3px;
    margin-top:15px;
    background:var(--contact-theme);
    border-radius:10px;
}
.contact-sections .assistant-list{
    display:flex;
    justify-content:center;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:35px;
}
.contact-sections .assistant{
    display:flex;
    flex-direction:column;
    align-items:center;
    min-width:125px;
    color:#29415c;
    text-decoration:none;
    transition:transform .3s;
}
.contact-sections .assistant img,
.contact-sections .assistant-placeholder{
    width:140px;
    height:140px;
    object-fit:cover;
    border-radius:50%;
    border:3px solid var(--contact-theme);
    box-shadow:0 8px 25px rgba(0,0,0,.15);
    transition:.3s;
    background:#fff;
    display:block;
}
.contact-sections .assistant-placeholder{
    position:relative;
}
.contact-sections .assistant-placeholder::after{
    content:"";
    position:absolute;
    inset:28%;
    border-radius:50%;
    background:#e8e8e8;
    box-shadow:0 35px 0 8px #e8e8e8;
}
.contact-sections .assistant > span:last-child{
    margin-top:15px;
    padding:0 15px;
    border-radius:15px;
    color:#29415c;
    font-weight:700;
    transition:.3s;
}
.contact-sections .assistant:hover{transform:translateY(-8px)}
.contact-sections .assistant:hover img,
.contact-sections .assistant:hover .assistant-placeholder{
    transform:scale(1.05);
    box-shadow:0 12px 30px rgba(0,0,0,.18);
}
.contact-sections .assistant:hover > span:last-child{
    background:var(--contact-theme);
    color:#fff;
}
.contact-sections .contact-honeypot{
    position:absolute!important;
    left:-10000px!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
}
.contact-sections .success-overlay{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    padding:40px;
    text-align:center;
    background:rgba(255,255,255,.98);
    border-radius:20px;
    opacity:0;
    visibility:hidden;
    transform:scale(.9);
    transition:.45s;
    z-index:10;
}
.contact-sections .success-overlay.show{
    opacity:1;
    visibility:visible;
    transform:scale(1);
}
.contact-sections .success-overlay h3{margin:0 0 12px;color:#29415c;font-weight:900}
.contact-sections .success-overlay p{
    max-width:420px;
    margin:0;
    color:#707982;
    line-height:1.4;
}
.contact-sections .success-icon{
    display:flex;
    justify-content:center;
    align-items:center;
    width:95px;
    height:95px;
    margin-bottom:25px;
    color:#fff;
    font-size:48px;
    font-weight:bold;
    background:linear-gradient(135deg,#29d65d,#14b44a);
    border-radius:50%;
    box-shadow:0 15px 35px rgba(27,184,76,.35);
    animation:modContactanosSuccessPop .7s ease;
}
@keyframes modContactanosSuccessPop{
    0%{opacity:0;transform:scale(.2) rotate(-30deg)}
    60%{opacity:1;transform:scale(1.15)}
    100%{transform:scale(1)}
}
@media(max-width:991.98px){
    .contact-sections .container-contact{grid-template-columns:1fr;gap:55px}
    .contact-sections .assistant-panel{text-align:center}
    .contact-sections .assistant-panel p{margin-left:auto;margin-right:auto}
    .contact-sections .assistant-panel h3::after{margin-left:auto;margin-right:auto}
}
@media(max-width:767.98px){
    .contact-sections .contact-card{padding:30px 22px}
    .contact-sections .grid-contact{grid-template-columns:1fr}
    .contact-sections .field-message{grid-column:auto}
}
@media(max-width:575.98px){
    .contact-sections{padding:50px 0}
    .contact-sections .contact-card{padding:25px 18px}
    .contact-sections .assistant img,.contact-sections .assistant-placeholder{width:100px;height:100px}
}

/* Correcciones 1.3.0: textos y círculos aislados del template */
.contact-sections .contactanos-subtitle,
.contact-sections .assistant-description{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    color:#707982 !important;
    line-height:1.5 !important;
    font-size:1rem !important;
}
.contact-sections .contactanos-subtitle{
    margin:0 0 35px !important;
}
.contact-sections .assistant-description{
    max-width:440px;
    margin:0 0 45px !important;
}
.contact-sections .assistant img,
.contact-sections .assistant-placeholder{
    width:140px !important;
    height:140px !important;
    min-width:140px !important;
    min-height:140px !important;
    max-width:140px !important;
    max-height:140px !important;
    aspect-ratio:1 / 1 !important;
    border-radius:50% !important;
    overflow:hidden !important;
    object-fit:cover !important;
    border:3px solid var(--contact-theme) !important;
    box-shadow:0 8px 25px rgba(0,0,0,.15) !important;
    background:#fff !important;
}
.contact-sections .assistant-placeholder{
    display:block !important;
    position:relative !important;
}
@media(max-width:991.98px){
    .contact-sections .assistant-description{margin-left:auto !important;margin-right:auto !important}
}
@media(max-width:575.98px){
    .contact-sections .assistant img,
    .contact-sections .assistant-placeholder{
        width:100px !important;
        height:100px !important;
        min-width:100px !important;
        min-height:100px !important;
        max-width:100px !important;
        max-height:100px !important;
    }
}

/* 1.5.0 - Fondo externo mediante <img> para que las URLs remotas se comporten igual que las imágenes locales. */
.contact-sections::before{display:none !important}
.contact-sections .contactanos-background{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    pointer-events:none;
}
.contact-sections .contactanos-background img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    opacity:var(--contact-bg-opacity,.18);
}
.contact-sections .contactanos-background-overlay{
    position:absolute;
    inset:0;
    z-index:1;
    background:rgba(255,255,255,.18);
    pointer-events:none;
}
.contact-sections .container-contact{z-index:2}
.contact-sections .contactanos-form-message{
    display:none;
    margin:0 0 15px;
    padding:10px 13px;
    border-radius:10px;
    font-size:.9rem;
    line-height:1.4;
}
.contact-sections .contactanos-form-message.show.error{
    display:block;
    color:#8a2f2a;
    background:#fff6f5;
    border:1px solid #e4b3b0;
}

/* 1.7.0 - Ajustes: color/opacidad del contact-card, autofill y borde de asistentes de 6px. */
.contact-sections{
    background:#111;
    color:var(--contact-title-color,#fff);
}
.contact-sections .contactanos-background img{
    opacity:1 !important;
    filter:none !important;
}
.contact-sections .contactanos-background-overlay{
    background:rgba(0,0,0,var(--contact-bg-overlay,.55)) !important;
}
.contact-sections .container-contact{
    width:min(1200px,92%);
    gap:68px;
}
.contact-sections .contact-card{
    padding:42px 45px;
    background:rgba(var(--contact-card-rgb,28,28,28),var(--contact-card-opacity,.62)) !important;
    border:1px solid rgba(255,255,255,.30) !important;
    border-radius:20px !important;
    box-shadow:0 18px 45px rgba(0,0,0,.30) !important;
    backdrop-filter:blur(13px);
    -webkit-backdrop-filter:blur(13px);
}
.contact-sections .contact-card h3{
    margin:0 0 10px !important;
    color:var(--contact-title-color,#fff) !important;
    font-size:1.55rem;
    font-weight:900;
    line-height:1.2;
}
.contact-sections .contactanos-subtitle{
    color:var(--contact-subtitle-color,#f1f1f1) !important;
    font-size:.98rem !important;
    line-height:1.45 !important;
    margin:0 0 34px !important;
}
.contact-sections .field label{
    color:var(--contact-label-color,#fff) !important;
    font-size:.70rem;
    font-weight:700;
    letter-spacing:.65px;
}
.contact-sections .required-mark{color:#ff7067 !important}
.contact-sections .field input,
.contact-sections .field textarea{
    color:var(--contact-input-color,#fff) !important;
    background:rgba(255,255,255,.075) !important;
    border:1px solid rgba(255,255,255,.34) !important;
    box-shadow:none !important;
}
.contact-sections .field input::placeholder,
.contact-sections .field textarea::placeholder{
    color:var(--contact-input-placeholder,#d9d9d9) !important;
    opacity:.78;
}

/* Color de los datos autocompletados/guardados por el navegador. */
.contact-sections .field input:-webkit-autofill,
.contact-sections .field input:-webkit-autofill:hover,
.contact-sections .field input:-webkit-autofill:focus,
.contact-sections .field textarea:-webkit-autofill,
.contact-sections .field textarea:-webkit-autofill:hover,
.contact-sections .field textarea:-webkit-autofill:focus{
    -webkit-text-fill-color:var(--contact-input-color,#fff) !important;
    caret-color:var(--contact-input-color,#fff) !important;
    -webkit-box-shadow:0 0 0 1000px rgba(var(--contact-card-rgb,28,28,28),.18) inset !important;
    box-shadow:0 0 0 1000px rgba(var(--contact-card-rgb,28,28,28),.18) inset !important;
    transition:background-color 99999s ease-in-out 0s;
}
.contact-sections .field input:-moz-autofill,
.contact-sections .field textarea:-moz-autofill{
    color:var(--contact-input-color,#fff) !important;
    caret-color:var(--contact-input-color,#fff) !important;
}
.contact-sections .field input:focus,
.contact-sections .field textarea:focus{
    border-color:var(--contact-theme,#caa437) !important;
    background:rgba(255,255,255,.105) !important;
    box-shadow:0 0 0 3px color-mix(in srgb,var(--contact-theme,#caa437) 22%,transparent) !important;
}
.contact-sections .assistant-panel h3{
    color:var(--contact-advisers-title-color,#fff) !important;
    font-size:1.55rem;
    margin:0 0 18px;
}
.contact-sections .assistant-panel p,
.contact-sections .assistant-description{
    color:var(--contact-advisers-text-color,#f1f1f1) !important;
    font-size:.98rem !important;
    line-height:1.45 !important;
}
.contact-sections .assistant-panel h3::after{
    background:var(--contact-theme,#caa437) !important;
    height:3px;
    width:55px;
    margin-top:14px;
}
.contact-sections .assistant-list{
    gap:32px;
}
.contact-sections .assistant{
    min-width:125px;
    color:var(--contact-agent-name-color,#fff) !important;
    transition:transform .28s ease;
}
.contact-sections .assistant img,
.contact-sections .assistant-placeholder{
    width:140px !important;
    height:140px !important;
    min-width:140px !important;
    min-height:140px !important;
    max-width:140px !important;
    max-height:140px !important;
    border-radius:50% !important;
    border:6px solid rgba(255,255,255,.92) !important;
    background:#fff !important;
    box-shadow:0 10px 28px rgba(0,0,0,.28) !important;
    transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease !important;
}
.contact-sections .assistant > span:last-child{
    margin-top:12px !important;
    padding:4px 14px !important;
    border-radius:18px !important;
    color:var(--contact-agent-name-color,#fff) !important;
    background:transparent !important;
    font-weight:700 !important;
    transition:background .28s ease,color .28s ease,box-shadow .28s ease !important;
}
.contact-sections .assistant:hover,
.contact-sections .assistant:focus-visible{
    transform:translateY(-7px);
}
.contact-sections .assistant:hover img,
.contact-sections .assistant:hover .assistant-placeholder,
.contact-sections .assistant:focus-visible img,
.contact-sections .assistant:focus-visible .assistant-placeholder{
    transform:scale(1.035);
    border-color:var(--contact-theme,#caa437) !important;
    box-shadow:0 12px 32px rgba(0,0,0,.34),0 0 0 2px rgba(202,164,55,.18) !important;
}
.contact-sections .assistant:hover > span:last-child,
.contact-sections .assistant:focus-visible > span:last-child{
    background:#fff !important;
    color:var(--contact-agent-name-hover-color,#caa437) !important;
    box-shadow:0 5px 14px rgba(0,0,0,.18);
}
.contact-sections .assistant:focus-visible{outline:none}
.contact-sections .btn-contact{
    border-radius:10px !important;
    padding:16px !important;
    background:linear-gradient(135deg,#e1d240 0%,#a5611a 100%) !important;
    color:#fff !important;
}
.contact-sections .success-overlay{
    background:rgba(28,28,28,.97) !important;
    color:#fff;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}
.contact-sections .success-overlay h3{color:#fff !important}
.contact-sections .success-overlay p{color:#f1f1f1 !important}
@media(max-width:767.98px){
    .contact-sections .contact-card{padding:30px 24px}
    .contact-sections .assistant-panel h3{font-size:1.35rem}
}

/* Google reCAPTCHA v2 */
.contactanos-recaptcha {
    display: flex;
    justify-content: center;
    margin: 16px 0 20px;
    min-height: 78px;
}
.contactanos-recaptcha .g-recaptcha {
    max-width: 100%;
}
