
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: "Poppins", "Helvetica Neue", Arial, sans-serif;
}

body {
  color: #2b1a2f;
  background: radial-gradient(circle at top left,#ffeef5 0%,#fff 40%,#fff 100%);
  line-height: 1.5;
}

header.hero {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  place-items: center;
  text-align: center;
  padding: 4rem 1rem 2rem;
  background: linear-gradient(
      rgba(0,0,0,0.4),
      rgba(0,0,0,0.5)
    ),
    url("assets/portada.jpg") center/cover no-repeat;
  color: #fff;
}

header.hero .logo-line {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  max-width: 800px;
}

.logo-img {
  width: 90px;
  height: 90px;
  border-radius: 999px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.4);
}

.logo-img img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero h1 {
  font-size: clamp(1.8rem, 2vw + 1rem, 2.4rem);
  font-weight: 600;
  line-height: 1.2;
}

.hero p.tagline {
  font-size: 1rem;
  font-weight: 300;
  max-width: 600px;
  color: #ffeef5;
}

.hero .contact-line {
  margin-top:1rem;
  font-size:1rem;
  background: rgba(0,0,0,.4);
  padding:.5rem 1rem;
  border-radius:999px;
  backdrop-filter: blur(4px);
}

main {
  max-width:1200px;
  margin:0 auto;
  padding:2rem 1rem 5rem;
  display:grid;
  gap:3rem;
}

/* sections cards */
.section-card {
  background:#ffffffcc;
  backdrop-filter: blur(6px);
  border-radius:1.5rem;
  box-shadow:0 20px 60px rgba(0,0,0,.07);
  padding:2rem;
  display:grid;
  gap:1rem;
  border:1px solid rgba(255,192,203,.4);
}

.section-card h2 {
  font-size:1.4rem;
  font-weight:600;
  color:#5a214d;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem;
}

.section-card h2 span.sub {
  font-size:.9rem;
  font-weight:400;
  color:#9e5d8e;
}

/* Servicios grid */
.servicios-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));
  gap:1rem;
  font-size:.95rem;
  color:#2b1a2f;
}

.servicio-chip {
  background:#fff;
  border-radius:1rem;
  padding:1rem 1rem 1.25rem;
  border:1px solid rgba(90,33,77,.15);
  box-shadow:0 8px 24px rgba(0,0,0,.05);
}

.servicio-chip strong {
  color:#5a214d;
  font-size:1rem;
  font-weight:600;
  display:block;
  margin-bottom:.35rem;
}

/* Galería */
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));
  gap:1rem;
}

.gallery-grid img {
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:1rem;
  box-shadow:0 15px 40px rgba(0,0,0,.1);
  cursor:pointer;
  transition:all .2s;
  border:2px solid #fff;
}

.gallery-grid img:hover {
  transform:scale(1.03);
  box-shadow:0 20px 50px rgba(0,0,0,.18);
}

/* Lightbox */
#lightbox {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.8);
  display:none;
  justify-content:center;
  align-items:center;
  padding:1rem;
  z-index:9999;
}

#lightbox img {
  max-width:90vw;
  max-height:85vh;
  border-radius:1rem;
  box-shadow:0 20px 60px rgba(0,0,0,.6);
}

/* Redes */
.redes-wrap {
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:flex-start;
}

.redes-info {
  flex:1 1 260px;
  font-size:.95rem;
  color:#2b1a2f;
}

.social-links {
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1rem;
}

.social-links a {
  background:#5a214d;
  color:#fff;
  text-decoration:none;
  font-size:.9rem;
  padding:.6rem 1rem;
  line-height:1;
  border-radius:999px;
  box-shadow:0 10px 30px rgba(90,33,77,.4);
}

.iframe-col {
  flex:2 1 320px;
  min-height:350px;
  display:grid;
  gap:1rem;
}
.iframe-card {
  background:#fff;
  border-radius:1rem;
  border:1px solid rgba(90,33,77,.15);
  box-shadow:0 12px 32px rgba(0,0,0,.07);
  overflow:hidden;
  min-height:170px;
  display:flex;
  flex-direction:column;
}

.iframe-card header {
  background:#5a214d;
  color:#fff;
  font-size:.9rem;
  padding:.5rem .75rem;
  font-weight:500;
}

.iframe-card .frame-box {
  flex:1;
  background:#000;
  display:flex;
  align-items:center;
  justify-content:center;
}

.iframe-card iframe {
  width:100%;
  height:100%;
  border:0;
}

/* Video section */
.video-wrapper {
  position:relative;
  width:100%;
  max-width:800px;
  margin-inline:auto;
  aspect-ratio:16/9;
  border-radius:1rem;
  overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.2);
  border:2px solid #fff;
}

.video-wrapper iframe {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

/* Formulario */
form.contact-form {
  display:grid;
  gap:1rem;
  max-width:500px;
}

.contact-form label {
  font-size:.8rem;
  font-weight:500;
  color:#5a214d;
}

.contact-form input,
.contact-form textarea {
  width:100%;
  border-radius:.75rem;
  border:1px solid rgba(90,33,77,.3);
  padding:.75rem 1rem;
  font-size:1rem;
  background:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.03) inset;
}

.contact-form button {
  cursor:pointer;
  border:none;
  border-radius:999px;
  background:#5a214d;
  color:#fff;
  padding:.8rem 1.2rem;
  font-size:1rem;
  font-weight:600;
  box-shadow:0 15px 40px rgba(90,33,77,.4);
  transition:.15s;
}

.contact-form button:hover {
  transform:translateY(-2px);
  box-shadow:0 20px 50px rgba(90,33,77,.5);
}

/* footer */
footer {
  background:#2b1a2f;
  color:#fff;
  text-align:center;
  padding:2rem 1rem 5rem;
  font-size:.8rem;
  line-height:1.4;
}

footer a {
  color:#ffccf5;
  text-decoration:none;
  font-weight:500;
}

/* WhatsApp floating */
.whatsapp-float {
  position:fixed;
  right:1rem;
  bottom:1rem;
  z-index:9999;
  background:#25D366;
  color:#fff;
  font-weight:600;
  border-radius:999px;
  padding:.8rem 1rem;
  box-shadow:0 20px 40px rgba(0,0,0,.4);
  display:flex;
  align-items:center;
  gap:.5rem;
  text-decoration:none;
  font-size:.9rem;
}

/* audio (hidden) */
#bg-music {
  display:none;
}

/* responsive tweaks */
@media(min-width:768px){
  header.hero{
    padding:5rem 1rem 3rem;
  }
  .hero h1{
    font-size:2.6rem;
  }
  .hero p.tagline{
    font-size:1.1rem;
  }
}
