/* KEONSA INVESTMENTS S.L. — keonsainvestments.online
   Paleta: piedra clara, verde botella, albero sevillano
--------------------------------------------------- */
:root{
  --piedra:#F8F7F3;       /* fondo principal */
  --piedra-2:#EFEDE6;     /* paneles suaves */
  --grafito:#20241F;      /* texto principal */
  --gris:#5C6058;         /* texto secundario */
  --verde:#1F3B31;        /* bloques oscuros, marca */
  --albero:#C2953B;       /* acento ocre */
  --linea:#D6D3C8;
  --radius:0px;
  --maxw:1140px;
  font-size:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  font-family:'Archivo',system-ui,sans-serif;
  background:var(--piedra);
  color:var(--grafito);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* Tipografía */
h1,h2,h3{font-family:'Marcellus',serif;font-weight:400;line-height:1.15;letter-spacing:.01em}
.eyebrow{
  font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:var(--albero);display:inline-flex;align-items:center;gap:.7rem;margin-bottom:1.1rem;
}
.eyebrow::before{content:"";width:2.4rem;border-top:1px solid var(--albero)}
.eyebrow::after{content:"";width:.45rem;height:.45rem;background:var(--albero);transform:rotate(45deg)}

/* Header */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(248,247,243,.93);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--linea);
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{font-family:'Marcellus',serif;font-size:1.2rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.brand b{color:var(--albero);font-weight:400}
.nav{display:flex;gap:1.7rem;align-items:center}
.nav a{
  text-decoration:none;font-size:.82rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gris);padding:.35rem 0;position:relative;transition:color .2s;
}
.nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-2px;border-bottom:2px solid var(--albero);transition:right .25s;
}
.nav a:hover,.nav a:focus-visible{color:var(--grafito)}
.nav a:hover::after,.nav a:focus-visible::after{right:0}
.nav .nav-cta{color:#fff;background:var(--verde);padding:.6rem 1.2rem}
.nav .nav-cta::after{display:none}
.nav .nav-cta:hover,.nav .nav-cta:focus-visible{background:var(--albero);color:#20241F}
.menu-toggle{display:none;background:none;border:1px solid var(--linea);padding:.45rem .7rem;font:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--albero);outline-offset:3px}

/* Hero — alzado arquitectónico */
.hero{
  position:relative;overflow:hidden;border-bottom:1px solid var(--linea);
  background:
    linear-gradient(180deg,rgba(248,247,243,.35) 0%,rgba(248,247,243,.92) 68%,var(--piedra) 100%),
    repeating-linear-gradient(90deg,transparent 0 119px,rgba(31,59,49,.08) 119px 120px),
    repeating-linear-gradient(0deg,transparent 0 119px,rgba(31,59,49,.08) 119px 120px),
    var(--piedra-2);
}
.hero .container{padding-top:104px;padding-bottom:104px;max-width:960px}
.hero h1{font-size:clamp(2.5rem,6vw,4.4rem);margin-bottom:1.4rem}
.hero h1 span{color:var(--verde)}
.hero p.lead{font-size:1.14rem;color:var(--gris);max-width:40rem;margin-bottom:2.4rem}
.hero .ref{
  display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--verde);border:1px solid var(--verde);padding:.35rem .8rem;margin-bottom:1.6rem;background:var(--piedra);
}
.btn{
  display:inline-block;text-decoration:none;font-weight:600;font-size:.88rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.95rem 1.9rem;transition:background .2s,color .2s,border-color .2s;cursor:pointer;border:1px solid transparent;
}
.btn-verde{background:var(--verde);color:#fff;border-color:var(--verde)}
.btn-verde:hover,.btn-verde:focus-visible{background:var(--albero);border-color:var(--albero);color:#20241F}
.btn-line{border-color:var(--grafito);color:var(--grafito);margin-left:.8rem}
.btn-line:hover,.btn-line:focus-visible{border-color:var(--albero);color:var(--albero)}

/* Secciones */
.section{padding:92px 0}
.section-alt{background:var(--piedra-2)}
.section h2{font-size:clamp(1.9rem,4vw,2.7rem);margin-bottom:1.2rem;max-width:30ch}
.section .intro{color:var(--gris);max-width:44rem;margin-bottom:2.6rem}

/* Servicios — fichas de activo */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.card{
  background:var(--piedra);border:1px solid var(--linea);padding:2.1rem 1.8rem;position:relative;
  border-top:3px solid var(--verde);
}
.card .parcela{
  font-size:.68rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--albero);
  display:block;margin-bottom:1rem;
}
.card h3{font-size:1.25rem;margin-bottom:.7rem}
.card p{font-size:.94rem;color:var(--gris)}
.card ul{list-style:none;margin-top:1rem;font-size:.9rem;color:var(--gris)}
.card li{padding:.45rem 0;border-top:1px solid var(--linea)}
.card li::before{content:"— ";color:var(--albero)}

/* Empresa split */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;align-items:start}
.fact-list{border-top:1px solid var(--grafito)}
.fact-list div{display:flex;justify-content:space-between;gap:1.5rem;padding:.9rem 0;border-bottom:1px solid var(--linea);font-size:.95rem}
.fact-list dt{color:var(--gris)}
.fact-list dd{font-weight:600;text-align:right}

