/* =========================================================
   www.nuestraunion.cl (landing base)
   Estilo basado en la invitación adjunta.
   Nota: la tipografía exacta no se puede validar solo con la imagen.
   Se usan fuentes públicas similares (Google Fonts) con fallback.
   ========================================================= */

/* (Opcional) Google Fonts. Si no quieres depender de internet,
   descarga/auto-hospeda estas fuentes y ajusta las URLs. */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600&family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400&family=Great+Vibes&display=swap');

:root{
  /* Paleta extraída (promedios) desde la imagen */
  --bg-1: #f9ebea;
  --bg-2: #faeeec;
  --bg-3: #eee0dc;
  --gold: #cb8f46;
  --gold-soft: #ceac80;

  --ink: #2f2f2f;
  --ink-2: #6b5f5a;

  --card: rgba(255,255,255,.72);

  --radius: 18px;
  --radius-sm: 12px;
  --shadow: 0 18px 45px rgba(0,0,0,.10);

  --maxw: 980px;
}

/* Reset mínimo*/
*{box-sizing:border-box}

body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at 50% -20%, var(--bg-2), transparent 65%),
    radial-gradient(900px 700px at 0% 30%, var(--bg-1), transparent 60%),
    radial-gradient(900px 700px at 100% 70%, var(--bg-1), transparent 60%),
    linear-gradient(180deg, var(--bg-2), var(--bg-3));
  font-family: "Cormorant Garamond", "Georgia", serif;
  line-height:1.45;
}

/* Textura sutil “papel” (CSS-only) */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(0deg, rgba(0,0,0,.012) 0 1px, rgba(255,255,255,0) 1px 3px),
    repeating-linear-gradient(90deg, rgba(0,0,0,.010) 0 1px, rgba(255,255,255,0) 1px 4px);
  mix-blend-mode:multiply;
  opacity:.35;
}

/* Decoraciones (esquinas) */
.decor{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
}
.decor .tl, .decor .br{
  position:absolute;
  width:min(220px, 30vw);
  opacity:.70;
  filter:saturate(.95) contrast(.98);
}
.decor .tl{left:18px; top:18px}
.decor .br{right:18px; bottom:18px; transform:scaleX(-1)}
.decor .br2{left:18px; bottom:18px; transform:none; opacity:.55}
.decor .tl2{right:18px; top:18px; transform:scaleX(-1); opacity:.55}

/* Layout principal */
.wrap{
  position:relative;
  z-index:1;
  max-width:var(--maxw);
  margin:0 auto;
  padding:42px 18px 64px;
}

/* Marco exterior tipo invitación */
.frame{
  position:relative;
  padding:28px 18px 40px;
  border-radius: 26px;
  background: rgba(255,255,255,.35);
  box-shadow: var(--shadow);
  border: 1px solid rgba(206,172,128,.55);
}
.frame::before{
  content:"";
  position:absolute;
  inset:14px;
  border-radius: 22px;
  border: 1px solid rgba(206,172,128,.55);
  pointer-events:none;
}
.frame::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius: 26px;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.35), rgba(255,255,255,.10));
}

/* Header/Hero */
.hero{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:22px;
  align-items:center;
  padding: 10px 8px 20px;
}

@media (max-width: 840px){
  .hero{grid-template-columns:1fr; text-align:center}
}

.photo-frame{
  display:flex;
  justify-content:center;
}
.photo{
  width:min(520px, 100%);
  border-radius: 14px;
  background:#fff;
  padding:10px;
  border:1px solid rgba(206,172,128,.7);
  box-shadow: 0 14px 35px rgba(0,0,0,.12);
}
.photo img{
  display:block;
  width:100%;
  height:auto;
  border-radius: 10px;
}

.hero-text{
  padding: 6px 8px;
}

.kicker{
  font-family: "Cinzel", "Times New Roman", serif;
  letter-spacing:.06em;
  font-size:14px;
  color:var(--ink-2);
  text-transform:uppercase;
  margin:0 0 10px;
}

.quote{
  font-family: "Great Vibes", "Brush Script MT", cursive;
  font-size: 44px;
  line-height:1.05;
  margin: 0 0 14px;
  color:var(--ink);
}
@media (max-width: 840px){
  .quote{font-size:40px}
}

