/*
Theme Name: Edificio Marcelina Pro V4
Theme URI: https://edificiosmarcelina.com/
Author: JPD Informática
Description: Tema WordPress editable para Edificio Marcelina. Estructura inmobiliaria profesional, responsive y con tratamiento de imágenes sin deformación.
Version: 4.0.0
Text Domain: edificio-marcelina-pro-v4
*/

:root{
  --em-bg:#fbf7f1;
  --em-soft:#f3ebe1;
  --em-card:#ffffff;
  --em-dark:#152026;
  --em-text:#2d3539;
  --em-muted:#687378;
  --em-sand:#c9a27b;
  --em-sand-dark:#9f7250;
  --em-line:rgba(21,32,38,.12);
  --em-shadow:0 22px 70px rgba(21,32,38,.10);
  --em-shadow-strong:0 34px 90px rgba(21,32,38,.18);
  --em-radius:30px;
  --em-max:1220px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  color:var(--em-text);
  background:var(--em-bg);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.admin-bar .em-site-header{top:32px;}
a{color:inherit;}
img{max-width:100%;height:auto;}

/* Header */
.em-site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(251,247,241,.90);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--em-line);
}
.em-header-inner{
  max-width:var(--em-max);
  margin:0 auto;
  padding:14px clamp(18px,4vw,36px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.em-brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:210px;}
.em-brand-mark{width:42px;height:42px;border-radius:15px;background:var(--em-dark);color:#fff;display:grid;place-items:center;font-weight:950;letter-spacing:-.08em;box-shadow:0 12px 30px rgba(21,32,38,.18);}
.em-brand-title{display:block;font-size:16px;font-weight:950;letter-spacing:-.035em;color:var(--em-dark);line-height:1.05;}
.em-brand-subtitle{display:block;margin-top:3px;font-size:12px;font-weight:800;color:var(--em-muted);}
.em-nav{display:flex;align-items:center;gap:22px;}
.em-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:22px;align-items:center;}
.em-nav a{text-decoration:none;font-size:14px;font-weight:850;color:var(--em-text);}
.em-nav a:hover{color:var(--em-sand-dark);}
.em-header-cta,
.wp-block-button__link,
.em-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:999px;
  padding:13px 20px;
  background:var(--em-dark);
  color:#fff!important;
  text-decoration:none;
  font-weight:950;
  line-height:1;
  cursor:pointer;
  box-shadow:0 14px 34px rgba(21,32,38,.16);
}
.wp-block-button.is-style-outline .wp-block-button__link,
.em-button-light{
  background:#fff!important;
  color:var(--em-dark)!important;
  border:1px solid rgba(255,255,255,.50)!important;
}
.em-menu-toggle{display:none;border:1px solid var(--em-line);background:#fff;border-radius:14px;padding:10px 13px;font-weight:950;color:var(--em-dark);}

/* General layout */
.em-container{max-width:var(--em-max);margin-left:auto;margin-right:auto;padding-left:clamp(18px,4vw,36px);padding-right:clamp(18px,4vw,36px);}
.em-section{padding-top:clamp(74px,9vw,120px);padding-bottom:clamp(74px,9vw,120px);}
.em-section-tight{padding-top:clamp(54px,7vw,90px);padding-bottom:clamp(54px,7vw,90px);}
.em-section-head{max-width:820px;margin:0 0 36px;}
.em-section-head.center{text-align:center;margin-left:auto;margin-right:auto;}
.em-kicker{margin:0 0 14px;color:var(--em-sand-dark);font-size:13px;font-weight:950;text-transform:uppercase;letter-spacing:.18em;}
.em-display{margin:0;color:var(--em-dark);font-size:clamp(46px,7.6vw,92px);line-height:.92;letter-spacing:-.075em;font-weight:950;}
.em-title{margin:0;color:var(--em-dark);font-size:clamp(32px,5vw,60px);line-height:1.02;letter-spacing:-.055em;font-weight:950;}
.em-title-sm{margin:0;color:var(--em-dark);font-size:clamp(24px,3vw,34px);line-height:1.08;letter-spacing:-.045em;font-weight:950;}
.em-lead{margin:18px 0 0;color:var(--em-muted);font-size:clamp(17px,1.6vw,21px);line-height:1.65;max-width:760px;}
.center .em-lead{margin-left:auto;margin-right:auto;}
.em-muted{color:var(--em-muted);}
.em-button-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px;}
.em-button-row .wp-block-button{margin:0;}