/* Datos registrales — verde oscuro */
.section-dark{background:var(--verde);color:#E9EBE4}
.section-dark h2{color:#fff}
.section-dark .eyebrow{color:#D8B96B}
.section-dark .eyebrow::before{border-color:#D8B96B}
.section-dark .eyebrow::after{background:#D8B96B}
.reg-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid rgba(255,255,255,.2)}
.reg-grid div{padding:1.4rem 1.5rem;border-right:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}
.reg-grid div:nth-child(3n){border-right:0}
.reg-grid dt{font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#A9BCA9;margin-bottom:.35rem}
.reg-grid dd{font-size:1rem}

/* Contacto */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:3.5rem;align-items:start}
.contact-item{padding:1.1rem 0;border-bottom:1px solid var(--linea)}
.contact-item:first-child{border-top:1px solid var(--grafito)}
.contact-item .label{font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gris);margin-bottom:.25rem}
.contact-item a{text-decoration:none;font-weight:600}
.contact-item a:hover{color:var(--albero)}
form{display:grid;gap:1.1rem;background:#fff;border:1px solid var(--linea);border-top:3px solid var(--verde);padding:2.1rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
label{font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:.4rem}
input,textarea{
  width:100%;font:inherit;padding:.85rem .95rem;border:1px solid var(--linea);
  background:var(--piedra);color:var(--grafito);
}
input:focus,textarea:focus{outline:2px solid var(--albero);outline-offset:1px;border-color:var(--albero)}
textarea{min-height:140px;resize:vertical}
.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.85rem;color:var(--gris)}
.consent input{width:auto;margin-top:.25rem}
.form-note{font-size:.8rem;color:var(--gris)}
.form-ok{display:none;background:#E9EFE4;border:1px solid #9BB48C;color:#2C4A22;padding:.9rem 1rem;font-size:.9rem}

/* Footer */
.site-footer{background:var(--grafito);color:#C9C7BD;font-size:.88rem}
.site-footer .top{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:2.5rem;padding:64px 0 40px}
.site-footer h4{font-family:'Marcellus',serif;color:#fff;font-size:1.05rem;margin-bottom:1rem;letter-spacing:.1em;text-transform:uppercase}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:.55rem}
.site-footer a{color:#C9C7BD;text-decoration:none}
.site-footer a:hover,.site-footer a:focus-visible{color:#D8B96B;text-decoration:underline}
.site-footer .legalline{
  border-top:1px solid rgba(255,255,255,.18);padding:1.4rem 0;
  display:flex;flex-wrap:wrap;gap:.6rem 2rem;justify-content:space-between;color:#8E8C82;font-size:.8rem;
}

/* Cookie banner */
.cookie-banner{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:100;
  background:var(--verde);color:#E9EBE4;padding:1.1rem 1.3rem;
  display:none;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;
  box-shadow:0 10px 30px rgba(0,0,0,.3);max-width:var(--maxw);margin:0 auto;
}
.cookie-banner p{font-size:.85rem;max-width:46rem}
.cookie-banner a{color:#fff}
.cookie-actions{display:flex;gap:.6rem}
.cookie-actions .btn{padding:.55rem 1.1rem;font-size:.75rem}
.btn-ghost{border:1px solid rgba(255,255,255,.4);color:#E9EBE4}
.btn-ghost:hover{border-color:#fff}
.btn-albero{background:var(--albero);color:#20241F;border:1px solid var(--albero)}
.btn-albero:hover{background:#d8ad55}

/* Páginas legales */
.legal .container{max-width:780px;padding-top:72px;padding-bottom:96px}
.legal h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:.6rem}
.legal .updated{color:var(--gris);font-size:.85rem;margin-bottom:2.4rem}
.legal h2{font-size:1.35rem;margin:2.2rem 0 .7rem}
.legal p,.legal li{color:#3A3D37;margin-bottom:.8rem}
.legal ul{padding-left:1.3rem}
.legal table{width:100%;border-collapse:collapse;font-size:.9rem;margin:1rem 0}
.legal th,.legal td{border:1px solid var(--linea);padding:.6rem .8rem;text-align:left;vertical-align:top}
.legal th{background:var(--piedra-2)}

/* Responsive */
@media (max-width:900px){
  .split,.contact-grid{grid-template-columns:1fr;gap:2.4rem}
  .cards{grid-template-columns:1fr}
  .reg-grid{grid-template-columns:1fr 1fr}
  .reg-grid div:nth-child(3n){border-right:1px solid rgba(255,255,255,.2)}
  .reg-grid div:nth-child(2n){border-right:0}
  .site-footer .top{grid-template-columns:1fr}
}
@media (max-width:760px){
  .menu-toggle{display:block}
  .nav{
    position:absolute;top:76px;left:0;right:0;background:var(--piedra);
    flex-direction:column;align-items:flex-start;padding:1.2rem 24px 1.6rem;gap:1.1rem;
    border-bottom:1px solid var(--linea);display:none;
  }
  .nav.open{display:flex}
  .form-row{grid-template-columns:1fr}
  .btn-line{margin-left:0;margin-top:.8rem}
  .reg-grid{grid-template-columns:1fr}
  .reg-grid div{border-right:0!important}
}
