@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&display=swap');
:root{
  --font-base: 'Montserrat', Arial, sans-serif;
  --color-primario: #00573f;
  --color-secundario: #ffffff;
  --bg-overlay: rgba(0, 0, 0, 0.5);
  --radio-borde: 8px;
}

*{ box-sizing: border-box; }

body{
  margin: 0;
  font-family: var(--font-base);
  background:#f9f9f9;
  color:#333;
}
.hidden{ display: none !important; }
.btn-cotizar{
  background: var(--color-primario);
  color: var(--color-secundario);
  padding: 6px 12px;
  border: none;
  border-radius: var(--radio-borde);
  font-size: 1rem;
  cursor: pointer;
  transition: transform .06s ease, opacity .2s ease;
}
.btn-cotizar:hover{ opacity:.92; }
.btn-cotizar:active{ transform: scale(.98); }
.btn-cotizar:focus-visible{
  outline:2px solid #0aa86e;
  outline-offset:2px;
}
#btn-abrir-modal.btn-cotizar,
button#btn-abrir-modal.btn-cotizar{
  -webkit-appearance: none;
  appearance: none;
  background:#00573f !important;
  color:#fff !important;
  padding:12px 24px !important;
  border:none !important;
  border-radius:8px !important;
  font-size:1rem !important;
  font-weight:600 !important;
  cursor:pointer !important;
  line-height:1.2 !important;
  display:inline-block;
}
.hero-pm{
  position: relative;
  min-height: 340px;
  display: flex;
  flex-direction: column;
  place-items: center;
  padding: 12px 16px;
  border-radius: 8px;
  overflow: hidden;
  background-image: url('https://ss-static-001.esmsv.com/r/content/host1/d0f26e2eb566f5cda28c5bc549bff024/editor/Pintores%20de%20casas%20Mendoza%203.webp');
  background-size: cover;
  background-position: center;
  justify-content: flex-start;
  gap: 150px;
}
.hero-pm::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(0deg, rgba(0,0,0,.45), rgba(0,0,0,.25));
}
.hero-pm__inner{
  position: relative; z-index:1;
  max-width: 880px; width:100%;
  color:#fff; text-align:center; padding:0 12px;
}
.hero-pm__title{
  margin:0 0 8px 0;
  font-weight:700;
  font-size: clamp(28px, 4.2vw, 44px);
  line-height:1.1;
}
.hero-pm__subtitle{
  margin:0 0 20px 0;
  font-size: clamp(14px, 2.2vw, 18px);
  opacity:.95;
}
.hero-pm .btn-cotizar{ font-size:1.05rem; padding:14px 28px; }
section.hero-pm .hero-pm__inner{ max-width:900px; margin-inline:auto; text-align:center; }
section.hero-pm .hero-pm__title, section.hero-pm .hero-pm__subtitle{
  margin-left:auto; margin-right:auto; text-align:center;
}
.fieldset{ margin-bottom:16px; }
label{ display:block; margin-top:16px; font-weight:600; }
input, select, textarea{
  width:100%; padding:8px; margin-top:4px;
  border:1px solid #ccc; border-radius:4px;
  font-size:1rem; background:#fff;
}
input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid #8fdac4; outline-offset:1px;
}
#cotizar-modal{
  display:none;
  position: fixed; inset:0;
  background: var(--bg-overlay);
  justify-content: center;
  align-items: flex-start;
  padding-top: 120px;
  z-index:1000;
  overflow-y:auto;
}
#cotizar-modal .modal-content{
  background: var(--color-secundario);
  padding: 18px;
  border-radius: var(--radio-borde);
  width: 90%;
  max-width: 640px;
  position: relative;
  margin-bottom: 40px;
}
#cotizar-modal .modal-content h2{ margin:0 0 8px 0; }
#cotizar-modal label{ font-size:.95rem; margin-top:12px; }
#cotizar-modal input, #cotizar-modal select, #cotizar-modal textarea{
  font-size:.95rem; padding:6px 8px;
}
#cotizar-modal textarea{
  width:100%; min-height:100px; resize: vertical;
  font-family: var(--font-base); font-size: .95rem;
}
#cotizar-modal .btn-submit{
  margin-top:18px; width:100%;
  background: var(--color-primario);
  color: var(--color-secundario);
  padding:10px; border:none; border-radius: var(--radio-borde);
  font-size:.95rem; cursor:pointer;
}
#cotizar-modal .btn-submit:focus-visible{
  outline:2px solid #0aa86e; outline-offset:2px;
}
#cotizar-modal .btn-cerrar{
  position:absolute; top:10px; right:10px;
  background: transparent; font-size:1rem; border:none; cursor:pointer; line-height:1;
}
#cotizar-modal .btn-cerrar:focus-visible{ outline:2px solid #8fdac4; border-radius:4px; }
#form-msg, #pro-msg { margin-top:12px; font-size:.95rem; }
#form-msg.error{ color:#b00020; }
#form-msg.success{ color:#007700; }
#pro-msg.error{ color:#b00020; }
#pro-msg.success{ color:#007700; }
.pm-btn{
  --btn-radius: 10px;
  display:inline-flex; align-items:center; gap:10px;
  padding: 10px 16px;
  border-radius: var(--btn-radius);
  font-weight:600; text-decoration:none;
  border:1px solid transparent;
  transition: transform .06s ease, opacity .2s ease;
}
.pm-btn:hover{ transform: translateY(-1px); opacity:.95; }
.pm-btn i{ font-size:1.05em; }
.pm-btn--outline{
  color: var(--color-primario, #00573f);
  border-color: currentColor;
  background: transparent;
}
.pm-btn--outline:hover{
  background: var(--color-primario);
  color: var(--color-secundario);
  border-color: var(--color-primario);
}
.pm-btn--whatsapp{
  background:#77d393 !important; color:#0f3a22 !important;
}
.pm-btn--whatsapp:hover{ background-color:#65b97e !important; color:#fff !important; }
.pm-contacto{ padding:40px 16px; background:#fff; color:#2b2b2b; }
.pm-contacto__container{ max-width:1000px; margin-inline:auto; }
.pm-contacto__title{
  margin:0; text-align:center;
  font-size:clamp(20px,3.4vw,28px); font-weight:700; color:#1f1f1f;
}
.pm-contacto__cta{
  display:flex; gap:16px; justify-content:center; flex-wrap:wrap;
  margin:20px 0 28px;
}
.pm-contacto__grid{
  display:grid; grid-template-columns:1fr; gap:16px;
}
@media (min-width:700px){
  .pm-contacto__grid{ grid-template-columns: repeat(4,1fr); }
}
.pm-card{
  border:1px solid rgba(0,0,0,.08);
  border-radius:12px; padding:16px; background:#fff;
}
.pm-card__title{
  margin:0 0 8px 0; font-size:1.05rem; font-weight:700; color:#1f1f1f;
}
.pm-card__text{ margin:0; font-size:.98rem; color:#3d3d3d; }
.pm-card__text i{ margin-right:8px; opacity:.8; }
.pm-link{
  color: var(--color-primario, #00573f);
  text-decoration:none; border-bottom:1px dotted currentColor;
}
.pm-link:hover{ opacity:.9; }
.pm-servicios{ padding:40px 16px; background:#fff; color:#2b2b2b; }
.pm-servicios__container{ max-width:1100px; margin-inline:auto; }
.pm-servicios__title{
  margin:0; text-align:center;
  font-size:clamp(22px,3.4vw,32px); font-weight:700; color:#1f1f1f;
}
.pm-servicios__grid{
  display:grid; grid-template-columns:1fr; gap:28px; margin-top:24px;
}
@media (min-width:900px){
  .pm-servicios__grid{ grid-template-columns: repeat(2,1fr); }
  .pm-servicios__item:last-child{ grid-column: span 2; }
}
@media (min-width:1200px){
  .pm-servicios__grid{ grid-template-columns: repeat(3,1fr); }
  .pm-servicios__item:last-child{ grid-column:auto; }
}
.pm-servicios__item{
  border:1px solid rgba(0,0,0,.08);
  border-radius:12px; padding:18px; background:#fff;
}
.pm-servicios__subtitle{
  margin:0 0 10px 0; font-size:1.15rem; font-weight:700; color:#1f1f1f;
}
.pm-servicios__item p{
  margin:0 0 10px 0; line-height:1.55; color:#3b3b3b;
}
.pm-servicios__cta{
  margin-top:14px; display:flex; gap:12px; flex-wrap:wrap;
}
.titulo-seccion{
  font-family:'Montserrat', sans-serif;
  font-weight:700;
  font-size: clamp(1.6rem, 2.5vw, 2rem);
  color:#2b2b2b;
}
.btn-whatsapp{
  background-color:#77d393; color:#fff;
  font-weight:600; border:none; border-radius:6px;
  padding:10px 20px; text-decoration:none; display:inline-block;
  transition: background .2s ease;
}
.btn-whatsapp:hover{ background-color:#65b97e; color:#fff; }
.seccion-servicios .card{ border-radius:10px; overflow:hidden; }
.seccion-servicios .card img{ object-fit:cover; height:220px; }
@media (max-width:600px){
  .hero-pm{ padding:32px 10px; }
  .hero-pm__subtitle{ margin-bottom:16px; }
  #cotizar-modal{ padding-top:150px; }
  .pm-contacto{ padding:28px 12px; }
  .pm-contacto__cta{ gap:12px; }
  .pm-servicios{ padding:28px 12px; }
  .pm-servicios__item{ padding:16px; }
}
.pm-modal{
  position: fixed; inset: 0; z-index: 1001;
  background: var(--bg-overlay, rgba(0,0,0,.5));
  display: none; justify-content: center; align-items: flex-start;
  padding-top: 130px; overflow-y: auto;
}
.pm-modal__content{
  background: var(--color-secundario, #fff);
  width: 90%; max-width: 560px; margin-bottom: 40px;
  border-radius: var(--radio-borde, 8px);
  padding: 18px; position: relative;
  box-shadow: 0 6px 30px rgba(0,0,0,.12);
}
.pm-modal__close{
  position: absolute; top: 20px; right: 16px;
  background: transparent; border: 0; cursor: pointer;
  font-size: 1rem; line-height: 1;
}
.pm-modal__close:focus-visible{ outline: 2px solid #8fdac4; border-radius: 4px; }

.pm-modal__title{ margin: 0 0 6px 0; font-weight: 700;}
.pm-modal__lead{ margin: 0 0 12px 0;}
.pm-modal__list{ margin: 8px 0 0 18px; color: #3b3b3b; }
.pm-modal__actions{ margin-top: 16px; display: flex; justify-content: space-around; }
.pm-modal .btn-cotizar{ 
    background: var(--color-primario, #00573f) !important; 
    color: #fff !important; 
    padding: 6px 12px;
    font-size: small;
}
.pm-modal .btn-cerrar-modal{ 
    background: var(--color-secundario) !important; 
    color: #00573f !important; 
}
@media (max-width:600px){
  .pm-modal{ padding-top: 150px; }
  .pm-modal__content{ padding: 16px; }
}
.pm-modal__content{
  background:#fff;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 8px 32px rgba(0,0,0,.2);
}

.pm-modal__header{
  display:flex;
  align-items:center;
  gap:12px;
  background: var(--color-primario);
  padding:16px;
  color: #fff;
}

.pm-modal__icon{
  font-size:1.8rem;
}

.pm-modal__subtitle{
  margin:0;
  font-size:.95rem;
  opacity:.9;
}
.pm-modal__list{
  list-style:none;
  margin:0;
  padding:16px;
  background:#f7f9f9;
}
.pm-modal__list li{
  margin-bottom:8px;
  font-size:.95rem;
}
.pm-modal__list li:last-child{ margin-bottom:0; }
.promo-ribbon{
  --ribbon-bg: rgba(0,0,0,.55);
  --ribbon-fg: #fff;
  position: relative;
  margin: 6px auto 8px;
  display: flex; align-items: center; justify-content: space-evenly;
  gap: 10px;
  padding: 8px 10px;
  background: var(--ribbon-bg);
  color: var(--ribbon-fg);
  width: min(96vw, 640px);
  border-radius: 999px;
  backdrop-filter: blur(2px) saturate(120%);
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
  z-index: 3;
}
.promo-ribbon__text{
  display:flex; align-items:center; gap:8px;
  font-size: 13px; line-height:1.2;
  white-space: normal; overflow:hidden; text-overflow: ellipsis;
  overflow-wrap: break-word;
  word-wrap: break-word;
}
.promo-btn{
  all: unset;
  background: var(--color-primario, #00573f) !important;
  color: #fff !important;
  padding: 6px 10px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  cursor: pointer !important;
  align-items: center;
}
@media (max-width:768px){
    .promo-btn{
        display: none;
    }
}
@media (min-width: 768px){
  .promo-ribbon{
    border-radius: 12px;
    padding: 10px 12px;
    gap: 12px;
    width: max(900px);
  }
  .promo-ribbon__text{ font-size: 15px; }
  .promo-btn{ font-size: 14px !important; padding: 8px 14px !important; }
}
.promo-floating{
  position: fixed; left: 12px; bottom: 12px; z-index: 1100;
  width: auto; max-width: 86vw;
  background: #1f1f1f; color:#fff;
  border: 0;
  border-radius: 999px;
  padding: 8px 10px;
  box-shadow: 0 10px 24px rgba(0,0,0,.26);
  display:none;
}
.promo-floating__header{ display:flex; align-items:center; gap:8px; margin:0; }
.promo-floating__icon{ font-size: 16px; }
.promo-floating__title{ margin:0; font-size: 13px; font-weight:700; }
.promo-floating__text{ display:none; } /* oculto en mobile para que no sea invasivo */
.promo-floating__row{ margin-left:8px; }
.promo-floating__close{
  background:transparent; border:0; color:#fff; opacity:.7; cursor:pointer;
  font-size:16px; line-height:1; padding:0 2px; margin-left:4px;
}
#promo-floating-cta.promo-btn{
  background:#00a46c !important;
  padding:6px 10px !important; font-size:12px !important; border-radius:999px !important;
}
@media (min-width: 768px){
  .promo-floating{
    right: 16px; bottom: 18px; max-width: 340px;
    border-radius: 12px; padding: 12px;
    background: #fff; color:#2b2b2b;
  }
  .promo-floating__header{ gap:10px; margin-bottom:6px; }
  .promo-floating__icon{ font-size: 20px; }
  .promo-floating__title{ font-size: 1rem; color:#1f1f1f; }
  .promo-floating__text{ display:block; font-size:.95rem; color:#3b3b3b; margin:0 0 8px; }
  .promo-floating__close{ color:#2b2b2b; }
  #promo-floating-cta.promo-btn{ font-size: 14px !important; padding: 8px 14px !important; }
}
.hero-pm::after{ z-index: 1; }
.hero-pm__inner{ z-index: 2; }

.pm-pro-form{ padding:32px 16px; background:#fff; color:#2b2b2b; }
.pm-pro-form__container{ max-width:1100px; margin-inline:auto; }
.pm-pro-form .pm-block,
.pm-pro-form .pm-accept{
  max-width:1100px;
  margin-left:auto;
  margin-right:auto;
  padding-left: 0;
  padding-right: 0;
 }
.pm-pro-form__title{
  margin:0 0 8px; text-align:center; font-weight:700;
  font-size: clamp(22px,3.2vw,28px); color:#ff6a2a;
}
.pm-pro-form__lead{ margin:0 auto 18px; max-width:860px; text-align:center; opacity:.9; }

.pm-pro-grid{
  display:grid; gap:16px;
  grid-template-columns: 1fr;
}
@media (min-width:900px){
  .pm-pro-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px){
  .pm-pro-form .pm-block,
  .pm-pro-form .pm-accept{
    padding-left: 8px;
    padding-right: 8px;
  }
}
.pm-field label{ display:block; font-weight:600; margin:6px 0; }
.pm-field input{
  width:100%; padding:10px 12px; border:1px solid #cfd6dc; border-radius:8px;
  font: inherit; background:#fff;
}
.pm-input-prefix{ display:flex; align-items:center; gap:10px; }
.pm-input-prefix > span{
  padding:10px 12px; border:1px solid #cfd6dc; border-radius:8px; background:#f6f8f9; color:#333;
  white-space:nowrap;
}
.pm-input-prefix input{ flex:1; }

.pm-block{ margin-top:24px; }
.pm-block__title{ margin:0 0 8px; font-size:1.05rem; font-weight:700; }
.pm-help{ margin:0 0 10px; font-size:.95rem; color:#5a6775; }

.pm-chip-grid{
  display:grid; gap:10px;
  grid-template-columns: 1fr;
}
.pm-chip-grid--3{ grid-template-columns: 1fr; }
@media (min-width:680px){
  .pm-chip-grid{ grid-template-columns: 1fr 1fr; }
  .pm-chip-grid--3{ grid-template-columns: repeat(3, 1fr); }
}
.pm-chip{
  all:unset;
  border:1px solid #cfd6dc; border-radius:10px; padding:10px 12px; cursor:pointer;
  background:#fff; text-align:left; line-height:1.2;
}
.pm-chip.is-selected{
  background: var(--color-primario, #00573f) !important;
  color:#fff !important; border-color: var(--color-primario, #00573f) !important;
}
.pm-chip.selected{
  background: var(--color-primario, #00573f) !important;
  color:#fff !important;
  border-color: var(--color-primario, #00573f) !important;
}

#error, .error { color: #b00020; }

.pm-accept{
  display:block !important;
  width:100% !important;
  clear:both !important;
  margin-top:18px !important;
  text-align:left !important;
}

.pm-accept .pm-check{
  display:inline-flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:6px !important;
  white-space:nowrap !important;
  margin:6px 0 !important;
  padding:0 !important;
  width:auto !important;
  max-width:100% !important;
  text-align:left !important;
}

.pm-accept .pm-check input{
  margin:0 !important;
  transform: translateY(1px);
}

.pm-accept .pm-check span{
  display:inline !important;
  white-space:nowrap !important;
}

.pm-accept, .pm-accept *{
  text-align:left !important;
}

.pm-submit{
  margin-top:18px; width: auto; font-weight:700; letter-spacing:.4px;
}