:root{
  --teal:#029f99;
  --teal-deep:#017f7a;
  --teal-soft:#e7f5f4;
  --dark:#062221;
  --dark-2:#041817;
  --white:#ffffff;
  --cream:#f5f6f7;
  --soft:#eef5f4;
  --muted:#667a79;
  --border:rgba(6,34,33,.10);
  --shadow:0 24px 60px rgba(6,34,33,.12);
  --shadow-soft:0 12px 32px rgba(6,34,33,.08);
  --container:1200px;
  --header-height:64px;
  --header-scrolled-height:48px;
  --radius-xl:30px;
  --radius-lg:22px;
  --radius-md:16px;
  --transition:220ms ease;
  --font:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  overflow-x:hidden;
  background:var(--white);
  color:var(--dark);
  font-family:var(--font);
  line-height:1.6;
  text-rendering:optimizeLegibility;
}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid rgba(2,159,153,.35);outline-offset:3px}

.skip-link{
  position:fixed;left:1rem;top:-8rem;z-index:1000;
  padding:.75rem 1rem;border-radius:999px;background:var(--dark);color:#fff
}
.skip-link:focus{top:1rem}

.container{width:min(calc(100% - 2rem),var(--container));margin-inline:auto}

.section{
  position:relative;
  padding:clamp(4.2rem,7vw,6rem) 0;
  scroll-margin-top:calc(var(--header-scrolled-height) + 18px);
}

h1,h2,h3,p{margin-top:0}
h1,h2,h3{
  margin-bottom:1rem;
  color:var(--dark);
  line-height:1.04;
  letter-spacing:-.035em;
}
h1{font-size:clamp(2.9rem,6vw,5.4rem);font-weight:800}
h1 span{display:block}
h2{font-size:clamp(2rem,4.2vw,3.5rem);font-weight:780}
h3{font-size:clamp(1.2rem,2vw,1.5rem)}
p{color:var(--muted)}

