/*=====================================
              LAREN CORE 2.0
======================================*/
/*=====================================
              VARIABLES BASE
======================================*/
:root{
    --core-container:1200px;
    --core-gutter:40px;
    --core-section-space:120px;
    --core-font-primary:Arial,sans-serif;
    --core-background:#FFFFFF;
    --core-surface:#F5F5F5;
    --core-text:#666666;
    --core-heading:#111111;
    --core-primary:#222222;
    --core-primary-hover:#000000;
    --core-border:#E1E1E1;
    --core-white:#FFFFFF;
    --core-success:#25D366;
    --core-radius:0;
    --core-shadow:0 20px 50px rgba(0,0,0,.1);
    --core-transition:.3s ease;
}
/*=====================================
                  RESET
======================================*/
*,*::before,*::after{
    margin:0;
    padding:0;
    box-sizing:border-box;
}
html{
    scroll-behavior:smooth;
    scroll-padding-top:90px;
    overflow-x:clip;
}
body{
    min-height:100vh;
    background:var(--core-background);
    color:var(--core-text);
    font-family:var(--core-font-primary);
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
    overflow-x:clip;
}
body.MenuOpen{
    overflow:hidden;
}
img,picture,video,canvas,svg{
    max-width:100%;
    display:block;
}
img{
    height:auto;
}
a{
    color:inherit;
    text-decoration:none;
}
button,input,select,textarea{
    font:inherit;
}
button{
    border:none;
}
button,a{
    -webkit-tap-highlight-color:transparent;
}
ul,ol{
    list-style:none;
}
table{
    width:100%;
    border-collapse:collapse;
}
textarea{
    resize:vertical;
}
fieldset{
    min-width:0;
    border:none;
}
iframe{
    max-width:100%;
    border:none;
}
/*=====================================
              ACCESIBILIDAD
======================================*/
:focus{
    outline:none;
}
:focus-visible{
    outline:2px solid var(--core-primary);
    outline-offset:4px;
}
[hidden]{
    display:none!important;
}
.SrOnly{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
}
.SkipLink{
    position:fixed;
    top:15px;
    left:15px;
    z-index:99999;
    padding:12px 18px;
    background:var(--core-heading);
    color:var(--core-white);
    font-size:.75rem;
    font-weight:700;
    transform:translateY(-150%);
    transition:transform var(--core-transition);
}
.SkipLink:focus{
    transform:translateY(0);
}
/*=====================================
                CONTENEDOR
======================================*/
.Container{
    width:min(var(--core-container),calc(100% - var(--core-gutter)));
    margin-inline:auto;
}
.ContainerSmall{
    width:min(850px,calc(100% - var(--core-gutter)));
    margin-inline:auto;
}
.ContainerWide{
    width:min(1440px,calc(100% - var(--core-gutter)));
    margin-inline:auto;
}
/*=====================================
                SECCIONES
======================================*/
.Section{
    position:relative;
    padding-block:var(--core-section-space);
}
.SectionHeader{
    margin-bottom:55px;
}
.SectionEyebrow,.SectionTag{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--core-primary);
    font-size:.6rem;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.SectionTitle{
    color:var(--core-heading);
    font-size:clamp(2.6rem,5vw,4.4rem);
    line-height:1;
}
.SectionDescription{
    color:var(--core-text);
    font-size:.78rem;
    line-height:1.85;
}
/*=====================================
                  BOTONES
======================================*/
.Btn{
    min-height:54px;
    padding:0 24px;
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    background:transparent;
    border:1px solid transparent;
    border-radius:var(--core-radius);
    color:inherit;
    font-size:.68rem;
    font-weight:800;
    line-height:1;
    text-align:center;
    cursor:pointer;
    transition:background var(--core-transition),border-color var(--core-transition),color var(--core-transition),transform var(--core-transition),box-shadow var(--core-transition);
}
.Btn:hover{
    transform:translateY(-3px);
}
.Btn:disabled{
    cursor:not-allowed;
    opacity:.65;
    transform:none;
}
.BtnPrimary{
    background:var(--core-primary);
    color:var(--core-white);
}
.BtnPrimary:hover{
    background:var(--core-primary-hover);
}
.BtnSecondary{
    border-color:var(--core-border);
    color:var(--core-heading);
}
.BtnSecondary:hover{
    border-color:var(--core-primary);
    color:var(--core-primary);
}
.BtnFull{
    width:100%;
}
.BtnIcon{
    width:48px;
    height:48px;
    padding:0;
}
/*=====================================
                FORMULARIOS
======================================*/
.Form{
    display:flex;
    flex-direction:column;
    gap:20px;
}
.FormGrid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}
.FormGroup{
    display:flex;
    flex-direction:column;
    gap:9px;
}
.FormGroupFull{
    grid-column:1/-1;
}
.FormGroup label{
    color:var(--core-heading);
    font-size:.58rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.FormControl,.FormGroup input,.FormGroup select,.FormGroup textarea{
    width:100%;
    min-height:50px;
    padding:14px 15px;
    background:var(--core-white);
    border:1px solid var(--core-border);
    border-radius:var(--core-radius);
    outline:none;
    color:var(--core-heading);
    font-size:.7rem;
    transition:border-color var(--core-transition),box-shadow var(--core-transition),background var(--core-transition);
}
.FormGroup textarea{
    min-height:120px;
}
.FormControl:focus,.FormGroup input:focus,.FormGroup select:focus,.FormGroup textarea:focus{
    border-color:var(--core-primary);
    box-shadow:0 0 0 4px color-mix(in srgb,var(--core-primary) 10%,transparent);
}
.FormGroup input::placeholder,.FormGroup textarea::placeholder{
    color:#A4A4A4;
}
.FormCheck{
    display:flex;
    align-items:flex-start;
    gap:10px;
    cursor:pointer;
}
.FormCheck input{
    margin-top:3px;
    accent-color:var(--core-primary);
}
.FormCheck span{
    color:var(--core-text);
    font-size:.62rem;
    line-height:1.65;
}
.FormMessage{
    min-height:18px;
    color:var(--core-primary);
    font-size:.6rem;
    font-weight:700;
    text-align:center;
}
/*=====================================
                  FAQ
======================================*/
.FaqList{
    display:flex;
    flex-direction:column;
    gap:14px;
}
.FaqItem{
    background:var(--core-white);
    border:1px solid var(--core-border);
    overflow:hidden;
    transition:border-color var(--core-transition),box-shadow var(--core-transition);
}
.FaqItem.Active{
    border-color:var(--core-primary);
    box-shadow:var(--core-shadow);
}
.FaqQuestion{
    width:100%;
    padding:22px 24px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    background:transparent;
    color:var(--core-heading);
    font-size:.78rem;
    font-weight:800;
    text-align:left;
    cursor:pointer;
}
.FaqQuestion>i,.FaqQuestionIcon{
    width:36px;
    height:36px;
    display:flex;
    justify-content:center;
    align-items:center;
    flex-shrink:0;
    background:var(--core-surface);
    color:var(--core-primary);
    transition:background var(--core-transition),color var(--core-transition),transform var(--core-transition);
}
.FaqItem.Active .FaqQuestion>i,.FaqItem.Active .FaqQuestionIcon{
    background:var(--core-primary);
    color:var(--core-white);
    transform:rotate(45deg);
}
.FaqAnswer{
    display:grid;
    grid-template-rows:0fr;
    transition:grid-template-rows .4s ease;
}
.FaqItem.Active .FaqAnswer{
    grid-template-rows:1fr;
}
.FaqAnswer>div{
    overflow:hidden;
}
.FaqAnswer p{
    padding:0 70px 23px 24px;
    color:var(--core-text);
    font-size:.68rem;
    line-height:1.8;
}
/*=====================================
              AVISO DE DEMO
======================================*/
.DemoNotice{
    padding:19px 0;
    background:#080808;
    color:var(--core-white);
}
.DemoNoticeContainer{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:17px;
}
.DemoNoticeIcon{
    width:42px;
    height:42px;
    display:flex;
    justify-content:center;
    align-items:center;
    background:rgba(255,255,255,.07);
}
.DemoNoticeContent{
    display:flex;
    flex-direction:column;
    gap:5px;
}
.DemoNotice strong{
    color:rgba(255,255,255,.78);
    font-size:.59rem;
}
.DemoNotice p{
    max-width:850px;
    color:rgba(255,255,255,.37);
    font-size:.5rem;
    line-height:1.65;
}
.DemoNotice a{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--core-primary);
    font-size:.58rem;
    font-weight:800;
    white-space:nowrap;
}
.DemoNotice a i{
    transition:transform var(--core-transition);
}
.DemoNotice a:hover i{
    transform:translateX(5px);
}
/*=====================================
          ACCIONES FLOTANTES
======================================*/
.FloatingActions{
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:900;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:10px;
}
.WhatsAppButton{
    min-height:50px;
    padding:0 18px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    background:var(--core-success);
    border-radius:30px;
    color:var(--core-white);
    box-shadow:0 14px 34px rgba(0,0,0,.2);
    font-size:.62rem;
    font-weight:800;
    transition:background var(--core-transition),transform var(--core-transition),box-shadow var(--core-transition);
}
.WhatsAppButton i{
    font-size:1.08rem;
}
.WhatsAppButton:hover{
    background:#1EBD5B;
    box-shadow:0 18px 40px rgba(0,0,0,.26);
    transform:translateY(-3px);
}
.ScrollTop{
    width:46px;
    height:46px;
    display:flex;
    justify-content:center;
    align-items:center;
    background:var(--core-primary);
    border:none;
    border-radius:50%;
    color:var(--core-white);
    box-shadow:0 14px 34px rgba(0,0,0,.2);
    cursor:pointer;
    opacity:0;
    visibility:hidden;
    transform:translateY(14px);
    transition:opacity var(--core-transition),visibility var(--core-transition),transform var(--core-transition),background var(--core-transition);
}
.ScrollTop.Show{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}
.ScrollTop:hover{
    background:var(--core-primary-hover);
    transform:translateY(-3px);
}
/*=====================================
                UTILIDADES
======================================*/
.TextCenter{
    text-align:center;
}
.TextLeft{
    text-align:left;
}
.TextRight{
    text-align:right;
}
.Flex{
    display:flex;
}
.FlexCenter{
    display:flex;
    justify-content:center;
    align-items:center;
}
.FlexBetween{
    display:flex;
    justify-content:space-between;
    align-items:center;
}
.Grid{
    display:grid;
}
.Hidden{
    display:none!important;
}
.NoScroll{
    overflow:hidden!important;
}
.Relative{
    position:relative;
}
.FullWidth{
    width:100%;
}
.AutoMargin{
    margin-inline:auto;
}
/*=====================================
              RESPONSIVE
======================================*/
@media(max-width:900px){
    :root{
        --core-section-space:95px;
    }
    .DemoNoticeContainer{
        grid-template-columns:auto 1fr;
    }
    .DemoNoticeContainer>a{
        grid-column:1/-1;
        margin-left:59px;
    }
}
@media(max-width:650px){
    :root{
        --core-gutter:28px;
        --core-section-space:75px;
    }
    .FormGrid{
        grid-template-columns:1fr;
    }
    .FormGroupFull{
        grid-column:auto;
    }
    .FaqQuestion{
        padding:20px;
    }
    .FaqAnswer p{
        padding:0 20px 21px;
    }
}
@media(max-width:480px){
    .DemoNoticeContainer{
        grid-template-columns:1fr;
        text-align:center;
    }
    .DemoNoticeIcon{
        margin:auto;
    }
    .DemoNoticeContainer>a{
        grid-column:auto;
        justify-content:center;
        margin-left:0;
    }
    .FloatingActions{
        right:15px;
        bottom:15px;
    }
    .WhatsAppButton{
        width:48px;
        height:48px;
        min-height:48px;
        padding:0;
        border-radius:50%;
    }
    .WhatsAppButton span{
        display:none;
    }
}
/*=====================================
          MOVIMIENTO REDUCIDO
======================================*/
@media(prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto;
    }
    *,*::before,*::after{
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important;
        scroll-behavior:auto!important;
    }
}