/* ==================================================
   EL PACIFICO SECURITY
   DESIGN SYSTEM v1.0
================================================== */
/* =====================
   RESET
===================== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* =====================
   VARIABLES
===================== */
:root {
  --color-primary: #0160fd;
  --color-primary-dark: #0A1E3A;
  --color-primary-light: #06B6D4;

  --color-success: #10B981;
  --color-accent: #7C3AED;

  --color-text: #0F172A;
  --color-text-light: #334155;
  --color-text-muted: #64748B;

  --color-border: #E2E8F0;

  --color-bg: #FFFFFF;
  --color-bg-alt: #F8FAFC;

  --color-hover: #1E40AF;

  /* -- TYPOGRAPHY -- */
  --font-heading: "Sora", sans-serif;
  --font-body: "Inter", sans-serif;

  /* -- SHADOWS -- */
  --shadow-sm: 0 2px 8px rgba(15,23,42,.06);
  --shadow-md: 0 8px 25px rgba(15,23,42,.08);
  --shadow-lg: 0 15px 35px rgba(15,23,42,.12);
}

/* =====================
   BASE
===================== */
html {
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  font-family: var(--font-body);
  background: #ffffff;
  color: var(--color-text);
  line-height: 1.5;
}

/* =====================
   MEDIA DEFAULT
===================== */
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

/* =====================
   FORM RESET
===================== */
input,
button,
textarea,
select {
  font: inherit;
}

/* =====================
   LINKS & BUTTONS
===================== */
a {
  text-decoration: none;
  color: inherit;
}

button {
  background: none;
  border: none;
  cursor: pointer;
}

/*--------------------------------------------------------------------------------*/
/* ==========================================
   DESARROLLO DE LA PÁGINA WEB
========================================== */

/*====================================================================================================================
HERO
====================================================================================================================*/

#hero {
    background: linear-gradient(
      90deg,
      rgba(26, 25, 25, 0.95) 0%,
      rgba(15, 15, 15, 0.95) 15%,
      #000000 40%,
      #000000 100%
    );
    display: flex;
    align-items: center;
    overflow: hidden;
    position: relative;
}

#hero .container {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    
}

.hero-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 70px;
    padding:  54px 45px 54px 60px;
}

/* =========================
   TEXTO
========================= */

.hero-text {
    flex: 1;
    max-width: 620px;
    
}

.hero-text h1 {
    font-size: clamp(2.8rem, 5vw, 4.8rem);
    font-size: 45px;
    line-height: 1.05;
    line-height: 54px;
    font-weight: 300;
    color: #ffffff;
    margin-bottom: 28px;
    letter-spacing: -1.5px;

    
}

.hero-text h1 span {
    color: #19d9fb;
}

.hero-text p {
    color: rgba(255,255,255,0.85);
    font-size: 1.15rem;
    font-size: 20px;
    font-weight: 300;
    line-height: 28px;
    max-width: 560px;
    margin-bottom: 25px;
}

/* =========================
   BOTON
========================= */
.hero-buttons{
  display: flex;
  justify-content: flex-start;
  gap: 1rem;
}

.hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 12px 24px;

    background: #06B6D4;

    background: #0160FD;
    color: #ffffff;

    border-radius: 999px;
    text-decoration: none;
    font-weight: 600;
    font-size: 15px;

    transition: all .2s ease;
}

.hero-btn:hover {
    transform: translateY(-3px);
    
        background: linear-gradient(
        to right,
        #06B6D4 0%,
        #0160FD 100%
    );
    background: #06B6D4;
    background: #19d9fb;
    
}


.audit-btn {
    display: inline-flex;
    align-items: center;
    color: #fff;
    text-decoration: none;
    font-family: Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    padding-bottom: 0px;
    border-bottom: 2px solid rgba(255,255,255,0.9);
    transition: all 0.25s ease;
}

.audit-btn:hover {
  color: #a2a1a0;
  border-bottom-color: rgba(255,255,255,0.65);
  color: rgba(255,255,255,0.65);
}


/* =========================
   IMAGEN
========================= */

.hero-graphic {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}

.hero-graphic img {
    width: 100%;
    max-width: 720px;
    height: auto;
    display: block;
    object-fit: contain;
}

/* =========================
   NOTEBOOKS
========================= */

@media (max-width: 1200px) {

    .hero-content {
        gap: 40px;
    }

    .hero-text h1 {
        font-size: 3.8rem;
        font-size: 2.2rem;
    }

    .hero-graphic img {
        max-width: 580px;
    }
}

