/*
Theme Name: Finca W
Theme URI: https://www.fincaw.com/
Author: The Lift Co
Description: Tema a medida para Finca W. Reproduce la maqueta aprobada por el cliente y deja el contenido de las paginas en Elementor.
Version: 1.0.6
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fincaw
Tags: custom-colors, custom-menu, translation-ready
*/

/* ==========================================================================
   FINCA W · Sistema de diseño (estructura Clove · paleta Finca W)
   ========================================================================== */
:root{
  /* --- Verdes de fondo (rol «dark section» de Clove) --- */
  --forest:      #3E4A3E;
  --forest-2:    #4B5A4B;

  /* --- Marca --- */
  --sage:        #9BAE9B;  /* acento de marca: botones, filetes, detalles */
  --sage-deep:   #586858;  /* verde accesible: enlaces y etiquetas sobre claro */
  --sage-light:  #C9D8C9;  /* sage legible sobre los verdes oscuros (AA) */
  --sage-wash:   #EDF1ED;

  /* --- Neutros --- */
  --body:        #464B45;
  --paper:       #F7F7F4;  /* blanco roto calido de la primera maqueta */
  --stone:       #EBE7DD;  /* piedra: ajustada para mantener el mismo salto visual sobre el papel */
  --stone-warm:  #DCD9D0;  /* banda de cita, tomado de Clove */
  --line:        #DFDBD0;
  --line-soft:   #E8E4DA;

  --on-sage:     #242C24;  /* texto sobre el sage de marca */
  --body-on-dark:#CFD6CE;


  /* --- Tipografía (escala Clove) --- */
  --display: "Newsreader", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --sans: "Pontano Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  --lh-display: 1.232;      /* 77.71 / 63.08 en Clove */
  --fs-micro:   .8375rem;
  --fs-body:    1.125rem;   /* 18px — subido desde los 17px de Clove por legibilidad */
  --fs-lead:    1.28rem;
  --fs-h3:      clamp(1.4rem, 1.15rem + .8vw, 1.66rem);
  --fs-h2:      clamp(1.95rem, 1.2rem + 2.2vw, 3.05rem);
  --fs-h1:      clamp(2.2rem, 1.3rem + 2.6vw, 3.3rem);
  --fs-hero:    clamp(2.5rem, 1.3rem + 3.4vw, 3.9rem);

  /* --- Ritmo --- */
  --section-y:  clamp(4.5rem, 8vw, 8.5rem);
  --max:        76rem;
  --max-narrow: 46rem;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --forest:     #2B332B;
    --forest-2:   #333D33;
    --sage:       #9BAE9B;
    --sage-deep:  #B4C6B4;
    --sage-light: #C9D8C9;
    --sage-wash:  #1F2620;
    --body:       #B7BBB1;
    --paper:      #14170F;
    --stone:      #1B1F18;
    --stone-warm: #232720;
    --line:       #333830;
    --line-soft:  #282D25;
    --on-sage:    #171A15;
    --body-on-dark:#B9C1B8;
  }
}
:root[data-theme="dark"]{
  --forest:     #2B332B;
  --forest-2:   #333D33;
  --sage:       #9BAE9B;
  --sage-deep:  #B4C6B4;
  --sage-light: #C9D8C9;
  --sage-wash:  #1F2620;
  --body:       #B7BBB1;
  --paper:      #14170F;
  --stone:      #1B1F18;
  --stone-warm: #232720;
  --line:       #333830;
  --line-soft:  #282D25;
  --on-sage:    #171A15;
  --body-on-dark:#B9C1B8;
}

/* ---------- base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:6.5rem; }
body{
  margin:0; background:var(--paper); color:var(--body);
  font-family:var(--sans); font-size:var(--fs-body); line-height:1.75;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{
  font-family:var(--display); color:var(--forest);
  font-weight:400; line-height:var(--lh-display); letter-spacing:0;
  margin:0; text-wrap:balance; overflow-wrap:break-word; hyphens:none;
}
@media (max-width:520px){
  h1,h2,h3{ text-wrap:pretty; }
}
p{ margin:0; }
a{ color:inherit; }
img{ display:block; max-width:100%; height:auto; }
ul{ margin:0; padding:0; list-style:none; }
:focus-visible{ outline:2px solid var(--sage-deep); outline-offset:3px; }

.wrap{ width:100%; max-width:var(--max); margin-inline:auto; padding-inline:clamp(1.25rem,4vw,3.5rem); }
.narrow{ max-width:var(--max-narrow); }

.eyebrow{
  font-size:var(--fs-micro); font-weight:500; letter-spacing:.11em;
  text-transform:uppercase; color:var(--sage-deep); margin:0;
}
.lead{ font-size:var(--fs-lead); line-height:1.6; max-width:34rem; }
.section-dark p, .section-dark2 p, .cta-band p, .band-copy p, .prose p{ max-width:38rem; }
.center{ text-align:center; }

.skip{ position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--forest); color:#FFFFFF; padding:.8rem 1.25rem; font-size:.9rem; }
.skip:focus{ left:1rem; top:1rem; }

/* ---------- botones (medidas Clove) ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--sans); font-size:.9375rem; font-weight:500;
  letter-spacing:.06em; text-transform:uppercase; line-height:1;
  padding:1.34rem 2.24rem; text-decoration:none;
  border:1px solid transparent; border-radius:0; cursor:pointer;
  transition:background-color .22s, color .22s, border-color .22s;
}
.btn-primary{ background:var(--sage); color:var(--on-sage); }
.btn-primary:hover{ background:var(--sage-deep); color:#FFFFFF; }
.btn-outline{ border-color:var(--forest); color:var(--forest); background:transparent; }
.btn-outline:hover{ background:var(--forest); color:#FFFFFF; }
.btn-on-dark{ border-color:rgba(255,255,255,.5); color:#FFFFFF; background:transparent; }
.btn-on-dark:hover{ background:#FFFFFF; color:var(--forest); border-color:#FFFFFF; }
.btn-sm{ padding:.85rem 1.5rem; font-size:.8125rem; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* ---------- cabecera ----------
   La marca es solo el glifo W: el PNG completo ya contiene el nombre y el
   lema, y repetirlos al lado saturaba la barra. El lema vive en el pie. */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  background:transparent; border-bottom:1px solid transparent;
  transition:background-color .35s ease, border-color .35s ease, padding .35s ease;
}
.site-header.solid{
  background:color-mix(in srgb, var(--paper) 94%, transparent);
  -webkit-backdrop-filter:saturate(1.3) blur(12px);
  backdrop-filter:saturate(1.3) blur(12px);
  border-bottom-color:var(--line-soft);
}
body{ padding-top:0; }

.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:2rem; padding-block:1.35rem; transition:padding-block .35s ease;
}
.site-header.solid .header-inner{ padding-block:.95rem; }