.names{
  font-family:"Cinzel","Times New Roman",serif;
  font-size: 28px;
  margin: 0 0 10px;
}
.names .and{
  display:inline-block;
  margin:0 8px;
  font-family:"Cormorant Garamond",serif;
  font-style:italic;
  font-size:22px;
  color:var(--ink-2);
}

/* Separador dorado */
.sep{
  position:relative;
  height:18px;
  margin: 10px auto 14px;
}
.sep::before{
  content:"";
  position:absolute;
  left:0; right:0;
  top:50%;
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(203,143,70,.85), transparent);
}
.sep::after{
  content:"✦";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-55%);
  color: rgba(203,143,70,.95);
  font-size: 14px;
  background: rgba(255,255,255,.70);
  padding: 0 10px;
}

/* Caja informativa “biselada” */
.info{
  margin: 16px auto 20px;
  max-width: 860px;
  background: var(--card);
  border-radius: var(--radius);
  padding: 18px 18px;
  border: 1px solid rgba(206,172,128,.70);
  box-shadow: 0 10px 28px rgba(0,0,0,.08);
  position:relative;
}
.info::before{
  content:"";
  position:absolute;
  inset:10px;
  border-radius: calc(var(--radius) - 8px);
  border: 1px solid rgba(206,172,128,.35);
  pointer-events:none;
}
.info p{
  margin:0;
  font-size: 20px;
  color: var(--ink);
}
@media (max-width: 520px){
  .info p{font-size: 18px}
}

/* Zona de links tipo “estrella” */
.links{
  margin-top: 16px;
  padding-top: 4px;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.links h2{
  font-family:"Cinzel","Times New Roman",serif;
  font-size: 20px;
  letter-spacing:.05em;
  margin: 0 0 8px;
  color: var(--ink-2);
  text-transform:uppercase;
}
.star{
  position:relative;
  width: 440px;
  height: 440px;
  margin: 12px auto 0;
}
@media (max-width: 520px){
  .star{width: 320px; height: 320px}
}

/* Circulos */
.bubble{
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%,-50%);
  width: 150px;
  height: 150px;
  border-radius: 999px;
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding: 14px;
  color: var(--ink);
  border: 1px solid rgba(206,172,128,.80);
  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,.85), rgba(255,255,255,.55) 55%, rgba(255,255,255,.25) 100%);
  box-shadow: 0 10px 28px rgba(0,0,0,.10);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.bubble:hover{
  filter: brightness(1.02);
  box-shadow: 0 14px 34px rgba(0,0,0,.14);
}

/* Texto dentro */
.bubble .mini{
  font-family:"Cinzel","Times New Roman",serif;
  font-size: 14px;
  letter-spacing:.05em;
  text-transform:uppercase;
  color: var(--ink-2);
}
.bubble .full{
  margin-top:6px;
  font-size: 20px;
  line-height:1.15;
  font-weight:600;
}

/* Ajustes responsive (círculos más chicos) */
@media (max-width: 520px){
  .bubble{width: 112px; height: 112px}
  .bubble .full{font-size:16px}
  .bubble .mini{font-size:12px}
}

/* Posiciones tipo estrella (5 items) */
.star a:nth-child(1){ transform: translate(-50%,-50%) translate(0px,-150px); }
.star a:nth-child(2){ transform: translate(-50%,-50%) translate(143px,-46px); }
.star a:nth-child(3){ transform: translate(-50%,-50%) translate(88px,121px); }
.star a:nth-child(4){ transform: translate(-50%,-50%) translate(-88px,121px); }
.star a:nth-child(5){ transform: translate(-50%,-50%) translate(-143px,-46px); }

@media (max-width: 520px){
  .star a:nth-child(1){ transform: translate(-50%,-50%) translate(0px,-108px); }
  .star a:nth-child(2){ transform: translate(-50%,-50%) translate(103px,-33px); }
  .star a:nth-child(3){ transform: translate(-50%,-50%) translate(64px,88px); }
  .star a:nth-child(4){ transform: translate(-50%,-50%) translate(-64px,88px); }
  .star a:nth-child(5){ transform: translate(-50%,-50%) translate(-103px,-33px); }
}

/* Footer */
.footer{
  margin-top: 20px;
  text-align:center;
  color: var(--ink-2);
  font-size: 16px;
}
.footer a{
  color: var(--ink);
  text-decoration:none;
  border-bottom: 1px solid rgba(203,143,70,.55);
}
.footer a:hover{border-bottom-color: rgba(203,143,70,.95)}
