/*
Theme Name: Holiday Golf Estates
Theme URI: https://holidaygolfestates.com
Author: Hola in Company
Author URI: https://holaincompany.com
Description: Theme a medida de Holiday Golf Estates — sistema de diseño HGE (Fraunces · DM Sans · Newsreader), fiel al diseño de Claude Design. Compatible con Elementor.
Version: 1.0.0
Requires PHP: 7.4
Text Domain: hge
*/
/* Holiday Golf Estates — Color tokens
   Reparto 60·25·10·5 — crema domina, medianoche ordena,
   arena rubrica (nunca fondo dominante), tinta solo letra editorial. */
:root {
  /* ---- Base palette (corporativa) ---- */
  --hge-midnight:      #17273A; /* Azul Medianoche — rgb 23 39 58 · orders type + blocks */
  --hge-cream:         #F1EDE3; /* Crema — rgb 241 237 227 · dominant ground, the air */
  --hge-sand:          #C9AD8F; /* Arena — rgb 201 173 143 · signature, never a ground */
  --hge-ink:           #14161A; /* Tinta — editorial body only */

  /* ---- Extended brand neutrals & tints (from usage) ---- */
  --hge-bronze:        #A0703F; /* arena oscura — Newsreader italic emphasis, roles */
  --hge-eyebrow:       #A98E67; /* bronze eyebrow / overline on cream */
  --hge-label:         #9A9384; /* muted stone label on cream */
  --hge-sand-light:    #E8D9BE; /* hot-stamp / light arena on night */
  --hge-midnight-800:  #101B29; /* deep midnight — card mock grounds */
  --hge-near-black:    #0C0B09; /* full-bleed photographic night */
  --hge-warm-gray:     #C9C7C0; /* warm stationery neutral */
  --hge-paper:         #FFFFFF; /* true white — email, print substrate only */

  /* ---- Semantic state (PRODUCT ONLY — never brand/editorial) ---- */
  --hge-success:       #3E7C5A; /* Éxito */
  --hge-warning:       #C9922F; /* Aviso */
  --hge-error:         #B0432F; /* Error */

  /* ---- Semantic aliases — surfaces ---- */
  --hge-bg:            var(--hge-cream);
  --hge-surface:       var(--hge-cream);
  --hge-surface-raised:var(--hge-paper);
  --hge-surface-dark:  var(--hge-midnight);
  --hge-surface-night: var(--hge-near-black);

  /* ---- Semantic aliases — text on cream ---- */
  --hge-text:          var(--hge-midnight);
  --hge-text-muted:    rgba(23,39,58,0.68);
  --hge-text-subtle:   rgba(23,39,58,0.55);
  --hge-text-editorial:var(--hge-bronze);

  /* ---- Semantic aliases — text on midnight/photo ---- */
  --hge-on-dark:       var(--hge-cream);
  --hge-on-dark-muted: rgba(241,237,227,0.62);
  --hge-on-dark-subtle:rgba(241,237,227,0.45);

  /* ---- Accent / signature ---- */
  --hge-accent:        var(--hge-sand);
  --hge-accent-ink:    var(--hge-bronze);

  /* ---- Lines / hairlines ---- */
  --hge-line:          rgba(23,39,58,0.14);  /* hairline on cream */
  --hge-line-strong:   var(--hge-midnight);   /* 1–2px editorial rule */
  --hge-line-on-dark:  rgba(241,237,227,0.20);
  --hge-line-sand:     var(--hge-sand);

  /* ---- Photographic veils (logo legibility ≥50% over image) ---- */
  --hge-veil-blue:     rgba(23,39,58,0.55);
  --hge-veil-scrim:    linear-gradient(to bottom, rgba(23,39,58,0.35) 0%, rgba(23,39,58,0.05) 45%, rgba(12,11,9,0.72) 100%); /* @kind color */
}
/* Holiday Golf Estates — Typography tokens
   Fraunces 300 (opsz 144) SOLO titulares y cifras · DM Sans 300–600 todo el sistema ·
   Newsreader SOLO itálica para citas. */
:root {
  /* ---- Families ---- */
  --hge-font-display: 'Fraunces', 'The Seasons', Georgia, serif;    /* headlines + figures ONLY */
  --hge-font-sans:    'DM Sans', system-ui, -apple-system, sans-serif; /* the whole system */
  --hge-font-editorial: 'Newsreader', Georgia, serif;              /* italic quotes ONLY */
  --hge-font-mono:    ui-monospace, Menlo, 'SF Mono', monospace;   /* spec labels, refs */

  /* Fraunces is the free stand-in the brand sanctions for The Seasons (per manual). */
  --hge-display-opsz: 'opsz' 144; /* @kind font */

  /* ---- Weights ---- */
  --hge-w-light:   300;  /* @kind font */
  --hge-w-regular: 400; /* @kind font */
  --hge-w-medium:  500; /* @kind font */
  --hge-w-semi:    600;   /* @kind font */

  /* ---- Display scale (Fraunces 300, opsz 144, tracking -0.01em) ---- */
  --hge-display-xl: 80px;  /* claim / idea de marca */
  --hge-display-l:  52px;  /* section openers */
  --hge-display-m:  40px;  /* screen titles */
  --hge-display-s:  32px;  /* sub-heads */
  --hge-heading:    24px;  /* Fraunces 400 card titles */
  --hge-figure:     60px;  /* numerals 01/02 · prices */

  /* ---- Body scale (DM Sans) ---- */
  --hge-body-l:     15px;
  --hge-body:       14px;
  --hge-body-s:     13px;
  --hge-caption:    12px;

  /* ---- Overline / label ---- */
  --hge-eyebrow-size: 11px;
  --hge-eyebrow-track: 0.30em; /* @kind font */
  --hge-label-track:  0.24em; /* @kind font */
  --hge-tag-track:    0.16em; /* @kind font */

  /* ---- Line heights ---- */
  --hge-lh-display: 1.08; /* @kind font */
  --hge-lh-tight:   1.12; /* @kind font */
  --hge-lh-title:   1.24; /* @kind font */
  --hge-lh-body:    1.7; /* @kind font */
  --hge-lh-relaxed: 1.8; /* @kind font */

  /* ---- Tracking ---- */
  --hge-track-display: -0.01em; /* @kind font */
  --hge-track-body:     0; /* @kind font */
}
/* Holiday Golf Estates — Spacing, radius, border, layout
   Sistema recto: sin redondeos. Radius 0 salvo píldora de atributo y sello redondo. */
:root {
  /* ---- Spacing scale (px) ---- */
  --hge-space-1:  4px;
  --hge-space-2:  8px;
  --hge-space-3:  12px;
  --hge-space-4:  16px;
  --hge-space-5:  20px;
  --hge-space-6:  24px;
  --hge-space-7:  32px;
  --hge-space-8:  40px;
  --hge-space-9:  50px;
  --hge-space-10: 64px;
  --hge-space-11: 80px;
  --hge-space-12: 100px;  /* page margin (deck / dossier) */

  /* ---- Radius — rectilinear system ---- */
  --hge-radius:      0;      /* default everywhere */
  --hge-radius-pill: 999px;  /* attribute chips only */
  --hge-radius-seal: 50%;    /* circular H seal variant only */

  /* ---- Borders ---- */
  --hge-border-hair:   1px;
  --hge-border-rule:   2px;   /* editorial top-rule */
  --hge-border-frame:  3px;   /* escuadra over photography */
  --hge-border-icon:   2px;   /* escuadra on iconography */
  --hge-border-mark:   4px;   /* escuadra on the H symbol */

  /* ---- Escuadra (the set-square motif) ---- */
  --hge-escuadra-color: var(--hge-sand);
  --hge-escuadra-arm:   34px;   /* corner arm length over photos */
  --hge-escuadra-arm-s: 14px;   /* on icons (24px grid) */
  --hge-escuadra-inset: 14px;   /* inset from photo edge */

  /* ---- Layout ---- */
  --hge-page-margin:   var(--hge-space-12);
  --hge-container:     1200px;
  --hge-gutter:        24px;
  --hge-slide-w:       1280px;
  --hge-slide-h:       720px;
}
/* Holiday Golf Estates — Elevation, motion, texture
   Sombras largas, suaves, descendentes — usadas con parquedad. Sistema mayormente plano. */
:root {
  /* ---- Shadows (soft, long, low-opacity, downward) ---- */
  --hge-shadow-none:  none;
  --hge-shadow-card:  0 20px 40px -28px rgba(23,39,58,0.40);  /* raised paper / email */
  --hge-shadow-mock:  0 26px 50px -24px rgba(23,39,58,0.55);  /* stationery mock */
  --hge-shadow-photo: 0 6px 22px rgba(0,0,0,0.35);            /* logo drop on image */

  /* ---- Motion — serene, no bounce ---- */
  --hge-ease:        cubic-bezier(0.22, 0.61, 0.36, 1); /* @kind other */
  --hge-ease-inout:  cubic-bezier(0.65, 0, 0.35, 1); /* @kind other */
  --hge-dur-fast:    140ms; /* @kind other */
  --hge-dur:         240ms; /* @kind other */
  --hge-dur-slow:    420ms; /* @kind other */
  --hge-transition:  color var(--hge-dur) var(--hge-ease),
                     background-color var(--hge-dur) var(--hge-ease),
                     border-color var(--hge-dur) var(--hge-ease),
                     opacity var(--hge-dur) var(--hge-ease); /* @kind other */

  /* ---- Hover / press ---- */
  --hge-hover-dim:   0.72; /* @kind other */
  --hge-press-dim:   0.55; /* @kind other */

  /* ---- Escuadra texture (arena sobre medianoche, discreta) ---- */
  --hge-motif-tile:    150px; /* @kind spacing */
  --hge-motif-opacity: 0.13; /* @kind other */
  --hge-motif: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='150'%20height='150'%3E%3Cg%20fill='none'%20stroke='%23C9AD8F'%20stroke-width='2'%3E%3Cpath%20d='M30%2030%20h28%20M30%2030%20v28'/%3E%3Cpath%20d='M120%20120%20h-28%20M120%20120%20v-28'/%3E%3C/g%3E%3C/svg%3E"); /* @kind other */
}
/* Holiday Golf Estates — Component layer (source of truth).
   Rectilinear, serene, editorial. Classes consume tokens only.
   React primitives apply these classes; cards & kits reuse them. */

