/* ============ TOKENS — light is the complete set ============ */
:root{
  color-scheme:light;             /* impide que el navegador oscurezca la página por su cuenta */
  --ground:#DFEAF2;               /* azul pastel, el fondo general */
  --ground-2:#CFE0EC;
  --surface:#F1F7FB;              /* tarjetas: más claro que el fondo, nunca blanco puro */
  --surface-2:#E8F1F7;
  --ink:#12324B;                  /* azul muy oscuro en vez de negro */
  --ink-2:#3A5F7D;
  --muted:#728FA6;
  --line:#B9D2E3;
  --line-soft:#CFE0EC;
  --accent:#0091C2;
  --accent-deep:#0A4E73;
  --accent-wash:#C9E4F2;
  --royal:#1B3F8F;
  --warm:#C2762F;
  --warm-wash:#F0DFC9;
  --shadow:20 50 78;
  --shadow-a:.13;
  --shadow-b:.07;
  --glass:236 244 250;
  --glass-a:.82;
  --sky-1:#AFD5E9;
  --sky-2:#DCEDF6;
  --sea:#2A7EA6;
  --bldg:#1B4A6B;
  --bldg-2:#2A6B93;

  --step--1:.8125rem;
  --step-0:.9375rem;
  --step-1:1.0625rem;
  --step-2:1.375rem;
  --step-3:1.875rem;
  --step-4:2.75rem;
  --step-5:clamp(2.6rem,6.2vw,4.4rem);

  /* La cabecera y el pie son azul marino de marca en los DOS modos: es lo que
     hace que el logotipo blanco de la empresa se lea siempre. */
  --bar:#0E2547;
  --bar-2:#143059;
  --bar-ink:#F2F7FC;
  --bar-ink-2:#A9C2DC;
  --bar-line:#22406B;

  --r-s:10px;
  --r-m:16px;
  --r-l:22px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --ground:#060D1C;             /* casi negro azulado: descansa la vista */
    --ground-2:#0A1428;
    --surface:#0E1B33;            /* azul rey apagado, no saturado */
    --surface-2:#12203C;
    --ink:#D7E2F0;                /* nunca blanco puro */
    --ink-2:#9DB2CE;
    --muted:#6E85A5;
    --line:#1D3055;
    --line-soft:#152340;
    --accent:#4E93D8;             /* cian de marca rebajado para pantalla oscura */
    --accent-deep:#84B6E8;
    --accent-wash:#12294A;
    --royal:#26468F;
    --warm:#CE9358;
    --warm-wash:#2C2113;
    --shadow:0 4 14;
    --shadow-a:.62;
    --shadow-b:.42;
    --glass:9 18 34;
    --glass-a:.86;
    --sky-1:#11244A;
    --sky-2:#08101F;
    --sea:#1A3C6B;
    --bldg:#040A16;
    --bldg-2:#0C1730;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --ground:#060D1C;       /* casi negro azulado: descansa la vista */
  --ground-2:#0A1428;
  --surface:#0E1B33;      /* azul rey apagado, no saturado */
  --surface-2:#12203C;
  --ink:#D7E2F0;        /* nunca blanco puro */
  --ink-2:#9DB2CE;
  --muted:#6E85A5;
  --line:#1D3055;
  --line-soft:#152340;
  --accent:#4E93D8;       /* cian de marca rebajado para pantalla oscura */
  --accent-deep:#84B6E8;
  --accent-wash:#12294A;
  --royal:#26468F;
  --warm:#CE9358;
  --warm-wash:#2C2113;
  --shadow:0 4 14;
  --shadow-a:.62;
  --shadow-b:.42;
  --glass:9 18 34;
  --glass-a:.86;
  --sky-1:#11244A;
  --sky-2:#08101F;
  --sea:#1A3C6B;
  --bldg:#040A16;
  --bldg-2:#0C1730;
}

:root[data-theme="light"]{color-scheme:light}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:"Archivo","Helvetica Neue",Arial,sans-serif;
  font-size:var(--step-0);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  transition:background-color .5s ease,color .5s ease;
}
h1,h2,h3{
  font-family:"Fraunces","Iowan Old Style",Georgia,serif;
  font-weight:500;
  letter-spacing:-.015em;
  text-wrap:balance;
  margin:0;
}
button{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:4px}

.wrap{width:min(1220px,92vw);margin-inline:auto}

