/* =========================================================
   MODERN PREMIUM LANDING PAGE CSS
   Optimized for Desktop / Tablet / Mobile
   ========================================================= */

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

:root{
--primary:#58d0d2;
--primary-dark:#46bfc1;

--dark:#24324a;
--text:#5b6a7e;
--bg:#f4f8fb;

--white:#ffffff;

--shadow-sm:0 8px 24px rgba(0,0,0,.05);
--shadow-md:0 18px 40px rgba(0,0,0,.08);
--shadow-lg:0 30px 70px rgba(31,55,90,.14);

--radius-sm:12px;
--radius-md:20px;
--radius-lg:32px;

--transition:.28s ease;
}

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

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

html{
scroll-behavior:smooth;
}

body{
font-family:'Inter',sans-serif;
background:
radial-gradient(circle at top left,#ffffff 0%,#eef6fb 45%,#edf2f8 100%);
color:var(--text);
line-height:1.7;
overflow-x:hidden;
}

/* =========================
   GLOBAL
========================= */

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

.container{
width:min(1180px,92%);
margin:auto;
}

a,
button,
.card,
.stat,
input,
textarea{
transition:all var(--transition);
}

h1,h2{
font-family:'Playfair Display',serif;
color:var(--dark);
line-height:1.1;
}

h1{
font-size:clamp(42px,7vw,76px);
margin-bottom:24px;
letter-spacing:-2px;
}

h2{
font-size:clamp(28px,4vw,42px);
margin-bottom:24px;
letter-spacing:-1px;
}

p{
font-size:17px;
}

/* =========================
   NAVBAR
========================= */

.navbar{
position:sticky;
top:0;
z-index:1000;

background:rgba(255,255,255,.78);
backdrop-filter:blur(14px);

border-bottom:1px solid rgba(227,237,244,.7);
}

.nav-content{
display:flex;
justify-content:space-between;
align-items:center;
padding:18px 0;
}

.logo{
width:180px;
}

nav{
display:flex;
gap:30px;
align-items:center;
}

nav a{
text-decoration:none;
color:var(--text);
font-weight:500;
position:relative;
}

nav a::after{
content:'';
position:absolute;
left:0;
bottom:-6px;
width:0%;
height:2px;
background:var(--primary);
transition:width .25s ease;
}

nav a:hover{
color:var(--dark);
}

nav a:hover::after{
width:100%;
}

/* =========================
   BUTTONS
========================= */

.btn-nav,
.btn-primary,
.contact-form button{
background:var(--primary);
color:white;
padding:14px 24px;
border-radius:14px;
text-decoration:none;
font-weight:600;
border:none;
cursor:pointer;

box-shadow:
0 10px 24px rgba(88,208,210,.22);
}

.btn-nav:hover,
.btn-primary:hover,
.contact-form button:hover{
background:var(--primary-dark);
transform:translateY(-2px);
box-shadow:
0 18px 36px rgba(88,208,210,.28);
}

.btn-secondary{
border:2px solid rgba(88,208,210,.45);
padding:12px 24px;
border-radius:14px;
text-decoration:none;
color:var(--dark);
font-weight:600;

background:rgba(255,255,255,.55);
backdrop-filter:blur(10px);
}

.btn-secondary:hover{
background:white;
transform:translateY(-2px);
box-shadow:var(--shadow-sm);
}

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

.hero{
padding:130px 0 100px;
position:relative;
overflow:hidden;
}

.hero::before{
content:'';
position:absolute;
width:420px;
height:420px;
background:var(--primary);
border-radius:50%;
filter:blur(120px);
opacity:.16;

top:-120px;
right:-80px;
pointer-events:none;
}

.hero-grid,
.about-grid,
.approach-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:70px;
align-items:center;
}

.contact-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:70px;
align-items:center;
}

.contact-grid > div{
max-width:620px;
}

.hero-text,
.contact-text{
font-size:20px;
margin-bottom:36px;
max-width:540px;
}

.eyebrow,
.section-tag{
color:var(--primary);
font-weight:700;
margin-bottom:14px;
letter-spacing:.8px;
text-transform:uppercase;
font-size:14px;
}

.hero-buttons{
display:flex;
gap:18px;
flex-wrap:wrap;
}

.hero-card{
height:560px;
border-radius:var(--radius-lg);

background-image:url('images/foto3.png');
background-size:cover;
background-position:center;

position:relative;

box-shadow:var(--shadow-lg);

overflow:hidden;
}

.hero-image{
display:none;
}

.hero-card::before{
content:'';
position:absolute;
width:320px;
height:320px;
background:white;
border-radius:50%;
opacity:.22;
top:-80px;
right:-60px;
}


.circle{
width:220px;
height:220px;
border-radius:50%;
border:28px solid rgba(55,100,170,.18);
z-index:2;
}

.call-card{
position:absolute;
bottom:40px;
left:40px;
right:40px;

background:rgba(255,255,255,.92);
backdrop-filter:blur(14px);

padding:14px;
border-radius:10px;

box-shadow:var(--shadow-md);

z-index:2;
}

