:root{
  --carbon:#1A1A1A;
  --white:#FFFFFF;
  --gray:#F5F5F5;
  --line:#E4E4E4;
  --gold:#C5A059;
  --font-head:'Montserrat', sans-serif;
  --font-serif:'Playfair Display', serif;
  --font-body:'Roboto', sans-serif;
  --maxw:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  font-weight:300;
  color:var(--carbon);
  background:var(--white);
  line-height:1.6;
}

/* language toggling */
body.lang-es [data-en]{display:none !important;}
body.lang-en [data-es]{display:none !important;}

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

.container{max-width:var(--maxw);margin:0 auto;padding:0 28px;}

h1,h2,h3{
  font-family:var(--font-head);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.06em;
  margin:0 0 18px;
  line-height:1.25;
}

h1.serif,h2.serif{
  font-family:var(--font-serif);
  font-weight:600;
  text-transform:none;
  letter-spacing:0;
}

p{margin:0 0 16px;font-weight:300;}

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

/* placeholder banner */
.placeholder-banner{
  background:var(--carbon);
  color:var(--white);
  text-align:center;
  font-size:13px;
  padding:8px 16px;
  font-family:var(--font-body);
  letter-spacing:0.02em;
}

/* top bar */
.top-bar{background:var(--carbon);color:#cfcfcf;}
.top-bar-inner{display:flex;justify-content:flex-end;gap:24px;padding:8px 28px;font-family:var(--font-head);font-size:12px;letter-spacing:0.04em;}
.top-bar-inner a{color:#cfcfcf;}
.top-bar-inner a:hover{color:var(--gold);}

/* header */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,0.95);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 28px;gap:24px;
}
.brand-logo{height:40px;width:auto;}
.main-nav{display:flex;align-items:center;gap:28px;font-size:13px;text-transform:uppercase;letter-spacing:0.08em;font-family:var(--font-head);font-weight:500;}
.main-nav a{padding:6px 0;border-bottom:1px solid transparent;transition:border-color .2s;}
.main-nav a:hover{border-color:var(--carbon);}
.nav-cta{background:var(--carbon);color:var(--white) !important;padding:10px 20px !important;border-radius:2px;}
.nav-cta:hover{opacity:.85;border-color:transparent !important;}

.lang-toggle{
  border:1px solid var(--carbon);background:none;color:var(--carbon);
  font-family:var(--font-head);font-weight:600;font-size:12px;letter-spacing:0.08em;
  padding:8px 12px;cursor:pointer;border-radius:2px;margin-left:12px;
}
.lang-toggle:hover{background:var(--carbon);color:var(--white);}

.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.nav-toggle span{width:24px;height:2px;background:var(--carbon);display:block;}