/* =========================
   TABLETS
========================= */

@media (max-width: 992px) {

    #hero {
        min-height: auto;
        padding: 120px 0 80px;
        padding:0;
    }

    .hero-content {
        flex-direction: column;
        text-align: center;
        gap: 50px;
        padding: 120px 0 80px;
    }

    .hero-text {
        max-width: 100%;
    }

    .hero-text p {
        margin-left: auto;
        margin-right: auto;
    }

    .hero-graphic img {
        max-width: 650px;
    }
}

/* =========================
   CELULARES
========================= */

@media (max-width: 768px) {

    #hero .container {
        padding: 0 24px;
    }

    .hero-text h1 {
        font-size: 2.6rem;
        line-height: 1.1;
    }

    .hero-text p {
        font-size: 1rem;
        line-height: 1.7;
    }

    .hero-btn {
        width: 100%;
        max-width: 320px;
        height: 56px;
    }
    .hero-graphic img {
        max-width: 100%;
    }
}

/* =========================
   CELULARES PEQUEÑOS
========================= */

@media (max-width: 480px) {
    .hero-content {
        padding: 0;
        gap: 30px;
        padding: 50px 0 30px;
    }

    #hero {
        padding: 100px 0 60px;
        padding: 50px 0 30px;
        padding:0;
        background: linear-gradient(
            to bottom,
            rgba(26, 25, 25, 0.95) 0%,
            rgba(15, 15, 15, 0.95) 15%,
            #000000 40%,
            #000000 100%
        );
    }

    .hero-text h1 {
        font-size: 2.15rem;
        font-size: 34px;
        text-align: left;
    }

    .hero-text p {
        font-size: .95rem;
        font-size: 16px;
        text-align: left;
    }

    .hero-buttons{
      display: flex;
      flex-direction: column;
      gap: 2rem;
      align-items: stretch;
      align-items: flex-start;
    }

    .hero-buttons a {
        width: fit-content;
    }

    .hero-buttons a:last-child {
        margin-left: 12px;
    }

    .hero-btn {
        width: 100%;
        height: auto;
        padding: 12px 24px;
    }

}


/* ==============================================================================================================================
   LOGOS SECTION
============================================================================================================================== */

.images{
    background: #ffffff;
    border-radius: 24px 24px 0 0;
    padding: 1.25rem 2rem 0 2rem;
    margin: 0 1rem;
    box-shadow:
        0 4px 20px rgba(0,0,0,.04),
        0 10px 30px rgba(0,0,0,.05);

    overflow: hidden;
}

/* Desktop */
.logos-track{
    display: flex;
    align-items: center;
    justify-content: space-between;
    justify-content: space-evenly;

    gap: 3rem;
}

.logos-track img{
    height: 34px;
    height: 44px;
    width: auto;
    object-fit: contain;
    flex-shrink: 0;

    opacity: .9;

    transition:
        transform .3s ease,
        opacity .3s ease;
}

.logos-track img:hover{
    opacity: 1;
    transform: translateY(-2px);
}

/* ==========================================
   TABLET
========================================== */

@media (max-width: 992px){

    .images{
        padding: 1rem 1.25rem;
    }

    .logos-track{
        gap: 2rem;
    }

    .logos-track img{
        height: 34px;
    }
}

/* ==========================================
   MOBILE SLIDER
========================================== */

@media (max-width: 768px){

    .images{
        margin: 0 0;
        padding: 1rem 1rem 0 1rem;
        overflow-x: auto;

        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .images::-webkit-scrollbar{
        display: none;
    }

    .logos-track{
        justify-content: flex-start;
        width: max-content;
        gap: 2rem;
        padding-right: 1rem;
        scroll-snap-type: x proximity;
    }

    .logos-track img{
        height: 30px;
        scroll-snap-align: center;
    }
}

/*====================================================================================================================
SERVICES
====================================================================================================================*/

#services{
    padding: 120px 1rem;
    background: var(--color-bg);
    overflow: hidden;
}

.services-value{
    width: 100%;
}

/* ==========================
   HEADER
========================== */

.services-header{
    max-width: 850px;
    max-width: 100%;
    margin-bottom: 60px;

}

.services-header h2{
    font-family: var(--font-heading);
    font-size: clamp(2rem,4vw,3.6rem);
    font-size: 40px;
    font-weight: 300;
    color: var(--color-text);
    line-height: 1.1;
    margin-bottom: 24px;

    font-size: 40px;
    line-height: 1.05;
    line-height: 54px;
    font-weight: 400;
    
    margin-bottom: 28px;
    letter-spacing: -1.5px;
}

