
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap');
:root{ --hero-overlay: rgba(10,42,67,.45); 
  --navy: #0A2A43;
  --gold: #D4AF37;
  --ink: #1C1C1C;
  --muted: #6b7280;
  --bg: #ffffff;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--navy)}

.container{max-width:1200px;margin:0 auto;padding:0 20px}

.navbar{position:fixed;top:0;left:0;width:100%;background:#fff;border-bottom:1px solid #e5e7eb;z-index:1000}
.navbar .container{display:flex;align-items:center; justify-content:center;justify-content:space-between;height:64px}
.logo .lf-logo{font-weight:700;letter-spacing:.5px;color:var(--navy)}
.navbar nav a{margin-left:18px;text-decoration:none;color:#111827;font-weight:600}
.navbar nav a:hover{color:var(--navy)}

.hero{ padding-top: 110px; padding-bottom: 120px; height:66vh;min-height:520px;background: linear-gradient(var(--hero-overlay), var(--hero-overlay)), url('../img/hero-office-1.png') center/cover no-repeat;background: linear-gradient(var(--hero-overlay), var(--hero-overlay)), url('../img/hero-office-1.png') center/cover no-repeat;display:flex;align-items:center; justify-content:center;justify-content:center;position:relative;margin-top:64px}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.45))}
.hero .overlay{position:relative;z-index:1;text-align:center;color:#fff;padding:0 20px}
.hero h1{font-size:2.4rem;line-height:1.2;margin:0 0 10px}
.hero p{max-width:760px;margin:0 auto 18px;font-size:1.1rem}
.btn{display:inline-block;padding:12px 24px;border-radius:10px;text-decoration:none;font-weight:700}
.btn-primary{background:var(--gold);color:#000}

.section{padding:84px 0}
.section h2{font-size:2rem;margin:0 0 18px;color:var(--navy)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:#fff;border:0.5px solid #E6E6E6;border-radius:14px;box-shadow:0 6px 18px rgba(0,0,0,.12);padding:18px}
.card h3{margin:0 0 8px}
.about p{max-width:820px}

.contacto .contact-card{background:var(--navy);color:#fff;border-radius:14px;padding:28px}
.contacto .contact-info{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.contacto a{color:#fff;text-decoration:underline}

.footer{border-top:1px solid #e5e7eb;padding:28px 0;color:#374151}

/* Mobile navbar fix */
@media (max-width: 768px){
  .navbar .container{padding:0 12px}
  .navbar nav a{margin-left:12px;font-size:0.95rem}
  .hero h1{font-size:1.9rem}
  .grid-3{grid-template-columns:1fr}
}


/* NAVBAR LOGO SIZING */
.nav-logo {
  height: 42px;
  width: auto;
  display:inline-block;
}
@media (max-width: 768px) {
  .nav-logo {
    height: 34px;
  }
}


/* Bigger logo */
.nav-logo { height:56px !important; }
@media (max-width:768px){ .nav-logo{height:40px !important;} }

/* Hamburger */
.nav-toggle{
  display:none;
  background:none;
  border:none;
  font-size:28px;
  cursor:pointer;
  color:var(--navy);
}
.nav-menu{display:flex;}
@media(max-width:768px){
  .nav-toggle{display:block;}
  .nav-menu{
    display:none;
    flex-direction:column;
    background:#fff;
    position:absolute;
    top:64px;
    right:0;
    padding:12px 16px;
    border:1px solid #e5e7eb;
    border-radius:8px;
  }
  .nav-menu a{margin:8px 0;}
  .nav-menu.open{display:flex;}
}


/* Grid-4 layout */
.grid-4 {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
@media(max-width:992px){
  .grid-4{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:600px){
  .grid-4{
    grid-template-columns:1fr;
  }
}


/* Mejoras de ritmo visual servicios */
.section.container h2 { margin-bottom: 32px; }
.grid-4 .card { padding:24px 28px; }

/* Mobile spacing */
@media(max-width:600px){
  .grid-4 .card { padding:20px; }
}


/* Mejoras sección Nosotros */
.about p {
  margin-bottom: 14px;
  max-width: 820px;
}


/* Card consistency for Nosotros */
#nosotros .card {
  background:#fff;
  border:0.5px solid #E6E6E6;
  border-radius:14px;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}

/* Section spacing adjustment */
#metodo .about p {
  max-width:820px;
  margin-bottom:14px;
}


/* WhatsApp floating button */
.whatsapp-float {
  position: fixed;
  bottom: 22px;
  right: 22px;
  background: #25D366;
  color: #fff;
  border-radius: 50%;
  width: 58px;
  height: 58px;
  display:flex;
  align-items:center; justify-content:center;
  justify-content:center;
  box-shadow: 0 4px 14px rgba(0,0,0,.25);
  z-index: 999;
  transition: transform .25s ease;
}
.whatsapp-float:hover { transform: scale(1.08); }
@keyframes pulse-wa {
  0% { transform: scale(1); }
  50% { transform: scale(1.08); }
  100% { transform: scale(1); }
}
.whatsapp-float { animation: pulse-wa 3.6s infinite; }


/* Brand claim strip */
.brand-claim {
  background: var(--navy);
  color: #fff;
  padding: 22px 0;
  text-align:center;
  font-size: 1.15rem;
  font-weight: 600;
}
.brand-claim p { margin: 0; }


/* Optimized Contact Section */
.contact-options{
  display:flex;
  justify-content:center;
  gap:16px;
  margin-top:24px;
  flex-wrap:wrap;
}
.contact-btn{
  padding:12px 22px;
  border-radius:12px;
  text-decoration:none;
  font-weight:600;
  font-size:1rem;
  color:#fff;
}
.contact-btn.call{ background:#0A2A43; }
.contact-btn.wa{ background:#25D366; }
.contact-btn.mail{ background:#D4AF37; color:#000; }

@media(max-width:600px){
  .contact-options{ flex-direction:column; gap:12px; }
}


/* Contact card spacing */
#contacto .card {
  border:0.5px solid #E6E6E6;
  border-radius:14px;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}


/* Footer */
.footer {
  background:#fff;
  padding:48px 0;
  text-align:center;
  color:#6B7280;
  border-top:1px solid #E6E6E6;
}
.footer-title {
  color:#0A2A43;
  font-weight:700;
  margin-bottom:4px;
}
.footer a.footer-link {
  color:#0A2A43;
  text-decoration:none;
}
.footer a.footer-link:hover {
  text-decoration:underline;
}


.footer {
  background-color: #0A2A43;
  color: white;
  padding: 40px 0;
  text-align: center;
}
.footer a {
  color: white;
  text-decoration: none;
}
.footer a:hover {
  text-decoration: underline;
}
.footer-container p, .footer-container h3 {
  margin: 5px 0;
}


/* Iconos centrados en tarjetas */
.card-icon { display:flex; justify-content:center; margin-bottom:12px; color: var(--gold); line-height:0; }
.card h3 {
  text-align:center;
}
.cards-grid .card {
  text-align:center;
}


/* Layout 3x2 con aire (S1) */
.cards-grid-3x2 {
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:36px;
  margin-top:40px;
}

.card-click {
  text-decoration:none;
  color:inherit;
  padding:40px 28px;
  border-radius:14px;
  background:#fff;
  display:flex;
  flex-direction:column;
  align-items:center; justify-content:center;
  justify-content:center;
  box-shadow:0 3px 10px rgba(0,0,0,0.08);
  transition:0.25s;
  min-height:200px;
}
.card-click:hover {
  transform: translateY(-4px);
  box-shadow:0 6px 18px rgba(0,0,0,0.14);
}

@media(max-width: 900px){
  .cards-grid-3x2 { grid-template-columns: repeat(2, 1fr); }
}
@media(max-width: 600px){
  .cards-grid-3x2 { grid-template-columns: 1fr; }
}


.cards-grid-3x2 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin: 40px 0;
}

.card-icon { display:flex; justify-content:center; margin-bottom:12px; color: var(--gold); line-height:0; }

.card-click {
  text-decoration: none;
  color: inherit;
  text-align: center;
  padding: 32px 24px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  transition: transform .2s, box-shadow .2s;
}

.card-click:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.14);
}

/* icon backgrounds */
.card.admin .card-icon { display:flex; justify-content:center; margin-bottom:12px; color: var(--gold); line-height:0; }
.card.asesoria .card-icon { display:flex; justify-content:center; margin-bottom:12px; color: var(--gold); line-height:0; }
.card.morosidad .card-icon { display:flex; justify-content:center; margin-bottom:12px; color: var(--gold); line-height:0; }
.card.obras .card-icon { display:flex; justify-content:center; margin-bottom:12px; color: var(--gold); line-height:0; }
.card.juntas .card-icon { display:flex; justify-content:center; margin-bottom:12px; color: var(--gold); line-height:0; }
.card.despacho .card-icon { display:flex; justify-content:center; margin-bottom:12px; color: var(--gold); line-height:0; }

@media(max-width:900px){
  .cards-grid-3x2 { grid-template-columns: repeat(2,1fr);}
}
@media(max-width:600px){
  .cards-grid-3x2 { grid-template-columns: 1fr;}
}


.info-card {
  background:#fff;
  border-radius:16px;
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
  padding:32px;
  transition:transform .2s, box-shadow .2s;
}
.info-card:hover {
  transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(0,0,0,0.14);
}

/* contacto buttons H3 style */
.contact-options a.contact-btn {
  border-radius:50px;
  padding:10px 20px;
  font-size:0.9rem;
  display:inline-flex;
  align-items:center; justify-content:center;
  gap:6px;
}

/* adjust intro and footer text */
.contact-intro, footer p, footer a {
  font-size:0.95rem;
}


.footer-container h3 {
  font-size: 1.4rem;
  font-weight: 600;
}

.footer-container p, .footer-links a {
  font-size: 0.85rem;
  font-weight: 400;
}

.card-icon svg { width: 48px; height: 48px; display:block; }

@media (max-width: 640px){ :root{ --hero-overlay: rgba(10,42,67,.50); } 
  
  .nosotros-logos{ padding-left:0; }
  .colegios-logos img{ height: 130px; max-width: 360px; }
}
}
}

.colegios-logos{
  display:flex;
  gap:32px;
  align-items:center; justify-content:center;
  margin-top:16px;
  flex-wrap:wrap;
}
.colegios-logos img{ height: 200px;
  width:auto;
  object-fit:contain;
  filter: grayscale(0%);
}
@media (max-width: 640px){
  
  .nosotros-logos{ padding-left:0; }
  .colegios-logos img{ height: 130px; max-width: 360px; }
}
}
}

.colegios-logos img:hover{ opacity:0.9; }


.nosotros-grid{ display:grid; grid-template-columns: 1.3fr 2px 1fr;
  gap:32px;
  align-items:center;
}
.nosotros-logos{
  display:flex;
  justify-content:center;
  align-items:center;
}
.colegios-logos{
  display:flex;
  gap:32px;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
}
.colegios-logos img{ height: 200px;
  width:auto;
  max-width:360px;
  object-fit:contain;
}
@media (max-width: 900px){
  .nosotros-grid{ grid-template-columns: 1fr; }
  .nosotros-divider{ display:none; }
  .colegios-logos img{ height: 160px; max-width: 420px; }
}
  .colegios-logos img{ height: 200px;
    max-width:300px;
  }
}
@media (max-width: 640px){
  
  .nosotros-logos{ padding-left:0; }
  .colegios-logos img{ height: 130px; max-width: 360px; }
}
}