/* Image system - keeps all images coherent and undistorted */
.em-img{
  margin:0!important;
  position:relative;
  overflow:hidden;
  border-radius:var(--em-radius);
  background:#e6ddd2;
  box-shadow:var(--em-shadow);
  line-height:0;
  aspect-ratio:3/2;
  width:100%;
}
.em-img img{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center center!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.em-square{aspect-ratio:1/1;}
.em-landscape{aspect-ratio:3/2;}
.em-wide{aspect-ratio:16/9;}
.em-pano{aspect-ratio:21/9;}
.em-portrait{aspect-ratio:4/5;}
.em-building{aspect-ratio:4/5;}
.em-tall{aspect-ratio:3/4;}
.em-contain img{object-fit:contain!important;background:#efe7dd;}
.em-pos-top img{object-position:center top!important;}
.em-pos-bottom img{object-position:center bottom!important;}
.em-pos-left img{object-position:left center!important;}

/* Hero - desktop is a two-column layout to avoid awkward image cropping */
.em-hero{
  position:relative;
  overflow:hidden;
  padding:clamp(68px,8vw,116px) 0 clamp(44px,6vw,80px);
  background:
    radial-gradient(circle at 86% 14%,rgba(201,162,123,.22),transparent 30%),
    linear-gradient(135deg,#ffffff 0%,#fbf7f1 52%,#f0e5d9 100%);
}
.em-hero::before{content:"";position:absolute;inset:auto -7% -33% 48%;height:72%;background:rgba(201,162,123,.18);filter:blur(80px);border-radius:50%;pointer-events:none;}
.em-hero-layout{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(34px,6vw,78px);align-items:center;position:relative;z-index:1;}
.em-hero-content{max-width:620px;}
.em-hero-content .em-lead{max-width:600px;}
.em-hero-visual{position:relative;min-height:620px;}
.em-hero-visual .em-main-img{height:100%;min-height:620px;border-radius:38px;box-shadow:var(--em-shadow-strong);}
.em-hero-visual .em-main-img img{object-position:center top!important;}
.em-hero-small{
  position:absolute;
  left:-42px;
  bottom:34px;
  width:min(48%,320px);
  border:8px solid #fff;
  border-radius:28px;
  box-shadow:var(--em-shadow-strong);
  background:#fff;
}
.em-hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.em-hero-badges span{display:inline-flex;align-items:center;border:1px solid var(--em-line);background:#fff;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:900;color:var(--em-dark);box-shadow:0 10px 24px rgba(21,32,38,.06);}
.em-hero-note{position:absolute;right:24px;top:24px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.70);border-radius:22px;padding:16px 18px;box-shadow:0 18px 50px rgba(21,32,38,.12);max-width:255px;}
.em-hero-note strong{display:block;color:var(--em-dark);font-size:23px;letter-spacing:-.04em;line-height:1;}
.em-hero-note span{display:block;margin-top:5px;color:var(--em-muted);font-size:13px;font-weight:800;}

/* Fact bar */
.em-fact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:42px;}
.em-fact{background:#fff;border:1px solid var(--em-line);border-radius:24px;padding:22px 22px 20px;box-shadow:var(--em-shadow);}
.em-fact strong{display:block;font-size:32px;line-height:1;letter-spacing:-.055em;color:var(--em-dark);}
.em-fact span{display:block;margin-top:8px;color:var(--em-muted);font-size:14px;font-weight:850;}

/* Cards and grids */
.em-card{background:#fff;border:1px solid var(--em-line);border-radius:var(--em-radius);box-shadow:var(--em-shadow);padding:clamp(26px,4vw,46px);}
.em-split{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(32px,5.2vw,70px);align-items:center;}
.em-split.reverse{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);}
.em-check-list{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:12px;}
.em-check-list li{position:relative;padding-left:30px;color:var(--em-muted);font-weight:760;}
.em-check-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--em-sand-dark);font-weight:950;}
.em-media-collage{display:grid;grid-template-columns:1fr .72fr;grid-template-rows:auto auto;gap:16px;align-items:stretch;}
.em-media-collage .em-img:first-child{grid-row:span 2;}
.em-media-stack{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch;}
.em-media-stack .em-img:first-child{grid-column:span 2;}
.em-note{margin:20px 0 0;padding:16px 18px;border-radius:18px;background:var(--em-soft);border:1px solid var(--em-line);color:var(--em-muted);font-weight:760;}

/* Home blocks */
.em-property-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:clamp(28px,5vw,60px);align-items:start;}
.em-property-gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px;position:sticky;top:100px;}
.em-property-gallery .em-img:first-child{grid-column:span 2;}
.em-spec-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px;}
.em-spec{padding:20px;border-radius:22px;background:#fff;border:1px solid var(--em-line);box-shadow:0 15px 45px rgba(21,32,38,.07);}
.em-spec strong{display:block;color:var(--em-dark);font-size:20px;line-height:1.05;letter-spacing:-.03em;}
.em-spec span{display:block;margin-top:6px;color:var(--em-muted);font-size:13px;font-weight:800;}

.em-interior-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;align-items:stretch;}
.em-interior-grid-right{display:grid;gap:18px;}
.em-interior-copy{display:grid;grid-template-columns:.86fr 1.14fr;gap:24px;margin-top:24px;align-items:start;}