/* =====================================================================
 * CAPA GLOBAL — se carga en TODAS las páginas del sitio.
 * Cabecera, pie, botones, tipografía y comportamiento en móvil.
 * ===================================================================== */

img,video,iframe{max-width:100%;height:auto}
table{border-collapse:collapse}
.cr-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Nada debe desbordar a lo ancho en móvil */
html,body{overflow-x:hidden}

/* Astra inyecta CSS dinámico del personalizador DESPUÉS de esta hoja y fija
   el fondo y el color del texto del body. Subimos la especificidad para que
   manden nuestros tokens; si no, el fondo queda claro con las tarjetas oscuras. */
html body.cr-page{background:var(--ground);color:var(--ink)}
html body.cr-page #page,
html body.cr-page .site-content,
html body.cr-page #primary{background:transparent}

/* ============ BOTONES ============ */
.cr-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:46px;padding:12px 22px;border-radius:99px;
  font:600 var(--step-0)/1 "Archivo",sans-serif;
  border:1px solid transparent;cursor:pointer;text-align:center;
  transition:transform .18s,box-shadow .22s,background-color .2s,border-color .2s;
}
.cr-btn svg{flex:none}
.cr-btn:hover{transform:translateY(-2px)}
.cr-btn:active{transform:translateY(0)}

.cr-btn--primary{
  background:var(--accent);color:#fff;
  box-shadow:0 8px 20px -8px rgb(var(--shadow)/.5);
}
:root[data-theme="dark"] .cr-btn--primary,
:root:not([data-theme="light"]) .cr-btn--primary{color:#05122E}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]) .cr-btn--primary{color:#fff}
}
.cr-btn--primary:hover{background:var(--accent-deep)}

.cr-btn--ghost{background:var(--surface);border-color:var(--line);color:var(--ink)}
.cr-btn--ghost:hover{border-color:var(--accent);color:var(--accent-deep)}

