/*
Theme Name:   Salient Child — Ökohaus
Theme URI:    https://www.okohaus.es/dev
Description:  Tema hijo de Salient para ökohaus.es. Sistema de diseño completo: tokens, tipografía, componentes WPBakery.
Author:       Grupo FSL
Template:     salient
Version:      1.0.0
Text Domain:  salient-child
*/

/* =========================================================
   ÖKOHAUS — Tokens y sistema de diseño
   Promotora de viviendas Passivhaus
   Principios: orden, aire, calma. Titulares contenidos.
   ========================================================= */

/* —— Google Fonts: Signika —— */
@import url('https://fonts.googleapis.com/css2?family=Signika:wght@300;400;500;600;700&display=swap');

/* —— Tokens CSS —— */
:root {
  --olive:       #345038;
  --olive-deep:  #2a402d;
  --olive-soft:  #5c7560;
  --green:       #5f7a4e;
  --sand:        #cdbfa8;
  --cream:       #f5ede0;
  --cream-hi:    #fbf6ed;
  --cream-deep:  #efe4d3;
  --terra:       #c98c5b;
  --terra-deep:  #b6794a;
  --paper:       #ffffff;
  --ink:         #232220;
  --ink-soft:    #4d4a44;
  --ink-mute:    #8c867a;
  --line:        #e4d9c8;
  --line-soft:   #ece2d4;

  --sans: "Signika", system-ui, -apple-system, sans-serif;

  --maxw:      1180px;
  --gut:       clamp(22px, 5vw, 56px);
  --radius:    12px;
  --radius-lg: 18px;
  --shadow-sm: 0 2px 14px rgba(52,80,56,.06);
  --shadow:    0 18px 48px -28px rgba(52,80,56,.34);
}

/* —— Fuente global: Signika —— */
body,
body .nectar-el,
body h1, body h2, body h3, body h4, body h5, body h6,
body p, body a, body button, body input, body textarea, body select,
body .wpb_text_column, body .wpb_wrapper {
  font-family: var(--sans) !important;
}

/* —— Fondo global crema —— */
body {
  background: var(--cream) !important;
  color: var(--ink-soft);
  line-height: 1.62;
  font-size: 17px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* —— Reset base —— */
img { max-width: 100%; display: block; }
a   { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }

/* —— Titulares contenidos —— */
h1, h2, h3, h4, h5 {
  margin: 0;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -.01em;
  line-height: 1.18;
  font-family: var(--sans) !important;
}

.t-xl { font-size: clamp(28px,3.2vw,42px); font-weight: 600; line-height: 1.12; }
.t-lg { font-size: clamp(24px,2.6vw,33px); font-weight: 600; line-height: 1.16; }
.t-md { font-size: clamp(20px,2vw,25px);   font-weight: 600; line-height: 1.25; }

.statement    { font-size: clamp(23px,2.7vw,34px); font-weight: 500; line-height: 1.32; color: var(--ink); letter-spacing: -.005em; }
.statement em { font-style: normal; color: var(--olive); font-weight: 600; }

.eyebrow         { font-weight: 600; font-size: 12.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--terra-deep); }
.eyebrow.on-dark { color: var(--sand); }

.lead     { font-size: clamp(17px,1.5vw,19px); line-height: 1.62; color: var(--ink-soft); }
.muted    { color: var(--ink-mute); }
.measure  { max-width: 58ch; }
.measure-sm { max-width: 44ch; }
.center   { text-align: center; }

/* —— Layout —— */
.wrap       { max-width: var(--maxw); margin: 0 auto; padding-inline: var(--gut); }
.section    { padding-block: clamp(56px,7vw,96px); }
.section--cream { background: var(--cream); }
.section--paper { background: var(--paper); }
.section--deep  { background: var(--cream-deep); }
.section--olive { background: var(--olive); color: #e7e1d4; }
.section--olive h1,
.section--olive h2,
.section--olive h3 { color: #f3efe5; }
.divider { height: 1px; background: var(--line); border: 0; margin: 0; }

/* —— Botones —— */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .55em;
  font-family: var(--sans);
  font-weight: 600;
  font-size: 14.5px;
  letter-spacing: .02em;
  padding: 13px 24px;
  border-radius: 999px;
  border: 1.5px solid transparent;
  transition: transform .2s, background .2s, color .2s, border-color .2s;
  white-space: nowrap;
}
.btn:hover           { transform: translateY(-2px); }
.btn .ic             { transition: transform .25s ease; }
.btn:hover .ic       { transform: translateX(3px); }
.btn--terra          { background: var(--terra); color: #fff; }
.btn--terra:hover    { background: var(--terra-deep); }
.btn--olive          { background: var(--olive); color: #f3efe5; }
.btn--olive:hover    { background: var(--olive-deep); }
.btn--cream          { background: var(--cream); color: var(--olive); }
.btn--cream:hover    { background: #fff; }
.btn--ghost          { background: transparent; border-color: var(--line); color: var(--olive); }
.btn--ghost:hover    { background: var(--olive); color: #fff; border-color: var(--olive); }
.btn--ghost.on-dark  { border-color: rgba(255,255,255,.32); color: #f3efe5; }
.btn--ghost.on-dark:hover { background: #fff; color: var(--olive); border-color: #fff; }

.txtlink            { display: inline-flex; align-items: center; gap: .45em; font-weight: 600; font-size: 15px; color: var(--olive); }
.txtlink .ic        { transition: transform .25s ease; }
.txtlink:hover      { color: var(--green); }
.txtlink:hover .ic  { transform: translateX(3px); }
.section--olive .txtlink       { color: #e7e1d4; }
.section--olive .txtlink:hover { color: #fff; }

/* —— Salient: color de botón principal (CTA global) —— */
a.button.primary-color,
input[type="submit"],
.nectar-button.see-through-2,
.nectar-button {
  background-color: var(--terra) !important;
  border-color: var(--terra) !important;
  color: #fff !important;
}
a.button.primary-color:hover,
input[type="submit"]:hover,
.nectar-button:hover {
  background-color: var(--terra-deep) !important;
  border-color: var(--terra-deep) !important;
}

/* —— Salient: navegación principal —— */
#header-outer {
  background-color: rgba(245,237,224,.93) !important;
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line) !important;
}
#header-outer #logo img { max-height: 32px; }
#header-outer nav > ul > li > a,
#header-outer nav > ul > li > a:hover {
  color: var(--olive) !important;
  font-family: var(--sans) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}
#header-outer nav > ul > li > a::after {
  background: var(--green) !important;
}
#header-outer .cart-menu-wrap a,
#header-outer .buttons a { color: var(--olive) !important; }

/* CTA "Contacto" — Salient nav ítem con clase .button */
#header-outer nav > ul > li.button > a {
  background: var(--terra) !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: 9px 22px !important;
  margin-left: 10px;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  transition: background .2s;
}
#header-outer nav > ul > li.button > a:hover {
  background: var(--terra-deep) !important;
  color: #fff !important;
}
/* Anular subrayado animado en el botón CTA */
#header-outer nav > ul > li.button > a::after { display: none !important; }

/* Teléfono en nav desktop */
#header-outer nav > ul > li.nav-phone > a {
  color: var(--olive-soft) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: .01em;
  margin-left: 4px;
}
#header-outer nav > ul > li.nav-phone > a::before {
  content: "";
  display: inline-block;
  width: 14px; height: 14px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235c7560'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24 11.47 11.47 0 003.58.57 1 1 0 011 1V21a1 1 0 01-1 1A17 17 0 013 5a1 1 0 011-1h3.5a1 1 0 011 1 11.47 11.47 0 00.57 3.58 1 1 0 01-.25 1.01z'/%3E%3C/svg%3E") no-repeat center/contain;
  vertical-align: middle;
  margin-right: 5px;
}
#header-outer nav > ul > li.nav-phone > a::after { display: none !important; }

/* Compat: estilos anteriores del CTA */
#header-outer .nectar-cta-header-btn a,
#header-outer .menu-contact-btn a {
  background: var(--terra) !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: 10px 22px !important;
}