/* =========================
   SECTIONS
========================= */

.about,
.services,
.contact-section{
padding:120px 0;
}

.about-visual{
height:580px;

background-image:url('images/foto2.png');
background-size:cover;
background-position:center;

border-radius:var(--radius-lg);

position:relative;

overflow:hidden;

box-shadow:var(--shadow-lg);
}

.about-visual::before{
content:'';
position:absolute;
width:300px;
height:300px;
background:white;
opacity:.15;
border-radius:50%;
top:-100px;
left:-80px;
}

.stat{
    position:absolute;

    background:rgba(255,255,255,.92);
    backdrop-filter:blur(12px);

    padding:14px 18px;

    border-radius:16px;

    box-shadow:var(--shadow-md);

    font-size:28px;
    font-weight:700;

    color:var(--primary);

    z-index:10;
}

.stat span{
    display:block;
    font-size:14px;
    font-weight:500;
    color:var(--text);
    line-height:1.3;
}

.stat.top{
top:28px;
right:28px;
z-index:10;
}

.stat.bottom{
bottom:28px;
left:28px;
z-index:10;
}

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

.cards{
display:grid;
grid-template-columns:1fr 1fr;
gap:28px;
margin-top:56px;
}

.card{
background:rgba(255,255,255,.72);

backdrop-filter:blur(12px);

padding:42px;

border-radius:28px;

border:1px solid rgba(255,255,255,.45);

box-shadow:var(--shadow-sm);
}

.card:hover{
transform:translateY(-8px);
box-shadow:var(--shadow-lg);
}

.center{
text-align:center;
}

/* =========================
   APPROACH
========================= */

