/* Terrenos del Sur public site: the paper-file look (approved design in Gollo/design-reference).
   Ground = kraft measured grid, sheet = cream card, ink hairlines, tilted white-border prints.
   Barlow Condensed (labels, headings) + JetBrains Mono (numbers). Mobile first. No framework. */
:root{
  color-scheme:light;
  --ground:#EDE4D0;--sheet:#FBF9F4;--kraft:#B8955A;--ink:#23211C;--ink2:#5E584C;--hl:#CFC5AF;--wash:#F3EDDF;--creek:#2F5F8F;--c-int:#7A5A2B;
  --sans:'Barlow Condensed','Helvetica Neue',Helvetica,Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background-color:var(--ground);
  background-image:linear-gradient(rgba(184,149,90,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(184,149,90,.2) 1px,transparent 1px),linear-gradient(rgba(184,149,90,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(184,149,90,.09) 1px,transparent 1px);
  background-size:40px 40px,40px 40px,8px 8px,8px 8px;
  color:var(--ink);font:500 18px/1.45 var(--sans);overflow-x:hidden}
[hidden]{display:none!important}
button,input,select{font:inherit;color:inherit;border-radius:0}
button{cursor:pointer}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p,dl,dd{margin:0}
a{color:var(--ink)}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.skip{position:absolute;left:12px;top:-64px;background:var(--ink);color:var(--sheet);padding:12px 16px;z-index:200;transition:top .2s}
.skip:focus{top:max(12px,env(safe-area-inset-top,0px))}
.wrap{max-width:1200px;margin:0 auto;padding:16px max(16px,env(safe-area-inset-right,0px)) 72px max(16px,env(safe-area-inset-left,0px))}
.lab,.cl{font:500 11px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}
.muted{font:400 13px/1.4 var(--mono);color:var(--ink2)}

@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes settle{from{opacity:0;transform:translateY(-16px) rotate(calc(var(--r,0deg) * 2.2))}}
@keyframes prog{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---- masthead ---- */
.mast{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:space-between;gap:0;margin:0 0 14px;border:2px solid var(--ink);background:var(--sheet)}
.mast-brand{display:flex;flex-direction:column;justify-content:center;padding:8px 14px 7px;text-decoration:none;min-height:56px}
.mast-brand b{font:700 clamp(24px,6vw,32px)/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;margin-top:3px}
.mast-logo{display:block;height:44px;width:auto;max-width:100%}
@media(max-width:639px){.mast-brand{padding:6px 14px}.mast-logo{height:52px;aspect-ratio:312/130}}
.mast-nav{display:flex;margin-left:auto}
.mast-link{display:flex;align-items:center;padding:0 16px;min-height:56px;border-left:2px solid var(--ink);font:700 15px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--ink);background:var(--sheet);transition:background .2s}
.mast-link:hover{background:var(--kraft)}
.mast-link[aria-current]{box-shadow:inset 0 -5px 0 var(--kraft)}
.mast-link--pri{background:var(--ink);color:var(--sheet)}
.mast-link--pri:hover{background:var(--kraft);color:var(--ink)}
@media(max-width:639px){.mast-nav{width:100%;margin-left:0;flex-wrap:wrap}.mast-link{flex:1 1 auto;justify-content:center;padding:0 6px;letter-spacing:.08em;font-size:14px;border-top:2px solid var(--ink)}.mast-link:first-child{border-left:0}}

/* ---- title block ---- */
.tb{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ink);border:2px solid var(--ink);animation:rise .5s var(--ease) backwards}
.tb>div{background:var(--sheet);padding:8px 10px 7px;min-width:0}
.tv{font:700 20px/1.15 var(--sans);text-transform:uppercase;letter-spacing:.06em;margin-top:3px;overflow-wrap:anywhere}
.tvm{font:700 17px/1.2 var(--mono);letter-spacing:.02em;font-variant-numeric:tabular-nums;margin-top:3px;overflow-wrap:anywhere}
.tb h1{font:700 clamp(21px,5.6vw,34px)/1.05 var(--sans);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;overflow-wrap:anywhere}
.tbp,.tbt,.tbb,.tbd{grid-column:span 2}
.gollo-home .tbn{grid-column:span 2} /* v0.8.0: on the 2-column mobile grid the Listings cell was alone and left a black gap */
.crumb{margin:0 0 10px;font:700 14px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.crumb a{text-decoration:none}
.draft-note{margin:0 0 10px;padding:8px 10px;border:1.5px dashed var(--ink);background:var(--wash);font:500 13px/1.4 var(--mono)}
.lede{margin:14px 0 18px;max-width:62ch;font:500 20px/1.4 var(--sans);color:var(--ink2)}

/* ---- panels (sheets) ---- */
.sheets{counter-reset:n;display:grid;gap:20px}
/* v0.8.0 protection: a faint diagonal watermark (the viewer's email + date, an inline SVG in --wm) over what a subscriber / member unlocked,
   and the calm note shown when a daily / monthly limit is used up. The overlay never takes a click. */
.wm{position:relative}
.wm::before{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;background-image:var(--wm);background-repeat:repeat;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.quota-note{margin:0 0 10px;padding:9px 12px;border:1.5px solid var(--ink);background:var(--wash);font:500 14px/1.4 var(--mono)}
.pr-ref{display:block;margin-top:6px;font:700 11px var(--mono);letter-spacing:.14em;color:var(--ink2)}
.pn{position:relative;background:var(--sheet);border:1.5px solid var(--ink);padding:16px;min-width:0}
.hoja{counter-increment:n;scroll-margin-top:calc(66px + env(safe-area-inset-top,0px));animation:rise .5s var(--ease) calc(.15s + var(--n,0)*60ms) backwards}
.hoja>h2{font:700 21px/1.1 var(--sans);text-transform:uppercase;letter-spacing:.14em;display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px}
.hoja>h2::before{content:counter(n);flex:none;width:26px;height:26px;border:1.5px solid var(--ink);border-radius:50%;display:grid;place-items:center;font:500 12px/1 var(--mono);letter-spacing:0}
.hoja>h2 small{font:400 12px/1 var(--mono);letter-spacing:.08em;color:var(--ink2);text-transform:none}
.cm{position:absolute;width:14px;height:14px;border:0 solid var(--ink)}
.cm:nth-of-type(1){left:-7px;top:-7px;border-width:2px 0 0 2px}.cm:nth-of-type(2){right:-7px;top:-7px;border-width:2px 2px 0 0}
.cm:nth-of-type(3){left:-7px;bottom:-7px;border-width:0 0 2px 2px}.cm:nth-of-type(4){right:-7px;bottom:-7px;border-width:0 2px 2px 0}
.cols2{display:grid;gap:18px 30px}

/* ---- sheet-tab strip: sticky, follows the scroll ---- */
.idxw{align-self:start;height:auto;max-height:80px;position:sticky;top:env(safe-area-inset-top,0px);z-index:30;margin:14px 0 20px;animation:rise .5s var(--ease) .1s backwards}
.idx{position:relative;display:flex;overflow-x:auto;overflow-y:hidden;background:var(--sheet);border:2px solid var(--ink);scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scroll-padding-inline:30px;overscroll-behavior-x:contain;max-height:80px}
/* v0.9.2: whole tabs snap into place, and a soft edge fade on whichever side still has tabs off-screen (classes set by assets/site.js) */
.idxw::before,.idxw::after{content:"";position:absolute;top:2px;bottom:2px;width:30px;z-index:2;pointer-events:none;opacity:0;transition:opacity .2s}
.idxw::before{left:2px;background:linear-gradient(to right,var(--sheet) 20%,rgba(251,249,244,0))}
.idxw::after{right:2px;background:linear-gradient(to left,var(--sheet) 20%,rgba(251,249,244,0))}
.idxw.fl::before,.idxw.fr::after{opacity:1}
.idx::-webkit-scrollbar{display:none}
.sx{scroll-snap-align:start;flex:0 0 auto;display:flex;align-items:center;gap:8px;min-height:48px;padding:0 15px;border-right:1px solid var(--ink);text-decoration:none;font:700 15px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--sheet);transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease)}
.sx:last-child{border-right:0}
.sx b{flex:none;width:22px;height:22px;border:1.5px solid currentColor;border-radius:50%;display:grid;place-items:center;font:500 11px/1 var(--mono);letter-spacing:0}
.sx[aria-current=true]{background:var(--ink);color:var(--sheet);box-shadow:inset 0 -5px 0 var(--kraft)}
.sx.pull{transform:translateY(-3px)}

/* ---- summary ---- */
.price{font:700 clamp(34px,10vw,56px)/1 var(--mono);letter-spacing:-.04em;margin:6px 0 2px;overflow-wrap:anywhere}
.price small{font:500 15px/1 var(--mono);letter-spacing:0}
.psub{font:500 15px/1.4 var(--mono)}
.dash{border:0;border-top:1px dashed var(--ink);margin:14px 0}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.tags span{font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--ink);padding:8px 10px}
.tags .okt{background:var(--ink);color:var(--sheet)}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;min-height:48px;padding:0 20px;font:700 16px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:2px solid var(--ink);background:var(--sheet);color:var(--ink);cursor:pointer}
.btn.pri{background:var(--ink);color:var(--sheet)}
.btn:hover{background:var(--kraft);border-color:var(--ink);color:var(--ink)}
.gh{font:700 16px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;margin:22px 0 4px}
.gh.first{margin-top:0}
.prose{font-size:19px;min-width:0}
.prose p{max-width:62ch}.prose p+p{margin-top:12px}
.prose a{overflow-wrap:anywhere}

