/* ==========================================================================
   Casa en Paraíso — capa de diseño 2026
   Se carga después de los estilos de cada página y los sobrescribe.
   Dirección: arena volcánica + Atlántico. Un solo acento (terracota).
   ========================================================================== */

:root{
  /* Paleta: neutros tintados + un único acento */
  --ink:#16212a;
  --ink-soft:#2b3a46;
  --muted:#5d6872;
  --line:#e4ddd0;
  --paper:#fbf8f3;
  --sand:#f3ece0;
  --accent:#9a5530;      /* contraste AA sobre los fondos claros y con texto blanco */
  --accent-deep:#7d4425;
  --accent-soft:#efd9c4;

  /* Remapeo de los tokens antiguos: el azul desaparece, el dorado pasa a terracota */
  --color-primary:var(--ink);
  --color-primary-dark:var(--ink);
  --color-primary-light:var(--sand);
  --color-navy:var(--ink);
  --color-dark:var(--ink);
  --color-cream:var(--sand);
  --color-sand:var(--accent-soft);
  --color-gold:var(--accent);
  --color-gold-light:var(--accent-soft);

  --font-heading:'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body:'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:18px;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --shadow-tint:0 24px 48px -24px rgba(22,33,42,.28);

  --z-header:100;
  --z-chat:200;
  --z-lightbox:300;
  --z-skip:400;
}

/* ---------- Base ---------- */
html{scroll-behavior:smooth;scroll-padding-top:90px;}
body{background:var(--paper);color:var(--ink);font-weight:350;font-size:1.0625rem;line-height:1.65;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}

/* Grano sutil para quitar la sensación de plano digital */
body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

h1,h2,h3,h4{font-family:var(--font-heading);font-weight:400;letter-spacing:-.02em;line-height:1.08;text-wrap:balance;font-variation-settings:'SOFT' 50,'opsz' 96;}
h3,h4{letter-spacing:-.01em;line-height:1.2;font-variation-settings:'SOFT' 50,'opsz' 36;}
p{text-wrap:pretty;}
::selection{background:var(--accent-soft);color:var(--ink);}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px;}

.skip-link{position:fixed;top:12px;left:12px;z-index:var(--z-skip);background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-weight:500;transform:translateY(-160%);transition:transform .2s var(--ease-out);}
.skip-link:focus{transform:none;}

.icon{width:1.05em;height:1.05em;flex-shrink:0;vertical-align:-.15em;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}

/* ---------- Ritmo y contenedores ---------- */
.container{max-width:1240px;padding:0 clamp(20px,4vw,40px);}
.section{padding:clamp(80px,10vw,140px) clamp(20px,4vw,40px) clamp(96px,11vw,156px);}

/* Títulos de sección: alineados a la izquierda, sin adornos */
.section-title{font-size:clamp(2.2rem,4.4vw,3.6rem);text-align:left;margin-bottom:18px;max-width:18ch;}
.section-title::after{display:none;}
.section-subtitle{text-align:left;margin:0 0 clamp(40px,5vw,64px);max-width:52ch;color:var(--muted);font-size:1.1rem;}

/* Eyebrow: cursiva editorial en lugar de mayúsculas espaciadas */
.eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  text-transform:none;letter-spacing:0;
  font-family:var(--font-heading);font-style:italic;font-weight:400;font-size:1.05rem;
  color:var(--accent);margin-bottom:16px;
}
.eyebrow::before{content:'';width:28px;height:1px;background:currentColor;opacity:.6;}