.logo{ display:inline-flex; align-items:center; gap:.85rem; text-decoration:none; }
.logo .mark{
  width:30px; height:auto; flex:none;
  transition:width .35s ease, filter .35s ease;
}
.site-header.solid .logo .mark{ width:26px; }
.logo .wm-name{
  font-family:var(--sans); font-size:1.02rem; font-weight:500;
  letter-spacing:.3em; text-transform:uppercase; line-height:1;
  color:#FFFFFF; transition:color .35s ease; white-space:nowrap;
}
.site-header.solid .logo .wm-name{ color:var(--forest); }

/* sobre el hero la cabecera va en blanco; al fijarse recupera el verde */
.mainnav{ display:flex; align-items:center; gap:2.4rem; }
.mainnav a{
  position:relative; font-size:.95rem; font-weight:400; letter-spacing:.02em;
  text-decoration:none; color:rgba(255,255,255,.88); padding-block:.35rem;
  transition:color .3s ease;
}
.site-header.solid .mainnav a{ color:var(--body); }
.mainnav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:currentColor; transform:scaleX(0); transform-origin:left;
  transition:transform .32s cubic-bezier(.4,0,.2,1);
}
.mainnav a:hover::after, .mainnav a[aria-current="page"]::after{ transform:scaleX(1); }
.mainnav a:hover{ color:#FFFFFF; }
.site-header.solid .mainnav a:hover,
.site-header.solid .mainnav a[aria-current="page"]{ color:var(--forest); }
.mainnav a.btn::after{ display:none; }

.mainnav a.btn{
  background:transparent; border-color:rgba(255,255,255,.55); color:#FFFFFF;
}
.mainnav a.btn:hover{ background:#FFFFFF; color:var(--forest); border-color:#FFFFFF; }
.site-header.solid .mainnav a.btn{
  background:var(--sage); border-color:var(--sage); color:var(--on-sage);
}
.site-header.solid .mainnav a.btn:hover{
  background:var(--sage-deep); border-color:var(--sage-deep); color:#FFFFFF;
}

/* --- botón hamburguesa --- */
.navtoggle{
  display:none; position:relative; z-index:120;
  width:44px; height:44px; padding:0;
  background:none; border:0; cursor:pointer;
}
.navtoggle span{
  position:absolute; left:11px; width:22px; height:1.5px; background:#FFFFFF;
  transition:transform .34s cubic-bezier(.4,0,.2,1), opacity .2s ease, background-color .35s ease;
}
.navtoggle span:nth-child(1){ top:17px; }
.navtoggle span:nth-child(2){ top:25px; }
.site-header.solid .navtoggle span{ background:var(--forest); }
.navtoggle[aria-expanded="true"] span{ background:#FFFFFF; }
.navtoggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(4px) rotate(45deg); }
.navtoggle[aria-expanded="true"] span:nth-child(2){ transform:translateY(-4px) rotate(-45deg); }

@media (max-width:960px){
  .navtoggle{ display:block; }
  .mainnav{
    position:fixed; inset:0; z-index:110;
    flex-direction:column; align-items:flex-start; justify-content:center;
    gap:.25rem; padding:0 clamp(1.5rem,8vw,5rem);
    background:var(--forest);
    opacity:0; visibility:hidden; transition:opacity .38s ease, visibility .38s;
  }
  .mainnav.open{ opacity:1; visibility:visible; }
  .mainnav a{
    font-family:var(--display); font-size:clamp(2rem,9vw,2.9rem);
    letter-spacing:0; text-transform:none; color:#FFFFFF;
    padding-block:.42rem;
  }
  .mainnav a::after{ display:none; }
  .site-header.solid .mainnav a{ color:#FFFFFF; }
  .mainnav a[aria-current="page"]{ color:var(--sage-light); }
  .site-header.solid .mainnav a[aria-current="page"]{ color:var(--sage-light); }
  .mainnav a.btn, .site-header.solid .mainnav a.btn{
    margin-top:2.25rem; font-family:var(--sans); font-size:.9rem;
    background:var(--sage); border-color:var(--sage); color:var(--on-sage);
  }
  body.nav-open{ overflow:hidden; }
}

/* --- barra de acción fija en móvil --- */
.actionbar{
  position:fixed; inset:auto 0 0 0; z-index:90; display:none;
  grid-template-columns:1fr 1fr; gap:1px; background:var(--line);
  border-top:1px solid var(--line);
}
.actionbar a{
  background:var(--paper); text-align:center; padding:1.05rem .5rem;
  font-family:var(--sans); font-size:.82rem; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase;
  text-decoration:none; color:var(--forest);
}
.actionbar a.primary{ background:var(--sage); color:var(--on-sage); }
@media (max-width:760px){
  .actionbar{ display:grid; }
  body{ padding-bottom:3.6rem; }
}

/* ---------- placeholders de imagen ---------- */
.ph{
  position:relative; display:flex; align-items:center; justify-content:center;
  background:var(--sage-wash); border:1px solid var(--line); overflow:hidden;
}
.ph::after{
  content:attr(data-ph);
  font-family:var(--sans); font-size:.8rem; font-weight:400; letter-spacing:.01em;
  text-transform:none; color:var(--sage-deep); text-align:center; line-height:1.45;
  padding:0 1.5rem; margin:1rem; max-width:30ch;
}
.ph-4x3{ aspect-ratio:4/3; } .ph-3x2{ aspect-ratio:3/2; }
.ph-1x1{ aspect-ratio:1/1; } .ph-4x5{ aspect-ratio:4/5; }
.ph-16x9{ aspect-ratio:16/9; }

/* ---------- fotografías ---------- */
.pic{ display:block; position:relative; overflow:hidden; background:var(--sage-wash); }
.pic img{ width:100%; height:100%; object-fit:cover; display:block; }
.band-media .pic, .stay-card .pic, .pillar .pic, .gallery-grid .pic{ width:100%; }

/* ---------- hero (composición Clove: fondo oscuro, texto a la izquierda) ---------- */
.hero{ position:relative; background:var(--forest); }
.hero-media{ position:relative; min-height:clamp(32rem,80vh,48rem); display:grid; }
.hero-media .ph{ position:absolute; inset:0; border:0; aspect-ratio:auto; }
.hero-media .ph::after{ align-self:start; margin-top:7rem; }
.hero-pic{ position:absolute; inset:0; aspect-ratio:auto !important; }
.hero-pic img{ width:100%; height:100%; object-fit:cover; }
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(100deg, rgba(24,30,24,.80) 0%, rgba(24,30,24,.62) 38%, rgba(24,30,24,.28) 72%, rgba(24,30,24,.18) 100%),
    linear-gradient(to top, rgba(24,30,24,.55) 0%, rgba(24,30,24,0) 45%);
}
@media (max-width:760px){
  .hero-scrim{ background:linear-gradient(to top, rgba(24,30,24,.90) 0%, rgba(24,30,24,.78) 55%, rgba(24,30,24,.74) 100%); }
}
.hero-content{
  position:relative; z-index:2; align-self:center;
  display:grid; justify-items:start; text-align:left; gap:1.6rem;
  padding-block:clamp(4.5rem,10vw,8rem); max-width:44rem;
}
.hero-mark{ width:clamp(84px,9vw,116px); }
.hero h1{ font-size:var(--fs-hero); color:#FFFFFF; max-width:16ch; }
@media (max-width:640px){ .hero h1 br{ display:none; } }
.hero .hero-sub{
  color:#EFF3EE; font-size:clamp(1.08rem,.95rem + .5vw,1.3rem);
  max-width:30rem; line-height:1.6;
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:.6rem; }

/* subcabecera de páginas interiores */
.pagehead{ background:var(--forest); }
.pagehead .wrap{
  padding-block:clamp(3.5rem,7vw,6rem); display:grid; gap:1.3rem;
  justify-items:start; text-align:left; max-width:var(--max);
}
.pagehead .eyebrow{ color:var(--sage-light); }
.pagehead h1{ font-size:var(--fs-h1); color:#FFFFFF; }
.pagehead .lead{ max-width:40rem; color:var(--body-on-dark); }

/* ---------- secciones ---------- */
.section{ padding-block:var(--section-y); }
.section-stone{ background:var(--stone); }
.section-warm{ background:var(--stone-warm); }
.section-dark{ background:var(--forest); }
.section-dark2{ background:var(--forest-2); }
.section-dark, .section-dark2{ color:var(--body-on-dark); }
.section-dark h2, .section-dark h3, .section-dark h4,
.section-dark2 h2, .section-dark2 h3, .section-dark2 h4,
.pagehead h1, .pagehead h2, .cta-band h2{ color:#FFFFFF; }
.section-dark .eyebrow, .section-dark2 .eyebrow{ color:var(--sage-light); }

.section-head{ display:grid; gap:1.2rem; margin-bottom:clamp(2.75rem,4.5vw,4.25rem); }
.section-head h2{ font-size:var(--fs-h2); max-width:18ch; }
.section-head .lead{ max-width:40rem; }
.section-head.center{ justify-items:center; text-align:center; }
.section-head.center h2, .section-head.center .lead{ margin-inline:auto; }

.rule-sage{ width:2.75rem; height:1px; background:var(--sage); border:0; margin:0; }

/* ---------- bandas alternas texto / imagen ---------- */
.band{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.band + .band{ margin-top:clamp(4rem,8vw,7.5rem); }
.band-copy h3{ font-size:var(--fs-h2); }
.band-copy > * + *{ margin-top:1.3rem; }
.band.reverse .band-media{ order:2; }
@media (max-width:880px){
  .band{ grid-template-columns:1fr; gap:1.75rem; }
  .band.reverse .band-media{ order:0; }
}

/* etiqueta de distancia — dato real del brief */
.chip{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:var(--fs-micro); font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  color:var(--sage-deep); border:1px solid var(--sage); padding:.35rem .9rem;
}
.chip::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--sage-deep); }

/* lista de prestaciones */
.features{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem 1.5rem; }
.features li{ position:relative; padding-left:1.6rem; font-size:.98rem; line-height:1.5; }
.features li::before{
  content:""; position:absolute; left:0; top:.5em; width:.62rem; height:.34rem;
  border-left:1.5px solid var(--sage-deep); border-bottom:1.5px solid var(--sage-deep);
  transform:rotate(-45deg);
}
@media (max-width:520px){ .features{ grid-template-columns:1fr; } }

/* ---------- rejilla de pilares sobre verde (rol «services» de Clove) ---------- */
.triptych{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.75rem,3.5vw,3rem); }
@media (max-width:820px){ .triptych{ grid-template-columns:1fr; } }
.pillar{ display:grid; gap:1rem; align-content:start; }
.pillar .ph{ width:100%; margin-bottom:.5rem; }
.pillar h3{ font-size:var(--fs-h3); }
.pillar p{ font-size:1rem; }
.pillar a{
  font-size:.8125rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500;
  color:#FFFFFF; text-decoration:none; border-bottom:1px solid var(--sage);
  padding-bottom:.25rem; justify-self:start;
}
.pillar a:hover{ border-bottom-color:#FFFFFF; }

/* ---------- tarjetas de alojamiento ---------- */
.stays{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.75rem,3.5vw,3rem); }
@media (max-width:820px){ .stays{ grid-template-columns:1fr; } }
.stay-card{ display:grid; gap:1.1rem; align-content:start; text-decoration:none; color:inherit; }
.stay-card .ph{ transition:opacity .25s; }
.stay-card:hover .ph{ opacity:.88; }
.stay-card h3{ font-size:var(--fs-h3); }
.stay-card .meta{ font-size:var(--fs-micro); letter-spacing:.14em; text-transform:uppercase; color:var(--sage-deep); }
.stay-card .more{
  font-size:.8125rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500;
  color:var(--forest); border-bottom:1px solid var(--sage); padding-bottom:.25rem; justify-self:start;
}
.stay-card:hover .more{ border-bottom-color:var(--forest); }

/* ---------- banda de cita (piedra cálida, rol testimonial de Clove) ---------- */
.quote-band{ background:var(--stone-warm); }
.quote-band .wrap{ padding-block:clamp(4rem,7vw,6.5rem); display:grid; gap:1.75rem; justify-items:center; text-align:center; }
.quote-band blockquote{
  margin:0; font-family:var(--display); font-weight:300;
  font-size:clamp(1.6rem,1rem + 2.2vw,2.6rem); line-height:1.28;
  color:var(--forest); max-width:24ch;
}
.quote-band cite{
  font-family:var(--sans); font-style:normal; font-size:var(--fs-micro);
  letter-spacing:.18em; text-transform:uppercase; color:var(--forest);
}

/* ---------- galería ---------- */
.gallery-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1rem,2vw,1.75rem); }
@media (max-width:640px){ .gallery-grid{ grid-template-columns:1fr; } }
.gallery-grid button{ padding:0; border:0; background:none; cursor:pointer; display:block; width:100%; }
.gallery-grid button .ph{ transition:opacity .25s; }
.gallery-grid button:hover .ph{ opacity:.86; }

.lightbox{ position:fixed; inset:0; z-index:300; display:none; background:rgba(24,29,23,.95); padding:clamp(1rem,4vw,3rem); }
.lightbox.open{ display:grid; grid-template-rows:auto 1fr auto; gap:1rem; }
.lightbox-stage{ display:grid; place-items:center; min-height:0; }
.lightbox-stage .ph{ width:min(100%,62rem); max-height:70vh; aspect-ratio:3/2; }
.lightbox-stage img{ max-width:min(100%,68rem); max-height:72vh; width:auto; height:auto; object-fit:contain; }
.lightbox-bar{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.lightbox-count{ font-size:var(--fs-micro); letter-spacing:.18em; text-transform:uppercase; color:#CBD2C8; }
.lightbox button{
  background:transparent; border:1px solid rgba(255,255,255,.4); color:#FFFFFF;
  font-family:var(--sans); font-size:.8125rem; letter-spacing:.12em; text-transform:uppercase;
  padding:.7rem 1.3rem; border-radius:0; cursor:pointer; transition:background-color .2s, border-color .2s;
}
.lightbox button:hover{ background:rgba(255,255,255,.16); border-color:#FFFFFF; }
.lightbox-caption{ text-align:center; color:#E7EBE4; font-size:.95rem; }
.lightbox-nav{ display:flex; gap:.6rem; }

/* ---------- contacto ---------- */
.contact-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,5vw,4.5rem); align-items:start; }
@media (max-width:880px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-list li{ border-top:1px solid var(--line); padding-block:1.25rem; }
.contact-list li:last-child{ border-bottom:1px solid var(--line); }
.contact-list .label{
  display:block; font-size:var(--fs-micro); font-weight:500; letter-spacing:.16em;
  text-transform:uppercase; color:var(--sage-deep);
}
.contact-list .value{
  display:block; margin-top:.4rem; font-family:var(--display); font-size:1.45rem;
  color:var(--forest); text-decoration:none; line-height:1.3;
}
.contact-list a.value:hover{ color:var(--sage-deep); text-decoration:underline; text-underline-offset:4px; }
.contact-list .sub{ display:block; font-size:.9rem; margin-top:.25rem; }
.contact-panel{ background:var(--stone); padding:clamp(1.9rem,3.5vw,2.75rem); }
.contact-panel h2{ font-size:var(--fs-h3); }
.contact-panel .stack{ display:grid; gap:.7rem; margin-top:1.9rem; }
.contact-panel .btn{ width:100%; }
.contact-panel .fineprint{ margin-top:1.4rem; font-size:.85rem; line-height:1.55; }

/* ---------- banda CTA (verde medio, rol «Get started» de Clove) ---------- */
.cta-band{ background:var(--forest-2); color:var(--body-on-dark); }
.cta-band .wrap{ padding-block:clamp(3.5rem,6.5vw,5.5rem); display:grid; gap:1.5rem; justify-items:center; text-align:center; }
.cta-band h2{ font-size:var(--fs-h2); color:#FFFFFF; max-width:16ch; }
.cta-band p{ max-width:38rem; }
.cta-band .eyebrow{ color:var(--sage-light); }

/* ---------- pie ---------- */
.site-footer{ background:var(--forest); color:var(--body-on-dark); }
.footer-grid{
  display:grid; grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));
  gap:2.5rem; padding-block:clamp(3rem,5.5vw,4.5rem);
}
@media (max-width:800px){ .footer-grid{ grid-template-columns:1fr 1fr; } .footer-grid > :first-child{ grid-column:1/-1; } }
.footer-grid h3{
  font-family:var(--sans); font-size:var(--fs-micro); font-weight:500; letter-spacing:.16em;
  text-transform:uppercase; color:var(--sage-light); margin-bottom:1.1rem;
}
.footer-grid ul{ display:grid; gap:.65rem; }
.footer-grid a{ font-size:.95rem; color:var(--body-on-dark); text-decoration:none; }
.footer-grid a:hover{ color:#FFFFFF; text-decoration:underline; text-underline-offset:3px; }
.footer-brand img{ width:58px; margin-bottom:1.1rem; }
.footer-brand p{ font-size:.95rem; max-width:27rem; }
.footer-tag{ font-size:var(--fs-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--sage-light); margin-top:1.1rem; }
.colophon{
  border-top:1px solid rgba(255,255,255,.16); padding-block:1.5rem;
  display:flex; flex-wrap:wrap; gap:.75rem 2rem; justify-content:space-between; font-size:.85rem;
}
.colophon a{ color:var(--body-on-dark); text-decoration:none; }
.colophon a:hover{ color:#FFFFFF; }


/* ==========================================================================
   Detalles de acabado
   ========================================================================== */

/* imágenes con leve acercamiento al pasar el cursor */
.band-media, .stay-card .ph, .pillar .ph, .gallery-grid .ph{ overflow:hidden; }
.stay-card .ph, .gallery-grid .ph,
.stay-card .pic img, .gallery-grid .pic img{ transition:transform .7s cubic-bezier(.2,.6,.2,1); }
.stay-card:hover .ph, .gallery-grid button:hover .ph,
.stay-card:hover .pic img, .gallery-grid button:hover .pic img{ transform:scale(1.04); }

/* el hero ocupa la ventana y deja respirar a la cabecera fija */
.hero-media{ min-height:clamp(34rem,88vh,52rem); }
.hero-content{ padding-block:clamp(8rem,14vw,11rem) clamp(4rem,8vw,6rem); }

/* filete y dato de ubicación bajo el titular del hero */
.hero-meta{
  display:flex; align-items:center; gap:1rem; margin-top:.4rem;
  font-size:var(--fs-micro); letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.9);
}
.hero-meta::before{ content:""; width:2.5rem; height:1px; background:var(--sage); flex:none; }


/* subcabecera interior: deja hueco a la cabecera fija */
.pagehead .wrap{ padding-block:clamp(9rem,15vw,12rem) clamp(3.5rem,6vw,5rem); }
.pagehead h1{ font-size:clamp(2.6rem,1.4rem + 3.4vw,4rem); }
.pagehead .eyebrow + h1{ margin-top:.35rem; }

/* galería en dos columnas desfasadas */
@media (min-width:641px){
  .gallery-grid{ align-items:start; }
  .gallery-grid button:nth-child(even){ margin-top:clamp(1.5rem,5vw,4rem); }
}

/* separador fino entre bloques de texto largos */
.section-head h2 + .lead{ margin-top:.25rem; }

/* enlaces del tríptico con subrayado animado */
.pillar a{ position:relative; border-bottom:0; padding-bottom:.3rem; }
.pillar a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--sage); transform-origin:left; transition:transform .32s cubic-bezier(.4,0,.2,1);
}
.pillar a:hover::after{ transform:scaleX(.35); }

/* cifra de la banda de cita */
.quote-band .score{
  display:inline-flex; align-items:baseline; gap:.5rem;
  font-family:var(--display); font-size:2.6rem; color:var(--forest); line-height:1;
}
.quote-band .score small{
  font-family:var(--sans); font-size:.8rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--forest);
}


/* ==========================================================================
   Movimiento
   La clase js-anim solo la añade el JS: sin JavaScript todo queda visible.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .js-anim .reveal{
    opacity:0; transform:translateY(18px);
    transition:opacity .85s cubic-bezier(.2,.7,.2,1), transform .85s cubic-bezier(.2,.7,.2,1);
  }
  .js-anim .reveal.in{ opacity:1; transform:none; }
  .js-anim .reveal:nth-child(2){ transition-delay:.09s; }
  .js-anim .reveal:nth-child(3){ transition-delay:.18s; }
  .js-anim .reveal:nth-child(4){ transition-delay:.27s; }

  /* entrada del hero, escalonada */
  .js-anim .hero-content > *{
    opacity:0; transform:translateY(22px);
    animation:heroIn .95s cubic-bezier(.2,.7,.2,1) forwards;
  }
  .js-anim .hero-content > *:nth-child(1){ animation-delay:.15s; }
  .js-anim .hero-content > *:nth-child(2){ animation-delay:.28s; }
  .js-anim .hero-content > *:nth-child(3){ animation-delay:.40s; }
  .js-anim .hero-content > *:nth-child(4){ animation-delay:.52s; }
  @keyframes heroIn{ to{ opacity:1; transform:none; } }

  /* la foto del hero respira muy despacio */
  .js-anim .hero-pic img{ animation:heroZoom 22s ease-out forwards; transform-origin:56% 50%; }
  @keyframes heroZoom{ from{ transform:scale(1.07); } to{ transform:scale(1); } }

  /* el filete del epígrafe se dibuja */
  .js-anim .hero-meta::before{ width:0; animation:ruleGrow .8s ease-out .62s forwards; }
  @keyframes ruleGrow{ to{ width:2.5rem; } }
}

