:root{
  --sv-bg: #e9e1d6;
  --sv-bg-soft: #f3ece3;
  --sv-canvas: #f7f2eb;
  --sv-canvas-2: #f4ede4;
  --sv-panel: #faf6f0;

  --sv-text: #151311;
  --sv-text-soft: #655d56;
  --sv-text-fade: #96897d;

  --sv-black: #111111;
  --sv-line: rgba(34, 29, 24, 0.10);
  --sv-line-soft: rgba(34, 29, 24, 0.06);

  --sv-nude: #e4d6c4;
  --sv-nude-deep: #cdb9a0;
  --sv-bone: #f6f0e7;
  --sv-white: #ffffff;

  --sv-shadow-panel: 0 32px 80px rgba(24, 18, 13, 0.08);
  --sv-shadow-soft: 0 18px 40px rgba(24, 18, 13, 0.06);

  --sv-radius-xl: 38px;
  --sv-radius-lg: 30px;
  --sv-radius-md: 24px;
  --sv-radius-sm: 18px;
  --sv-pill: 999px;

  --sv-wrap: 1820px;
  --sv-inner: 1540px;
  --sv-ease: cubic-bezier(.22,.61,.36,1);
}

/* =========================
   RESET GENERAL DE LA PÁGINA
   ========================= */
*,
*::before,
*::after{
  box-sizing:border-box;
}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body.bodas-page{
  margin:0;
  color:var(--sv-text);
  font-family:'Inter',sans-serif;
  background:
    radial-gradient(circle at 12% 10%, rgba(255,255,255,.18), transparent 18%),
    radial-gradient(circle at 88% 20%, rgba(205,185,160,.18), transparent 18%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1600' height='2200' viewBox='0 0 1600 2200'%3E%3Crect width='1600' height='2200' fill='%23e9e1d6'/%3E%3Cg fill='none' stroke='%23111111' stroke-opacity='.10' stroke-width='18'%3E%3Cpath d='M111 88c105 88 172 183 148 294-24 106-137 170-131 279 6 117 134 159 214 240 88 89 103 219 27 317-53 68-147 86-220 141-86 64-151 187-102 300 36 82 124 122 198 174'/%3E%3Cpath d='M1360 74c-119 84-192 194-176 320 15 117 129 162 147 279 17 106-57 184-112 270-61 97-99 242-20 338 63 76 178 92 265 154 95 68 128 171 95 301'/%3E%3Cpath d='M542 0c63 90 80 170 40 254-37 78-118 125-128 220-13 122 98 181 158 274 55 85 59 175 9 252-43 66-113 109-146 183-49 111-8 234 71 317'/%3E%3Cpath d='M976 60c72 98 87 198 44 287-33 69-91 102-114 177-42 138 89 218 130 327 27 73 18 144-17 212-48 95-148 136-180 239-35 113 28 232 90 321'/%3E%3C/g%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.18' stroke-width='46'%3E%3Cpath d='M140 112c110 104 155 197 128 286-21 70-79 121-102 197-46 156 111 220 193 324 74 94 92 219 18 327-52 76-153 115-211 199-74 107-60 245 21 339'/%3E%3Cpath d='M1330 98c-96 76-157 157-174 255-16 95 21 168 11 264-14 136-120 199-144 327-18 94 14 182 80 252 89 94 229 116 293 236 57 106 14 220-25 334'/%3E%3C/g%3E%3C/svg%3E");
  background-size:cover;
  background-attachment:fixed;
  overflow-x:hidden;
}

img{
  display:block;
  width:100%;
  height:auto;
}

a{
  color:inherit;
  text-decoration:none;
}

/* =========================
   LAYOUT PRINCIPAL
   ========================= */
.weddings-editorial{
  position:relative;
  width:min(var(--sv-wrap), calc(100% - 44px));
  margin:26px auto 34px;
  background:linear-gradient(180deg, #faf6f1 0%, #f5eee6 100%);
  border:1px solid rgba(34,29,24,.10);
  box-shadow:var(--sv-shadow-panel);
  overflow:hidden;
}

/* puntos eliminados */
.weddings-editorial::before{
  display:none;
}

.weddings-editorial::after{
  content:"";
  position:absolute;
  top:72px;
  left:0;
  right:0;
  height:1px;
  background:rgba(34,29,24,.10);
  z-index:2;
}

.wrap{
  width:min(var(--sv-inner), calc(100% - 72px));
  margin:0 auto;
}

.section{
  position:relative;
  padding:84px 0;
}

.section + .section::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:calc(100% - 120px);
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(34,29,24,.08), transparent);
}

/* =========================
   TIPOGRAFÍA BASE
   ========================= */