.approach{
background:
linear-gradient(135deg,#3f679f,#345885);

color:white;

padding:120px 0;

position:relative;
overflow:hidden;
}

.approach::before{
content:'';
position:absolute;
width:420px;
height:420px;
background:var(--primary);
border-radius:50%;
filter:blur(140px);
opacity:.12;

bottom:-120px;
left:-80px;
}

.approach h2{
color:white;
}

.light{
color:#9ff1ef;
}

.approach ul{
padding-left:20px;
margin-top:28px;
}

.approach li{
margin-bottom:14px;
}

.expect-box{
background:rgba(255,255,255,.08);

backdrop-filter:blur(10px);

padding:42px;

border-radius:30px;

border:1px solid rgba(255,255,255,.08);
}

.step{
display:flex;
gap:18px;
margin-top:26px;
align-items:flex-start;
}

.step span{
min-width:54px;
height:54px;

background:#9ff1ef;
color:#274565;

border-radius:50%;

display:flex;
align-items:center;
justify-content:center;

font-weight:700;
}

/* =========================
   CONTACT
========================= */

.contact-form{
background:rgba(255,255,255,.82);

backdrop-filter:blur(16px);

padding:42px;

border-radius:30px;

display:flex;
flex-direction:column;
gap:18px;

box-shadow:var(--shadow-lg);

max-width:560px;
margin-left:auto;
width:100%;
}

.contact-form input,
.contact-form textarea{
padding:18px;

border-radius:16px;

border:1px solid #d7e2ee;

font-family:inherit;
font-size:16px;

background:white;
}

.contact-form input:focus,
.contact-form textarea:focus{
outline:none;

border-color:var(--primary);

box-shadow:
0 0 0 4px rgba(88,208,210,.14);
}

.contact-info p{
margin-bottom:10px;
}

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

footer{
background:rgba(255,255,255,.75);

backdrop-filter:blur(12px);

padding:20px 0;

border-top:1px solid #e6eef5;
}

.footer-content{
display:flex;
justify-content:space-between;
align-items:center;
gap:30px;
}

.footer-content img{
width:130px;
}

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

.footer-links{
display:flex;
align-items:center;
justify-content:center;
}

.footer-links a{
color:var(--text);
text-decoration:none;
font-weight:600;
transition:all var(--transition);
}

.footer-links a:hover{
color:var(--primary);
}

/* =========================
   PRIVACY MODAL
========================= */

.modal{
display:none;
position:fixed;
z-index:9999;
left:0;
top:0;
width:100%;
height:100%;
background:rgba(0,0,0,.55);
backdrop-filter:blur(4px);
}

.modal-content{
background:white;
width:90%;
max-width:760px;
margin:5% auto;
padding:40px;
border-radius:24px;
max-height:80vh;
overflow-y:auto;
box-shadow:var(--shadow-lg);
}

.modal-content h2{
margin-bottom:24px;
}

.modal-content h3{
margin-top:24px;
margin-bottom:10px;
color:var(--dark);
}

.modal-content p{
margin-bottom:14px;
line-height:1.8;
}

.cerrar{
float:right;
font-size:32px;
font-weight:bold;
cursor:pointer;
color:var(--text);
transition:.2s;
}

.cerrar:hover{
color:var(--primary);
}

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

@media(max-width:1100px){

.hero-grid,
.about-grid,
.approach-grid,
.contact-grid{
gap:48px;
}

.hero{
padding-top:110px;
}

}

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

@media(max-width:900px){

.hero-grid,
.about-grid,
.approach-grid,
.contact-grid,
.cards{
grid-template-columns:1fr;
}

nav{
display:none;
}

.hero{
padding:90px 0 70px;
}

.about,
.services,
.approach,
.contact-section{
padding:90px 0;
}

.hero-card,
.about-visual{
height:420px;
}

.hero-buttons{
flex-direction:column;
align-items:flex-start;
}

.contact-form{
padding:30px;
}

.footer-content{
flex-direction:column;
text-align:center;
}

}

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

@media(max-width:560px){

.container{
width:min(100%,92%);
}

.hero-card,
.about-visual{
height:360px;
border-radius:24px;
}

.call-card{
left:18px;
right:18px;
bottom:18px;
padding:18px;
}

.card{
padding:28px;
}

.stat{
font-size:32px;
padding:18px;
}

.hero-text,
.contact-text{
font-size:18px;
}

.btn-nav,
.btn-primary,
.btn-secondary,
.contact-form button{
width:100%;
text-align:center;
justify-content:center;
}

}


/* =========================
   MOBILE CONTACT FIX
========================= */

@media(max-width:900px){

.contact-form{
margin:0 auto;
max-width:100%;
}

}

/* =========================
   RESPONSIVE REFINEMENTS - CODEX
========================= */

html,
body{
width:100%;
max-width:100%;
}

section{
width:100%;
overflow:hidden;
}

img{
height:auto;
}

h1,
h2{
letter-spacing:0;
}

.hero-grid,
.about-grid,
.approach-grid,
.contact-grid,
.cards{
min-width:0;
}

.hero-grid > *,
.about-grid > *,
.approach-grid > *,
.contact-grid > *,
.cards > *{
min-width:0;
}

.hero-card{
height:min(560px,62vw);
min-height:460px;
}

.about-visual{
height:min(580px,64vw);
min-height:460px;
}

.contact-form input,
.contact-form textarea{
width:100%;
min-width:0;
}

.contact-form textarea{
resize:vertical;
}

@media(max-width:900px){

.nav-content{
flex-direction:column;
gap:16px;
padding:14px 0;
}

.logo{
width:160px;
}

nav{
display:grid;
grid-template-columns:repeat(4,max-content);
justify-content:center;
gap:12px 18px;
width:100%;
overflow-x:auto;
padding-bottom:4px;
}

nav a{
white-space:nowrap;
font-size:15px;
}

nav .btn-nav{
padding:10px 16px;
}

.hero-grid,
.about-grid,
.approach-grid,
.contact-grid,
.cards{
grid-template-columns:1fr;
}

.hero-grid,
.about-grid,
.approach-grid,
.contact-grid{
gap:38px;
}

.hero{
padding:70px 0 70px;
}

.about,
.services,
.approach,
.contact-section{
padding:90px 0;
}

.hero-card,
.about-visual{
height:420px;
min-height:0;
}

.hero-buttons{
flex-direction:row;
align-items:center;
}

.contact-form{
margin:0 auto;
max-width:100%;
padding:30px;
}

.footer-content{
flex-direction:column;
text-align:center;
}

}

@media(max-width:560px){

.container{
width:min(100%,92%);
}

h1{
font-size:clamp(34px,11vw,42px);
}

h2{
font-size:clamp(27px,8vw,34px);
}

p{
font-size:16px;
}

.nav-content{
align-items:center;
}

nav{
grid-template-columns:repeat(2,minmax(0,1fr));
overflow:visible;
}

nav a{
text-align:center;
font-size:14px;
}

nav .btn-nav{
width:auto;
}

.hero-card,
.about-visual{
height:340px;
border-radius:24px;
}

.call-card{
left:18px;
right:18px;
bottom:18px;
padding:18px;
}

.call-card h3{
font-size:17px;
line-height:1.25;
}

.call-card p{
font-size:14px;
line-height:1.45;
}

.card{
padding:28px;
}

.stat{
font-size:24px;
padding:12px 14px;
}

.stat span{
font-size:12px;
}

.hero-text,
.contact-text{
font-size:17px;
margin-bottom:28px;
}

.btn-primary,
.btn-secondary,
.contact-form button{
width:100%;
text-align:center;
justify-content:center;
}

.card,
.expect-box,
.contact-form{
border-radius:22px;
}

.modal-content{
width:92%;
margin:18px auto;
padding:28px 22px;
max-height:calc(100vh - 36px);
}

}

@media(max-width:380px){

.container{
width:min(100%,90%);
}

.logo{
width:145px;
}

nav{
gap:8px 10px;
}

.hero-card,
.about-visual{
height:300px;
}

.stat.top{
top:16px;
right:16px;
}

.stat.bottom{
bottom:16px;
left:16px;
}

.card,
.expect-box,
.contact-form{
padding:24px 20px;
}

.step{
gap:14px;
}

.step span{
min-width:44px;
height:44px;
}

}


.modal-content ul{
margin:0 0 18px 24px;
line-height:1.8;
}

.modal-content li{
margin-bottom:6px;
}