/* ---------- Header ---------- */
.site-header{z-index:var(--z-header);background:rgba(251,248,243,.82);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);box-shadow:none;border-bottom:1px solid rgba(22,33,42,.06);}
.header-inner{max-width:1240px;padding:14px clamp(20px,4vw,40px);}
.main-nav a{position:relative;font-weight:450;font-size:.97rem;letter-spacing:0;color:var(--ink-soft);padding:6px 0;}
.main-nav a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out);}
.main-nav a:hover,.main-nav a.active{color:var(--ink);}
.main-nav a:hover::after,.main-nav a.active::after{transform:scaleX(1);}
.header-phone{gap:8px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;padding:9px 16px;border:1px solid var(--line);border-radius:999px;transition:background-color .25s,border-color .25s;}
.header-phone:hover{background:var(--ink);border-color:var(--ink);color:#fff;}
.menu-toggle{display:none;width:42px;height:42px;align-items:center;justify-content:center;border-radius:999px;color:var(--ink);}
.menu-toggle .icon{width:22px;height:22px;}
.lang-switch select{border:1px solid var(--line);border-radius:999px;color:var(--ink);font-weight:500;padding:8px 28px 8px 14px;background:transparent;transition:border-color .2s;}
.lang-switch select:hover{border-color:var(--ink);}
.lang-switch::after{color:var(--ink);right:12px;}
@media(max-width:860px){
  .menu-toggle{display:inline-flex;}
  .header-phone{border:none;padding:6px;}
  .main-nav{background:var(--paper);box-shadow:0 24px 40px -20px rgba(22,33,42,.25);}
  .main-nav ul li{border-bottom:1px solid var(--line);}
  .main-nav ul li a{font-family:var(--font-heading);font-size:1.4rem;padding:18px 0;}
  .main-nav a::after{display:none;}
}

/* ---------- Botones ---------- */
.btn{
  border-radius:999px;text-transform:none;letter-spacing:0;font-weight:500;font-size:.98rem;
  padding:15px 28px;border-width:1px;
  transition:background-color .3s var(--ease-out),color .3s var(--ease-out),border-color .3s var(--ease-out),transform .2s var(--ease-out);
}
.btn::after{content:'→';display:inline-block;transition:transform .3s var(--ease-out);}
.btn:hover::after{transform:translateX(4px);}
.btn:active{transform:scale(.98);}
.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff;}
.btn-primary:hover{background:var(--accent);border-color:var(--accent);}
.btn-gold{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn-gold:hover{background:#fff;border-color:#fff;color:var(--ink);}
.btn-outline{border-color:rgba(255,255,255,.55);color:#fff;backdrop-filter:blur(6px);background:rgba(255,255,255,.06);}
.btn-outline:hover{background:#fff;border-color:#fff;color:var(--ink);}
.btn-outline-dark,.btn-outline-navy{background:transparent;border-color:var(--ink);color:var(--ink);}
.btn-outline-dark:hover,.btn-outline-navy:hover{background:var(--ink);color:#fff;}
.hero-cta .btn-outline::after,.contact-card .btn + .phone-link::after{content:none;}
.hero-cta .btn-outline::after{content:none;}

/* ---------- Hero portada ---------- */
.hero{min-height:100vh;min-height:100dvh;align-items:flex-end;justify-content:flex-start;}
.hero video,.hero .hero-fallback{filter:saturate(1.08) contrast(1.04);object-position:center 42%;animation:heroZoom 18s var(--ease-out) both;}
@keyframes heroZoom{from{transform:scale(1.08);}to{transform:scale(1);}}
.hero::after{background:
  radial-gradient(120% 90% at 0% 100%,rgba(22,33,42,.78) 0%,rgba(22,33,42,.35) 45%,rgba(22,33,42,0) 75%),
  linear-gradient(180deg,rgba(22,33,42,.35) 0%,rgba(22,33,42,0) 30%);}
.hero-content{width:100%;max-width:1240px;margin:0 auto;padding:0 clamp(20px,4vw,40px) clamp(64px,12vh,128px);text-align:left;text-shadow:none;}
.hero-content .eyebrow{color:var(--accent-soft);}
.hero-content h1{font-size:clamp(2.8rem,7.2vw,6.2rem);font-style:normal;font-weight:350;max-width:13ch;margin-bottom:24px;line-height:1;}
.hero-content .divider{display:none;}
.hero-content p.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);max-width:40ch;opacity:.9;margin-bottom:36px;letter-spacing:0;}
.hero-cta{justify-content:flex-start;}
.hero-cta .btn{display:inline-flex;}
@media (prefers-reduced-motion: reduce){.hero video,.hero .hero-fallback{animation:none;}}

/* ---------- Hero páginas interiores ---------- */
.page-hero{padding:clamp(140px,18vw,220px) clamp(20px,4vw,40px) clamp(64px,8vw,100px);text-align:left;background-position:center;}
.page-hero > *{max-width:1240px;margin-left:auto !important;margin-right:auto !important;display:block;}
.page-hero .eyebrow{display:flex;text-align:left;color:var(--accent-soft);}
.page-hero h1{font-size:clamp(2.6rem,6vw,5rem);font-style:normal;font-weight:350;}
.page-hero p{font-size:1.15rem;opacity:.88;}
.page-hero p, .page-hero h1{max-width:1160px;}

/* ---------- Dos columnas (texto + imagen) ---------- */
.two-col{gap:clamp(40px,7vw,104px);}
.two-col h2{font-size:clamp(2rem,3.6vw,3rem);color:var(--ink);margin-bottom:22px;}
.two-col p{color:var(--muted);max-width:52ch;font-size:1.08rem;}
.two-col img{border-radius:var(--radius-lg);aspect-ratio:4/5;width:100%;object-fit:cover;box-shadow:var(--shadow-tint);}
.two-col > div:has(> img){position:relative;}
.two-col > div:has(> img)::before{content:'';position:absolute;inset:auto auto -18px -18px;width:46%;height:46%;border-radius:var(--radius-lg);background:var(--accent-soft);z-index:-1;}
.two-col > div{position:relative;z-index:0;}

/* ---------- "Por qué elegirnos": lista editorial numerada ---------- */
.cards-grid{grid-template-columns:1fr;gap:0;counter-reset:why;border-bottom:1px solid var(--line);}
.card{display:grid;grid-template-columns:minmax(64px,120px) 1fr;align-items:baseline;background:transparent;border-radius:0;box-shadow:none;border-top:1px solid var(--line);padding:clamp(28px,3.5vw,44px) 0;counter-increment:why;transition:background-color .3s;}
.card::before{content:counter(why,decimal-leading-zero);font-family:var(--font-heading);font-style:italic;font-size:1.1rem;color:var(--accent);}
.card:hover{transform:none;box-shadow:none;border-top-color:var(--line);}
.card img{display:none;}
.card-body{padding:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px clamp(24px,5vw,72px);}
.card-body h3{font-size:clamp(1.35rem,2.2vw,1.8rem);color:var(--ink);margin:0;}
.card-body p{color:var(--muted);font-size:1.02rem;max-width:56ch;}
@media(max-width:760px){.card{grid-template-columns:48px 1fr;}.card-body{grid-template-columns:1fr;}}

/* ---------- Propiedades: rejilla bento ---------- */
.properties-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:clamp(220px,22vw,300px);gap:clamp(12px,1.5vw,20px);}
.property-card{height:auto;border-radius:var(--radius-md);box-shadow:none;isolation:isolate;}
.property-card:first-child{grid-column:span 2;grid-row:span 2;}
.property-card img{filter:saturate(1.05) contrast(1.03);transition:transform 1s var(--ease-out);}
.property-card:hover img{transform:scale(1.05);}
.property-card::before{background:linear-gradient(180deg,rgba(22,33,42,0) 40%,rgba(22,33,42,.85) 100%);}
.property-card-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:clamp(18px,2vw,28px);font-weight:400;font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.25;}
.property-card:first-child .property-card-title{font-size:clamp(1.4rem,2.4vw,2.1rem);max-width:none;}
.property-card-title::after{content:'→';flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;border-radius:999px;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);font-family:var(--font-body);font-size:1rem;transition:background-color .3s,color .3s,transform .4s var(--ease-out);}
.property-card:hover .property-card-title::after{background:#fff;color:var(--ink);transform:rotate(-45deg);}
@media(max-width:960px){.properties-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){
  .properties-grid{grid-template-columns:1fr;grid-auto-rows:260px;}
  .property-card:first-child{grid-column:auto;grid-row:span 1;}
}

/* ---------- Galería de la isla: asimétrica ---------- */
.gallery-section{background:var(--ink);padding:clamp(88px,10vw,140px) clamp(20px,4vw,40px) clamp(104px,12vw,160px);position:relative;overflow:hidden;}
.gallery-section::before{content:'';position:absolute;width:60vw;height:60vw;right:-20vw;top:-30vw;border-radius:50%;background:radial-gradient(circle,rgba(176,101,58,.22),transparent 65%);pointer-events:none;}
.gallery-section .eyebrow{text-align:left;color:var(--accent-soft);}
.gallery-section .section-subtitle{color:#aab4bd;}
.gallery-grid{grid-template-columns:1.35fr 1fr 1fr;gap:clamp(12px,1.6vw,22px);align-items:start;}
.gallery-item{border-radius:var(--radius-lg);height:clamp(360px,38vw,520px);}
.gallery-item:nth-child(2){margin-top:clamp(32px,5vw,72px);height:clamp(300px,32vw,440px);}
.gallery-item:nth-child(3){height:clamp(330px,35vw,480px);}
.gallery-item img{filter:saturate(1.05);transition:transform 1.2s var(--ease-out);}
.gallery-caption{font-size:1.1rem;padding:24px;}
.gallery-grid.cols-2{grid-template-columns:1.2fr 1fr;}
@media(max-width:860px){
  .gallery-grid,.gallery-grid.cols-2{grid-template-columns:1fr;}
  .gallery-item,.gallery-item:nth-child(2),.gallery-item:nth-child(3){height:320px;margin-top:0;}
}

/* ---------- CTA final ---------- */
.cta-final{background-attachment:scroll !important;padding:clamp(110px,14vw,180px) clamp(20px,4vw,40px);}
.cta-final h2{font-size:clamp(2.2rem,5vw,4rem);font-style:normal;font-weight:350;max-width:16ch;margin:0 auto 18px;}
.cta-final p{max-width:44ch;margin-left:auto;margin-right:auto;}

/* ---------- Servicios / Nosotros ---------- */
.service-block{border-bottom-color:var(--line);}
.value-list li{background:var(--sand);border-left:none;border-radius:var(--radius-md);padding:24px 26px;color:var(--ink-soft);}

/* ---------- Ficha de propiedad ---------- */
.breadcrumb a{text-decoration:none;display:inline-flex;gap:6px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);transition:background-color .25s;}
.breadcrumb a:hover{background:rgba(255,255,255,.24);}
.property-hero{min-height:72vh;min-height:72dvh;padding:80px clamp(20px,4vw,40px) clamp(48px,6vw,72px);}
.property-hero::before{background:linear-gradient(180deg,rgba(22,33,42,.25) 0%,rgba(22,33,42,0) 30%,rgba(22,33,42,.85) 100%);}
.property-hero-content{max-width:1240px;}
.property-hero h1{font-size:clamp(2.2rem,5vw,4.2rem);font-weight:350;max-width:18ch;}
.property-price{background:#fff;color:var(--ink);border-radius:999px;padding:8px 18px;font-weight:600;font-variant-numeric:tabular-nums;}
.property-hero .location{display:inline-flex;align-items:center;gap:8px;}
.specs-bar{background:var(--paper);border-bottom:1px solid var(--line);}
.specs-inner{max-width:1240px;justify-content:flex-start;gap:0;padding:0 clamp(20px,4vw,40px);}
.spec-item{text-align:left;padding:28px clamp(20px,3vw,40px) 28px 0;margin-right:clamp(20px,3vw,40px);border-right:1px solid var(--line);}
.spec-item:last-child{border-right:none;}
.spec-item .num{font-size:clamp(1.5rem,2.4vw,2rem);font-weight:400;font-variant-numeric:tabular-nums;}
.spec-item .label{text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--muted);}
.property-content{max-width:1240px;padding:clamp(72px,9vw,120px) clamp(20px,4vw,40px);}
.property-content h2{font-size:clamp(1.8rem,3vw,2.6rem);}
.property-content p{color:var(--muted);max-width:62ch;}
.feature-list li{color:var(--ink-soft);}
.feature-list li::before{width:6px;height:6px;top:10px;}
.contact-card{border-radius:var(--radius-lg);border-top:none;padding:36px 32px;top:110px;box-shadow:var(--shadow-tint);}
.contact-card h3{font-size:1.6rem;}
.contact-card a.phone-link{display:flex;justify-content:center;align-items:center;gap:8px;color:var(--accent-soft);}
.mini-gallery{max-width:1240px;padding:0 clamp(20px,4vw,40px) 64px;gap:clamp(10px,1.4vw,18px);grid-template-columns:1.4fr 1fr 1fr;}
.mini-gallery a{border-radius:var(--radius-md);}
.mini-gallery img{height:clamp(200px,24vw,320px);transition:transform 1s var(--ease-out);}
.mini-gallery .more-tag{border-radius:999px;padding:6px 12px;background:rgba(22,33,42,.7);backdrop-filter:blur(6px);}
.gallery-cta{margin:0 0 clamp(80px,10vw,120px);}
.lightbox{z-index:var(--z-lightbox);background:rgba(16,24,31,.96);}
.lightbox img{border-radius:var(--radius-sm);}
.lightbox-nav{border-radius:999px;width:52px;height:52px;padding:0;display:grid;place-items:center;transition:background-color .2s;}
@media(max-width:640px){
  .mini-gallery{grid-template-columns:1fr 1fr;}
  .mini-gallery a:first-child{grid-column:span 2;}
  .spec-item{border-right:none;padding:18px 24px 18px 0;}
}

/* ---------- Contacto ---------- */
.contact-info h2{font-size:clamp(2rem,3.6vw,3rem);}
.contact-info p{color:var(--muted);}
.contact-info li{font-weight:450;gap:14px;}
.contact-info li .icon{color:var(--accent);width:20px;height:20px;}
.contact-info a{border-bottom:1px solid var(--line);transition:border-color .2s;}
.contact-info a:hover{border-color:var(--accent);}
.contact-info iframe{border-radius:var(--radius-lg);filter:grayscale(.4) contrast(1.05);}
.contact-form{background:var(--sand);border-top:none;border-radius:var(--radius-lg);padding:clamp(28px,4vw,48px);gap:22px;}
.form-group label{font-weight:500;color:var(--ink);}
.form-group input,.form-group textarea,.form-group select{border:1px solid #d9d0c1;border-radius:var(--radius-sm);padding:14px 16px;font-size:1rem;background:var(--paper);transition:border-color .2s,box-shadow .2s;}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(176,101,58,.15);}
.form-group input:user-invalid,.form-group textarea:user-invalid{border-color:#b23a2b;}
.form-group .req{color:var(--accent);}
.form-checkbox input{accent-color:var(--accent);}
.form-status{font-size:.95rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);padding:12px 16px;border-radius:var(--radius-sm);}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);border-top:none;padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px) 36px;}
.footer-grid{max-width:1240px;}
.footer-col h4{font-family:var(--font-body);text-transform:none;letter-spacing:0;font-weight:500;font-size:.95rem;color:#8d99a4;}
.footer-col a{display:inline-flex;align-items:center;gap:8px;font-size:1rem;color:#e5e9ec;}
.footer-col a:hover{color:var(--accent-soft);}
.footer-bottom{max-width:1240px;}

/* ---------- Chatbot ---------- */
.chatbot-toggle{z-index:var(--z-chat);background:var(--ink);box-shadow:0 16px 32px -12px rgba(22,33,42,.55);transition:transform .3s var(--ease-out),background-color .3s;}
.chatbot-toggle:hover{background:var(--accent);transform:scale(1.06);}
.chatbot-toggle:active{transform:scale(.96);}
.chatbot-toggle .icon{width:26px;height:26px;}
.chatbot-panel{z-index:var(--z-chat);border-radius:var(--radius-lg);}
.chatbot-header h4{font-weight:400;font-size:1.15rem;}
.chatbot-messages{background:var(--paper);}
.chatbot-msg.user{background:var(--ink);}
.chatbot-quick{background:var(--paper);}
.chatbot-quick button{border-radius:999px;border-color:var(--line);}
.chatbot-quick button:hover{background:var(--ink);border-color:var(--ink);}
.chatbot-input-row input:focus{border-color:var(--accent);}
.chatbot-input-row button{background:var(--accent);}

/* ---------- Revelado al hacer scroll (solo con JS y sin reduced-motion) ---------- */
.reveal-ready .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);transition-delay:var(--d,0ms);}
.reveal-ready .reveal.is-in{opacity:1;transform:none;}