.eyebrow,
.section-kicker,
.tip-kicker,
.hero-bodas__note-label,
.feature-block__tip-kicker,
.story-panel__tip-kicker,
.candles-bridge__tip-kicker{
  display:inline-block;
  margin:0 0 10px;
  font-family:'Inter',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--sv-text-fade);
}

.section-title{
  margin:0;
  font-family:'Playfair Display',serif;
  font-weight:500;
  font-size:clamp(40px, 5vw, 76px);
  line-height:.98;
  letter-spacing:.005em;
  color:var(--sv-black);
  text-wrap:balance;
}

.section-title--narrow{
  max-width:920px;
}

.section-head{
  margin-bottom:28px;
}

.hero-bodas__title{
  margin:0 0 24px;
  font-family:'Playfair Display',serif;
  font-weight:500;
  font-size:clamp(56px, 7vw, 112px);
  line-height:.90;
  letter-spacing:0;
  color:var(--sv-black);
  text-wrap:balance;
}

.hero-bodas__desc,
.intro-bodas__text p,
.feature-block__desc,
.story-panel__desc,
.curated-card__text,
.candles-bridge__desc,
.closing-cta__desc,
.tip-text,
.hero-bodas__note-text,
.feature-block__tip-text,
.story-panel__tip-text,
.candles-bridge__tip-text{
  font-family:'Inter',sans-serif;
  color:var(--sv-text-soft);
  line-height:1.8;
}

/* =========================
   BOTONES DE LA PÁGINA
   ========================= */
.btn{
  min-height:56px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 28px;
  border-radius:var(--sv-pill);
  font-family:'Inter',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  transition:
    transform .26s var(--sv-ease),
    background-color .26s var(--sv-ease),
    color .26s var(--sv-ease),
    border-color .26s var(--sv-ease),
    box-shadow .26s var(--sv-ease);
}

.btn:hover{
  transform:translateY(-1px);
}

.btn--dark{
  background:var(--sv-black);
  color:var(--sv-bone);
  box-shadow:0 12px 24px rgba(17,17,17,.10);
}

.btn--dark:hover{
  background:#000;
}

.btn--line{
  background:#e7dac8;
  color:var(--sv-black);
  border:1px solid rgba(34,29,24,.10);
}

.btn--line:hover{
  background:#dfd1be;
}

/* =========================
   SISTEMA DE CAPSULAS FINA
   ========================= */
.hero-bodas__note,
.feature-block__tip,
.story-panel__tip,
.candles-bridge__tip{
  border:1px solid var(--sv-line);
  background:linear-gradient(180deg, #e9ddcd, #e3d4c1);
  border-radius:18px;
  padding:14px 16px 15px;
  width:fit-content;
  max-width:min(100%, 430px);
}

.hero-bodas__note-text,
.feature-block__tip-text,
.story-panel__tip-text,
.candles-bridge__tip-text,
.tip-text{
  margin:0;
  font-size:13px;
  line-height:1.6;
}

/* =========================
   HERO
   ========================= */
.hero-bodas{
  padding-top:120px;
  padding-bottom:78px;
}

.hero-bodas__grid{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:42px;
  align-items:start;
}

.hero-bodas__copy{
  max-width:620px;
}

.hero-bodas__desc{
  max-width:560px;
  font-size:15px;
}

.hero-bodas__actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:28px;
}

.hero-bodas__media{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.hero-bodas__image{
  margin:0;
  overflow:hidden;
  border:1px solid var(--sv-line);
  background:var(--sv-panel);
  border-radius:26px;
}

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

/* barra lateral eliminada */
.hero-bodas__media::before{
  display:none !important;
}

.hero-bodas__note{
  margin-top:0;
}

/* =========================
   INTRO
   ========================= */
.intro-bodas__grid{
  display:grid;
  grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);
  gap:42px;
  align-items:start;
}

.intro-bodas__lead{
  max-width:520px;
}

.intro-bodas__text{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.intro-bodas__text p{
  margin:0;
  padding:24px 22px;
  border:1px solid var(--sv-line);
  background:rgba(255,255,255,.28);
  font-size:14px;
  border-radius:22px;
}

/* =========================
   FEATURE
   ========================= */
.feature-block__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:46px;
  align-items:start;
}

.feature-block__media{
  display:flex;
  flex-direction:column;
  gap:18px;
  min-height:0;
}

.feature-block__image{
  margin:0;
  overflow:hidden;
  border:1px solid var(--sv-line);
  background:var(--sv-panel);
  border-radius:26px;
}

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

/* barras y bloques laterales eliminados */
.feature-block__media::before,
.feature-block__media::after{
  display:none !important;
}

.feature-block__copy{
  max-width:560px;
}