.cr-btn--wa{background:#25D366;color:#06301A}
.cr-btn--wa:hover{background:#1FB855;color:#06301A}

/* ============ CABECERA GLOBAL ============ */
.cr-header{
  position:sticky;top:0;z-index:60;
  background:color-mix(in srgb, var(--bar) 92%, transparent);
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  border-bottom:1px solid var(--bar-line);
  color:var(--bar-ink);
}
@supports not (background: color-mix(in srgb, red, blue)){
  .cr-header{background:var(--bar)}
}
.cr-bar{display:flex;align-items:center;gap:18px;padding:12px 0;min-height:62px}

.cr-brand{display:flex;align-items:center;gap:11px;margin-right:auto;text-decoration:none;color:inherit}
.cr-brand svg{display:block;flex:none}
.cr-brand b{
  display:block;font-family:"Archivo",sans-serif;font-weight:700;
  font-size:.88rem;letter-spacing:.15em;text-transform:uppercase;line-height:1.05;
  color:var(--bar-ink);
}
.cr-brand span{
  display:block;font-size:.56rem;letter-spacing:.32em;
  text-transform:uppercase;color:var(--bar-ink-2);margin-top:3px;
}

.cr-nav{display:flex;gap:2px;align-items:center}
.cr-nav a{
  padding:10px 14px;border-radius:99px;font-size:var(--step--1);
  font-weight:500;color:var(--bar-ink-2);text-decoration:none;
  transition:background-color .2s,color .2s;
}
.cr-nav a:hover,.cr-nav a:focus-visible{background:var(--bar-2);color:var(--bar-ink)}
.cr-nav a.is-current{color:var(--bar-ink);font-weight:600}

/* ---- Desplegable del menú ---- */
.cr-drop{position:relative}
.cr-drop-top{display:inline-flex;align-items:center;gap:5px}
.cr-drop-top svg{transition:transform .2s;opacity:.65}
.cr-submenu{
  position:absolute;top:calc(100% + 8px);left:0;min-width:210px;
  display:grid;gap:2px;padding:8px;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-m);
  box-shadow:0 18px 44px -18px rgb(var(--shadow)/calc(var(--shadow-a) + .12));
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .2s,transform .2s,visibility .2s;
}
.cr-submenu a{padding:10px 13px;border-radius:9px;white-space:nowrap}
.cr-drop:hover .cr-submenu,
.cr-drop:focus-within .cr-submenu{opacity:1;visibility:visible;transform:none}
.cr-drop:hover .cr-drop-top svg,
.cr-drop:focus-within .cr-drop-top svg{transform:rotate(180deg)}
/* Puente invisible para que el cursor no pierda el menú al bajar */
.cr-drop::after{content:"";position:absolute;top:100%;left:0;right:0;height:10px}

.cr-actions{display:flex;align-items:center;gap:8px;flex:none}

.cr-toggle{
  display:flex;align-items:center;gap:7px;
  min-width:44px;min-height:44px;justify-content:center;
  border:1px solid var(--bar-line);background:var(--bar-2);
  border-radius:99px;padding:0 14px;cursor:pointer;
  font-size:var(--step--1);font-weight:500;color:var(--bar-ink);
  transition:border-color .2s,transform .15s;
}
.cr-toggle:hover{border-color:var(--bar-ink-2);transform:translateY(-1px)}
.cr-toggle .lbl{display:none}
@media(min-width:900px){.cr-toggle .lbl{display:inline}}

/* Hamburguesa: solo en móvil */
.cr-burger{
  display:none;width:44px;height:44px;place-items:center;
  border:1px solid var(--bar-line);background:var(--bar-2);
  border-radius:12px;cursor:pointer;color:var(--bar-ink);
}
/* El botón "Contactarnos" existe dos veces: uno para escritorio, dentro de
   .cr-actions, y otro para el menú desplegable de móvil, dentro de .cr-nav.
   Solo se ve uno a la vez. */
.cr-nav .cr-btn{display:none}

/* Botón "Volver al inicio": en la barra de marca, discreto pero visible.
   En pantallas estrechas se queda solo el icono. */
.cr-btn--inicio{
  background:var(--bar-2);border-color:var(--bar-line);color:var(--bar-ink);
  padding:12px 16px;
}
.cr-btn--inicio:hover{border-color:var(--bar-ink-2);color:var(--bar-ink)}
.cr-btn--inicio .lbl{display:none}
@media(min-width:1000px){
  .cr-btn--inicio{padding:12px 20px}
  .cr-btn--inicio .lbl{display:inline}
}

/* ============ MENÚ MÓVIL ============ */
@media(max-width:899px){
  .cr-burger{display:grid}
  .cr-nav{
    position:fixed;inset:62px 0 0;z-index:55;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--bar);
    padding:18px max(16px,4vw) 40px;
    overflow-y:auto;
    transform:translateY(-8px);opacity:0;visibility:hidden;
    transition:opacity .25s ease,transform .25s ease,visibility .25s;
  }
  .cr-nav.is-open{transform:none;opacity:1;visibility:visible}
  .cr-nav a{
    padding:16px 6px;border-radius:0;font-size:var(--step-2);
    font-family:"Fraunces",Georgia,serif;font-weight:500;
    color:var(--bar-ink);border-bottom:1px solid var(--bar-line);
  }
  .cr-nav a:hover{background:transparent;color:var(--bar-ink-2)}
  /* En móvil el submenú se muestra siempre, indentado. Sin desplegables. */
  .cr-drop{display:block}
  .cr-drop-top{display:flex;justify-content:space-between}
  .cr-drop-top svg{display:none}
  .cr-submenu{
    position:static;opacity:1;visibility:visible;transform:none;
    background:transparent;border:0;box-shadow:none;
    padding:0 0 0 16px;min-width:0;
  }
  .cr-submenu a{
    font-family:"Archivo",sans-serif;font-size:var(--step-0);
    color:var(--bar-ink-2);padding:13px 6px;border-radius:0;
    border-bottom:1px solid var(--bar-line);white-space:normal;
  }
  .cr-nav .cr-btn{display:inline-flex;margin-top:22px;width:100%}
  body.cr-menu-open{overflow:hidden}
}

