/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ── Tokens ── */
:root{
  --ink:#1A1714;--dark:#2B2620;--muted:#7A7168;--mid:#C8BFB0;
  --warm:#EDE8DF;--cream:#F7F4EF;--white:#FFFFFF;
  --accent:#8B6F47;--accent-l:#C4A882;--accent-d:#6A5235;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost','Segoe UI',system-ui,sans-serif;
  --s1:.5rem;--s2:1rem;--s3:1.5rem;--s4:2rem;--s6:3rem;--s8:4rem;
  --mw:540px;--px:1.25rem;--rsm:3px;--rmd:6px;
  --ease:cubic-bezier(.25,.46,.45,.94);--dur:.65s;
}

/* ── Base ── */
html{font-size:15px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--sans);font-weight:300;line-height:1.7;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;padding-bottom:4.5rem}
body.lb-open{overflow:hidden}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--rsm)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1!important;transform:none!important}}
h1,h2,h3,h4{font-family:var(--serif);font-weight:300;line-height:1.15}
p{max-width:65ch}
a{color:inherit;text-underline-offset:3px}
img{display:block;max-width:100%;height:auto}
ul,ol{list-style:none}
address{font-style:normal}

/* ── Utilidades ── */
.wrap{max-width:var(--mw);margin-inline:auto;padding-inline:var(--px)}
.divider{height:.5px;background:var(--warm);border:none;margin-block:var(--s3)}
.section-tag{display:flex;align-items:center;gap:.75rem;font-size:.6rem;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--s3)}
.section-tag::after{content:'';flex:1;height:.5px;background:var(--mid);opacity:.55}
.img-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;width:100%;height:100%;text-align:center;padding:var(--s2)}
.img-ph svg{opacity:.2}
.img-ph span{font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.brand-pill{display:inline-block;margin-top:.3rem;font-size:.6rem;font-weight:500;color:var(--muted);border:.5px solid var(--mid);border-radius:20px;padding:.1rem .5rem}
.btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:44px;padding:.875rem 1.25rem;border-radius:var(--rsm);font-family:var(--sans);font-size:.8rem;font-weight:400;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;border:none;cursor:pointer;transition:background-color .18s var(--ease),border-color .18s var(--ease)}
.btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.btn--primary{background:var(--accent);color:var(--cream);margin-bottom:.625rem}
.btn--primary:hover{background:var(--accent-d)}
.btn--primary:active{transform:scale(.99)}
.btn--secondary{background:transparent;color:var(--cream);border:.5px solid rgba(255,255,255,.18)}
.btn--secondary:hover{border-color:rgba(255,255,255,.4)}

/* ── Scroll reveal ── */
.reveal{opacity:0;transform:translateY(22px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);will-change:opacity,transform}
.reveal.is-visible{opacity:1;transform:none;will-change:auto}

