/* Casa Margarita · V220.71 · Eventos responsive móvil
   Módulo aislado: sólo afecta #eventos. */

.events-section {
  background:
    radial-gradient(circle at 8% 12%, rgba(167,118,70,.09), transparent 30rem),
    radial-gradient(circle at 92% 72%, rgba(89,62,40,.07), transparent 34rem),
    linear-gradient(180deg,#fbf7f1 0%,#f3ebe1 50%,#fbf7f1 100%);
  overflow:hidden;
}

.events-section .section-title-row { align-items:end; }
.events-intro-copy { max-width:500px; }
.events-intro-copy p { line-height:1.72; }
.events-intro-copy p + p { margin-top:12px; }

.events-cinematic,
.events-gallery-grid,
.events-more-types,
.events-possibilities,
.events-support-grid,
.events-disclaimer { max-width:1320px; margin-left:auto; margin-right:auto; }

.events-cinematic {
  position:relative;
  margin-top:clamp(28px,4vw,48px);
  min-height:clamp(560px,67vw,820px);
  border-radius:clamp(28px,4vw,48px);
  overflow:hidden;
  isolation:isolate;
  box-shadow:0 34px 90px rgba(49,31,20,.18);
  background:#20150f;
}
.events-cinematic > img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  transform:scale(1.003);
}
.events-cinematic-overlay {
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(90deg,rgba(17,11,8,.86) 0%,rgba(17,11,8,.57) 38%,rgba(17,11,8,.08) 72%),
    linear-gradient(180deg,rgba(17,11,8,.06),rgba(17,11,8,.28));
}
.events-cinematic-copy {
  position:absolute; z-index:2; left:clamp(24px,5vw,72px); bottom:clamp(34px,6vw,76px);
  width:min(620px,calc(100% - 48px)); color:#fffaf2;
}
.events-cinematic-copy .overline { color:#dfc19b; }
.events-cinematic-copy h3 {
  margin:10px 0 0; font-family:var(--serif); font-size:clamp(44px,6.8vw,86px);
  line-height:.9; letter-spacing:-.048em; font-weight:600;
}
.events-cinematic-copy p {
  margin:22px 0 0; max-width:570px; color:rgba(255,250,242,.76); line-height:1.72;
}
.events-hero-cta { margin-top:26px; }
.events-visual-note {
  position:absolute; z-index:2; right:clamp(18px,3vw,34px); bottom:clamp(18px,3vw,30px);
  padding:9px 13px; border-radius:999px; border:1px solid rgba(255,255,255,.2);
  background:rgba(19,12,8,.46); backdrop-filter:blur(12px); color:rgba(255,250,242,.82);
  font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
}

.events-gallery-grid {
  margin-top:clamp(18px,2.2vw,28px);
  display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(14px,1.7vw,22px);
}
.events-gallery-card {
  grid-column:span 5; position:relative; min-height:390px; border-radius:clamp(22px,2.8vw,34px);
  overflow:hidden; isolation:isolate; box-shadow:0 22px 60px rgba(49,31,20,.12);
}
.events-gallery-card-wide { grid-column:span 7; }
.events-gallery-card img,
.events-possibilities-media img,
.events-bathroom-media img { width:100%; height:100%; object-fit:cover; display:block; }
.events-gallery-card img { transition:transform .75s cubic-bezier(.2,.7,.2,1),filter .45s ease; }
.events-gallery-card::after,
.events-possibilities-media::after {
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  background:linear-gradient(180deg,transparent 48%,rgba(17,11,8,.78) 100%);
}
.events-gallery-card:hover img { transform:scale(1.025); filter:saturate(1.03) contrast(1.02); }
.events-gallery-caption {
  position:absolute; z-index:2; left:clamp(18px,2.3vw,30px); right:clamp(18px,2.3vw,30px); bottom:clamp(18px,2.3vw,28px);
  display:flex; align-items:flex-end; justify-content:space-between; gap:18px; color:#fffaf2;
}
.events-gallery-caption span {
  font-family:var(--serif); font-size:clamp(30px,3.3vw,46px); line-height:.95; font-weight:600; letter-spacing:-.04em;
  text-shadow:0 4px 25px rgba(0,0,0,.28);
}
.events-gallery-caption small {
  flex:0 0 auto; padding:8px 11px; border:1px solid rgba(255,255,255,.28); border-radius:999px;
  background:rgba(24,15,10,.38); backdrop-filter:blur(10px); color:rgba(255,250,242,.86);
  font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.1em;
}

.events-more-types {
  margin-top:clamp(22px,3vw,34px); display:flex; align-items:center; justify-content:space-between; gap:22px; padding:0 4px;
}
.events-more-types p { margin:0; max-width:880px; color:var(--muted); line-height:1.72; }
.events-more-types .btn { flex:0 0 auto; }

.events-possibilities {
  margin-top:clamp(58px,8vw,104px); display:grid; grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);
  gap:0; border-radius:clamp(30px,4vw,48px); overflow:hidden; background:#21170f; color:#fffaf2;
  box-shadow:0 34px 88px rgba(39,25,15,.19);
}
.events-possibilities-media { position:relative; min-height:650px; overflow:hidden; }
.events-possibilities-media img { position:absolute; inset:0; }
.events-custom-copy { padding:clamp(30px,4.2vw,58px); align-self:center; }
.events-custom-copy .overline { color:#d9ba91; }
.events-custom-copy h3,
.events-process h3 {
  font-family:var(--serif); font-size:clamp(42px,5.3vw,70px); line-height:.92; letter-spacing:-.045em; font-weight:600; margin:0;
}
.events-custom-copy h3 { margin-top:10px; }
.events-custom-copy > p { margin:20px 0 0; color:rgba(255,250,242,.72); line-height:1.72; }
.events-service-grid { margin-top:30px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.events-service-item {
  display:flex; align-items:center; gap:12px; min-height:58px; padding:12px 14px; border-radius:18px;
  border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.055); color:rgba(255,250,242,.92);
  line-height:1.35; font-size:14px; font-weight:650;
}
.events-service-item svg { width:22px; height:22px; flex:0 0 22px; fill:none; stroke:#d7b990; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.events-provider-note { margin-top:22px!important; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); font-size:13px; }

.events-support-grid {
  margin-top:clamp(22px,3vw,34px); display:grid; grid-template-columns:minmax(330px,.78fr) minmax(0,1.22fr); gap:clamp(16px,2vw,24px); align-items:stretch;
}
.events-bathroom-card,
.events-process {
  border-radius:clamp(26px,3vw,38px); overflow:hidden; border:1px solid rgba(82,57,39,.12); background:rgba(255,255,255,.62);
}
.events-bathroom-card { display:flex; flex-direction:column; }
.events-bathroom-media { position:relative; aspect-ratio:4/3; overflow:hidden; background:#ded3c6; }
.events-reference-badge {
  position:absolute; right:14px; bottom:14px; padding:7px 10px; border-radius:999px; background:rgba(22,15,10,.7);
  color:rgba(255,250,242,.88); border:1px solid rgba(255,255,255,.2); backdrop-filter:blur(10px);
  font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
}
.events-bathroom-copy { padding:24px 24px 28px; }
.events-bathroom-copy strong { display:block; font-family:var(--serif); font-size:31px; line-height:1; font-weight:600; letter-spacing:-.025em; color:var(--brown-dark); }
.events-bathroom-copy p { margin:10px 0 0; color:var(--muted); line-height:1.63; font-size:13px; }

.events-process { padding:clamp(28px,4vw,52px); }
.events-process-head .overline { display:block; margin-bottom:10px; }
.events-process-head > p { margin:20px 0 0; max-width:760px; color:var(--muted); line-height:1.72; }
.events-steps { margin-top:28px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.events-step { min-height:148px; border-radius:22px; border:1px solid rgba(82,57,39,.11); background:#fbf7f1; padding:20px; }
.events-step span { display:inline-flex; width:34px; height:34px; align-items:center; justify-content:center; border-radius:50%; background:#eee0cf; color:var(--brown-dark); font-size:11px; font-weight:850; }
.events-step strong { display:block; margin-top:14px; font-family:var(--serif); font-size:23px; line-height:1; font-weight:600; color:var(--brown-dark); }
.events-step p { margin:8px 0 0; color:var(--muted); font-size:12.5px; line-height:1.55; }
.events-actions { margin-top:26px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.events-disclaimer { margin-top:20px; margin-bottom:0; color:var(--muted); line-height:1.6; font-size:11px; text-align:center; }

.events-section,
#eventos-proceso { scroll-margin-top:calc(var(--nav-h,76px) + 22px); }

@media (max-width:1080px) {
  .events-cinematic { min-height:660px; }
  .events-gallery-card,.events-gallery-card-wide { grid-column:span 6; min-height:390px; }
  .events-possibilities { grid-template-columns:1fr; }
  .events-possibilities-media { min-height:560px; }
  .events-support-grid { grid-template-columns:1fr; }
  .events-bathroom-card { display:grid; grid-template-columns:1.05fr .95fr; }
  .events-bathroom-media { aspect-ratio:auto; min-height:360px; }
  .events-bathroom-copy { align-self:center; }
}

@media (max-width:760px) {
  .events-section { padding-left:max(18px,var(--safe)); padding-right:max(18px,var(--safe)); }
  .events-section .section-title-row { gap:18px; }
  .events-intro-copy { max-width:none; }
  .events-intro-copy p { font-size:16px; line-height:1.58; }
  .events-intro-copy p + p { margin-top:10px; }

  .events-cinematic { min-height:0; aspect-ratio:4/5; border-radius:28px; }
  .events-cinematic-overlay {
    background:
      linear-gradient(180deg,rgba(17,11,8,.06) 15%,rgba(17,11,8,.26) 46%,rgba(17,11,8,.91) 100%);
  }
  .events-cinematic-copy { left:22px; right:22px; bottom:72px; width:auto; }
  .events-cinematic-copy h3 { font-size:48px; line-height:.9; }
  .events-cinematic-copy p { margin-top:16px; font-size:13px; line-height:1.56; }
  .events-hero-cta { margin-top:18px; }
  .events-visual-note {
    left:22px; right:22px; bottom:18px; max-width:none; white-space:normal;
    padding:8px 11px; font-size:8.5px; line-height:1.35;
  }

  .events-gallery-grid { grid-template-columns:1fr; gap:14px; }
  .events-gallery-card,.events-gallery-card-wide { grid-column:auto; min-height:0; aspect-ratio:4/3; }
  .events-gallery-caption { align-items:flex-start; flex-direction:column; gap:7px; }
  .events-gallery-caption span { font-size:34px; line-height:.94; }
  .events-gallery-caption small { padding:7px 10px; font-size:8.5px; }

  .events-more-types { margin-top:20px; align-items:flex-start; flex-direction:column; gap:14px; }
  .events-more-types p { font-size:16px; line-height:1.58; }
  .events-more-types .btn { width:auto; }

  .events-possibilities { margin-top:48px; border-radius:30px; }
  .events-possibilities-media { min-height:0; aspect-ratio:4/3; }
  .events-custom-copy { padding:28px 20px 30px; }
  .events-custom-copy h3,.events-process h3 { font-size:46px; line-height:.9; }
  .events-custom-copy > p { margin-top:16px; font-size:15px; line-height:1.58; }
  .events-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:24px; }
  .events-service-item { min-height:64px; padding:11px 10px; gap:9px; font-size:12.5px; }
  .events-service-item svg { width:20px; height:20px; flex-basis:20px; }
  .events-provider-note { margin-top:18px!important; padding-top:17px; font-size:12.5px; line-height:1.55; }

  .events-support-grid { margin-top:18px; }
  .events-bathroom-card { display:block; }
  .events-bathroom-media { min-height:0; aspect-ratio:4/3; }
  .events-bathroom-copy { padding:20px 20px 22px; }
  .events-bathroom-copy strong { font-size:29px; }
  .events-bathroom-copy p { font-size:12.5px; line-height:1.55; }

  .events-process { padding:26px 20px; }
  .events-process-head > p { margin-top:16px; font-size:15px; line-height:1.58; }
  .events-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:22px; }
  .events-step { min-height:0; padding:17px 14px 16px; }
  .events-step span { width:32px; height:32px; }
  .events-step strong { margin-top:12px; font-size:21px; line-height:1.02; }
  .events-step p { margin-top:7px; font-size:11.5px; line-height:1.48; }
  .events-actions { margin-top:22px; align-items:stretch; flex-direction:column; }
  .events-actions .btn,.events-hero-cta { width:100%; }
  .events-disclaimer { margin-top:16px; font-size:10.5px; line-height:1.5; }
}

@media (max-width:440px) {
  .events-cinematic { aspect-ratio:4/5; }
  .events-cinematic-copy { bottom:70px; }
  .events-cinematic-copy h3 { font-size:42px; }
  .events-gallery-card,.events-gallery-card-wide { aspect-ratio:4/3; }
  .events-possibilities-media { aspect-ratio:4/3; }
}

@media (max-width:360px) {
  .events-service-grid,
  .events-steps { grid-template-columns:1fr; }
}