/* ============================================================
   TEXT PRIMITIVES
   ============================================================ */
.hge-eyebrow{
  font-family:var(--hge-font-sans); font-weight:var(--hge-w-semi);
  font-size:var(--hge-eyebrow-size); letter-spacing:var(--hge-eyebrow-track);
  text-transform:uppercase; color:var(--hge-eyebrow); margin:0;
}
.hge-eyebrow--onDark{ color:var(--hge-sand); }
.hge-eyebrow--stone{ color:var(--hge-label); }

.hge-display{
  font-family:var(--hge-font-display); font-weight:var(--hge-w-light);
  font-optical-sizing:auto; font-variation-settings:var(--hge-display-opsz);
  letter-spacing:var(--hge-track-display); line-height:var(--hge-lh-display);
  color:var(--hge-text); margin:0;
}
.hge-figure{
  font-family:var(--hge-font-display); font-weight:var(--hge-w-light);
  font-optical-sizing:auto; font-variation-settings:var(--hge-display-opsz);
  color:var(--hge-sand); line-height:0.9; margin:0;
}
.hge-editorial{
  font-family:var(--hge-font-editorial); font-style:italic;
  font-weight:var(--hge-w-regular); color:var(--hge-accent-ink);
  line-height:var(--hge-lh-title); margin:0;
}
.hge-mono{
  font-family:var(--hge-font-mono); font-size:11px; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--hge-label); margin:0;
}
.hge-body{
  font-family:var(--hge-font-sans); font-weight:var(--hge-w-light);
  font-size:var(--hge-body); line-height:var(--hge-lh-relaxed);
  color:var(--hge-text-muted); margin:0;
}

/* ============================================================
   ESCUADRA — the set-square motif (two opposite corners)
   Wrap any block; corners render at top-left + bottom-right.
   ============================================================ */
.hge-escuadra{ position:relative; }
.hge-escuadra::before,
.hge-escuadra::after{
  content:""; position:absolute; width:var(--hge-escuadra-arm);
  height:var(--hge-escuadra-arm); pointer-events:none;
  border-style:solid; border-color:var(--hge-escuadra-color); border-width:0;
}
.hge-escuadra::before{
  top:var(--hge-escuadra-inset); left:var(--hge-escuadra-inset);
  border-top-width:var(--hge-border-frame); border-left-width:var(--hge-border-frame);
}
.hge-escuadra::after{
  bottom:var(--hge-escuadra-inset); right:var(--hge-escuadra-inset);
  border-bottom-width:var(--hge-border-frame); border-right-width:var(--hge-border-frame);
}
.hge-escuadra--cream::before,.hge-escuadra--cream::after{ border-color:var(--hge-cream); }
.hge-escuadra--midnight::before,.hge-escuadra--midnight::after{ border-color:var(--hge-midnight); }
.hge-escuadra--flush::before{ top:0; left:0; }
.hge-escuadra--flush::after{ bottom:0; right:0; }
.hge-escuadra--tight::before,.hge-escuadra--tight::after{ width:22px; height:22px; }

/* ============================================================
   BUTTON — rectilinear, uppercase, spaced. No radius.
   ============================================================ */
.hge-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--hge-font-sans); font-weight:var(--hge-w-semi);
  font-size:12px; letter-spacing:var(--hge-tag-track); text-transform:uppercase;
  padding:15px 30px; border:var(--hge-border-hair) solid transparent;
  border-radius:var(--hge-radius); background:var(--hge-midnight); color:var(--hge-cream);
  cursor:pointer; text-decoration:none; white-space:nowrap;
  transition:var(--hge-transition); appearance:none;
}
.hge-btn:hover{ background:var(--hge-midnight-800); }
.hge-btn:active{ opacity:var(--hge-press-dim); }
.hge-btn--secondary{ background:transparent; color:var(--hge-midnight); border-color:var(--hge-midnight); }
.hge-btn--secondary:hover{ background:var(--hge-midnight); color:var(--hge-cream); }
.hge-btn--sand{ background:var(--hge-sand); color:var(--hge-midnight); }
.hge-btn--sand:hover{ background:var(--hge-sand-light); }
.hge-btn--ghost{
  background:transparent; color:var(--hge-midnight); padding:15px 0;
  border:0; border-bottom:var(--hge-border-rule) solid var(--hge-sand);
}
.hge-btn--ghost:hover{ background:transparent; color:var(--hge-accent-ink); }
.hge-btn--onDark{ color:var(--hge-cream); }
.hge-btn--onDark.hge-btn--secondary{ border-color:rgba(241,237,227,0.4); color:var(--hge-cream); }
.hge-btn--onDark.hge-btn--secondary:hover{ background:var(--hge-cream); color:var(--hge-midnight); }
.hge-btn--sm{ padding:10px 20px; font-size:11px; }
.hge-btn--lg{ padding:18px 38px; font-size:13px; }
.hge-btn:disabled{ opacity:0.4; cursor:not-allowed; }

/* ============================================================
   TAG / LABEL — spaced uppercase with a square arena bullet
   ============================================================ */
.hge-tag{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--hge-font-sans); font-weight:var(--hge-w-semi);
  font-size:12px; letter-spacing:var(--hge-tag-track); text-transform:uppercase;
  color:var(--hge-midnight);
}
.hge-tag::before{
  content:""; width:8px; height:8px; background:var(--hge-sand); flex:0 0 auto;
}
.hge-tag--onDark{ color:var(--hge-cream); }
.hge-tag--rule::before{ width:2px; height:14px; }        /* vertical rule variant */
.hge-tag--plain::before{ display:none; }

/* Attribute pill — the one rounded exception */
.hge-pill{
  display:inline-flex; align-items:center; border-radius:var(--hge-radius-pill);
  border:var(--hge-border-hair) solid rgba(23,39,58,0.25); padding:8px 18px;
  font-family:var(--hge-font-sans); font-size:12px; letter-spacing:0.08em;
  color:var(--hge-midnight); background:transparent;
}
.hge-pill--onDark{ border-color:rgba(241,237,227,0.3); color:var(--hge-cream); }

/* ============================================================
   DIVIDER / RULE
   ============================================================ */
.hge-divider{ border:0; border-top:var(--hge-border-hair) solid var(--hge-line); margin:0; }
.hge-divider--rule{ border-top:var(--hge-border-rule) solid var(--hge-line-strong); }
.hge-divider--sand{ border-top:var(--hge-border-rule) solid var(--hge-sand); }
.hge-divider--onDark{ border-top-color:var(--hge-line-on-dark); }

/* ============================================================
   FIELD — input / textarea. Underline, no box radius.
   ============================================================ */
.hge-field{ display:flex; flex-direction:column; gap:8px; }
.hge-field__label{
  font-family:var(--hge-font-sans); font-weight:var(--hge-w-semi); font-size:11px;
  letter-spacing:var(--hge-label-track); text-transform:uppercase; color:var(--hge-label);
}
.hge-field__input{
  font-family:var(--hge-font-sans); font-weight:var(--hge-w-light); font-size:15px;
  color:var(--hge-midnight); background:transparent; border:0;
  border-bottom:var(--hge-border-hair) solid rgba(23,39,58,0.3);
  padding:10px 0; border-radius:0; transition:var(--hge-transition); width:100%;
}
.hge-field__input::placeholder{ color:rgba(23,39,58,0.4); }
.hge-field__input:focus{ outline:none; border-bottom-color:var(--hge-sand); border-bottom-width:var(--hge-border-rule); }

/* ============================================================
   SEAL — the condensed H mark inside its escuadra
   ============================================================ */
.hge-seal{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:96px; height:96px; box-sizing:border-box; background:transparent;
}
.hge-seal__h{
  font-family:var(--hge-font-display); font-weight:var(--hge-w-light);
  font-optical-sizing:auto; font-variation-settings:var(--hge-display-opsz);
  color:var(--hge-midnight); line-height:1;
}
.hge-seal--solid{ background:var(--hge-midnight); }
.hge-seal--solid .hge-seal__h{ color:var(--hge-cream); }
.hge-seal--sand{ background:var(--hge-sand); }
.hge-seal--sand .hge-seal__h{ color:var(--hge-midnight); }
.hge-seal--round{ border-radius:var(--hge-radius-seal); }

/* ============================================================
   PRICE / FIGURE ROW
   ============================================================ */
.hge-price{
  font-family:var(--hge-font-display); font-weight:var(--hge-w-light);
  font-optical-sizing:auto; font-variation-settings:var(--hge-display-opsz);
  color:var(--hge-midnight); line-height:1; letter-spacing:0.01em;
}
.hge-price__ref{
  font-family:var(--hge-font-sans); font-weight:var(--hge-w-semi); font-size:12px;
  letter-spacing:0.28em; text-transform:uppercase; color:var(--hge-midnight);
}

/* ============================================================
   SPEC LIST — beds / baths / m² (mono, hairline separated)
   ============================================================ */
.hge-specs{ display:flex; flex-wrap:wrap; gap:0; }
.hge-spec{
  display:flex; flex-direction:column; gap:4px; padding:0 22px;
  border-left:var(--hge-border-hair) solid var(--hge-line);
}
.hge-spec:first-child{ border-left:0; padding-left:0; }
.hge-spec__v{ font-family:var(--hge-font-display); font-weight:var(--hge-w-regular); font-size:22px; color:var(--hge-midnight); line-height:1; }
.hge-spec__k{ font-family:var(--hge-font-sans); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--hge-label); }

/* ============================================================
   PROPERTY CARD (ficha)
   ============================================================ */