/* ── Lightbox ── */
.lb-overlay{position:fixed;inset:0;z-index:1000;background:rgba(26,23,20,.96);display:flex;align-items:center;justify-content:center;padding:var(--s2);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s var(--ease)}
.lb-overlay.is-open{opacity:1;visibility:visible}
.lb-img-wrap{position:relative;max-width:min(90vw,860px);max-height:90vh;display:flex;align-items:center;justify-content:center}
#lb-img{max-width:100%;max-height:85vh;object-fit:contain;border-radius:var(--rsm);transform:scale(.92);transition:transform .3s var(--ease)}
.lb-overlay.is-open #lb-img{transform:scale(1.1)}
.lb-overlay.is-open[data-lb-type="planta"] #lb-img{transform:scale(1.75)}
.lb-overlay.is-open[data-lb-type="pano"] #lb-img{transform:scale(1.5)}
#lb-caption{position:absolute;bottom:-1.75rem;left:0;right:0;text-align:center;font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(247,244,239,.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-close{position:absolute;top:-2.75rem;right:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;color:rgba(247,244,239,.6);transition:color .18s}
.lb-close:hover{color:var(--cream)}
.lb-close svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round}
.lb-prev,.lb-next{position:fixed;top:50%;transform:translateY(-50%);width:44px;height:64px;display:flex;align-items:center;justify-content:center;background:rgba(26,23,20,.5);border:none;cursor:pointer;padding:0;color:rgba(247,244,239,.7);transition:background .18s,color .18s;z-index:1001;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.lb-prev{left:0;border-radius:0 4px 4px 0}
.lb-next{right:0;border-radius:4px 0 0 4px}
.lb-prev:hover,.lb-next:hover{background:rgba(26,23,20,.85);color:var(--cream)}
.lb-prev svg,.lb-next svg{width:22px;height:22px}
[data-lightbox]{cursor:zoom-in}

/* ── Hero ── */
.hero{background:var(--ink);color:var(--cream);min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
.hero__media{flex:1;min-height:56vw;background:var(--dark);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero__iso{position:absolute;top:1rem;left:-1rem;width:clamp(70px,15%,160px);height:auto;z-index:3;pointer-events:none}
.hero__media figcaption{position:absolute;bottom:0;left:0;right:0;padding:2rem var(--px) .75rem;background:linear-gradient(transparent,rgba(26,23,20,.6));font-size:.575rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(247,244,239,.7);z-index:2}
.hero__body{padding:var(--s6) var(--px)}
.hero__eyebrow{font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-l);margin-bottom:var(--s2);font-weight:400}
.hero__title{font-size:clamp(2.4rem,10vw,3.8rem);font-weight:300;letter-spacing:-.01em;color:var(--cream);margin-bottom:.35rem}
.hero__subtitle{font-family:var(--serif);font-size:1.1rem;font-style:italic;color:var(--mid);margin-bottom:var(--s6)}

/* Hero meta — 3 columnas × 2 filas */
.hero__meta{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding-top:var(--s3);border-top:.5px solid rgba(255,255,255,.1)}
.hero__meta>div{padding:var(--s2);border-right:.5px solid rgba(255,255,255,.08)}
.hero__meta>div:nth-child(3n+1){padding-left:0}
.hero__meta>div:nth-child(3n){border-right:none;padding-right:0}
.hero__meta>div:nth-child(n+4){border-top:.5px solid rgba(255,255,255,.08);padding-top:var(--s2)}
.hero__meta dt{font-size:.525rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem;font-weight:400}
.hero__meta dd{font-size:.95rem;font-weight:400;color:var(--cream);line-height:1.2}

/* ── Secciones ── */
.section{padding-block:var(--s8);border-bottom:.5px solid var(--warm)}
.section:last-of-type{border-bottom:none}

/* Concepto */
.concept__text{font-family:var(--serif);font-size:clamp(1.2rem,4.5vw,1.45rem);font-weight:300;line-height:1.65;color:var(--dark)}
.concept__text em{font-style:italic;font-weight:400;color:var(--ink)}

/* Renders */
.renders__stack{display:flex;flex-direction:column;gap:.625rem}
.renders__pair{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}
.render-box{background:var(--warm);border-radius:var(--rsm);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.render-box--tall{aspect-ratio:10/4}
.render-box--short{aspect-ratio:3/5}
.render-box__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.render-box figcaption{position:absolute;bottom:0;left:0;right:0;padding:1.5rem .75rem .5rem;background:linear-gradient(transparent,rgba(26,23,20,.5));font-size:.575rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(247,244,239,.8);z-index:2}

/* Plantas */
.plantas__grid{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}
.planta-card{background:var(--white);border:.5px solid var(--warm);border-radius:var(--rmd);overflow:hidden}
.planta-card__img{aspect-ratio:1;background:var(--warm);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.planta-card__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ease)}
.planta-card__img:hover img{transform:scale(1.03)}
.planta-card__body{padding:.75rem .875rem;border-top:.5px solid var(--warm)}
.planta-card__title{font-family:var(--sans);font-size:.8rem;font-weight:500;color:var(--ink);margin-bottom:.2rem}
.planta-card__desc{font-size:.7rem;color:var(--muted);line-height:1.45}

/* Personalización */
.custom__intro{font-size:.875rem;color:var(--muted);line-height:1.65;margin-bottom:var(--s3)}
.flex-grid{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}
.flex-card{background:var(--white);border:.5px solid var(--warm);border-radius:var(--rmd);overflow:hidden}
.flex-card__thumb{aspect-ratio:1/1;overflow:hidden;position:relative;background:var(--warm)}
.flex-card__thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ease)}
.flex-card__thumb:hover img{transform:scale(1.04)}
.flex-card__body{padding:1rem .875rem}
.flex-card__icon{width:32px;height:32px;background:var(--warm);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:.75rem}
.flex-card__icon svg{width:14px;height:14px;stroke:var(--accent);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.flex-card h3{font-family:var(--sans);font-size:.8rem;font-weight:500;color:var(--ink);margin-bottom:.25rem}
.flex-card p{font-size:.725rem;color:var(--muted);line-height:1.5}

/* Acabados */
.acabados__item{display:grid;grid-template-columns:6.5rem 1fr;gap:.875rem;padding-block:.875rem;border-bottom:.5px solid var(--warm);align-items:start}
.acabados__item:last-child{border-bottom:none}
.ac__label{font-size:.575rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:400;padding-top:.15rem;line-height:1.4}
.ac__desc{font-size:.8rem;color:var(--dark);line-height:1.5}
.acabados__note{font-size:.675rem;color:var(--muted);font-style:italic;margin-top:var(--s3);line-height:1.55}

/* Renders secundarios */
.sec-renders__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.sec-box{aspect-ratio:1;background:var(--warm);border-radius:var(--rsm);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem}
.sec-box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ease)}
.sec-box:hover img{transform:scale(1.05)}
.sec-box figcaption{font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);position:relative;z-index:1;text-align:center}
.sec-box:has(img) figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(26,23,20,.55));color:rgba(247,244,239,.8);padding:1rem .4rem .35rem;z-index:2}