/* —— Salient: menú móvil overlay en oliva —— */
#mobile-menu {
  background: var(--olive) !important;
}
#mobile-menu ul li a {
  color: #e7e1d4 !important;
  font-family: var(--sans) !important;
}

/* —— Salient: footer —— */
footer#footer-outer {
  background: var(--olive) !important;
}
footer#footer-outer,
footer#footer-outer p,
footer#footer-outer a {
  color: #cbc4b4 !important;
  font-family: var(--sans) !important;
}
footer#footer-outer a:hover { color: #fff !important; }
footer#footer-outer h1,
footer#footer-outer h2,
footer#footer-outer h3,
footer#footer-outer h4,
footer#footer-outer h5 {
  color: var(--sand) !important;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
footer .bottom-footer-inner { border-color: rgba(255,255,255,.12) !important; }

/* —— Tarjetas de promoción —— */
.promo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.promo-card {
  background: var(--paper);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .28s, box-shadow .28s;
  text-decoration: none;
  color: inherit;
}
.promo-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.promo-card__media {
  position: relative;
  aspect-ratio: 4/3;
  background: var(--cream-deep);
  overflow: hidden;
}
.promo-card__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  position: absolute; inset: 0;
  transition: transform .4s ease;
}
.promo-card:hover .promo-card__media img { transform: scale(1.03); }
.promo-card__body { padding: 22px 22px 26px; display: flex; flex-direction: column; gap: 7px; flex: 1; }
.promo-card__loc  { font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--terra-deep); font-weight: 600; }
.promo-card__name { font-size: 23px !important; font-weight: 600 !important; color: var(--ink) !important; line-height: 1.1 !important; letter-spacing: -.01em; }
.promo-card, .promo-card * { text-decoration: none !important; }
.promo-card__meta { display: flex; flex-wrap: wrap; gap: 5px 14px; color: var(--ink-mute); font-size: 14px; }
.promo-card__meta b { color: var(--ink-soft); font-weight: 600; }
.promo-card__desc { font-size: 14.5px; color: var(--ink-soft); margin: 0; }
.promo-card__foot { margin-top: auto; padding-top: 15px; display: flex; align-items: center; justify-content: space-between; }
.promo-card__price { font-size: 17px; font-weight: 600; color: var(--olive); }