/* ---------- utilidades ---------- */
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}


/* ==========================================================================
   WordPress · texto corriente (avisos legales, privacidad, cookies)
   ========================================================================== */
.prose > * + *{ margin-top:1.35rem; }
.prose h2{ font-size:var(--fs-h3); margin-top:2.6rem; }
.prose h3{ font-size:1.2rem; margin-top:2rem; }
.prose ul{ list-style:none; display:grid; gap:.6rem; }
.prose ul li{ position:relative; padding-left:1.6rem; }
.prose ul li::before{
  content:""; position:absolute; left:0; top:.55em; width:.62rem; height:.34rem;
  border-left:1.5px solid var(--sage-deep); border-bottom:1.5px solid var(--sage-deep);
  transform:rotate(-45deg);
}
.prose ol{ padding-left:1.25rem; display:grid; gap:.6rem; list-style:decimal; }
.prose a{ color:var(--sage-deep); text-decoration:underline; text-underline-offset:3px; }
.prose a:hover{ color:var(--forest); }
.prose strong{ color:var(--forest); font-weight:600; }
.prose table{ width:100%; border-collapse:collapse; font-size:.95rem; }
.prose th, .prose td{ border:1px solid var(--line); padding:.7rem .9rem; text-align:left; vertical-align:top; }
.prose th{ background:var(--stone); color:var(--forest); font-weight:600; }