/* Avance de obra */
.obra-section{padding-block:var(--s8);border-bottom:.5px solid var(--warm)}
.obra__intro{font-size:.875rem;color:var(--muted);line-height:1.65;margin-bottom:var(--s4)}
.obra-card{background:var(--white);border:.5px solid var(--warm);border-radius:var(--rmd);overflow:hidden}
.obra__gallery{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.obra__gallery-item{background:var(--warm);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:zoom-in}
.obra__gallery-item:first-child{grid-column:1/-1;aspect-ratio:16/9}
.obra__gallery-item:not(:first-child){aspect-ratio:4/3}
.obra__gallery-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ease)}
.obra__gallery-item:hover img{transform:scale(1.03)}
.obra-card__badge{position:absolute;top:.75rem;left:.75rem;z-index:2;background:rgba(26,23,20,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:var(--accent-l);font-size:.575rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:.3rem .6rem;border-radius:var(--rsm);border:.5px solid rgba(196,168,130,.3)}
.obra-card__body{padding:1rem 1rem 1.25rem;border-top:.5px solid var(--warm)}
.obra-card__label{font-size:.575rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:400;margin-bottom:.4rem}
.obra-card__desc{font-family:var(--serif);font-size:1rem;font-weight:300;line-height:1.55;color:var(--dark)}
.obra__progress{margin-top:var(--s3)}
.obra__progress-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.4rem}
.obra__progress-label{font-size:.575rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:400}
.obra__progress-pct{font-family:var(--serif);font-size:1.1rem;font-weight:300;color:var(--accent)}
.obra__bar-track{height:3px;background:var(--warm);border-radius:3px;overflow:hidden}
.obra__bar-fill{height:100%;background:var(--accent);border-radius:3px;width:0;transition:width 1.1s var(--ease)}
.obra__trust{display:flex;align-items:flex-start;gap:.625rem;margin-top:var(--s3);padding:.875rem 1rem;background:var(--warm);border-radius:var(--rsm);border-left:2px solid var(--accent)}
.obra__trust svg{width:14px;height:14px;flex-shrink:0;margin-top:.15rem;stroke:var(--accent);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.obra__trust p{font-size:.725rem;color:var(--muted);line-height:1.55;max-width:none}
.obra__trust strong{color:var(--dark);font-weight:500}

/* Precio */
.price-section{background:var(--ink);color:var(--cream);padding-block:var(--s8)}
.price-section .section-tag{color:var(--accent-l)}
.price-section .section-tag::after{background:rgba(255,255,255,.12)}
.price-section .divider{background:rgba(255,255,255,.08)}
.price__label{font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-l);font-weight:400;margin-bottom:.4rem}
.price__row{display:grid;grid-template-columns:1fr auto;align-items:end;gap:var(--s3);margin-bottom:var(--s3)}
.price__main{font-family:var(--serif);font-size:clamp(3rem,13vw,4.8rem);font-weight:300;line-height:1;letter-spacing:-.02em;color:var(--cream);margin-bottom:.35rem}
.price__curr{font-size:1.5rem;vertical-align:super;font-weight:300}
.price__note{font-size:.725rem;color:var(--muted);margin-top:.3rem}
.price__termination{text-align:right;padding:var(--s2);border:.5px solid rgba(196,168,130,.2);border-radius:var(--rsm);background:rgba(255,255,255,.04);flex-shrink:0}
.price__termination-label{font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.3rem}
.price__termination-value{font-family:var(--serif);font-size:1.2rem;font-weight:300;color:var(--mid);text-decoration:line-through;text-decoration-color:var(--accent-l);text-decoration-thickness:1.5px}
.price__termination-note{font-size:.55rem;color:var(--muted);display:block;margin-top:.2rem}
.price__tagline{font-family:var(--serif);font-size:clamp(1.8rem,7vw,2.8rem);font-weight:300;color:var(--cream);line-height:1.25;margin-top:.5rem;margin-bottom:var(--s2)}
.price__delivery{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-l)}
.price__cta{margin-top:var(--s4)}
.price__includes{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:var(--s3)}
.price__includes li{font-size:.8rem;color:rgba(247,244,239,.65);display:flex;align-items:flex-start;gap:.45rem;line-height:1.45}
.price__includes li::before{content:'—';color:var(--accent-l);flex-shrink:0;font-size:.7rem;margin-top:.1rem}
.price__scarcity{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-l);text-align:center;margin-top:var(--s6);padding:var(--s2);border:.5px solid rgba(196,168,130,.22);border-radius:var(--rsm)}