/* Vertical divider for Nosotros (subtle gold) */
.nosotros-logos{
  position: relative;
  
}


/* Bigger logos */
.colegios-logos img{ height: 200px;
  width: auto;
  max-width: 420px;
  object-fit: contain;
}

@media (max-width: 900px){
  .nosotros-grid{ grid-template-columns: 1fr; }
  .nosotros-divider{ display:none; }
  .colegios-logos img{ height: 160px; max-width: 420px; }
}
  .colegios-logos img{ height: 200px; max-width: 360px; }
}

@media (max-width: 640px){
  
  .nosotros-logos{ padding-left: 0; }
  .colegios-logos img{ height: 200px; max-width: 300px; }
}

.nosotros-divider{
  width:2px;
  background: var(--gold);
  opacity:0.35;
  border-radius:2px;
  height:100%;
}


/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Offset for fixed header when jumping to anchors */
.section { scroll-margin-top: 96px; }

/* Active nav link underline in gold */
.nav-menu a {
  position: relative;
}
.nav-menu a.active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  height: 3px;
  background: var(--gold);
  border-radius: 3px;
}


 (min-width: 900px){
  .cookie-banner{
  position: fixed;
  right: 24px;
  bottom: calc(16px + var(--cookie-bottom-offset, 0px));
  background: #ffffff;
  color: var(--ink);
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 16px;
  padding: 16px;
  z-index: 9999;
  display: none;
  max-width: 520px;
}

}