.feature-block__desc{
  margin-top:22px;
  font-size:14px;
}

.feature-list{
  list-style:none;
  margin:24px 0 0;
  padding:0;
  display:grid;
  gap:12px;
}

.feature-list li{
  position:relative;
  padding-left:18px;
  font-family:'Inter',sans-serif;
  font-size:14px;
  line-height:1.8;
  color:var(--sv-text-soft);
}

.feature-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.82em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--sv-black);
  transform:translateY(-50%);
}

.feature-block__actions{
  margin-top:28px;
}

.feature-block__tip{
  margin-top:0;
}

/* =========================
   STORY PANEL
   ========================= */
.story-panel__box{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:28px;
  align-items:start;
  background:#f3eadf;
  border:1px solid var(--sv-line);
  padding:24px;
  border-radius:26px;
}

.story-panel__copy{
  max-width:530px;
  padding:8px 4px 8px 4px;
}

.story-panel__desc{
  margin-top:20px;
  font-size:14px;
}

.story-panel__copy .btn{
  margin-top:26px;
}

.story-panel__media{
  display:flex;
  flex-direction:column;
  gap:18px;
  min-height:0;
}

.story-panel__figure{
  margin:0;
}

.story-panel__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  border:1px solid var(--sv-line);
  border-radius:26px;
}

/* bloque lateral eliminado */
.story-panel__media::after{
  display:none !important;
}

/* =========================
   CURATED GRID
   ========================= */
.curated-grid__layout{
  display:grid;
  grid-template-columns:1.02fr .82fr .96fr;
  gap:34px;
  align-items:start;
  margin-top:28px;
}

.curated-card{
  display:flex;
  flex-direction:column;
  gap:14px;
  background:transparent;
  border:0;
  overflow:visible;
  transition:transform .24s var(--sv-ease);
}

.curated-card:hover{
  transform:translateY(-3px);
}

.curated-card:nth-child(2){
  margin-top:62px;
}

.curated-card:nth-child(3){
  margin-top:18px;
}

.curated-card__image{
  margin:0;
  overflow:hidden;
  border-radius:26px;
}

.curated-card__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:26px;
}

.curated-card:nth-child(1) .curated-card__image img{
  aspect-ratio:4 / 6;
}

.curated-card:nth-child(2) .curated-card__image img{
  aspect-ratio:4 / 4.9;
}

.curated-card:nth-child(3) .curated-card__image img{
  aspect-ratio:4 / 5.45;
}

.curated-card__body{
  background:linear-gradient(180deg, #e9ddcd, #e3d4c1);
  border:1px solid var(--sv-line);
  border-radius:18px;
  padding:14px 16px 15px;
  width:fit-content;
  max-width:min(100%, 430px);
}

.curated-card__title{
  margin:0 0 8px;
  font-family:'Playfair Display',serif;
  font-size:20px;
  font-weight:500;
  line-height:1.02;
  color:var(--sv-black);
}

.curated-card__text{
  margin:0;
  font-size:13px;
  line-height:1.55;
}

/* =========================
   CANDLES BRIDGE
   ========================= */
.candles-bridge__grid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:44px;
  align-items:start;
}

.candles-bridge__copy{
  max-width:520px;
}

.candles-bridge__desc{
  margin-top:20px;
  font-size:14px;
}

.candles-bridge__copy .btn{
  margin-top:28px;
}

.candles-bridge__media{
  display:flex;
  flex-direction:column;
  gap:18px;
  min-height:0;
}

.candles-bridge__figure{
  margin:0;
}

.candles-bridge__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  border:1px solid var(--sv-line);
  border-radius:26px;
}

/* barras eliminadas */
.candles-bridge__media::before,
.candles-bridge__media::after{
  display:none !important;
}

/* =========================
   CLOSING CTA
   ========================= */
.closing-cta{
  padding-bottom:110px;
}

.closing-cta__box{
  position:relative;
  overflow:hidden;
  text-align:center;
  border-top:1px solid rgba(34,29,24,.12);
  border-bottom:1px solid rgba(34,29,24,.12);
  background:linear-gradient(180deg, rgba(231,218,200,.46), rgba(247,242,235,.82));
  padding:58px 28px;
}

.closing-cta__box::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 18% 22%, rgba(255,255,255,.34), transparent 18%),
    radial-gradient(circle at 82% 76%, rgba(205,185,160,.18), transparent 18%);
  pointer-events:none;
}

.closing-cta__box .section-kicker,
.closing-cta__box .section-title,
.closing-cta__desc,
.closing-cta__actions{
  position:relative;
  z-index:1;
}

.closing-cta__box .section-title{
  margin-inline:auto;
}

