*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--navy:#1a2744;--navy-light:#2a3d5e;--gold:#c4a265;--gold-light:#d4b87a;--gold-dark:#a8854a;--dark:#2c2c2c;--grey:#7a7a7a;--grey-light:#a0a0a0;--light:#d4d0c8;--cream:#f0ece4;--cream-light:#f5f2ec;--bg:#faf8f4;--white:#fdfcfa;--heading:'Cormorant Garamond',Georgia,serif;--body:'Outfit','Helvetica Neue',sans-serif;--mono:'Inconsolata',monospace;--margin:clamp(20px,5vw,80px);--wide:min(1100px,92vw);--narrow:min(700px,90vw)}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--body);color:var(--dark);background:var(--bg);line-height:1.7;overflow-x:hidden;font-weight:300}
a{color:inherit;text-decoration:none}img{display:block;width:100%;height:auto}
::selection{background:var(--navy);color:var(--white)}

.site-header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:0 var(--margin);background:var(--navy);height:64px}
.header-left{display:flex;align-items:center;gap:16px}
.logo{font-family:var(--heading);font-size:18px;font-weight:600;color:var(--white)}
.site-tagline{font-family:var(--mono);font-size:9px;color:rgba(255,255,255,.35);letter-spacing:2px;text-transform:uppercase}
.header-right{display:flex;align-items:center;gap:8px}
.site-nav{display:flex;gap:4px;align-items:center}
.site-nav a{font-family:var(--body);font-size:12px;font-weight:300;color:rgba(255,255,255,.5);letter-spacing:.8px;text-transform:uppercase;padding:8px 14px;transition:color .3s}
.site-nav a:hover{color:var(--white)}
.nav-cta{display:inline-flex;align-items:center;gap:6px;background:var(--gold);color:var(--navy)!important;padding:8px 18px;font-size:11px!important;font-weight:500!important;letter-spacing:1px;transition:all .2s;margin-left:8px}
.nav-cta:hover{background:var(--gold-light)}
.nav-cta svg{fill:var(--navy)}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;width:24px;height:18px;position:relative;z-index:200}
.menu-toggle span{display:block;width:100%;height:1px;background:var(--white);transition:.25s}
.menu-toggle span:first-child{margin-bottom:8px}
.nav-open .menu-toggle span:first-child{transform:rotate(45deg) translate(3px,3px)}
.nav-open .menu-toggle span:last-child{transform:rotate(-45deg) translate(3px,-3px)}
@media(max-width:768px){
.site-tagline{display:none}.menu-toggle{display:flex;flex-direction:column;justify-content:center}
.site-nav{position:fixed;top:0;right:-100%;width:80vw;max-width:320px;height:100vh;background:var(--navy);flex-direction:column;padding:100px 32px;gap:8px;transition:right .35s ease}
.site-nav a{font-size:14px;padding:12px 0}.nav-cta{margin-left:0;margin-top:16px;justify-content:center}
.nav-open .site-nav{right:0}}

.hero{position:relative;min-height:85vh;display:flex;align-items:center;padding:120px var(--margin) 80px;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(to right,rgba(26,39,68,.88) 0%,rgba(26,39,68,.7) 50%,rgba(26,39,68,.3) 100%)}
.hero-inner{position:relative;z-index:2;max-width:580px}
.hero-badge{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);background:rgba(196,162,101,.15);border:1px solid rgba(196,162,101,.4);padding:6px 16px;margin-bottom:28px}
.hero h1{font-family:var(--heading);font-size:clamp(34px,5vw,52px);font-weight:500;color:var(--white);line-height:1.15;margin-bottom:20px}
.hero-text{font-size:15px;font-weight:300;color:rgba(255,255,255,.7);max-width:460px;margin-bottom:36px;line-height:1.7}
.hero-cta{display:inline-flex;align-items:center;gap:10px;background:var(--gold);color:var(--navy);font-family:var(--body);font-size:13px;font-weight:500;letter-spacing:.5px;padding:14px 32px;transition:all .3s}
.hero-cta:hover{background:var(--gold-light);transform:translateY(-1px)}
.hero-cta svg{fill:var(--navy)}
.hero-info{display:flex;gap:28px;margin-top:40px;flex-wrap:wrap}
.hero-info-item{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:300;color:rgba(255,255,255,.5)}
.hero-info-item svg{stroke:var(--gold);fill:none}

