:root{
  --pink: #C2036E;
  --pink-2: #E01583;
  --purple-deep: #7A1850;
  --purple-dark: #55103A;
  --ink: #3A0F29;
  --bg-soft: #FDF1F7;
  --white: #FFFFFF;
  --radius: 18px;
  --shadow: 0 10px 30px rgba(122,24,80,.18);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Poppins',system-ui,-apple-system,Segoe UI,sans-serif;
  color:var(--ink);
  background:linear-gradient(rgba(255,255,255,.7),rgba(255,255,255,.7)), url('bg-pattern.png') repeat;
  background-color:var(--white);
  background-size:auto, 220px auto;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}

/* Header */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(122,24,80,.08);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:12px;gap:12px;}
.brand{display:flex;align-items:center;gap:6px;flex:none;}
.brand-mark{height:34px;width:auto;}
.brand-word{font-weight:800;letter-spacing:.01em;color:var(--pink);font-size:15px;white-space:nowrap;}
.main-nav{display:flex;gap:26px;font-weight:600;font-size:14.5px;}
.main-nav a{color:var(--ink);opacity:.8;}
.main-nav a:hover{opacity:1;color:var(--pink);}
.header-cta{font-size:14px;padding:9px 16px;}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 22px;border-radius:999px;font-weight:700;font-size:15px;
  border:2px solid transparent; transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-whatsapp{background:#25D366;color:#fff;box-shadow:0 8px 18px rgba(37,211,102,.35);}
.btn-light{background:var(--white);color:var(--purple-deep);}
.btn-outline{border-color:var(--pink);color:var(--pink);background:transparent;}
.btn-outline:hover{background:var(--pink);color:#fff;}
.btn.large{font-size:18px;padding:16px 30px;}

/* Hero */
.hero{
  position:relative;
  background:
    radial-gradient(120% 140% at 15% 0%, rgba(194,3,110,.93) 0%, rgba(224,21,131,.90) 35%, rgba(122,24,80,.94) 75%, rgba(85,16,58,.97) 100%),
    url('photos/galeria-1.jpg') center 35%/cover no-repeat;
  color:#fff;
  overflow:hidden;
  padding:88px 0 100px;
  text-align:center;
}
.hero-pattern{
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 85% 15%, rgba(255,255,255,.10) 0, rgba(255,255,255,.10) 60px, transparent 61px),
    radial-gradient(circle at 8% 80%, rgba(255,255,255,.08) 0, rgba(255,255,255,.08) 90px, transparent 91px);
  pointer-events:none;
}
.hero-inner{position:relative;}
.sr-only{
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.hero-mark{width:min(320px,72vw);height:auto;margin:0 auto 22px;filter:drop-shadow(0 14px 30px rgba(0,0,0,.28));}
.tagline{font-size:18px;font-weight:600;opacity:.95;margin:10px 0 2px;}
.signature{
  font-family:'Caveat',cursive;
  font-size:26px;
  opacity:.9;
  margin:0 0 30px;
}
.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:10px;}

/* Info bar */
.info-bar{background:var(--bg-soft) url('bg-pattern.png') repeat;background-size:220px auto;padding:28px 0;}
.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.info-item{display:flex;align-items:flex-start;gap:12px;}
.info-item img{width:26px;height:26px;flex:none;margin-top:2px;}
.info-item strong{display:block;font-size:13px;color:var(--pink);text-transform:uppercase;letter-spacing:.04em;}
.info-item span{font-size:14.5px;color:var(--ink);}
.info-item a{text-decoration:underline;text-decoration-color:rgba(194,3,110,.4);}

/* Sections */
.section{padding:72px 0;}
.eyebrow{color:var(--pink);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:13px;margin:0 0 10px;}
.eyebrow.center{text-align:center;}
h2{font-size:clamp(24px,3.4vw,34px);color:var(--purple-deep);margin:0 0 16px;font-weight:800;}
h2.center{text-align:center;}
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;}
.col-text p{line-height:1.65;color:#4a2438;}

.photo-frame{
  border-radius:var(--radius);
  overflow:hidden;
  aspect-ratio:4/3;
  box-shadow:var(--shadow);
}
.photo-frame img{width:100%;height:100%;object-fit:cover;display:block;}
.photo-frame.placeholder{
  background:linear-gradient(135deg,var(--bg-soft),#f6dceb);
  border:2px dashed rgba(194,3,110,.35);
  display:flex;align-items:center;justify-content:center;
  color:var(--pink);font-weight:600;text-align:center;font-size:14px;
  box-shadow:none;
}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.photo-frame.small{aspect-ratio:1/1;font-size:13px;}

.map-frame{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(122,24,80,.1);}
.map-frame iframe{width:100%;height:380px;border:0;display:block;}
.map-actions{display:flex;gap:14px;justify-content:center;margin-top:22px;flex-wrap:wrap;}

.contacto{background:linear-gradient(135deg,var(--purple-deep),var(--purple-dark));color:#fff;text-align:center;border-radius:32px;margin:0 24px;max-width:1080px;margin-left:auto;margin-right:auto;}
.contacto h2{color:#fff;}
.contacto p{opacity:.9;margin-bottom:26px;}

/* Footer */
.site-footer{background:var(--ink);color:#fff;padding:36px 0;margin-top:40px;}
.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.footer-mark{height:34px;width:auto;margin-bottom:8px;}
.footer-inner p{margin:2px 0;font-size:13.5px;opacity:.85;}
.footer-info{text-align:right;}

@media (max-width:820px){
  .main-nav{display:none;}
  .two-col{grid-template-columns:1fr;}
  .info-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .footer-inner{flex-direction:column;text-align:center;}
  .footer-info{text-align:center;}
}

@media (max-width:480px){
  .wrap{padding:0 14px;}
  .brand{gap:4px;}
  .brand-mark{height:26px;}
  .brand-word{font-size:12.5px;letter-spacing:0;}
  .header-cta{font-size:12.5px;padding:8px 12px;gap:6px;}
  .header-cta img{width:15px;height:15px;}
}
