/* ==========================================================
   ASESORÍA VETERINARIA OVINA
   style.css
   PARTE 1/3
========================================================== */

/*=========================
RESET
=========================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Inter',sans-serif;
    background:#f7f8f7;
    color:#333;
    line-height:1.7;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
    color:inherit;
}

ul{
    list-style:none;
}

/*=========================
VARIABLES
=========================*/

:root{

    --primary:#1B5E20;
    --secondary:#2E7D32;
    --accent:#66BB6A;
    --light:#F7F7F7;
    --dark:#1f1f1f;
    --gray:#666;
    --white:#ffffff;

    --radius:16px;

    --shadow:
    0 12px 35px rgba(0,0,0,.08);

    --transition:.30s ease;

}

/*=========================
CONTAINER
=========================*/

.container{

    width:min(1150px,92%);
    margin:auto;

}

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

header{

    position:sticky;
    top:0;

    background:#ffffff;

    z-index:999;

    box-shadow:0 3px 18px rgba(0,0,0,.05);

}

.navbar{

    display:flex;

    justify-content:space-between;

    align-items:center;

    height:90px;

}

.logo{

    display:flex;

    align-items:center;

    gap:15px;

}

.logo img{

    width:60px;

}

.logo h2{

    color:var(--primary);

    font-size:22px;

    font-weight:700;

}

.logo span{

    color:var(--gray);

    font-size:13px;

}

.menu{

    display:flex;

    gap:35px;

}

.menu a{

    font-weight:600;

    transition:var(--transition);

}

.menu a:hover{

    color:var(--secondary);

}

.btn-menu{

    background:var(--secondary);

    color:white;

    padding:14px 26px;

    border-radius:40px;

    font-weight:600;

    transition:var(--transition);

}

.btn-menu:hover{

    background:var(--primary);

    transform:translateY(-2px);

}

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

.hero{

    padding:90px 0;

    background:linear-gradient(
    135deg,
    #edf7ed,
    #ffffff);

}

.hero-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    align-items:center;

    gap:70px;

}

.hero-text h1{

    font-size:52px;

    line-height:1.1;

    color:var(--primary);

    margin-bottom:25px;

}

.hero-text p{

    font-size:19px;

    color:#555;

    margin-bottom:35px;

}

.hero-buttons{

    display:flex;

    gap:18px;

    flex-wrap:wrap;

    margin-bottom:45px;

}

.btn-primary{

    background:var(--secondary);

    color:white;

    padding:16px 34px;

    border-radius:40px;

    font-weight:700;

    transition:var(--transition);

}

.btn-primary:hover{

    background:var(--primary);

    transform:translateY(-3px);

}

.btn-secondary{

    border:2px solid var(--secondary);

    color:var(--secondary);

    padding:16px 34px;

    border-radius:40px;

    font-weight:700;

    transition:var(--transition);

}

.btn-secondary:hover{

    background:var(--secondary);

    color:white;

}

.hero-data{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:20px;

}

.hero-data div{

    background:white;

    padding:20px;

    border-radius:var(--radius);

    box-shadow:var(--shadow);

}

.hero-data strong{

    color:var(--primary);

    display:block;

    margin-bottom:8px;

}

.hero-data p{

    margin:0;

    font-size:14px;

}

.hero-image{

    position:relative;

}

.hero-image img{

    border-radius:25px;

    box-shadow:0 25px 60px rgba(0,0,0,.15);

}
/*==========================================================
SERVICIOS
==========================================================*/

.services{

    padding:100px 0;

    background:#ffffff;

}

.services h2{

    text-align:center;

    color:var(--primary);

    font-size:40px;

    margin-bottom:15px;

}

.subtitle{

    text-align:center;

    max-width:700px;

    margin:0 auto 60px;

    color:#666;

    font-size:18px;

}

.cards{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));

    gap:30px;

}

.card{

    background:#fff;

    padding:40px 30px;

    border-radius:20px;

    box-shadow:var(--shadow);

    transition:var(--transition);

    text-align:center;

    border:1px solid #eeeeee;

}

.card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 45px rgba(0,0,0,.12);

}

.icon{

    width:80px;

    height:80px;

    margin:auto;

    margin-bottom:25px;

    border-radius:50%;

    background:#edf7ed;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:36px;

}

.card h3{

    color:var(--primary);

    margin-bottom:15px;

    font-size:24px;

}

.card p{

    color:#666;

}

/*==========================================================
SOBRE MI
==========================================================*/

.about{

    padding:100px 0;

    background:#f7f8f7;

}

.about-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;

}

.about-image img{

    border-radius:24px;

    box-shadow:0 20px 45px rgba(0,0,0,.12);

}

.about-text h2{

    color:var(--primary);

    font-size:40px;

    margin-bottom:25px;

}

.about-text p{

    margin-bottom:30px;

    color:#555;

    font-size:18px;

}