/* Minimal cookie pill */
.cookie-banner{
  position: fixed;
  right: 24px;
  bottom: calc(16px + var(--cookie-bottom-offset, 0px));
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(6px);
  color: #111;
  border-radius: 50px;
  padding: 8px 14px;
  font-size: 0.85rem;
  display: none;
  z-index: 9999;
  box-shadow: 0 4px 14px rgba(0,0,0,0.12);
}
.cookie-banner.show{ display: inline-flex; align-items:center; gap:10px; }
.cookie-btn.cookie-accept{
  background: var(--gold);
  border:none;
  color:#000;
  font-weight:600;
  border-radius: 999px;
  padding:6px 12px;
  cursor:pointer;
}
.cookie-links a{ text-decoration: underline; color: inherit; }
@media(max-width:640px){
  .cookie-banner{ right:16px; left:auto; bottom:calc(16px + var(--cookie-bottom-offset, 0px)); }
}


/* Compact cookie pill */
.cookie-banner{
  position: fixed;
  right: 24px;
  bottom: calc(16px + var(--cookie-bottom-offset, 0px));
  background: rgba(10,42,67,0.92); /* navy w/ transparency */
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 10px 14px;
  z-index: 9999;
  display: none;
  max-width: none;
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  font-size: 0.95rem;
}
.cookie-banner.show{ display:flex; align-items:center; gap:12px; }
.cookie-banner .cookie-title{ display:none; }
.cookie-banner .cookie-text{ margin:0; color:#fff; opacity:.95; }
.cookie-actions{ display:flex; gap:8px; margin:0; }
.cookie-btn{ border:none; cursor:pointer; padding:8px 12px; border-radius:999px; font-weight:600; font-size:0.9rem; }
.cookie-accept{ background: var(--gold); color:#000; }
.cookie-more{ background: transparent; color:#fff; text-decoration: underline; padding:0 2px; }
@media (max-width: 640px){
  .cookie-banner{ right: 12px; left: 12px; border-radius: 14px; padding: 10px 12px; }
}


/* Contact card alignments */
.contacto .contact-intro-wrap{ text-align:center; }
.contacto .contact-intro{ margin: 0 0 8px 0; font-size: 1.15rem; }
/* Thin gold divider like 'Nosotros' */
.section-hr{
  height:2px;
  background: var(--gold);
  opacity:.35;
  border-radius:2px;
  margin: 16px auto 20px auto;
  width: min(680px, 90%);
}
/* Center buttons as a row under divider */
.contacto .contact-options{
  justify-content:center;
}

.hero.hero-alt{
  background: linear-gradient(var(--hero-overlay), var(--hero-overlay)), url('../img/hero-office-2.png') center/cover no-repeat;
}

.hero.hero-alt-2{
  background: linear-gradient(var(--hero-overlay), var(--hero-overlay)), url('../img/hero-office-3.png') center/cover no-repeat;
}

.hero-sub{ text-shadow: 0 2px 6px rgba(0,0,0,.25); }

/* Icon hover enhancement */
.card-icon svg{transition: transform .25s ease, opacity .25s ease, color .25s ease; transform: translateY(0); opacity:.96}
.card:hover .card-icon svg{transform: translateY(-3px); opacity:1}

.card-icon svg{clip-path: inset(6px 0 0 0)}


/* Servicios page enhancements */
.services-hero .page-title{font-size:36px;margin-bottom:8px}
.services-hero .lead{font-size:18px;color:var(--muted)}
.services-nav{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.services-nav a{padding:8px 12px;border:1px solid #e5e7eb;border-radius:999px;text-decoration:none;color:var(--navy);font-weight:600}
.service-block{padding:24px 0}
.service-card{display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:center;padding:28px;border:1px solid #f0f0f0;border-radius:16px;background:#fff;box-shadow:0 10px 20px rgba(10,42,67,.04)}
.service-icon svg{width:84px;height:84px;display:block;color:var(--gold);clip-path: inset(6px 0 0 0)}
.service-content h2{margin:0 0 6px 0}
.service-content .sub{color:var(--muted);margin:0 0 10px 0}
.deliverables{margin:10px 0 0 0;padding-left:18px}
.deliverables li{margin:6px 0}
.cta-row{display:flex;gap:12px;margin-top:14px}
.btn{display:inline-block;padding:10px 16px;border-radius:10px;font-weight:700;text-decoration:none}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{opacity:.92}
.btn-outline{border:1px solid var(--navy);color:var(--navy);background:#fff}
.btn-outline:hover{background:#f6f8fb}
.faq details{border:1px solid #e5e7eb;border-radius:10px;padding:12px 16px;margin:10px 0;background:#fff}
.faq summary{cursor:pointer;font-weight:700;color:var(--navy)}
.cta-final .cta-box{padding:28px;border:2px solid var(--navy);border-radius:16px;text-align:center}
@media (max-width: 760px){
  .service-card{grid-template-columns:1fr}
  .service-icon{justify-self:center}
}


/* Smooth-scroll & active nav state */
.navbar .nav-menu a.active{color: var(--navy); border-bottom: 2px solid var(--navy);}
html{ scroll-behavior: smooth; }


/* Sticky navbar with blur */
.navbar{
  position: sticky;
  top: 0;
  backdrop-filter: saturate(120%) blur(10px);
  -webkit-backdrop-filter: saturate(120%) blur(10px);
  background: rgba(255,255,255,.72);
  border-bottom: 1px solid rgba(0,0,0,.06);
  transition: background .25s ease, box-shadow .25s ease, border-color .25s ease;
  z-index: 1000;
}
.navbar.scrolled{
  background: rgba(255,255,255,.88);
  box-shadow: 0 6px 20px rgba(10,42,67,.08);
  border-color: rgba(0,0,0,.08);
}
@supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))) {
  .navbar{ background:#ffffff; }
}


/* Footer alignment with DPD logo */
.footer-flex{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.dpd-logo{height:42px; width:auto; opacity:.9}
@media (max-width:640px){
  .footer-flex{flex-direction:column;align-items:flex-start}
  .footer-right{align-self:flex-end}
}


/* Footer polished layout */
.footer{background: var(--navy); color:#fff; padding:24px 0}
.footer a{color:#fff}
.footer-flex{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap}
.footer-left{display:flex; flex-direction:column; gap:6px}
.footer-right{margin-left:auto}
.dpd-logo{height:48px; width:auto; display:block; opacity:.95}
.dpd-logo:hover{opacity:1}
@media (max-width: 720px){
  .footer-flex{flex-direction:column; align-items:flex-start}
  .footer-right{align-self:flex-end}
  .dpd-logo{height:96px}
}


/* Footer full-bleed + DPD size/inset */
.footer{
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  padding: 32px 0;
}
.footer-right{margin-right: 32px}
.dpd-logo{height:96px}
@media (max-width: 720px){
  .footer-right{margin-right: 16px}
  .dpd-logo{height:96px}
}



/* Footer centered content + logo inward */
.footer-flex{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 32px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  text-align: center;
}
.footer-left{justify-self: center}
.footer-right{justify-self: end}
.dpd-logo{height:96px}
@media (max-width: 920px){
  .footer-flex{grid-template-columns: 1fr; gap: 20px; padding: 0 20px}
  .footer-left{justify-self: start; text-align: left}
  .footer-right{justify-self: end}
  .dpd-logo{height:96px}
}