.closing-cta__desc{
  max-width:720px;
  margin:20px auto 0;
  font-size:14px;
}

.closing-cta__actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:14px;
  margin-top:30px;
}

/* =========================
   REVEAL
   ========================= */
.reveal{
  opacity:1;
  transform:none;
  transition:
    opacity .65s var(--sv-ease),
    transform .65s var(--sv-ease);
}

.reveal.is-hidden{
  opacity:0;
  transform:translateY(30px);
}

.reveal.is-visible{
  opacity:1;
  transform:none;
}

/* =========================
   RESPONSIVE
   ========================= */
@media (max-width: 1180px){
  .weddings-editorial{
    width:min(var(--sv-wrap), calc(100% - 24px));
  }

  .hero-bodas__grid,
  .intro-bodas__grid,
  .feature-block__grid,
  .story-panel__box,
  .candles-bridge__grid{
    grid-template-columns:1fr;
  }

  .curated-grid__layout{
    grid-template-columns:1fr 1fr;
  }

  .curated-card:nth-child(2),
  .curated-card:nth-child(3){
    margin-top:0;
  }

  .curated-card:nth-child(3){
    grid-column:1 / -1;
    max-width:72%;
  }
}

@media (max-width: 860px){
  .weddings-editorial{
    width:min(var(--sv-wrap), calc(100% - 14px));
    margin:16px auto 20px;
  }

  .weddings-editorial::after{
    top:62px;
  }

  .wrap{
    width:min(var(--sv-inner), calc(100% - 34px));
  }

  .section{
    padding:66px 0;
  }

  .hero-bodas{
    padding-top:104px;
    padding-bottom:54px;
  }

  .hero-bodas__title{
    font-size:46px;
    line-height:.98;
  }

  .section-title{
    font-size:38px;
    line-height:1;
  }

  .hero-bodas__desc,
  .intro-bodas__text p,
  .feature-block__desc,
  .story-panel__desc,
  .candles-bridge__desc,
  .closing-cta__desc{
    font-size:14px;
  }

  .intro-bodas__text{
    grid-template-columns:1fr;
  }

  .story-panel__box{
    padding:18px;
  }

  .curated-grid__layout{
    grid-template-columns:1fr;
  }

  .curated-card:nth-child(3){
    max-width:none;
  }

  .candles-bridge__media,
  .story-panel__media,
  .feature-block__media,
  .hero-bodas__media{
    gap:14px;
  }

  .closing-cta__box{
    padding:40px 22px;
  }
}

@media (max-width: 560px){
  .wrap{
    width:min(var(--sv-inner), calc(100% - 24px));
  }

  .section{
    padding:54px 0;
  }

  .hero-bodas__title{
    font-size:38px;
  }

  .section-title{
    font-size:32px;
  }

  .btn{
    width:100%;
  }

  .hero-bodas__actions,
  .closing-cta__actions{
    flex-direction:column;
    align-items:stretch;
  }

  .hero-bodas__note,
  .feature-block__tip,
  .story-panel__tip,
  .candles-bridge__tip,
  .curated-card__body{
    max-width:100%;
    width:100%;
  }
}

/* =========================
   GLOBAL IMAGE RADIUS
   ========================= */
.weddings-editorial img{
  border-radius:26px;
  display:block;
}

#openQuoteModal{
  appearance: none !important;
  -webkit-appearance: none !important;
  border: 0 !important;
  outline: none !important;
  cursor: pointer !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-height: 58px !important;
  padding: 0 34px !important;
  border-radius: 999px !important;

  background: #111111 !important;
  color: #f6f1ea !important;

  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;

  box-shadow: 0 14px 34px rgba(0,0,0,0.14) !important;
  transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease !important;
}

#openQuoteModal:hover{
  transform: translateY(-1px) !important;
  box-shadow: 0 18px 38px rgba(0,0,0,0.18) !important;
}

#openQuoteModal:focus,
#openQuoteModal:focus-visible{
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(17,17,17,0.14), 0 14px 34px rgba(0,0,0,0.14) !important;
}

#openQuoteModal{
  appearance: none !important;
  -webkit-appearance: none !important;
  border: 0 !important;
  outline: none !important;
  cursor: pointer !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-height: 58px !important;
  padding: 0 34px !important;
  border-radius: 999px !important;

  background: #111111 !important;
  color: #f6f1ea !important;

  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;

  box-shadow: 0 14px 34px rgba(0,0,0,0.14) !important;
  transition: all .25s ease !important;
}

#openQuoteModal:hover{
  transform: translateY(-1px) !important;
  box-shadow: 0 18px 38px rgba(0,0,0,0.18) !important;
}

#openQuoteModal:focus{
  outline: none !important;
}