:root{
  --bg:#F8F0E6;
  --ink:#3D3B3A;
  --accent:#2F6F63;
  --accent-ink:#1F4E45;
  --muted:rgba(61,59,58,.72);
  --line:rgba(61,59,58,.14);
  --card:rgba(255,255,255,.72);
  --card2:rgba(255,255,255,.62);
  --shadow:0 18px 60px rgba(15,23,42,.08);
  --r:18px;
  --max:1160px;

  /* CONTROL ÚNICO DEL LOGO (cambia solo esto) */
  --logo-h: 95px;
  --logo-h-mobile: 100px;

  /* CONTROL ÚNICO DEL RADIO EN HERO */
  --hero-media-r: 24px;
  --hero-media-h: 420px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
a:hover{text-decoration:underline; text-underline-offset:3px}

.nh-container{width:min(var(--max), 92%); margin:0 auto}

/* Header */
.nh-header{
  position:sticky; top:0; z-index:20;
  backdrop-filter:saturate(180%) blur(10px);
  background:rgba(248,240,230,.82);
  border-bottom:1px solid var(--line);
}
.nh-header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 0;
  gap:12px;
}

/* Header right micro-contact (email + instagram) */
.nh-header__right{display:flex; align-items:center; gap:14px; flex:0 0 auto;}
.nh-header__micro{
  display:flex;
  align-items:center;
  gap:10px;
  color:rgba(61,59,58,.78);
  font-size:.92rem;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.nh-header__micro a{color:inherit; text-decoration:none;}
.nh-header__micro a:hover{opacity:.8;}
.nh-icon{width:18px; height:18px; display:inline-block; flex:0 0 auto;}
.nh-micro-item{display:inline-flex; align-items:center; gap:8px; white-space:nowrap;}
.nh-dot{opacity:.45;}

/* ✅ MÓVIL: logo arriba + contacto en VERTICAL */
@media (max-width:720px){
  .nh-header__inner{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    padding:12px 0;
  }

  .nh-brand{
    width:100%;
    justify-content:flex-start;
  }

  .nh-header__right{
    width:100%;
  }

  .nh-header__micro{
    width:100%;
    display:flex;
    flex-direction:column;   /* vertical */
    align-items:flex-start;
    justify-content:flex-start;
    gap:8px;
    font-size:.92rem;
  }

  .nh-dot{display:none;}

  .nh-micro-item{
    width:100%;
    white-space:normal;      /* permite salto si hiciera falta */
  }

  .nh-header__micro a{
    max-width:none;
    overflow:visible;
    text-overflow:unset;
    white-space:normal;
  }
}

/* Marca */
.nh-brand{display:flex; flex-direction:column; gap:4px}
.nh-brand__text{font-family:"Playfair Display", serif; font-weight:700; letter-spacing:.02em}
.nh-brand__tagline{font-size:.86rem; color:var(--muted)}

/*
  LOGO HEADER (FIX “achatado”)
  - NO fijamos height.
  - Usamos max-height para que si el contenedor estrecha (flex), el logo baje de tamaño manteniendo proporción.
*/
.nh-header img.custom-logo,
.nh-header .custom-logo-link img,
.nh-header .nh-brand img{
  height: auto !important;
  width: auto !important;
  max-height: var(--logo-h) !important;
  object-fit: contain;
}

@media (max-width: 768px){
  .nh-header img.custom-logo,
  .nh-header .custom-logo-link img,
  .nh-header .nh-brand img{
    max-height: var(--logo-h-mobile) !important;
  }
}

/* NAV (no se usa en este site) */
.nh-nav,
.nh-nav-toggle{display:none !important;}
.nh-menu{display:none !important;}

/* Buttons */
.nh-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 16px;
  border-radius:14px;
  border:1px solid var(--line);
  font-weight:650;
  letter-spacing:.01em;
  transition:transform .14s ease, opacity .14s ease, background .14s ease, box-shadow .14s ease, border-color .14s ease;
  box-shadow:0 10px 28px rgba(15,23,42,.06);
}
.nh-btn:hover{transform:translateY(-1px); box-shadow:0 14px 34px rgba(15,23,42,.08)}
.nh-btn:active{transform:translateY(0px); box-shadow:0 8px 20px rgba(15,23,42,.06)}