.eyebrow{
  margin-bottom:.8rem;color:var(--teal);font-size:.78rem;
  font-weight:850;letter-spacing:.16em;text-transform:uppercase
}
.eyebrow-light{color:#9be8e3}
.lead{font-size:clamp(1.05rem,1.8vw,1.22rem);color:var(--dark)}

.site-header{
  position:sticky;top:0;z-index:200;width:100%;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:background var(--transition),border-color var(--transition),box-shadow var(--transition)
}
.site-header.scrolled{
  background:rgba(255,255,255,.96);
  border-color:rgba(6,34,33,.08);
  box-shadow:0 6px 18px rgba(6,34,33,.06)
}
.header-inner{
  min-height:var(--header-height);
  display:flex;align-items:center;gap:.9rem;
  transition:min-height var(--transition)
}
.site-header.scrolled .header-inner{min-height:var(--header-scrolled-height)}

.brand{
  position:relative;flex:0 0 auto;width:124px;height:54px;overflow:hidden;
  transition:width var(--transition),height var(--transition)
}
.brand img{
  position:absolute;width:156px;max-width:none;height:auto;left:-14px;top:-31px;
  transition:width var(--transition),left var(--transition),top var(--transition)
}
.site-header.scrolled .brand{width:102px;height:44px}
.site-header.scrolled .brand img{width:128px;left:-11px;top:-25px}

.site-nav{margin-left:auto}
.site-nav ul{
  display:flex;align-items:center;gap:.18rem;margin:0;padding:0;list-style:none
}
.site-nav a{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  min-height:34px;padding:.4rem .72rem;border-radius:999px;
  color:var(--dark);font-size:.92rem;font-weight:760;
  transition:color var(--transition),background var(--transition),transform var(--transition)
}
.site-nav a:not(.button)::after{
  content:"";position:absolute;left:50%;right:50%;bottom:5px;height:2px;
  border-radius:10px;background:var(--teal);
  transition:left var(--transition),right var(--transition)
}
.site-nav a:not(.button):hover,
.site-nav a:not(.button).active{color:var(--teal-deep)}
.site-nav a:not(.button):hover::after,
.site-nav a:not(.button).active::after{left:26%;right:26%}
.nav-contact{margin-left:.35rem}

.site-header.scrolled .site-nav a{
  min-height:28px;padding:.22rem .62rem;font-size:.88rem
}

.menu-toggle{
  display:none;width:38px;height:38px;margin-left:auto;padding:0;
  border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer
}
.menu-toggle span{
  width:18px;height:2px;margin:4px auto;display:block;border-radius:99px;background:var(--dark);
  transition:transform var(--transition),opacity var(--transition)
}
.menu-open .menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-open .menu-toggle span:nth-child(2){opacity:0}
.menu-open .menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.button{
  display:inline-flex;min-height:48px;align-items:center;justify-content:center;
  padding:.9rem 1.25rem;border:1px solid transparent;border-radius:999px;font-weight:780;
  transition:background var(--transition),color var(--transition),border-color var(--transition),box-shadow var(--transition),transform var(--transition)
}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--teal);color:#fff!important;box-shadow:0 10px 26px rgba(2,159,153,.22)}
.button-primary:hover{background:var(--teal-deep)}
.button-small{min-height:34px;padding:.42rem .96rem;font-size:.9rem}
.site-header.scrolled .button-small{min-height:30px;padding:.26rem .82rem}
.button-white{background:#fff;color:var(--dark)!important;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.button-white:hover{background:var(--teal-soft)}
.button-ghost-light{
  background:transparent;color:#fff;border-color:rgba(255,255,255,.32)
}
.button-ghost-light:hover{background:rgba(255,255,255,.08)}
.button[aria-disabled="true"]{pointer-events:none;background:#dce8e7;color:var(--muted)!important;box-shadow:none}

.hero{
  position:relative;
  min-height:min(78vh,730px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  scroll-margin-top:var(--header-scrolled-height)
}
.hero-bg{
  background:
    linear-gradient(90deg,rgba(4,20,20,.52) 0%,rgba(4,20,20,.39) 42%,rgba(4,20,20,.22) 70%,rgba(4,20,20,.16) 100%),
    linear-gradient(0deg,rgba(4,20,20,.22),rgba(4,20,20,.22)),
    url('/assets/img/chenaal2.png') center center / cover no-repeat;
}
.hero-overlay{display:none}
.hero-content{
  position:relative;z-index:2;
  width:100%;
  max-width:720px;
  padding:calc(var(--header-height) + 4.25rem) 0 5.95rem;
}
.hero h1,.hero p{color:#fff}
.hero h1 span{color:#fff}
.hero-text{
  max-width:640px;
  margin-bottom:1.8rem;
  font-size:clamp(1.08rem,1.8vw,1.22rem);
  color:rgba(255,255,255,.90)
}
.small-note{margin:.9rem 0 0;font-size:.86rem}
.small-note-light{color:rgba(255,255,255,.78)!important}
.actions{display:flex;flex-wrap:wrap;gap:.8rem}

.service-intro{
  padding:0 0 1rem;
  margin-top:-2.6rem;
  position:relative;
  z-index:10;
}
.service-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  border:1px solid var(--border);border-radius:var(--radius-lg);
  background:#fff;box-shadow:var(--shadow-soft);overflow:hidden
}
.service-item{
  min-height:160px;display:grid;grid-template-columns:auto 1fr auto;
  gap:1rem;align-items:start;padding:1.5rem
}
.service-item + .service-item{border-left:1px solid var(--border)}
.service-number{padding-top:.15rem;color:var(--teal);font-size:.74rem;font-weight:850;letter-spacing:.1em}
.service-item h2{margin:0 0 .35rem;font-size:1.32rem;letter-spacing:-.02em}
.service-item p{margin:0;font-size:.92rem}
.service-item>a{
  width:36px;height:36px;display:grid;place-items:center;border-radius:50%;
  background:var(--soft);color:var(--teal-deep);font-size:1.2rem;font-weight:800
}

.about-section{background:#fff}
.about-grid{
  display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:clamp(2.2rem,6vw,5rem);align-items:center
}
.about-copy{max-width:560px}
.values-list{display:grid;gap:.8rem;margin:1.8rem 0}
.values-list>div{
  display:grid;grid-template-columns:auto 1fr;column-gap:.85rem;
  padding:.8rem 0;border-bottom:1px solid var(--border)
}
.values-list>div>span{
  grid-row:1/3;width:30px;height:30px;display:grid;place-items:center;margin-top:.1rem;
  border-radius:50%;background:var(--teal-soft);color:var(--teal-deep);font-size:.82rem;font-weight:900
}
.values-list strong{color:var(--dark)}
.values-list small{color:var(--muted)}
.text-link{display:inline-flex;align-items:center;gap:.55rem;color:var(--dark);font-weight:800}
.text-link span{color:var(--teal)}

.about-visual{
  min-height:520px;border-radius:var(--radius-xl);overflow:hidden;position:relative;
  box-shadow:var(--shadow)
}
.about-bg{
  background:
    linear-gradient(0deg,rgba(6,34,33,.38),rgba(6,34,33,.18)),
    url('/assets/img/chenaal3.png') center center / cover no-repeat;
}
.about-card{
  position:absolute;left:1.3rem;bottom:1.3rem;
  max-width:310px;padding:1rem 1.1rem;border-radius:18px;
  background:rgba(255,255,255,.92);box-shadow:0 18px 40px rgba(0,0,0,.16)
}
.about-card strong,.about-card span{display:block}
.about-card strong{color:var(--dark);font-size:.95rem}
.about-card span{margin-top:.2rem;color:var(--muted);font-size:.86rem}

.idealista-section{
  min-height:540px;display:flex;align-items:center;overflow:hidden;
  background:var(--dark)
}
.idealista-bg{
  background:
    linear-gradient(90deg,rgba(6,34,33,.56) 0%,rgba(6,34,33,.56) 44%,rgba(6,34,33,.41) 66%,rgba(6,34,33,.31) 100%),
    url('/assets/img/chenaal1.png') center center / cover no-repeat;
}
.section-overlay{display:none}
.idealista-content{
  position:relative;z-index:2;display:grid;
  grid-template-columns:minmax(0,620px) minmax(220px,300px);
  gap:clamp(2rem,8vw,5rem);align-items:end
}
.idealista-copy h2,.idealista-copy p{color:#fff}
.idealista-copy p:not(.eyebrow){color:rgba(255,255,255,.80)}
.idealista-side-card{
  align-self:end;padding:1.25rem;border:1px solid rgba(255,255,255,.22);
  border-radius:var(--radius-lg);background:rgba(255,255,255,.10);backdrop-filter:blur(10px)
}
.side-card-icon{
  width:48px;height:48px;display:grid;place-items:center;border-radius:14px;
  background:#fff;color:var(--teal-deep);font-size:1.3rem
}
.idealista-side-card p{margin:1rem 0 0;color:rgba(255,255,255,.86)}

.process-section{background:var(--cream)}
.section-heading{max-width:760px;margin-bottom:2.5rem}
.section-heading.centered{margin-inline:auto;text-align:center}
.section-heading.centered p:last-child{max-width:620px;margin-inline:auto}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.process-card{
  padding:1.8rem;border:1px solid rgba(6,34,33,.08);border-radius:var(--radius-lg);
  background:#fff;box-shadow:var(--shadow-soft)
}
.process-card>span{
  display:inline-grid;width:38px;height:38px;place-items:center;margin-bottom:1.4rem;
  border-radius:50%;background:var(--teal);color:#fff;font-size:.82rem;font-weight:850
}
.process-card p{margin-bottom:0}

.social-section{background:#fff}
.social-layout{
  display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  gap:clamp(2rem,6vw,5rem);align-items:start
}
.social-intro p:last-child{max-width:440px}
.social-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.social-card{
  min-height:130px;display:grid;grid-template-columns:auto 1fr auto;gap:1rem;
  align-items:center;padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius-lg);
  background:var(--soft);transition:background var(--transition),box-shadow var(--transition),transform var(--transition)
}
.social-card:not([aria-disabled="true"]):hover{background:#fff;box-shadow:var(--shadow-soft);transform:translateY(-2px)}
.social-card[aria-disabled="true"]{cursor:default;opacity:.78}
.social-icon{
  width:48px;height:48px;display:grid;place-items:center;border-radius:15px;
  background:#fff;color:var(--teal-deep);font-size:1.12rem;font-weight:900
}
.social-card strong,.social-card small{display:block}
.social-card small{margin-top:.2rem;color:var(--muted)}
.social-card em{color:var(--teal);font-size:1.25rem;font-style:normal;font-weight:900}

.contact-section{background:var(--soft)}
.contact-grid{
  display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);
  gap:clamp(2rem,6vw,5rem);align-items:start
}
.email-link{display:inline-grid;gap:.15rem;margin:1.2rem 0 0}
.email-link span{color:var(--muted);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.email-link strong{color:var(--teal-deep);font-size:clamp(1.15rem,2vw,1.5rem)}

.form-card{
  padding:clamp(1.4rem,3vw,2.2rem);border:1px solid var(--border);
  border-radius:var(--radius-xl);background:#fff;box-shadow:var(--shadow-soft)
}
#contact-form{display:grid;gap:1rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-field{display:grid;gap:.4rem}
.form-field label{color:var(--dark);font-size:.9rem;font-weight:760}
.form-field label span{color:var(--muted);font-size:.78rem;font-weight:500}
.form-field input,.form-field textarea{
  width:100%;padding:.9rem 1rem;border:1px solid rgba(6,34,33,.15);border-radius:14px;
  background:#fafcfc;color:var(--dark);transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)
}
.form-field textarea{min-height:135px;resize:vertical}
.form-field input:focus,.form-field textarea:focus{
  border-color:rgba(2,159,153,.62);background:#fff;box-shadow:0 0 0 4px rgba(2,159,153,.09);outline:none
}
.form-field.valid input,.form-field.valid textarea{border-color:rgba(2,159,153,.5)}
.form-field.invalid input,.form-field.invalid textarea{border-color:rgba(181,38,56,.5)}
.field-error{min-height:1rem;color:#ad2638;font-size:.79rem}
.consent{display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:start}
.consent input{width:18px;height:18px;margin-top:.22rem}
.consent label{color:var(--muted);font-size:.87rem}
.form-submit-row{display:flex;align-items:center;gap:1rem}
.form-submit-row>span{color:var(--muted);font-size:.8rem}
.form-status{min-height:1.15rem;margin:0;font-size:.87rem;font-weight:700}
.form-status.error{color:#ad2638}
.form-status.success{color:var(--teal-deep)}
.form-status.loading{color:var(--muted)}

.site-footer{padding:4rem 0 1.5rem;background:var(--dark-2);color:#fff}
.footer-main{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(170px,.5fr));gap:3rem}
.footer-brand-column>p{max-width:420px;color:rgba(255,255,255,.64)}
.footer-logo{
  position:relative;width:150px;height:64px;overflow:hidden;margin-bottom:1rem;border-radius:14px;background:#fff
}
.footer-logo img{position:absolute;width:188px;max-width:none;left:-17px;top:-37px}
.footer-column{display:grid;align-content:start;gap:.55rem}
.footer-column h2{
  margin:0 0 .45rem;color:#fff;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase
}
.footer-column a{color:rgba(255,255,255,.68);font-size:.91rem}
.footer-bottom{
  display:flex;justify-content:space-between;gap:1.5rem;margin-top:3rem;padding-top:1.2rem;
  border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.44);font-size:.72rem
}
.photo-attribution{text-align:right}
.photo-attribution a{text-decoration:underline;text-underline-offset:2px}

.reveal{opacity:1;transform:none}
.reveal-enabled .reveal{
  opacity:0;transform:translateY(16px);
  transition:opacity 620ms ease,transform 620ms ease
}
.reveal-enabled .reveal.visible{opacity:1;transform:translateY(0)}

@media(max-width:900px){
  :root{
    --header-height:56px;
    --header-scrolled-height:44px;
  }

  .menu-toggle{display:block}

  .brand,.site-header.scrolled .brand{width:102px;height:44px}
  .brand img,.site-header.scrolled .brand img{width:128px;left:-11px;top:-25px}

  .site-nav{
    position:absolute;top:calc(100% + .45rem);left:.75rem;right:.75rem;margin:0;
    visibility:hidden;opacity:0;transform:translateY(-7px);
    transition:visibility var(--transition),opacity var(--transition),transform var(--transition)
  }
  .menu-open .site-nav{visibility:visible;opacity:1;transform:translateY(0)}
  .site-nav ul{
    max-height:calc(100vh - 88px);overflow-y:auto;flex-direction:column;align-items:stretch;gap:.15rem;
    padding:.65rem;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.99);box-shadow:var(--shadow)
  }
  .site-nav a,.site-header.scrolled .site-nav a{
    width:100%;min-height:42px;justify-content:flex-start;padding:.65rem .8rem;font-size:.92rem
  }
  .site-nav a:not(.button)::after{display:none}
  .nav-contact{margin:.3rem 0 0}
  .nav-contact .button{justify-content:center}

  .hero{min-height:61vh}
  .hero-content{padding:calc(var(--header-height) + 3.2rem) 0 4.25rem}

  .service-intro{margin-top:-1.3rem}
  .service-grid,.about-grid,.process-grid,.social-layout,.contact-grid{grid-template-columns:1fr}
  .service-item + .service-item{border-left:0;border-top:1px solid var(--border)}
  .idealista-content{grid-template-columns:1fr}
  .idealista-side-card{max-width:420px}
  .social-grid{grid-template-columns:1fr 1fr}
  .footer-main{grid-template-columns:1fr 1fr}
  .footer-brand-column{grid-column:1/-1}
}

@media(max-width:600px){
  .container{width:min(calc(100% - 1.25rem),var(--container))}
  .section{padding:3.7rem 0}
  h1{font-size:clamp(2.4rem,12vw,3.5rem)}
  h2{font-size:clamp(1.9rem,8vw,2.7rem)}
  .hero{min-height:58vh}
  .hero-content{padding:calc(var(--header-height) + 2.8rem) 0 3.55rem}
  .actions{flex-direction:column}
  .actions .button{width:100%}
  .service-intro{margin-top:-1rem}
  .service-grid{border-radius:18px}
  .service-item{padding:1.2rem}
  .about-visual{min-height:360px}
  .idealista-section{min-height:470px}
  .idealista-side-card{display:none}
  .social-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .form-submit-row{align-items:stretch;flex-direction:column}
  .form-submit-row .button{width:100%}
  .footer-main{grid-template-columns:1fr;gap:2rem}
  .footer-brand-column{grid-column:auto}
  .footer-bottom{flex-direction:column;gap:.7rem}
  .photo-attribution{text-align:left}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important
  }
  .reveal,.reveal-enabled .reveal{opacity:1;transform:none}
}

/* =========================================================
   Header: mantener exactamente el mismo tamaño al hacer scroll.
   El estado .scrolled solo cambia fondo/sombra, nunca dimensiones.
   ========================================================= */

.site-header.scrolled .header-inner{
  min-height:var(--header-height);
}

.site-header.scrolled .brand{
  width:124px;
  height:54px;
}

.site-header.scrolled .brand img{
  width:156px;
  left:-14px;
  top:-31px;
}

.site-header.scrolled .site-nav a{
  min-height:34px;
  padding:.4rem .72rem;
  font-size:.92rem;
}

.site-header.scrolled .button-small{
  min-height:34px;
  padding:.42rem .96rem;
  font-size:.9rem;
}

@media(max-width:900px){
  .site-header.scrolled .header-inner{
    min-height:var(--header-height);
  }

  .site-header.scrolled .brand{
    width:102px;
    height:44px;
  }

  .site-header.scrolled .brand img{
    width:128px;
    left:-11px;
    top:-25px;
  }

  .site-header.scrolled .site-nav a{
    min-height:42px;
    padding:.65rem .8rem;
    font-size:.92rem;
  }

  .site-header.scrolled .button-small{
    min-height:42px;
    padding:.65rem .8rem;
    font-size:.92rem;
  }
}

/* Header con translucidez suave y tamaño constante */
.site-header{
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(14px) saturate(135%);
  -webkit-backdrop-filter:blur(14px) saturate(135%);
}

.site-header.scrolled{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-color:rgba(6,34,33,.07);
  box-shadow:0 6px 18px rgba(6,34,33,.055);
}

/* Hero: subir el bloque de texto dentro de la imagen sin cambiar su altura */
.hero{
  align-items:center;
}

.hero-content{
  padding-top:0;
  padding-bottom:0;
  margin-top:-3.75rem;
}

@media(max-width:900px){
  .hero-content{
    padding-top:0;
    padding-bottom:0;
    margin-top:-2.25rem;
  }
}

@media(max-width:600px){
  .hero-content{
    padding-top:0;
    padding-bottom:0;
    margin-top:-1.25rem;
  }
}


/* =========================================================
   Idealista: tarjeta secundaria pequeña y flotante
   ========================================================= */

.idealista-content{
  position:relative;
  display:block;
  min-height:390px;
  padding-right:0;
}

.idealista-copy{
  max-width:620px;
}

.idealista-side-card{
  position:absolute;
  right:0;
  bottom:0;
  width:210px;
  padding:.8rem .9rem;
  border:1px solid rgba(255,255,255,.24);
  border-radius:16px;
  background:rgba(255,255,255,.12);
  box-shadow:0 12px 30px rgba(0,0,0,.16);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.idealista-side-card .side-card-icon{
  width:36px;
  height:36px;
  border-radius:11px;
  font-size:1rem;
}

.idealista-side-card p{
  margin:.65rem 0 0;
  color:rgba(255,255,255,.88);
  font-size:.78rem;
  line-height:1.35;
}

/* En tablet/móvil evitamos que tape el contenido */
@media(max-width:900px){
  .idealista-content{
    min-height:0;
  }

  .idealista-side-card{
    position:static;
    width:190px;
    margin:1.5rem 0 0 auto;
  }
}

@media(max-width:600px){
  .idealista-side-card{
    width:175px;
    padding:.7rem .8rem;
  }

  .idealista-side-card p{
    font-size:.74rem;
  }
}


/* =========================================================
   Idealista flotante REAL: fijado al viewport del navegador.
   No depende de la sección ni del scroll interno.
   ========================================================= */

.idealista-floating-card{
  position:fixed;
  z-index:500;
  right:18px;
  bottom:18px;
  width:185px;
  margin:0;
  padding:.72rem .78rem;
  border:1px solid rgba(255,255,255,.28);
  border-radius:15px;
  background:rgba(7,35,34,.84);
  color:#fff;
  box-shadow:0 14px 36px rgba(0,0,0,.24);
  backdrop-filter:blur(12px) saturate(125%);
  -webkit-backdrop-filter:blur(12px) saturate(125%);
}

.idealista-floating-card .side-card-icon{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#fff;
  color:var(--teal-deep);
  font-size:.92rem;
}

.idealista-floating-card p{
  margin:.55rem 0 0;
  color:rgba(255,255,255,.90);
  font-size:.73rem;
  line-height:1.35;
}

@media(max-width:900px){
  .idealista-floating-card{
    right:12px;
    bottom:12px;
    width:165px;
    padding:.65rem .7rem;
  }

  .idealista-floating-card p{
    font-size:.7rem;
  }
}

@media(max-width:600px){
  .idealista-floating-card{
    right:10px;
    bottom:10px;
    width:150px;
    padding:.6rem .65rem;
    border-radius:13px;
  }

  .idealista-floating-card .side-card-icon{
    width:29px;
    height:29px;
  }

  .idealista-floating-card p{
    margin-top:.45rem;
    font-size:.67rem;
  }
}


/* Glare suave para CTA secundario */
.glare{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

.glare::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-45%;
  bottom:-45%;
  left:-35%;
  width:26%;
  background:linear-gradient(
    105deg,
    transparent 0%,
    rgba(255,255,255,.12) 30%,
    rgba(255,255,255,.72) 50%,
    rgba(255,255,255,.12) 70%,
    transparent 100%
  );
  transform:translateX(-260%) rotate(12deg);
  transition:transform .68s cubic-bezier(.22,.61,.36,1);
  pointer-events:none;
}

.glare:hover::before,
.glare:focus-visible::before{
  transform:translateX(620%) rotate(12deg);
}

@media(prefers-reduced-motion:reduce){
  .glare::before{
    display:none;
  }
}

/* Glare visible de base + barrido más intenso al hover */
.button-ghost-light.glare{
  background:
    linear-gradient(
      112deg,
      rgba(255,255,255,.035) 0%,
      rgba(255,255,255,.075) 34%,
      rgba(255,255,255,.16) 49%,
      rgba(255,255,255,.07) 64%,
      rgba(255,255,255,.025) 100%
    );
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(255,255,255,.045),
    0 7px 20px rgba(0,0,0,.055);
}

.button-ghost-light.glare:hover,
.button-ghost-light.glare:focus-visible{
  background:
    linear-gradient(
      112deg,
      rgba(255,255,255,.055) 0%,
      rgba(255,255,255,.10) 34%,
      rgba(255,255,255,.19) 49%,
      rgba(255,255,255,.09) 64%,
      rgba(255,255,255,.035) 100%
    );
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 -1px 0 rgba(255,255,255,.06),
    0 9px 24px rgba(0,0,0,.08);
}

/* CHENAAL_MOBILE_BACKGROUND_OVERRIDES_BEGIN */
@media(max-width:600px){
  .hero-bg{
    background:
      linear-gradient(90deg,rgba(4,20,20,.52) 0%,rgba(4,20,20,.39) 42%,rgba(4,20,20,.22) 70%,rgba(4,20,20,.16) 100%),
      linear-gradient(0deg,rgba(4,20,20,.22),rgba(4,20,20,.22)),
      url('/assets/img/chenaal2movil.png') center center / cover no-repeat;
  }

  .idealista-bg{
    background:
      linear-gradient(90deg,rgba(6,34,33,.56) 0%,rgba(6,34,33,.56) 44%,rgba(6,34,33,.41) 66%,rgba(6,34,33,.31) 100%),
      url('/assets/img/chenaal1movil.png') center center / cover no-repeat;
  }
}
/* CHENAAL_MOBILE_BACKGROUND_OVERRIDES_END */

/* Hero móvil: tipografía un 15% más pequeña */
@media(max-width:600px){
  .hero .eyebrow{
    font-size:.663rem;
  }

  .hero h1{
    font-size:clamp(2.04rem,10.2vw,2.975rem);
  }

  .hero .hero-text{
    font-size:.918rem;
  }
}

/* Hero móvil: dejar aire lateral en los CTA */
@media(max-width:600px){
  .hero-actions{
    width:100%;
    padding-left:.85rem;
    padding-right:.85rem;
    box-sizing:border-box;
  }

  .hero-actions .button{
    width:100%;
    margin-left:auto;
    margin-right:auto;
  }
}

/* Corrección: el contenedor real del hero es .actions */
@media(max-width:600px){
  .hero .actions{
    width:100%;
    padding-left:.85rem;
    padding-right:.85rem;
    box-sizing:border-box;
  }

  .hero .actions .button{
    width:100%;
    margin-left:auto;
    margin-right:auto;
  }
}

/* =========================================================
   Idealista flotante:
   escritorio = tarjeta pequeña;
   móvil = barra inferior fija a todo el ancho.
   ========================================================= */

.idealista-floating-card{
  display:block;
}

.idealista-floating-brand{
  display:flex;
  align-items:center;
  gap:.65rem;
}

.idealista-floating-card .side-card-icon{
  flex:0 0 auto;
  display:grid;
  place-items:center;
}

.idealista-floating-card .side-card-icon svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.idealista-floating-copy{
  min-width:0;
}

.idealista-floating-copy strong{
  display:block;
  color:#fff;
  font-size:.82rem;
  line-height:1.1;
}

.idealista-floating-copy p{
  margin:.22rem 0 0;
  color:rgba(255,255,255,.80);
  font-size:.69rem;
  line-height:1.25;
}

.idealista-floating-cta{
  display:none;
}

/* Barra fija real en móvil: visible desde que carga la página */
@media(max-width:600px){
  body{
    padding-bottom:76px;
  }

  .idealista-floating-card{
    position:fixed;
    z-index:900;
    left:0;
    right:0;
    bottom:0;
    width:100%;
    max-width:none;
    margin:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    padding:.62rem .75rem calc(.62rem + env(safe-area-inset-bottom));
    border:0;
    border-top:1px solid rgba(255,255,255,.20);
    border-radius:16px 16px 0 0;
    background:rgba(7,35,34,.93);
    box-shadow:0 -8px 30px rgba(0,0,0,.20);
    backdrop-filter:blur(14px) saturate(130%);
    -webkit-backdrop-filter:blur(14px) saturate(130%);
  }

  .idealista-floating-brand{
    flex:1 1 auto;
    min-width:0;
  }

  .idealista-floating-card .side-card-icon{
    width:38px;
    height:38px;
    border-radius:11px;
    background:#fff;
    color:var(--teal-deep);
  }

  .idealista-floating-card .side-card-icon svg{
    width:21px;
    height:21px;
  }

  .idealista-floating-copy strong{
    font-size:.82rem;
  }

  .idealista-floating-copy p{
    display:none;
  }

  .idealista-floating-cta{
    flex:0 0 auto;
    min-height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:.62rem .95rem;
    border-radius:999px;
    background:#fff;
    color:var(--dark);
    font-size:.78rem;
    font-weight:800;
    white-space:nowrap;
    box-shadow:0 6px 18px rgba(0,0,0,.15);
  }

  .idealista-floating-cta[aria-disabled="true"]{
    opacity:.72;
    pointer-events:none;
  }
}

/* Corrección visual móvil barra Idealista: cuadrada, color del menú y sin hueco inferior */
@media(max-width:600px){
  body{
    padding-bottom:72px;
  }

  .idealista-floating-card{
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    width:100% !important;
    margin:0 !important;
    min-height:64px;
    padding:.5rem .7rem .5rem .7rem !important;
    border:0 !important;
    border-top:1px solid rgba(6,34,33,.07) !important;
    border-radius:0 !important;
    background:rgba(255,255,255,.88) !important;
    color:var(--dark) !important;
    box-shadow:0 -6px 18px rgba(6,34,33,.06) !important;
    backdrop-filter:blur(14px) saturate(135%) !important;
    -webkit-backdrop-filter:blur(14px) saturate(135%) !important;
  }

  .idealista-floating-brand{
    gap:.6rem;
  }

  .idealista-floating-card .side-card-icon{
    width:36px !important;
    height:36px !important;
    border-radius:8px !important;
    background:var(--teal) !important;
    color:#fff !important;
  }

  .idealista-floating-card .side-card-icon svg{
    width:18px;
    height:18px;
  }

  .idealista-floating-copy strong{
    color:var(--dark) !important;
    font-size:.8rem !important;
  }

  .idealista-floating-copy p{
    display:none !important;
  }

  .idealista-floating-cta{
    min-height:38px !important;
    padding:.58rem .9rem !important;
    border-radius:10px !important;
    background:var(--teal) !important;
    color:#fff !important;
    box-shadow:none !important;
  }

  .idealista-floating-cta[aria-disabled="true"]{
    opacity:1 !important;
  }
}

/* Footer: logotipo blanco */
.footer-logo{
  width:170px;
  height:auto;
  overflow:visible;
  padding:0;
  background:transparent;
  border-radius:0;
}

.footer-logo img{
  position:static;
  width:100%;
  max-width:100%;
  height:auto;
  left:auto;
  top:auto;
}

/* Reducir un 60% el espacio vertical de las secciones de contenido */
.about-section,
.process-section,
.social-section,
.contact-section{
  padding-top:clamp(1.68rem,2.8vw,2.4rem);
  padding-bottom:clamp(1.68rem,2.8vw,2.4rem);
}

@media(max-width:600px){
  .about-section,
  .process-section,
  .social-section,
  .contact-section{
    padding-top:1.48rem;
    padding-bottom:1.48rem;
  }
}

/* Idealista flotante escritorio:
   centrado verticalmente, más alargado y con el mismo turquesa del CTA principal */
@media(min-width:601px){
  .idealista-floating-card{
    position:fixed !important;
    z-index:500 !important;
    top:50% !important;
    right:18px !important;
    bottom:auto !important;
    left:auto !important;
    width:270px !important;
    min-height:58px;
    margin:0 !important;
    padding:.72rem 1rem !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    transform:translateY(-50%) !important;
    border:0 !important;
    border-radius:999px !important;
    background:var(--teal) !important;
    color:#fff !important;
    box-shadow:0 12px 28px rgba(2,159,153,.22) !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  .idealista-floating-brand{
    width:100%;
    display:flex;
    align-items:center;
    gap:.8rem;
  }

  .idealista-floating-card .side-card-icon{
    flex:0 0 auto;
    width:38px !important;
    height:38px !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.18) !important;
    color:#fff !important;
  }

  .idealista-floating-card .side-card-icon svg{
    width:20px;
    height:20px;
    stroke:#fff !important;
  }

  .idealista-floating-copy strong{
    color:#fff !important;
    font-size:.9rem !important;
    line-height:1.15;
  }

  .idealista-floating-copy p{
    margin:.18rem 0 0 !important;
    color:rgba(255,255,255,.82) !important;
    font-size:.72rem !important;
    line-height:1.2;
  }

  .idealista-floating-cta{
    display:none !important;
  }
}

/* Móvil: cubrir también el safe-area inferior para que no quede ninguna franja bajo Idealista */
@media(max-width:600px){
  body{
    padding-bottom:calc(72px + env(safe-area-inset-bottom));
  }

  .idealista-floating-card{
    bottom:0 !important;
    padding-bottom:calc(.5rem + env(safe-area-inset-bottom)) !important;
    background:rgba(255,255,255,.92) !important;
  }

  /* Evita una posible línea del fondo del documento bajo la barra en Safari/iOS */
  html{
    background:#fff;
  }
}

/* Corrección escritorio: Idealista centrado horizontalmente y pegado abajo */
@media(min-width:601px){
  .idealista-floating-card{
    position:fixed !important;
    z-index:500 !important;
    top:auto !important;
    right:auto !important;
    bottom:18px !important;
    left:50% !important;
    width:320px !important;
    min-height:58px !important;
    margin:0 !important;
    padding:.72rem 1.05rem !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    transform:translateX(-50%) !important;
    border:0 !important;
    border-radius:999px !important;
    background:var(--teal) !important;
    color:#fff !important;
    box-shadow:0 12px 28px rgba(2,159,153,.22) !important;
  }

  .idealista-floating-brand{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.8rem;
  }

  .idealista-floating-copy{
    flex:0 1 auto;
  }

  .idealista-floating-copy strong{
    color:#fff !important;
  }

  .idealista-floating-copy p{
    color:rgba(255,255,255,.84) !important;
  }

  .idealista-floating-card .side-card-icon{
    background:rgba(255,255,255,.18) !important;
    color:#fff !important;
  }

  .idealista-floating-card .side-card-icon svg{
    stroke:#fff !important;
  }
}

/* Idealista escritorio: pastilla centrada, contenido interior alineado a la izquierda */
@media(min-width:601px){
  .idealista-floating-card{
    justify-content:flex-start !important;
  }

  .idealista-floating-brand{
    width:100%;
    justify-content:flex-start !important;
    text-align:left;
  }

  .idealista-floating-copy{
    flex:1 1 auto;
    text-align:left;
  }

  .idealista-floating-copy strong,
  .idealista-floating-copy p{
    text-align:left;
  }
}

/* =========================================================
   Menú móvil: drawer lateral derecho + backdrop.
   Sustituye al antiguo menú flotante bajo el header.
   ========================================================= */
@media(max-width:900px){
  body::after{
    content:"";
    position:fixed;
    z-index:180;
    inset:0;
    background:rgba(4,24,23,.36);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:
      opacity .25s ease,
      visibility .25s ease;
  }

  body.menu-open::after{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  .site-header{
    z-index:220;
  }

  .site-nav{
    position:fixed !important;
    z-index:210;
    top:0 !important;
    right:0 !important;
    bottom:0 !important;
    left:auto !important;

    width:min(82vw,340px);
    height:100dvh;
    margin:0 !important;

    visibility:visible !important;
    opacity:1 !important;

    transform:translateX(105%) !important;

    background:rgba(255,255,255,.97);
    border-left:1px solid rgba(6,34,33,.08);
    box-shadow:-18px 0 48px rgba(6,34,33,.16);
    backdrop-filter:blur(16px) saturate(135%);
    -webkit-backdrop-filter:blur(16px) saturate(135%);

    transition:transform .28s cubic-bezier(.22,.61,.36,1) !important;
  }

  body.menu-open .site-nav{
    transform:translateX(0) !important;
  }

  .site-nav ul{
    height:100%;
    max-height:none !important;
    overflow-y:auto;

    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;

    gap:.2rem;
    margin:0;
    padding:
      calc(var(--header-height) + 1.2rem)
      1rem
      calc(1rem + env(safe-area-inset-bottom));

    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }

  .site-nav li{
    width:100%;
  }

  .site-nav a,
  .site-header.scrolled .site-nav a{
    width:100%;
    min-height:48px;
    justify-content:flex-start;
    padding:.72rem .9rem;
    border-radius:12px;
    font-size:.96rem;
  }

  .site-nav a:not(.button)::after{
    display:none !important;
  }

  .site-nav a:not(.button).active{
    background:var(--teal-soft);
    color:var(--teal-deep);
  }

  .nav-contact{
    margin:.8rem 0 0 !important;
  }

  .nav-contact .button{
    justify-content:center !important;
    min-height:46px !important;
    border-radius:999px;
  }

  /*
   El botón hamburguesa permanece por encima del drawer y actúa también
   como botón de cierre.
  */
  .menu-toggle{
    position:relative;
    z-index:230;
  }
}

@media(max-width:600px){
  .site-nav{
    width:min(86vw,320px);
  }
}

/* Menú drawer móvil: ocupar exactamente el 60% del ancho de pantalla */
@media(max-width:900px){
  .site-nav{
    width:60vw !important;
    max-width:none !important;
  }
}

@media(max-width:600px){
  .site-nav{
    width:60vw !important;
    max-width:none !important;
  }

  .site-nav ul{
    padding-left:.7rem;
    padding-right:.7rem;
  }

  .site-nav a,
  .site-header.scrolled .site-nav a{
    padding-left:.72rem;
    padding-right:.72rem;
    font-size:.9rem;
  }
}

/* =========================================================
   Ajustes solicitados:
   - service-intro sin espacio vertical extra
   - móvil: títulos y bloques indicados centrados
   - número + título de cada paso en la misma línea
   ========================================================= */

.service-intro{
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-bottom:0 !important;
}

@media(max-width:600px){

  /* Hero */
  .hero h1{
    text-align:center;
  }

  /* Sección Idealista */
  .idealista-copy h2{
    text-align:center;
  }

  /* Cercanía / Claridad / Trato personal */
  .values-list{
    text-align:center;
  }

  .values-list > div{
    display:grid;
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    row-gap:.22rem;
    padding:.65rem 0;
  }

  .values-list > div > span{
    grid-row:auto;
    width:30px;
    height:30px;
    margin:0 0 .25rem;
  }

  .values-list strong,
  .values-list small{
    text-align:center;
  }

  /* Pasos 1/2/3: número + título en la misma línea */
  .process-card{
    text-align:center;
  }

  .process-card > span{
    display:inline-grid;
    vertical-align:middle;
    margin:0 .5rem 0 0;
  }

  .process-card > h3{
    display:inline-block;
    vertical-align:middle;
    margin:0;
  }

  .process-card > p{
    display:block;
    margin:.75rem auto 0;
    text-align:center;
    max-width:28rem;
  }

  /* Sin aire adicional alrededor del bloque Comprar/Vender/Alquilar */
  .service-intro{
    padding-top:0 !important;
    padding-bottom:0 !important;
    margin-bottom:0 !important;
  }
}

/* Idealista móvil: dar aire entre título, descripción y CTA */
@media(max-width:600px){
  .idealista-copy h2{
    margin-bottom:1.25rem !important;
  }

  .idealista-copy > p:not(.eyebrow){
    margin-bottom:1.35rem !important;
  }

  .idealista-copy > .button{
    margin-top:.15rem;
  }
}