/* Badges de estado */
.status {
  position: absolute; top: 13px; left: 13px; z-index: 2;
  font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase;
  font-weight: 600; padding: 6px 12px; border-radius: 999px;
  backdrop-filter: blur(6px);
}
.status--venta   { background: rgba(52,80,56,.92); color: #eef2ea; }
.status--ultimas { background: rgba(201,140,91,.95); color: #fff; }
.status--pronto  { background: rgba(35,34,32,.74); color: #f1ece2; }
.status--vendido { background: rgba(255,255,255,.9); color: #6a6356; }

/* —— Lista de características —— */
.flist { list-style: none; padding: 0; margin: 0; }
.flist li {
  display: flex; gap: 14px; padding: 17px 0;
  border-top: 1px solid var(--line); align-items: flex-start;
}
.flist li:last-child { border-bottom: 1px solid var(--line); }
.flist .mk {
  flex: none; width: 22px; height: 22px; margin-top: 2px;
  border-radius: 50%; background: rgba(52,80,56,.12); color: var(--olive);
  display: grid; place-items: center; font-size: 12px;
}
.flist h4 { font-size: 16.5px; font-weight: 600; color: var(--ink); }
.flist p  { margin: 3px 0 0; font-size: 14.5px; color: var(--ink-soft); }
.section--olive .flist li,
.flist.on-dark li  { border-color: rgba(255,255,255,.16); }
.section--olive .flist h4,
.flist.on-dark h4  { color: #f3efe5; }
.section--olive .flist p,
.flist.on-dark p   { color: #cfc8ba; }
.section--olive .flist .mk,
.flist.on-dark .mk { background: rgba(255,255,255,.12); color: var(--sand); }

/* —— Utilidades —— */
.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(30px, 5vw, 64px);
  align-items: center;
}
.stack-sm > * + * { margin-top: 13px; }
.head-row {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 26px; flex-wrap: wrap;
  margin-bottom: clamp(28px, 3.5vw, 44px);
}
.pill-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.pill-tags span {
  font-size: 13.5px; padding: 8px 15px;
  border: 1px solid var(--line); border-radius: 999px; color: var(--ink-soft);
}
.section--olive .pill-tags span { border-color: rgba(255,255,255,.22); color: #e7e1d4; }

.media-card {
  border-radius: var(--radius-lg); overflow: hidden;
  border: 1px solid var(--line-soft); background: var(--cream-deep); position: relative;
}
.media-card img { width: 100%; height: 100%; object-fit: cover; }

/* —— Ilustraciones a mano (sello ökohaus) —— */
.ilus { display: grid; place-items: center; padding: clamp(8px,2vw,28px); }
.ilus img { width: 100%; max-width: 430px; height: auto; }
.ilus--sm img { max-width: 300px; }

/* —— Ficha de vivienda: tabla de unidades —— */
.units-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.units-table th {
  text-align: left; padding: 10px 14px;
  font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase;
  color: var(--ink-mute); font-weight: 600; border-bottom: 1px solid var(--line);
}
.units-table td { padding: 13px 14px; border-bottom: 1px solid var(--line-soft); color: var(--ink-soft); }
.units-table tr:hover td { background: var(--cream-hi); }
.unit-status { display: inline-block; font-size: 11px; padding: 3px 10px; border-radius: 999px; font-weight: 600; }
.unit-status--disponible { background: rgba(95,122,78,.14); color: var(--green); }
.unit-status--reservada  { background: rgba(201,140,91,.15); color: var(--terra-deep); }
.unit-status--vendida    { background: rgba(140,134,122,.12); color: var(--ink-mute); }

/* —— Filtros de promociones —— */
.oko-filters { display: flex; gap: 9px; flex-wrap: wrap; margin-top: 28px; }
.f-btn {
  font-family: var(--sans); font-size: 13.5px; font-weight: 500;
  background: transparent; border: 1px solid var(--line);
  color: var(--ink-soft); padding: 10px 18px; border-radius: 999px;
  transition: all .2s; cursor: pointer;
}
.f-btn:hover { border-color: var(--olive); color: var(--olive); }
.f-btn[aria-pressed="true"] {
  background: var(--olive); color: #f3efe5; border-color: var(--olive);
}

/* —— WPBakery: correcciones de espaciado —— */
.vc_row { margin-bottom: 0 !important; }
.wpb_column > .vc_column-inner { padding-top: 0 !important; }
/* Eliminar <p> vacíos que inserta wpautop */
.wpb_wrapper p:empty,
.wpb_text_column p:empty { display: none !important; margin: 0 !important; }

/* —— Footer ökohaus —— */
#footer-outer,
#footer-outer #footer-widgets {
  background-color: var(--olive) !important;
  color: #cbc4b4;
}
#footer-outer .widget,
#footer-outer .textwidget,
#footer-outer p { color: #cbc4b4; }
#footer-outer a { color: #cbc4b4 !important; text-decoration: none; }
#footer-outer a:hover { color: #f3efe5 !important; }
#footer-outer .eyebrow { color: var(--sand) !important; }
#footer-outer .widget-title { display: none; }
/* Nav links: no uppercase (Salient aplica text-transform al widget) */
#footer-outer .textwidget ul a { text-transform: none !important; font-size: 15px !important; }
/* Padding del bloque de columnas */
#footer-outer #footer-widgets .container { padding-top: 56px !important; padding-bottom: 48px !important; }
/* Reducir margen de los widgets para evitar espacio extra */
#footer-outer .widget { margin-bottom: 0 !important; padding-bottom: 0 !important; }
#footer-outer .row { padding-bottom: 0 !important; }
/* Barra de copyright (#copyright es el id real de Salient) */
#footer-outer #copyright {
  background-color: var(--olive-deep) !important;
  border-top: 1px solid rgba(255,255,255,.12) !important;
  padding: 20px 0 !important;
  margin: 0 !important;
}
#footer-outer #copyright p {
  color: #988f80 !important;
  font-size: 13px !important;
  margin: 0 !important;
}

/* —— Botones globales —— */
.btn-primary {
  display: inline-block;
  background: var(--terra); color: #fff !important;
  padding: 14px 32px; border-radius: 999px;
  font-family: var(--sans); font-size: 15px; font-weight: 600;
  text-decoration: none !important; border: none; cursor: pointer;
  transition: background .2s;
}
.btn-primary:hover { background: var(--terra-deep) !important; color: #fff !important; }
.btn-secondary-dark {
  display: inline-block;
  background: transparent; color: #f3efe5 !important;
  padding: 13px 30px; border-radius: 999px;
  border: 1.5px solid rgba(255,255,255,.45);
  font-family: var(--sans); font-size: 15px; font-weight: 500;
  text-decoration: none !important; cursor: pointer;
  transition: border-color .2s, color .2s;
}
.btn-secondary-dark:hover { border-color: #f3efe5 !important; color: #fff !important; }

/* —— Feature grid (Passivhaus + Nosotros) —— */
.feature-grid-4 {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 28px;
}
.feature-grid-3 {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 28px;
}
.feature-item { padding: 28px 24px; border-radius: var(--radius); background: rgba(255,255,255,.07); }
.feature-item.on-dark strong { color: #f3efe5; font-size: 16px; display: block; margin-bottom: 10px; }
.feature-item.on-dark p { color: #cbc4b4; font-size: 14.5px; line-height: 1.6; margin: 0; }
.feature-item strong { color: var(--ink); font-size: 16px; display: block; margin-bottom: 10px; }
.feature-item p { color: var(--ink-soft); font-size: 14.5px; line-height: 1.6; margin: 0; }
.feature-icon { font-size: 24px; display: block; margin-bottom: 12px; }

/* —— Grupo constructoras grid (Nosotros) —— */
.grupo-grid {
  display: grid; grid-template-columns: repeat(2,1fr); gap: 20px;
}
.grupo-card {
  background: #fff; border: 1px solid var(--line-soft);
  border-radius: var(--radius); padding: 28px 24px;
}
.grupo-card strong { font-size: 17px; color: var(--ink); display: block; margin-bottom: 10px; }
.grupo-card p { font-size: 14.5px; color: var(--ink-soft); line-height: 1.6; margin: 0; }

/* —— Formulario de contacto —— */
.oko-form { display: flex; flex-direction: column; gap: 18px; }
.form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group { display: flex; flex-direction: column; gap: 7px; }
.form-group label { font-size: 13px; font-weight: 600; color: var(--ink-soft); letter-spacing: .04em; }
.form-group input,
.form-group select,
.form-group textarea {
  font-family: var(--sans); font-size: 15px; color: var(--ink);
  background: #fff; border: 1px solid var(--line);
  border-radius: 8px; padding: 12px 16px; width: 100%;
  outline: none; transition: border-color .2s;
  -webkit-appearance: none; appearance: none;
}
.form-group select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238c867a' fill='none' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { border-color: var(--olive); }
.form-group textarea { resize: vertical; min-height: 120px; }
.form-check { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: var(--ink-soft); }
.form-check input[type=checkbox] { margin-top: 2px; accent-color: var(--olive); flex-shrink: 0; }
.oko-form .btn-primary { font-size: 16px; padding: 16px; border-radius: 10px; }

/* —— Map placeholder (Contacto) —— */
.oko-map-placeholder { background: var(--cream-deep); padding: 20px; }
.oko-map-placeholder p { margin-bottom: 12px; }

/* —— Responsive —— */
@media (max-width: 920px) {
  .grid-2, .feature-grid-3, .grupo-grid { grid-template-columns: 1fr; }
  .feature-grid-4 { grid-template-columns: repeat(2,1fr); }
  .form-row-2 { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .promo-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .promo-grid { grid-template-columns: 1fr; }
  .feature-grid-4 { grid-template-columns: 1fr; }
}

/* —— FORCE Signika para sobrescribir Salient Theme Options (Cormorant+Inter) —— */
html, body, button, input, textarea, select, optgroup, p, a, span, li,
h1, h2, h3, h4, h5, h6,
#header-outer, #header-outer .sf-menu li a,
.t-xl, .t-lg, .t-md, .statement, .eyebrow, .lead, .muted,
.promo-card, .promo-card *, .btn, .txtlink,
[class*="vc_custom_heading"], [class*="wpb_text_column"] *,
.nectar-button, .nectar-cta * {
  font-family: 'Signika', system-ui, -apple-system, "Segoe UI", sans-serif !important;
}

/* —— Icono teléfono fuera del menú: en el handoff no aparece —— */
#header-outer .head-phone-icon,
#header-outer .nectar-header-text-content-wrap .ti-mobile,
#header-outer .header-button[class*="phone"] i,
#header-outer i.fa-phone, #header-outer i.fa-mobile,
#header-outer .icon-phone, #header-outer .icon-mobile,
#header-outer svg.phone-icon,
#header-outer .sf-menu li > a[href*="tel:"] i,
#header-outer .sf-menu li > a[href*="tel:"] svg{
  display: none !important;
}

/* —— Header: aproximar al diseño aprobado —— */
/* Header con fondo cream */
#header-outer{ background: var(--cream) !important; border-bottom: 1px solid var(--line); }
#header-outer #top nav ul .sf-menu > li > a{
  font-family: 'Signika', system-ui, sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--olive) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
#header-outer #top nav ul .sf-menu > li > a:hover,
#header-outer #top nav ul .sf-menu > li.current_page_item > a,
#header-outer #top nav ul .sf-menu > li.current-menu-item > a{
  color: var(--olive-deep) !important;
}
/* Subrayado verde salvia activo (como el handoff) */
#header-outer #top nav ul .sf-menu > li > a::after{ background: var(--green) !important; }

/* Teléfono header — sin icono, tipografía limpia */
#header-outer .head-cta-phone,
#header-outer .header-button-extras a[href*="tel:"],
#header-outer li[class*="phone"] a{
  font-family: 'Signika', sans-serif !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
  color: var(--olive) !important;
  letter-spacing: 0 !important;
}

/* Botón "Contacto" tipo pill terracota como el aprobado */
#header-outer .nectar-button,
#header-outer .header-button,
#header-outer a.nectar-button,
#header-outer .nectar-cta-button-wrap a,
#header-outer .button-block a.nectar-button{
  background-color: var(--terra) !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-family: 'Signika', sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: .02em !important;
  font-size: 14.5px !important;
  padding: 12px 24px !important;
  border: 0 !important;
}
#header-outer .nectar-button:hover,
#header-outer .header-button:hover{
  background-color: var(--terra-deep) !important;
}

/* —— Copyright bar: estilo más limpio —— */
#footer-outer #copyright{ background: var(--olive-deep) !important; }
#footer-outer #copyright p{ color: rgba(255,255,255,.55); font-size: 13px; }
#footer-outer #copyright a{ color: rgba(255,255,255,.78) !important; }
#footer-outer #copyright a:hover{ color: #fff !important; }

/* —— Logo Gallaecia en footer (mantener fondo oscuro legible) —— */
#footer-outer .widget_text img{ display:block; }

/* =====================================================
   INLINE styles del handoff nuevo (Okohaus.zip 3 jun)
   Cada bloque viene del <style> inline de cada page
   ===================================================== */

/* === inline from contacto.html === */

  .co{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(36px,6vw,80px); padding-top:clamp(44px,5vw,72px); align-items:start; }
  @media(max-width:920px){ .co{ grid-template-columns:1fr; } }
  .co h1{ font-size:clamp(28px,3.4vw,44px); }
  .co-info{ list-style:none; padding:0; margin:28px 0 0; }
  .co-info li{ padding:17px 0; border-top:1px solid var(--line); }
  .co-info .l{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--terra-deep); margin-bottom:5px; font-weight:600; }
  .co-info a, .co-info p{ margin:0; font-size:17px; color:var(--ink); }
  .co-info a:hover{ color:var(--olive); }
  .form-card{ background:var(--paper); border:1px solid var(--line-soft); border-radius:var(--radius-lg); padding:clamp(26px,4vw,44px); }
  .field{ margin-bottom:18px; }
  .field label{ display:block; font-size:13.5px; color:var(--ink-soft); margin-bottom:7px; }
  .field input, .field textarea, .field select{ width:100%; font-family:var(--sans); font-size:16px; color:var(--ink); background:var(--cream-hi); border:1px solid var(--line); border-radius:10px; padding:13px 15px; transition:border-color .2s, box-shadow .2s; }
  .field input:focus, .field textarea:focus, .field select:focus{ outline:none; border-color:var(--olive); box-shadow:0 0 0 3px rgba(52,80,56,.1); background:#fff; }
  .field textarea{ min-height:110px; resize:vertical; }
  .row2{ display:grid; grid-template-columns:1fr 1fr; gap:15px; }
  @media(max-width:520px){ .row2{ grid-template-columns:1fr; } }
  .check{ display:flex; gap:11px; align-items:flex-start; font-size:13.5px; color:var(--ink-mute); margin:4px 0 22px; }
  .check input{ margin-top:3px; }
  .sent{ display:none; background:rgba(52,80,56,.09); border:1px solid #b7c2a8; color:#345038; border-radius:10px; padding:15px 17px; margin-bottom:18px; font-size:15px; }


/* === inline from index.html === */

  .hero{ padding-block:clamp(52px,7vw,96px) clamp(64px,8vw,108px); }
  .hero__grid{ display:grid; grid-template-columns:1fr 1.04fr; gap:clamp(36px,5vw,76px); align-items:center; }
  .hero__title{ font-size:clamp(30px,3.6vw,46px); font-weight:600; line-height:1.14; letter-spacing:-.015em; margin:18px 0 0; max-width:14ch; }
  .hero__sub{ font-size:clamp(17px,1.5vw,19px); color:var(--ink-soft); margin:20px 0 30px; max-width:40ch; line-height:1.62; }
  .hero__actions{ display:flex; gap:13px; flex-wrap:wrap; align-items:center; }
  .hero__media{ aspect-ratio:1/1; background:#fbf8f3; }
  @media(max-width:880px){ .hero__grid{ grid-template-columns:1fr; } .hero__media{ aspect-ratio:4/3; order:-1; } }
  .team-art{ display:grid; place-items:center; padding:clamp(20px,3vw,40px); }
  .team-art img{ width:100%; max-width:320px; }
  /* triada passivhaus */
  .triad{ font-size:clamp(22px,2.6vw,32px); font-weight:600; line-height:1.32; letter-spacing:-.01em; }
  .triad span{ color:var(--sand); }
  /* entrada serena */
  @keyframes riseIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
  .rise{ opacity:0; animation:riseIn .9s cubic-bezier(.2,.7,.2,1) forwards; }
  .rise.d1{ animation-delay:.08s; } .rise.d2{ animation-delay:.16s; } .rise.d3{ animation-delay:.24s; } .rise.d4{ animation-delay:.32s; }
  @media(prefers-reduced-motion:reduce){ .rise{ opacity:1; animation:none; } }


/* === inline from nosotros.html === */

  .page-head{ padding-top:clamp(44px,5vw,72px); padding-bottom:clamp(28px,3.5vw,44px); }
  .page-head h1{ font-size:clamp(28px,3.4vw,44px); max-width:20ch; }
  .values{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px 40px; }
  @media(max-width:760px){ .values{ grid-template-columns:1fr; } }
  .value{ border-top:2px solid var(--green); padding-top:18px; }
  .value h3{ font-size:18px; font-weight:600; margin-bottom:7px; }
  .value p{ font-size:15px; color:var(--ink-soft); margin:0; }
  .team-art{ display:grid; place-items:center; padding:clamp(20px,3vw,40px); }
  .team-art img{ width:100%; max-width:340px; }
  /* listado de constructoras */
  .group-list{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
  @media(max-width:560px){ .group-list{ grid-template-columns:1fr; } }
  .group-list .co{ border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; background:var(--cream-hi); }
  .group-list .co h4{ font-size:17px; font-weight:600; color:var(--ink); margin:0; }
  .group-list .co p{ font-size:13.5px; color:var(--ink-mute); margin:4px 0 0; }


/* === inline from passivhaus.html === */

  .page-head{ padding-top:clamp(44px,5vw,72px); padding-bottom:clamp(24px,3vw,36px); }
  .page-head h1{ font-size:clamp(28px,3.2vw,42px); }
  .princ{ display:grid; grid-template-columns:repeat(2,1fr); gap:28px 44px; }
  @media(max-width:760px){ .princ{ grid-template-columns:1fr; } }
  .princ .item{ border-top:1px solid var(--line); padding-top:18px; }
  .princ .item h3{ font-size:18px; font-weight:600; margin-bottom:6px; }
  .princ .item p{ font-size:15px; color:var(--ink-soft); margin:0; }


/* === inline from promocion.html === */

  .breadcrumb{ display:flex; gap:9px; align-items:center; font-size:13.5px; color:var(--ink-mute); padding-top:22px; flex-wrap:wrap; }
  .breadcrumb a:hover{ color:var(--olive); }
  .promo-hero{ display:grid; grid-template-columns:1.5fr 1fr; gap:12px; margin-top:20px; }
  .promo-hero__big{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:16/11; }
  .promo-hero__col{ display:grid; grid-template-rows:1fr 1fr; gap:12px; }
  .promo-hero__sm{ border-radius:var(--radius-lg); overflow:hidden; position:relative; background:var(--cream-deep); }
  .promo-hero img, .promo-hero image-slot{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  @media(max-width:820px){ .promo-hero{ grid-template-columns:1fr; } .promo-hero__col{ grid-template-columns:1fr 1fr; grid-template-rows:none; height:160px; } }

  .promo-title{ display:flex; justify-content:space-between; align-items:flex-end; gap:26px; flex-wrap:wrap; margin:clamp(28px,4vw,46px) 0 0; }
  .promo-title h1{ font-size:clamp(28px,3.4vw,44px); }
  .keyfacts{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin-top:30px; }
  .keyfacts div{ background:var(--paper); padding:20px 22px; }
  .keyfacts .v{ font-size:21px; font-weight:600; color:var(--olive); line-height:1; }
  .keyfacts .l{ font-size:12.5px; color:var(--ink-mute); margin-top:6px; }
  @media(max-width:680px){ .keyfacts{ grid-template-columns:1fr 1fr; } }

  .units{ width:100%; border-collapse:collapse; }
  .units th{ text-align:left; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-mute); font-weight:600; padding:0 16px 14px; }
  .units td{ padding:17px 16px; border-top:1px solid var(--line); vertical-align:middle; }
  .units tr.sold td{ color:var(--ink-mute); }
  .units .u-name{ font-size:17px; font-weight:600; color:var(--ink); }
  .units .u-price{ font-size:16px; font-weight:600; color:var(--olive); white-space:nowrap; }
  .tag{ font-size:11px; letter-spacing:.06em; padding:5px 11px; border-radius:999px; font-weight:600; }
  .tag.ok{ background:rgba(52,80,56,.12); color:#345038; }
  .tag.no{ background:#e7ddcf; color:#8a8276; }
  .units tr.row-link{ cursor:pointer; transition:background .2s; }
  .units tr.row-link:hover{ background:var(--cream); }
  @media(max-width:680px){ .units .hide-sm{ display:none; } }


/* === inline from promociones.html === */

  .page-head{ padding-top:clamp(44px,5vw,72px); padding-bottom:clamp(30px,4vw,48px); }
  .page-head h1{ font-size:clamp(28px,3.2vw,42px); }
  .filters{ display:flex; gap:9px; flex-wrap:wrap; margin-top:28px; }
  .filters button{ font-family:var(--sans); font-size:13.5px; font-weight:500; background:transparent;
    border:1px solid var(--line); color:var(--ink-soft); padding:10px 18px; border-radius:999px; transition:all .2s; }
  .filters button[aria-pressed="true"]{ background:var(--olive); color:#f3efe5; border-color:var(--olive); }
  .filters button:hover{ border-color:var(--olive); }


/* === inline from vivienda.html === */

  .breadcrumb{ display:flex; gap:9px; align-items:center; font-size:13.5px; color:var(--ink-mute); padding-top:22px; flex-wrap:wrap; }
  .breadcrumb a:hover{ color:var(--olive); }
  .vw{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,5vw,64px); margin-top:24px; align-items:start; }
  @media(max-width:920px){ .vw{ grid-template-columns:1fr; } }
  .plan{ position:relative; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line-soft); background:var(--paper); aspect-ratio:1/1; }
  .plan image-slot{ position:absolute; inset:0; width:100%; height:100%; }
  .thumbs{ display:grid; grid-template-columns:repeat(3,1fr); gap:11px; margin-top:11px; }
  .thumbs .t{ position:relative; border-radius:12px; overflow:hidden; aspect-ratio:1/1; background:var(--cream-deep); }
  .thumbs image-slot{ position:absolute; inset:0; width:100%; height:100%; }
  .vw-aside h1{ font-size:clamp(28px,3.2vw,40px); }
  .price-box{ display:flex; align-items:baseline; gap:12px; margin:16px 0 4px; }
  .price-box .p{ font-size:clamp(26px,3vw,34px); font-weight:600; color:var(--olive); }
  .specs{ list-style:none; padding:0; margin:24px 0; border-top:1px solid var(--line); }
  .specs li{ display:flex; justify-content:space-between; padding:13px 0; border-bottom:1px solid var(--line); font-size:15px; }
  .specs li span:first-child{ color:var(--ink-mute); }
  .specs li span:last-child{ color:var(--ink); font-weight:600; }
  .cta-stack{ display:flex; flex-direction:column; gap:11px; }
  .cta-stack .btn{ justify-content:center; }
  .sticky{ position:sticky; top:96px; }



/* ===============================================
   MENU SALIENT → APARIENCIA DEL HANDOFF
   Replicar .site-head, .brand-logo, .nav-desktop,
   .head-cta del handoff sobre la estructura Salient
   =============================================== */

/* Header sticky con fondo cream + backdrop blur */
#header-outer,
body.material #header-outer{
  background: rgba(245,237,224,.93) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line) !important;
  box-shadow: none !important;
}
#header-outer #top{ padding-block: 6px !important; }
#header-outer .container{ max-width: 1180px; }

/* LOGO — height 32px como el handoff */
#header-outer #logo img{
  height: 34px !important;
  width: auto !important;
  max-width: 200px !important;
}
#header-outer #logo{ padding: 8px 0 !important; }

/* NAV — ítems estilo handoff */
#header-outer .sf-menu{ display: flex !important; align-items: center; gap: 28px !important; }
#header-outer .sf-menu > li{ padding: 0 !important; margin: 0 !important; }
#header-outer .sf-menu > li > a{
  font-family: 'Signika', system-ui, sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--olive) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  padding: 4px 0 !important;
  height: auto !important;
  line-height: 1.4 !important;
  position: relative;
}
#header-outer .sf-menu > li > a .menu-title-text{
  font-family: inherit !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
#header-outer .sf-menu > li > a::after{
  content: "" !important;
  position: absolute !important;
  left: 0 !important; right: 100% !important;
  bottom: -2px !important;
  height: 2px !important;
  background: var(--green) !important;
  transition: right .25s ease !important;
  width: auto !important;
}
#header-outer .sf-menu > li > a:hover::after,
#header-outer .sf-menu > li.current-menu-item > a::after,
#header-outer .sf-menu > li.current_page_item > a::after,
#header-outer .sf-menu > li.current-page-ancestor > a::after{
  right: 0 !important;
}