.em-atico-band{background:var(--em-dark);color:#fff;border-radius:42px;padding:clamp(30px,5vw,64px);overflow:hidden;box-shadow:var(--em-shadow-strong);}
.em-atico-band .em-title,.em-atico-band .em-title-sm{color:#fff;}
.em-atico-band .em-kicker{color:#e7c6a3;}
.em-atico-band .em-lead,.em-atico-band .em-check-list li{color:rgba(255,255,255,.74);}
.em-atico-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(28px,5vw,58px);align-items:center;}
.em-atico-gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.em-atico-gallery .em-img:first-child{grid-column:span 2;}

.em-pool-layout{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(28px,5vw,60px);align-items:center;}
.em-quality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:34px;}
.em-quality{background:#fff;border:1px solid var(--em-line);border-radius:24px;padding:26px;box-shadow:var(--em-shadow);}
.em-quality b{display:flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:999px;background:var(--em-soft);color:var(--em-sand-dark);font-weight:950;margin-bottom:16px;}
.em-quality h3{margin:0 0 8px;color:var(--em-dark);font-size:21px;letter-spacing:-.035em;}
.em-quality p{margin:0;color:var(--em-muted);}

.em-location-card{background:#fff;border:1px solid var(--em-line);border-radius:var(--em-radius);box-shadow:var(--em-shadow);overflow:hidden;}
.em-location-content{padding:28px;display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.em-location-content p{margin:0;color:var(--em-muted);}
.em-location-content strong{display:block;color:var(--em-dark);margin-bottom:6px;}

.em-gallery-zones{display:grid;gap:28px;}
.em-gallery-zone{background:#fff;border:1px solid var(--em-line);border-radius:var(--em-radius);box-shadow:var(--em-shadow);padding:18px;}
.em-gallery-zone h3{margin:8px 8px 16px;color:var(--em-dark);font-size:24px;line-height:1.05;letter-spacing:-.035em;}
.em-gallery-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.em-gallery-row.two{grid-template-columns:1fr 1fr;}

/* Contact */
.em-contact-wrap{display:grid;grid-template-columns:.86fr 1.14fr;gap:24px;align-items:start;}
.em-contact-info{background:#fff;border:1px solid var(--em-line);border-radius:var(--em-radius);box-shadow:var(--em-shadow);padding:30px;}
.em-contact-info p{margin:0 0 16px;color:var(--em-muted);}
.em-contact-info strong{color:var(--em-dark);}
.em-contact-form{background:#fff;border:1px solid var(--em-line);border-radius:var(--em-radius);box-shadow:var(--em-shadow);padding:clamp(26px,4vw,40px);}
.em-contact-form .em-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.em-contact-form label{display:block;margin:0 0 8px;font-size:13px;color:var(--em-dark);font-weight:900;}
.em-contact-form input,.em-contact-form select,.em-contact-form textarea{width:100%;border:1px solid var(--em-line);border-radius:16px;padding:14px 15px;font:inherit;color:var(--em-text);background:#fff;outline:none;}
.em-contact-form input:focus,.em-contact-form select:focus,.em-contact-form textarea:focus{border-color:var(--em-sand);box-shadow:0 0 0 4px rgba(201,162,123,.15);}
.em-contact-form textarea{min-height:140px;resize:vertical;}
.em-contact-form .em-field{margin-bottom:16px;}
.em-contact-form .em-consent{display:flex;gap:10px;align-items:flex-start;color:var(--em-muted);font-size:13px;font-weight:750;line-height:1.45;}
.em-contact-form .em-consent input{width:auto;margin-top:4px;}
.em-form-message{border-radius:16px;padding:14px 16px;margin-bottom:16px;font-weight:850;}
.em-form-message.ok{background:#edf8f0;color:#245c2f;border:1px solid #bddfc4;}
.em-form-message.error{background:#fff0ee;color:#7d2c20;border:1px solid #e6b6af;}

/* Footer & pages */
.em-site-footer{background:var(--em-dark);color:rgba(255,255,255,.74);margin-top:80px;}
.em-footer-inner{max-width:var(--em-max);margin:0 auto;padding:34px clamp(18px,4vw,36px);display:flex;gap:22px;justify-content:space-between;flex-wrap:wrap;}
.em-site-footer strong{color:#fff;}
.em-site-footer p{margin:0;}
.em-page-wrap{max-width:920px;margin:70px auto;padding:0 clamp(18px,4vw,36px);}
.em-page-wrap article{background:#fff;border:1px solid var(--em-line);border-radius:var(--em-radius);box-shadow:var(--em-shadow);padding:clamp(28px,5vw,56px);}

/* Responsive */
@media (max-width:1180px){
  .em-hero-layout{grid-template-columns:1fr .98fr;gap:38px;}
  .em-hero-visual,.em-hero-visual .em-main-img{min-height:560px;}
  .em-fact-grid,.em-quality-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .em-property-layout{grid-template-columns:1fr;}
  .em-property-gallery{position:static;grid-template-columns:1fr 1fr 1fr;}
  .em-property-gallery .em-img:first-child{grid-column:span 2;}
}
@media (max-width:960px){
  body.admin-bar .em-site-header{top:46px;}
  .em-menu-toggle{display:inline-flex;}
  .em-header-cta{display:none!important;}
  .em-nav{position:absolute;left:18px;right:18px;top:calc(100% + 10px);background:#fff;border:1px solid var(--em-line);border-radius:24px;padding:18px;box-shadow:var(--em-shadow);display:none;}
  .em-nav.is-open{display:block;}
  .em-nav ul{display:grid;gap:12px;}
  .em-nav a{font-size:16px;display:block;padding:4px 0;}
  .em-hero{padding-top:44px;}
  .em-hero-layout,.em-split,.em-split.reverse,.em-atico-layout,.em-pool-layout,.em-contact-wrap,.em-interior-copy{grid-template-columns:1fr;}
  .em-hero-content{max-width:760px;}
  .em-hero-visual,.em-hero-visual .em-main-img{min-height:0;}
  .em-hero-visual .em-main-img{aspect-ratio:16/11;}
  .em-hero-small{display:none;}
  .em-hero-note{position:relative;right:auto;top:auto;margin-top:14px;max-width:none;}
  .em-property-gallery{grid-template-columns:1fr 1fr;}
  .em-property-gallery .em-img:first-child{grid-column:span 2;}
  .em-interior-grid{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .em-brand{min-width:auto;}
  .em-brand-subtitle{display:none;}
  .em-header-inner{padding-top:11px;padding-bottom:11px;}
  .em-hero{padding-bottom:34px;}
  .em-display{font-size:clamp(43px,14vw,64px);}
  .em-title{font-size:clamp(31px,10vw,44px);}
  .em-fact-grid,.em-spec-grid,.em-quality-grid,.em-location-content,.em-contact-form .em-form-grid,.em-gallery-row,.em-gallery-row.two,.em-property-gallery,.em-media-collage,.em-media-stack,.em-atico-gallery{grid-template-columns:1fr;}
  .em-property-gallery .em-img:first-child,.em-media-collage .em-img:first-child,.em-media-stack .em-img:first-child,.em-atico-gallery .em-img:first-child{grid-column:auto;grid-row:auto;}
  .em-hero-visual .em-main-img,.em-img.em-pano{aspect-ratio:4/3;}
  .em-img.em-building,.em-img.em-portrait,.em-img.em-tall{aspect-ratio:4/3;}
  .em-section{padding-top:64px;padding-bottom:64px;}
  .em-section-tight{padding-top:48px;padding-bottom:48px;}
  .em-card,.em-atico-band{border-radius:26px;}
  .em-gallery-zone{padding:14px;}
}
