/* SOLICOAST · Hoja de estilos principal. Paleta tomada del logo. Sin fuentes externas. */
:root{
  --ink:#01272A; --ink-2:#0B3B3F; --ink-3:#13504F; --sand:#B4997B; --sand-2:#D8C7B1; --sand-3:#EFE6DA;
  --gold:#E3A95F; --gold-2:#C98B3E; --cream:#FAF6EF; --paper:#FFFFFF; --text:#1C2B2D; --muted:#5E6B6C; --line:#E6DED2;
  --ok:#1E7A4F; --err:#B3261E; --warn:#9A6200; --wa:#1FA855;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  --r:14px; --r-sm:10px; --shadow:0 1px 2px rgba(1,39,42,.06),0 8px 24px rgba(1,39,42,.07); --shadow-lg:0 2px 6px rgba(1,39,42,.08),0 22px 48px rgba(1,39,42,.14);
  --wrap:1200px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;font:16px/1.65 var(--sans);color:var(--text);background:var(--paper);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto;vertical-align:middle}
a{color:var(--ink-3);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--gold-2)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);line-height:1.18;margin:0 0 .6em;font-weight:600;letter-spacing:-.01em}
h1{font-size:clamp(2rem,1.4rem + 2.6vw,3.4rem)}
h2,.h2{font-size:clamp(1.6rem,1.25rem + 1.4vw,2.35rem)}
h3,.h3{font-size:1.3rem}
.h4,h4{font-size:1.08rem;font-family:var(--sans);font-weight:700}
p{margin:0 0 1em}
ul,ol{padding-left:1.2em}
[role=list]{list-style:none;padding:0;margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(16px,4vw,32px)}
.narrow{max-width:820px}
.center{text-align:center}
.mt{margin-top:1.6rem}
.muted{color:var(--muted)}
.small{font-size:.875rem}
.lead{font-size:clamp(1.05rem,1rem + .35vw,1.25rem);color:var(--muted);max-width:760px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;z-index:100}
.skip:focus{left:8px}
.pending{background:#FFF1C9;color:#6B4A00;padding:0 .3em;border-radius:4px;font-weight:600}
.ico{flex:none}
.kicker{font:700 .78rem/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2);margin:0 0 .9rem}
.kicker-light{color:var(--gold)}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.35rem;border-radius:999px;border:1.5px solid transparent;font:600 .97rem/1.2 var(--sans);text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn-gold{background:var(--gold);color:var(--ink);box-shadow:0 6px 18px rgba(227,169,95,.35)}
.btn-gold:hover{background:#EDB872;color:var(--ink)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--ink-3);color:#fff}
.btn-outline-dark{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-outline-dark:hover{background:var(--ink);color:#fff}
.btn-wa{background:var(--wa);color:#fff}
.btn-wa:hover{background:#178E47;color:#fff}
.btn-danger{background:var(--err);color:#fff}
.btn-outline-danger{border-color:var(--err);color:var(--err);background:#fff}
.btn-outline-danger:hover{background:var(--err);color:#fff}
.btn-block{display:flex;width:100%}
.btn-lg{padding:1rem 1.5rem;font-size:1.05rem}
.btn-sm{padding:.55rem 1rem;font-size:.88rem}
.btn-mini{display:inline-block;padding:.35rem .7rem;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink);font:600 .82rem var(--sans);cursor:pointer;text-decoration:none}
.btn-mini:hover{border-color:var(--ink)}
.btn-mini.danger,.danger{color:var(--err)}
.linklike{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;text-decoration:none;color:var(--ink)}
.link-arrow .ico{transition:transform .2s}
.link-arrow:hover .ico{transform:translateX(3px)}
.link-arrow.back .ico{transform:rotate(180deg)}

/* Topbar + cabecera */
.topbar{background:var(--ink);color:#DCE7E5;font-size:.86rem}
.topbar-in{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:40px}
.topbar-tag{display:flex;align-items:center;gap:.45rem;color:var(--sand-2);letter-spacing:.04em}
.topbar-tag .ico{color:var(--gold)}
.topbar-links{display:flex;gap:1.3rem}
.tb-link{display:inline-flex;align-items:center;gap:.4rem;color:#fff;text-decoration:none}
.tb-link:hover{color:var(--gold)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);transition:box-shadow .2s}
.site-header.scrolled{box-shadow:0 6px 24px rgba(1,39,42,.08)}
.header-in{display:flex;align-items:center;gap:1.5rem;min-height:84px}
.brand{flex:none;display:block}
.brand img{width:190px;height:auto}
.main-nav{flex:1;display:flex;align-items:center;justify-content:flex-end;gap:1.2rem}
.main-nav ul{display:flex;gap:.2rem}
.main-nav ul a{display:block;white-space:nowrap;padding:.55rem .7rem;border-radius:8px;color:var(--ink);text-decoration:none;font-weight:550;font-size:.95rem}
.main-nav ul a:hover{background:var(--cream);color:var(--ink)}
.main-nav ul a[aria-current]{color:var(--gold-2);box-shadow:inset 0 -2px 0 var(--gold)}
.nav-account{padding:.62rem 1.1rem}
.header-tools{display:flex;align-items:center;gap:.4rem}
.nav-toggle{display:none;background:none;border:0;color:var(--ink);padding:.45rem;border-radius:8px;cursor:pointer}
.lang{position:relative}
.lang-btn{display:flex;align-items:center;gap:.3rem;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.4rem .55rem;cursor:pointer;color:var(--ink)}
.lang-btn:hover{border-color:var(--sand)}
.flag{flex:none;max-width:none;width:24px;height:16px;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.08);display:inline-block}
.lang-menu{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);min-width:200px;padding:.4rem;z-index:60}
.lang-menu a{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border-radius:8px;color:var(--ink);text-decoration:none}
.lang-menu a:hover,.lang-menu a[aria-current]{background:var(--cream)}
.lang-search{width:100%;margin-bottom:.3rem;padding:.5rem .6rem;border:1px solid var(--line);border-radius:8px;font:inherit}

/* Hero */
.hero{position:relative;background:var(--ink) url(/assets/img/hero.svg) center/cover no-repeat;color:#fff;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(1,39,42,.96) 0%,rgba(1,39,42,.82) 45%,rgba(1,39,42,.45) 100%)}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;padding-top:clamp(3.5rem,8vw,6.5rem);padding-bottom:clamp(3.5rem,8vw,6.5rem)}
.hero h1{color:#fff;font-size:clamp(2.3rem,1.5rem + 3.4vw,4rem);margin-bottom:.45em}
.hero-lead{font-size:clamp(1.05rem,1rem + .4vw,1.28rem);color:#D6E2E0;max-width:600px}
.hero-badges{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin-top:1.6rem}
.hero-badges li{display:flex;align-items:center;gap:.45rem;color:#EAF1EF;font-size:.95rem}
.hero-badges .ico{color:var(--gold)}
.hero-search{background:rgba(255,255,255,.97);color:var(--text);border-radius:20px;padding:1.6rem;box-shadow:0 30px 60px rgba(0,0,0,.25)}
.h-search{display:flex;align-items:center;gap:.5rem;font-size:1.3rem;margin-bottom:1rem}
.h-search .ico{color:var(--gold-2)}

/* Formulario de búsqueda */
.search{display:grid;gap:.8rem}
.search label{display:grid;gap:.3rem}
.search label span{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.search-hero{grid-template-columns:1fr 1fr}
.search-hero button{grid-column:1/-1}
.filters .search{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end}
input,select,textarea{width:100%;font:inherit;color:var(--text);background:#fff;border:1px solid #D9D1C5;border-radius:var(--r-sm);padding:.72rem .85rem;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold-2);box-shadow:0 0 0 3px rgba(227,169,95,.25)}
input[type=checkbox],input[type=radio]{width:1.15rem;height:1.15rem;accent-color:var(--ink);flex:none;margin-top:.2rem}
input[type=file]{padding:.6rem;background:var(--cream)}
input:disabled{background:#F3F1EC;color:var(--muted)}
[aria-invalid=true]{border-color:var(--err)}
.filters{padding:1.2rem;margin-bottom:1rem;position:relative}
.filters .clear{display:inline-block;margin-top:.7rem;font-size:.9rem}

/* Secciones */
.section{padding:clamp(3.5rem,7vw,6rem) 0}
.section-tight{padding:clamp(2rem,4vw,3.2rem) 0}
.section-sand{background:var(--cream)}
.section-dark{background:var(--ink);color:#D6E2E0}
.section-dark h2,.section-dark h3{color:#fff}
.sec-head{max-width:760px;margin:0 auto 2.6rem;text-align:center}
.sec-head p:last-child{color:var(--muted);font-size:1.08rem}
.sec-head-row{display:flex;justify-content:space-between;align-items:flex-end;text-align:left;max-width:none;gap:1rem;flex-wrap:wrap}
.sec-head-row h2{margin:0}
.page-hero{background:linear-gradient(180deg,var(--cream),#fff);border-bottom:1px solid var(--line);padding:clamp(2.6rem,6vw,4.6rem) 0 clamp(2.2rem,5vw,3.6rem)}
.page-hero h1{max-width:900px}
.svc-hero{background:var(--ink);color:#D6E2E0;border:0}
.svc-hero h1{color:#fff}
.svc-hero .lead{color:#C9D8D5}
.crumbs{font-size:.88rem;color:var(--muted);margin-bottom:1.2rem}
.crumbs a{color:inherit}
.crumbs-light,.crumbs-light a{color:#A9C0BC}

.grid{display:grid;gap:1.5rem}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.two-col{display:grid;grid-template-columns:1.3fr .9fr;gap:3rem;align-items:start}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:1.6rem}

/* Departamentos */
.dept-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.dept{display:block;padding:clamp(1.8rem,4vw,2.8rem);border-radius:20px;text-decoration:none;color:#D6E2E0;background:var(--ink);position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}
.dept::after{content:"";position:absolute;right:-60px;bottom:-60px;width:220px;height:220px;border-radius:50%;border:40px solid rgba(227,169,95,.12)}
.dept-b{background:linear-gradient(135deg,#7E6650,var(--sand))}
.dept-b,.dept-b p{color:#FFF8EF}
.dept:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);color:#fff}
.dept h2{color:#fff;font-size:clamp(1.4rem,1.1rem + 1vw,1.9rem)}
.dept-ico{display:inline-flex;width:64px;height:64px;align-items:center;justify-content:center;border-radius:16px;background:rgba(255,255,255,.1);color:var(--gold);margin-bottom:1.2rem}
.dept-b .dept-ico{color:#fff}
.dept .link-arrow{color:var(--gold)}
.dept-b .link-arrow{color:#fff}

/* Servicios */
.svc-card{display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s,border-color .25s}
.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--sand-2)}
.svc-card h3{margin:.2rem 0 .5rem}
.svc-card h3 a{color:var(--ink);text-decoration:none}
.svc-card p{color:var(--muted);flex:1}
.svc-ico{display:inline-flex;width:54px;height:54px;align-items:center;justify-content:center;border-radius:14px;background:var(--sand-3);color:var(--ink);margin-bottom:1rem}
.svc-ico.big{width:72px;height:72px;background:rgba(255,255,255,.08);color:var(--gold)}
.hire-card{position:sticky;top:110px;display:grid;gap:.7rem}
.hire-card h2{margin:0}
.feat-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem 1.2rem;margin:0 0 1.6rem}
.feat-list-1{grid-template-columns:1fr}
.feat-list li{display:flex;gap:.6rem;align-items:flex-start}
.feat-list .ico{color:var(--gold-2);margin-top:.2rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem}
.chip{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .95rem;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;font-size:.92rem}
.chip:hover{border-color:var(--gold-2);color:var(--ink)}
.chip .ico{color:var(--gold-2)}

/* Pasos */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;counter-reset:s}
.step{position:relative;padding:1.6rem;border-radius:var(--r);background:#fff;border:1px solid var(--line)}
.step-n{display:inline-flex;width:44px;height:44px;border-radius:50%;align-items:center;justify-content:center;background:var(--ink);color:var(--gold);font:700 1.1rem var(--serif);margin-bottom:.9rem}
.step h3{font-size:1.15rem}
.step p{color:var(--muted);margin:0}

/* Por qué */
.why{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.why-intro p{color:#C3D3D0;font-size:1.08rem}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.why-item{padding:1.4rem;border-radius:var(--r);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1)}
.why-item .ico{color:var(--gold);margin-bottom:.6rem}
.why-item h3{font-size:1.1rem;margin-bottom:.35rem}
.why-item p{margin:0;font-size:.95rem;color:#B9CBC8}
.why-item.light{background:#fff;border-color:var(--line)}
.why-item.light p{color:var(--muted)}
.why-item.light .ico{color:var(--gold-2)}

/* Tarjetas de propiedad */
.prop-card{padding:0;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.prop-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.prop-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--sand-3)}
.prop-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.prop-card:hover .prop-media img{transform:scale(1.04)}
.badges{position:absolute;top:12px;left:12px;display:flex;gap:.4rem;flex-wrap:wrap}
.badges.static{position:static;margin-bottom:.6rem}
.badge{display:inline-block;padding:.28rem .62rem;border-radius:999px;background:#fff;color:var(--ink);font:700 .72rem/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.badge-dark{background:var(--ink);color:#fff}
.badge-demo{background:var(--gold);color:var(--ink)}
.prop-body{padding:1.2rem 1.3rem 1.3rem;display:flex;flex-direction:column;flex:1}
.prop-price{font:700 1.35rem/1.2 var(--serif);color:var(--ink);margin:0 0 .35rem}
.prop-price small{font:500 .85rem var(--sans);color:var(--muted)}
.prop-price.big{font-size:clamp(1.6rem,1.3rem + 1vw,2.2rem);margin:0;white-space:nowrap}
.prop-title{font:600 1.05rem/1.35 var(--sans);margin:0 0 .4rem}
.prop-title a{color:var(--text);text-decoration:none}
.prop-title a::after{content:"";position:absolute;inset:0}
.prop-card{position:relative}
.prop-loc{display:flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.92rem;margin:0 0 .8rem}
.prop-specs{display:flex;flex-wrap:wrap;gap:.4rem 1rem;padding-top:.8rem;border-top:1px solid var(--line);margin-top:auto!important;font-size:.9rem;color:var(--text)}
.prop-specs li{display:flex;align-items:center;gap:.35rem}
.prop-specs .ico{color:var(--sand)}
.prop-type{margin:.7rem 0 0;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-2);font-weight:700}
.results{color:var(--muted);margin:1rem 0}
.pager{display:flex;gap:.4rem;justify-content:center;margin-top:2rem}
.pager a{min-width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.pager a[aria-current]{background:var(--ink);color:#fff;border-color:var(--ink)}
.empty{text-align:center;padding:3rem 1.5rem;border:1.5px dashed var(--sand-2);border-radius:var(--r);background:var(--cream)}
.empty .ico{color:var(--sand);margin-bottom:.8rem}
.empty p{max-width:560px;margin:0 auto 1.2rem;color:var(--muted)}

/* Ficha de propiedad */
.prop-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.4rem}
.prop-head h1{font-size:clamp(1.7rem,1.3rem + 1.6vw,2.6rem);margin-bottom:.3rem}
.gallery{margin-bottom:2.2rem}
.g-main{position:relative;margin:0;border-radius:18px;overflow:hidden;background:var(--sand-3);aspect-ratio:16/9}
.g-main img{width:100%;height:100%;object-fit:cover}
.g-count{position:absolute;right:14px;bottom:14px;background:rgba(1,39,42,.8);color:#fff;padding:.3rem .7rem;border-radius:999px;font-size:.85rem}
.g-count:empty{display:none}
.g-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;margin-top:.7rem!important}
.g-thumbs a{display:block;border-radius:10px;overflow:hidden;aspect-ratio:4/3;outline-offset:-3px;opacity:.75;transition:opacity .2s}
.g-thumbs a:hover,.g-thumbs a[aria-current]{opacity:1;box-shadow:0 0 0 3px var(--gold)}
.g-thumbs img{width:100%;height:100%;object-fit:cover}
.prop-layout{display:grid;grid-template-columns:1fr 380px;gap:3rem;align-items:start}
.prop-main h2{font-size:1.5rem;margin-top:2rem}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem}
.facts li{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.7rem;padding:1rem;background:var(--cream);border-radius:12px}
.facts .ico{grid-row:span 2;color:var(--gold-2);align-self:center}
.facts span{font-size:.8rem;color:var(--muted)}
.facts strong{color:var(--ink)}
.loc-box{display:flex;gap:1rem;padding:1.4rem;border-radius:var(--r);background:var(--cream);border:1px solid var(--line)}
.loc-box .ico{color:var(--gold-2)}
.loc-box p:last-child{margin:0}
.sticky{position:sticky;top:110px}
.form-card h2{margin-bottom:.3rem}
.aside-ctas{display:grid;gap:.6rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}

/* Formularios */
.form{display:grid;gap:1rem}
.field{display:grid;gap:.35rem;margin:0}
.field>span,.field legend{font-weight:600;font-size:.92rem;color:var(--ink)}
.field-err{color:var(--err);font-size:.86rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.check{display:flex;gap:.6rem;align-items:flex-start;font-size:.93rem;cursor:pointer}
.checks{border:0;padding:0;margin:0;display:grid;gap:.5rem}
.checks legend{margin-bottom:.4rem}
.checks-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.alert{padding:.9rem 1.1rem;border-radius:var(--r-sm);margin:0 0 1rem;border:1px solid}
.alert-ok{background:#EAF6EF;border-color:#B8E0C9;color:#14532D}
.alert-err{background:#FDECEA;border-color:#F5C2BE;color:#7F1D1D}
.alert-info{background:#EEF5F4;border-color:#C6DCD8;color:var(--ink)}
.alert-warn{background:#FFF6E0;border-color:#F1D79A;color:#6B4A00}

/* Guía */
.guide{display:grid;grid-template-columns:280px 1fr;gap:3rem;align-items:start}
.guide-toc{position:sticky;top:110px}
.guide-toc ol{margin:0;padding-left:1.2em;display:grid;gap:.45rem;font-size:.95rem}
.notice{display:flex;gap:.8rem;padding:1.1rem 1.3rem;border-radius:var(--r);background:#FFF6E0;border:1px solid #F1D79A;margin-bottom:2rem}
.notice p{margin:0}
.notice .ico{color:var(--warn)}
.guide-sec{padding-bottom:1.6rem;margin-bottom:1.6rem;border-bottom:1px solid var(--line)}
.guide-sec h2{display:flex;align-items:center;gap:.8rem;font-size:1.55rem}
.g-n{display:inline-flex;flex:none;width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--gold);align-items:center;justify-content:center;font-size:1rem}
.prose{max-width:72ch}
.prose ul,.prose ol{margin:0 0 1em}
.prose li{margin-bottom:.35em}
.prose h2{font-size:1.45rem;margin-top:1.8rem}
.prose h3{font-size:1.15rem;margin-top:1.4rem}
.legal h2{font-size:1.35rem}

/* Banda / CTA */
.band{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.band h2{margin-bottom:.3rem}
.band p{margin:0;color:var(--muted);max-width:640px}
.band-ctas{display:flex;gap:.7rem;flex-wrap:wrap}
.band-card{margin-top:1rem}

/* Sobre nosotros y contacto */
.about-logo{text-align:center;margin-bottom:2.5rem}
.about-logo img{width:min(420px,80%)}
.about-card p{color:var(--muted);margin:0}
.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:2.5rem;align-items:start}
.contact-info{display:grid;gap:1rem}
.person-card{display:flex;align-items:center;gap:1rem;padding:1.2rem}
.person-card p{margin:0}
.avatar{width:56px;height:56px;border-radius:50%;background:var(--ink);color:var(--gold);display:inline-flex;align-items:center;justify-content:center;font:700 1.5rem var(--serif);flex:none}
.person-name{font-weight:700;color:var(--ink)}
.contact-list{display:grid;gap:.8rem}
.contact-list li{display:flex;gap:.9rem;align-items:center;padding:1rem;border-radius:12px;background:var(--cream)}
.contact-list div{display:grid}
.contact-list a{font-weight:600;color:var(--ink);text-decoration:none;font-size:1.05rem}
.contact-list span.muted{font-size:.82rem}
.ci-ico{display:inline-flex;width:44px;height:44px;border-radius:12px;background:#fff;color:var(--gold-2);align-items:center;justify-content:center;flex:none}

/* Área de clientes */
.auth{background:var(--cream)}
.auth-in{display:grid;grid-template-columns:1fr .8fr;gap:2.5rem;align-items:center}
.auth-card{max-width:520px;width:100%;justify-self:end}
.auth-card.wide{max-width:640px}
.auth-aside{padding:2rem;border-radius:20px;background:var(--ink);color:#C9D8D5}
.auth-aside h2{color:#fff}
.auth-aside .ico{color:var(--gold)}
.acc-bar{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem;padding-bottom:1.2rem;border-bottom:1px solid var(--line)}
.acc-bar h1{margin:0}
.acc-nav{display:flex;gap:1.2rem;align-items:center}
.acc-nav a{text-decoration:none;font-weight:600;color:var(--ink)}
.acc-nav a[aria-current]{color:var(--gold-2)}
.acc-nav form{margin:0}
.acc-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:1.5rem;align-items:start}
.narrow-card{max-width:720px}
.svc-pick{display:grid;gap:.4rem}
.svc-pick a{display:flex;align-items:center;gap:.7rem;padding:.7rem .8rem;border-radius:10px;color:var(--ink);text-decoration:none}
.svc-pick a:hover{background:var(--cream)}
.svc-pick span{flex:1}
.svc-pick .ico:first-child{color:var(--gold-2)}
.table-wrap{overflow-x:auto}
.table{width:100%;border-collapse:collapse;font-size:.93rem}
.table th{text-align:left;font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:.6rem .7rem;border-bottom:1px solid var(--line);white-space:nowrap}
.table td{padding:.75rem .7rem;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:hover td{background:#FCFAF6}
.pill{display:inline-block;padding:.25rem .65rem;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap;background:#EEF1F1;color:var(--ink)}
.pill-received{background:#E7F0FB;color:#1D4F8F}
.pill-in_progress{background:#FFF1D6;color:#8A5300}
.pill-pending_docs{background:#FDE7E4;color:#9A2A1E}
.pill-completed,.pill-published{background:#E3F4EA;color:#1C6A41}
.pill-draft{background:#EEF1F1;color:#4A5859}
.pill-sold,.pill-rented{background:var(--sand-3);color:#6B5238}
.req-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.req-head h2{margin:0}
.dl{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1.5rem;margin:0 0 1.5rem}
.dl div.full{grid-column:1/-1}
.dl dt{font-size:.8rem;color:var(--muted)}
.dl dd{margin:0;font-weight:550;overflow-wrap:anywhere}
.msgs{display:grid;gap:.7rem;margin-bottom:1.4rem!important}
.msg{padding:.9rem 1.1rem;border-radius:12px;background:var(--cream);border:1px solid var(--line)}
.msg p{margin:0}
.msg-meta{font-size:.82rem;color:var(--muted);margin-bottom:.3rem!important}
.msg-client{background:#fff;border-color:#C6DCD8;margin-left:2rem}
.msg-staff{margin-right:2rem}
.msg-system{background:transparent;border-style:dashed;font-size:.9rem}
.msg-internal{background:#FFF6E0;border-color:#F1D79A}
.docs{display:grid;gap:.6rem}
.docs li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .8rem;border-radius:10px;background:var(--cream)}
.docs a{font-weight:600;overflow-wrap:anywhere}
.docs .ico{color:var(--gold-2)}
.docs form{margin-left:auto}

/* Pre-footer y footer */
.pre-footer{background:linear-gradient(120deg,var(--ink) 0%,var(--ink-3) 100%);color:#D6E2E0}
.pre-footer-in{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding-top:3rem;padding-bottom:3rem;flex-wrap:wrap}
.pre-footer h2{color:#fff;margin-bottom:.3rem}
.pre-footer p{margin:0;max-width:620px;color:#C3D3D0}
.pre-footer-ctas{display:flex;gap:.8rem;flex-wrap:wrap}
.site-footer{background:var(--cream);border-top:4px solid var(--gold);font-size:.94rem}
.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1.15fr;gap:2.5rem;padding-top:3.6rem;padding-bottom:2.8rem}
.site-footer h3{font:700 .8rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:1rem}
.site-footer ul{display:grid;gap:.5rem}
.site-footer a{color:var(--text);text-decoration:none}
.site-footer a:hover{color:var(--gold-2);text-decoration:underline}
.f-logo img{width:220px;margin-bottom:1rem}
.f-brand p{color:var(--muted);max-width:360px}
.f-social{display:flex;gap:.5rem}
.soc{display:inline-flex;width:40px;height:40px;border-radius:50%;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);color:var(--ink)}
.f-contact li a,.f-contact li>span,.f-person{display:flex;align-items:center;gap:.55rem}
.f-contact .ico{color:var(--gold-2)}
.f-muted{color:var(--muted)}
.f-contact .btn{margin-top:1rem;color:var(--ink)}
.f-contact .btn:hover{color:#fff;text-decoration:none}
.f-langs{display:flex;flex-wrap:wrap;gap:.5rem}
.f-langs a{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .7rem;border:1px solid var(--line);border-radius:999px;background:#fff}
.footer-bottom{border-top:1px solid var(--line);background:#F4EDE2}
.footer-bottom-in{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:1.1rem;padding-bottom:1.1rem;font-size:.86rem;color:var(--muted)}
.footer-bottom p{margin:0}
.footer-bottom nav{display:flex;gap:1.2rem;flex-wrap:wrap}
.footer-bottom a{color:var(--muted)}
.wa-float{position:fixed;right:20px;bottom:20px;z-index:40;width:58px;height:58px;border-radius:50%;background:var(--wa);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(31,168,85,.45);transition:transform .2s}
.wa-float:hover{transform:scale(1.07);color:#fff}

/* Responsive */
@media (max-width:1320px){
  .main-nav ul a{padding:.5rem .45rem;font-size:.9rem}
  .main-nav{gap:.8rem}
  .brand img{width:160px}
}
@media (max-width:1180px){
  .nav-toggle{display:inline-flex}
  .main-nav{position:fixed;inset:0 0 0 auto;top:0;width:min(360px,88vw);background:#fff;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:5.5rem 1.4rem 2rem;gap:1rem;box-shadow:-20px 0 60px rgba(0,0,0,.18);transform:translateX(105%);transition:transform .3s;z-index:70;overflow-y:auto;visibility:hidden}
  .main-nav.open{transform:none;visibility:visible}
  .main-nav ul{flex-direction:column}
  .main-nav ul a{padding:.85rem .6rem;font-size:1.05rem;border-bottom:1px solid var(--line);border-radius:0}
  .main-nav ul a[aria-current]{box-shadow:inset 3px 0 0 var(--gold)}
  .header-tools{margin-left:auto;position:relative;z-index:80}
  body.nav-open{overflow:hidden}
  body.nav-open::after{content:"";position:fixed;inset:0;background:rgba(1,39,42,.45);z-index:45}
  .hero-in,.why,.prop-layout,.two-col,.contact-grid,.guide,.auth-in,.acc-grid{grid-template-columns:1fr}
  .guide-toc,.sticky,.hire-card{position:static}
  .auth-card{justify-self:stretch;max-width:none}
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
  .topbar-tag,.tb-mail span{display:none}
  .topbar-in{justify-content:center}
  .header-in{min-height:70px}
  .brand img{width:136px}
  .grid-3,.grid-4,.steps,.dept-grid,.why-grid,.row2,.feat-list,.dl,.search-hero{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:2rem}
  .hero-search{padding:1.2rem}
  .card{padding:1.2rem}
  .msg-client{margin-left:.8rem}.msg-staff{margin-right:.8rem}
  .prop-head{align-items:flex-start}
  .wa-float{width:52px;height:52px;right:14px;bottom:14px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.topbar,.site-header,.pre-footer,.site-footer,.wa-float,.prop-aside{display:none}}
.topbar .wrap,.site-header .wrap{max-width:1400px}
.g-main{max-height:620px}
.g-main{width:100%}
@media (max-width:1180px){.site-header{backdrop-filter:none;background:#fff}}