.nh-btn--primary{
  background:var(--ink);
  color:var(--bg);
  border-color:rgba(61,59,58,.80);
}
.nh-btn--primary:hover{opacity:.96}

.nh-btn--ghost{
  background:rgba(255,255,255,.30);
  border-color:rgba(61,59,58,.18);
}
.nh-btn--ghost:hover{background:rgba(255,255,255,.40)}

/* Typography */
.nh-h1,.nh-h2,.nh-h3{font-family:"Playfair Display", serif; line-height:1.12; margin:0}
.nh-h1{font-size:clamp(2rem, 3.3vw, 3.2rem); letter-spacing:-.02em}
.nh-h2{font-size:clamp(1.55rem, 2.2vw, 2.1rem)}
.nh-h3{font-size:1.25rem}
.nh-kicker{letter-spacing:.14em; text-transform:uppercase; font-size:.80rem; color:rgba(47,111,99,.88)}
.nh-lead{font-size:1.08rem; color:rgba(61,59,58,.88); max-width:60ch}
.nh-muted{color:var(--muted)}
.nh-small{font-size:.9rem; color:var(--muted)}

/* Hero */
.nh-hero{padding:76px 0 44px}
.nh-hero__inner{display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center}
.nh-hero__cta{display:flex; gap:10px; flex-wrap:wrap; margin-top:18px}
.nh-badges{display:flex; gap:10px; flex-wrap:wrap; padding:0; margin:18px 0 0; list-style:none}
.nh-badges li{border:1px solid var(--line); background:rgba(255,255,255,.35); padding:8px 10px; border-radius:999px; font-size:.9rem; color:rgba(61,59,58,.86)}

/* HERO MEDIA (redondea y recorta la foto) */
.nh-hero__media{
  position:relative;
  height:var(--hero-media-h);
  border-radius:var(--hero-media-r);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:linear-gradient(180deg, rgba(47,111,99,.22), rgba(61,59,58,.04));
}
.nh-hero__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.nh-hero__frame{
  height:100%;
  border-radius:inherit;
  border:0;
  box-shadow:none;
  background:transparent;
}
.nh-hero__hint{
  position:absolute; left:16px; bottom:16px; right:16px;
  font-size:.9rem;
  color:rgba(248,240,230,.95);
  background:rgba(61,59,58,.55);
  padding:10px 12px;
  border-radius:14px
}

/* Sections */
.nh-section{padding:56px 0}
.nh-section--soft{
  background:rgba(255,255,255,.35);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}
.nh-section__head{margin-bottom:18px}
.nh-section__head--row{display:flex; align-items:flex-end; justify-content:space-between; gap:16px}

/* Grids / Cards */
.nh-grid3{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px}
.nh-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:22px;
  box-shadow:0 14px 40px rgba(15,23,42,.06)
}

/* Sell */
.nh-sell{display:grid; grid-template-columns:1.1fr .9fr; gap:20px; align-items:start}
.nh-form{
  background:rgba(255,255,255,.68);
  border:1px solid rgba(61,59,58,.16);
  border-radius:26px;
  padding:20px;
  box-shadow:var(--shadow)
}
.nh-field{margin-bottom:12px}
.nh-field label{display:block; font-weight:600; margin-bottom:6px}

/* ✅ FIX: aplicar estilo también a textarea (Mensaje) */
.nh-field input,
.nh-field textarea{
  width:100%; padding:12px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.55);
  outline:none;
  font:inherit;
  color:inherit;
}
.nh-field textarea{
  min-height:120px;
  resize:vertical;
}
.nh-field input:focus,
.nh-field textarea:focus{border-color:rgba(61,59,58,.32)}

/* ✅ FIX NUEVO: unificar SELECT con INPUTS (alineación + altura + flecha) */
.nh-field select{
  width:100%;
  display:block;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.55);
  outline:none;
  font:inherit;
  color:inherit;
  line-height:1.2;
  height:44px;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
}
.nh-field select:focus{border-color:rgba(61,59,58,.32)}
.nh-field{position:relative;}
.nh-field select{
  padding-right:40px;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(61,59,58,.65) 50%),
    linear-gradient(135deg, rgba(61,59,58,.65) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%;
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
}