.services-header p{
    font-family: var(--font-body);
    font-size: 1.2rem;
    line-height: 1.8;
    color: var(--color-text-light);
    max-width: 780px;
    font-size: 1.15rem;
    font-size: 18px;
    font-weight: 300;
    line-height: 28px;
}

/* ==========================
   GRID
========================== */

.stats-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
}

/* ==========================
   CARDS
========================== */

.stat-card{
    position:relative;

    border-radius:20px;

    padding:40px;

    min-height:220px;

    display:flex;
    flex-direction:column;
    justify-content:center;

    overflow:hidden;

    transition:
    transform .35s ease,
    box-shadow .35s ease;
}

/* Glow */

.stat-card::before{
    content:"";

    position:absolute;

    width:250px;
    height:250px;

    border-radius:50%;

    top:-140px;
    right:-100px;

    opacity:.15;

    transition:.4s;
}

.stat-card:hover{
    transform:translateY(-8px);
}

.stat-card:hover::before{
    transform:scale(1.25);
}

/* ==========================
   COLORS
========================== */

.stat-black{
    background:#000;
    background: #0A0A0A;
    color:#ffffff;
}

.stat-black::before{
    background:#ffffff;
}

.stat-orange{
    background: #0160fd;
    background: #0160FD;
    color:#ffffff;
}

.stat-orange::before{
    background:#ffffff;
}

.stat-purple{
    background:#19d9fb;
    color: #ffffff;
}

.stat-purple::before{
    background:#ffffff;
}

.stat-green{
    background: #3bef55;
    color:#000;
    color:#ffffff;
}

.stat-green::before{
    background:#000;
}

/* ==========================
   TYPOGRAPHY
========================== */
.stat-number{
    font-family:var(--font-heading);
    font-size:clamp(3rem,5vw,4.5rem);
    font-size:25px;
    font-weight:300;
    line-height:1;
    margin-bottom:20px;
}

.stat-text{
    font-family:var(--font-body);
    font-size:1.4rem;
    font-size:18px;
    line-height:1.4;
    max-width:180px;
}

/* ==========================
   REVEAL
========================== */

.reveal{
    opacity:0;
    transform:translateY(40px);
}

.reveal.active{
    opacity:1;
    transform:translateY(0);
    transition:
    opacity .8s ease,
    transform .8s ease;
}

/* ==========================
   TABLET
========================== */

@media (max-width:1024px){

    .stats-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .stat-card{
        min-height:200px;
    }
}

/* ==========================
   MOBILE
========================== */

@media (max-width:768px){
    .services-header{
        margin:0 1rem;
    }

    #services{
        padding:80px 0;
    }

    .services-header{
        margin-bottom:40px;
    }

    .services-header h2{
        font-size:2rem;
    }

    .services-header p{
        font-size:1rem;
        line-height:1.7;
    }

    .stats-grid{
        grid-template-columns:1fr;
        gap:18px;
    }

    .stat-card{
        min-height:180px;
        padding:32px;
    }

    .stat-number{
        font-size:3rem;
    }

    .stat-text{
        font-size:1.15rem;
        max-width:none;
    }
}

/* ==========================
   SMALL MOBILE
========================== */

@media (max-width:480px){
    #services{
        padding: 60px 0;
        background: var(--color-bg);
        overflow: hidden;
    }

    .stat-card{
        padding:28px;
        border-radius:16px;
        margin: 0 1rem;
    }

    .stat-number{
        font-size:2.8rem;
        font-size:22px;
    }

}

/* ====================================================================================================
   FOOTER
==================================================================================================== */
/* ==========================
   FOOTER
========================== */

.footer {
  width: 100%;
  background: #59C3CF;
  background: #ffffff;
  color: #000;
  color: rgba(0, 0, 0, 0.8);
  padding: 18px 20px;
  border-top: 1px solid rgba(0, 0, 0, 0.1); 
}

.footer .container {
  width: min(1200px, 100%);
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
}

.footer__copyright {
  margin: 0;
  text-align: center;
  font-size: clamp(0.85rem, 1vw + 0.4rem, 1rem);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.3px;
}

/* Tablets */
@media (max-width: 768px) {
  .footer {
    padding: 16px;
  }
}

/* Celulares */
@media (max-width: 480px) {
  .footer {
    padding: 14px 12px;
  }

  .footer__copyright {
    font-size: 0.9rem;
  }
}