/* ---- spec lists ---- */
.spec{display:grid;grid-template-columns:1fr}
.spec>div{display:grid;grid-template-columns:minmax(0,112px) minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px dotted var(--ink);align-items:baseline}
.spec>div:last-child{border-bottom:0}
.spec dt{font:500 11px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2)}
.spec dd{font:600 19px/1.25 var(--sans);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

/* ---- photos: prints laid on the drawing ---- */
.gal-p{padding-bottom:22px}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px 14px;padding:4px 8px 6px}
.pr{margin:0;min-width:0}
.pr.lead{grid-column:1/-1}
.dim{display:flex;align-items:center;height:26px;color:var(--ink);margin:0 0 8px}
.dim svg{display:block;overflow:visible}
.dim .dar{flex:none;width:12px;height:18px}
.dim .dln{flex:1;height:10px;min-width:0;width:0}
.dim .dln line{stroke:var(--ink);stroke-width:1.2;stroke-dasharray:1;animation:draw .8s .15s var(--ease) backwards}
.dim .dar path{animation:fade .3s .6s backwards}
.dim b{flex:none;font:500 13px/1 var(--mono);letter-spacing:.04em;padding:0 8px;white-space:nowrap;animation:fade .4s .7s backwards}
.sw,.vw{position:relative;display:block;width:100%;text-decoration:none;color:inherit;filter:drop-shadow(0 3px 4px rgba(35,33,28,.32)) drop-shadow(0 1px 1px rgba(35,33,28,.2));transform:rotate(var(--r,0deg));animation:settle .5s cubic-bezier(.2,.9,.25,1) calc(.05s + var(--i,0)*70ms) both}
.sw{cursor:zoom-in}
.st{position:relative;display:block;background:#fff;padding:9px 9px 30px}
.st img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;outline:1px solid rgba(35,33,28,.2);background:#e6e0d0}
.lead .st img{aspect-ratio:16/10}
.fl{position:absolute;left:9px;right:9px;bottom:8px;display:flex;justify-content:space-between;gap:6px;font:500 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}
.fl span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vw{background:#fff;padding:9px 9px 30px}
.vb{position:relative;display:block;width:100%;background:#000}
.vb img{display:block;width:100%;opacity:.85;aspect-ratio:16/8;object-fit:cover}
.vnone{display:block;aspect-ratio:16/8}
.vb .pl{position:absolute;left:50%;top:50%;width:60px;height:60px;margin:-30px 0 0 -30px;background:var(--sheet);border:1px solid var(--ink);display:grid;place-items:center}
.vw:hover .pl{background:var(--kraft)}

/* ---- lightbox ---- */
.lb{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:rgba(35,33,28,.88);padding:16px;cursor:zoom-out}
.lb .st{width:min(94vw,860px);padding:10px;cursor:default}
.lb .st img{aspect-ratio:auto;max-height:80vh;object-fit:contain;background:#eee}
.lbx,.lbp,.lbn{position:absolute;width:48px;height:48px;border:0;background:var(--sheet);font:500 26px/1 var(--mono);color:var(--ink);display:grid;place-items:center;padding:0}
.lbx{top:max(10px,env(safe-area-inset-top,0px));right:max(10px,env(safe-area-inset-right,0px))}
.lbp,.lbn{top:50%;margin-top:-24px}
.lbp{left:max(8px,env(safe-area-inset-left,0px))}.lbn{right:max(8px,env(safe-area-inset-right,0px))}
.lbx:hover,.lbp:hover,.lbn:hover{background:var(--kraft)}

/* ---- placeholder panels (map, documents) ---- */
.mapbox{border:1px solid var(--ink);background-color:var(--sheet);background-image:linear-gradient(rgba(184,149,90,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(184,149,90,.22) 1px,transparent 1px);background-size:40px 40px}
.ghm{display:grid;place-items:center;min-height:150px;text-align:center;font:500 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);padding:16px}
.ghm svg{width:30px;height:30px;margin:0 auto 6px;display:block}

/* ---- financing ---- */
.finh{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:12px}
.finh strong{font:700 24px/1.1 var(--sans);letter-spacing:.06em;text-transform:uppercase}
details.fin{border:1px solid var(--ink);background:var(--sheet)}
details.fin>summary{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;min-height:56px;padding:14px 14px;cursor:pointer}
details.fin>summary::-webkit-details-marker,details.sch>summary::-webkit-details-marker{display:none}
details.fin>summary h3{margin:0;flex:1;font:700 18px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.chev{flex:0 0 auto;width:24px;height:24px;transition:transform .25s var(--ease)}
details[open]>summary .chev{transform:rotate(180deg)}
details.fin>summary .terms{flex:1 0 100%;font:500 12.5px/1.5 var(--mono);color:var(--ink2);font-variant-numeric:tabular-nums}
.fbody{padding:4px 14px 16px;border-top:1px dotted var(--ink)}
.fh{font:700 16px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;margin:18px 0 6px}
.chart{border:1px solid var(--ink);padding:10px 6px 8px;margin-bottom:18px;background:var(--sheet)}
.chart h3{font:700 16px var(--sans);letter-spacing:.1em;text-transform:uppercase;margin:2px 8px 6px}
svg.cs{display:block;width:100%;height:auto;touch-action:manipulation}
svg.cs text{font-family:var(--mono);font-size:10.5px;fill:var(--ink2);stroke:none}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:6px 8px 0;font:400 12px var(--mono)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:13px;height:13px;display:inline-block}
.rd{margin:8px 8px 2px;font:500 12.5px/1.5 var(--mono);min-height:40px}
.ccap{margin:4px 8px 0;font:400 12px/1.4 var(--mono);color:var(--ink2)}
details.sch>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:6px 12px;border:1px solid var(--ink);background:var(--sheet);cursor:pointer;font:500 13px var(--mono);letter-spacing:.04em}
.tw{max-height:340px;overflow:auto;border:1px solid var(--ink);border-top:0;-webkit-overflow-scrolling:touch}
.tw table{border-collapse:collapse;width:100%;min-width:500px;font:400 12.5px var(--mono);font-variant-numeric:tabular-nums}
.tw th,.tw td{padding:8px 9px;text-align:right;border-bottom:1px solid var(--hl);white-space:nowrap}
.tw th{position:sticky;top:0;background:var(--ink);color:var(--sheet);font-weight:700;font-size:12px;z-index:1}
.tw th:first-child,.tw td:first-child,.tw th:nth-child(2),.tw td:nth-child(2){text-align:left}
.tw tr.bl td{background:#E8EEF3;font-weight:700}
.tw tr.bl td:first-child{border-left:5px solid var(--creek)}
.disc{margin:14px 0 0;font:400 12.5px/1.5 var(--mono);color:var(--ink2);border-top:1px solid var(--hl);padding-top:10px}

/* ---- home: slideshow ---- */
.hero{margin:22px 0 20px;animation:rise .5s var(--ease) .1s backwards}
.hero-grid{display:grid;gap:18px}
.hero-print{padding:6px 8px}
.hero .print{filter:drop-shadow(0 3px 4px rgba(35,33,28,.32)) drop-shadow(0 1px 1px rgba(35,33,28,.2));transform:rotate(var(--r,0deg))}
.slides{position:relative;aspect-ratio:16/10;background:#e6e0d0;outline:1px solid rgba(35,33,28,.2)}
.slide{position:absolute;inset:0;opacity:0;transition:opacity .7s var(--ease)}
.slide.on{opacity:1}
.slide img{width:100%;height:100%;object-fit:cover;aspect-ratio:auto;outline:0}
.hero .fl b{font-weight:700;color:var(--ink)}
.caps{display:flex;flex-direction:column;gap:8px;min-width:0}
.cap{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 10px;align-items:center;padding:9px 12px;border:1.5px solid var(--ink);background:var(--sheet);text-decoration:none;transition:background .2s}
.cap b{font:700 20px/1.1 var(--mono);letter-spacing:-.02em}
.cap span{grid-column:1;font:500 11px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.cap i{grid-column:2;grid-row:1/3;font-style:normal;font:700 20px/1 var(--mono)}
.cap:not(.on){display:none}
.cap.on{background:var(--wash);box-shadow:inset 0 -4px 0 var(--kraft)}
.hctl{display:flex;align-items:center;gap:8px}
.hp,.hn{flex:none;width:48px;height:48px;border:2px solid var(--ink);background:var(--sheet);display:grid;place-items:center;padding:0}
.hp:hover,.hn:hover{background:var(--kraft)}
.hp svg,.hn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:square}
.hbar{flex:1;height:6px;background:var(--hl);overflow:hidden}
.hbar i{display:block;height:100%;background:var(--ink);transform-origin:left;transform:scaleX(0)}

/* ---- home: finder (drawing controls) ---- */
.finder{padding:14px 14px 16px}
.finder .fh{margin:0 0 10px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px}
.fld{display:flex;flex-direction:column;gap:5px;min-width:0}
.fld select{width:100%;min-height:48px;padding:0 34px 0 10px;border:2px solid var(--ink);background:var(--sheet) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9l7 7 7-7' fill='none' stroke='%2323211C' stroke-width='2.6'/%3E%3C/svg%3E") no-repeat right 8px center/18px;font:600 17px/1.2 var(--sans);appearance:none;-webkit-appearance:none;text-overflow:ellipsis}
.finder-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:14px}
.togs{display:flex;flex-wrap:wrap;gap:8px}
.tog{position:relative;display:inline-flex}
.tog input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.tog span{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1.5px solid var(--ink);background:var(--sheet);font:500 13px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;transition:background .2s,color .2s}
.tog input:checked+span{background:var(--ink);color:var(--sheet);font-weight:700}
.tog input:focus-visible+span{outline:3px solid var(--ink);outline-offset:2px}
.finder-go{min-width:140px}
.rbar{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;justify-content:space-between;margin:16px 0 12px}
.rcount{font:500 14px/1.3 var(--mono)}
.clear{font:700 14px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}

/* ---- home: cards (sheets) ---- */
.grid{display:grid;grid-template-columns:1fr;gap:24px}
.card{position:relative;background:var(--sheet);border:1.5px solid var(--ink);transition:box-shadow .2s,transform .2s var(--ease)}
.card:hover{box-shadow:0 6px 16px rgba(35,33,28,.25);transform:translateY(-2px)}
.card.gone{display:none}
.card-link{display:block;text-decoration:none;color:inherit;padding:30px 14px 14px}
.card-no{position:absolute;left:14px;top:9px;font:500 11px/1 var(--mono);letter-spacing:.12em;color:var(--ink2)}
.card .print{display:block;position:relative;transform:rotate(var(--r,0deg));filter:drop-shadow(0 3px 4px rgba(35,33,28,.3)) drop-shadow(0 1px 1px rgba(35,33,28,.2));margin:2px 4px 16px}
.card .st img{aspect-ratio:4/3}
.noph{display:grid;place-items:center;aspect-ratio:4/3;background:repeating-linear-gradient(45deg,#E6E0D0 0 6px,#EFE9DB 6px 12px);font:500 12px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2)}
.chip{position:absolute;left:0;top:14px;background:var(--ink);color:var(--sheet);font:700 12px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:6px 9px}
.cb{display:block}
.cb>span,.cb>h3{display:block}
.card .pr{font:700 clamp(26px,7vw,32px)/1 var(--mono);letter-spacing:-.04em}
.card .t{font:700 20px/1.1 var(--sans);text-transform:uppercase;letter-spacing:.05em;margin-top:8px;overflow-wrap:anywhere}
.card .land{margin-top:6px;font:500 14px/1.3 var(--mono)}
.card .spec{margin-top:2px;font:400 12px/1.4 var(--mono);color:var(--ink2);display:block}
.card .tags{display:flex;margin-top:10px;gap:6px}
.card .tags span{font-size:11px;padding:6px 8px}
.empty{margin:20px 0;text-align:center}
.empty p{font:600 20px/1.3 var(--sans);margin-bottom:12px}
.more{display:flex;flex-direction:column;align-items:center;gap:10px;margin:26px 0 6px}
.note{font:400 12.5px/1.4 var(--mono);color:var(--ink2)}
.err{margin:12px 0;padding:10px 12px;border:1.5px solid var(--ink);background:var(--wash);font:500 13px/1.4 var(--mono)}

/* ---- footer ---- */
.foot{margin-top:34px;border-top:2px solid var(--kraft);padding:14px 0 0;font:400 13px/1.5 var(--mono);color:var(--ink2)}
.foot-g{display:grid;gap:16px}
.foot p{margin:0 0 4px}
.foot .lab{margin-bottom:4px}
.foot-logo{display:block;height:40px;width:auto;max-width:100%;margin:0 0 8px}
.foot a{color:var(--ink)}
.foot-note{max-width:48ch}

@media(min-width:640px){
  .fgrid{grid-template-columns:repeat(3,1fr)}
  .grid{grid-template-columns:repeat(2,1fr)}
  .foot-g{grid-template-columns:2fr 1fr 1fr}
}
@media(min-width:900px){
  .wrap{padding-top:28px}
  .tb{grid-template-columns:repeat(12,1fr)}
  .tbp{grid-column:span 4}.tbt{grid-column:span 8}
  .tbn{grid-column:span 3}.tbh{grid-column:span 2}.tbd{grid-column:span 4}.tbb{grid-column:span 3}
  .gollo-home .tbn{grid-column:span 2}.gollo-home .tbd{grid-column:span 5}.gollo-home .tbb{grid-column:span 5}
  .tv{font-size:22px}
  .cols2{grid-template-columns:1fr 1fr}
  .pgrid{grid-template-columns:repeat(3,1fr)}
  .spec--cols{grid-template-columns:1fr 1fr;column-gap:30px}
  .sx{flex:1 0 auto;justify-content:center}
  .hero-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}
  .fgrid{grid-template-columns:repeat(6,1fr)}
  .grid{grid-template-columns:repeat(3,1fr)}
}
/* ---- access levels (v0.7.0): locked rows, style F "Paper", the Acceso comparison ---- */
.cta{border:1.5px solid var(--ink);background:var(--wash);padding:12px 14px;margin-top:14px}
.cta p{margin:0;font:500 15px/1.4 var(--mono)}
.cta .btn{margin-top:10px;width:100%;text-align:center;line-height:1.2;padding:10px 14px;min-height:48px}
.cmp{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,58px);border:2px solid var(--ink);background:var(--sheet)}
.cmp>*{display:flex;align-items:center;justify-content:center;padding:8px 2px;border-bottom:1px dotted var(--ink)}
.cmp .rl{justify-content:flex-start;padding-left:10px;font:600 17px/1.2 var(--sans);text-align:left}
.cmp .ch{background:var(--ink);color:var(--sheet);font:700 11px/1.1 var(--sans);letter-spacing:.04em;text-transform:uppercase;border-bottom:0;min-height:40px}
.cmp .ch.c1,.cmp .ch.c2,.cmp .ch.c3{border-left:1px solid var(--sheet)}
.ck{display:block;width:7px;height:14px;border:solid var(--ink);border-width:0 3px 3px 0;transform:rotate(40deg) translate(-1px,-2px)}
.no{display:block;width:12px;height:2px;background:var(--hl)}
body.t-pub .cmp .c1:not(.ch),body.t-sub .cmp .c2:not(.ch){background:var(--wash)}
body.t-pub .cmp .ch.c1,body.t-sub .cmp .ch.c2{background:var(--kraft);color:var(--ink)}
.cmpb{display:grid;gap:12px;margin-top:16px}
.cmpb .cta{margin:0}
.lk{position:relative;margin-top:12px}
.lkin{position:relative}
.lr{display:grid;gap:6px;padding:10px 0;border-bottom:1px dotted var(--ink)}
.ln{display:flex;align-items:center;gap:8px;font:500 11px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2)}
.lt{margin-left:auto;flex:none;font:500 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--ink2);padding:3px 5px;white-space:nowrap}
/* F paper: a printed form; the list fades down, the data fades to the right */
.ls-f .lkin{background:#FFFFFF;border:1px solid #CFC5AF;border-radius:0;padding:14px 16px 0;box-shadow:0 1px 1px rgba(35,33,28,.14),0 2px 5px rgba(35,33,28,.10),0 12px 24px -8px rgba(35,33,28,.30)}
.ls-f .lkph{display:block;margin:0;font:500 11px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);padding-bottom:9px;border-bottom:1px solid var(--ink)}
.ls-f .lrs{padding-bottom:4px} /* v0.9.0: only the value bars fade; every label stays at full contrast */
.ls-f .lr{grid-template-columns:minmax(0,46fr) minmax(0,54fr);gap:0 12px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(35,33,28,.16)}
.ls-f .ln{flex-wrap:wrap;gap:4px 8px;color:var(--ink);font-weight:700}
.ls-f .lt{margin-left:0;color:var(--ink2)}
.ls-f .lw{display:block;min-width:0;overflow:hidden;white-space:nowrap;font:500 14px/20px var(--mono);letter-spacing:.02em;color:var(--ink);-webkit-mask-image:linear-gradient(to right,#000 0%,rgba(0,0,0,.35) 35%,transparent 75%);mask-image:linear-gradient(to right,#000 0%,rgba(0,0,0,.35) 35%,transparent 75%);user-select:none;-webkit-user-select:none}
.doclist{margin:0 0 10px;padding-left:20px;font:600 18px/1.5 var(--sans)}
.alertbtn{background:none;border:0;padding:0;margin-left:14px;color:var(--ink);text-decoration:underline;cursor:pointer}

/* ---- subscribe panel: a slide-up sheet ---- */
.subp{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-end;justify-content:center;background:rgba(35,33,28,.5)}
.subb{position:relative;width:100%;max-width:520px;max-height:92vh;overflow:auto;background:var(--sheet);border:2px solid var(--ink);border-bottom:0;padding:22px 20px calc(24px + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 30px rgba(35,33,28,.35);animation:subup .32s var(--ease) both;outline:0}
@keyframes subup{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.subb h2{margin:4px 0 8px;font:700 28px/1.1 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.subb .subl{margin:0 0 14px;font:500 15px/1.45 var(--mono);color:var(--ink2)}
.subb label{display:block;margin:12px 0 4px;font:700 14px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.subb label .opt{font:400 12px var(--mono);letter-spacing:0;text-transform:none;color:var(--ink2)}
.subb input[type=email],.subb input[type=text]{display:block;width:100%;min-height:48px;padding:10px 12px;font:500 16px/1.3 var(--mono);color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:0}
.subb .subc{display:flex;align-items:flex-start;gap:10px;margin:14px 0 6px;font:500 15px/1.4 var(--sans);letter-spacing:.02em;text-transform:none}
.subb .subc input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--ink)}
.subb .subh{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.subb .subn{margin:6px 0 14px;font:400 12px/1.5 var(--mono);color:var(--ink2)}
.subb .btn{width:100%}
.subb .subm{min-height:1.4em;margin:10px 0 0;font:500 13px/1.4 var(--mono)}
.subb .subm.err{color:#8F2A22}
.subx{position:absolute;right:8px;top:8px;width:44px;height:44px;background:none;border:0;font:400 30px/1 var(--sans);color:var(--ink)}
.subb [data-sub-view=done] .btn{margin-top:6px}
@media(min-width:640px){.subp{align-items:center}.subb{border-bottom:2px solid var(--ink)}}

/* ---- membership page (the application form, restyled) ---- */
.gm-apply{max-width:560px;margin:0}
.gm-apply .gm-form label{display:block;margin:0 0 16px}
.gm-apply .gm-form input[type=text],.gm-apply .gm-form input[type=email],.gm-apply .gm-form input[type=tel],.gm-apply .gm-form select{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:10px 12px}
.gm-apply .gm-form select{padding-right:34px}
.gm-apply .gm-row{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
@media(max-width:480px){.gm-apply .gm-row{grid-template-columns:1fr}}
.gm-apply .gm-check{display:flex;align-items:flex-start;gap:10px;font-weight:500}
.gm-apply .gm-check input{flex:none;width:22px;height:22px;margin:2px 0 0;accent-color:var(--ink)}
.gm-apply .gm-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.gm-apply .gm-btn{margin-top:6px;cursor:pointer}.gm-apply .gm-btn[disabled]{opacity:.6;cursor:default}
.gm-apply .gm-msg{min-height:1.4em;font:500 14px/1.4 var(--mono)}
.gm-apply .gm-form h3{margin:0 0 8px;font:700 24px/1.1 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.gm-apply .gm-form label{font:700 14px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.gm-apply .gm-form input[type=text],.gm-apply .gm-form input[type=email],.gm-apply .gm-form input[type=tel],.gm-apply .gm-form select{min-height:48px;border:2px solid var(--ink);border-radius:0;background:#fff;font:500 16px/1.3 var(--mono);color:var(--ink)}
.gm-apply .gm-check{font:500 15px/1.4 var(--sans);letter-spacing:.02em;text-transform:none}
.gm-apply .gm-lead,.gm-apply .gm-hint{font:400 13px/1.5 var(--mono);color:var(--ink2)}
.gm-apply .gm-btn{min-height:48px;padding:0 22px;border:2px solid var(--ink);border-radius:0;background:var(--ink);color:var(--sheet);font:700 16px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.gm-apply .gm-btn:hover{background:var(--kraft);color:var(--ink)}
.gm-apply .gm-done{font:700 22px/1.2 var(--sans);letter-spacing:.04em}

/* ---- printable listing (?lindero_print=1) ---- */
.gollo-print{background:#fff}
.pr-wrap{max-width:780px;margin:0 auto;padding:20px 18px 40px}
.pr-logo{display:block;height:36px;width:auto;margin:0 0 6px}
.pr-head h1{margin:6px 0 2px;font:700 34px/1.05 var(--sans);letter-spacing:.05em;text-transform:uppercase}
.pr-sub{margin:0 0 14px;font:500 14px var(--mono);color:var(--ink2)}
.pr-ph{display:grid;grid-template-columns:2fr 1fr;gap:8px;margin:10px 0 16px}
.pr-ph img{width:100%;height:100%;object-fit:cover;border:1px solid var(--ink)}
.pr-ph img.big{grid-row:span 2}
.pr-key{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:12px 0;margin-bottom:12px}
.pr-key b{display:block;font:700 26px/1.1 var(--sans);letter-spacing:.04em}
.pr-key i{display:block;font:400 12px var(--mono);font-style:normal;color:var(--ink2)}
.pr-tags{font:500 13px var(--mono);color:var(--ink2)}
.gollo-print .noprint{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px}
.gollo-print .noprint .btn{flex:1 1 200px;text-align:center}
.gollo-print h2{margin:20px 0 6px;font:700 20px/1.1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.pr-foot{margin-top:24px;padding-top:10px;border-top:1px solid var(--ink);font:400 11px/1.5 var(--mono);color:var(--ink2);overflow-wrap:anywhere}
@media print{
  @page{margin:14mm}
  .noprint{display:none!important}
  body.gollo-print{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pr-wrap{padding:0;max-width:none}
}

@media(min-width:900px){
  .cmp{grid-template-columns:minmax(0,1fr) repeat(3,120px)}
  .cmp .ch{font-size:14px;letter-spacing:.1em}
  .cmpb{grid-template-columns:1fr 1fr}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .sw,.vw{animation:none}
  html{scroll-behavior:auto}
}

/* ======================= v0.9.0: public-side polish ======================= */

/* ---- title block: one "Drawn by" (the masthead no longer repeats it); phone collapses to three rows ---- */
.tbm{display:none}
@media(max-width:639px){
  .gollo-single .tb{grid-template-columns:auto 1fr}
  .gollo-single .tbn,.gollo-single .tbm{grid-column:auto}
  .gollo-single .tbh,.gollo-single .tbd,.gollo-single .tbb{display:none}
  .gollo-single .tbm{display:block}
  .gollo-single .tbm .tvm{font-size:15px;line-height:1.3}
  .gollo-single .tbp .tv,.gollo-single .tbn .tvm{font-size:16px}
  .gollo-single .tb h1{font-size:clamp(20px,5.8vw,28px)}
  .gollo-home .tb{grid-template-columns:auto 1fr}
  .gollo-home .tbn,.gollo-home .tbd{grid-column:auto}
  .gollo-home .tbb{display:none}
}
@media(min-width:640px){
  .tb{grid-template-columns:repeat(12,1fr)}
  .tbp{grid-column:span 4}.tbt{grid-column:span 8}
  .tbn{grid-column:span 3}.tbh{grid-column:span 2}.tbd{grid-column:span 4}.tbb{grid-column:span 3}
  .gollo-home .tbn{grid-column:span 2}.gollo-home .tbd{grid-column:span 5}.gollo-home .tbb{grid-column:span 5}
}

/* ---- Resumen: the lead print sits beside / above the price so a photo shows in the first screen ---- */
.sumtop{display:grid;gap:16px 30px;align-items:start}
.sumprint{margin:0;padding:2px 6px 4px}
.sumprint .dim{margin-bottom:6px}
.sumprose{margin-top:22px;padding-top:16px;border-top:1px dashed var(--ink)}
@media(min-width:700px){.sumtop.has-print{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}
@media(max-width:699px){.sumprint .st img{aspect-ratio:3/2}}

/* ---- photos: captions wrap to two lines on a narrow print, FIG. n stays on its own line ---- */
.pgrid .pr:not(.lead) .st{padding-bottom:11px}
.pgrid .pr:not(.lead) .fl{position:static;margin-top:9px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:3px;line-height:1.25}
.pgrid .pr:not(.lead) .fl span:last-child{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow:hidden;text-overflow:clip;max-width:100%}

/* ---- locked rows: label at full contrast, only the value bar fades; the level is named once in the header ---- */
.ls-f .lkin{padding-bottom:6px}
.ls-f .ln{display:block;color:var(--ink);font:700 12px/1.3 var(--mono);letter-spacing:.08em}
.ls-f .lw{opacity:.8}
.lkl{display:inline-flex;align-items:center;min-height:48px;padding:0;border:0;background:none;color:var(--ink);font:700 15px/1.25 var(--sans);letter-spacing:.04em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px;text-align:left;cursor:pointer}
.lkl:hover{background:var(--wash)}

/* ---- Acceso: the 15-row table is folded away; only the viewer's next step is open ---- */
.cmpalt{margin:10px 0 0;font:500 14px/1.4 var(--mono);color:var(--ink2)}
.cmpalt a{color:var(--ink);display:inline-block;padding:10px 0}
details.cmpd{margin-top:14px;border:1px solid var(--ink);background:var(--sheet)}
details.cmpd>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:6px 14px;cursor:pointer;font:700 17px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase}
details.cmpd>summary::-webkit-details-marker{display:none}
details.cmpd[open]>summary{border-bottom:1px dotted var(--ink)}
details.cmpd .cmp{border:0}

/* ---- the single bottom pill: your next step (phone / tablet; members never get one) ---- */
.pill{display:none}
@media(max-width:899px){
  :root{--pillh:76px}
  .pill{display:block;position:fixed;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:max(10px,env(safe-area-inset-bottom,0px));z-index:40;filter:drop-shadow(0 4px 10px rgba(35,33,28,.35));opacity:0;visibility:hidden;transform:translateY(24px);pointer-events:none;transition:opacity .22s var(--ease),transform .22s var(--ease),visibility 0s .22s}
  .pill.on{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
  .pill .btn{width:100%;min-height:52px;text-align:center;line-height:1.15;padding:8px 14px}
  .gollo-single .wrap{padding-bottom:calc(var(--pillh) + 12px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:reduce){.pill{transition:none;transform:none}}

/* ---- Mapa: the plano (members) and the zone locator (everyone) ---- */
.map{display:block;width:100%;height:auto}
.map text{font-family:var(--mono);fill:var(--ink);paint-order:stroke;stroke:var(--sheet);stroke-width:4px;stroke-linejoin:round}
.map .lot{fill:none;stroke:var(--ink);stroke-width:4;stroke-linejoin:round;stroke-dasharray:1;animation:draw 1.1s .1s var(--ease) backwards}
.map .lotfill{fill:rgba(35,33,28,.09);animation:fade .5s 1s backwards}
.map .mon{fill:var(--sheet);stroke:var(--ink);stroke-width:2}
.map .road{fill:none;stroke:#E4D6B6;stroke-width:18;stroke-linejoin:round;stroke-linecap:round}
.map .roadc{fill:none;stroke:var(--sheet);stroke-width:1.5;stroke-dasharray:10 8}
.map .serv{fill:none;stroke:var(--ink);stroke-width:3;stroke-dasharray:9 6;stroke-linejoin:round}
.map .band{fill:none;stroke:rgba(47,95,143,.10);stroke-width:40;stroke-linejoin:round}
.map .bandh{fill:none;stroke-width:40}
.map .hl{stroke:var(--creek);stroke-width:1.4;opacity:.5}
.map .creek{fill:none;stroke:var(--creek);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.map .sb{fill:var(--ink)}.map .sbw{fill:var(--sheet);stroke:var(--ink);stroke-width:1.5}
.map .crop{fill:none;stroke:var(--ink2);stroke-width:2}
.map .dimg path{fill:none;stroke:var(--ink);stroke-width:1.3}
.map.zone .land{fill:var(--wash);stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round}
.map.zone .rt{fill:var(--ink2)}
.map.zone .rl{fill:var(--ink2);font-weight:500}
.map.zone .zr{fill:rgba(35,33,28,.14);stroke:var(--ink);stroke-width:1.2}
.map.zone .zc{fill:var(--ink)}
.map.zone .zt{font-weight:700}
.map.zone a.zl{cursor:pointer}
.map.zone a.zl:hover .zr,.map.zone a.zl:focus-visible .zr{fill:var(--kraft)}
.mapnote{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:space-between;font:400 12px/1.4 var(--mono);color:var(--ink2);margin-top:10px}
.mapkey{display:flex;flex-wrap:wrap;gap:4px 14px}
.mk{display:inline-flex;align-items:center;gap:6px}
.mk i{display:inline-block;width:20px;height:0;border-top:3px solid var(--ink)}
.mk-road i{border-top:8px solid #E4D6B6}
.mk-serv i{border-top:3px dashed var(--ink)}
.mk-creek i{border-top:4px solid var(--creek)}
.zonebox{max-width:480px}
.zonehome{margin:26px 0 0}
.zonehome>h2.zh2{font:700 21px/1.1 var(--sans);text-transform:uppercase;letter-spacing:.14em;margin-bottom:14px}
.zonegrid{display:grid;gap:16px 28px;align-items:start}
.zlist{list-style:none;margin:12px 0 0;padding:0;columns:2;column-gap:20px}
.zlist li{display:flex;justify-content:space-between;align-items:center;gap:10px;break-inside:avoid;border-bottom:1px dotted var(--ink)}
.zlist a{display:block;flex:1;padding:12px 0;font:600 18px/1.2 var(--sans)}
.zlist b{font:700 15px/1 var(--mono)}
@media(min-width:900px){.zonegrid{grid-template-columns:minmax(0,480px) 1fr}.zlist{columns:1}}

/* ---- Documentos (members): a file list ---- */
.dlist{list-style:none;margin:0;padding:0}
.dlist li{display:flex;align-items:center;gap:12px;min-height:62px;padding:8px 0;border-bottom:1px dotted var(--ink)}
.dlist li:last-child{border-bottom:0}
.dic{flex:none;width:26px;height:30px;color:var(--ink)}
.dnm{flex:1;min-width:0;display:flex;flex-direction:column;font:600 19px/1.2 var(--sans)}
.dnm em{margin-top:2px;font:400 12px/1.3 var(--mono);font-style:normal;color:var(--ink2)}
.dact{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 2px;font:700 14px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.dact:hover{background:var(--wash)}
.dact svg{width:15px;height:15px;flex:none}
.dnm em{white-space:nowrap}
.sumtop .sumprint{grid-column:auto}
.planlay{display:block}
.planobox .map{max-height:70vh;margin:0 auto}
.planside{margin-top:16px;border-top:1px dotted var(--ink);padding-top:12px}
.planside .lab{margin-top:10px}.planside .lab:first-child{margin-top:0}
.planfacts{margin:6px 0 0}.planfacts>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dotted var(--ink)}
.planfacts dt{font:400 12px/1.4 var(--mono);color:var(--ink2);text-transform:uppercase;letter-spacing:.06em}.planfacts dd{margin:0;font:700 16px/1.3 var(--mono);text-align:right}
.planside .mapkey{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.planside .mk{align-items:flex-start;font:500 13px/1.35 var(--mono)}.planside .mk i{margin-top:.55em;flex:none}
@media(min-width:900px){.planlay.has-side{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:0 28px;align-items:start}.planside{margin-top:0;border-top:0;padding-top:0}}
@media(min-width:900px){.cmpb{grid-template-columns:minmax(0,680px)}}
.maplock .lk{margin-top:0}
@media(min-width:900px){.mapgrid{display:grid;grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:0 28px;align-items:start}}
@media(max-width:899px){.maplock{margin-top:14px}}
.gm-apply .gm-lead{margin:0 0 18px}

/* ======================= v0.9.2: compact locks, financing line, filter fold, small-screen fixes ======================= */

/* ---- locked groups: one compact paper card. Header row = level, count and the ONE call-to-action link; labels in a two-column grid,
        each with a short faded bar and no value. The Acceso sheet and the pill hold the full buttons. ---- */
.ls-f .lkin{padding:12px 14px 4px}
.ls-f .lkph{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 14px;padding-bottom:2px}
.lkt{flex:1 1 auto;padding:4px 0 0;text-align:left}
.ls-f .lkph .lkl,.lkmini .lkl{min-height:40px;font:700 13px/1.2 var(--sans);letter-spacing:.1em;white-space:nowrap}
.ls-f .lrs{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;padding:0 0 2px}
.ls-f .lr{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:3px;padding:8px 0 7px;border-bottom:1px solid rgba(35,33,28,.16);min-width:0}
.ls-f .ln{font:700 11px/1.25 var(--mono);letter-spacing:.06em;overflow-wrap:anywhere}
.ls-f .lw{display:block;width:100%;text-align:left;font:500 10px/10px var(--mono);letter-spacing:0;max-width:78%;opacity:.55}
.lkmini{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 14px;margin:12px 0 0;padding-top:2px;border-top:1px dashed var(--ink);font:500 11px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}
.lkmini .lkt{color:var(--ink)}
@media(max-width:639px){.cm{width:10px;height:10px}.cm:nth-of-type(1){left:-5px;top:-5px}.cm:nth-of-type(2){right:-5px;top:-5px}.cm:nth-of-type(3){left:-5px;bottom:-5px}.cm:nth-of-type(4){right:-5px;bottom:-5px}}
@media(max-width:479px){
  .ls-f .lkin{padding:10px 12px 2px}
  .ls-f .lrs{column-gap:14px}
  .ls-f .lr{padding:7px 0 6px}
  .ls-f .ln{font-size:10.5px;letter-spacing:.04em}
}

/* ---- financing: the payment line under the collapsed terms ---- */
details.fin>summary .terms.pay{margin-top:-2px;font-weight:700;color:var(--ink)}

/* ---- Datos at phone width: a wider label column, smaller label type - no three-line labels ---- */
@media(max-width:480px){
  .spec>div{grid-template-columns:minmax(0,43%) minmax(0,1fr);gap:8px}
  .spec dt{font-size:10.5px;letter-spacing:.05em}
  .spec dd{font-size:18px}
}

/* ---- home filters on a phone: one "Filter" button with the active count; desktop is unchanged ---- */
.fbtn{display:none}
@media(max-width:639px){
  .finder{padding:8px}
  .finder .fh{display:none}
  .fbtn{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:0 14px;border:2px solid var(--ink);background:var(--sheet);font:700 17px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-align:left}
  .fbtn .chev{margin-left:auto}
  .finder.open .fbtn{background:var(--wash)}
  .finder.open .fbtn .chev{transform:rotate(180deg)}
  .fcnt{min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:var(--ink);color:var(--sheet);font:700 13px/24px var(--mono);letter-spacing:0;text-align:center}
  .js .finder:not(.open) .fsub{display:none}
  .finder.open .fsub{margin-top:14px;padding:0 4px 6px}
}

/* ======================= v0.10.1: iPad review fixes ======================= */

/* ---- masthead: INTERMEDIARIOS is an outbound link (outlined, arrow); only the page you are on is filled ---- */
.mast-link--pri{background:var(--sheet);color:var(--ink);box-shadow:inset 0 0 0 0 var(--ink)}
.mast-link--pri::after{content:"\2192";display:inline-block;margin-left:.5em;transform:rotate(-45deg);font:700 1.1em/1 var(--sans);letter-spacing:0}
.mast-link--pri:hover{background:var(--kraft);color:var(--ink)}
.mast-link[aria-current]{background:var(--ink);color:var(--sheet);box-shadow:inset 0 -5px 0 var(--kraft)}
.mast-link--pri[aria-current]{background:var(--ink);color:var(--sheet)}

/* ---- the plano: the drawing never grows past ~680 px (its text scales with it), and from 640 px the key sits in a right-hand column ---- */
.planobox .map,.mapgrid .map{max-width:680px}
@media(min-width:640px){
  .planlay.has-side{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:0 24px;align-items:start}
  .planlay.has-side .planside{margin-top:0;border-top:0;padding-top:0}
  .mapgrid{display:grid;grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:0 24px;align-items:start}
  .maplock{margin-top:0}
}
@media(min-width:900px){.planlay.has-side{grid-template-columns:minmax(0,1fr) 250px;gap:0 28px}.mapgrid{gap:0 28px}}
.map .nb,.map .nbs path{vector-effect:non-scaling-stroke}

/* ---- Datos: a note under the value goes on its own smaller line; at phone width the value lines up with the label's first line ---- */
.spec dd .dnote{display:block;margin-top:2px;font:400 12px/1.35 var(--mono);letter-spacing:.01em;color:var(--ink2)}

/* ---- locked values: flat, square-ended ink strips (a redaction), never gradient skeleton bars; labels stay fully readable ---- */
.ls-f .lw{display:block;width:auto;max-width:78%;height:9px;overflow:hidden;white-space:pre;font:500 10px/9px var(--mono);letter-spacing:0;color:transparent;background:var(--ink);border-radius:0;opacity:1;-webkit-mask-image:none;mask-image:none;-webkit-user-select:none;user-select:none}
.ls-f .lr{align-items:flex-start}

/* ---- member Mapa: satellite / map / drawing (assets/lotmap.js) ---- */
.lotmap{min-width:0}
.mapbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.mapmodes{display:inline-flex;border:2px solid var(--ink);background:var(--sheet)}
.mapmodes button{min-height:48px;min-width:48px;padding:0 16px;border:0;border-right:1px solid var(--ink);background:transparent;color:var(--ink);font:700 15px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.mapmodes button:last-child{border-right:0}
.mapmodes button[aria-pressed=true]{background:var(--ink);color:var(--sheet)}
.mapmodes button:focus-visible,.mapdl:focus-visible{outline:3px solid var(--creek);outline-offset:2px}
.mapdl{min-height:48px;font-size:14px}
.lm-google{display:none;position:relative;height:min(68vh,560px);min-height:320px;border:1px solid var(--ink);background:#1d2a1e}
.lm-canvas{position:absolute;inset:0;width:100%;height:100%}
.lm-load{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:16px;text-align:center;color:#EDE4D0;font:600 15px/1.4 var(--mono)}
.lotmap.lm-sat .lm-google,.lotmap.lm-map .lm-google{display:block}
.lotmap.lm-sat .lm-drawing,.lotmap.lm-map .lm-drawing{display:none}
.lm-msg,.lm-src{margin:10px 0 0;font:400 12px/1.4 var(--mono);color:var(--ink2)}
.lm-msg{padding:8px 10px;border:1px dashed var(--ink);background:var(--wash);color:var(--ink)}
@media print{
  .lotmap .lm-google,.lotmap .mapbar,.lotmap .lm-msg{display:none!important}
  .lotmap .lm-drawing{display:block!important}
}

/* ---- language switch (EN | ES) in the masthead; the note shown when a translation is still pending ---- */
.mast-lang{display:flex;align-items:center;gap:4px;padding:0 12px;min-height:56px;border-left:2px solid var(--ink);font:700 15px/1 var(--sans);letter-spacing:.1em;background:var(--sheet);color:var(--ink2)}
.mast-lang a{display:flex;align-items:center;justify-content:center;min-width:34px;min-height:44px;color:var(--ink);text-decoration:none}
.mast-lang a:hover{background:var(--kraft)}
.mast-lang a[aria-current]{box-shadow:inset 0 -4px 0 var(--ink)}
@media(max-width:639px){.mast-lang{flex:1 1 100%;justify-content:center;border-left:0;border-top:2px solid var(--ink);min-height:48px}}
.tr-note{margin:0 0 12px;padding:8px 12px;border:1px dashed var(--ink2);background:var(--wash);font:600 14px/1.3 var(--sans);color:var(--ink2)}
.card .prsub{display:block;margin-top:4px;font:500 12px/1.35 var(--mono);opacity:.72}

/* ---- Lotes sheet (0.16.0): the lots of a whole-sale listing, and the links between a sale's listings ---- */
.lotes{width:100%;border-collapse:collapse;margin:8px 0 6px;font:500 15px/1.35 var(--mono)}
.lotes th,.lotes td{padding:10px 8px;border-bottom:1.5px solid var(--hl);text-align:left;vertical-align:top}
.lotes thead th{font:500 11px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);border-bottom:2px solid var(--ink)}
.lotes tbody th{font:700 17px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.lotes .num{font-variant-numeric:tabular-nums}
.lotes .dnote{display:block;margin-top:4px;font:500 12px/1.35 var(--mono);opacity:.72}
.lotelink{display:block;margin-top:6px;font:700 14px/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase}
.lotes-total{margin:6px 0 0;font:700 15px/1.3 var(--mono)}
.lotes-cross{margin:14px 0 0;padding:12px;border:1.5px dashed var(--ink);background:var(--wash)}
.lotes-cross p{margin:0 0 8px;font:500 16px/1.4 var(--sans)}
.lotes-cross .btn{width:100%}
@media(max-width:480px){.lotes th,.lotes td{padding:9px 5px;font-size:14px}}

/* ---- price note: the exchange-rate detail sits in a small info icon (hover / keyboard focus / tap) ---- */
.info{position:relative;display:inline-block;vertical-align:middle}
.infob{display:inline-grid;place-items:center;width:28px;height:28px;margin:-6px 0 -6px 2px;padding:0;background:none;border:0;color:#002B7F;cursor:pointer;-webkit-tap-highlight-color:transparent}
.infob svg{width:18px;height:18px;display:block}
.infob:hover{color:#CE1126}
.infotip{position:absolute;z-index:40;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);width:max-content;max-width:min(260px,70vw);padding:8px 10px;background:#0E1F47;color:#fff;font:500 13px/1.35 var(--mono);letter-spacing:0;text-align:left;box-shadow:0 6px 18px rgba(14,31,71,.3);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s}
.infotip::after{content:"";position:absolute;left:50%;top:100%;margin-left:-6px;border:6px solid transparent;border-top-color:#0E1F47}
.info:hover .infotip,.info:focus-within .infotip,.info.open .infotip{opacity:1;visibility:visible}
@media(max-width:480px){.info{position:static}.infotip{left:16px;right:16px;bottom:auto;top:auto;transform:none;width:auto;max-width:none;margin-top:6px;position:absolute}.infotip::after{display:none}}

/* ---- description + the note card (a sticky note on the right, below the text on a phone) ---- */
.sumdesc{display:grid;gap:22px 34px;margin-top:22px;padding-top:16px;border-top:1px dashed var(--ink);align-items:start}
.sumdesc .sumprose{margin:0;padding:0;border:0;min-width:0}
.sumdesc .prose p{max-width:none}
@media(min-width:820px){
  .sumdesc.has-note{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}
  .sumdesc.nodesc.has-note{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}
  .sumdesc.nodesc .notecard{grid-column:2}
  .notecard{position:sticky;top:calc(96px + env(safe-area-inset-top,0px))}
}
.notecard{--paper:#FFF4B8;--navy:#0E1F47;--flag:#002B7F;--red:#CE1126;position:relative;margin:6px 0 4px;padding:30px 20px 22px;color:var(--navy);
  background:linear-gradient(135deg,transparent 0 calc(100% - 26px),rgba(14,31,71,.16) calc(100% - 26px) 100%),var(--paper);
  border-top:10px solid var(--flag);box-shadow:0 1px 0 rgba(14,31,71,.25),0 10px 22px -8px rgba(14,31,71,.38);transform:rotate(-.8deg);transform-origin:50% 0;transition:transform .25s var(--ease)}
.notecard::before{content:"";position:absolute;top:-17px;left:50%;width:64px;height:20px;margin-left:-32px;background:var(--red);opacity:.92;transform:rotate(-2deg)}
.notecard::after{content:"";position:absolute;right:0;bottom:0;width:26px;height:26px;background:linear-gradient(135deg,#E9DC94 0 50%,transparent 50%);box-shadow:-2px -2px 4px rgba(14,31,71,.12)}
.notecard:focus-within,.notecard:hover{transform:rotate(0)}
@media(prefers-reduced-motion:reduce){.notecard{transition:none}}
.noteform{display:block}
.nh{font:700 26px/1.05 var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--flag)}
.nsub{margin-top:6px;font:500 16px/1.3 var(--sans);color:var(--navy)}
.nref{display:inline-block;margin:10px 0 4px;padding:2px 8px;border:1.5px solid var(--red);color:var(--red);font:700 12px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.nl{display:block;margin-top:12px;font:700 12px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--flag)}
.ni{display:block;width:100%;margin-top:4px;min-height:48px;padding:10px 4px;font:500 16px/1.4 var(--mono);color:var(--navy);background:transparent;border:0;border-bottom:2px solid var(--navy);border-radius:0;outline:0}
.ni:focus{border-bottom-color:var(--red);background:rgba(255,255,255,.45)}
.ni:focus-visible{outline:0;box-shadow:0 2px 0 var(--red)}
.nt{resize:vertical;min-height:112px;line-height:28px;padding-top:2px;background-image:repeating-linear-gradient(to bottom,transparent 0 27px,rgba(0,43,127,.28) 27px 28px);background-attachment:local}
.nhp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.nsend{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:16px;padding:0 18px;background:var(--navy);color:#fff;border:2px solid var(--navy);font:700 17px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.nsend:hover{background:var(--red);border-color:var(--red)}
.nsend:disabled{opacity:.6;cursor:default}
.nmsg{min-height:1.4em;margin-top:10px;font:500 14px/1.4 var(--mono);color:var(--navy)}
.nmsg.err{color:var(--red)}
.nmsg.ok{color:var(--flag);font-weight:700}
.noteform.done .nl,.noteform.done .ni,.noteform.done .nsend{display:none}
.cta .ctah{display:block}.cta .ctat{display:block;margin-top:4px}