/* TELÉFONO — texto plano, no botón */
#header-outer .nectar-header-text-content-wrap,
#header-outer .header-button-extras{
  display: inline-flex !important;
  align-items: center;
  gap: 16px;
}
#header-outer a[href^="tel:"]{
  background: transparent !important;
  border: 0 !important;
  padding: 4px 0 !important;
  font-family: 'Signika', sans-serif !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
  color: var(--olive) !important;
  letter-spacing: 0 !important;
  height: auto !important;
}
#header-outer a[href^="tel:"]:hover{ color: var(--olive-deep) !important; }

/* Ocultar cualquier icono dentro del tlf */
#header-outer a[href^="tel:"] i,
#header-outer a[href^="tel:"] svg,
#header-outer a[href^="tel:"] .icon,
#header-outer a[href^="tel:"] [class*="icon"]{ display: none !important; }

/* BOTÓN CONTACTO — pill terracota */
#header-outer .nectar-button,
#header-outer a.nectar-button,
#header-outer .button-block a.nectar-button,
#header-outer .header-button > a,
#header-outer a.menu-item-button,
#header-outer li.button_solid_color > a,
#header-outer li[class*="button"] > a,
#header-outer .sf-menu li.button_solid_color > a{
  background: var(--terra) !important;
  background-color: var(--terra) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 11px 24px !important;
  font-family: 'Signika', sans-serif !important;
  font-weight: 600 !important;
  font-size: 14.5px !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
  line-height: 1.2 !important;
  height: auto !important;
  box-shadow: none !important;
}
#header-outer .nectar-button:hover,
#header-outer a.nectar-button:hover,
#header-outer li.button_solid_color > a:hover{
  background: var(--terra-deep) !important;
}
#header-outer li.button_solid_color > a::after,
#header-outer li[class*="button"] > a::after{ display: none !important; }