/* ---------- Ajustes tras revisión visual ---------- */
/* Todo alineado al mismo ancho de contenido (1160px) que el header */
.footer-grid,.footer-bottom{max-width:1160px;}
.page-hero > *{max-width:1160px;}
/* Logo del footer en color, sobre una placa clara (el invert lo convertía en una mancha) */
.footer-col img{filter:none;height:56px;width:auto;background:var(--paper);padding:8px 12px;border-radius:var(--radius-md);}
/* El botón del chat no debe desaparecer sobre fondos oscuros */
.chatbot-toggle{box-shadow:0 0 0 1px rgba(255,255,255,.18),0 16px 32px -12px rgba(22,33,42,.55);}

/* ==========================================================================
   MÓVIL — la mayoría de visitas llegan desde el teléfono
   ========================================================================== */
html{-webkit-text-size-adjust:100%;}
a,button,select,input,label{-webkit-tap-highlight-color:transparent;touch-action:manipulation;}

/* Fotos de origen con franjas blancas incrustadas (miniaturas thimg): recorte */
.property-card img[src*="thimg-"]{transform:scale(1.32);}
@media (hover:hover){.property-card:hover img[src*="thimg-"]{transform:scale(1.38);}}

/* iOS hace zoom en campos con letra menor de 16px */
.chatbot-input-row input{font-size:16px;}