/* hero */
.hero{padding:150px 0 90px;background:var(--white);text-align:center;}
.hero-inner{max-width:820px;margin:0 auto;}
.location-badge{font-family:var(--font-head);font-size:12px;letter-spacing:0.24em;font-weight:600;color:var(--gold);margin-bottom:20px;}
.eyebrow{font-family:var(--font-head);font-size:13px;letter-spacing:0.22em;font-weight:600;color:var(--gold);margin:18px 0 26px;}
.hero h1{font-size:clamp(34px,6vw,64px);margin-bottom:6px;}
.hero-sub{font-size:18px;max-width:640px;color:#3a3a3a;margin:0 auto 8px;}
.hero-actions{display:flex;gap:16px;margin-top:32px;flex-wrap:wrap;justify-content:center;}

.btn{
  display:inline-block;padding:14px 28px;font-family:var(--font-head);
  font-size:13px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;
  border-radius:2px;cursor:pointer;border:1px solid var(--carbon);transition:all .2s;
}
.btn-primary{background:var(--carbon);color:var(--white);}
.btn-primary:hover{background:#000;}
.btn-ghost{background:transparent;color:var(--carbon);}
.btn-ghost:hover{background:var(--carbon);color:var(--white);}

/* trust bar */
.trust-bar{padding:0 0 64px;}
.trust-bar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.trust-item{background:var(--white);padding:28px 32px;border-top:3px solid var(--gold);}
.trust-item h3{font-size:16px;margin-bottom:8px;}
.trust-item p{font-size:14px;color:#4a4a4a;margin-bottom:0;}

/* pillars */
.pillars{background:var(--gray);padding:64px 0;}
.pillars-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
.pillar-num{font-family:var(--font-head);font-size:13px;color:var(--gold);letter-spacing:0.1em;}
.pillar h3{font-size:16px;margin-top:10px;}
.pillar p{font-size:14px;color:#4a4a4a;margin-bottom:0;}

/* section generic */
section{padding:96px 0;}
.section-eyebrow{font-family:var(--font-head);font-size:12px;letter-spacing:0.22em;font-weight:600;color:var(--gold);margin-bottom:12px;}
section h2{font-size:clamp(26px,3.4vw,38px);max-width:640px;margin-bottom:16px;}
.section-intro{font-size:16px;color:#4a4a4a;max-width:640px;margin-bottom:40px;}
.section-note{font-size:13px;color:#8a8a8a;font-style:italic;max-width:640px;}
.section-note-inline{font-size:13px;color:#8a8a8a;font-style:italic;}

/* services */
.services-list{display:flex;flex-direction:column;gap:64px;margin-top:48px;}
.service-row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.service-row.reverse .service-photo{order:2;}
.service-row.reverse .service-copy{order:1;}
.service-photo{aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);}
.service-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.service-num{font-family:var(--font-serif);font-size:22px;color:var(--gold);margin-bottom:8px;display:block;}
.service-copy h3{font-size:22px;margin-bottom:4px;}
.service-tag{font-family:var(--font-head);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:#8a8a8a;font-weight:600;margin-bottom:16px;}
.service-copy > p{font-size:14px;color:#4a4a4a;}
.service-copy ul{list-style:none;margin:16px 0 0;padding:16px 0 0;border-top:1px solid var(--line);}
.service-copy li{font-size:13px;color:#4a4a4a;padding:5px 0 5px 18px;position:relative;}
.service-copy li::before{content:"—";position:absolute;left:0;color:var(--gold);}
.service-row-featured .service-copy{background:var(--carbon);color:var(--white);padding:32px;}
.service-row-featured h3,.service-row-featured .service-num{color:var(--white);}
.service-row-featured .service-tag{color:var(--gold);}
.service-row-featured .service-copy > p{color:#d5d5d5;}
.service-row-featured ul{border-top-color:#3a3a3a;}
.service-row-featured li{color:#d5d5d5;}

/* comparison table */
.table-wrap{overflow-x:auto;margin-top:32px;}
.comparison-table{width:100%;border-collapse:collapse;min-width:640px;}
.comparison-table th,.comparison-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:14px;}
.comparison-table thead th{font-family:var(--font-head);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:#8a8a8a;font-weight:600;border-bottom:2px solid var(--carbon);}
.comparison-table thead th:first-child{color:var(--gold);}
.comparison-table td.yes{color:var(--gold);font-weight:700;text-align:center;}
.comparison-table td.no{color:#c8c8c8;text-align:center;}

/* projects */
.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.project-card{
  border:1px solid var(--line);background:var(--white);overflow:hidden;
}
.project-art{aspect-ratio:4/3;border-bottom:1px solid var(--line);overflow:hidden;}
.project-art svg,.project-art img{width:100%;height:100%;display:block;object-fit:cover;}
.project-card .project-tag{
  font-family:var(--font-head);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--gold);display:block;margin:20px 24px 0;
}
.project-card h3{font-size:16px;margin:6px 24px 4px;}
.project-card p{font-size:13px;color:#8a8a8a;margin:0 24px 20px;}

/* about */
.about{background:var(--gray);}
.about-inner{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.about-photo{aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);}
.about-photo img{width:100%;height:100%;object-fit:cover;display:block;}

/* contact */
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.contact-photo{aspect-ratio:4/3;overflow:hidden;margin-bottom:28px;border:1px solid var(--line);}
.contact-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact-details{list-style:none;padding:0;margin:24px 0 0;font-size:15px;}
.contact-details li{padding:10px 0;border-bottom:1px solid var(--line);display:flex;gap:8px;}
.contact-details a{border-bottom:1px solid var(--carbon);}

.contact-form{display:flex;flex-direction:column;gap:18px;background:var(--gray);padding:32px;border:1px solid var(--line);}
.contact-form label{display:flex;flex-direction:column;gap:8px;font-family:var(--font-head);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;font-weight:600;}
.contact-form input,.contact-form textarea{
  font-family:var(--font-body);font-size:15px;padding:12px;border:1px solid var(--line);background:var(--white);
  border-radius:2px;font-weight:300;
}
.contact-form button{margin-top:8px;align-self:flex-start;}
.hp-field{position:absolute;left:-9999px;}
body.lang-en .contact-form button[data-es],
body.lang-es .contact-form button[data-en]{display:none !important;}

/* whatsapp floating button */
.whatsapp-fab{
  position:fixed;right:24px;bottom:24px;z-index:60;
  width:56px;height:56px;border-radius:50%;
  background:#25D366;color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,0.25);
  transition:transform .2s;
}
.whatsapp-fab:hover{transform:scale(1.08);}

/* footer */
.site-footer{background:var(--carbon);color:#b5b5b5;padding:40px 0;text-align:center;}
.footer-logo{height:28px;margin:0 auto 16px;filter:brightness(0) invert(1);opacity:.9;}
.site-footer p{font-size:13px;margin:0;}

/* responsive */
@media (max-width:900px){
  .pillars-grid{grid-template-columns:repeat(2,1fr);}
  .process-steps{grid-template-columns:repeat(2,1fr);}
  .projects-grid{grid-template-columns:1fr;}
  .contact-inner{grid-template-columns:1fr;}
  .trust-bar-grid{grid-template-columns:1fr;}
  .testimonials-grid{grid-template-columns:1fr;}
  .top-bar-inner{justify-content:center;flex-wrap:wrap;gap:8px 20px;}
  .service-row{grid-template-columns:1fr;gap:24px;}
  .service-row.reverse .service-photo{order:0;}
  .service-row.reverse .service-copy{order:0;}
  .about-inner{grid-template-columns:1fr;}
}
@media (max-width:760px){
  .main-nav{
    position:fixed;top:69px;left:0;right:0;bottom:0;background:var(--white);
    flex-direction:column;align-items:flex-start;padding:32px 28px;gap:20px;
    transform:translateX(100%);transition:transform .25s ease;font-size:16px;
  }
  .main-nav.open{transform:translateX(0);}
  .nav-toggle{display:flex;}
  .pillars-grid{grid-template-columns:1fr;}
  .hero{padding:80px 0 60px;}
}