.nh-alert{border-radius:14px; padding:10px 12px; margin-bottom:12px; font-weight:600}
.nh-alert--ok{background:rgba(16,185,129,.14); border:1px solid rgba(16,185,129,.28)}
.nh-alert--err{background:rgba(239,68,68,.12); border:1px solid rgba(239,68,68,.22)}

/* Steps */
.nh-steps{display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:12px; list-style:none; padding:0; margin:0}
.nh-steps li{border:1px solid var(--line); background:rgba(255,255,255,.35); border-radius:16px; padding:14px 12px; font-weight:600}
.nh-steps li span{display:block; font-size:.78rem; color:var(--muted); letter-spacing:.12em}

/* About */
.nh-about{display:grid; grid-template-columns:1.1fr .9fr; gap:18px; align-items:start}
.nh-about__pill{
  margin-top:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.35);
  border-radius:999px;
  padding:10px 12px;
  display:inline-block
}
.nh-about__box{
  background:var(--card2);
  border:1px solid var(--line);
  border-radius:24px;
  padding:22px;
  box-shadow:var(--shadow)
}

/* Property card */
.nh-property{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 10px 26px rgba(15,23,42,.05)
}
.nh-property__link{display:block}
.nh-property__media{position:relative; height:220px; overflow:hidden}
.nh-property__img{width:100%; height:100%; object-fit:cover; transform:scale(1.01)}
.nh-property__ph{height:100%; display:flex; align-items:center; justify-content:center; color:rgba(61,59,58,.65)}
.nh-property__tags{position:absolute; left:12px; top:12px; display:flex; gap:8px; flex-wrap:wrap}
.nh-tag{
  background:rgba(61,59,58,.72);
  color:var(--bg);
  border:1px solid rgba(248,240,230,.28);
  padding:6px 10px;
  border-radius:999px;
  font-size:.82rem;
  font-weight:700
}
.nh-property__body{padding:16px}
.nh-property__meta{display:flex; gap:8px; align-items:center; color:var(--muted); font-size:.9rem}
.nh-property__title{margin-top:8px}
.nh-price{margin-top:10px; font-weight:800}
.nh-price--xl{font-size:1.2rem}
.nh-property__specs{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; color:rgba(61,59,58,.85); font-size:.92rem}

/* Archive */
.nh-pagehead{padding:52px 0 14px}
.nh-archive-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px}
.nh-pagination{margin-top:22px}

/* Single */
.nh-single-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:18px; align-items:start}
.nh-single-heroimg{border-radius:24px; border:1px solid var(--line)}
.nh-content{max-width:72ch}
.nh-aside-card{position:sticky; top:96px}
.nh-divider{height:1px; background:var(--line); margin:14px 0}
.nh-specbar{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}

/* Footer */
.nh-footer{border-top:1px solid var(--line); background:rgba(255,255,255,.32); padding:38px 0}
.nh-footer__inner{display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; align-items:start}
.nh-footer__name{font-family:"Playfair Display", serif; font-weight:700}
.nh-footer__tag{color:var(--muted); margin-top:4px}
.nh-footer-menu{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px}
.nh-footer__small{color:var(--muted); font-size:.9rem}