/* Hover solo en dispositivos que lo tienen: evita estados pegados al tocar */
@media (hover:none){
  .property-card:hover img,.gallery-item:hover img,.mini-gallery a:hover img{transform:none;}
  .property-card:hover .property-card-title::after{background:rgba(255,255,255,.14);color:#fff;transform:none;}
  .btn:hover::after{transform:none;}
}

/* Barra fija de contacto en las fichas (la crea site.js) */
.mobile-cta{display:none;}

@media (max-width:860px){
  /* Zonas táctiles de 44px mínimo en el header */
  .header-inner{padding-top:10px;padding-bottom:10px;}
  .header-right{gap:6px;}
  .header-phone{width:44px;height:44px;justify-content:center;padding:0;border-radius:999px;}
  .header-phone .icon{width:20px;height:20px;}
  .menu-toggle{width:44px;height:44px;}
  .lang-switch select{min-height:40px;}
  .logo img{height:42px;}
  .main-nav{top:64px;max-height:0;}
  .main-nav.open{max-height:calc(100dvh - 64px);overflow-y:auto;}

  /* Ficha de propiedad: barra inferior fija con llamada + solicitud */
  .mobile-cta{
    display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:var(--z-chat);
    padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));
    background:rgba(251,248,243,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    border-top:1px solid var(--line);transform:translateY(110%);transition:transform .4s var(--ease-out);
  }
  .mobile-cta.show{transform:none;}
  .mobile-cta a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border-radius:999px;font-weight:500;font-size:1rem;}
  .mobile-cta .cta-call{flex:0 0 auto;padding:0 20px;border:1px solid var(--ink);color:var(--ink);}
  .mobile-cta .cta-info{background:var(--accent);color:#fff;}
  .mobile-cta a:active{transform:scale(.98);}
  body.has-mobile-cta .chatbot-toggle{bottom:calc(86px + env(safe-area-inset-bottom,0px));}
  body.has-mobile-cta .site-footer{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px));}
  body.has-mobile-cta .chatbot-panel{bottom:calc(150px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 230px);}
}

