:root {
  --ink:#171c2b;
  --paper:#faf9f6;
  --green:#79a846;
  --gold:#e5c84b;
  --orange:#ff8726;
  --red:#e73c40;
  --blue:#2d6fc4;
  --violet:#8c59c6;
  --muted:#656970;
  --line:#dedfd9;
  --gutter:clamp(24px,7vw,110px)
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.6
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit
}
img {
  max-width:100%;
  display:block
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2 {
  font-weight:500;
  letter-spacing:-.055em;
  line-height:1.08
}
h2 {
  font-size:clamp(40px,5.2vw,78px)
}
em {
  font-family:Georgia,serif;
  font-weight:400;
  color:var(--green)
}
p {
  color:var(--muted)
}
a,button {
  -webkit-tap-highlight-color:transparent
}
a:focus-visible,button:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:6px
}
[hidden] {
  display:none!important
}
.skip {
  position:fixed;
  top:-80px;
  left:20px;
  z-index:100;
  background:white;
  padding:12px
}
.skip:focus {
  top:15px
}
.header {
  height:88px;
  padding:10px var(--gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:fixed;
  inset:0 0 auto;
  z-index:20;
  background:rgba(250,249,246,.94);
  border-bottom:1px solid #171c2b10;
  backdrop-filter:blur(14px)
}
.brand {
  display:flex;
  gap:12px;
  align-items:center;
  flex-shrink:0
}
.brand img {
  width:48px;
  height:48px;
  object-fit:contain
}
.brand span {
  font-size:20px;
  letter-spacing:.04em;
  font-weight:700;
  line-height:1.1
}
.brand small {
  display:block;
  font-size:9px;
  letter-spacing:.3em;
  margin-top:7px
}
.header nav {
  display:flex;
  gap:clamp(16px,2vw,30px);
  font-size:12px;
  align-items:center
}
.header nav a {
  position:relative
}
.header nav a:after {
  content:'';
  height:2px;
  background:var(--green);
  position:absolute;
  left:0;
  right:100%;
  bottom:-6px;
  transition:right .25s
}
.header nav a:hover:after {
  right:0
}
.nav-contact {
  border:1px solid var(--ink);
  border-radius:30px;
  padding:10px 20px
}
.menu-toggle {
  display:none
}
.intro {
  height:100svh;
  min-height:680px;
  position:relative;
  overflow:hidden;
  display:grid;
  place-items:center;
  padding:110px 24px 70px;
  background:radial-gradient(ellipse at 20% 45%,#e5c84b13,transparent 50%),radial-gradient(ellipse at 80% 60%,#79a84612,transparent 50%),var(--paper)
}
.intro-content {
  text-align:center;
  position:relative;
  z-index:2
}
.eyebrow,.section-label,.intro-bottom {
  font-size:10px;
  letter-spacing:.15em
}
.logo-stage {
  width:clamp(230px,30vw,420px);
  margin:18px auto 8px
}
.intro-logo {
  width:100%;
  height:auto
}
.intro h1 {
  font-size:clamp(40px,5vw,68px)
}
.intro-subtitle {
  margin-top:14px;
  font-size:14px
}
.explore {
  display:inline-flex;
  align-items:center;
  gap:30px;
  font-size:12px;
  margin-top:28px
}
.explore span {
  border:1px solid var(--line);
  border-radius:50%;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  transition:background .2s,transform .2s
}
.explore:hover span {
  background:var(--gold);
  transform:translateY(4px)
}
.intro-bottom {
  position:absolute;
  bottom:25px;
  left:var(--gutter);
  right:var(--gutter);
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-size:8px
}
.intro-ring {
  position:absolute;
  width:660px;
  height:660px;
  border:1px solid #79a84618;
  border-radius:50%
}
.orb {
  position:absolute;
  border-radius:50%;
  filter:blur(2px);
  opacity:.5
}
.orb-one {
  width:18px;
  height:18px;
  background:var(--gold);
  left:18%;
  top:35%
}
.orb-two {
  width:12px;
  height:12px;
  background:var(--violet);
  right:20%;
  bottom:27%
}
.section {
  padding:100px var(--gutter);
  scroll-margin-top:88px
}
.section-label {
  display:flex;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-top:20px;
  margin-bottom:64px;
  color:var(--muted);
  gap:24px
}
.about {
  background:var(--ink);
  color:var(--paper);
  padding-top:72px
}
.about .section-label {
  border-color:#ffffff25;
  color:#b6b9c1
}
.about-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:9vw
}
.about-copy {
  padding-top:15px
}
.about p {
  color:#b6b9c1
}
.about .lead {
  font-size:22px;
  color:var(--paper);
  margin-bottom:24px
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:40px;
  border-bottom:1px solid currentColor;
  padding-bottom:9px;
  font-size:13px;
  margin-top:32px
}
.text-link span {
  transition:transform .2s
}
.text-link:hover span {
  transform:translate(3px,-3px)
}
.values {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px;
  border-top:1px solid #ffffff25;
  margin-top:75px;
  padding-top:35px
}
.dot {
  display:block;
  width:12px;
  height:12px;
  border-radius:50%;
  margin-bottom:22px
}
.green {
  background:var(--green)
}
.gold {
  background:var(--gold)
}
.violet {
  background:var(--violet)
}
.values h3 {
  font-weight:400;
  font-size:19px
}
.values p {
  font-size:13px;
  margin-top:8px
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:50px;
  margin-bottom:48px
}
.section-heading p {
  max-width:310px;
  font-size:14px
}
.facility-frame {
  position:relative;
  overflow:hidden;
  min-height:480px;
  border-radius:4px;
  background:#e9ece2
}
.abstract-space {
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,#e5c84b15,#79a84630)
}
.abstract-space i {
  position:absolute;
  bottom:-80px;
  width:34%;
  height:420px;
  border:1px solid #79a84650;
  border-radius:220px 220px 0 0;
  left:12%;
  background:linear-gradient(90deg,#faf9f655,transparent)
}
.abstract-space i:nth-child(2) {
  left:34%;
  height:520px
}
.abstract-space i:nth-child(3) {
  left:56%;
  height:340px
}
.frame-caption {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:30px;
  background:linear-gradient(transparent,#faf9f6)
}
.frame-caption span {
  font-size:10px;
  letter-spacing:.15em
}
.frame-caption p {
  font-size:13px;
  margin-top:7px
}
.services {
  background:#f0f1eb
}
.services-grid {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:8vw
}
.services-intro p {
  max-width:300px;
  margin-top:30px;
  font-size:14px
}
.button {
  display:inline-flex;
  gap:40px;
  padding:15px 24px;
  border-radius:40px;
  background:var(--ink);
  color:white;
  margin-top:30px;
  font-size:13px;
  transition:background .2s,transform .2s
}
.button:hover {
  background:var(--blue);
  transform:translateY(-3px)
}
.service-card {
  padding:38px 0;
  border-top:1px solid var(--line);
  display:flex;
  gap:24px;
  align-items:flex-start
}
.service-number {
  font-size:11px;
  color:var(--muted)
}
.service-card h3 {
  font-weight:500;
  font-size:22px;
  line-height:1.25;
  margin-bottom:16px
}
.service-card p {
  font-size:14px
}
.service-mark {
  flex-shrink:0;
  margin-left:auto;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:50%;
  transition:transform .25s
}
.service-card:hover .service-mark {
  transform:rotate(45deg)
}
.service-note {
  font-size:11px;
  border-top:1px solid var(--line);
  padding-top:22px
}
.gallery-grid {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:24px;
  align-items:start
}
.gallery-item:nth-child(2) {
  margin-top:60px
}
.gallery-art {
  height:340px;
  position:relative;
  overflow:hidden;
  border-radius:3px;
  background:#e6e9df
}
.gallery-art:before,.gallery-art:after {
  content:'';
  position:absolute;
  border:1px solid #ffffff90;
  border-radius:50%;
  width:230px;
  height:230px;
  top:60px;
  left:calc(50% - 115px);
  background:#ffffff20;
  transition:transform .6s
}
.gallery-art:after {
  top:150px;
  left:calc(50% - 60px)
}
.art-two {
  background:#e9e3ef
}
.art-three {
  background:#eee6cd
}
.gallery-item:hover .gallery-art:before {
  transform:scale(1.1) translateY(-10px)
}
figcaption {
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-top:18px;
  font-size:13px
}
figcaption small {
  color:var(--muted);
  font-size:11px
}
.location {
  background:#eeeee8
}
.location-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:10vw;
  align-items:center
}
.location p {
  margin-top:30px;
  max-width:380px;
  font-size:14px
}
.location-panel {
  padding:55px 35px;
  background:var(--paper);
  border:1px solid var(--line);
  text-align:center;
  border-radius:4px
}
.location-icon {
  font-size:75px;
  color:var(--green);
  line-height:1
}
.location-panel h3 {
  font-weight:400;
  font-size:25px;
  margin-top:20px
}
.location-panel p {
  margin:10px auto
}
.location-line {
  display:block;
  width:50px;
  height:2px;
  background:var(--green);
  margin:25px auto 0
}
.contact h2 {
  font-size:clamp(44px,7.5vw,110px)
}
.contact-bottom {
  margin-top:50px;
  display:flex;
  gap:40px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap
}
.contact-bottom p {
  max-width:370px;
  font-size:14px
}
.contact-bottom .text-link {
  margin:0
}
.contact-links {
  display:flex;
  gap:15px;
  flex-wrap:wrap
}
footer {
  padding:55px var(--gutter) 40px;
  background:var(--ink);
  color:var(--paper);
  position:relative;
  display:flex;
  gap:30px;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap
}
footer .footer-brand {
  font-size:27px;
  letter-spacing:-.04em
}
footer p,footer>span {
  font-size:10px;
  color:#b6b9c1
}
.color-line {
  height:4px;
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  background:linear-gradient(90deg,var(--red),var(--orange),var(--gold),var(--green),var(--blue),var(--violet))
}
.slot-image {
  width:100%;
  height:100%;
  object-fit:cover;
  position:absolute;
  inset:0
}
.gallery-art .slot-image {
  position:relative
}
.has-photo:before,.has-photo:after {
  display:none
}
.facility-frame.has-photo .frame-caption {
  background:linear-gradient(transparent,#171c2bcc);
  color:white
}
.facility-frame.has-photo p {
  color:white
}

@media(min-width:1400px) {
  .section {
    padding-left:max(var(--gutter),calc((100vw - 1240px)/2));
    padding-right:max(var(--gutter),calc((100vw - 1240px)/2))
  }

}
@media(max-width:1000px) {
  .header nav {
    gap:15px;
    font-size:11px
  }
  .brand span {
    font-size:16px
  }
  .header {
    padding-inline:24px
  }
  .about-grid {
    gap:40px
  }
  .gallery-art {
    height:280px
  }
  .service-card {
    gap:15px
  }
  .services-grid {
    gap:40px
  }

}
@media(max-width:760px) {
  .header {
    height:72px
  }
  .brand img {
    width:40px;
    height:40px
  }
  .menu-toggle {
    display:flex;
    gap:20px;
    background:none;
    border:1px solid var(--line);
    border-radius:30px;
    padding:8px 15px;
    font-size:12px
  }
  .header nav {
    display:none;
    position:absolute;
    top:72px;
    left:0;
    right:0;
    padding:25px;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:stretch;
    font-size:16px
  }
  .header nav.is-open {
    display:flex
  }
  .header nav a {
    padding:8px
  }
  .nav-contact {
    border:0
  }
  .intro {
    min-height:650px;
    padding-top:90px
  }
  .eyebrow {
    max-width:270px;
    margin:auto;
    font-size:8px;
    line-height:1.8
  }
  .logo-stage {
    width:min(70vw,310px)
  }
  .intro-subtitle {
    max-width:260px;
    margin:14px auto 0
  }
  .intro-bottom span:first-child {
    display:none
  }
  .intro-bottom {
    justify-content:center
  }
  .intro-ring {
    width:440px;
    height:440px
  }
  .section {
    padding:64px 24px;
    scroll-margin-top:72px
  }
  .section-label {
    margin-bottom:40px;
    font-size:8px;
    letter-spacing:.1em
  }
  .section-label span:last-child {
    text-align:right
  }
  .about-grid,.services-grid,.location-grid {
    grid-template-columns:1fr;
    gap:40px
  }
  .about .lead {
    font-size:20px
  }
  .values {
    grid-template-columns:1fr;
    gap:30px;
    margin-top:40px
  }
  .values article {
    position:relative;
    padding-left:30px
  }
  .dot {
    position:absolute;
    left:0;
    top:10px
  }
  .section-heading {
    display:block
  }
  .section-heading p {
    margin-top:25px
  }
  .facility-frame {
    min-height:360px
  }
  .frame-caption {
    padding:24px
  }
  .gallery-grid {
    grid-template-columns:1fr;
    gap:32px
  }
  .gallery-item:nth-child(2) {
    margin:0
  }
  .gallery-art {
    height:330px
  }
  .gallery-item figcaption {
    flex-direction:row;
    justify-content:space-between;
    gap:10px
  }
  .service-card {
    padding:30px 0
  }
  .service-card h3 {
    font-size:20px
  }
  .service-mark {
    width:30px;
    height:30px
  }
  .contact-bottom {
    gap:30px
  }
  footer {
    display:block
  }
  footer p {
    margin:16px 0
  }
  footer>span {
    display:block
  }
  .location-panel {
    padding:40px 24px
  }

}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
  html {
    scroll-behavior:auto
  }

}

/* ACTIVIDADES: el mismo diseño se aplica a todas las tarjetas nuevas. */
.activities {
  background:#f3f3ed
}
.activity-filters {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:32px
}
.filter-button {
  cursor:pointer;
  background:transparent;
  color:var(--ink);
  border:1px solid #b8bcb2;
  border-radius:25px;
  padding:10px 18px;
  font-size:12px;
  transition:background .2s,color .2s
}
.filter-button[aria-pressed=true] {
  background:var(--ink);
  color:white
}
.filter-button:hover {
  border-color:var(--green)
}
.activity-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px
}
.activity-card {
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:6px;
  overflow:hidden;
  display:flex;
  flex-direction:column
}
.activity-media {
  height:210px;
  background:linear-gradient(140deg,#e5c84b28,#79a84628);
  position:relative;
  overflow:hidden;
  display:grid;
  place-items:center
}
.activity-card:nth-child(3n+2) .activity-media {
  background:linear-gradient(140deg,#8c59c620,#2d6fc420)
}
.content-photo {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .6s
}
.activity-card:hover .content-photo {
  transform:scale(1.035)
}
.activity-body {
  padding:26px;
  display:flex;
  flex-direction:column;
  flex:1
}
.activity-category {
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#536930;
  margin-bottom:15px
}
.activity-body h3 {
  font-size:22px;
  font-weight:500;
  line-height:1.25;
  margin-bottom:15px
}
.activity-body p {
  font-size:14px
}
.activity-body .text-link {
  align-self:flex-start;
  margin-top:auto;
  padding-top:24px
}
.activity-date {
  margin-top:16px;
  color:var(--ink);
  font-weight:bold
}
.activity-details {
  font-size:13px;
  margin:20px 0
}
.activity-details summary {
  cursor:pointer
}
.activity-details p {
  margin-top:12px
}
.photo-pending {
  position:absolute;
  bottom:15px;
  left:20px;
  right:20px;
  font-size:11px;
  color:var(--muted)
}
.gallery-art .content-photo {
  position:absolute;
  inset:0
}
.activity-empty {
  padding:30px 0
}
.header nav {
  gap:clamp(10px,1.4vw,22px)
}

@media(max-width:1100px) {
  .header nav {
    font-size:10px;
    gap:10px
  }
  .activity-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

}

@media(max-width:760px) {
  .activity-grid {
    grid-template-columns:1fr
  }
  .activity-media {
    height:240px
  }
  .header nav {
    font-size:16px
  }
  .activity-body {
    padding:24px
  }

}

/* FICHAS Y MINIMALISMO: espacios amplios, tipografía clara, color como acento. */
.activity-open { background:none; border:0; border-bottom:1px solid currentColor; cursor:pointer; font:inherit; font-size:13px; text-align:left; }
.activity-card { transition:box-shadow .3s,border-color .3s; }
.activity-card:hover { border-color:#a4b294; box-shadow:0 12px 35px #171c2b08; }
.activity-dialog { width:min(1000px,calc(100% - 40px)); max-height:90svh; padding:0; border:1px solid #dedfd9; border-radius:12px; background:var(--paper); color:var(--ink); overscroll-behavior:contain; }
.activity-dialog::backdrop { background:#171c2b9c; backdrop-filter:blur(5px); }
.dialog-panel { padding:clamp(24px,5vw,64px); position:relative; }
.dialog-close { display:block; margin:0 0 28px auto; padding:9px 15px; border:1px solid var(--line); border-radius:24px; background:var(--paper); cursor:pointer; color:var(--ink); font-size:12px; }
.dialog-panel h2 { font-size:clamp(32px,5vw,62px); max-width:750px; }
.dialog-intro { font-size:17px; margin-top:24px; max-width:660px; }
.dialog-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:32px 0; }
.dialog-photo:first-child { grid-column:1 / -1; }
.dialog-photo img { width:100%; height:auto; max-height:500px; object-fit:contain; background:#eeeee8; border-radius:5px; }
.dialog-photo figcaption { font-size:12px; color:var(--muted); margin-top:10px; }
.dialog-photo-placeholder { padding:65px 25px; border-radius:5px; background:linear-gradient(125deg,#79a84615,#e5c84b18); color:var(--muted); text-align:center; font-size:13px; grid-column:1 / -1; }
.dialog-information { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.dialog-info-block { border-top:1px solid var(--line); padding-top:20px; }
.dialog-info-block:first-child { grid-column:1 / -1; }
.dialog-info-block h3 { font-weight:500; font-size:19px; margin-bottom:14px; }
.dialog-info-block p { font-size:14px; margin-top:10px; white-space:pre-wrap; overflow-wrap:anywhere; }
.dialog-footer { border-top:1px solid var(--line); padding-top:26px; margin-top:36px; display:flex; justify-content:space-between; align-items:center; gap:30px; }
.dialog-footer p { max-width:370px; font-size:14px; }.dialog-footer .button { margin:0; flex-shrink:0; }
.welcome { background:#ecefe6; }.welcome-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:9vw; }
.welcome-lead { margin-top:28px; max-width:460px; font-size:17px; }.welcome-copy h3 { font-size:27px; font-weight:400; line-height:1.3; margin:20px 0; }.welcome-copy p { font-size:14px; margin-top:18px; }
.inclusion-tag { font-size:10px; letter-spacing:.13em; color:#536930; }.welcome-copy ol { padding:0; margin:30px 0 0; list-style:none; counter-reset:steps; }.welcome-copy li { counter-increment:steps; padding:20px 0 20px 42px; border-top:1px solid #cbd1c2; position:relative; }.welcome-copy li::before { content:'0' counter(steps); position:absolute; left:0; top:23px; font-size:11px; color:#536930; }.welcome-copy strong { display:block; font-size:15px; font-weight:500; }.welcome-copy li span { display:block; font-size:12px; color:var(--muted); margin-top:6px; }
@media(max-width:760px) { .welcome-grid { grid-template-columns:1fr; gap:50px; }.activity-dialog { width:calc(100% - 20px); max-height:94svh; }.dialog-panel { padding:24px; }.dialog-photos,.dialog-information { grid-template-columns:1fr; }.dialog-footer { flex-direction:column; align-items:flex-start; }.dialog-intro { font-size:15px; }.dialog-panel h2 { font-size:36px; }.dialog-close { margin-bottom:20px; } }


/* Nombre de la comunidad en una sola línea y menú sin marca lateral. */
.intro h1 { white-space:nowrap; font-size:clamp(28px,5vw,68px); }
.header { justify-content:center; }
.header nav { justify-content:center; }
@media(max-width:760px) { .intro h1 { font-size:clamp(25px,7.5vw,40px); letter-spacing:-.045em; }.header { justify-content:flex-end; } }
/* Casas después de la portada; logos en su proporción original. */
.intro-content { display:flex; flex-direction:column; align-items:center; }.intro .eyebrow { display:none; }.intro h1 { order:0; margin:0; font-family:Georgia,serif; font-size:clamp(32px,4vw,58px); font-weight:500; }.logo-stage { order:1; width:clamp(250px,30vw,400px); aspect-ratio:1.12; position:relative; overflow:hidden; margin:25px auto; }.intro-logo { position:absolute; width:112%; max-width:none; height:auto; left:-6%; top:-13%; }.intro-subtitle { display:none; }.explore { order:2; margin-top:10px; }.intro { min-height:650px; padding:120px 24px 75px; }.community-houses { background:#fff; }.community-houses h2 { text-align:center; }.houses-description { text-align:center; margin:25px auto 45px; max-width:500px; font-size:15px; }.house-logo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:45px 35px; }.house-logo { text-align:center; }.house-logo-image { height:220px; display:flex; align-items:center; justify-content:center; }.house-logo img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .4s; }.house-logo:hover img { transform:translateY(-4px); }.house-logo figcaption { font-size:13px; margin-top:20px; color:var(--ink); }.logo-melchor { mask-image:linear-gradient(to bottom,#000 0%,#000 58%,transparent 58%,transparent 65%,#000 65%); }
@media(max-width:760px) { .intro { min-height:600px; padding:100px 24px 65px; }.intro h1 { font-size:clamp(27px,7.3vw,36px); }.logo-stage { width:min(76vw,310px); }.house-logo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 18px; }.house-logo-image { height:150px; }.house-logo figcaption { font-size:11px; margin-top:12px; }.community-houses { padding:65px 24px; } }
@media(min-width:1500px) { .house-logo-image { height:250px; } }
/* Identidad de la comunidad y oportunidades. */
.identity-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; border-top:1px solid #ffffff25; margin-top:55px; padding-top:35px; }.identity-grid article>span { font-size:11px; color:var(--green); }.identity-grid h3 { font-size:23px; font-weight:400; margin:15px 0; }.identity-grid p { font-size:14px; line-height:1.8; }.rehabilitation { background:#f0f2ea; }.rehab-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }.rehab-card { background:var(--paper); border:1px solid var(--line); border-radius:5px; overflow:hidden; display:flex; flex-direction:column; }.rehab-card .activity-media { height:180px; }.program-open { display:inline-block; align-self:flex-start; background:none; border:0; border-bottom:1px solid currentColor; padding:0 0 8px; margin-top:22px; color:var(--ink); font:inherit; font-size:12px; cursor:pointer; }.program-open:hover { color:#536930; }.program-note { font-size:12px; margin-top:30px; }.rehab-card .text-link { font-size:12px; margin-top:16px; padding-top:0; }.header nav { gap:clamp(12px,2vw,28px); }
@media(max-width:900px) { .rehab-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) { .identity-grid,.rehab-grid { grid-template-columns:1fr; }.identity-grid { gap:30px; }.rehab-card .activity-media { height:200px; } }
/* Así trabajamos: tres grupos de tarjetas. */
.services-grouped { display:block; }.services-grouped .services-intro { display:flex; justify-content:space-between; gap:30px; align-items:flex-end; margin-bottom:50px; }.services-grouped .services-intro p { margin:0; max-width:370px; }.services-grouped .services-intro .button { display:none; }.work-group { margin-bottom:50px; }.work-group-heading { display:grid; grid-template-columns:42px 1fr; column-gap:20px; margin-bottom:25px; align-items:center; }.work-group-index { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font-size:11px; }.work-group-heading h3 { font-size:25px; font-weight:500; }.work-group-heading p { grid-column:2; font-size:13px; margin-top:7px; }.work-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }.work-card { border:1px solid var(--line); border-radius:5px; background:var(--paper); overflow:hidden; display:flex; flex-direction:column; transition:border-color .3s; }.work-card:hover { border-color:#9eaf90; }.work-card-media { position:relative; height:170px; background:linear-gradient(140deg,#79a84612,#e5c84b16); overflow:hidden; }.work-group:nth-child(2) .work-card-media { background:linear-gradient(140deg,#e5c84b18,#ff872611); }.work-group:nth-child(3) .work-card-media { background:linear-gradient(140deg,#8c59c614,#2d6fc40b); }.work-card-body { padding:25px; flex:1; display:flex; flex-direction:column; }.work-card-body h4 { margin:0 0 15px; font-size:20px; font-weight:500; line-height:1.3; }.work-card-body p { font-size:14px; }.work-card-body .program-open { margin-top:auto; padding-top:22px; }.logo-melchor { mask-image:none; -webkit-mask-image:none; }
@media(max-width:760px) { .services-grouped .services-intro { display:block; }.services-grouped .services-intro p { margin-top:25px; }.work-card-grid { grid-template-columns:1fr; }.work-card-media { height:190px; }.work-group-heading { column-gap:12px; }.work-group-heading h3 { font-size:22px; } }
/* Contacto visible y panel de ayuda. */
.call-banner { margin-top:40px; padding:25px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:25px; }.call-banner>span { font-size:17px; }.call-pill { background:#8d283c; color:white; display:inline-flex; align-items:center; gap:10px; padding:15px 24px; border-radius:35px; font-weight:bold; font-size:16px; transition:transform .25s,background .25s; }.call-pill:hover { transform:translateY(-2px); background:#742235; }.contact-links .button { overflow-wrap:anywhere; max-width:100%; }.help-dock { position:fixed; right:22px; bottom:22px; z-index:25; display:flex; align-items:center; gap:12px; }.help-launcher { background:white; color:var(--ink); border:1px solid var(--line); border-radius:30px; padding:13px 18px; font-size:13px; cursor:pointer; box-shadow:0 5px 20px #171c2b12; }.whatsapp-launcher { width:56px; height:56px; border-radius:50%; display:grid; place-items:center; color:white; background:#20c966; box-shadow:0 6px 24px #20c96630; transition:transform .25s; }.whatsapp-launcher svg { width:36px; height:36px; }.whatsapp-launcher:hover { transform:translateY(-3px); }.help-dialog { position:fixed; margin:auto; width:min(390px,calc(100vw - 28px)); max-height:90svh; border:1px solid var(--line); border-radius:12px; padding:0; background:var(--paper); color:var(--ink); }.help-dialog::backdrop { background:#171c2b70; backdrop-filter:blur(3px); }.help-header { background:#8d283c; color:white; padding:18px 22px; display:flex; justify-content:space-between; align-items:center; }.help-header h2 { font-family:Arial,sans-serif; font-size:22px; font-weight:500; letter-spacing:0; }.help-close { font-size:18px; border:0; background:transparent; color:white; padding:5px; cursor:pointer; }.help-body { padding:22px; }.help-intro { font-size:14px; margin-bottom:18px; }.help-channels { display:flex; flex-direction:column; gap:10px; }.help-channel { text-align:center; border:1px solid #d4d8d0; border-radius:25px; padding:11px; font-size:13px; }.help-whatsapp { background:#e6f6ec; border-color:#bddfc8; }.help-email { text-align:center; font-size:12px; overflow-wrap:anywhere; padding:8px 0; }.help-form { border-top:1px solid var(--line); margin-top:20px; padding-top:8px; }.help-form label { display:block; font-size:12px; margin-top:14px; }.help-form input,.help-form textarea { width:100%; border:1px solid var(--line); background:white; padding:10px; border-radius:5px; margin-top:6px; font:14px Arial,sans-serif; }.help-form textarea { resize:vertical; }.help-form-note,.help-status { font-size:11px; line-height:1.5; margin-top:15px; }.help-submit { width:100%; background:#8d283c; color:white; border:0; border-radius:5px; padding:13px; font:14px Arial,sans-serif; margin-top:15px; cursor:pointer; }
@media(max-width:760px) { .call-banner { flex-direction:column; align-items:flex-start; }.call-pill { font-size:14px; padding:14px 20px; }.help-dock { right:14px; bottom:14px; gap:8px; }.help-launcher { font-size:11px; padding:11px 13px; }.whatsapp-launcher { width:48px; height:48px; }.help-dialog { max-height:90svh; }.contact-bottom { padding-bottom:50px; } }
.contact-trap { position:absolute!important; width:1px!important; height:1px!important; opacity:0; left:-10000px; pointer-events:none; }
/* Ayuda como panel no modal: no inmoviliza la página. */
.help-dialog { inset:auto 22px 90px auto; margin:0; width:min(390px,calc(100vw - 28px)); max-height:calc(100svh - 115px); z-index:60; overflow-y:auto; overscroll-behavior:contain; box-shadow:0 15px 50px #171c2b30; }
.help-dialog[open] { display:block; opacity:1!important; transform:none!important; visibility:visible!important; }.help-dialog[open] .help-body { animation:help-panel-enter .2s ease; }@keyframes help-panel-enter { from { opacity:.5; transform:translateY(5px); } to { opacity:1; transform:none; } }
@media(max-width:760px) { .help-dialog { right:14px; bottom:78px; max-height:calc(100svh - 96px); } }
/* Ayuda compacta con la paleta de Comunidad C.A.F.E. */
.help-dialog { width:min(320px,calc(100vw - 28px)); max-height:calc(100svh - 105px); border-radius:10px; border-top:3px solid var(--green); }
.help-header { background:var(--ink); padding:12px 16px; position:relative; }.help-header:after { content:''; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg,var(--red),var(--orange),var(--gold),var(--green),var(--blue),var(--violet)); }.help-header h2 { font-size:19px; }.help-close { font-size:16px; padding:3px; }.help-body { padding:16px; }.help-intro { font-size:12px; line-height:1.5; margin-bottom:12px; }.help-channels { gap:7px; }.help-channel { padding:8px 10px; font-size:12px; }.help-whatsapp { background:#79a84615; border-color:#79a84655; color:#365321; }.help-email { font-size:10px; padding:5px 0; }.help-form { margin-top:12px; padding-top:2px; }.help-form label { font-size:11px; margin-top:10px; }.help-form input,.help-form textarea { padding:8px; margin-top:4px; font-size:13px; border-radius:4px; }.help-form textarea { min-height:72px; }.help-form-note { font-size:10px; margin-top:10px; }.help-submit { background:#496827; padding:10px; margin-top:10px; font-size:12px; }.help-submit:hover { background:#365321; }.help-status { font-size:10px; margin-top:10px; }.help-status:empty { margin:0; }.help-form input:focus-visible,.help-form textarea:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
@media(max-width:760px) { .help-dialog { width:min(310px,calc(100vw - 28px)); bottom:76px; right:14px; }.help-body { padding:14px; } }
/* Invitación central a descubrir la comunidad. */
.intro .explore { display:flex; justify-content:center; align-items:center; gap:24px; margin:20px auto 0; padding:20px 30px; width:max-content; max-width:100%; border:1px solid #79a84670; border-radius:45px; background:white; box-shadow:0 9px 30px #79a84612; font-size:clamp(14px,1.3vw,19px); font-weight:600; letter-spacing:.1em; }
.intro .explore .explore-label { display:block; width:auto; height:auto; border:0; border-radius:0; background:none; animation:none; }
.intro .explore .explore-arrow { width:46px; height:46px; display:grid; place-items:center; flex-shrink:0; border-radius:50%; background:#79a84618; border:0; font-size:25px; animation:scroll-invite 2s ease-in-out infinite; }
.intro .explore:hover { border-color:var(--green); background:#f5f8f0; }.intro .explore:hover .explore-label { transform:none; }
@keyframes scroll-invite { 0%,100% { transform:translateY(-3px); } 50% { transform:translateY(4px); } }
@media(max-width:760px) { .intro .explore { gap:12px; padding:15px 19px; font-size:12px; letter-spacing:.06em; margin-top:18px; }.intro .explore .explore-arrow { width:38px; height:38px; font-size:22px; } }
/* Vista real de Google Maps, con toda la superficie enlazada. */
.location-map-card { padding:0; overflow:hidden; border-radius:10px; background:white; text-align:left; }.map-preview-surface { height:320px; position:relative; background:#eef0e9; }.map-preview-surface iframe { display:block; width:100%; height:100%; border:0; pointer-events:none; }.map-preview-surface>a { position:absolute; inset:0; z-index:1; display:block; }.map-preview-badge { position:absolute; top:16px; right:16px; padding:10px 15px; border-radius:25px; background:var(--ink); color:white; font-size:12px; box-shadow:0 3px 14px #171c2b20; transition:transform .25s,background .25s; }.map-preview-surface>a:hover .map-preview-badge { transform:translateY(-2px); background:#496827; }.map-preview-surface>a:focus-visible { outline:3px solid var(--blue); outline-offset:-4px; }.map-preview-caption { padding:20px 24px; }.map-preview-caption h3 { font-size:20px; margin:0; }.location .map-preview-caption p { margin:7px 0 0; font-size:12px; }
@media(max-width:760px) { .map-preview-surface { height:280px; }.map-preview-badge { font-size:11px; padding:9px 13px; }.map-preview-caption { padding:18px 20px; } }
.editor-highlight { outline:3px dashed #2d6fc4!important; outline-offset:5px; cursor:text; }.editor-added-note { max-width:850px; margin:28px auto 0; font-size:16px; line-height:1.8; white-space:pre-line; padding:0 20px; }

.community-video-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;margin-top:30px}.community-video-grid video {width:100%;aspect-ratio:16/9;background:#171c2b;border-radius:6px}@media(max-width:760px){.community-video-grid{grid-template-columns:1fr}}