/* Ocultar el hamburger desktop (mostrar sólo mobile) */
@media (min-width: 1000px){
  #header-outer .slide-out-widget-area-toggle{ display: none !important; }
}

/* Reset Salient color overrides en hover */
#header-outer #top nav ul .menu-title-text{ color: inherit !important; }

/* ===============================================
   FIX LAYOUT HEADER — distribuir logo / nav / cta
   Salient mete span_3 (25%) + span_9 (75%), pero
   el nav queda alineado a la izq del span_9 y la
   derecha queda VACÍA → "menú a media página"
   =============================================== */

#header-outer .container{
  max-width: 1180px !important;
  width: 100% !important;
  padding-left: 28px !important;
  padding-right: 28px !important;
}

#header-outer #top > .container > .row{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  flex-wrap: nowrap !important;
  width: 100% !important;
}

/* Columna del logo: solo lo justo */
#header-outer .col.span_3{
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Columna grande: flex que reparte nav (margin-right:auto) + cta a la derecha */
#header-outer .col.span_9{
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 28px !important;
}

/* Nav: pegado al logo (margin-right:auto manda el cta al final) */
#header-outer .col.span_9 > nav{
  margin: 0 auto 0 0 !important;  /* empuja el resto a la derecha */
  padding-left: 40px !important;  /* respiración con el logo */
}