.hge-card{
  display:flex; flex-direction:column; background:var(--hge-cream);
  border:var(--hge-border-hair) solid var(--hge-line); border-radius:var(--hge-radius);
  overflow:hidden; transition:var(--hge-transition);
}
.hge-card__media{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--hge-midnight-800); }
.hge-card__media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform var(--hge-dur-slow) var(--hge-ease); }
.hge-card:hover .hge-card__media img{ transform:scale(1.03); }
.hge-card__body{ padding:22px 24px 26px; display:flex; flex-direction:column; gap:14px; }
.hge-card__title{ font-family:var(--hge-font-display); font-weight:var(--hge-w-light); font-optical-sizing:auto; font-variation-settings:var(--hge-display-opsz); font-size:28px; line-height:1.05; color:var(--hge-midnight); margin:0; }
.hge-card__sub{ font-family:var(--hge-font-editorial); font-style:italic; font-size:16px; color:var(--hge-accent-ink); margin:0; }

/* ============================================================
   PULLQUOTE — Newsreader italic, top rule
   ============================================================ */
.hge-quote{
  font-family:var(--hge-font-editorial); font-style:italic; font-weight:var(--hge-w-regular);
  font-size:24px; line-height:1.5; color:var(--hge-midnight);
  border-top:var(--hge-border-rule) solid var(--hge-line-strong); padding-top:24px; margin:0;
}
.hge-quote--onDark{ color:var(--hge-cream); border-top-color:var(--hge-line-on-dark); }

/* ============================================================
   MOTIF SURFACE — escuadra texture on midnight
   ============================================================ */
.hge-motif{ position:relative; background-color:var(--hge-midnight); }
.hge-motif::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:var(--hge-motif); background-size:var(--hge-motif-tile) var(--hge-motif-tile);
  opacity:var(--hge-motif-opacity);
}
.hge-motif > *{ position:relative; }

/* ============================================================
   HGE override (del diseño): 20px en botones e imaginería
   ============================================================ */
.hge-btn { border-radius: 20px; }
.hge-card { border-radius: 20px; overflow: hidden; }
.hge-card__media, .hge-card__media img { border-radius: 20px 20px 0 0; }

/* ============================================================
   BASE / RESET
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--hge-cream); color: var(--hge-midnight);
  font-family: var(--hge-font-sans); font-size: 15px; line-height: var(--hge-lh-body);
}
img { max-width: 100%; height: auto; }
a { color: var(--hge-midnight); transition: var(--hge-transition); }
h1,h2,h3,h4 { font-family: var(--hge-font-display); font-weight: var(--hge-w-light);
  font-optical-sizing: auto; font-variation-settings: var(--hge-display-opsz);
  letter-spacing: var(--hge-track-display); line-height: var(--hge-lh-tight); color: var(--hge-midnight); }
.hge-container { max-width: var(--hge-container); margin: 0 auto; }
.hge-section-pad { padding: 96px 64px; }

/* Helpers heredados de las páginas Elementor existentes */
.hge-esc{position:relative}
.hge-esc::before,.hge-esc::after{content:"";position:absolute;width:48px;height:48px;z-index:3;pointer-events:none}
.hge-esc::before{top:20px;left:20px;border-top:3px solid #F1EDE3;border-left:3px solid #F1EDE3}
.hge-esc::after{bottom:20px;right:20px;border-bottom:3px solid #F1EDE3;border-right:3px solid #F1EDE3}
.hge-esc--sand::before{top:0;left:0;border-color:var(--hge-sand)}
.hge-esc--sand::after{bottom:0;right:0;border-color:var(--hge-sand)}
.hge-esc--card::before{top:14px;left:14px;width:30px;height:30px}
.hge-esc--card::after{bottom:14px;right:14px;width:30px;height:30px}
.hge-em em{font-family:var(--hge-font-editorial);font-style:italic;font-weight:400;color:var(--hge-sand)}
.hge-em--bronze em{color:var(--hge-bronze)}

/* ============================================================
   HEADER — fiel al diseño: absoluto y transparente sobre hero
   ============================================================ */
.hge-header {
  position: absolute; top: 0; left: 0; right: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  padding: 28px 64px; transition: background-color var(--hge-dur) var(--hge-ease), padding var(--hge-dur) var(--hge-ease);
}
.hge-header__logo { display: block; line-height: 0; }
.hge-header__logo img { width: 118px; height: auto; display: block; }
.hge-header__logo--positivo { display: none; }
.hge-nav { display: flex; align-items: center; gap: 32px; }
.hge-nav a.hge-nav__link {
  font-size: 12px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(241,237,227,0.85); text-decoration: none;
}
.hge-nav a.hge-nav__link:hover { color: var(--hge-cream); }
.hge-nav__lang { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 600; letter-spacing: 0.14em; }
.hge-nav__lang a { text-decoration: none; text-transform: uppercase; color: rgba(241,237,227,0.55); }
.hge-nav__lang a.is-active { color: var(--hge-sand); }
.hge-nav__lang .sep { width: 1px; height: 12px; background: rgba(241,237,227,0.3); display: inline-block; }

/* Variante sólida: páginas interiores y al hacer scroll */
.hge-header--solid, .hge-header.is-scrolled {
  position: fixed; background: var(--hge-midnight); padding: 16px 64px;
  box-shadow: var(--hge-shadow-card);
}
body.hge-has-solid-header main { padding-top: 0; }
.hge-header--static { position: relative; background: var(--hge-midnight); }

/* Burger móvil */
.hge-burger { display: none; background: none; border: 0; cursor: pointer; padding: 8px; }
.hge-burger span { display: block; width: 24px; height: 2px; background: var(--hge-cream); margin: 5px 0; transition: var(--hge-transition); }

/* ============================================================
   FOOTER — fiel al diseño: crema, 4 columnas, filo medianoche
   ============================================================ */
.hge-footer { background: var(--hge-cream); padding: 72px 64px 40px; border-top: 2px solid var(--hge-midnight); }
.hge-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 56px; }
.hge-footer__brand { display: flex; flex-direction: column; gap: 22px; }
.hge-footer__brand img { width: 150px; height: auto; }
.hge-footer__brand p { font-size: 13px; max-width: 280px; color: var(--hge-text-muted); margin: 0; line-height: var(--hge-lh-relaxed); }
.hge-footer__brand a { color: var(--hge-midnight); text-decoration: none; }
.hge-footer h4.hge-footer__title { font-family: var(--hge-font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--hge-bronze); margin: 0 0 20px; font-weight: 400; }
.hge-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.hge-footer__col a { font-size: 14px; text-decoration: none; color: var(--hge-text-muted); }
.hge-footer__col a:hover { color: var(--hge-midnight); }
.hge-footer__lang { display: flex; gap: 12px; margin-top: 14px; }
.hge-footer__lang a { font-family: var(--hge-font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; color: var(--hge-label); }
.hge-footer__lang a.is-active { color: var(--hge-midnight); }
.hge-footer__bottom { margin-top: 64px; padding-top: 24px; border-top: 1px solid var(--hge-line); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hge-footer__bottom .slogan { font-family: var(--hge-font-editorial); font-style: italic; font-size: 14px; color: var(--hge-bronze); margin: 0; }

/* ============================================================
   FICHA DE PROPIEDAD (grid + tarjeta del diseño)
   ============================================================ */
.hge-props-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.hge-card a.hge-card__link { display: block; color: inherit; text-decoration: none; }
.hge-card__media .esc-tl { position: absolute; left: 14px; top: 14px; width: 30px; height: 30px; border-top: 3px solid var(--hge-cream); border-left: 3px solid var(--hge-cream); z-index: 2; }
.hge-card__media .esc-br { position: absolute; right: 14px; bottom: 14px; width: 30px; height: 30px; border-bottom: 3px solid var(--hge-cream); border-right: 3px solid var(--hge-cream); z-index: 2; }
.hge-card__pricebar { margin-top: 4px; padding-top: 16px; border-top: 1px solid var(--hge-line); display: flex; flex-direction: column; gap: 10px; }
.hge-card__pricebar .hge-price { font-size: 26px; }
.hge-card__refrow { display: flex; align-items: center; gap: 10px; }
.hge-card__refrow .dot { width: 8px; height: 8px; background: var(--hge-sand); }
.hge-card .hge-tag { font-size: 11px; }

/* ============================================================
   SINGLE PROPERTY
   ============================================================ */
.hge-single__hero { position: relative; height: 560px; background: var(--hge-midnight-800); overflow: hidden; }
.hge-single__hero img.cover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hge-single__hero .veil { position: absolute; inset: 0; background: var(--hge-veil-scrim); }
.hge-single__hero .esc-tl { position: absolute; left: 20px; top: 20px; width: 48px; height: 48px; border-top: 3px solid var(--hge-cream); border-left: 3px solid var(--hge-cream); z-index: 2; }
.hge-single__hero .esc-br { position: absolute; right: 20px; bottom: 20px; width: 48px; height: 48px; border-bottom: 3px solid var(--hge-cream); border-right: 3px solid var(--hge-cream); z-index: 2; }
.hge-single__hero-copy { position: absolute; left: 64px; right: 64px; bottom: 56px; z-index: 3; }
.hge-single__hero-copy h1 { font-size: 52px; color: var(--hge-cream); margin: 10px 0 0; max-width: 900px; }
.hge-single__bar { background: #fff; border-bottom: 1px solid var(--hge-line); padding: 30px 64px; display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.hge-single__bar .hge-price { font-size: 34px; }
.hge-single__body { padding: 88px 64px; display: grid; grid-template-columns: 1.4fr 0.9fr; gap: 72px; align-items: start; }
.hge-single__desc p { color: var(--hge-text-muted); line-height: var(--hge-lh-relaxed); margin: 0 0 18px; font-size: 15px; }
.hge-single__aside { border-top: 2px solid var(--hge-midnight); padding-top: 28px; position: sticky; top: 110px; }
.hge-single__aside .row { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--hge-line); font-size: 13px; }
.hge-single__aside .row .k { font-family: var(--hge-font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--hge-label); }
.hge-single__aside .row .v { color: var(--hge-midnight); font-weight: 500; }
.hge-single__features { padding: 0 64px 24px; }
.hge-single__features ul { list-style: none; padding: 0; margin: 24px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px 32px; }
.hge-single__features li { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--hge-text-muted); }
.hge-single__features li::before { content: ""; width: 8px; height: 8px; background: var(--hge-sand); flex: 0 0 auto; }
.hge-single__gallery { padding: 48px 64px 88px; }
.hge-single__gallery .grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 28px; }
.hge-single__gallery .grid a { display: block; position: relative; aspect-ratio: 4/3; overflow: hidden; border-radius: 20px; }
.hge-single__gallery .grid img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--hge-dur-slow) var(--hge-ease); }
.hge-single__gallery .grid a:hover img { transform: scale(1.03); }
.hge-single__map { padding: 0 64px 88px; }
.hge-single__map iframe { width: 100%; height: 440px; border: 0; border-radius: 20px; display: block; }
.hge-cta-band { background: var(--hge-midnight); padding: 96px 64px; text-align: center; }
.hge-cta-band h2 { color: var(--hge-cream); font-size: 44px; margin: 0 0 14px; }
.hge-cta-band p.ed { font-family: var(--hge-font-editorial); font-style: italic; font-size: 19px; color: var(--hge-sand); margin: 0 0 30px; }
.hge-cta-band .btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* Archive header */
.hge-archive__head { padding: 150px 64px 48px; background: var(--hge-cream); }
.hge-archive__head h1 { font-size: 52px; margin: 12px 0 0; }
.hge-archive__wrap { padding: 12px 64px 88px; background: var(--hge-cream); }
.hge-pagination { display: flex; gap: 8px; justify-content: center; margin-top: 48px; }
.hge-pagination .page-numbers { font-family: var(--hge-font-mono); font-size: 12px; letter-spacing: 0.1em; padding: 10px 16px; border: 1px solid var(--hge-line); text-decoration: none; color: var(--hge-midnight); border-radius: 20px; }
.hge-pagination .page-numbers.current { background: var(--hge-midnight); color: var(--hge-cream); border-color: var(--hge-midnight); }