@media (max-width:640px){
  body{font-size:1rem;}
  body::after{display:none;} /* el grano fijo cuesta rendimiento al hacer scroll en móviles */

  /* Un solo margen lateral de 20px (antes se sumaban sección + contenedor = 40px) */
  .section,.gallery-section,.cta-final,.service-block{padding-left:20px;padding-right:20px;}
  .section > .container,.gallery-section > .container,.cta-final > .container,.service-block > .container,.bg-section > .container{padding-left:0;padding-right:0;}
  .section{padding-top:72px;padding-bottom:84px;}
  .gallery-section{padding-top:72px;padding-bottom:84px;}
  .section-title{font-size:2.1rem;max-width:none;}
  .section-subtitle{font-size:1.02rem;margin-bottom:36px;}

  /* Hero portada */
  .hero::after{background:linear-gradient(0deg,rgba(22,33,42,.88) 0%,rgba(22,33,42,.55) 38%,rgba(22,33,42,0) 68%),linear-gradient(180deg,rgba(22,33,42,.3) 0%,rgba(22,33,42,0) 22%);}
  .hero-content{padding:0 20px calc(28px + env(safe-area-inset-bottom,0px));}
  .hero-content h1{font-size:clamp(2.5rem,11vw,3.2rem);margin-bottom:16px;}
  .hero-content p.lead{margin-bottom:28px;}
  .hero-cta{flex-direction:column;align-items:stretch;gap:10px;width:100%;}
  .hero-cta .btn{justify-content:center;min-height:54px;}

  /* Hero páginas interiores */
  .page-hero{padding:120px 20px 56px;}
  .page-hero h1{font-size:2.6rem;}
  .page-hero p{font-size:1.02rem;}

  /* Texto + imagen: foto más baja para no ocupar dos pantallas */
  .two-col{gap:36px;}
  .two-col img{aspect-ratio:4/3;}
  .two-col > div:has(> img)::before{inset:auto auto -10px -10px;}
  .two-col h2{font-size:2rem;}
  .two-col .btn{width:100%;justify-content:center;min-height:52px;}

  /* Por qué elegirnos: número encima, texto a todo el ancho */
  .card{grid-template-columns:1fr;gap:10px;padding:28px 0;}
  .card-body{gap:10px;}

  /* Cómo trabajamos (Nosotros): sin columnas estrechas */
  .value-list li{display:block;padding:20px;}

  /* Galería de la isla: carrusel horizontal con snap */
  .gallery-grid,.gallery-grid.cols-2{
    display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
    margin:0 -20px;padding:0 20px 8px;scrollbar-width:none;overscroll-behavior-x:contain;
  }
  .gallery-grid::-webkit-scrollbar{display:none;}
  .gallery-item,.gallery-item:nth-child(2),.gallery-item:nth-child(3){flex:0 0 82%;height:420px;margin-top:0;scroll-snap-align:center;}

  /* Propiedades */
  .properties-grid{grid-auto-rows:240px;gap:12px;}
  .property-card-title{padding:18px;font-size:1.12rem;}
  .property-card:first-child .property-card-title{font-size:1.35rem;}

  /* CTA final */
  .cta-final{padding-top:96px;padding-bottom:96px;}
  .cta-final h2{font-size:2.3rem;}

  /* Ficha de propiedad */
  .property-hero{min-height:68svh;padding:96px 20px 32px;}
  .property-hero h1{font-size:2.3rem;}
  .breadcrumb a{min-height:40px;align-items:center;padding:8px 16px;}
  .specs-inner{display:grid;grid-template-columns:1fr 1fr;padding:0 20px;}
  .spec-item{margin:0;padding:18px 0;border-right:none;border-bottom:1px solid var(--line);}
  .spec-item:nth-last-child(-n+2):nth-child(odd),.spec-item:last-child{border-bottom:none;}
  .property-content{padding:56px 20px;gap:40px;}
  .contact-card{position:static;padding:28px 22px;}
  .contact-card a.phone-link{min-height:48px;margin-top:4px;}
  .mini-gallery{padding:0 20px 40px;}
  .mini-gallery .more-tag{font-size:.8rem;}
  .gallery-cta{margin-bottom:72px;padding:0 20px;}
  .gallery-cta .btn{width:100%;justify-content:center;min-height:52px;}

  /* Lightbox: controles abajo, al alcance del pulgar, sin tapar la foto */
  .lightbox img{max-width:100vw;max-height:72vh;border-radius:0;}
  .lightbox-nav{top:auto;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:none;width:56px;height:56px;}
  .lightbox-prev{left:20px;}
  .lightbox-next{right:20px;}
  .lightbox-counter{bottom:calc(42px + env(safe-area-inset-bottom,0px));}
  .lightbox-close{top:calc(14px + env(safe-area-inset-top,0px));right:14px;width:48px;height:48px;}

  /* Contacto */
  .contact-grid{gap:48px;}
  .contact-info li{min-height:44px;align-items:flex-start;}
  .contact-info li .icon{margin-top:3px;}
  .contact-info li a{display:inline-block;padding:2px 0 8px;}
  .contact-info iframe{height:220px;}
  .contact-form{padding:24px 20px;}
  .form-group select{padding-right:36px;text-overflow:ellipsis;}
  .form-checkbox{gap:12px;font-size:.92rem;}
  .form-checkbox input{width:22px;height:22px;margin-top:0;flex-shrink:0;}
  .form-note{font-size:.85rem;}
  .contact-form .btn{width:100%;justify-content:center;min-height:54px;justify-self:stretch !important;}

  /* Footer: enlaces con zona táctil cómoda y aire para el botón del chat */
  .site-footer{padding:64px 20px calc(96px + env(safe-area-inset-bottom,0px));}
  .footer-grid{gap:36px;}
  .footer-col ul li{margin-bottom:2px;}
  .footer-col a{min-height:44px;}
  .footer-bottom{flex-direction:column;gap:10px;margin-top:28px;}

  /* Chat: más compacto y respetando el borde inferior del iPhone */
  .chatbot-toggle{width:54px;height:54px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));}
  .chatbot-panel{left:12px;right:12px;width:auto;bottom:calc(82px + env(safe-area-inset-bottom,0px));height:min(520px,calc(100dvh - 120px));max-height:none;}
  .chatbot-quick button{min-height:36px;padding:8px 12px;font-size:.82rem;}
  .chatbot-msg{font-size:.92rem;}
}