/* El extras (tlf + botón) al final */
#header-outer .col.span_9 .nectar-header-text-content-wrap,
#header-outer .col.span_9 .header-button-extras,
#header-outer .col.span_9 .buttons{
  margin-left: 0 !important;
  flex: 0 0 auto !important;
}

/* Mobile-hamburger fuera del flow desktop */
@media (min-width: 1000px){
  #header-outer .slide-out-widget-area-toggle,
  #header-outer .nectar-mobile-only{ display: none !important; }
}

/* —— Header FULL WIDTH (todo el viewport) —— */
#header-outer{
  width: 100% !important;
  max-width: 100vw !important;
}
#header-outer .container,
#header-outer #top > .container{
  max-width: none !important;
  width: 100% !important;
  padding-left: clamp(22px, 4vw, 56px) !important;
  padding-right: clamp(22px, 4vw, 56px) !important;
}

/* —— ELIMINAR icono teléfono inyectado por Salient en .nav-phone —— */
#header-outer li.nav-phone a::before,
#header-outer li.nav-phone a::after,
#header-outer li.nav-phone i,
#header-outer li.nav-phone svg,
#header-outer li.nav-phone .fa,
#header-outer li.nav-phone [class*="fa-"],
#header-outer li.nav-phone .icon,
#header-outer li.nav-phone .menu-icon,
#header-outer .sf-menu li.nav-phone > a > *:first-child:not(.menu-title-text){
  display: none !important;
  content: none !important;
  background: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 0 !important;
  font-size: 0 !important;
}