/* Elementor: sin padding en contenido de página */
.hge-page-content > .elementor { margin: 0; }
main.hge-main { display: block; }

/* WhatsApp flotante */
.hge-wa { position: fixed; right: 28px; bottom: 28px; width: 56px; height: 56px; background: var(--hge-midnight);
  display: flex; align-items: center; justify-content: center; z-index: 60; text-decoration: none;
  box-shadow: var(--hge-shadow-card); border-radius: 20px; }
.hge-wa:hover { background: var(--hge-midnight-800); }
.hge-wa svg { width: 24px; height: 24px; stroke: var(--hge-cream); fill: none; stroke-width: 2; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .hge-header, .hge-header--solid, .hge-header.is-scrolled { padding-left: 28px; padding-right: 28px; }
  .hge-props-grid { grid-template-columns: repeat(2, 1fr); }
  .hge-single__body { grid-template-columns: 1fr; gap: 48px; }
  .hge-single__features ul { grid-template-columns: repeat(2, 1fr); }
  .hge-footer__grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .hge-archive__head, .hge-archive__wrap, .hge-single__bar, .hge-single__body, .hge-single__gallery, .hge-single__map, .hge-single__features, .hge-cta-band, .hge-footer { padding-left: 28px; padding-right: 28px; }
  .hge-single__hero-copy { left: 28px; right: 28px; }
}
@media (max-width: 767px) {
  .hge-nav { position: fixed; inset: 0; background: var(--hge-midnight); flex-direction: column; justify-content: center;
    gap: 26px; transform: translateY(-100%); transition: transform var(--hge-dur-slow) var(--hge-ease); z-index: 40; }
  .hge-nav.is-open { transform: translateY(0); }
  .hge-burger { display: block; z-index: 45; }
  .hge-props-grid { grid-template-columns: 1fr; }
  .hge-footer__grid { grid-template-columns: 1fr; }
  .hge-footer__bottom { flex-direction: column; text-align: center; }
  .hge-single__hero-copy h1 { font-size: 34px; }
  .hge-archive__head h1 { font-size: 36px; }
  .hge-single__features ul, .hge-single__gallery .grid { grid-template-columns: 1fr; }
  .hge-specs { row-gap: 12px; }
}

/* ============================================================
   FICHA DE PROPIEDAD v2 — fiel al PDF "HGE Propiedad"
   ============================================================ */