.section-label{font-family:var(--mono);font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.section-title{font-family:var(--heading);font-size:clamp(28px,3.5vw,40px);font-weight:500;color:var(--navy);margin-bottom:16px;line-height:1.2}
.section-subtitle{font-size:15px;font-weight:300;color:var(--grey);max-width:520px}

.servicios{padding:80px var(--margin);background:var(--bg)}
.servicios-inner{max-width:var(--wide);margin:0 auto}
.servicios-header{text-align:center;margin-bottom:56px}
.servicios-header .section-subtitle{margin:0 auto}
.servicios-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.servicio-card{background:var(--white);border:1px solid rgba(0,0,0,.06);padding:32px 28px;transition:all .35s;position:relative;display:block}
.servicio-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:0;background:var(--gold);transition:height .35s}
.servicio-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.05);transform:translateY(-2px)}
.servicio-card:hover::before{height:100%}
.servicio-icon{margin-bottom:16px;display:block}.servicio-icon svg{width:28px;height:28px;stroke:var(--navy);fill:none;stroke-width:1.5}
.servicio-title{font-family:var(--heading);font-size:22px;font-weight:600;color:var(--navy);margin-bottom:12px}
.servicio-desc{font-size:14px;font-weight:300;color:var(--grey);line-height:1.7}
.servicio-link{display:inline-block;margin-top:16px;font-size:11px;font-weight:400;color:var(--gold-dark);letter-spacing:1px;text-transform:uppercase}

.about-section{padding:80px var(--margin);background:var(--cream)}
.about-inner{max-width:var(--wide);margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:center}
.about-text .section-title{margin-bottom:20px}
.about-text p{font-size:15px;font-weight:300;color:var(--grey);line-height:1.8;margin-bottom:14px}
.about-portrait{aspect-ratio:3/4;overflow:hidden;background:var(--cream-light)}
.about-portrait img{width:100%;height:100%;object-fit:cover}
.about-cta{display:inline-block;margin-top:16px;font-size:11px;font-weight:400;color:var(--navy);letter-spacing:1.5px;text-transform:uppercase;border-bottom:1px solid var(--navy);padding-bottom:3px}
@media(max-width:768px){.about-inner{grid-template-columns:1fr;gap:32px}.about-portrait{max-width:400px}}

.proceso{padding:80px var(--margin);background:var(--navy)}
.proceso-inner{max-width:var(--wide);margin:0 auto}
.proceso-header{text-align:center;margin-bottom:48px}
.proceso-header .section-title{color:var(--white)}
.proceso-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.08)}
.proceso-step{text-align:center;padding:40px 28px;background:var(--navy)}
.proceso-num{font-family:var(--mono);font-size:10px;color:var(--gold);letter-spacing:2px;margin-bottom:20px}
.proceso-step-icon{margin-bottom:16px}.proceso-step-icon svg{width:28px;height:28px;stroke:var(--gold);fill:none;stroke-width:1.5}
.proceso-step h3{font-family:var(--heading);font-size:20px;font-weight:500;color:var(--white);margin-bottom:10px}
.proceso-step p{font-size:13px;font-weight:300;color:rgba(255,255,255,.5);line-height:1.7}
@media(max-width:640px){.proceso-grid{grid-template-columns:1fr}}

.servicio-page{padding:100px var(--margin) 60px}
.servicio-page-inner{max-width:var(--narrow);margin:0 auto}
.back-link{font-size:12px;color:var(--grey-light);display:inline-block;margin-bottom:32px;transition:color .2s}
.back-link:hover{color:var(--navy)}
.servicio-page-icon{margin-bottom:20px}.servicio-page-icon svg{width:36px;height:36px;stroke:var(--navy);fill:none;stroke-width:1.5}
.servicio-page h1{font-family:var(--heading);font-size:clamp(30px,4vw,44px);font-weight:500;color:var(--navy);margin-bottom:8px}
.servicio-page .credencial,.about-page-text .credencial{font-size:12px;font-weight:300;color:var(--grey-light);margin-bottom:32px;display:block}
.servicio-page .desc{font-size:16px;font-weight:300;color:var(--grey);line-height:1.8;margin-bottom:36px}
.servicio-page .desc p{margin-bottom:16px}
.que-hacemos{margin-bottom:40px}
.que-hacemos h3{font-size:11px;font-weight:400;letter-spacing:2px;text-transform:uppercase;color:var(--navy);margin-bottom:16px}
.que-hacemos ul{list-style:none;padding:0}
.que-hacemos li{font-size:15px;font-weight:300;color:var(--dark);padding:12px 0;border-bottom:1px solid rgba(0,0,0,.05);padding-left:24px;position:relative}
.que-hacemos li::before{content:'';position:absolute;left:0;top:18px;width:8px;height:8px;border:1.5px solid var(--gold);border-radius:50%}
.faq-box{background:var(--cream);padding:32px;margin-bottom:40px}
.faq-box h4{font-family:var(--heading);font-size:20px;font-weight:500;color:var(--navy);margin-bottom:12px}
.faq-box p{font-size:14px;font-weight:300;color:var(--grey);line-height:1.7}
.servicio-cta{display:inline-flex;align-items:center;gap:10px;background:var(--gold);color:var(--navy);font-size:13px;font-weight:500;padding:14px 28px;transition:all .3s}
.servicio-cta:hover{background:var(--gold-light)}
.servicio-cta svg{fill:var(--navy)}