/* Responsive */
@media (max-width: 980px){
  .nh-hero__inner, .nh-sell, .nh-about, .nh-single-grid{grid-template-columns:1fr}
  .nh-steps{grid-template-columns:1fr 1fr}
  .nh-archive-grid, .nh-grid3{grid-template-columns:1fr 1fr}
  .nh-footer__inner{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .nh-archive-grid, .nh-grid3{grid-template-columns:1fr}
  .nh-steps{grid-template-columns:1fr}
}

/* Cookie banner */
.nh-cookie{
  position:fixed;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:9999;
}
.nh-cookie__inner{
  width:min(var(--max), 96%);
  margin:0 auto;
  display:flex;
  gap:14px;
  align-items:center;
  justify-content:space-between;
  padding:14px 14px;
  border-radius:16px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(10px);
  box-shadow:var(--shadow);
}
.nh-cookie__text{
  color:rgba(61,59,58,.88);
  font-size:.92rem;
  line-height:1.35;
}
.nh-cookie__text a{ text-decoration:underline; }
.nh-cookie__actions{
  display:flex;
  gap:10px;
  flex:0 0 auto;
}
@media (max-width:720px){
  .nh-cookie__inner{
    flex-direction:column;
    align-items:stretch;
  }
  .nh-cookie__actions{
    width:100%;
  }
  .nh-cookie__actions .nh-btn{
    width:100%;
  }
}

/* =========================================================
   FORM PRO (fieldset + grid horizontal + contacto al final)
   - Compatible con tu .nh-form actual
========================================================= */

.nh-form-head{margin-bottom:14px}
.nh-form-shell{max-width:1100px;margin:0 auto}

/* El contenedor del form ya lo tienes como .nh-form (card). */
.nh-form-grid{display:block}

/* Fieldsets */
.nh-fieldset{
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:16px;
  margin:0 0 14px;
  background:rgba(255,255,255,.35);
}
.nh-legend{
  font-weight:800;
  font-size:14px;
  padding:0 6px;
  color:rgba(61,59,58,.92);
}
.nh-req{color:#b42318; font-weight:800}

/* Grid rows */
.nh-row{
  display:grid;
  gap:12px;
  margin-top:12px;
}
.nh-row--1{grid-template-columns:1fr}
.nh-row--2{grid-template-columns:repeat(2, minmax(0,1fr))}
.nh-row--3{grid-template-columns:repeat(3, minmax(0,1fr))}
.nh-row--4{grid-template-columns:repeat(4, minmax(0,1fr))}

/* Quitar “margen por campo” dentro del layout nuevo */
.nh-fieldset .nh-field{margin-bottom:0}

/* Checkboxes (imprescindibles) */
.nh-checks{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  padding:10px 0 0;
}
.nh-checks label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:600;
  color:rgba(61,59,58,.88);
}

/* Footer del form (consent + submit) */
.nh-form-foot{
  display:flex;
  gap:16px;
  align-items:flex-start;
  justify-content:space-between;
  flex-wrap:wrap;
  margin-top:8px;
}
.nh-consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
  max-width:760px;
  color:rgba(61,59,58,.86);
}
.nh-consent input{margin-top:4px}
.nh-submit{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
}

/* Responsive para el nuevo grid */
@media (max-width: 980px){
  .nh-row--4{grid-template-columns:repeat(2, minmax(0,1fr))}
  .nh-row--3{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width: 640px){
  .nh-row--4,
  .nh-row--3,
  .nh-row--2{grid-template-columns:1fr}
  .nh-submit{align-items:stretch}
  .nh-submit .nh-btn{width:100%}
}

/* =========================================
   FORM FOOT (RGPD + CTA) — FIX FINAL
   (para tu template PRO actual)
========================================= */

.nh-form-foot{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:var(--r);
  background:rgba(255,255,255,.35);

  display:flex;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
}

/* RGPD */
.nh-consent{
  display:flex;
  gap:12px;
  align-items:flex-start;
  flex:1 1 520px;

  font-size:.95rem;
  line-height:1.35;
  color:rgba(61,59,58,.86);
}
.nh-consent span{display:block;}
.nh-consent a{text-decoration:underline;}
.nh-consent input{
  width:18px;
  height:18px;
  margin:2px 0 0;
  flex:0 0 auto;
  accent-color: var(--ink);
}

/* CTA */
.nh-submit{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
}
.nh-submit .nh-btn{
  min-width:160px;
  justify-content:center;
}
.nh-submit .nh-small{
  margin:0;
  text-align:right;
  max-width:320px;
}

/* Mobile */
@media (max-width:640px){
  .nh-form-foot{padding:12px;}
  .nh-submit{
    width:100%;
    align-items:stretch;
  }
  .nh-submit .nh-btn{
    width:100%;
    min-width:0;
  }
  .nh-submit .nh-small{
    text-align:left;
    max-width:none;
  }
}

/* ===========================
   FIX DEFINITIVO DE CENTRADO
   (evita que nada “empuje” a la izquierda)
=========================== */
html, body{ width:100%; overflow-x:hidden; }

.nh-container{
  width: min(var(--max), 92%);
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ===========================
   IMAGEN BLOQUE ABOUT (SEGURO)
=========================== */
.nh-about__image{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 24px;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  margin-top: 14px;
  object-fit: cover;
}

/* Alinear visualmente el bloque derecho con la imagen */
.nh-about{
  align-items: center;
}

/* Ajuste fino: bajar un poco más el bloque derecho */
.nh-about__box{
  margin-top: 60px;
}