/* Contacto */
.contact-section{background:var(--ink);padding-bottom:var(--s8)}
.contact-section .wrap{text-align:center}
.contact__logo{width:300px;height:auto;margin-inline:auto;margin-bottom:var(--s3)}
.contact__details{font-size:.8rem;color:var(--muted);line-height:1.9;margin-bottom:var(--s6)}
.contact__details a{color:var(--accent-l);text-decoration:none;transition:color .18s var(--ease)}
.contact__details a:hover{color:var(--cream)}

/* Footer */
.footer{background:#111;padding:var(--s3) var(--px);text-align:center;font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.18)}

/* Sticky bar móvil */
.sticky-bar{position:fixed;bottom:0;left:0;right:0;padding:.625rem var(--px) calc(.625rem + env(safe-area-inset-bottom));background:rgba(26,23,20,.95);backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px);display:flex;gap:.625rem;z-index:200;border-top:.5px solid rgba(255,255,255,.07)}
.sticky-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.375rem;min-height:44px;padding:.7rem;border-radius:var(--rsm);font-family:var(--sans);font-size:.75rem;font-weight:400;letter-spacing:.05em;text-decoration:none;transition:opacity .18s}
.sticky-btn:active{opacity:.8}
.sticky-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sticky-btn--wa{background:var(--accent);color:var(--cream)}
.sticky-btn--call{background:transparent;color:var(--cream);border:.5px solid rgba(255,255,255,.2)}

/* Responsive */
@media(min-width:768px){
  :root{--mw:600px;--px:2rem}
  .sticky-bar{display:none}
  body{padding-bottom:0}
  .hero__body{padding:3rem 2rem 3.5rem}
}
@media(min-width:1024px){:root{--mw:640px}}

/* Print */
@media print{
  .sticky-bar,.lb-overlay{display:none}
  body{padding-bottom:0;background:#fff;color:#000}
  .hero{min-height:auto;page-break-after:avoid}
  .reveal{opacity:1!important;transform:none!important}
  a[href]::after{content:" (" attr(href) ")";font-size:.65em;color:#666}
}

/* ── Tarjeta de agente (agentes.html) ── */
.agent-footer{display:flex;align-items:center;gap:var(--s3);padding:var(--s4) var(--px);background:var(--ink);color:var(--cream)}
.agent-footer__logo{width:120px;height:auto;flex-shrink:0}
.agent-footer__divider{width:.5px;align-self:stretch;background:rgba(255,255,255,.15);flex-shrink:0}
.agent-footer__label{font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem}
.agent-footer__name{font-family:var(--serif);font-size:1.6rem;color:var(--cream);line-height:1.2}
.agent-footer__contact{font-size:.75rem;color:var(--muted);margin-top:.2rem}

/* ── Print optimizado para agentes.html ── */
@media print{
  .agent-footer{background:#f7f4ef!important;border-top:1px solid #ccc;page-break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .agent-footer__logo{filter:brightness(0);width:120px}
  .agent-footer__divider{background:#ccc}
  .agent-footer__name{color:#1A1714}
  .agent-footer__label,.agent-footer__contact{color:#7A7168}
  .price-section,.contact-section,.sticky-bar,.lb-overlay{display:none!important}
  .section,.obra-section{page-break-inside:avoid}
  .reveals{opacity:1!important;transform:none!important}
  a[href]::after{content:none}
}