.about-text ul{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.about-text li{

    background:white;

    padding:18px 22px;

    border-left:5px solid var(--secondary);

    border-radius:10px;

    box-shadow:0 8px 18px rgba(0,0,0,.05);

}

/*==========================================================
CTA
==========================================================*/

.cta{

    padding:100px 0;

    background:linear-gradient(135deg,var(--primary),var(--secondary));

    color:white;

    text-align:center;

}

.cta h2{

    font-size:42px;

    margin-bottom:20px;

}

.cta p{

    max-width:700px;

    margin:0 auto 40px;

    font-size:19px;

}

.cta .btn-primary{

    background:white;

    color:var(--primary);

}

.cta .btn-primary:hover{

    background:#f2f2f2;

}

/*==========================================================
CONTACTO
==========================================================*/

.contact{

    padding:100px 0;

    background:white;

}

.contact h2{

    text-align:center;

    color:var(--primary);

    font-size:40px;

    margin-bottom:60px;

}

.contact-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.contact-grid>div{

    background:#f8f8f8;

    padding:35px;

    border-radius:18px;

    box-shadow:var(--shadow);

    transition:var(--transition);

}

.contact-grid>div:hover{

    transform:translateY(-8px);

}

.contact-grid h3{

    color:var(--primary);

    margin-bottom:15px;

}

.contact-grid p{

    color:#555;

    line-height:1.8;

}

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

footer{

    background:#173f18;

    color:white;

}

.footer{

    display:grid;

    grid-template-columns:2fr 1fr 1fr;

    gap:50px;

    padding:70px 0;

}

.footer h3{

    margin-bottom:15px;

}

.footer p{

    color:#d7d7d7;

}

.footer a{

    display:block;

    margin-bottom:12px;

    color:#d7d7d7;

    transition:var(--transition);

}

.footer a:hover{

    color:white;

    padding-left:5px;

}

.copyright{

    border-top:1px solid rgba(255,255,255,.12);

    text-align:center;

    padding:25px;

    color:#cccccc;

    font-size:14px;

}
/*==========================================================
RESPONSIVE
==========================================================*/

@media (max-width:992px){

.hero-grid,
.about-grid{

grid-template-columns:1fr;

gap:50px;

}

.hero-text{

text-align:center;

}

.hero-buttons{

justify-content:center;

}

.hero-data{

grid-template-columns:1fr;

}

.contact-grid{

grid-template-columns:1fr;

}

.footer{

grid-template-columns:1fr;

text-align:center;

}

.menu{

gap:20px;

}

.hero-text h1{

font-size:42px;

}

.about-text h2,
.services h2,
.contact h2,
.cta h2{

font-size:34px;

}

}

@media (max-width:768px){

header{

position:relative;

}

.navbar{

flex-direction:column;

height:auto;

padding:20px 0;

gap:20px;

}

.logo{

flex-direction:column;

text-align:center;

}

.menu{

flex-wrap:wrap;

justify-content:center;

gap:18px;

}

.btn-menu{

width:100%;

text-align:center;

}

.hero{

padding:70px 0;

}

.hero-text h1{

font-size:34px;

}

.hero-text p{

font-size:17px;

}

.hero-buttons{

flex-direction:column;

align-items:center;

}

.btn-primary,
.btn-secondary{

width:100%;

max-width:320px;

text-align:center;

}

.cards{

grid-template-columns:1fr;

}

.about{

padding:80px 0;

}

.services{

padding:80px 0;

}

.contact{

padding:80px 0;

}

.cta{

padding:80px 0;

}

.footer{

padding:60px 0;

}

}

@media (max-width:480px){

.container{

width:94%;

}

.hero-text h1{

font-size:30px;

}

.services h2,
.about-text h2,
.contact h2,
.cta h2{

font-size:28px;

}

.subtitle{

font-size:16px;

}

.card{

padding:30px 20px;

}

.contact-grid>div{

padding:25px;

}

}

/*==========================================================
ANIMACIONES
==========================================================*/

.card,
.hero-image img,
.about-image img,
.contact-grid>div{

transition:all .35s ease;

}

.hero-image img:hover,
.about-image img:hover{

transform:scale(1.02);

}

.card:hover .icon{

transform:rotate(10deg) scale(1.08);

transition:.3s;

}

/*==========================================================
SCROLLBAR
==========================================================*/

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#eeeeee;

}

::-webkit-scrollbar-thumb{

background:var(--secondary);

border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

background:var(--primary);

}

/*==========================================================
SELECCIÓN DE TEXTO
==========================================================*/

::selection{

background:var(--secondary);

color:white;

}

/*==========================================================
FOCUS ACCESIBILIDAD
==========================================================*/

a:focus,
button:focus{

outline:3px solid rgba(46,125,50,.3);

outline-offset:3px;

}

/*==========================================================
BOTÓN FLOTANTE WHATSAPP
==========================================================*/

.whatsapp{

position:fixed;

bottom:25px;

right:25px;

width:65px;

height:65px;

background:#25D366;

border-radius:50%;

display:flex;

justify-content:center;

align-items:center;

color:#fff;

font-size:30px;

box-shadow:0 10px 30px rgba(0,0,0,.25);

z-index:999;

transition:.3s;

}

.whatsapp:hover{

transform:scale(1.1);

background:#20ba5a;

}

/*==========================================================
IMÁGENES
==========================================================*/

.hero-image img,
.about-image img{

width:100%;

height:auto;

object-fit:cover;

}
/*====================================
CLASES UTILIZADAS POR JAVASCRIPT
====================================*/

header.scrolled{

    box-shadow:0 12px 30px rgba(0,0,0,.10);

}

.hidden{

    opacity:0;

    transform:translateY(45px);

    transition:all .8s ease;

}

.show{

    opacity:1;

    transform:translateY(0);

}

.menu a.active{

    color:var(--secondary);

    font-weight:700;

}

.whatsapp{

    transition:.3s;

}

.pulse{

    animation:pulse 1s;

}

@keyframes pulse{

0%{

transform:scale(1);

}

40%{

transform:scale(1.18);

}

100%{

transform:scale(1);

}

}