.about-page{padding:100px var(--margin) 60px}
.about-page-inner{max-width:var(--wide);margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:start}
.about-page-portrait{aspect-ratio:3/4;overflow:hidden;background:var(--cream);position:sticky;top:100px}
.about-page-portrait img{width:100%;height:100%;object-fit:cover}
.about-page-text h1{font-family:var(--heading);font-size:clamp(30px,4vw,42px);font-weight:500;color:var(--navy);margin-bottom:6px}
.about-page-text p{font-size:15px;font-weight:300;color:var(--grey);line-height:1.8;margin-bottom:14px}
.about-badges{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}
.about-badge{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:300;color:var(--navy);background:var(--cream);padding:8px 14px}
.about-badge svg{stroke:var(--gold);fill:none}
@media(max-width:768px){.about-page-inner{grid-template-columns:1fr}.about-page-portrait{position:static;max-width:400px}}

.contact-page{padding:100px var(--margin) 60px}
.contact-inner{max-width:var(--wide);margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:start}
.contact-info h1{font-family:var(--heading);font-size:clamp(30px,4vw,42px);font-weight:500;color:var(--navy);margin-bottom:12px}
.contact-info .intro{font-size:15px;font-weight:300;color:var(--grey);margin-bottom:36px;line-height:1.7}
.contact-links{display:flex;flex-direction:column;border-top:1px solid rgba(0,0,0,.06)}
.contact-link{display:flex;align-items:center;gap:14px;padding:18px 0;border-bottom:1px solid rgba(0,0,0,.06);transition:padding-left .2s}
.contact-link:hover{padding-left:8px}
.contact-link svg{stroke:var(--gold);fill:none;flex-shrink:0}
.contact-label{font-size:10px;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey-light);display:block}
.contact-value{font-size:14px;font-weight:300;color:var(--navy)}
.contact-form{background:var(--cream);padding:36px}
.contact-form h3{font-family:var(--heading);font-size:24px;font-weight:500;color:var(--navy);margin-bottom:24px}
.form-row{margin-bottom:16px}
.form-row label{display:block;font-size:10px;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey);margin-bottom:6px}
.form-row input,.form-row select,.form-row textarea{width:100%;padding:12px 14px;border:1px solid rgba(0,0,0,.1);font-family:var(--body);font-size:14px;font-weight:300;background:var(--white);color:var(--dark);border-radius:0;-webkit-appearance:none}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--navy)}
.form-row textarea{min-height:100px;resize:vertical}
.form-submit{width:100%;padding:14px;border:none;background:var(--navy);color:var(--white);font-family:var(--body);font-size:12px;font-weight:400;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:background .2s}
.form-submit:hover{background:var(--navy-light)}
.form-msg{padding:12px;font-size:13px;margin-top:12px;display:none}
.form-msg.ok{display:block;background:#e8f5e9;color:#2e7d32}
.form-msg.err{display:block;background:#fbe9e7;color:#c0392b}
@media(max-width:768px){.contact-inner{grid-template-columns:1fr}}

.site-footer{padding:40px var(--margin);background:var(--navy)}
.footer-inner{max-width:var(--wide);margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:300;color:rgba(255,255,255,.35)}
.footer-links{display:flex;gap:20px}
.footer-links a,.footer-links span{color:rgba(255,255,255,.35);transition:color .2s}
.footer-links a:hover{color:var(--gold)}
@media(max-width:640px){.footer-inner{flex-direction:column;gap:8px;text-align:center}}

.wa-float{position:fixed;bottom:24px;right:24px;z-index:90;display:flex;align-items:center;gap:10px;background:var(--navy);color:var(--white);padding:14px 20px;font-size:12px;font-weight:400;box-shadow:0 4px 20px rgba(0,0,0,.15);transition:all .3s}
.wa-float:hover{background:var(--navy-light);transform:translateY(-2px)}
.wa-float svg{fill:var(--gold)}
.wa-float-text{display:inline}
@media(max-width:640px){.wa-float{padding:14px}.wa-float-text{display:none}}

body.reveal-ready .servicio-card,body.reveal-ready .proceso-step{opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease}
body.reveal-ready .servicio-card.visible,body.reveal-ready .proceso-step.visible{opacity:1;transform:translateY(0)}
@media print{.site-header,.site-footer,.wa-float{display:none}body{background:#fff}}