/* ============ PIE GLOBAL ============ */
.cr-footer{
  margin-top:90px;
  background:var(--bar);
  color:var(--bar-ink);
  border-top:1px solid var(--bar-line);
  padding:54px 0 0;
}
.cr-footer-grid{
  display:grid;gap:38px;
  grid-template-columns:1fr;
  padding-bottom:40px;
}
@media(min-width:760px){
  .cr-footer-grid{grid-template-columns:1.6fr 1fr 1fr;gap:48px}
}
.cr-footer h3{
  font-family:"Archivo",sans-serif;font-size:.64rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--bar-ink-2);
  margin:0 0 16px;
}
.cr-footer p{margin:0 0 16px;color:var(--bar-ink-2);max-width:44ch;line-height:1.7}
.cr-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.cr-footer a{color:var(--bar-ink-2);text-decoration:none;font-size:var(--step--1)}
.cr-footer a:hover{color:var(--bar-ink)}
/* El logotipo va centrado sobre el texto de presentación. */
.cr-footer-brand{display:flex;justify-content:center;margin:0 0 22px}
.cr-footer-grid>div:first-child{text-align:center}
.cr-footer-grid>div:first-child p{margin-inline:auto}
.cr-footer-grid>div:first-child .cr-btn{margin-inline:auto}
@media(min-width:760px){
  .cr-footer-brand{justify-content:flex-start}
  .cr-footer-grid>div:first-child{text-align:left}
  .cr-footer-grid>div:first-child p,
  .cr-footer-grid>div:first-child .cr-btn{margin-inline:0}
}
.cr-footer-brand b{
  font-family:"Fraunces",Georgia,serif;font-weight:500;font-size:var(--step-2);
  letter-spacing:0;text-transform:none;color:var(--bar-ink);
}
.cr-footer-bottom{
  border-top:1px solid var(--bar-line);
  padding:20px 0 26px;
  display:flex;justify-content:center;text-align:center;
  font-size:var(--step--1);color:var(--bar-ink-2);
}
.cr-footer .cr-btn--ghost{
  background:var(--bar-2);border-color:var(--bar-line);color:var(--bar-ink);
}
.cr-footer .cr-btn--ghost:hover{border-color:var(--bar-ink-2);color:var(--bar-ink)}
.cr-credito a{color:var(--bar-ink);text-decoration:underline;text-underline-offset:3px}
.cr-credito a:hover{color:var(--bar-ink)}

/* ============ WHATSAPP FLOTANTE ============ */
/* El botón del plugin Click to Chat solo aparece en la ficha de un
   apartamento. En el resto del sitio se usa el botón "Contactarnos". */
body:not(.cr-single) .ht-ctc,
body:not(.cr-single) #ht-ctc-chat,
body:not(.cr-single) .ht-ctc-chat{display:none !important}

/* Y donde sí aparece, se mantiene discreto y fuera del pulgar */
body.cr-single .ht-ctc{opacity:.92}
@media(max-width:600px){
  body.cr-single .ht-ctc{transform:scale(.85);transform-origin:bottom right}
}

/* ============ CONTENIDO HEREDADO (Astra / Elementor) ============ */
/* Las páginas que no tienen plantilla propia siguen usando su maquetación.
   Aquí solo se armoniza el envoltorio para que respiren igual que el resto. */
.cr-page .site-content>.ast-container{padding-top:34px;padding-bottom:34px}
.cr-page .entry-title{font-family:"Fraunces",Georgia,serif;font-weight:500}
.cr-page .site-content{background:var(--ground)}
.ast-container,.site-content{color:var(--ink)}

/* Astra pinta su propia cabecera y pie; con el tema hijo ya no se cargan. */
.site-header,.site-footer,.ast-above-header,.ast-below-header{display:none}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

/* =====================================================================
 * Rastro del desarrollo anterior
 *
 * Red de seguridad por si alguna vista del plugin llegara a pintarse:
 * su firma y sus enlaces externos no se muestran nunca en público.
 * ===================================================================== */
[class*="es-powered"],
[class*="powered-by-estatik"],
[id*="es-powered"],
a[href*="estatik.net"],
a[href*="estatik.com"],
a[href*="cdttecnologia"],
a[href*="cdotecnologia"],
a[href*="cdo-tecnologia"] {
  display: none !important;
}

/* La ventana de acceso del plugin: formulario de entrada, registro,
   recordar contraseña y el "Ya estás conectado / Cerrar sesión" que sale
   con sesión iniciada. Nada de eso pinta en la web pública. */
[class*="es-modal"], [id*="es-modal"],
[class*="es-popup"], [id*="es-popup"],
[class*="es-login"], [id*="es-login"],
[class*="es-sign"],  [id*="es-sign"],
[class*="es-register"], [id*="es-register"],
[class*="es-auth"],  [id*="es-auth"],
[class*="es-user-form"],
.es-modals, .es-entity-modals, .es-overlay {
  display: none !important;
}