/* Hero de fichas con foto de origen con franjas (thimg): recorte */
.property-hero[style*="thimg-"]{background-size:136% auto;}
@media (max-width:860px){.property-hero[style*="thimg-"]{background-size:auto 140%;}}
.value-list li{background:var(--paper);}
/* El chat no tapa los botones del hero: aparece al hacer scroll */
@media (max-width:860px){
  .chatbot-toggle{transition:transform .3s var(--ease-out),opacity .3s,background-color .3s;}
  body.chat-hold .chatbot-toggle{opacity:0;transform:scale(.8);pointer-events:none;}
}

/* Etiqueta de estado (Reservado / Vendido) en tarjetas y fichas */
.property-status{display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;font-family:var(--font-body);font-size:.85rem;font-weight:600;letter-spacing:.02em;background:var(--accent);color:#fff;vertical-align:middle;}
.property-status--vendido{background:var(--ink);}
.property-card .property-status{position:absolute;top:14px;left:14px;z-index:2;}
.property-hero .property-status{margin:0 0 16px 8px;}
.property-description p{color:var(--muted);max-width:62ch;margin-bottom:20px;}
.property-description ul,.property-description ol{margin:0 0 20px 1.2em;color:var(--muted);}
.property-description ul{list-style:disc;}
.properties-empty{grid-column:1/-1;color:var(--muted);font-size:1.1rem;}
.properties-empty a{color:var(--accent);border-bottom:1px solid currentColor;}

/* SEO: en la portada el H1 es el antetítulo (con la palabra clave) y el eslogan es un párrafo con el mismo aspecto de siempre */
.hero-content .hero-title{font-family:var(--font-heading);font-size:clamp(2.8rem,7.2vw,6.2rem);font-weight:350;letter-spacing:-.02em;line-height:1;max-width:13ch;margin-bottom:24px;text-wrap:balance;font-variation-settings:'SOFT' 50,'opsz' 96;color:#fff;}
.hero-content h1.hero-kicker{font-family:var(--font-heading);font-style:italic;font-weight:400;font-size:1.05rem;line-height:1.3;letter-spacing:0;max-width:none;margin-bottom:16px;}
@media (max-width:640px){.hero-content .hero-title{font-size:clamp(2.5rem,11vw,3.2rem);margin-bottom:16px;}}

/* WhatsApp (el cliente atiende solo por WhatsApp, sin llamadas) */
:root{--wa:#25D366;--wa-deep:#128C7E;}
.icon.icon-wa{fill:currentColor;stroke:none;}
.header-wa .icon-wa{color:var(--wa-deep);width:1.15em;height:1.15em;}
.header-wa:hover .icon-wa{color:#fff;}
.btn-wa .icon-wa{color:var(--wa);width:1.2em;height:1.2em;}
.btn-wa:hover .icon-wa{color:var(--wa-deep);}
.footer-col a .icon-wa{color:var(--wa);}
.contact-info li .icon.icon-wa{color:var(--wa-deep);}
.contact-card a.phone-link .icon-wa{color:var(--wa);width:1.2em;height:1.2em;}
.mobile-cta .cta-wa{background:var(--wa-deep);border-color:var(--wa-deep);color:#fff;}
.mobile-cta .cta-wa .icon-wa{color:#fff;}
.chatbot-wa{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;background:var(--wa-deep);color:#fff;font-size:.85rem;font-weight:600;padding:8px 14px;border-radius:999px;margin-top:-4px;}
.chatbot-wa::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--wa);}
@media (max-width:860px){.header-wa .icon-wa{width:22px;height:22px;}}

/* Mapa con consentimiento previo (Contacto) */
.map-consent{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:28px;border-radius:var(--radius-lg);background:var(--sand);border:1px dashed #d9d0c1;min-height:220px;justify-content:center;}
.map-consent-title{font-family:var(--font-heading);font-size:1.3rem;color:var(--ink);margin:0 !important;}
.map-consent-note{font-size:.92rem;color:var(--muted);margin:0 !important;max-width:46ch;}
.map-consent-note a{color:var(--accent);border-bottom:1px solid currentColor;}
.contact-info .map-consent a{font-weight:500;}

/* Páginas legales */
.legal-content{max-width:760px;}
.legal-content h2{font-size:clamp(1.5rem,2.6vw,2rem);margin:48px 0 14px;color:var(--ink);}
.legal-content h3{font-size:1.2rem;margin:28px 0 10px;color:var(--ink);}
.legal-content p,.legal-content li{color:var(--muted);margin-bottom:14px;}
.legal-content ul{list-style:disc;margin:0 0 18px 1.3em;}
.legal-content a{color:var(--accent);border-bottom:1px solid currentColor;}
.legal-content strong{color:var(--ink);font-weight:500;}
.legal-content table{width:100%;border-collapse:collapse;margin:8px 0 24px;font-size:.92rem;}
.legal-content th,.legal-content td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--muted);}
.legal-content th{color:var(--ink);font-weight:500;background:var(--sand);}
.legal-table-wrap{overflow-x:auto;}
.legal-updated{font-size:.9rem;color:var(--muted);}
.pendiente{background:#fde8d7;color:var(--accent-deep);padding:1px 6px;border-radius:4px;font-weight:500;}

/* Información básica de protección de datos bajo el formulario */
.form-rgpd{font-size:.82rem;line-height:1.55;color:var(--muted);background:var(--paper);border-radius:var(--radius-sm);padding:14px 16px;}
.form-rgpd strong{color:var(--ink);font-weight:500;}
.form-rgpd a,.form-checkbox a{color:var(--accent);border-bottom:1px solid currentColor;}
.footer-legal{display:flex;flex-wrap:wrap;gap:6px 16px;}
.footer-legal a{color:#8b97a4;transition:color .2s;}
.footer-legal a:hover{color:var(--accent-soft);}

/* Apartado "Nuestra oficina" (portada) y acciones del mapa en Contacto */
.office-section{background:var(--sand);}
.office-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(36px,6vw,88px);align-items:center;}
.office-text h2{font-size:clamp(2rem,3.6vw,3rem);color:var(--ink);margin-bottom:18px;}
.office-text p{color:var(--muted);max-width:44ch;margin-bottom:22px;}
.office-address{display:flex;align-items:flex-start;gap:10px;color:var(--ink) !important;font-weight:450;}
.office-address .icon{color:var(--accent);width:20px;height:20px;margin-top:3px;}
.office-address a{border-bottom:1px solid var(--line);transition:border-color .2s;}
.office-address a:hover{border-color:var(--accent);}
.office-actions{display:flex;flex-wrap:wrap;gap:12px;}
.office-actions--compact{margin-top:18px;}
.office-actions--compact .btn{padding:12px 22px;font-size:.92rem;}
.office-map .map-consent{min-height:360px;background:var(--paper);}
.office-map iframe,.contact-info iframe{width:100%;border:0;border-radius:var(--radius-lg);}
.office-map iframe{height:420px;}
@media (max-width:860px){.office-grid{grid-template-columns:1fr;}}
@media (max-width:640px){.office-actions .btn{width:100%;justify-content:center;min-height:52px;}.office-map .map-consent{min-height:260px;}.office-map iframe{height:320px;}}

/* Banner de cookies (consent.js). Aceptar y Rechazar con el mismo peso visual (guía AEPD) */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:calc(var(--z-skip) + 1);display:flex;justify-content:center;pointer-events:none;}
.cookie-card{pointer-events:auto;width:100%;max-width:560px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 24px 60px -20px rgba(22,33,42,.45);padding:22px 22px 18px;animation:cookieIn .45s var(--ease-out) both;}
@keyframes cookieIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion: reduce){.cookie-card{animation:none;}}
.cookie-title{font-family:var(--font-heading);font-size:1.25rem;margin-bottom:8px;}
.cookie-text{font-size:.92rem;line-height:1.55;color:var(--muted);margin-bottom:14px;}
.cookie-text a{color:var(--accent);border-bottom:1px solid currentColor;white-space:nowrap;}
.cookie-settings{display:grid;gap:10px;margin-bottom:16px;}
.cookie-opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;cursor:pointer;}
.cookie-opt input{width:20px;height:20px;margin-top:2px;flex-shrink:0;accent-color:var(--accent);}
.cookie-opt strong{display:block;font-weight:500;font-size:.95rem;}
.cookie-opt small{display:block;color:var(--muted);font-size:.84rem;line-height:1.45;}
.cookie-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.cookie-btn{min-height:48px;border-radius:999px;border:1px solid var(--ink);background:var(--ink);color:#fff;font:500 .98rem var(--font-body);cursor:pointer;transition:background-color .2s,transform .15s;}
.cookie-btn:hover{background:var(--accent);border-color:var(--accent);}
.cookie-btn:active{transform:scale(.98);}
.cookie-link{grid-column:1/-1;justify-self:center;background:none;border:none;color:var(--ink-soft);font:500 .9rem var(--font-body);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px;padding:0 12px;}
.cookie-settings-link{background:none;border:none;padding:0;color:#8b97a4;font:inherit;cursor:pointer;transition:color .2s;}
.cookie-settings-link:hover{color:var(--accent-soft);}
body.has-cookie-banner .mobile-cta{transform:translateY(110%) !important;}
body.has-cookie-banner .chatbot-toggle{opacity:0;pointer-events:none;}
.cookie-settings-inline{background:none;border:none;padding:0;font:inherit;color:var(--accent);border-bottom:1px solid currentColor;cursor:pointer;}
.cookie-settings-inline{background:none;border:none;padding:0;font:inherit;color:var(--accent);border-bottom:1px solid currentColor;cursor:pointer;}
.cookie-settings[hidden]{display:none;}

/* Títulos de columna del pie (antes h4) */
.footer-col .footer-col-title{font-family:var(--font-body);text-transform:none;letter-spacing:0;font-weight:500;font-size:.95rem;color:#8d99a4;margin-bottom:16px;line-height:1.4;}

/* Las imágenes llevan width/height (evita saltos de diseño); la altura real la decide el CSS */
img{height:auto;}
.logo img{width:auto;}

/* Punto 11: textos legibles (>=16px) y zonas táctiles de 44px en móvil y tablet */
.form-checkbox,.form-checkbox span{font-size:1rem;}
.breadcrumb{font-size:1rem;}
@media (max-width:1024px){
  .footer-col a,.footer-legal a,.cookie-settings-link{min-height:44px;display:inline-flex;align-items:center;}
  .footer-legal{gap:0 18px;}
  .contact-info li a{display:inline-flex;align-items:center;min-height:44px;padding:0;}
  .main-nav a{min-height:44px;display:inline-flex;align-items:center;}
}
@media (min-width:861px) and (max-width:1024px){.lang-switch select{min-height:44px;}}
@media (max-width:1024px){
  .office-address a{min-height:44px;display:inline-flex;align-items:center;}
  .contact-card a.phone-link{min-height:48px;}
}

/* Página 404 */
.not-found-code{font-family:var(--font-heading);font-size:clamp(4rem,14vw,9rem);line-height:1;color:var(--accent);opacity:.25;margin-bottom:8px !important;}
.not-found .office-actions{margin:8px 0 12px;}
.not-found-list{list-style:none !important;margin:0 0 8px !important;display:grid;gap:4px;}
.not-found-list li{margin:0 !important;}
.not-found-list a{display:inline-flex;align-items:center;min-height:44px;}

/* Título del chat (antes h4) */
.chatbot-header .chatbot-heading{font-family:var(--font-heading);font-weight:400;font-size:1.15rem;margin:0;color:#fff;}

/* Selector de idioma: base común (las fichas no lo traían en su CSS propio) */
.lang-switch{position:relative;}
.lang-switch select{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;font-family:inherit;}
.lang-switch::after{content:'▾';position:absolute;top:50%;transform:translateY(-50%);pointer-events:none;font-size:.65rem;}

/* Contacto: bloque de WhatsApp (sustituye al formulario) */
.wa-card{background:var(--sand);border-radius:var(--radius-lg);padding:clamp(28px,4vw,48px);display:flex;flex-direction:column;align-items:flex-start;gap:14px;}
.wa-card-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--wa-deep);color:#fff;}
.wa-card-icon .icon{width:34px;height:34px;}
.wa-card h2{font-size:clamp(1.8rem,3.2vw,2.6rem);color:var(--ink);margin:6px 0 0;}
.wa-card p{color:var(--muted);max-width:44ch;margin:0;}
.wa-card-btn{background:var(--wa-deep);border-color:var(--wa-deep);color:#fff;font-size:1.05rem;padding:16px 30px;margin-top:8px;}
.wa-card-btn:hover{background:var(--ink);border-color:var(--ink);color:#fff;}
.wa-card-btn::after{content:none;}
.wa-card-btn .icon{width:1.3em;height:1.3em;}
.wa-card-alt{font-size:.95rem;}
.wa-card-alt a{color:var(--ink);border-bottom:1px solid var(--line);}
@media (max-width:640px){.wa-card-btn{width:100%;justify-content:center;min-height:56px;}}
.mobile-cta .cta-call.cta-wa{flex:1;padding:0 20px;}
.btn-wa-ficha{gap:10px;}
.btn-wa-ficha::after{content:none;}
.btn-wa-ficha .icon{width:1.2em;height:1.2em;}