.hgep-hero { background: var(--hge-midnight); padding: 140px 64px 64px; }
.hgep-crumb { font-family: var(--hge-font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(241,237,227,.55); margin: 0 0 22px; }
.hgep-crumb a { color: rgba(241,237,227,.55); text-decoration: none; }
.hgep-pills { display: flex; gap: 10px; margin-bottom: 26px; flex-wrap: wrap; }
.hgep-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 8px 18px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; border: 1px solid rgba(241,237,227,.35); color: var(--hge-cream); }
.hgep-pill--sand { background: var(--hge-sand); border-color: var(--hge-sand); color: var(--hge-midnight); font-weight: 600; }
.hgep-titlerow { display: grid; grid-template-columns: 1.5fr auto; gap: 48px; align-items: end; margin-bottom: 14px; }
.hgep-titlerow h1 { font-size: 54px; color: var(--hge-cream); margin: 0; line-height: 1.08; max-width: 820px; }
.hgep-titlerow h1 em { font-family: var(--hge-font-editorial); font-style: italic; font-weight: 400; color: var(--hge-sand); }
.hgep-priceblock { text-align: right; }
.hgep-priceblock .price { font-family: var(--hge-font-display); font-weight: 300; font-size: 44px; color: var(--hge-cream); line-height: 1; }
.hgep-priceblock .ref { margin-top: 12px; display: flex; align-items: center; gap: 10px; justify-content: flex-end;
  font-family: var(--hge-font-mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: rgba(241,237,227,.7); }
.hgep-priceblock .ref::before { content: ""; width: 8px; height: 8px; background: var(--hge-sand); }
.hgep-sub { color: rgba(241,237,227,.72); font-size: 15px; margin: 0 0 44px; font-weight: 300; }
.hgep-mosaic { display: grid; grid-template-columns: 1.55fr 1fr; gap: 20px; }
.hgep-mosaic__main { position: relative; border-radius: 20px; overflow: hidden; min-height: 620px; }
.hgep-mosaic__main img, .hgep-mosaic__side a img { width: 100%; height: 100%; object-fit: cover; display: block; position: absolute; inset: 0; }
.hgep-mosaic__main .esc-tl { position: absolute; left: 22px; top: 22px; width: 48px; height: 48px; border-top: 3px solid var(--hge-cream); border-left: 3px solid var(--hge-cream); z-index: 2; }
.hgep-mosaic__main .esc-br { position: absolute; right: 22px; bottom: 22px; width: 48px; height: 48px; border-bottom: 3px solid var(--hge-cream); border-right: 3px solid var(--hge-cream); z-index: 2; }
.hgep-mosaic__side { display: grid; grid-template-rows: 1fr 1fr; gap: 20px; }
.hgep-mosaic__side a { position: relative; border-radius: 20px; overflow: hidden; display: block; min-height: 300px; }
.hgep-mosaic__side .morelink::after { content: ""; position: absolute; inset: 0; background: rgba(16,27,41,.45); }
.hgep-mosaic__side .morelink span { position: absolute; z-index: 2; top: 50%; left: 50%; transform: translate(-50%,-50%);
  border: 1px solid rgba(241,237,227,.7); color: var(--hge-cream); border-radius: 999px; padding: 12px 24px;
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; white-space: nowrap; }
.hgep-specsbar { background: #fff; border-bottom: 1px solid var(--hge-line); padding: 40px 64px; display: flex; flex-wrap: wrap; }
.hgep-specsbar .sp { flex: 1 1 0; min-width: 130px; padding: 4px 28px; border-left: 1px solid var(--hge-line); }
.hgep-specsbar .sp:first-child { border-left: 0; padding-left: 0; }
.hgep-specsbar .v { font-family: var(--hge-font-display); font-weight: 300; font-size: 42px; color: var(--hge-sand); line-height: 1; }
.hgep-specsbar .k { font-family: var(--hge-font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--hge-label); margin-top: 8px; }
.hgep-body { background: var(--hge-cream); padding: 88px 64px; display: grid; grid-template-columns: 1.45fr 1fr; gap: 64px; align-items: start; }
.hgep-body h2 { font-size: 42px; margin: 14px 0 26px; max-width: 560px; }
.hgep-body .desc p { color: var(--hge-text-muted); font-size: 15px; line-height: 1.8; margin: 0 0 18px; max-width: 620px; }
.hgep-body .pull { font-family: var(--hge-font-editorial); font-style: italic; font-size: 20px; color: var(--hge-bronze); margin: 30px 0 0; max-width: 560px; line-height: 1.5; }
.hgep-card { background: #fff; border-radius: 20px; box-shadow: var(--hge-shadow-card); padding: 36px 34px; position: sticky; top: 110px; }
.hgep-card .ref { font-family: var(--hge-font-mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--hge-bronze); }
.hgep-card .price { font-family: var(--hge-font-display); font-weight: 300; font-size: 40px; color: var(--hge-midnight); margin: 10px 0 12px; }
.hgep-card .note { font-size: 13px; color: var(--hge-text-muted); line-height: 1.6; margin: 0 0 24px; }
.hgep-card .hge-btn { width: 100%; margin-bottom: 12px; text-align: center; justify-content: center; }
.hgep-card hr { border: 0; border-top: 1px solid var(--hge-line); margin: 24px 0; }
.hgep-card .who { font-family: var(--hge-font-mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--hge-bronze); margin-bottom: 12px; }
.hgep-card .contact p { margin: 0 0 4px; font-size: 15px; color: var(--hge-midnight); }
.hgep-card .contact a { color: var(--hge-midnight); text-decoration: none; }
.hgep-card .quote { font-family: var(--hge-font-editorial); font-style: italic; font-size: 15px; color: var(--hge-bronze); margin: 18px 0 0; line-height: 1.55; }
.hgep-features { background: #fff; padding: 88px 64px; }
.hgep-features .head { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 44px; }
.hgep-features h2 { font-size: 42px; margin: 14px 0 0; }
.hgep-features .badge { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--hge-midnight); border-left: 3px solid var(--hge-sand); padding-left: 14px; white-space: nowrap; }
.hgep-chips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.hgep-chip { position: relative; background: var(--hge-cream); border-radius: 18px; padding: 26px 28px 26px 62px; font-size: 14px; color: var(--hge-midnight); }
.hgep-chip::before { content: ""; position: absolute; left: 22px; top: 24px; width: 14px; height: 14px; border-top: 2px solid var(--hge-sand); border-left: 2px solid var(--hge-sand); }
.hgep-chip::after { content: ""; position: absolute; left: 30px; top: 32px; width: 8px; height: 8px; background: var(--hge-midnight); border-radius: 2px; opacity: .85; }
.hgep-slider { background: var(--hge-cream); padding: 88px 64px; }
.hgep-slider .head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 32px; }
.hgep-slider h2 { font-size: 42px; margin: 12px 0 0; }
.hgep-slider .count { font-family: var(--hge-font-mono); font-size: 12px; letter-spacing: .14em; color: var(--hge-label); }
.hgep-stage { position: relative; border-radius: 20px; overflow: hidden; background: var(--hge-midnight-800); }
.hgep-stage .frame { position: relative; aspect-ratio: 16/9; }
.hgep-stage .frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hgep-stage .esc-tl { position: absolute; left: 22px; top: 22px; width: 48px; height: 48px; border-top: 3px solid var(--hge-cream); border-left: 3px solid var(--hge-cream); z-index: 2; }
.hgep-stage .bar { background: var(--hge-midnight); display: flex; align-items: center; justify-content: space-between; padding: 22px 28px; position: relative; }
.hgep-stage .bar .cap { font-family: var(--hge-font-editorial); font-style: italic; font-size: 15px; color: var(--hge-cream); }
.hgep-stage .bar .ref { font-family: var(--hge-font-mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: rgba(241,237,227,.6); }
.hgep-stage .bar .esc-br { position: absolute; right: 14px; bottom: 12px; width: 34px; height: 34px; border-bottom: 3px solid rgba(241,237,227,.7); border-right: 3px solid rgba(241,237,227,.7); }
.hgep-arrow { position: absolute; top: 40%; z-index: 3; width: 52px; height: 52px; border-radius: 16px; background: var(--hge-midnight); color: var(--hge-cream);
  border: 1px solid rgba(241,237,227,.35); display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 20px; transition: var(--hge-transition); }
.hgep-arrow:hover { background: var(--hge-midnight-800); }
.hgep-arrow--prev { left: 28px; } .hgep-arrow--next { right: 28px; }
.hgep-thumbs { display: grid; grid-template-columns: repeat(8, 1fr); gap: 14px; margin-top: 18px; }
.hgep-thumbs button { border: 2px solid transparent; border-radius: 12px; overflow: hidden; padding: 0; cursor: pointer; background: none; aspect-ratio: 4/3; opacity: .55; transition: var(--hge-transition); }
.hgep-thumbs button img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hgep-thumbs button.is-active { border-color: var(--hge-sand); opacity: 1; }
.hgep-quoteband { background: var(--hge-midnight); padding: 110px 64px; }
.hgep-quoteband .in { max-width: 900px; margin: 0 auto; text-align: center; position: relative; padding: 56px 72px; }
.hgep-quoteband .esc-tl { position: absolute; left: 0; top: 0; width: 48px; height: 48px; border-top: 3px solid var(--hge-sand); border-left: 3px solid var(--hge-sand); }
.hgep-quoteband .esc-br { position: absolute; right: 0; bottom: 0; width: 48px; height: 48px; border-bottom: 3px solid var(--hge-sand); border-right: 3px solid var(--hge-sand); }
.hgep-quoteband .eb { font-family: var(--hge-font-sans); font-weight: 600; font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--hge-sand); margin: 0 0 28px; }
.hgep-quoteband p.q { font-family: var(--hge-font-display); font-weight: 300; font-size: 44px; color: var(--hge-cream); line-height: 1.2; margin: 0; }
.hgep-quoteband p.q em { font-family: var(--hge-font-editorial); font-style: italic; font-weight: 400; color: var(--hge-sand); }
.hgep-area { background: var(--hge-cream); padding: 88px 64px; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.hgep-area h2 { font-size: 42px; margin: 14px 0 22px; }
.hgep-area .desc { color: var(--hge-text-muted); font-size: 15px; line-height: 1.8; max-width: 560px; }
.hgep-area table { width: 100%; border-collapse: collapse; margin-top: 30px; }
.hgep-area td { padding: 20px 0; border-top: 1px solid var(--hge-line); font-size: 15px; color: var(--hge-midnight); }
.hgep-area td:last-child { text-align: right; font-family: var(--hge-font-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--hge-bronze); }
.hgep-map { position: relative; border-radius: 20px; overflow: hidden; min-height: 430px; display: flex; align-items: center; justify-content: center; text-align: center; }
.hgep-map img.bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hgep-map::before { content: ""; position: absolute; inset: 0; background: rgba(16,27,41,.45); }
.hgep-map .in { position: relative; z-index: 2; padding: 40px; }
.hgep-map .eb { font-family: var(--hge-font-mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--hge-cream); margin: 0 0 20px; }
.hgep-map .txt { font-family: var(--hge-font-editorial); font-style: italic; font-size: 18px; color: var(--hge-cream); max-width: 420px; margin: 0 auto 26px; line-height: 1.5; }
.hgep-map .esc-br { position: absolute; right: 20px; bottom: 20px; width: 40px; height: 40px; border-bottom: 3px solid rgba(241,237,227,.8); border-right: 3px solid rgba(241,237,227,.8); z-index: 2; }
.hgep-similar { background: #fff; padding: 88px 64px; }
.hgep-similar .head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 44px; }
.hgep-similar h2 { font-size: 42px; margin: 12px 0 0; }
@media (max-width: 1024px) {
  .hgep-hero, .hgep-specsbar, .hgep-body, .hgep-features, .hgep-slider, .hgep-quoteband, .hgep-area, .hgep-similar { padding-left: 28px; padding-right: 28px; }
  .hgep-titlerow, .hgep-body, .hgep-area { grid-template-columns: 1fr; }
  .hgep-priceblock { text-align: left; }
  .hgep-priceblock .ref { justify-content: flex-start; }
  .hgep-mosaic { grid-template-columns: 1fr; }
  .hgep-mosaic__main { min-height: 420px; }
  .hgep-chips { grid-template-columns: repeat(2, 1fr); }
  .hgep-thumbs { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 767px) {
  .hgep-titlerow h1 { font-size: 36px; }
  .hgep-chips { grid-template-columns: 1fr; }
  .hgep-specsbar .sp { flex: 1 1 45%; padding: 10px 16px; }
  .hgep-quoteband p.q { font-size: 30px; }
}

/* Chips con icono Lucide + escuadra (v2) */
.hgep-chip { display: flex; align-items: center; gap: 18px; padding: 20px 24px; }
.hgep-chip::before, .hgep-chip::after { content: none; }
.hgep-chip .ic { position: relative; width: 44px; height: 44px; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; }
.hgep-chip .ic svg { width: 22px; height: 22px; stroke: var(--hge-midnight); stroke-width: 2; }
.hgep-chip .ic::before { content: ""; position: absolute; left: 0; top: 0; width: 13px; height: 13px; border-top: 2px solid var(--hge-sand); border-left: 2px solid var(--hge-sand); }
.hgep-chip .ic::after { content: ""; position: absolute; right: 0; bottom: 0; width: 13px; height: 13px; border-bottom: 2px solid var(--hge-sand); border-right: 2px solid var(--hge-sand); }

/* Escuadras más separadas de los bordes de las imágenes */
.hge-card__media .esc-tl { left: 24px; top: 24px; }
.hge-card__media .esc-br { right: 24px; bottom: 24px; }
.hge-esc--card::before { top: 24px; left: 24px; }
.hge-esc--card::after { bottom: 24px; right: 24px; }
.hge-esc::before { top: 30px; left: 30px; }
.hge-esc::after { bottom: 30px; right: 30px; }
.hgep-mosaic__main .esc-tl { left: 32px; top: 32px; }
.hgep-mosaic__main .esc-br { right: 32px; bottom: 32px; }
.hgep-stage .esc-tl { left: 32px; top: 32px; }
.hge-single__hero .esc-tl { left: 32px; top: 32px; }
.hge-single__hero .esc-br { right: 32px; bottom: 32px; }
.hge-esc--sand::before { top: 14px; left: 14px; }
.hge-esc--sand::after { bottom: 14px; right: 14px; }

/* ============================================================
   MOTION PACK — hovers y microinteracciones (easings del DS)
   ============================================================ */
/* Iconos de características: crecen al pasar el ratón */
.hgep-chip { transition: transform var(--hge-dur) var(--hge-ease), background-color var(--hge-dur) var(--hge-ease), box-shadow var(--hge-dur) var(--hge-ease); }
.hgep-chip:hover { transform: translateY(-3px); background: #fff; box-shadow: var(--hge-shadow-card); }
.hgep-chip .ic svg { transition: transform var(--hge-dur) var(--hge-ease); }
.hgep-chip:hover .ic svg { transform: scale(1.22); }
.hgep-chip .ic::before, .hgep-chip .ic::after { transition: transform var(--hge-dur) var(--hge-ease); }
.hgep-chip:hover .ic::before { transform: translate(-3px, -3px); }
.hgep-chip:hover .ic::after { transform: translate(3px, 3px); }

/* Tarjetas de propiedad: elevación + zoom de foto */
.hge-card { transition: transform var(--hge-dur-slow) var(--hge-ease), box-shadow var(--hge-dur-slow) var(--hge-ease); }
.hge-card:hover { transform: translateY(-5px); box-shadow: var(--hge-shadow-mock); }
.hge-card:hover .hge-card__media img { transform: scale(1.05); }
.hge-card__media .esc-tl, .hge-card__media .esc-br { transition: transform var(--hge-dur) var(--hge-ease); }
.hge-card:hover .hge-card__media .esc-tl { transform: translate(-4px, -4px); }
.hge-card:hover .hge-card__media .esc-br { transform: translate(4px, 4px); }

/* Botones: elevación sutil + presión */
.hge-btn { transition: var(--hge-transition), transform var(--hge-dur-fast) var(--hge-ease), box-shadow var(--hge-dur) var(--hge-ease); will-change: transform; }
.hge-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -14px rgba(23,39,58,.5); }
.hge-btn:active { transform: translateY(0) scale(.98); }

/* Enlaces de navegación y footer: subrayado que barre */
.hge-nav a.hge-nav__link, .hge-footer__col a { background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-size: 0% 1px; background-position: 0 100%; transition: background-size var(--hge-dur) var(--hge-ease), color var(--hge-dur) var(--hge-ease); padding-bottom: 2px; }
.hge-nav a.hge-nav__link:hover, .hge-footer__col a:hover { background-size: 100% 1px; }

/* Logo: respiración sutil */
.hge-header__logo img { transition: transform var(--hge-dur) var(--hge-ease), opacity var(--hge-dur) var(--hge-ease); }
.hge-header__logo:hover img { transform: scale(1.04); }

/* Mosaico: zoom en fotos laterales + pill que se llena */
.hgep-mosaic__main img, .hgep-mosaic__side a img { transition: transform var(--hge-dur-slow) var(--hge-ease); }
.hgep-mosaic__main:hover img, .hgep-mosaic__side a:hover img { transform: scale(1.045); }
.hgep-mosaic__side .morelink span { transition: var(--hge-transition); }
.hgep-mosaic__side .morelink:hover span { background: var(--hge-sand); border-color: var(--hge-sand); color: var(--hge-midnight); }

/* Slider: fundido del cambio de foto + hover en miniaturas y flechas */
#hgep-main { transition: opacity var(--hge-dur) var(--hge-ease); }
#hgep-main.is-fading { opacity: 0; }
.hgep-thumbs button { transition: transform var(--hge-dur) var(--hge-ease), opacity var(--hge-dur) var(--hge-ease), border-color var(--hge-dur) var(--hge-ease); }
.hgep-thumbs button:hover { transform: translateY(-3px) scale(1.05); opacity: 1; }
.hgep-arrow:hover { transform: scale(1.1); }
.hgep-arrow { transition: var(--hge-transition), transform var(--hge-dur-fast) var(--hge-ease); }

/* Galerías Elementor y tiles */
.hge-gallery .gallery-item img, .hge-carousel img { transition: transform var(--hge-dur-slow) var(--hge-ease), box-shadow var(--hge-dur-slow) var(--hge-ease); }
.hge-gallery .gallery-item:hover img, .hge-carousel .swiper-slide:hover img { transform: scale(1.04); }
.hge-page-content a.e-con { transition: transform var(--hge-dur-slow) var(--hge-ease), box-shadow var(--hge-dur-slow) var(--hge-ease); }
.hge-page-content a.e-con:hover { transform: translateY(-5px); box-shadow: var(--hge-shadow-card); }

/* Filas de zona / specs: acento al pasar */
.hgep-area tr { transition: background-color var(--hge-dur) var(--hge-ease); }
.hgep-area tr:hover { background: rgba(201,173,143,.08); }
.hgep-specsbar .sp .v { transition: transform var(--hge-dur) var(--hge-ease), color var(--hge-dur) var(--hge-ease); display: inline-block; }
.hgep-specsbar .sp:hover .v { transform: scale(1.12); color: var(--hge-bronze); }

/* WhatsApp flotante */
.hge-wa { transition: var(--hge-transition), transform var(--hge-dur) var(--hge-ease); }
.hge-wa:hover { transform: translateY(-4px) scale(1.06); }

/* ============================================================
   SCROLL REVEAL — aparición serena al entrar en viewport
   ============================================================ */
.hge-reveal { opacity: 0; transform: translateY(26px); transition: opacity var(--hge-dur-slow) var(--hge-ease), transform var(--hge-dur-slow) var(--hge-ease); transition-delay: var(--hge-rd, 0ms); }
.hge-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .hge-reveal { opacity: 1; transform: none; transition: none; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Slider sin barra de caption (retirada a petición) */
.hgep-stage { background: transparent; }
.hgep-stage .frame { border-radius: 20px; overflow: hidden; }

/* Parallax suave en fotos grandes */
.hge-parallax { will-change: transform; transform: scale(1.12); }

/* Cabecera de la home: degradado azul → transparente (se ve el fondo) */
body.hge-transparent-header .hge-header:not(.is-scrolled) {
  background: linear-gradient(180deg, rgba(23,39,58,0.82) 0%, rgba(23,39,58,0.38) 55%, rgba(23,39,58,0) 100%);
  padding-bottom: 44px;
}
.hge-header.is-scrolled {
  background: rgba(23,39,58,0.90);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

/* Fix: Elementor usa ::before en contenedores (overlay) y pisaba la escuadra superior izquierda */
.e-con.hge-esc::before, .hge-esc::before {
  content: "" !important; position: absolute !important; inset: auto !important;
  top: 30px !important; left: 30px !important; width: 48px !important; height: 48px !important;
  z-index: 3 !important; pointer-events: none !important; background: none !important;
  border: 0 !important; border-top: 3px solid #F1EDE3 !important; border-left: 3px solid #F1EDE3 !important;
  opacity: 1 !important; border-radius: 0 !important; transition: none !important;
}
.e-con.hge-esc--sand::before, .hge-esc--sand::before {
  top: 14px !important; left: 14px !important;
  border-top-color: var(--hge-sand) !important; border-left-color: var(--hge-sand) !important;
}
.e-con.hge-esc--card::before, .hge-esc--card::before {
  top: 24px !important; left: 24px !important; width: 30px !important; height: 30px !important;
  border-top-color: #F1EDE3 !important; border-left-color: #F1EDE3 !important;
}

/* Escuadras: más aire respecto a los bordes (global) */
.e-con.hge-esc::before, .hge-esc::before { top: 40px !important; left: 40px !important; }
.hge-esc::after { bottom: 40px; right: 40px; }
.e-con.hge-esc--sand::before, .hge-esc--sand::before { top: 24px !important; left: 24px !important; }
.hge-esc--sand::after { bottom: 24px; right: 24px; }
.e-con.hge-esc--card::before, .hge-esc--card::before { top: 34px !important; left: 34px !important; }
.hge-esc--card::after { bottom: 34px; right: 34px; }
.hge-card__media .esc-tl { left: 34px; top: 34px; }
.hge-card__media .esc-br { right: 34px; bottom: 34px; }
.hgep-mosaic__main .esc-tl { left: 40px; top: 40px; }
.hgep-mosaic__main .esc-br { right: 40px; bottom: 40px; }
.hgep-stage .esc-tl { left: 40px; top: 40px; }
.hge-single__hero .esc-tl { left: 40px; top: 40px; }
.hge-single__hero .esc-br { right: 40px; bottom: 40px; }

/* Tarjetas de la home: imágenes al mismo tamaño (cover, sin deformar) */
.hge-card-el img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

/* Bandas oscuras: más aire vertical entre frases */
[id="contact"] .elementor-widget-heading + .elementor-widget-heading,
[id="contact"] .elementor-widget-heading + .elementor-widget-text-editor,
[id="promise"] .elementor-widget-heading + .elementor-widget-heading { margin-top: 20px; }
[id="contact"] .elementor-widget-text-editor + .elementor-widget-text-editor { margin-top: 16px; }
[id="contact"] .e-con[class*="elementor-element"]:last-child { margin-top: 26px; }
.hge-cta-band h2 { margin: 16px 0 22px; }
.hge-cta-band p.ed { margin-bottom: 34px; }
.hgep-quoteband .eb { margin-bottom: 34px; }

/* Grid lifestyle 3 columnas con iconos */
.hge-lifegrid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.hge-lifegrid .cell { border: 1px solid rgba(241,237,227,0.18); border-radius: 20px; padding: 26px 28px; transition: transform var(--hge-dur) var(--hge-ease), background-color var(--hge-dur) var(--hge-ease), border-color var(--hge-dur) var(--hge-ease); }
.hge-lifegrid .cell:hover { transform: translateY(-4px); background: rgba(241,237,227,0.05); border-color: var(--hge-sand); }
.hge-lifegrid .cell svg { width: 30px; height: 30px; stroke: var(--hge-sand); fill: none; }
.hge-lifegrid .cell:hover svg { transform: scale(1.15); }
@media (max-width: 1024px) { .hge-lifegrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .hge-lifegrid { grid-template-columns: 1fr; } }

/* ============================================================
   BUSCADOR DE PROPIEDADES — barra blanca sobre medianoche
   ============================================================ */
.hge-search { display: flex; align-items: stretch; background: #fff; border-radius: 24px; box-shadow: var(--hge-shadow-card); padding: 18px 18px 18px 34px; gap: 0; }
.hge-search .f { flex: 1 1 0; display: flex; flex-direction: column; gap: 6px; padding: 6px 28px 6px 22px; border-left: 1px solid var(--hge-line); min-width: 0; }
.hge-search .f:first-child { border-left: 0; padding-left: 0; }
.hge-search label { font-family: var(--hge-font-mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--hge-label); }
.hge-search select { appearance: none; -webkit-appearance: none; border: 0; background: transparent; font-family: var(--hge-font-sans); font-size: 15px; color: var(--hge-midnight); padding: 2px 26px 2px 0; cursor: pointer; width: 100%; text-overflow: ellipsis;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23C9AD8F'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 6px center; }
.hge-search select:focus { outline: none; }
.hge-search__btn { flex: 0 0 auto; align-self: center; background: var(--hge-midnight); color: var(--hge-cream); border: 0; border-radius: 22px; padding: 20px 34px; font-family: var(--hge-font-sans); font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; transition: var(--hge-transition), transform var(--hge-dur-fast) var(--hge-ease); }
.hge-search__btn:hover { background: var(--hge-midnight-800); transform: translateY(-2px); }
.hge-search__btn:active { transform: scale(.98); }
.hge-search--wrap { margin-top: 48px; }
@media (max-width: 1024px) {
  .hge-search { flex-wrap: wrap; gap: 10px; padding: 22px; }
  .hge-search .f { flex: 1 1 45%; border-left: 0; padding: 6px 0; }
  .hge-search__btn { flex: 1 1 100%; }
}
@media (max-width: 767px) { .hge-search .f { flex: 1 1 100%; } }

/* Buscador en página: estados */
.hge-props-grid.is-loading { opacity: .35; pointer-events: none; transition: opacity var(--hge-dur) var(--hge-ease); }
.hge-search__count { font-family: var(--hge-font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--hge-bronze); margin: 0 0 22px; min-height: 1em; }
.hge-search__btn:disabled { opacity: .6; cursor: wait; }

/* ============================================================
   RESPONSIVE v2 — tipografía fluida y paddings en tablet/móvil
   ============================================================ */
@media (max-width: 1024px) {
  main .elementor > .e-con { padding-left: 32px !important; padding-right: 32px !important; }
}
@media (max-width: 767px) {
  main .elementor > .e-con { padding-left: 22px !important; padding-right: 22px !important; }
  main h1.elementor-heading-title { font-size: clamp(34px, 9.5vw, 44px) !important; line-height: 1.12 !important; }
  main h2.elementor-heading-title { font-size: clamp(26px, 7.5vw, 34px) !important; }
  main h3.elementor-heading-title { font-size: clamp(20px, 6vw, 26px) !important; }
  main .elementor-widget-text-editor { font-size: 15px !important; }
  .hgep-hero, .hgep-specsbar, .hgep-body, .hgep-features, .hgep-slider, .hgep-quoteband, .hgep-area, .hgep-similar, .hge-cta-band, .hge-archive__head, .hge-archive__wrap, .hge-footer, .hge-single__bar, .hge-single__body, .hge-single__gallery, .hge-single__map, .hge-single__features { padding-left: 22px; padding-right: 22px; }
  .hgep-titlerow h1, .hge-single__hero-copy h1 { font-size: 32px; }
  .hgep-priceblock .price { font-size: 32px; }
  .hgep-specsbar .v { font-size: 30px; }
  .hgep-quoteband .in { padding: 40px 18px; }
  .hgep-quoteband p.q { font-size: 26px; }
  .hgep-mosaic__main { min-height: 300px; }
  .hgep-mosaic__side a { min-height: 200px; }
  .hge-cta-band h2 { font-size: 30px; }
  .hge-archive__head h1 { font-size: 32px; }
  .hge-search { padding: 16px; border-radius: 20px; }
  .hge-footer__bottom { gap: 8px; }
  .hge-esc::before, .hge-esc::after, .e-con.hge-esc::before { width: 32px !important; height: 32px !important; }
  .hgep-chips { gap: 12px; }
}

/* Stats de la home en móvil: apiladas y alineadas */
@media (max-width: 767px) {
  [id="stats"] .e-con { padding-left: 0 !important; padding-right: 0 !important; border-left: 0 !important; }
  [id="stats"] > .e-con-inner > .e-con:not(:first-child), [id="stats"] > .e-con:not(:first-child) { border-top: 1px solid rgba(23,39,58,0.14) !important; padding-top: 18px !important; margin-top: 18px; }
  [id="stats"] .elementor-heading-title { text-align: left; }
}

/* Tarjetas de la home: imagen a sangre, texto con aire */
.hge-card-el { padding: 0 0 22px 0 !important; }
.hge-card-el > .elementor-widget-image, .hge-card-el .elementor-widget-image { width: 100% !important; margin: 0 !important; }
.hge-card-el .elementor-widget-image img { width: 100%; border-radius: 20px 20px 0 0; display: block; }
.hge-card-el .elementor-widget:not(.elementor-widget-image), .hge-card-el .e-con { padding-left: 22px; padding-right: 22px; }
.hge-card-el .e-con .elementor-widget { padding-left: 0; padding-right: 0; }

/* Hero móvil: los rótulos mono "The art of living…" alineados a la izquierda con el resto */
@media (max-width: 767px) {
  [id="top"] .elementor-heading-title, [id="top"] .elementor-widget-heading { text-align: left !important; }
  [id="top"] .e-con { align-items: flex-start !important; }
}
.hge-card-el .e-con.hge-esc, .hge-card-el .e-con.hge-esc--card { padding: 0 !important; }

/* Servicios de la home en móvil: columnas alineadas a la izquierda */
@media (max-width: 767px) {
  [id="services"] .e-con .e-con { padding-left: 0 !important; padding-right: 0 !important; border-left: 0 !important; }
  [id="services"] .e-con .e-con:not(:first-child) { border-top: 1px solid rgba(23,39,58,0.14) !important; padding-top: 26px !important; margin-top: 8px; }
}

/* Menú móvil cerrado: invisible e inerte del todo */
@media (max-width: 767px) {
  .hge-nav { visibility: hidden; pointer-events: none; transition: transform var(--hge-dur-slow) var(--hge-ease), visibility 0s linear var(--hge-dur-slow); }
  .hge-nav.is-open { visibility: visible; pointer-events: auto; transition: transform var(--hge-dur-slow) var(--hge-ease); }
}

/* Menú móvil: logo arriba, redes y contacto debajo */
.hge-nav__brand, .hge-nav__extra { display: none; }
@media (max-width: 767px) {
  .hge-nav { justify-content: flex-start; padding: 48px 28px 40px; overflow-y: auto; }
  .hge-nav__brand { display: block; margin: 12px 0 34px; }
  .hge-nav__brand img { width: 150px; height: auto; }
  .hge-nav__extra { display: flex; flex-direction: column; align-items: center; gap: 22px; margin-top: 34px; padding-top: 30px; border-top: 1px solid rgba(241,237,227,0.2); width: 100%; }
  .hge-nav__social { display: flex; gap: 14px; }
  .hge-nav__social a { width: 44px; height: 44px; border: 1px solid rgba(241,237,227,0.4); border-radius: 999px; display: flex; align-items: center; justify-content: center; transition: var(--hge-transition), transform var(--hge-dur-fast) var(--hge-ease); }
  .hge-nav__social a:hover { background: var(--hge-sand); border-color: var(--hge-sand); transform: translateY(-2px); }
  .hge-nav__social svg { width: 19px; height: 19px; stroke: var(--hge-cream); }
  .hge-nav__social a:hover svg { stroke: var(--hge-midnight); }
  .hge-nav__contactinfo { display: flex; flex-direction: column; gap: 12px; align-items: center; }
  .hge-nav__contactinfo a { display: flex; align-items: center; gap: 10px; color: rgba(241,237,227,0.8); text-decoration: none; font-size: 14px; }
  .hge-nav__contactinfo svg { width: 16px; height: 16px; stroke: var(--hge-sand); }
  .hge-burger:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(201,173,143,0.55); border-radius: 8px; }
  .hge-burger:focus { outline: 0; }
}

/* Burger más pequeño y menú cerrado totalmente inerte */
@media (max-width: 767px) {
  .hge-nav:not(.is-open) { opacity: 0; }
  .hge-burger { padding: 6px; }
  .hge-burger span { width: 19px !important; height: 2px; margin: 4px 0; }
}

/* Cabecera compacta en móvil */
@media (max-width: 767px) {
  .hge-header, .hge-header--solid, .hge-header.is-scrolled { padding: 12px 20px; }
  body.hge-transparent-header .hge-header:not(.is-scrolled) { padding-bottom: 26px; }
  .hge-header__logo img { width: 104px; }
  .hgep-hero, .hge-archive__head { padding-top: 110px; }
  main .elementor > .e-con:first-child { padding-top: 110px !important; }
  body.hge-transparent-header main .elementor > .e-con:first-child { padding-top: 120px !important; }
}

/* Tablet: nada puede exceder el viewport + tipografía intermedia */
@media (max-width: 1024px) {
  main .e-con, main .elementor-widget, .hgep-quoteband .in { max-width: 100% !important; }
  main h1.elementor-heading-title { font-size: clamp(40px, 7.5vw, 58px) !important; }
  main h2.elementor-heading-title { font-size: clamp(30px, 5.5vw, 42px) !important; }
  [id="promise"] .e-con { padding-left: 32px !important; padding-right: 32px !important; }
}

/* ===== Lote v1.3.1 ===== */
/* Pantallas grandes: contenido capado a 1440px, fondos a sangre */
@media (min-width: 1500px) {
  main .elementor > .e-con { padding-left: calc((100vw - 1440px) / 2 + 64px) !important; padding-right: calc((100vw - 1440px) / 2 + 64px) !important; }
  .hge-header, .hge-header--solid, .hge-header.is-scrolled,
  body.hge-transparent-header .hge-header:not(.is-scrolled) { padding-left: calc((100vw - 1440px) / 2 + 40px); padding-right: calc((100vw - 1440px) / 2 + 40px); }
  .hge-footer { padding-left: calc((100vw - 1440px) / 2 + 64px); padding-right: calc((100vw - 1440px) / 2 + 64px); }
}

/* Servicios: botones alineados abajo aunque el titular ocupe 2 líneas */
[id="services"] .e-con > .elementor-widget-button { margin-top: auto !important; padding-top: 18px; }

/* Menú sticky: logo e interior más compactos */
.hge-header__logo img { transition: width 0.3s var(--hge-ease, ease); }
@media (min-width: 768px) {
  .hge-header.is-scrolled { padding-top: 12px; padding-bottom: 12px; }
  .hge-header.is-scrolled .hge-header__logo img { width: 100px; }
}

/* Separadores verticales -> horizontales al apilar en móvil */
@media (max-width: 767px) {
  main .e-con.hge-vsep { border-left: 0 !important; padding-left: 0 !important; border-top: 1px solid rgba(23, 39, 58, 0.14) !important; padding-top: 20px !important; }
}

/* Stats: el número nunca encoge y la etiqueta guarda distancia */
@media (min-width: 768px) {
  [id="stats"] .e-con > .elementor-widget-heading { flex-shrink: 0; }
  [id="stats"] .e-con > .e-con { flex: 1 1 0%; min-width: 0; padding-left: 18px !important; }
}

/* Escuadras sobre foto: sombra sutil para que se lean sobre cielos claros */
.hge-card-el .e-con.hge-esc::before, .hge-card-el .e-con.hge-esc::after,
.hge-card__media.hge-esc::before, .hge-card__media.hge-esc::after {
  filter: drop-shadow(0 1px 3px rgba(23, 39, 58, 0.45));
}

/* Tarjeta canónica v1.3.4 — proporción de imagen SIEMPRE 4:3, misma en todos los anchos */
.hge-card-el { padding: 0 0 24px 0 !important; }
.hge-card-el .e-con.hge-esc, .hge-card-el .e-con.hge-esc--card { padding: 0 !important; min-height: 0 !important; height: auto !important; }
.hge-card-el .elementor-widget-image, .hge-card-el .elementor-widget-image .elementor-widget-container { width: 100% !important; margin: 0 !important; line-height: 0; }
.hge-card-el .elementor-widget-image img { width: 100% !important; aspect-ratio: 4 / 3 !important; height: auto !important; object-fit: cover; border-radius: 20px 20px 0 0 !important; display: block; }
.hge-card-el .elementor-widget:not(.elementor-widget-image) { padding-left: 24px; padding-right: 24px; }
.hge-card__media { aspect-ratio: 4 / 3 !important; }
.hge-card__media img { width: 100%; height: 100%; object-fit: cover; }

/* v1.3.5 — La foto llena SIEMPRE su caja 4:3 (Elementor mete img{height:auto} y la rompía) */
.hge-card__media { position: relative; }
.hge-card__media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }

/* v1.3.5 — Tarjetas iguales aunque el texto varíe: extracto a 2 líneas y precio/ref anclados abajo */
.hge-card { display: flex; flex-direction: column; height: 100%; }
.hge-card__body { display: flex; flex-direction: column; flex: 1 1 auto; }
.hge-card__sub { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(2 * 1.55em); }
.hge-card__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(2 * 1.15em); }
.hge-card__pricebar { margin-top: auto; }

/* v1.3.7 — Filas número+etiqueta: el número nunca encoge, la etiqueta guarda su hueco (todas las páginas) */
@media (min-width: 768px) {
  .e-con.hge-statrow > .elementor-widget-heading { flex-shrink: 0; width: auto !important; max-width: none !important; }
  .e-con.hge-statrow > .e-con { flex: 1 1 0%; min-width: 0; padding-left: 18px !important; }
}
@media (max-width: 767px) {
  .e-con.hge-statrow { flex-wrap: nowrap; }
  .e-con.hge-statrow > .elementor-widget-heading { flex-shrink: 0; }
  .e-con.hge-statrow > .e-con { flex: 1 1 0%; min-width: 0; padding-left: 14px !important; border-left: 0 !important; }
}

/* v1.3.8 — Filas de stats: 2x2 en tablet, 1 por fila en móvil (nunca aplastadas) */
@media (max-width: 1024px) {
  .e-con:has(> .e-con.hge-statrow), .e-con-inner:has(> .e-con.hge-statrow) { flex-wrap: wrap !important; row-gap: 28px; }
  .e-con.hge-statrow { flex: 1 1 42% !important; min-width: 42% !important; }
}
@media (max-width: 640px) {
  .e-con.hge-statrow { flex: 1 1 100% !important; min-width: 100% !important; }
}

/* v1.4.0 — Ficha: la columna nunca supera el viewport (min-content) y cabeceras de sección plegables */
.hgep-body > * { min-width: 0; }
.hgep-card .hge-btn { white-space: normal; text-align: center; }
@media (max-width: 767px) {
  .hgep-similar .head, .hgep-features .head, .hgep-slider .head { flex-wrap: wrap; row-gap: 10px; }
}

/* v1.4.1 — El widget del grid de propiedades nunca se encoge verticalmente */
.elementor-widget-shortcode { flex-shrink: 0 !important; height: auto !important; }

/* v1.4.2 — Submenú Lifestyle */
.hge-nav__item--sub { position: relative; display: flex; align-items: center; }
.hge-nav__chev { margin-left: 6px; transition: transform 0.2s var(--hge-ease); }
.hge-nav__sub {
  position: absolute; top: 100%; left: 50%; transform: translate(-50%, 10px);
  min-width: 232px; padding: 10px; margin-top: 14px;
  background: var(--hge-midnight-800, #101B29); border: 1px solid rgba(241, 237, 227, 0.08);
  border-radius: 12px; box-shadow: 0 18px 40px rgba(10, 18, 28, 0.45);
  display: flex; flex-direction: column; gap: 2px;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 0.2s var(--hge-ease), transform 0.2s var(--hge-ease), visibility 0s linear 0.2s;
}
.hge-nav__sub::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.hge-nav__item--sub:hover .hge-nav__sub, .hge-nav__item--sub:focus-within .hge-nav__sub {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); transition-delay: 0s;
}
.hge-nav__item--sub:hover .hge-nav__chev, .hge-nav__item--sub:focus-within .hge-nav__chev { transform: rotate(180deg); }
a.hge-nav__sublink {
  font-size: 11px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(241, 237, 227, 0.75); text-decoration: none;
  padding: 10px 14px; border-radius: 8px; white-space: nowrap;
  transition: var(--hge-transition);
}
a.hge-nav__sublink:hover { color: var(--hge-sand); background: rgba(241, 237, 227, 0.06); }
a.hge-nav__sublink:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(201, 173, 143, 0.55); }
@media (max-width: 767px) {
  .hge-nav__item--sub { flex-direction: column; align-items: center; }
  .hge-nav__chev { display: none; }
  .hge-nav__sub {
    position: static; transform: none; opacity: 1; visibility: visible; pointer-events: auto;
    background: none; border: 0; box-shadow: none; padding: 6px 0 0; margin: 0; min-width: 0;
    align-items: center; gap: 0;
  }
  a.hge-nav__sublink { font-size: 12px; padding: 7px 10px; color: rgba(241, 237, 227, 0.6); }
}
a.hge-nav__link:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(201, 173, 143, 0.55); border-radius: 6px; }

/* ===== v1.5.0 — Páginas Lifestyle (diseño "HGE Estilo de Vida") ===== */
.hge-lifehero .hge-em em { color: var(--hge-sand); }
.hgel-pill a, a.hgel-pill { text-decoration: none; }
.e-con.hgel-row { border-bottom: 1px solid var(--hge-line); }
.e-con.hgel-rows { border-top: 2px solid var(--hge-midnight); }
.e-con.hgel-cols { border-top: 2px solid var(--hge-midnight); }
@media (max-width: 767px) {
  .e-con.hgel-row { flex-wrap: wrap !important; row-gap: 6px; }
  .hgel-row .elementor-widget { width: 100% !important; max-width: 100% !important; }
  .hgel-row .elementor-widget .elementor-heading-title { text-align: left !important; }
  .e-con.hgel-subnav { flex-wrap: wrap !important; row-gap: 10px; }
}

/* v1.5.1 — Grid de propiedades a 1 columna: block evita el bug de altura del widget */
@media (max-width: 640px) {
  .hge-props-grid { display: block !important; }
  .hge-props-grid .hge-card { margin-bottom: 24px; }
}

/* v1.5.4 — En el editor de Elementor el reveal no debe ocultar nada */
body.elementor-editor-active .hge-reveal, body.elementor-editor-preview .hge-reveal,
.elementor-edit-area .hge-reveal { opacity: 1 !important; transform: none !important; }

/* v1.5.5 — Botón volver arriba con progreso de scroll */
.hge-totop {
  position: fixed; right: 28px; bottom: 28px; z-index: 60;
  width: 54px; height: 54px; border-radius: 999px; border: 0; padding: 0;
  background: var(--hge-midnight); cursor: pointer; border: 1px solid rgba(241,237,227,0.22);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 14px 30px rgba(16, 27, 41, 0.35);
  opacity: 0; visibility: hidden; transform: translateY(18px);
  transition: opacity 0.3s var(--hge-ease), transform 0.3s var(--hge-ease), visibility 0s linear 0.3s, box-shadow 0.2s var(--hge-ease);
}
.hge-totop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s; }
.hge-totop:hover { box-shadow: 0 18px 38px rgba(16, 27, 41, 0.45); transform: translateY(-3px); }
.hge-totop:active { transform: scale(0.96); }
.hge-totop:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(201, 173, 143, 0.55); }
.hge-totop__ring { position: absolute; inset: 0; transform: rotate(-90deg); }
.hge-totop__ring circle { fill: none; stroke-width: 2.5; }
.hge-totop__ring .bg { stroke: rgba(241, 237, 227, 0.18); }
.hge-totop__ring .fg { stroke: var(--hge-sand); stroke-linecap: round; transition: stroke-dashoffset 0.15s linear; }
.hge-totop__arrow { position: relative; z-index: 1; display: block; stroke: var(--hge-cream); transition: transform 0.35s var(--hge-ease); }
.hge-totop.is-down .hge-totop__arrow { transform: translateY(3px) scale(0.94); opacity: 0.85; }
.hge-totop.is-up .hge-totop__arrow { transform: translateY(-3px); }
@media (max-width: 767px) { .hge-totop { right: 16px; bottom: 16px; width: 48px; height: 48px; } }
@media (prefers-reduced-motion: reduce) { .hge-totop__arrow { transition: none; } }