/* ==========================================================================
   Puente con Elementor
   El contenido de las páginas se edita en Elementor; estas reglas hacen que
   su salida respete milimétricamente la maqueta aprobada.
   ========================================================================== */

/* --- contenedores: mismo ancho y mismos márgenes que .wrap --- */
.elementor-section.elementor-section-boxed > .elementor-container{
  max-width:var(--max);
  padding-inline:clamp(1.25rem,4vw,3.5rem);
}
.elementor-widget-wrap{ padding:0 !important; }
.elementor-section .elementor-widget:not(:last-child){ margin-bottom:0; }
.elementor-element{ --widgets-spacing:0px 0px; }
.elementor-column-gap-default > .elementor-column > .elementor-element-populated{ padding:0; }

/* --- tipografía y color heredados del sistema de diseño --- */
.elementor-widget-heading .elementor-heading-title{
  font-family:var(--display); font-weight:400; line-height:var(--lh-display);
  color:var(--forest); margin:0; text-wrap:balance;
}
.elementor-widget-text-editor{
  font-family:var(--sans); font-size:var(--fs-body); line-height:1.75; color:var(--body);
}
.elementor-widget-text-editor p{ margin:0; }
.elementor-widget-text-editor p + p{ margin-top:1.1rem; }

/* --- botones con las medidas Clove --- */
.elementor-button{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--sans); font-size:.9375rem; font-weight:500;
  letter-spacing:.06em; text-transform:uppercase; line-height:1;
  padding:1.34rem 2.24rem; border-radius:0; border:1px solid transparent;
  background:var(--sage); color:var(--on-sage); text-decoration:none;
  transition:background-color .22s, color .22s, border-color .22s;
}
.elementor-button:hover, .elementor-button:focus{ background:var(--sage-deep); color:#FFFFFF; }
.elementor-button .elementor-button-content-wrapper{ gap:.5rem; }

/* --- imágenes --- */
.elementor-widget-image img{ display:block; width:100%; height:auto; }
.elementor-widget-image figure, .elementor-widget-image .elementor-image{ margin:0; }

/* ==========================================================================
   Clases de la maqueta aplicadas a las secciones de Elementor
   ========================================================================== */

/* --- ritmo vertical --- */
.fw-section{ padding-block:var(--section-y) !important; }
.fw-pb0{ padding-bottom:0 !important; }
.fw-pt0{ padding-top:0 !important; }
.fw-stone{ background-color:var(--stone) !important; }
.fw-warm{ background-color:var(--stone-warm) !important; }
.fw-dark{ background-color:var(--forest) !important; color:var(--body-on-dark); }
.fw-dark2{ background-color:var(--forest-2) !important; color:var(--body-on-dark); }
.fw-dark .elementor-widget-heading .elementor-heading-title,
.fw-dark2 .elementor-widget-heading .elementor-heading-title{ color:#FFFFFF; }
.fw-dark .elementor-widget-text-editor,
.fw-dark2 .elementor-widget-text-editor{ color:var(--body-on-dark); }

/* --- epígrafe (eyebrow) --- */
.fw-eyebrow .elementor-heading-title,
.fw-eyebrow{
  font-family:var(--sans) !important; font-size:var(--fs-micro) !important;
  font-weight:500 !important; letter-spacing:.11em !important;
  text-transform:uppercase !important; color:var(--sage-deep) !important;
  line-height:1.4 !important;
}
.fw-dark .fw-eyebrow .elementor-heading-title,
.fw-dark2 .fw-eyebrow .elementor-heading-title,
.fw-hero .fw-eyebrow .elementor-heading-title{ color:var(--sage-light) !important; }

/* --- titulares --- */
.fw-h2 .elementor-heading-title{ font-size:var(--fs-h2) !important; }
.fw-h3 .elementor-heading-title{ font-size:var(--fs-h3) !important; }
.fw-lead{ font-size:var(--fs-lead) !important; line-height:1.6 !important; }

/* --- columna estrecha y centrada --- */
.fw-narrow > .elementor-container{ max-width:calc(var(--max-narrow) + 7rem); }
.fw-center, .fw-center .elementor-widget-container{ text-align:center; }
.fw-center .fw-lead{ margin-inline:auto; max-width:40rem; }

/* --- pila vertical de una columna, con ritmo de la maqueta --- */
.fw-stack > .elementor-container > .elementor-column > .elementor-element-populated{
  display:grid; gap:1.5rem; align-content:start;
}
.fw-stack.fw-center > .elementor-container > .elementor-column > .elementor-element-populated{
  justify-items:center;
}

/* ==========================================================================
   Hero
   ========================================================================== */
.fw-hero{
  position:relative; background-color:var(--forest) !important;
  min-height:clamp(34rem,88vh,52rem); display:flex; align-items:center;
  padding-block:clamp(8rem,14vw,11rem) clamp(4rem,8vw,6rem) !important;
}
.fw-hero > .elementor-background-overlay{
  background-image:
    linear-gradient(100deg, rgba(24,30,24,.80) 0%, rgba(24,30,24,.62) 38%, rgba(24,30,24,.28) 72%, rgba(24,30,24,.18) 100%),
    linear-gradient(to top, rgba(24,30,24,.55) 0%, rgba(24,30,24,0) 45%) !important;
  opacity:1 !important;
}
.fw-hero > .elementor-container{ position:relative; z-index:2; }
.fw-hero > .elementor-container > .elementor-column > .elementor-element-populated{
  display:grid; justify-items:start; text-align:left; gap:1.6rem; max-width:44rem;
}
.fw-hero .elementor-widget-heading .elementor-heading-title{
  color:#FFFFFF; font-size:var(--fs-hero); max-width:16ch;
}
.fw-hero .elementor-widget-text-editor{
  color:#EFF3EE; font-size:clamp(1.08rem,.95rem + .5vw,1.3rem);
  max-width:30rem; line-height:1.6;
}
.fw-hero .fw-meta .elementor-heading-title{
  display:flex; align-items:center; gap:1rem; font-family:var(--sans);
  font-size:var(--fs-micro); font-weight:400; letter-spacing:.14em;
  text-transform:uppercase; color:rgba(255,255,255,.9); max-width:none;
}
.fw-hero .fw-meta .elementor-heading-title::before{
  content:""; width:2.5rem; height:1px; background:var(--sage); flex:none;
}
.fw-hero .elementor-button{
  background:transparent; border-color:rgba(255,255,255,.55); color:#FFFFFF;
}
.fw-hero .elementor-button:hover{ background:#FFFFFF; color:var(--forest); border-color:#FFFFFF; }
@media (max-width:760px){
  .fw-hero > .elementor-background-overlay{
    background-image:linear-gradient(to top, rgba(24,30,24,.90) 0%, rgba(24,30,24,.78) 55%, rgba(24,30,24,.74) 100%) !important;
  }
  .fw-hero .elementor-widget-heading .elementor-heading-title{ max-width:none; }
}

/* ==========================================================================
   Subcabecera de páginas interiores
   ========================================================================== */
.fw-pagehead{
  background-color:var(--forest) !important;
  padding-block:clamp(9rem,15vw,12rem) clamp(3.5rem,6vw,5rem) !important;
}
.fw-pagehead > .elementor-container > .elementor-column > .elementor-element-populated{
  display:grid; gap:1.3rem; justify-items:start; text-align:left;
}
.fw-pagehead .elementor-widget-heading .elementor-heading-title{
  color:#FFFFFF; font-size:clamp(2.6rem,1.4rem + 3.4vw,4rem);
}
.fw-pagehead .fw-eyebrow .elementor-heading-title{ color:var(--sage-light) !important; }
.fw-pagehead .elementor-widget-text-editor{ color:var(--body-on-dark); max-width:40rem; }

/* ==========================================================================
   Tríptico de pilares (sobre verde)
   ========================================================================== */
.fw-grid > .elementor-container{
  display:grid !important; gap:clamp(1.75rem,3.5vw,3rem); align-items:start;
}
.fw-grid > .elementor-container > .elementor-column{ width:auto !important; }
.fw-grid-3 > .elementor-container{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.fw-grid-2 > .elementor-container{ grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:820px){
  .fw-grid-3 > .elementor-container,
  .fw-grid-2 > .elementor-container{ grid-template-columns:1fr; }
}
.fw-card > .elementor-element-populated{
  display:grid; gap:1rem; align-content:start;
}
.fw-card .elementor-widget-image{ margin-bottom:.4rem; }
.fw-card .elementor-widget-image img{ aspect-ratio:4/3; object-fit:cover; }
.fw-card .elementor-widget-heading .elementor-heading-title{ font-size:var(--fs-h3); }
.fw-card .elementor-widget-text-editor{ font-size:1rem; }
.fw-card .elementor-widget-image{ overflow:hidden; }
.fw-card .elementor-widget-image img{ transition:transform .7s cubic-bezier(.2,.6,.2,1); }
.fw-card:hover .elementor-widget-image img{ transform:scale(1.04); }

/* tarjeta de alojamiento: el epígrafe va bajo el titular */
.fw-stay .fw-meta .elementor-heading-title{
  font-family:var(--sans); font-size:var(--fs-micro); font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:var(--sage-deep);
}

/* ==========================================================================
   Banda imagen / texto
   ========================================================================== */
.fw-band > .elementor-container{
  display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(2rem,5vw,4.5rem); align-items:center;
}
.fw-band > .elementor-container > .elementor-column{ width:auto !important; }
@media (max-width:880px){
  .fw-band > .elementor-container{ grid-template-columns:1fr; gap:1.75rem; }
}
.fw-band-media{ overflow:hidden; }
.fw-band-media .elementor-widget-image img{ aspect-ratio:3/2; object-fit:cover; }
.fw-band-copy > .elementor-element-populated{ display:grid; gap:1.3rem; align-content:center; }
.fw-band-copy .elementor-widget-heading .elementor-heading-title{ font-size:var(--fs-h2); }
.fw-band-copy .elementor-widget-text-editor{ max-width:38rem; }

/* ==========================================================================
   Banda de cita y banda final
   ========================================================================== */
.fw-quote{
  background-color:var(--stone-warm) !important;
  padding-block:clamp(4rem,7vw,6.5rem) !important;
}
.fw-quote > .elementor-container > .elementor-column > .elementor-element-populated{
  display:grid; gap:1.75rem; justify-items:center; text-align:center;
}
.fw-quote .fw-words .elementor-heading-title{
  font-family:var(--display); font-weight:300;
  font-size:clamp(1.6rem,1rem + 2.2vw,2.6rem); line-height:1.28;
  color:var(--forest); max-width:24ch;
}
.fw-quote .fw-cite .elementor-heading-title{
  font-family:var(--sans); font-size:var(--fs-micro); font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:var(--forest);
}

.fw-cta{
  background-color:var(--forest-2) !important; color:var(--body-on-dark);
  padding-block:clamp(3.5rem,6.5vw,5.5rem) !important;
}
.fw-cta > .elementor-container > .elementor-column > .elementor-element-populated{
  display:grid; gap:1.5rem; justify-items:center; text-align:center;
}
.fw-cta .elementor-widget-heading .elementor-heading-title{ color:#FFFFFF; font-size:var(--fs-h2); max-width:16ch; }
.fw-cta .fw-eyebrow .elementor-heading-title{ color:var(--sage-light) !important; }
.fw-cta .elementor-widget-text-editor{ color:var(--body-on-dark); max-width:38rem; }

/* ==========================================================================
   Galería
   ========================================================================== */
.fw-gallery > .elementor-container{
  display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.75rem); align-items:start;
}
.fw-gallery > .elementor-container > .elementor-column{ width:auto !important; }
@media (min-width:641px){
  .fw-gallery > .elementor-container > .elementor-column:nth-child(even){ margin-top:clamp(1.5rem,5vw,4rem); }
}
@media (max-width:640px){
  .fw-gallery > .elementor-container{ grid-template-columns:1fr; }
}
.fw-gallery .elementor-widget-image{ overflow:hidden; }
.fw-gallery .elementor-widget-image img{ transition:transform .7s cubic-bezier(.2,.6,.2,1); }
.fw-gallery .elementor-widget-image:hover img{ transform:scale(1.04); }

/* la galería nativa de Elementor, por si se usa */
.elementor-widget-image-gallery .gallery-item img{ border:0 !important; }

/* ==========================================================================
   Contacto
   ========================================================================== */
.fw-contact-list ul, .fw-contact-list .elementor-icon-list-items{ display:grid; gap:0; }
.fw-panel > .elementor-element-populated{
  background:var(--stone); padding:clamp(1.9rem,3.5vw,2.75rem) !important;
  display:grid; gap:.9rem; align-content:start;
}
.fw-panel .elementor-widget-heading .elementor-heading-title{ font-size:var(--fs-h3); }
.fw-panel .elementor-button{ width:100%; }

/* ==========================================================================
   Movimiento de entrada para las secciones de Elementor
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .js-anim .elementor-section .elementor-widget.fw-reveal{
    opacity:0; transform:translateY(18px);
    transition:opacity .85s cubic-bezier(.2,.7,.2,1), transform .85s cubic-bezier(.2,.7,.2,1);
  }
  .js-anim .elementor-section .elementor-widget.fw-reveal.in{ opacity:1; transform:none; }
}

/* Elementor oculta los elementos animados hasta que carga su JS: aquí no. */
.elementor-invisible{ visibility:visible !important; }

/* cifra de la banda de cita */
.fw-quote .fw-score .elementor-heading-title{
  font-family:var(--display); font-size:2.6rem; line-height:1; color:var(--forest);
}
/* fw-button-patch-1 */
/* ==========================================================================
   Ajustes finos sobre la salida de Elementor
   ========================================================================== */

/* centrado real: Elementor envuelve cada widget en un bloque a ancho completo */
.fw-center .elementor-widget,
.fw-quote .elementor-widget,
.fw-cta .elementor-widget{ text-align:center; }
.fw-center .elementor-heading-title,
.fw-quote .elementor-heading-title,
.fw-cta .elementor-heading-title{ margin-inline:auto; }
.fw-center .elementor-widget-text-editor,
.fw-cta .elementor-widget-text-editor{ margin-inline:auto; }

/* el encabezado de seccion y su rejilla son una sola seccion en la maqueta */
.fw-pt0{ padding-top:0 !important; }
.fw-pt0 > .elementor-container{ margin-top:clamp(2.75rem,4.5vw,4.25rem); }

/* botones: por encima de los colores globales de Elementor */
.elementor .elementor-widget-button .elementor-button,
.elementor .elementor-button-wrapper .elementor-button{
  background-color:var(--sage) !important;
  color:var(--on-sage) !important;
  border-radius:0 !important;
  border:1px solid var(--sage) !important;
  font-family:var(--sans) !important;
  font-size:.9375rem !important;
  font-weight:500 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
  line-height:1 !important;
  padding:1.34rem 2.24rem !important;
  fill:var(--on-sage) !important;
}
.elementor .elementor-widget-button .elementor-button:hover,
.elementor .elementor-button-wrapper .elementor-button:hover{
  background-color:var(--sage-deep) !important;
  border-color:var(--sage-deep) !important;
  color:#FFFFFF !important;
}
.fw-hero .elementor-widget-button .elementor-button{
  background-color:transparent !important;
  border-color:rgba(255,255,255,.55) !important;
  color:#FFFFFF !important;
}
.fw-hero .elementor-widget-button .elementor-button:hover{
  background-color:#FFFFFF !important;
  border-color:#FFFFFF !important;
  color:var(--forest) !important;
}
.fw-cta .elementor-widget-button .elementor-button{
  background-color:var(--sage) !important;
  border-color:var(--sage) !important;
  color:var(--on-sage) !important;
}

/* la cita ocupa su ancho natural, centrada */
.fw-quote .fw-words .elementor-heading-title{ max-width:24ch; }
.fw-quote .fw-score .elementor-heading-title{ max-width:none; }

/* las fotos de las tarjetas comparten proporcion, como en la maqueta */
.fw-card .elementor-widget-image img{ aspect-ratio:4/3; object-fit:cover; }
.fw-band-media .elementor-widget-image img{ aspect-ratio:3/2; object-fit:cover; }
/* fw-patch-2 */
/* ==========================================================================
   Listas de prestaciones, galeria y contacto
   ========================================================================== */

/* lista de prestaciones (widget lista de iconos de Elementor) */
.fw-features .elementor-icon-list-items{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem 1.5rem;
}
.fw-features .elementor-icon-list-item{
  position:relative; padding-left:1.6rem; font-size:.98rem; line-height:1.5;
  margin:0; display:block;
}
.fw-features .elementor-icon-list-item > a,
.fw-features .elementor-icon-list-item > span{ display:inline; }
.fw-features .elementor-icon-list-icon{ display:none !important; }
.fw-features .elementor-icon-list-item::before{
  content:""; position:absolute; left:0; top:.5em; width:.62rem; height:.34rem;
  border-left:1.5px solid var(--sage-deep); border-bottom:1.5px solid var(--sage-deep);
  transform:rotate(-45deg);
}
.fw-features .elementor-icon-list-text{ color:var(--body); padding-left:0 !important; }
@media (max-width:520px){
  .fw-features .elementor-icon-list-items{ grid-template-columns:1fr; }
}

/* galeria en dos columnas desfasadas, como en la maqueta */
.fw-gal .gallery{
  display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.75rem); align-items:start; margin:0 !important;
}
.fw-gal .gallery-item{
  width:auto !important; max-width:none !important; margin:0 !important;
  float:none !important; padding:0 !important;
}
.fw-gal .gallery-item img{
  width:100%; height:auto; border:0 !important; display:block;
  aspect-ratio:4/3; object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.6,.2,1);
}
.fw-gal .gallery-item .gallery-icon{ overflow:hidden; display:block; }
.fw-gal .gallery-item:hover img{ transform:scale(1.04); }
.fw-gal .gallery-caption{ display:none; }
@media (min-width:641px){
  .fw-gal .gallery-item:nth-child(even){ margin-top:clamp(1.5rem,5vw,4rem) !important; }
}
@media (max-width:640px){
  .fw-gal .gallery{ grid-template-columns:1fr; }
}

/* datos de contacto */
.fw-contact > .elementor-element-populated{ display:block; }
.fw-contact .elementor-widget-heading:first-child .elementor-heading-title{
  font-size:var(--fs-h2); margin-bottom:1.8rem;
}
.fw-label .elementor-heading-title{
  font-family:var(--sans) !important; font-size:var(--fs-micro) !important;
  font-weight:500 !important; letter-spacing:.16em !important;
  text-transform:uppercase !important; color:var(--sage-deep) !important;
  border-top:1px solid var(--line); padding-top:1.25rem; display:block;
}
.fw-value .elementor-heading-title{
  font-family:var(--display) !important; font-size:1.45rem !important;
  color:var(--forest) !important; line-height:1.3 !important;
  margin-top:.4rem; padding-bottom:1.25rem; display:block;
}
.fw-value a{ text-decoration:none; }
.fw-value a:hover{ color:var(--sage-deep); text-decoration:underline; text-underline-offset:4px; }
.fw-sub{ font-size:.9rem !important; margin-top:-1rem; padding-bottom:1.25rem; border-bottom:1px solid var(--line); }

/* panel lateral de contacto */
.fw-panel .elementor-widget-button{ margin-top:.7rem; }
.fw-panel .elementor-widget-button .elementor-button{ width:100%; }
/* fw-patch-3 */
/* enlaces discretos al pie de las tarjetas, como en la maqueta */
.fw-more .elementor-heading-title,
.fw-more-dark .elementor-heading-title{
  font-family:var(--sans) !important; font-size:.8125rem !important;
  font-weight:500 !important; letter-spacing:.12em !important;
  text-transform:uppercase !important; line-height:1.2 !important;
  display:inline-block; padding-bottom:.25rem;
  border-bottom:1px solid var(--sage);
  transition:border-color .3s ease, color .3s ease;
}
.fw-more .elementor-heading-title{ color:var(--forest) !important; }
.fw-more-dark .elementor-heading-title{ color:#FFFFFF !important; }
.fw-more .elementor-heading-title a,
.fw-more-dark .elementor-heading-title a{ color:inherit; text-decoration:none; }
.fw-more:hover .elementor-heading-title{ border-bottom-color:var(--forest); }
.fw-more-dark:hover .elementor-heading-title{ border-bottom-color:#FFFFFF; }
.fw-card .fw-more, .fw-card .fw-more-dark{ margin-top:.3rem; }
/* fw-patch-4 */
/* entrada escalonada del hero, igual que en la maqueta */
@media (prefers-reduced-motion: no-preference){
  .js-anim .fw-hero .elementor-widget{
    opacity:0; transform:translateY(22px);
    animation:fwHeroIn .95s cubic-bezier(.2,.7,.2,1) forwards;
  }
  .js-anim .fw-hero .elementor-widget:nth-child(1){ animation-delay:.15s; }
  .js-anim .fw-hero .elementor-widget:nth-child(2){ animation-delay:.28s; }
  .js-anim .fw-hero .elementor-widget:nth-child(3){ animation-delay:.40s; }
  .js-anim .fw-hero .elementor-widget:nth-child(4){ animation-delay:.52s; }
  @keyframes fwHeroIn{ to{ opacity:1; transform:none; } }

  /* el filete del epigrafe del hero se dibuja solo */
  .js-anim .fw-hero .fw-meta .elementor-heading-title::before{
    width:0; animation:fwRuleGrow .8s ease-out .62s forwards;
  }
  @keyframes fwRuleGrow{ to{ width:2.5rem; } }

  /* la foto del hero respira muy despacio */
  .js-anim .fw-hero{ overflow:hidden; }
}
/* fw-patch-5 */
/* La entrada del hero pasa a depender del observador de JavaScript, que tiene
   red de seguridad: asi el titular nunca puede quedarse invisible. */
@media (prefers-reduced-motion: no-preference){
  .js-anim .fw-hero .elementor-widget{
    animation:none !important; opacity:1; transform:none;
  }
  .js-anim .fw-hero .elementor-widget.fw-reveal{
    opacity:0; transform:translateY(20px);
    transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);
  }
  .js-anim .fw-hero .elementor-widget.fw-reveal.in{ opacity:1; transform:none; }
  .js-anim .fw-reveal:nth-child(2){ transition-delay:.10s; }
  .js-anim .fw-reveal:nth-child(3){ transition-delay:.20s; }
  .js-anim .fw-reveal:nth-child(4){ transition-delay:.30s; }
  .js-anim .fw-reveal:nth-child(5){ transition-delay:.40s; }
  .js-anim .fw-hero .fw-meta .elementor-heading-title::before{
    animation:none !important; width:2.5rem;
  }
}
/* fw-patch-6 */
/* ==========================================================================
   Bandas encadenadas dentro de una misma seccion visual
   En la maqueta, Stay y Explore son UNA seccion blanca con varias bandas
   separadas por clamp(4rem, 8vw, 7.5rem). Aqui son secciones de Elementor
   independientes (para que el cliente pueda moverlas), asi que recreamos
   ese mismo ritmo anulando el relleno y usando un margen entre bandas.
   ========================================================================== */
.fw-bandgap > .elementor-container{ margin-top:clamp(4rem,8vw,7.5rem); }

/* ==========================================================================
   Detalles de acabado
   ========================================================================== */

/* la foto del hero respira muy despacio, como en la maqueta */
.fw-hero{ position:relative; overflow:hidden; }
.fw-hero::after{
  content:""; position:absolute; inset:0; z-index:0;
  background-image:inherit; background-position:inherit;
  background-size:cover; background-repeat:no-repeat;
  transform:scale(1.07); transform-origin:56% 50%;
  will-change:transform;
}
.fw-hero > .elementor-background-overlay{ z-index:1; }
.fw-hero > .elementor-container{ z-index:2; }
@media (prefers-reduced-motion: no-preference){
  .js-anim .fw-hero::after{ animation:fwHeroZoom 22s ease-out forwards; }
  @keyframes fwHeroZoom{ to{ transform:scale(1); } }
}

/* las fotos de las bandas se acercan muy levemente al pasar el raton */
.fw-band-media .elementor-widget-image{ overflow:hidden; }
.fw-band-media .elementor-widget-image img{
  transition:transform .9s cubic-bezier(.2,.6,.2,1);
}
.fw-band-media:hover .elementor-widget-image img{ transform:scale(1.035); }

/* los botones se levantan un pelo */
.elementor .elementor-widget-button .elementor-button{
  transition:background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
  will-change:transform;
}
.elementor .elementor-widget-button .elementor-button:hover{ transform:translateY(-2px); }
.elementor .elementor-widget-button .elementor-button:active{ transform:translateY(0); }

/* el subrayado de los enlaces discretos se recoge, como en la maqueta */
.fw-more .elementor-heading-title,
.fw-more-dark .elementor-heading-title{
  position:relative; border-bottom:0 !important; padding-bottom:.3rem;
}
.fw-more .elementor-heading-title::after,
.fw-more-dark .elementor-heading-title::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--sage); transform-origin:left;
  transition:transform .32s cubic-bezier(.4,0,.2,1);
}
.fw-more:hover .elementor-heading-title::after,
.fw-more-dark:hover .elementor-heading-title::after{ transform:scaleX(.35); }

/* los enlaces del pie y de contacto se subrayan con suavidad */
.footer-grid a, .colophon a{ transition:color .3s ease; }
.fw-value a{ transition:color .3s ease; }

/* el ancla de W Studio / W Suite deja hueco a la cabecera fija */
.fw-band{ scroll-margin-top:6.5rem; }