/* Asegurar que el texto del tlf se vea limpio sin recuadro */
#header-outer li.nav-phone > a{
  background: transparent !important;
  border: 0 !important;
  padding: 4px 0 !important;
  color: var(--olive) !important;
  font-weight: 600 !important;
  font-size: 14.5px !important;
}
#header-outer li.nav-phone > a::after{
  background: transparent !important; /* sin subrayado verde como el resto */
}

/* ==== HANDOFF styles.css completo (.site-head, .nav-desktop, .btn, etc.) ==== */
/* =========================================================
   ÖKOHAUS — Promotora de viviendas Passivhaus
   Sistema sobrio · Signika + paleta oficial de okohaus.es
   Principios: orden, aire, calma. Titulares contenidos.
   ========================================================= */

*{ box-sizing:border-box; }
html{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; scroll-behavior:smooth; }
body{
  margin:0; font-family:var(--sans); font-weight:400;
  color:var(--ink-soft); background:var(--cream);
  line-height:1.62; font-size:17px;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }

/* —— Titulares contenidos, todo en Signika —— */
h1,h2,h3,h4,h5{ margin:0; font-weight:600; color:var(--ink); letter-spacing:-.01em; line-height:1.18; }
.t-xl{ font-size:clamp(28px,3.2vw,42px); font-weight:600; line-height:1.12; }   /* título de página */
.t-lg{ font-size:clamp(24px,2.6vw,33px); font-weight:600; line-height:1.16; }   /* título de sección */
.t-md{ font-size:clamp(20px,2vw,25px);  font-weight:600; line-height:1.25; }
.statement{ font-size:clamp(23px,2.7vw,34px); font-weight:500; line-height:1.32; color:var(--ink); letter-spacing:-.005em; }
.statement em{ font-style:normal; color:var(--olive); font-weight:600; }
.eyebrow{ font-weight:600; font-size:12.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--terra-deep); }
.eyebrow.on-dark{ color:#cdbfa8; }
.lead{ font-size:clamp(17px,1.5vw,19px); line-height:1.62; color:var(--ink-soft); }
.muted{ color:var(--ink-mute); }
.measure{ max-width:58ch; }
.measure-sm{ max-width:44ch; }
.center{ text-align:center; }

/* —— Layout —— */
.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gut); }
.section{ padding-block:clamp(56px,7vw,96px); }
.section--cream{ background:var(--cream); }
.section--paper{ background:var(--paper); }
.section--deep{ background:var(--cream-deep); }
.section--olive{ background:var(--olive); color:#e7e1d4; }
.section--olive h1,.section--olive h2,.section--olive h3{ color:#f3efe5; }
.divider{ height:1px; background:var(--line); border:0; margin:0; }

/* —— Botones —— */
.btn{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:var(--sans); font-weight:600; font-size:14.5px; letter-spacing:.02em;
  padding:13px 24px; border-radius:999px; border:1.5px solid transparent;
  transition:transform .2s, background .2s, color .2s, border-color .2s;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn .ic{ transition:transform .25s ease; }
.btn:hover .ic{ transform:translateX(3px); }
.btn--terra{ background:var(--terra); color:#fff; }
.btn--terra:hover{ background:var(--terra-deep); }
.btn--olive{ background:var(--olive); color:#f3efe5; }
.btn--olive:hover{ background:var(--olive-deep); }
.btn--cream{ background:var(--cream); color:var(--olive); }
.btn--cream:hover{ background:#fff; }
.btn--ghost{ background:transparent; border-color:var(--line); color:var(--olive); }
.btn--ghost:hover{ background:var(--olive); color:#fff; border-color:var(--olive); }
.btn--ghost.on-dark{ border-color:rgba(255,255,255,.32); color:#f3efe5; }
.btn--ghost.on-dark:hover{ background:#fff; color:var(--olive); border-color:#fff; }

.txtlink{ display:inline-flex; align-items:center; gap:.45em; font-weight:600; font-size:15px; color:var(--olive); }
.txtlink .ic{ transition:transform .25s ease; }
.txtlink:hover{ color:var(--green); }
.txtlink:hover .ic{ transform:translateX(3px); }
.section--olive .txtlink{ color:#e7e1d4; }
.section--olive .txtlink:hover{ color:#fff; }

/* —— Header horizontal —— */
.site-head{ position:sticky; top:0; z-index:60; background:rgba(245,237,224,.93); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.site-head__row{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:15px; }
.brand-logo img{ height:32px; width:auto; }
.nav-desktop{ display:flex; align-items:center; gap:28px; }
.nav-desktop a{ font-size:15px; font-weight:500; color:var(--olive); position:relative; padding:4px 0; }
.nav-desktop a::after{ content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--green); transition:right .25s ease; }
.nav-desktop a:hover::after, .nav-desktop a[aria-current="page"]::after{ right:0; }
.head-cta{ display:flex; align-items:center; gap:16px; }
.head-phone{ font-weight:600; font-size:14.5px; color:var(--olive); white-space:nowrap; }
.menu-toggle{ display:none; background:none; border:0; padding:0; color:var(--olive); }
.menu-toggle .bars{ display:flex; flex-direction:column; gap:5px; width:26px; }
.menu-toggle .bars i{ height:2.5px; background:currentColor; border-radius:3px; }

.nav-overlay{ position:fixed; inset:0; z-index:80; background:var(--olive); color:#e7e1d4; display:flex; flex-direction:column; padding:22px var(--gut); opacity:0; visibility:hidden; transform:translateY(-10px); transition:opacity .35s, transform .35s, visibility .35s; }
.nav-overlay.open{ opacity:1; visibility:visible; transform:none; }
.nav-overlay__top{ display:flex; justify-content:space-between; align-items:center; }
.nav-overlay__top img{ height:30px; filter:brightness(0) invert(1); }
.nav-close{ background:none; border:1px solid rgba(255,255,255,.3); color:#fff; border-radius:999px; width:44px; height:44px; font-size:19px; }
.nav-links{ margin:auto 0; display:flex; flex-direction:column; gap:10px; }
.nav-links a{ font-size:clamp(26px,5vw,38px); font-weight:500; color:#e7e1d4; width:max-content; transition:color .2s, padding .25s; }
.nav-links a:hover{ color:#fff; padding-left:8px; }
.nav-foot{ display:flex; flex-wrap:wrap; gap:6px 32px; color:rgba(231,225,212,.7); font-size:14px; }

/* —— Footer —— */
.site-foot{ background:var(--olive); color:#cbc4b4; padding-block:clamp(52px,6vw,80px) 32px; }
.foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:44px; }
.foot-brand img{ height:34px; filter:brightness(0) invert(1); }
.foot-col h5{ font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--sand); margin-bottom:15px; font-weight:600; }
.foot-col a, .foot-col p{ display:block; color:#cbc4b4; font-size:15px; margin:0 0 10px; transition:color .2s; }
.foot-col a:hover{ color:#fff; }
.foot-gallaecia{ display:flex; align-items:center; gap:11px; margin-top:18px; color:#988f80; font-size:13px; }
.foot-gallaecia img{ height:28px; opacity:.9; }
.foot-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; border-top:1px solid rgba(255,255,255,.12); margin-top:48px; padding-top:20px; font-size:13px; color:#988f80; }

/* —— Tarjetas de promoción —— */
.promo-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:26px; }
.promo-card{ background:var(--paper); border:1px solid var(--line-soft); border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; transition:transform .28s, box-shadow .28s; }
.promo-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.promo-card__media{ position:relative; aspect-ratio:4/3; background:var(--cream-deep); }
.promo-card__media image-slot,.promo-card__media img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.promo-card__body{ padding:22px 22px 26px; display:flex; flex-direction:column; gap:7px; flex:1; }
.promo-card__loc{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--terra-deep); font-weight:600; }
.promo-card__name{ font-size:23px; font-weight:600; color:var(--ink); line-height:1.1; letter-spacing:-.01em; }
.promo-card__meta{ display:flex; flex-wrap:wrap; gap:5px 14px; color:var(--ink-mute); font-size:14px; }
.promo-card__meta b{ color:var(--ink-soft); font-weight:600; }
.promo-card__desc{ font-size:14.5px; color:var(--ink-soft); margin:0; }
.promo-card__foot{ margin-top:auto; padding-top:15px; display:flex; align-items:center; justify-content:space-between; }
.promo-card__price{ font-size:17px; font-weight:600; color:var(--olive); }

.status{ position:absolute; top:13px; left:13px; z-index:2; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; padding:6px 12px; border-radius:999px; backdrop-filter:blur(6px); }
.status--venta{ background:rgba(52,80,56,.92); color:#eef2ea; }
.status--ultimas{ background:rgba(201,140,91,.95); color:#fff; }
.status--pronto{ background:rgba(35,34,32,.74); color:#f1ece2; }
.status--vendido{ background:rgba(255,255,255,.9); color:#6a6356; }

/* —— Lista de características (sin numerales grandes) —— */
.flist{ list-style:none; padding:0; margin:0; }
.flist li{ display:flex; gap:14px; padding:17px 0; border-top:1px solid var(--line); align-items:flex-start; }
.flist li:last-child{ border-bottom:1px solid var(--line); }
.flist .mk{ flex:none; width:22px; height:22px; margin-top:2px; border-radius:50%; background:rgba(52,80,56,.12); color:var(--olive); display:grid; place-items:center; font-size:12px; }
.flist h4{ font-size:16.5px; font-weight:600; color:var(--ink); }
.flist p{ margin:3px 0 0; font-size:14.5px; color:var(--ink-soft); }
.section--olive .flist li{ border-color:rgba(255,255,255,.16); }
.section--olive .flist h4{ color:#f3efe5; }
.section--olive .flist p{ color:#cfc8ba; }
.section--olive .flist .mk{ background:rgba(255,255,255,.12); color:var(--sand); }

/* —— Utilidades —— */
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,64px); align-items:center; }
.stack-sm > * + *{ margin-top:13px; }
.head-row{ display:flex; justify-content:space-between; align-items:flex-end; gap:26px; flex-wrap:wrap; margin-bottom:clamp(28px,3.5vw,44px); }
.pill-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.pill-tags span{ font-size:13.5px; padding:8px 15px; border:1px solid var(--line); border-radius:999px; color:var(--ink-soft); }
.section--olive .pill-tags span{ border-color:rgba(255,255,255,.22); color:#e7e1d4; }
.media-card{ border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line-soft); background:var(--cream-deep); position:relative; }
.media-card img, .media-card image-slot{ width:100%; height:100%; object-fit:cover; }

/* —— Ilustraciones a mano (sello okohaus) —— */
.ilus{ display:grid; place-items:center; padding:clamp(8px,2vw,28px); }
.ilus img{ width:100%; max-width:430px; height:auto; }
.ilus--sm img{ max-width:300px; }

@media (max-width:920px){
  .nav-desktop, .head-phone{ display:none; }
  .menu-toggle{ display:inline-flex; }
  .grid-2{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){ .foot-grid{ grid-template-columns:1fr; } }
