/* ============================================================
   DESTINOS NUPCIALES — style.css  (2026 redesign)
   Paleta original conservada · bordes redondeados selectivos
   glassmorphism sutil · tipografía expresiva · mobile-first
   ============================================================ */

/* ---- Variables ------------------------------------------- */
:root {
  --ivory: #F9F5EF;
  --bone: #EDE7DC;
  --warm: #FBF8F4;
  --champ: #C9A96E;
  --champ-lt: #E8D5B0;
  --champ-dk: #A8782E;
  --champ-pale: #F4ECD8;
  --dark: #1A1612;
  --dark2: #251E18;
  --mid: #3D3530;
  --muted: #8C7D72;

  --r-sm: 8px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-xl: 36px;
  --r-pill: 100px;

  --sh-sm: 0 2px 12px rgba(26, 22, 18, .08);
  --sh-md: 0 8px 32px rgba(26, 22, 18, .13);
  --sh-lg: 0 20px 60px rgba(26, 22, 18, .19);
  --t: .35s cubic-bezier(.4, 0, .2, 1);
}

/* ---- Reset ----------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  font-size: 17px;
}

body {
  font-family: 'Jost', 'Helvetica Neue', Arial, sans-serif;
  background: var(--warm);
  color: var(--dark);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;

}

body.is-locked {
  overflow: hidden;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
}

/* ---- Nav -------------------------------------------------- */
body:not(.admin-page) > nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 60px;
  background: rgba(15, 11, 9, .44);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(201, 169, 110, .12);
  transition: background var(--t), padding var(--t);
}

body:not(.admin-page) > nav.scrolled {
  background: rgba(15, 11, 9, .9);
  padding: 13px 60px;
  border-bottom-color: rgba(201, 169, 110, .26);
}

.nav-logo {
  text-decoration: none;
  display: flex;
  align-items: center;
}

.nav-logo-img {
  height: 52px;
  max-height: 52px;
  width: auto;
  max-width: 180px;
  display: block;
  object-fit: contain;
}

.nav-links {
  display: flex;
  gap: 26px;
  list-style: none;
}

.nav-links a {
  font-size: .7rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .65);
  text-decoration: none;
  font-weight: 400;
  position: relative;
  padding-bottom: 4px;
  transition: color var(--t);
}

.nav-links a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--champ);
  transition: width var(--t);
}

.nav-links a:hover,
.nav-links a.active {
  color: #fff;
}

.nav-links a:hover::after,
.nav-links a.active::after {
  width: 100%;
}

.nav-cta {
  font-size: .68rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--champ);
  border: 1px solid rgba(201, 169, 110, .5);
  padding: 10px 22px;
  border-radius: var(--r-pill);
  text-decoration: none;
  font-weight: 400;
  transition: background var(--t), color var(--t);
  white-space: nowrap;
}

.nav-cta:hover {
  background: var(--champ);
  color: #fff;
}

.nav-burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}

.nav-burger span {
  display: block;
  width: 22px;
  height: 1.5px;
  background: rgba(255, 255, 255, .8);
  transition: var(--t);
}

/* Mobile menu */
.nav-drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 200;
  background: var(--dark);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
}

.nav-drawer.open {
  display: flex;
}

.nav-drawer ul {
  list-style: none;
  text-align: center;
}

.nav-drawer ul li {
  margin: 16px 0;
}

.nav-drawer ul a {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.9rem;
  font-weight: 400;
  color: var(--bone);
  text-decoration: none;
}

.nav-drawer ul a:hover {
  color: var(--champ);
}

.nav-drawer .nav-cta-m {
  font-size: .75rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-family: 'Jost', sans-serif;
  color: var(--champ);
  border: 1px solid rgba(201, 169, 110, .5);
  padding: 14px 36px;
  border-radius: var(--r-pill);
}

.nav-close {
  position: absolute;
  top: 24px;
  right: 28px;
  background: none;
  border: none;
  color: rgba(237, 231, 220, .55);
  font-size: 1.5rem;
  cursor: pointer;
  transition: color var(--t);
}

.nav-close:hover {
  color: #fff;
}

/* ---- Utilidades ------------------------------------------ */
.section-label {
  font-size: .65rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--champ);
  margin-bottom: 14px;
  font-weight: 400;
  display: flex;
  align-items: center;
  gap: 12px;
}

.section-label::before {
  content: '';
  width: 28px;
  height: 1px;
  background: var(--champ);
}

.section-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2rem, 3.6vw, 3.2rem);
  font-weight: 400;
  line-height: 1.13;
  color: var(--dark);
}

.section-title em {
  font-style: italic;
}

.section-title.light {
  color: var(--bone);
}

.btn-p {
  background: var(--champ);
  color: #fff;
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  padding: 16px 40px;
  text-decoration: none;
  font-weight: 400;
  display: inline-block;
  border: none;
  cursor: pointer;
  font-family: 'Jost', sans-serif;
  border-radius: var(--r-pill);
  transition: background var(--t), transform .2s, box-shadow var(--t);
}

.btn-p:hover {
  background: var(--champ-dk);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201, 169, 110, .35);
}

.btn-o {
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--dark);
  border: 1px solid rgba(26, 22, 18, .25);
  padding: 16px 40px;
  text-decoration: none;
  font-weight: 400;
  display: inline-block;
  border-radius: var(--r-pill);
  transition: all var(--t);
}

.btn-o:hover {
  background: var(--dark);
  color: #fff;
  border-color: var(--dark);
}

.btn-o.light {
  color: var(--bone);
  border-color: rgba(237, 231, 220, .3);
}

.btn-o.light:hover {
  background: var(--bone);
  color: var(--dark);
}

/* Fade-up */
.fu {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .75s ease, transform .75s ease;
}

.fu.vis {
  opacity: 1;
  transform: translateY(0);
}

.fu-delay-1 {
  transition-delay: .1s;
}

.fu-delay-2 {
  transition-delay: .2s;
}

.fu-delay-3 {
  transition-delay: .3s;
}

.fu-delay-4 {
  transition-delay: .4s;
}

.fu-delay-5 {
  transition-delay: .5s;
}

.fu-delay-6 {
  transition-delay: .6s;
}

.fu-delay-7 {
  transition-delay: .7s;
}

.fu-delay-8 {
  transition-delay: .8s;
}

.fu-delay-9 {
  transition-delay: .9s;
}

.fu-delay-10 {
  transition-delay: 1s;
}

/* ---- Page hero (páginas internas) ------------------------ */
.page-hero {
  min-height: 54vh;
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.ph-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}

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

.ph-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(15, 11, 9, .82) 0%, rgba(15, 11, 9, .2) 65%);
}

.ph-content {
  position: relative;
  z-index: 2;
  padding: 0 80px 64px;
}

.ph-label {
  font-size: .64rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--champ);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.ph-label::before {
  content: '';
  width: 24px;
  height: 1px;
  background: var(--champ);
}

.ph-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  font-weight: 400;
  color: #fff;
  line-height: 1.1;
}

.ph-title em {
  font-style: italic;
  color: var(--champ-lt);
}

/* Breadcrumb */
.breadcrumb {
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .4);
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
}

.breadcrumb a {
  color: rgba(255, 255, 255, .4);
  text-decoration: none;
  transition: color var(--t);
}

.breadcrumb a:hover {
  color: var(--champ-lt);
}

/* ---- Footer ---------------------------------------------- */
footer {
  background: var(--dark2);
  color: var(--bone);
  padding: 72px 80px;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 52px;
}

.fl {
  text-decoration: none;
  display: inline-block;
  margin-bottom: 14px;
}

.footer-logo-img {
  height: 64px;
  max-height: 64px;
  width: auto;
  max-width: 200px;
  display: block;
  object-fit: contain;
}

.ftag {
  font-size: .82rem;
  line-height: 1.72;
  color: rgba(237, 231, 220, .4);
  font-weight: 300;
  max-width: 230px;
}

.fsocial {
  display: flex;
  gap: 10px;
  margin-top: 18px;
}

.fsoc {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(201, 169, 110, .2);
  border-radius: var(--r-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  text-decoration: none;
  color: rgba(237, 231, 220, .5);
  transition: border-color var(--t), background var(--t), color var(--t);
}

.brand-icon {
  width: 18px;
  height: 18px;
  display: block;
  fill: currentColor;
}

.fsoc:hover {
  border-color: var(--champ);
  background: rgba(201, 169, 110, .1);
  color: var(--champ);
}

.fc h4 {
  font-size: .62rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--champ);
  margin-bottom: 18px;
  font-weight: 400;
}

.fc ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.fc ul a {
  font-size: .8rem;
  color: rgba(237, 231, 220, .48);
  text-decoration: none;
  font-weight: 300;
  transition: color var(--t);
}

.fc ul a:hover {
  color: var(--bone);
}

.fbot {
  background: #110E0B;
  padding: 20px 80px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .64rem;
  letter-spacing: .1em;
  color: rgba(237, 231, 220, .24);
}

.fbot a {
  color: rgba(237, 231, 220, .36);
  text-decoration: none;
  margin-left: 20px;
}

.fbot a:hover {
  color: var(--champ-lt);
}

/* WhatsApp flotante */
.wa-fab {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 90;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #25D366;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(37, 211, 102, .45);
  text-decoration: none;
  transition: transform var(--t), box-shadow var(--t);
}

.whatsapp-icon {
  width: 30px;
  height: 30px;
  display: block;
  fill: currentColor;
}

.wa-fab:hover {
  transform: scale(1.1);
  box-shadow: 0 8px 32px rgba(37, 211, 102, .55);
}

/* Lightbox */
.gl-img {
  cursor: zoom-in;
}

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: rgba(0, 0, 0, .94);
  display: none;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(6px);
}

.lightbox.open {
  display: flex;
}

.lightbox-img {
  max-width: 90vw;
  max-height: 88vh;
  border-radius: 10px;
  object-fit: contain;
}

.lightbox-close,
.lightbox-prev,
.lightbox-next {
  position: absolute;
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
  opacity: .7;
}

.lightbox-close {
  top: 20px;
  right: 26px;
  font-size: 1.6rem;
}

.lightbox-prev,
.lightbox-next {
  font-size: 3.5rem;
  padding: 0 10px;
}

.lightbox-prev {
  left: 16px;
}

.lightbox-next {
  right: 16px;
}

/* Form success states */
.form-success {
  text-align: center;
  padding: 50px 20px;
}

.form-success-lp {
  padding: 48px 20px;
}

.form-success-icon {
  font-size: 2.5rem;
  margin-bottom: 16px;
}

.form-success-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.4rem;
  color: var(--bone);
  margin-bottom: 10px;
}

.form-success-text {
  font-size: .88rem;
  color: rgba(237, 231, 220, .5);
  font-weight: 300;
}

.form-success-text-lp {
  line-height: 1.7;
}

.form-success-wa {
  display: inline-block;
  margin-top: 24px;
  background: #25D366;
  color: #fff;
  padding: 13px 28px;
  border-radius: 40px;
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-decoration: none;
}

/* ---- Responsive base ------------------------------------- */
@media(max-width:900px) {
  nav {
    padding: 14px 20px;
  }

  nav.scrolled {
    padding: 12px 20px;
  }

  .nav-links,
  .nav-cta {
    display: none;
  }

  .nav-burger {
    display: flex;
  }

  footer {
    grid-template-columns: 1fr 1fr;
    padding: 52px 22px;
    gap: 36px;
  }

  .fbot {
    padding: 16px 22px;
    flex-direction: column;
    gap: 7px;
    text-align: center;
  }

  .ph-content {
    padding: 0 22px 48px;
  }
}

@media(max-width:600px) {
  footer {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   Page-specific styles moved from HTML files
   ============================================================ */

/* ---- blog.html ------------------------------------------- */
.blog-intro {
      padding: 80px 80px 56px;
      max-width: 680px
    }

    .blog-cats {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      padding: 0 80px 36px
    }

    .cat-btn {
      font-size: .68rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      padding: 9px 20px;
      border-radius: var(--r-pill);
      border: 1px solid var(--bone);
      background: transparent;
      cursor: pointer;
      color: var(--muted);
      transition: all var(--t);
      font-family: 'Jost', sans-serif
    }

    .cat-btn.active,
    .cat-btn:hover {
      background: var(--champ);
      color: #fff;
      border-color: var(--champ)
    }

    .blog-grid {
      padding: 0 80px 80px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 28px
    }

    .post-card {
      background: #fff;
      border-radius: var(--r-xl);
      overflow: hidden;
      box-shadow: var(--sh-sm);
      transition: box-shadow var(--t), transform var(--t);
      text-decoration: none;
      color: inherit;
      display: block
    }

    .post-card:hover {
      box-shadow: var(--sh-md);
      transform: translateY(-5px)
    }

    .post-img {
      aspect-ratio: 16/10;
      overflow: hidden
    }

    .post-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .6s ease
    }

    .post-card:hover .post-img img {
      transform: scale(1.05)
    }

    .post-body {
      padding: 24px
    }

    .post-cat {
      font-size: .6rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--champ);
      margin-bottom: 8px
    }

    .post-title {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.15rem;
      color: var(--dark);
      line-height: 1.35;
      margin-bottom: 10px
    }

    .post-excerpt {
      font-size: .82rem;
      line-height: 1.72;
      color: var(--muted);
      font-weight: 300;
      margin-bottom: 18px
    }

    .post-meta {
      display: flex;
      align-items: center;
      justify-content: space-between
    }

    .post-date {
      font-size: .62rem;
      letter-spacing: .1em;
      color: var(--muted);
      opacity: .6
    }

    .post-link {
      font-size: .65rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--champ);
      display: inline-flex;
      align-items: center;
      gap: 6px;
      transition: gap var(--t)
    }

    .post-card:hover .post-link {
      gap: 10px
    }

    /* Artículo destacado */
    .post-featured {
      grid-column: span 3;
      display: grid;
      grid-template-columns: 1.5fr 1fr;
      border-radius: var(--r-xl);
      overflow: hidden;
      box-shadow: var(--sh-sm);
      background: #fff;
      text-decoration: none;
      color: inherit;
      transition: box-shadow var(--t)
    }

    .post-featured:hover {
      box-shadow: var(--sh-md)
    }

    .post-feat-img {
      min-height: 380px
    }

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

    .post-feat-body {
      padding: 52px 44px;
      display: flex;
      flex-direction: column;
      justify-content: center
    }

    .post-feat-tag {
      display: inline-block;
      background: var(--champ-pale);
      color: var(--champ-dk);
      font-size: .6rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      padding: 5px 14px;
      border-radius: var(--r-pill);
      margin-bottom: 16px;
      font-weight: 500
    }

    .newsletter {
      background: var(--bone);
      padding: 80px;
      text-align: center
    }

    .newsletter-box {
      max-width: 500px;
      margin: 0 auto
    }

    .nl-form {
      display: flex;
      gap: 8px;
      margin-top: 28px
    }

    .nl-input {
      flex: 1;
      border: 1px solid var(--bone);
      border-radius: var(--r-pill);
      padding: 14px 20px;
      font-family: 'Jost', sans-serif;
      font-size: .88rem;
      outline: none;
      transition: border-color var(--t);
      background: #fff
    }

    .nl-input:focus {
      border-color: var(--champ)
    }

    .nl-btn {
      background: var(--champ);
      color: #fff;
      border: none;
      border-radius: var(--r-pill);
      padding: 14px 28px;
      font-family: 'Jost', sans-serif;
      font-size: .7rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      cursor: pointer;
      transition: background var(--t);
      white-space: nowrap
    }

    .nl-btn:hover {
      background: var(--champ-dk)
    }

    @media(max-width:900px) {
      .blog-intro {
        padding: 64px 22px 40px
      }

      .blog-cats {
        padding: 0 22px 28px
      }

      .blog-grid {
        grid-template-columns: 1fr;
        padding: 0 22px 64px
      }

      .post-featured {
        grid-column: span 1;
        grid-template-columns: 1fr
      }

      .post-feat-img {
        min-height: 220px
      }

      .post-feat-body {
        padding: 28px 22px
      }

      .newsletter {
        padding: 64px 22px
      }

      .nl-form {
        flex-direction: column
      }
    }

/* ---- boda-ejemplo.html ------------------------------------------- */
/* Artículo de boda */
.boda-article{max-width:780px;margin:0 auto;padding:80px 40px}
.boda-meta-bar{display:flex;flex-wrap:wrap;gap:24px;align-items:center;padding:28px 0;border-bottom:1px solid var(--bone);margin-bottom:48px}
.boda-meta-item{display:flex;flex-direction:column;gap:3px}
.boda-meta-lbl{font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.boda-meta-val{font-size:.88rem;color:var(--dark);font-weight:500}
.boda-lead{font-family:'Playfair Display',Georgia,serif;font-size:1.3rem;font-style:italic;color:var(--dark);line-height:1.65;margin-bottom:28px;padding-left:20px;border-left:3px solid var(--champ)}
.boda-body p{font-size:.95rem;line-height:1.92;color:var(--mid);font-weight:300;margin-bottom:20px}
.boda-body h3{font-family:'Playfair Display',Georgia,serif;font-size:1.5rem;color:var(--dark);margin:40px 0 16px;font-weight:400}
.boda-body strong{color:var(--dark);font-weight:500}
.boda-quote{background:var(--dark);padding:40px 44px;border-radius:var(--r-lg);margin:40px 0}
.boda-quote blockquote{font-family:'Playfair Display',Georgia,serif;font-size:1.25rem;font-style:italic;color:var(--bone);line-height:1.65;margin:0 0 16px}
.boda-quote cite{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(237,231,220,.4)}

/* Galería inline de boda */
.boda-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:40px 0;border-radius:var(--r-lg);overflow:hidden}
.boda-gallery .gi-main{grid-column:span 3;aspect-ratio:16/7}
.boda-gallery .gi-sub{aspect-ratio:1}
.boda-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;cursor:zoom-in}
.boda-gallery .gi:hover img{transform:scale(1.05)}
.boda-gallery .gi{overflow:hidden}
.boda-gallery .gi-main{overflow:hidden}

/* Ficha técnica */
.ficha{background:var(--bone);border-radius:var(--r-lg);padding:32px 36px;margin:40px 0}
.ficha h4{font-family:'Playfair Display',Georgia,serif;font-size:1.1rem;color:var(--dark);margin-bottom:18px}
.ficha-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ficha-item{display:flex;flex-direction:column;gap:3px}
.ficha-lbl{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ficha-val{font-size:.85rem;color:var(--dark);font-weight:400}

/* Navegación entre bodas */
.boda-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:60px;padding-top:40px;border-top:1px solid var(--bone)}
.boda-nav-card{background:#fff;border-radius:var(--r-md);padding:20px 22px;box-shadow:var(--sh-sm);text-decoration:none;color:inherit;transition:box-shadow var(--t),transform var(--t)}
.boda-nav-card:hover{box-shadow:var(--sh-md);transform:translateY(-3px)}
.boda-nav-lbl{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.boda-nav-title{font-family:'Playfair Display',Georgia,serif;font-size:1rem;color:var(--dark)}
.boda-nav-card.next{text-align:right}

/* Sidebar CTA */
.boda-layout{display:grid;grid-template-columns:1fr 340px;gap:52px;max-width:1140px;margin:0 auto;padding:80px 40px}
.boda-sidebar{position:sticky;top:100px;align-self:start}
.sidebar-cta{background:var(--dark);border-radius:var(--r-xl);padding:36px 30px;margin-bottom:24px}
.sidebar-cta h3{font-family:'Playfair Display',Georgia,serif;font-size:1.3rem;color:var(--bone);margin-bottom:10px}
.sidebar-cta p{font-size:.8rem;color:rgba(237,231,220,.45);font-weight:300;line-height:1.7;margin-bottom:24px}
.sidebar-box{background:var(--bone);border-radius:var(--r-lg);padding:24px 22px}
.sidebar-box h4{font-family:'Playfair Display',Georgia,serif;font-size:1rem;color:var(--dark);margin-bottom:14px}
.sidebar-box ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.sidebar-box ul li{font-size:.8rem;color:var(--muted);font-weight:300;padding-left:14px;position:relative}
.sidebar-box ul li::before{content:'→';position:absolute;left:0;color:var(--champ);font-size:.7rem}
.sidebar-box ul a{color:var(--muted);text-decoration:none;transition:color var(--t)}
.sidebar-box ul a:hover{color:var(--champ)}

@media(max-width:1000px){
  .boda-layout{grid-template-columns:1fr;gap:0;padding:64px 22px}
  .boda-sidebar{position:static;margin-top:48px}
  .boda-article{padding:0}
  .boda-gallery{grid-template-columns:1fr 1fr}
  .boda-gallery .gi-main{grid-column:span 2}
  .boda-nav{grid-template-columns:1fr}
  .ficha-grid{grid-template-columns:1fr}
}

/* ---- bodas.html ------------------------------------------- */
.bodas-intro {
      padding: 80px 80px 56px;
      max-width: 680px
    }

    .bodas-grid {
      padding: 0 80px 80px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 28px
    }

    .boda-card {
      background: #fff;
      border-radius: var(--r-xl);
      overflow: hidden;
      box-shadow: var(--sh-sm);
      transition: box-shadow var(--t), transform var(--t);
      text-decoration: none;
      color: inherit;
      display: block
    }

    .boda-card:hover {
      box-shadow: var(--sh-md);
      transform: translateY(-6px)
    }

    .boda-img {
      aspect-ratio: 4/3;
      overflow: hidden;
      position: relative
    }

    .boda-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .6s ease
    }

    .boda-card:hover .boda-img img {
      transform: scale(1.05)
    }

    .boda-destino-tag {
      position: absolute;
      top: 14px;
      right: 14px;
      background: rgba(201, 169, 110, .92);
      color: #fff;
      font-size: .6rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      padding: 5px 12px;
      border-radius: var(--r-pill);
      backdrop-filter: blur(6px)
    }

    .boda-body {
      padding: 26px
    }

    .boda-meta {
      font-size: .62rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--champ);
      margin-bottom: 8px
    }

    .boda-names {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.3rem;
      color: var(--dark);
      margin-bottom: 8px;
      line-height: 1.25
    }

    .boda-excerpt {
      font-size: .82rem;
      line-height: 1.72;
      color: var(--muted);
      font-weight: 300;
      margin-bottom: 18px
    }

    .boda-link {
      font-size: .67rem;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: var(--champ);
      display: inline-flex;
      align-items: center;
      gap: 6px;
      transition: gap var(--t)
    }

    .boda-card:hover .boda-link {
      gap: 11px
    }

    /* Entrada individual placeholder */
    .boda-featured {
      grid-column: span 3;
      display: grid;
      grid-template-columns: 1.4fr 1fr;
      border-radius: var(--r-xl);
      overflow: hidden;
      box-shadow: var(--sh-sm);
      background: #fff;
      transition: box-shadow var(--t);
      text-decoration: none;
      color: inherit
    }

    .boda-featured:hover {
      box-shadow: var(--sh-md)
    }

    .boda-feat-img {
      aspect-ratio: unset;
      min-height: 400px
    }

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

    .boda-feat-body {
      padding: 52px 48px;
      display: flex;
      flex-direction: column;
      justify-content: center
    }

    /* CTA bottom */
    .bodas-cta {
      background: var(--dark);
      padding: 72px 80px;
      text-align: center
    }

    @media(max-width:900px) {
      .bodas-intro {
        padding: 64px 22px 40px
      }

      .bodas-grid {
        grid-template-columns: 1fr;
        padding: 0 22px 64px
      }

      .boda-featured {
        grid-column: span 1;
        grid-template-columns: 1fr
      }

      .boda-feat-img {
        min-height: 240px
      }

      .boda-feat-body {
        padding: 28px 24px
      }

      .bodas-cta {
        padding: 64px 22px
      }
    }

/* ---- contacto.html ------------------------------------------- */
.contacto-wrap {
      padding: 80px;
      display: grid;
      grid-template-columns: 1fr 1.1fr;
      gap: 80px;
      align-items: start
    }

    .ci {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 22px
    }

    .ci-ico {
      width: 46px;
      height: 46px;
      border-radius: 50%;
      background: var(--champ-pale);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.1rem;
      flex-shrink: 0
    }

    .ci-lbl {
      font-size: .6rem;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: var(--muted)
    }

    .ci-val {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.1rem;
      color: var(--dark);
      text-decoration: none;
      transition: color var(--t)
    }

    .ci-val:hover {
      color: var(--champ)
    }

    .tip-box {
      margin-top: 36px;
      padding: 24px;
      background: var(--bone);
      border-radius: var(--r-md);
      border-left: 3px solid var(--champ)
    }

    .tip-box p {
      font-size: .82rem;
      color: var(--mid);
      line-height: 1.75;
      font-weight: 300
    }

    .form-box {
      background: var(--dark);
      padding: 56px 52px;
      border-radius: var(--r-xl)
    }

    .form-ttl {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.9rem;
      color: var(--bone);
      margin-bottom: 6px
    }

    .form-sub {
      font-size: .76rem;
      color: rgba(237, 231, 220, .35);
      margin-bottom: 36px;
      font-weight: 300
    }

    .ff {
      display: flex;
      flex-direction: column;
      gap: 6px;
      margin-bottom: 16px
    }

    .ff label {
      font-size: .6rem;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: rgba(237, 231, 220, .42)
    }

    .ff input,
    .ff select,
    .ff textarea {
      background: transparent;
      border: none;
      border-bottom: 1px solid rgba(201, 169, 110, .2);
      padding: 11px 0;
      font-family: 'Jost', sans-serif;
      font-size: .87rem;
      color: var(--bone);
      font-weight: 300;
      outline: none;
      transition: border-color var(--t);
      -webkit-appearance: none
    }

    .ff input:focus,
    .ff select:focus,
    .ff textarea:focus {
      border-bottom-color: var(--champ)
    }

    .ff input::placeholder,
    .ff textarea::placeholder {
      color: rgba(237, 231, 220, .18)
    }

    .ff select option {
      background: var(--dark)
    }

    .ff textarea {
      resize: none;
      height: 80px
    }

    .frow {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px
    }

    .fsub {
      background: var(--champ);
      color: #fff;
      border: none;
      font-family: 'Jost', sans-serif;
      font-size: .7rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      padding: 18px;
      cursor: pointer;
      font-weight: 400;
      width: 100%;
      margin-top: 8px;
      border-radius: var(--r-pill);
      transition: background var(--t), transform .2s
    }

    .fsub:hover {
      background: var(--champ-dk);
      transform: translateY(-1px)
    }

    .fnote {
      font-size: .63rem;
      color: rgba(237, 231, 220, .22);
      text-align: center;
      margin-top: 10px;
      line-height: 1.6
    }

    @media(max-width:900px) {
      .contacto-wrap {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 64px 22px
      }

      .form-box {
        padding: 40px 24px
      }

      .frow {
        grid-template-columns: 1fr
      }
    }

/* ---- destinos.html ------------------------------------------- */
.dest-intro {
      padding: 80px 80px 56px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: end
    }

    .dest-full-grid {
      padding: 0 80px 80px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px
    }

    .dc {
      position: relative;
      overflow: hidden;
      border-radius: var(--r-lg);
      height: 280px;
      cursor: default
    }

    .dc-bg {
      position: absolute;
      inset: 0;
      background-size: cover;
      background-position: center;
      transition: transform .75s cubic-bezier(.4, 0, .2, 1)
    }

    .dc:hover .dc-bg {
      transform: scale(1.07)
    }

    .dc-ov {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, .04) 60%)
    }

    .dc-body {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 24px;
      z-index: 2
    }

    .dc-name {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.4rem;
      color: #fff;
      margin-bottom: 6px;
      line-height: 1.2
    }

    .dc-tag {
      font-size: .6rem;
      letter-spacing: .17em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, .5)
    }

    .dc-more {
      background: var(--dark);
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center
    }

    .dc-more .dc-body {
      position: relative;
      bottom: auto;
      left: auto;
      right: auto;
      padding: 28px
    }

    .dc-more .dc-name {
      color: var(--champ);
      font-size: 1.3rem;
      margin-bottom: 10px
    }

    .dest-cta {
      padding: 80px;
      background: var(--bone);
      text-align: center
    }

    @media(max-width:900px) {
      .dest-intro {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 64px 22px 40px
      }

      .dest-full-grid {
        grid-template-columns: 1fr 1fr;
        padding: 0 22px 64px
      }

      .dest-cta {
        padding: 64px 22px
      }
    }

    @media(max-width:600px) {
      .dest-full-grid {
        grid-template-columns: 1fr
      }
    }

/* ---- equipo.html ------------------------------------------- */
.equipo-intro {
      padding: 80px 80px 56px;
      max-width: 680px
    }

    .equipo-grid {
      padding: 0 80px 80px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px
    }

    .planner-card {
      background: #fff;
      border-radius: var(--r-xl);
      overflow: hidden;
      box-shadow: var(--sh-sm);
      transition: box-shadow var(--t), transform var(--t)
    }

    .planner-card:hover {
      box-shadow: var(--sh-md);
      transform: translateY(-6px)
    }

    .planner-img {
      aspect-ratio: 3/4;
      overflow: hidden;
      position: relative
    }

    .planner-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: top;
      transition: transform .7s ease
    }

    .planner-card:hover .planner-img img {
      transform: scale(1.04)
    }

    .planner-badge {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      background: linear-gradient(to top, rgba(15, 11, 9, .78), transparent);
      padding: 32px 24px 20px
    }

    .planner-badge-name {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.4rem;
      color: #fff;
      line-height: 1.15
    }

    .planner-badge-rol {
      font-size: .6rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, .6);
      margin-top: 4px
    }

    .planner-body {
      padding: 28px
    }

    .planner-esp {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
      margin-bottom: 16px
    }

    .planner-tag {
      font-size: .62rem;
      letter-spacing: .1em;
      text-transform: uppercase;
      background: var(--champ-pale);
      color: var(--champ-dk);
      padding: 5px 12px;
      border-radius: var(--r-pill);
      font-weight: 500
    }

    .planner-bio {
      font-size: .84rem;
      line-height: 1.75;
      color: var(--muted);
      font-weight: 300;
      margin-bottom: 20px
    }

    .planner-certs {
      border-top: 1px solid var(--bone);
      padding-top: 16px
    }

    .planner-cert {
      font-size: .72rem;
      color: var(--muted);
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 6px;
      font-weight: 300
    }

    .planner-cert::before {
      content: '✓';
      color: var(--champ);
      font-weight: 600;
      flex-shrink: 0
    }

    /* Sección de diferencias */
    .como-trabajamos {
      background: var(--bone);
      padding: 80px
    }

    .work-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 6px;
      margin-top: 52px
    }

    .wc {
      background: var(--warm);
      border-radius: var(--r-md);
      padding: 32px 26px;
      transition: box-shadow var(--t), transform var(--t)
    }

    .wc:hover {
      box-shadow: var(--sh-sm);
      transform: translateY(-3px)
    }

    .wc-n {
      font-size: .65rem;
      letter-spacing: .14em;
      color: var(--champ);
      margin-bottom: 12px
    }

    .wc-t {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.15rem;
      color: var(--dark);
      margin-bottom: 10px
    }

    .wc-d {
      font-size: .82rem;
      line-height: 1.76;
      color: var(--muted);
      font-weight: 300
    }

    /* CTA */
    .equipo-cta {
      background: var(--dark);
      padding: 80px;
      text-align: center
    }

    @media(max-width:900px) {
      .equipo-intro {
        padding: 64px 22px 40px
      }

      .equipo-grid {
        grid-template-columns: 1fr;
        padding: 0 22px 64px;
        max-width: 400px;
        margin: 0 auto
      }

      .como-trabajamos {
        padding: 64px 22px
      }

      .work-grid {
        grid-template-columns: 1fr;
        gap: 8px
      }

      .equipo-cta {
        padding: 64px 22px
      }
    }

/* ---- faq.html ------------------------------------------- */
.faq-layout {
      padding: 80px;
      display: grid;
      grid-template-columns: 1fr 1.7fr;
      gap: 100px;
      align-items: start
    }

    .faq-sticky {
      position: sticky;
      top: 100px
    }

    .faq-list {
      display: flex;
      flex-direction: column
    }

    .faq-item {
      border-bottom: 1px solid var(--bone)
    }

    .faq-q {
      width: 100%;
      background: none;
      border: none;
      cursor: pointer;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 20px;
      padding: 26px 0;
      font-family: 'Jost', sans-serif;
      font-size: .95rem;
      color: var(--dark);
      font-weight: 400;
      text-align: left;
      transition: color var(--t)
    }

    .faq-q:hover {
      color: var(--champ)
    }

    .faq-ico {
      width: 30px;
      height: 30px;
      border-radius: 50%;
      background: var(--champ-pale);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.1rem;
      color: var(--champ);
      flex-shrink: 0;
      transition: transform var(--t), background var(--t)
    }

    .faq-item.open .faq-ico {
      transform: rotate(45deg);
      background: var(--champ);
      color: #fff
    }

    .faq-a {
      font-size: .88rem;
      line-height: 1.85;
      color: var(--muted);
      font-weight: 300;
      max-height: 0;
      overflow: hidden;
      transition: max-height .45s ease, padding var(--t)
    }

    .faq-item.open .faq-a {
      max-height: 400px;
      padding-bottom: 26px
    }

    .faq-cta-sec {
      background: var(--dark);
      padding: 72px 80px;
      text-align: center
    }

    @media(max-width:900px) {
      .faq-layout {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 64px 22px
      }

      .faq-sticky {
        position: static
      }

      .faq-cta-sec {
        padding: 64px 22px
      }
    }

/* ---- galeria.html ------------------------------------------- */
.gal-sec {
      padding: 64px 80px 80px
    }

    .gal-filter {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin: 36px 0 28px
    }

    .gal-btn {
      font-size: .68rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      padding: 9px 20px;
      border-radius: var(--r-pill);
      border: 1px solid var(--bone);
      background: transparent;
      cursor: pointer;
      color: var(--muted);
      transition: all var(--t);
      font-family: 'Jost', sans-serif
    }

    .gal-btn.active,
    .gal-btn:hover {
      background: var(--champ);
      color: #fff;
      border-color: var(--champ)
    }

    /* Masonry-ish grid */
    .gal-masonry {
      columns: 3;
      column-gap: 8px
    }

    .gal-item {
      break-inside: avoid;
      margin-bottom: 8px;
      border-radius: var(--r-md);
      overflow: hidden;
      display: block
    }

    .gal-item img {
      width: 100%;
      display: block;
      transition: transform .6s ease;
      cursor: zoom-in
    }

    .gal-item:hover img {
      transform: scale(1.04)
    }

    .gal-note {
      text-align: center;
      padding: 48px 20px 0
    }

    .gal-note p {
      font-size: .85rem;
      color: var(--muted);
      margin-bottom: 24px;
      font-weight: 300
    }

    @media(max-width:900px) {
      .gal-sec {
        padding: 48px 22px 64px
      }

      .gal-masonry {
        columns: 2
      }
    }

    @media(max-width:500px) {
      .gal-masonry {
        columns: 1
      }
    }

/* ---- index.html ------------------------------------------- */
/* ---- HERO ------------------------------------------------ */
    .hero {
      min-height: 100vh;
      position: relative;
      display: flex;
      align-items: center;
      overflow: hidden
    }

    .hero-bg {
      position: absolute;
      inset: 0;
      background-image: url('img/hero/hero-principal.webp');
      background-size: cover;
      background-position: center top;
      animation: zoomIn 10s ease-out forwards
    }

    @keyframes zoomIn {
      from {
        transform: scale(1.08)
      }

      to {
        transform: scale(1)
      }
    }

    .hero-ov {
      position: absolute;
      inset: 0;
      background: linear-gradient(110deg, rgba(15, 11, 9, .84) 0%, rgba(15, 11, 9, .42) 55%, rgba(15, 11, 9, .15) 100%)
    }

    .hero-body {
      position: relative;
      z-index: 2;
      padding: 160px 80px 100px;
      max-width: 700px
    }

    .hero-eyebrow {
      font-size: .65rem;
      letter-spacing: .32em;
      text-transform: uppercase;
      color: var(--champ);
      margin-bottom: 22px;
      display: flex;
      align-items: center;
      gap: 12px
    }

    .hero-eyebrow::before {
      content: '';
      width: 32px;
      height: 1px;
      background: var(--champ)
    }

    .hero-h1 {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: clamp(3rem, 6.2vw, 5.6rem);
      font-weight: 400;
      line-height: 1.06;
      color: #fff;
      margin-bottom: 22px
    }

    .hero-h1 em {
      font-style: italic;
      color: var(--champ)
    }

    .hero-sub {
      font-size: .97rem;
      line-height: 1.84;
      color: rgba(255, 255, 255, .7);
      max-width: 440px;
      margin-bottom: 46px;
      font-weight: 300
    }

    .hero-acts {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
      align-items: center
    }

    .btn-ghost {
      font-size: .7rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, .72);
      text-decoration: none;
      display: flex;
      align-items: center;
      gap: 9px;
      transition: color var(--t)
    }

    .btn-ghost:hover {
      color: #fff
    }

    .btn-ghost::after {
      content: '→';
      transition: transform var(--t)
    }

    .btn-ghost:hover::after {
      transform: translateX(4px)
    }

    .hero-badge {
      position: absolute;
      bottom: 52px;
      right: 80px;
      z-index: 3;
      background: rgba(249, 245, 239, .92);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      padding: 22px 30px;
      border-radius: var(--r-md);
      box-shadow: var(--sh-lg);
      border: 1px solid rgba(201, 169, 110, .2);
      border-left: 3px solid var(--champ)
    }

    .hero-badge-n {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 2.5rem;
      font-weight: 400;
      color: var(--champ);
      line-height: 1
    }

    .hero-badge-t {
      font-size: .6rem;
      letter-spacing: .17em;
      text-transform: uppercase;
      color: var(--muted);
      margin-top: 5px
    }

    /* ---- Strip ----------------------------------------------- */
    .strip {
      background: var(--dark);
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 32px;
      padding: 20px 60px;
      font-size: .65rem;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: var(--bone);
      flex-wrap: wrap
    }

    .dot {
      width: 3px;
      height: 3px;
      background: var(--champ);
      border-radius: 50%;
      flex-shrink: 0
    }

    /* ---- Diferenciador --------------------------------------- */
    .dif {
      padding: 100px 80px;
      display: grid;
      grid-template-columns: 1fr 1.15fr;
      gap: 80px;
      align-items: center
    }

    .dif-img-wrap {
      position: relative;
      aspect-ratio: 4/5;
      overflow: hidden;
      border-radius: var(--r-lg)
    }

    .dif-img-wrap img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: top
    }

    .dif-accent {
      position: absolute;
      bottom: -20px;
      right: -20px;
      width: 55%;
      height: 55%;
      border: 2px solid var(--champ);
      border-radius: var(--r-md);
      opacity: .24;
      z-index: -1
    }

    .dif-lead {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.12rem;
      font-style: italic;
      color: var(--dark);
      line-height: 1.65;
      margin: 24px 0 18px
    }

    .dif-body {
      font-size: .88rem;
      line-height: 1.9;
      color: var(--muted);
      font-weight: 300;
      margin-bottom: 32px
    }

    .pillars {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-bottom: 36px
    }

    .pillar {
      display: flex;
      align-items: flex-start;
      gap: 14px;
      padding: 16px 18px;
      background: var(--bone);
      border-radius: var(--r-md);
      transition: box-shadow var(--t), transform var(--t)
    }

    .pillar:hover {
      box-shadow: var(--sh-sm);
      transform: translateX(4px)
    }

    .pillar-ico {
      font-size: 1.1rem;
      flex-shrink: 0;
      margin-top: 2px
    }

    .pillar strong {
      font-size: .84rem;
      color: var(--dark);
      font-weight: 500;
      display: block;
      margin-bottom: 2px
    }

    .pillar span {
      font-size: .75rem;
      color: var(--muted);
      font-weight: 300
    }

    /* ---- Stats ----------------------------------------------- */
    .stats {
      background: var(--dark);
      padding: 72px 80px
    }

    .stats-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      border-top: 1px solid rgba(201, 169, 110, .1);
      padding-top: 52px;
      margin-bottom: 52px
    }

    .stat {
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 0 20px;
      border-right: 1px solid rgba(201, 169, 110, .07)
    }

    .stat:last-child {
      border-right: none
    }

    .stat-wrap {
      display: inline-flex;
      align-items: flex-start
    }

    .stat-n {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: clamp(2.8rem, 4.5vw, 4rem);
      font-weight: 400;
      color: var(--champ);
      line-height: 1
    }

    .stat-sfx {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.5rem;
      color: var(--champ);
      line-height: 1;
      margin-top: 5px
    }

    .stat-lbl {
      font-size: .6rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: rgba(237, 231, 220, .33);
      margin-top: 10px;
      text-align: center
    }

    .awards {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      border-top: 1px solid rgba(201, 169, 110, .08);
      padding-top: 40px
    }

    .award {
      display: flex;
      align-items: center;
      gap: 13px;
      padding: 0 40px
    }

    .award-ico {
      font-size: 1.5rem;
      opacity: .7
    }

    .award-n {
      font-size: .8rem;
      color: var(--bone);
      margin-bottom: 3px
    }

    .award-sub {
      font-size: .6rem;
      letter-spacing: .13em;
      text-transform: uppercase;
      color: var(--champ);
      opacity: .55
    }

    .award-sep {
      width: 1px;
      height: 36px;
      background: rgba(201, 169, 110, .12);
      flex-shrink: 0
    }

    /* ---- Proceso --------------------------------------------- */
    .proceso {
      padding: 100px 80px;
      background: var(--bone)
    }

    .proceso-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 6px;
      margin-top: 60px
    }

    .paso {
      padding: 40px 30px;
      background: var(--warm);
      border-radius: var(--r-md);
      transition: box-shadow var(--t), transform var(--t)
    }

    .paso:hover {
      box-shadow: var(--sh-md);
      transform: translateY(-4px)
    }

    .paso-n {
      font-size: .65rem;
      letter-spacing: .14em;
      color: var(--champ);
      margin-bottom: 14px
    }

    .paso-t {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.22rem;
      color: var(--dark);
      margin-bottom: 10px
    }

    .paso-d {
      font-size: .82rem;
      line-height: 1.78;
      color: var(--muted);
      font-weight: 300
    }

    /* ---- Destinos -------------------------------------------- */
    .destinos-sec {
      padding: 100px 80px
    }

    .dest-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      grid-template-rows: 280px 280px;
      gap: 12px;
      margin-top: 56px
    }

    .dest-card {
      position: relative;
      overflow: hidden;
      border-radius: var(--r-lg)
    }

    .dest-card:first-child {
      grid-row: span 2
    }

    .dest-bg {
      position: absolute;
      inset: 0;
      background-size: cover;
      background-position: center;
      transition: transform .75s cubic-bezier(.4, 0, .2, 1)
    }

    .dest-card:hover .dest-bg {
      transform: scale(1.07)
    }

    .dest-ov {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(0, 0, 0, .76) 0%, rgba(0, 0, 0, .04) 60%)
    }

    .dest-body {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 26px;
      z-index: 2
    }

    .dest-name {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.45rem;
      font-weight: 400;
      color: #fff;
      line-height: 1.2;
      margin-bottom: 6px
    }

    .dest-tag {
      font-size: .6rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, .52)
    }

    .dest-more {
      background: var(--dark);
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center
    }

    .dest-more .dest-body {
      position: relative;
      bottom: auto;
      left: auto;
      right: auto;
      padding: 28px
    }

    .dest-more .dest-name {
      color: var(--champ);
      font-size: 1.4rem;
      margin-bottom: 10px
    }

    .dest-more-cta {
      font-size: .68rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--champ);
      text-decoration: none;
      border-bottom: 1px solid rgba(201, 169, 110, .35);
      padding-bottom: 3px;
      transition: border-color var(--t)
    }

    .dest-more-cta:hover {
      border-color: var(--champ)
    }

    /* ---- Galería mini ---------------------------------------- */
    .gal-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      grid-template-rows: 500px 300px;
      gap: 6px;
      max-width: 1500px;
      margin: auto;
    }

    .gi {
      overflow: hidden;
      border-radius: var(--r-sm)
    }

    .gi:first-child {
      grid-column: span 2;
      grid-row: span 2;
      border-radius: var(--r-lg)
    }

    .gi img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .6s ease;
      cursor: zoom-in
    }

    .gi:hover img {
      transform: scale(1.06)
    }

    .gal-cta {
      padding: 44px;
      text-align: center;
      background: var(--bone)
    }



    /* ---- Testimonios ----------------------------------------- */
    .testi-sec {
      background: var(--dark);
      padding: 100px 80px
    }

    .testi-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 22px;
      margin-top: 56px
    }

    .testi {
      background: rgba(255, 255, 255, .04);
      padding: 38px;
      border-radius: var(--r-lg);
      border: 1px solid rgba(201, 169, 110, .07);
      transition: border-color var(--t), transform var(--t)
    }

    .testi:hover {
      border-color: rgba(201, 169, 110, .22);
      transform: translateY(-4px)
    }

    .testi-stars {
      color: var(--champ);
      font-size: .88rem;
      letter-spacing: 3px;
      margin-bottom: 14px
    }

    .testi-txt {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.05rem;
      font-style: italic;
      color: var(--bone);
      line-height: 1.68;
      margin-bottom: 22px
    }

    .testi-div {
      width: 28px;
      height: 1px;
      background: var(--champ);
      margin-bottom: 14px
    }

    .testi-auth {
      font-size: .62rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(237, 231, 220, .33)
    }

    /* ---- CTA home -------------------------------------------- */
    .cta-home {
      padding: 100px 80px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: start
    }

    .contact-item {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 22px
    }

    .ci-ico {
      width: 46px;
      height: 46px;
      border-radius: 50%;
      background: var(--champ-pale);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.1rem;
      flex-shrink: 0
    }

    .ci-lbl {
      font-size: .6rem;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: var(--muted)
    }

    .ci-val {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.1rem;
      color: var(--dark);
      text-decoration: none;
      transition: color var(--t)
    }

    .ci-val:hover {
      color: var(--champ)
    }

    .form-box {
      background: var(--dark);
      padding: 52px 48px;
      border-radius: var(--r-xl)
    }

    .form-ttl {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.8rem;
      color: var(--bone);
      margin-bottom: 6px
    }

    .form-sub {
      font-size: .76rem;
      color: rgba(237, 231, 220, .34);
      margin-bottom: 32px;
      font-weight: 300
    }

    .ff {
      display: flex;
      flex-direction: column;
      gap: 6px;
      margin-bottom: 16px
    }

    .ff label {
      font-size: .58rem;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: rgba(237, 231, 220, .4)
    }

    .ff input,
    .ff select,
    .ff textarea {
      background: transparent;
      border: none;
      border-bottom: 1px solid rgba(201, 169, 110, .18);
      padding: 11px 0;
      font-family: 'Jost', sans-serif;
      font-size: .87rem;
      color: var(--bone);
      font-weight: 300;
      outline: none;
      transition: border-color var(--t);
      -webkit-appearance: none
    }

    .ff input:focus,
    .ff select:focus,
    .ff textarea:focus {
      border-bottom-color: var(--champ)
    }

    .ff input::placeholder,
    .ff textarea::placeholder {
      color: rgba(237, 231, 220, .18)
    }

    .ff select option {
      background: var(--dark)
    }

    .ff textarea {
      resize: none;
      height: 70px
    }

    .frow {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px
    }

    .fsub {
      background: var(--champ);
      color: #fff;
      border: none;
      font-family: 'Jost', sans-serif;
      font-size: .7rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      padding: 18px;
      cursor: pointer;
      font-weight: 400;
      width: 100%;
      margin-top: 8px;
      border-radius: var(--r-pill);
      transition: background var(--t), transform .2s
    }

    .fsub:hover {
      background: var(--champ-dk);
      transform: translateY(-1px)
    }

    .fnote {
      font-size: .63rem;
      color: rgba(237, 231, 220, .22);
      text-align: center;
      margin-top: 10px;
      line-height: 1.6
    }

    /* ---- Responsive ------------------------------------------ */
    @media(max-width:900px) {
      .hero-body {
        padding: 110px 22px 80px
      }

      .hero-badge {
        right: 16px;
        bottom: 18px;
        padding: 16px 20px
      }

      .strip {
        gap: 16px;
        padding: 16px 22px
      }

      .dif {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 64px 22px
      }

      .dif-img-wrap {
        aspect-ratio: 3/2
      }

      .stats {
        padding: 52px 22px
      }

      .stats-grid {
        grid-template-columns: repeat(2, 1fr)
      }

      .stat {
        border-right: none;
        border-bottom: 1px solid rgba(201, 169, 110, .07);
        padding: 20px
      }

      .awards {
        flex-direction: column;
        gap: 20px
      }

      .award-sep {
        display: none
      }

      .award {
        padding: 0
      }

      .proceso {
        padding: 64px 22px
      }

      .proceso-grid {
        grid-template-columns: 1fr;
        gap: 8px
      }

      .destinos-sec {
        padding: 64px 22px
      }

      .dest-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto
      }

      .dest-card:first-child {
        grid-row: span 1;
        grid-column: span 2
      }

      .gal-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto
      }

      .gi:first-child {
        grid-column: span 2;
        grid-row: span 1
      }

      .testi-sec {
        padding: 64px 22px
      }

      .testi-grid {
        grid-template-columns: 1fr
      }

      .cta-home {
        grid-template-columns: 1fr;
        gap: 36px;
        padding: 64px 22px
      }

      .form-box {
        padding: 36px 22px
      }

      .frow {
        grid-template-columns: 1fr
      }
    }

/* ---- landing-google-ads.html ------------------------------------------- */
/* ====================================================
   LANDING PAGE — Destinos Nupciales (Google Ads)
   Sin navegación · orientada a conversión · mobile-first
   ==================================================== */
.landing-page{
  --champ:     #C9A96E;
  --champ-lt:  #E8D5B0;
  --champ-dk:  #A8782E;
  --champ-pale:#F4ECD8;
  --dark:      #1A1612;
  --dark2:     #251E18;
  --bone:      #EDE7DC;
  --warm:      #FBF8F4;
  --muted:     #8C7D72;
  --green:     #4A7C59;
  --r-pill:    100px;
  --r-lg:      20px;
  --r-xl:      32px;
  --t:         .3s ease;
}
.landing-page *,.landing-page *::before,.landing-page *::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body.landing-page{font-family:'Jost','Helvetica Neue',Arial,sans-serif;background:var(--warm);color:var(--dark);overflow-x:hidden;-webkit-font-smoothing:antialiased}
.landing-page img{display:block;max-width:100%}
.landing-page a{color:inherit}

/* Topbar urgencia */
.landing-page .topbar{background:var(--dark);color:var(--bone);display:flex;justify-content:center;align-items:center;gap:28px;padding:10px 24px;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;flex-wrap:wrap}
.landing-page .topbar a{color:var(--champ);text-decoration:none}
.landing-page .tb-sep{opacity:.25;font-size:.7rem}
.landing-page .tb-dot{width:5px;height:5px;background:var(--green);border-radius:50%;animation:pulse 2s infinite;flex-shrink:0}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.6)}}

/* Nav landing — solo logo + teléfono */
.landing-page .nav-lp{display:flex;align-items:center;justify-content:space-between;padding:16px 60px;background:var(--warm);border-bottom:1px solid var(--bone);position:sticky;top:0;z-index:100}
.landing-page .nav-logo{font-family:'Playfair Display',Georgia,serif;font-size:1.4rem;font-weight:400;letter-spacing:.08em;color:var(--dark);text-decoration:none}
.landing-page .nav-logo span{color:var(--champ)}
.landing-page .nav-phone{display:flex;align-items:center;gap:10px;text-decoration:none}
.landing-page .ph-lbl{font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.landing-page .ph-num{font-family:'Playfair Display',Georgia,serif;font-size:1.3rem;color:var(--dark);transition:color var(--t)}
.landing-page .nav-phone:hover .ph-num{color:var(--champ)}
.landing-page .nav-lp-cta{background:var(--champ);color:#fff;font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;padding:12px 26px;border-radius:var(--r-pill);text-decoration:none;font-weight:400;transition:background var(--t);white-space:nowrap}
.landing-page .nav-lp-cta:hover{background:var(--champ-dk)}

/* ====================================================
   HERO — 2 columnas: copy + formulario
   ==================================================== */
.landing-page .hero-lp{display:grid;grid-template-columns:1fr 1fr;min-height:90vh}

/* Columna izquierda */
.landing-page .hero-copy{padding:72px 68px;display:flex;flex-direction:column;justify-content:center;position:relative}
.landing-page .hero-copy::after{content:'';position:absolute;top:0;bottom:0;right:0;width:1px;background:var(--bone)}

.landing-page .badge-avail{display:inline-flex;align-items:center;gap:9px;background:#EBF5EE;border:1px solid #C1DBC9;color:var(--green);padding:7px 16px;border-radius:var(--r-pill);font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;margin-bottom:28px;width:fit-content}

.landing-page .hero-h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(2.4rem,3.8vw,3.8rem);font-weight:400;line-height:1.1;color:var(--dark);margin-bottom:20px}
.landing-page .hero-h1 em{font-style:italic;color:var(--champ)}

.landing-page .hero-sub{font-size:.94rem;line-height:1.82;color:var(--muted);font-weight:300;max-width:460px;margin-bottom:36px}

/* USPs */
.landing-page .usps{display:flex;flex-direction:column;gap:12px;margin-bottom:40px}
.landing-page .usp{display:flex;align-items:flex-start;gap:13px}
.landing-page .usp-ico{width:20px;height:20px;background:var(--champ);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;font-size:.62rem;color:#fff;font-weight:700}
.landing-page .usp-txt{font-size:.87rem;line-height:1.5;color:var(--dark);font-weight:300}
.landing-page .usp-txt strong{font-weight:500}

/* Hero CTAs */
.landing-page .hero-acts{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.landing-page .btn-hero{background:var(--dark);color:#fff;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;padding:17px 44px;text-decoration:none;font-weight:400;border-radius:var(--r-pill);transition:background var(--t),transform .2s;border:none;cursor:pointer;font-family:'Jost',sans-serif}
.landing-page .btn-hero:hover{background:#3D3530;transform:translateY(-2px)}
.landing-page .btn-wa{display:flex;align-items:center;gap:10px;font-size:.84rem;color:var(--dark);text-decoration:none;transition:color var(--t)}
.landing-page .btn-wa:hover{color:var(--green)}
.landing-page .btn-wa-ico{width:38px;height:38px;border:1px solid var(--bone);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;transition:border-color var(--t)}
.landing-page .btn-wa:hover .btn-wa-ico{border-color:var(--green)}

/* Columna derecha: formulario */
.landing-page .hero-form{background:var(--dark);padding:56px 52px;display:flex;flex-direction:column;justify-content:center}
.landing-page .form-eyebrow{font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--champ);margin-bottom:10px;display:flex;align-items:center;gap:11px}
.landing-page .form-eyebrow::before{content:'';width:22px;height:1px;background:var(--champ)}
.landing-page .form-ttl{font-family:'Playfair Display',Georgia,serif;font-size:1.9rem;font-weight:400;color:var(--bone);margin-bottom:32px;line-height:1.22}
.landing-page .form-ttl em{font-style:italic}
.landing-page .lf{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.landing-page .lf label{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(237,231,220,.42)}
.landing-page .lf input,.landing-page .lf select,.landing-page .lf textarea{background:transparent;border:none;border-bottom:1px solid rgba(201,169,110,.2);padding:11px 0;font-family:'Jost',sans-serif;font-size:.87rem;color:var(--bone);font-weight:300;outline:none;transition:border-color var(--t);-webkit-appearance:none}
.landing-page .lf input:focus,.landing-page .lf select:focus,.landing-page .lf textarea:focus{border-bottom-color:var(--champ)}
.landing-page .lf input::placeholder,.landing-page .lf textarea::placeholder{color:rgba(237,231,220,.18)}
.landing-page .lf select option{background:var(--dark)}
.landing-page .lf textarea{resize:none;height:62px}
.landing-page .lrow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.landing-page .lsub{background:var(--champ);color:#fff;border:none;font-family:'Jost',sans-serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:18px;cursor:pointer;font-weight:400;width:100%;margin-top:8px;border-radius:var(--r-pill);transition:background var(--t),transform .2s}
.landing-page .lsub:hover{background:var(--champ-dk);transform:translateY(-1px)}
.landing-page .lnote{font-size:.63rem;color:rgba(237,231,220,.24);text-align:center;margin-top:10px;line-height:1.6}

/* ====================================================
   PROOF BAR — estadísticas
   ==================================================== */
.landing-page .proof{display:flex;background:var(--bone);border-top:1px solid rgba(201,169,110,.2)}
.landing-page .proof-item{flex:1;padding:32px 20px;text-align:center;border-right:1px solid rgba(201,169,110,.16)}
.landing-page .proof-item:last-child{border-right:none}
.landing-page .proof-num{font-family:'Playfair Display',Georgia,serif;font-size:2.6rem;font-weight:400;color:var(--champ);line-height:1;margin-bottom:7px}
.landing-page .proof-lbl{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* ====================================================
   BENEFICIOS
   ==================================================== */
.landing-page .benefits{padding:88px 80px}
.landing-page .sec-label{font-size:.63rem;letter-spacing:.3em;text-transform:uppercase;color:var(--champ);margin-bottom:14px;display:flex;align-items:center;gap:12px}
.landing-page .sec-label::before{content:'';width:26px;height:1px;background:var(--champ)}
.landing-page .sec-title{font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.9rem,3.2vw,3rem);font-weight:400;line-height:1.14;color:var(--dark)}
.landing-page .sec-title em{font-style:italic}
.landing-page .sec-title.light{color:var(--bone)}
.landing-page .ben-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px}
.landing-page .ben{padding:36px 30px;background:var(--bone);border-radius:var(--r-lg);transition:transform var(--t),box-shadow var(--t)}
.landing-page .ben:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(26,22,18,.1)}
.landing-page .ben-ico{font-size:1.7rem;margin-bottom:16px}
.landing-page .ben-t{font-family:'Playfair Display',Georgia,serif;font-size:1.2rem;color:var(--dark);margin-bottom:10px}
.landing-page .ben-d{font-size:.84rem;line-height:1.8;color:var(--muted);font-weight:300}

/* ====================================================
   DESTINOS STRIP
   ==================================================== */
.landing-page .dest-strip{background:var(--dark);padding:80px}
.landing-page .dest-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:52px}
.landing-page .dtile{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:12px}
.landing-page .dtile-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s ease}
.landing-page .dtile:hover .dtile-bg{transform:scale(1.06)}
.landing-page .dtile-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.04) 55%)}
.landing-page .dtile-body{position:absolute;bottom:0;left:0;right:0;padding:22px;z-index:2}
.landing-page .dtile-name{font-family:'Playfair Display',Georgia,serif;font-size:1.3rem;color:#fff;margin-bottom:5px}
.landing-page .dtile-tag{font-size:.58rem;letter-spacing:.17em;text-transform:uppercase;color:rgba(255,255,255,.52)}

/* ====================================================
   MANEJO DE OBJECIONES
   ==================================================== */
.landing-page .objections{padding:88px 80px;background:var(--dark)}
.landing-page .obj-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:52px}
.landing-page .obj{background:rgba(255,255,255,.04);padding:40px 36px;border-left:3px solid transparent;transition:border-color var(--t),background var(--t)}
.landing-page .obj:hover{border-left-color:var(--champ);background:rgba(255,255,255,.06)}
.landing-page .obj-q{font-family:'Playfair Display',Georgia,serif;font-size:1.1rem;font-style:italic;color:rgba(237,231,220,.55);margin-bottom:14px}
.landing-page .obj-a{font-size:.86rem;line-height:1.82;color:rgba(237,231,220,.78);font-weight:300}

/* ====================================================
   TESTIMONIOS
   ==================================================== */
.landing-page .testis{padding:88px 80px;background:var(--bone)}
.landing-page .testi-row{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:52px}
.landing-page .tc{background:var(--warm);padding:40px 36px;border-radius:var(--r-lg)}
.landing-page .tc-stars{color:var(--champ);letter-spacing:3px;margin-bottom:12px;font-size:.88rem}
.landing-page .tc-txt{font-family:'Playfair Display',Georgia,serif;font-size:1.1rem;font-style:italic;color:var(--dark);line-height:1.65;margin-bottom:20px}
.landing-page .tc-div{width:26px;height:1px;background:var(--champ);margin-bottom:14px}
.landing-page .tc-auth{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* ====================================================
   FINAL CTA
   ==================================================== */
.landing-page .final{padding:100px 80px;text-align:center;position:relative;overflow:hidden}
.landing-page .final::before{content:'DESTINOS';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Playfair Display',Georgia,serif;font-size:18vw;font-weight:400;color:rgba(201,169,110,.05);white-space:nowrap;pointer-events:none;user-select:none}
.landing-page .final h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(2rem,4vw,3.4rem);font-weight:400;color:var(--dark);margin-bottom:14px;position:relative}
.landing-page .final h2 em{font-style:italic;color:var(--champ)}
.landing-page .final p{font-size:.9rem;color:var(--muted);font-weight:300;max-width:420px;margin:0 auto 40px;line-height:1.75;position:relative}
.landing-page .final-acts{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}
.landing-page .btn-fp{background:var(--dark);color:#fff;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:18px 52px;text-decoration:none;font-weight:400;border-radius:var(--r-pill);transition:background var(--t),transform .2s}
.landing-page .btn-fp:hover{background:#3D3530;transform:translateY(-2px)}
.landing-page .btn-fwa{background:var(--champ);color:#fff;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:18px 44px;text-decoration:none;font-weight:400;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:10px;transition:background var(--t),transform .2s}
.landing-page .btn-fwa:hover{background:var(--champ-dk);transform:translateY(-2px)}

/* ====================================================
   FOOTER landing
   ==================================================== */
.landing-page .footer-lp{background:var(--dark2);color:rgba(237,231,220,.36);padding:24px 80px;display:flex;justify-content:space-between;align-items:center;font-size:.64rem;letter-spacing:.1em;flex-wrap:wrap;gap:12px}
.landing-page .footer-lp a{color:rgba(237,231,220,.44);text-decoration:none}
.landing-page .footer-lp a:hover{color:var(--champ-lt)}

/* WhatsApp flotante */
.landing-page .wa-fab{position:fixed;bottom:26px;right:26px;z-index:90;width:54px;height:54px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,.45);text-decoration:none;transition:transform var(--t)}
.landing-page .wa-fab:hover{transform:scale(1.1)}

/* Sticky CTA mobile */
.landing-page .sticky-mob{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--dark);padding:14px 20px;gap:10px;align-items:center}
.landing-page .sticky-mob a{flex:1;text-align:center;padding:14px;border-radius:var(--r-pill);font-family:'Jost',sans-serif;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:400;text-decoration:none;transition:background var(--t)}
.landing-page .sticky-call{background:rgba(255,255,255,.1);color:var(--bone)}
.landing-page .sticky-cta{background:var(--champ);color:#fff}
.landing-page .sticky-cta:hover{background:var(--champ-dk)}

/* ====================================================
   RESPONSIVE
   ==================================================== */
@media(max-width:900px){
  .landing-page .topbar{gap:14px;padding:8px 16px;font-size:.58rem}
  .landing-page .nav-lp{padding:12px 18px}
  .landing-page .nav-phone{display:none}
  .landing-page .hero-lp{grid-template-columns:1fr}
  .landing-page .hero-copy{padding:52px 22px;order:2}
  .landing-page .hero-copy::after{display:none}
  .landing-page .hero-form{padding:44px 22px;order:1}
  .landing-page .proof{flex-wrap:wrap}
  .landing-page .proof-item{flex:1 1 50%;border-bottom:1px solid rgba(201,169,110,.16)}
  .landing-page .benefits{padding:64px 22px}
  .landing-page .ben-grid{grid-template-columns:1fr}
  .landing-page .dest-strip{padding:64px 22px}
  .landing-page .dest-row{grid-template-columns:1fr 1fr}
  .landing-page .objections{padding:64px 22px}
  .landing-page .obj-grid{grid-template-columns:1fr}
  .landing-page .testis{padding:64px 22px}
  .landing-page .testi-row{grid-template-columns:1fr}
  .landing-page .final{padding:72px 22px}
  .landing-page .final-acts{flex-direction:column;align-items:center}
  .landing-page .footer-lp{padding:20px 22px;flex-direction:column;text-align:center}
  .landing-page .sticky-mob{display:flex}
  .landing-page .wa-fab{bottom:80px}
  body.landing-page{padding-bottom:68px}
}
@media(max-width:500px){
  .landing-page .dest-row{grid-template-columns:1fr}
  .landing-page .lrow{grid-template-columns:1fr}
}

/* ---- nosotras.html ------------------------------------------- */
.about-grid {
      padding: 100px 80px;
      display: grid;
      grid-template-columns: 1fr 1.1fr;
      gap: 80px;
      align-items: start
    }

    .about-img {
      position: sticky;
      top: 100px;
      align-self: start
    }

    /* transform en .fu rompe sticky — solo animamos opacidad en la imagen */
    .about-img.fu {
      transform: none;
      transition: opacity .75s ease;
    }
    .about-img.fu.vis {
      transform: none;
    }

    .about-img img {
      width: 100%;
      aspect-ratio: 3/4;
      object-fit: cover;
      object-position: top;
      border-radius: var(--r-lg)
    }

    .about-badge {
      position: absolute;
      bottom: 28px;
      left: -24px;
      background: var(--ivory);
      padding: 20px 28px;
      border-radius: var(--r-md);
      box-shadow: var(--sh-md);
      border-left: 3px solid var(--champ)
    }

    .about-badge-t {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1rem;
      font-weight: 400;
      color: var(--dark)
    }

    .about-badge-s {
      font-size: .62rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--muted);
      margin-top: 4px
    }

    .about-accent {
      position: absolute;
      bottom: -18px;
      right: -18px;
      width: 55%;
      height: 55%;
      border: 2px solid var(--champ);
      border-radius: var(--r-md);
      opacity: .25;
      z-index: -1
    }

    .about-lead {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.2rem;
      font-style: italic;
      color: var(--dark);
      line-height: 1.65;
      margin: 26px 0 20px
    }

    .about-body {
      font-size: .9rem;
      line-height: 1.9;
      color: var(--muted);
      font-weight: 300;
      margin-bottom: 16px
    }

    .vals {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
      margin: 36px 0
    }

    .val {
      padding: 20px;
      background: var(--bone);
      border-radius: var(--r-md)
    }

    .val-ico {
      font-size: 1.3rem;
      margin-bottom: 10px
    }

    .val-t {
      font-size: .85rem;
      font-weight: 500;
      color: var(--dark);
      margin-bottom: 4px
    }

    .val-d {
      font-size: .78rem;
      color: var(--muted);
      font-weight: 300;
      line-height: 1.6
    }

    .equipo-sec {
      padding: 100px 80px;
      background: var(--bone)
    }

    .team-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 28px;
      margin-top: 56px
    }

    .team-card {
      background: #fff;
      border-radius: var(--r-xl);
      overflow: hidden;
      box-shadow: var(--sh-sm);
      transition: box-shadow var(--t), transform var(--t)
    }

    .team-card:hover {
      box-shadow: var(--sh-md);
      transform: translateY(-6px)
    }

    .team-img {
      aspect-ratio: 3/4;
      overflow: hidden
    }

    .team-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: top;
      transition: transform .6s ease
    }

    .team-card:hover .team-img img {
      transform: scale(1.04)
    }

    .team-body {
      padding: 28px
    }

    .team-name {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.35rem;
      color: var(--dark);
      margin-bottom: 4px
    }

    .team-rol {
      font-size: .65rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--champ);
      margin-bottom: 14px
    }

    .team-bio {
      font-size: .82rem;
      line-height: 1.72;
      color: var(--muted);
      font-weight: 300
    }

    .certs {
      padding: 80px;
      background: var(--dark);
      text-align: center
    }

    .cert-grid {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 60px;
      flex-wrap: wrap;
      margin-top: 48px
    }

    .cert {
      text-align: center
    }

    .cert-ico {
      font-size: 2.4rem;
      margin-bottom: 12px
    }

    .cert-t {
      font-size: .82rem;
      color: var(--bone);
      margin-bottom: 4px
    }

    .cert-s {
      font-size: .62rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--champ);
      opacity: .6
    }

    @media(max-width:900px) {
      .about-grid {
        grid-template-columns: 1fr;
        gap: 36px;
        padding: 64px 22px
      }

      .about-badge {
        left: 12px;
        bottom: 16px
      }

      .vals {
        grid-template-columns: 1fr
      }

      .equipo-sec {
        padding: 64px 22px
      }

      .team-grid {
        grid-template-columns: 1fr;
        max-width: 380px;
        margin-left: auto;
        margin-right: auto
      }

      .certs {
        padding: 64px 22px
      }

      .cert-grid {
        gap: 36px
      }
    }

/* ---- post-ejemplo.html ------------------------------------------- */
/* Layout artículo */
.post-layout{display:grid;grid-template-columns:1fr 320px;gap:60px;max-width:1120px;margin:0 auto;padding:80px 40px}
.post-article{}
.post-meta-bar{display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding-bottom:24px;border-bottom:1px solid var(--bone);margin-bottom:40px}
.post-cat-tag{background:var(--champ-pale);color:var(--champ-dk);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;padding:5px 14px;border-radius:var(--r-pill);font-weight:500}
.post-date-lbl{font-size:.72rem;color:var(--muted);font-weight:300}
.post-read-lbl{font-size:.72rem;color:var(--muted);font-weight:300}
.post-h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.8rem,3vw,2.8rem);font-weight:400;line-height:1.18;color:var(--dark);margin-bottom:22px}
.post-intro{font-size:1rem;line-height:1.88;color:var(--mid);font-weight:300;margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid var(--bone)}
.post-content h2{font-family:'Playfair Display',Georgia,serif;font-size:1.7rem;font-weight:400;color:var(--dark);margin:44px 0 16px;line-height:1.22}
.post-content h3{font-family:'Playfair Display',Georgia,serif;font-size:1.25rem;font-weight:400;color:var(--dark);margin:28px 0 12px}
.post-content p{font-size:.93rem;line-height:1.9;color:var(--mid);font-weight:300;margin-bottom:18px}
.post-content strong{color:var(--dark);font-weight:500}
.post-content ul,.post-content ol{padding-left:0;list-style:none;margin-bottom:18px;display:flex;flex-direction:column;gap:10px}
.post-content ul li,.post-content ol li{font-size:.9rem;line-height:1.75;color:var(--mid);font-weight:300;padding-left:20px;position:relative}
.post-content ul li::before{content:'→';position:absolute;left:0;color:var(--champ);font-size:.75rem;top:3px}
.post-content ol{counter-reset:ol}
.post-content ol li{counter-increment:ol}
.post-content ol li::before{content:counter(ol)'.';color:var(--champ);font-size:.8rem;font-weight:500}
.post-img-full{margin:32px 0;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/8}
.post-img-full img{width:100%;height:100%;object-fit:cover}
.post-img-cap{font-size:.72rem;color:var(--muted);text-align:center;margin-top:8px;font-style:italic;font-weight:300}
.post-quote{background:var(--bone);padding:32px 36px;border-radius:var(--r-lg);margin:32px 0;border-left:3px solid var(--champ)}
.post-quote blockquote{font-family:'Playfair Display',Georgia,serif;font-size:1.2rem;font-style:italic;color:var(--dark);line-height:1.62;margin:0}
.post-highlight{background:var(--dark);padding:28px 32px;border-radius:var(--r-md);margin:32px 0}
.post-highlight p{color:rgba(237,231,220,.7);margin:0;font-size:.88rem;line-height:1.78}
.post-highlight strong{color:var(--champ)}

/* Tabla simple */
.post-table{width:100%;border-collapse:collapse;margin:28px 0;border-radius:var(--r-md);overflow:hidden;font-size:.85rem}
.post-table th{background:var(--dark);color:var(--bone);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;padding:14px 18px;text-align:left;font-weight:400}
.post-table td{padding:13px 18px;border-bottom:1px solid var(--bone);color:var(--mid);font-weight:300;line-height:1.5}
.post-table tr:last-child td{border-bottom:none}
.post-table tr:nth-child(even) td{background:#fff}

/* Navegación entre posts */
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:60px;padding-top:36px;border-top:1px solid var(--bone)}
.post-nav-card{background:#fff;border-radius:var(--r-md);padding:20px;box-shadow:var(--sh-sm);text-decoration:none;color:inherit;transition:box-shadow var(--t),transform var(--t)}
.post-nav-card:hover{box-shadow:var(--sh-md);transform:translateY(-3px)}
.post-nav-lbl{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.post-nav-title{font-size:.88rem;color:var(--dark);line-height:1.4}
.post-nav-card.next{text-align:right}

/* Sidebar */
.post-sidebar{position:sticky;top:100px;align-self:start;display:flex;flex-direction:column;gap:20px}
.sb-toc{background:var(--bone);border-radius:var(--r-lg);padding:24px 22px}
.sb-toc h4{font-family:'Playfair Display',Georgia,serif;font-size:1rem;color:var(--dark);margin-bottom:16px}
.sb-toc ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.sb-toc ul li a{font-size:.78rem;color:var(--muted);text-decoration:none;font-weight:300;transition:color var(--t);display:block;padding-left:12px;border-left:2px solid transparent;transition:all var(--t)}
.sb-toc ul li a:hover{color:var(--champ);border-left-color:var(--champ)}
.sb-cta{background:var(--dark);border-radius:var(--r-xl);padding:32px 26px}
.sb-cta h3{font-family:'Playfair Display',Georgia,serif;font-size:1.2rem;color:var(--bone);margin-bottom:10px;line-height:1.3}
.sb-cta p{font-size:.78rem;color:rgba(237,231,220,.42);font-weight:300;line-height:1.7;margin-bottom:22px}
.sb-posts{background:#fff;border-radius:var(--r-lg);padding:22px;box-shadow:var(--sh-sm)}
.sb-posts h4{font-size:.78rem;font-weight:600;color:var(--dark);margin-bottom:14px;letter-spacing:.04em}
.sb-post-item{display:flex;gap:12px;padding-bottom:13px;margin-bottom:13px;border-bottom:1px solid var(--bone);text-decoration:none;color:inherit}
.sb-post-item:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}
.sb-post-img{width:64px;height:48px;border-radius:var(--r-sm);overflow:hidden;flex-shrink:0}
.sb-post-img img{width:100%;height:100%;object-fit:cover}
.sb-post-t{font-size:.78rem;color:var(--dark);line-height:1.4;font-weight:400;transition:color var(--t)}
.sb-post-item:hover .sb-post-t{color:var(--champ)}

@media(max-width:1000px){
  .post-layout{grid-template-columns:1fr;gap:0;padding:64px 22px}
  .post-sidebar{position:static;margin-top:48px}
  .post-nav{grid-template-columns:1fr}
}

/* ---- privacidad.html ------------------------------------------- */
.legal-wrap{max-width:800px;margin:0 auto;padding:80px 40px}
.legal-wrap h1{font-family:'Playfair Display',Georgia,serif;font-size:2.4rem;font-weight:400;color:var(--dark);margin-bottom:8px}
.legal-wrap .legal-date{font-size:.78rem;color:var(--muted);margin-bottom:48px;font-weight:300}
.legal-wrap h2{font-family:'Playfair Display',Georgia,serif;font-size:1.3rem;font-weight:400;color:var(--dark);margin:36px 0 12px}
.legal-wrap p,.legal-wrap li{font-size:.9rem;line-height:1.88;color:var(--mid);font-weight:300;margin-bottom:14px}
.legal-wrap ul{padding-left:20px;margin-bottom:14px}
.legal-wrap ul li{margin-bottom:6px}
.legal-wrap a{color:var(--champ);text-decoration:none}
.legal-wrap a:hover{text-decoration:underline}
.legal-back{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);text-decoration:none;margin-bottom:32px;transition:color var(--t)}
.legal-back:hover{color:var(--champ)}
@media(max-width:700px){.legal-wrap{padding:60px 22px}}

/* ---- servicios.html ------------------------------------------- */
.sv-intro{padding:80px 80px 60px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end}
.sv-grid{padding:0 80px 80px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sv-card{padding:38px 32px;background:#fff;border-radius:var(--r-lg);border:1px solid var(--bone);transition:box-shadow var(--t),transform var(--t),border-color var(--t)}
.sv-card:hover{box-shadow:var(--sh-md);transform:translateY(-5px);border-color:var(--champ-lt)}
.sv-num{font-size:2rem;font-family:'Playfair Display',Georgia,serif;color:var(--champ-pale);font-weight:400;margin-bottom:12px;line-height:1}
.sv-name{font-family:'Playfair Display',Georgia,serif;font-size:1.2rem;color:var(--dark);margin-bottom:12px}
.sv-desc{font-size:.83rem;line-height:1.78;color:var(--muted);font-weight:300}
.pkgs{background:var(--dark);padding:100px 80px}
.pkg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:56px}
.pkg{background:rgba(255,255,255,.04);border:1px solid rgba(201,169,110,.1);border-radius:var(--r-xl);padding:44px 36px;position:relative;transition:border-color var(--t),transform var(--t)}
.pkg:hover{border-color:rgba(201,169,110,.3);transform:translateY(-4px)}
.pkg.feat{background:rgba(201,169,110,.08);border-color:rgba(201,169,110,.4)}
.pkg-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--champ);color:#fff;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;padding:5px 16px;border-radius:var(--r-pill);white-space:nowrap}
.pkg-name{font-family:'Playfair Display',Georgia,serif;font-size:1.3rem;color:var(--bone);margin-bottom:4px}
.pkg-sub{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(237,231,220,.35);margin-bottom:24px}
.pkg-price{font-family:'Playfair Display',Georgia,serif;font-size:2rem;color:var(--champ);margin-bottom:28px;line-height:1}
.pkg-price span{font-size:1.2rem}
.pkg-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:32px}
.pkg-list li{font-size:.82rem;color:rgba(237,231,220,.6);font-weight:300;padding-left:18px;position:relative}
.pkg-list li::before{content:'✓';position:absolute;left:0;color:var(--champ);font-size:.75rem}
.pkg-cta{display:block;text-align:center;padding:14px;border-radius:var(--r-pill);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;transition:all var(--t);font-weight:400}
.pkg-cta-p{background:var(--champ);color:#fff}
.pkg-cta-p:hover{background:var(--champ-dk)}
.pkg-cta-g{border:1px solid rgba(201,169,110,.35);color:var(--champ-lt)}
.pkg-cta-g:hover{background:rgba(201,169,110,.12)}
.pkg-note{font-size:.76rem;color:rgba(237,231,220,.28);text-align:center;max-width:640px;margin:40px auto 0;line-height:1.7;font-weight:300}
.proceso-simple{padding:80px;text-align:center;background:var(--bone)}
@media(max-width:900px){
  .sv-intro{grid-template-columns:1fr;gap:32px;padding:64px 22px 48px}
  .sv-grid{grid-template-columns:1fr;padding:0 22px 64px}
  .pkgs{padding:64px 22px}
  .pkg-grid{grid-template-columns:1fr}
  .proceso-simple{padding:64px 22px}
}

/* ---- sitemap.html ------------------------------------------- */
.sitemap-wrap{max-width:900px;margin:0 auto;padding:80px 40px}
.sitemap-wrap h1{font-family:'Playfair Display',Georgia,serif;font-size:2.2rem;font-weight:400;color:var(--dark);margin-bottom:48px}
.sm-section{margin-bottom:40px}
.sm-section h2{font-size:.65rem;letter-spacing:.28em;text-transform:uppercase;color:var(--champ);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.sm-section h2::before{content:'';width:22px;height:1px;background:var(--champ)}
.sm-links{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sm-link{display:flex;flex-direction:column;padding:16px 18px;background:#fff;border-radius:var(--r-md);border:1px solid var(--bone);text-decoration:none;color:inherit;transition:border-color var(--t),transform var(--t)}
.sm-link:hover{border-color:var(--champ);transform:translateY(-2px)}
.sm-link-name{font-size:.88rem;font-weight:500;color:var(--dark);margin-bottom:3px}
.sm-link-url{font-size:.72rem;color:var(--muted);font-weight:300}
@media(max-width:700px){.sitemap-wrap{padding:60px 22px}.sm-links{grid-template-columns:1fr 1fr}}

/* ============================================================
   Inline styles moved from HTML attributes
   ============================================================ */

.u-inline-001{min-height:46vh;}
.u-inline-002{background-image:url('img/hero/hero-blog.webp');}
.u-inline-003{font-size:.9rem;line-height:1.85;color:var(--muted);font-weight:300;margin-top:20px;}
.u-inline-004{font-family:'Playfair Display',Georgia,serif;font-size:1.7rem;color:var(--dark);line-height:1.25;margin-bottom:14px;}
.u-inline-005{font-size:.88rem;line-height:1.8;color:var(--muted);font-weight:300;margin-bottom:24px;}
.u-inline-006{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
.u-inline-007{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--champ);display:inline-flex;align-items:center;gap:7px;}
.u-inline-008{justify-content:center;}
.u-inline-009{margin-bottom:10px;}
.u-inline-010{font-size:.85rem;color:var(--muted);font-weight:300;line-height:1.75;margin-bottom:0;}
.u-inline-011{font-size:.7rem;color:var(--muted);margin-top:12px;opacity:.6;}
.u-inline-012{min-height:65vh;}
.u-inline-013{background-image:url('img/bodas/boda-destacada.jpg');background-position:center 30%;}
.u-inline-014{background:linear-gradient(to top,rgba(15,11,9,.88) 0%,rgba(15,11,9,.15) 70%);}
.u-inline-015{padding:0;}
.u-inline-016{grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto;}
.u-inline-017{aspect-ratio:4/3;}
.u-inline-018{font-style:italic;}
.u-inline-019{width:100%;text-align:center;display:block;}
.u-inline-020{background-image:url('img/hero/hero-bodas.webp');}
.u-inline-021{font-size:1.8rem;margin-bottom:14px;}
.u-inline-022{font-size:.9rem;line-height:1.8;color:var(--muted);font-weight:300;margin-bottom:28px;}
.u-inline-023{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
.u-inline-024{justify-content:center;color:var(--champ);}
.u-inline-025{font-family:'Playfair Display',Georgia,serif;font-size:2.4rem;font-weight:400;color:var(--bone);margin:12px 0 14px;}
.u-inline-026{font-style:italic;color:var(--champ);}
.u-inline-027{font-size:.9rem;color:rgba(237,231,220,.42);margin-bottom:32px;max-width:440px;margin-left:auto;margin-right:auto;font-weight:300;line-height:1.7;}
.u-inline-028{min-height:44vh;}
.u-inline-029{background-image:url('img/hero/hero-contacto.webp');}
.u-inline-030{font-size:.9rem;line-height:1.85;color:var(--muted);font-weight:300;margin-top:16px;margin-bottom:36px;}
.u-inline-031{cursor:default;}
.u-inline-032{background-image:url('img/hero/hero-destinos.webp');}
.u-inline-033{font-size:.9rem;line-height:1.88;color:var(--muted);font-weight:300;margin-bottom:28px;}
.u-inline-034{background-image:url('img/destinos/cancun.webp');}
.u-inline-035{background-image:url('img/destinos/riviera-maya.webp');}
.u-inline-036{background-image:url('img/destinos/cozumel.webp');}
.u-inline-037{background-image:url('img/destinos/puerto-vallarta.webp');}
.u-inline-038{background-image:url('img/destinos/nuevo-vallarta.webp');}
.u-inline-039{background-image:url('img/destinos/manzanillo.webp');}
.u-inline-040{background-image:url('img/destinos/ixtapa.webp');}
.u-inline-041{background-image:url('img/destinos/huatulco.webp');}
.u-inline-042{background-image:url('img/destinos/mazatlan.webp');}
.u-inline-043{color:rgba(237,231,220,.4);margin-bottom:16px;}
.u-inline-044{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--champ);text-decoration:none;border-bottom:1px solid rgba(201,169,110,.35);padding-bottom:3px;}
.u-inline-045{margin-bottom:16px;}
.u-inline-046{font-size:.88rem;color:var(--muted);max-width:480px;margin:0 auto 36px;line-height:1.8;font-weight:300;}
.u-inline-047{background-image:url('img/hero/hero-equipo.webp');}
.u-inline-048{font-family:'Playfair Display',Georgia,serif;font-size:2.4rem;font-weight:400;color:var(--bone);margin:14px 0;}
.u-inline-049{font-size:.9rem;color:rgba(237,231,220,.42);margin-bottom:34px;max-width:400px;margin-left:auto;margin-right:auto;font-weight:300;line-height:1.7;}
.u-inline-050{background-image:url('img/hero/hero-faq.webp');}
.u-inline-051{font-size:.88rem;line-height:1.8;color:var(--muted);font-weight:300;margin-top:20px;margin-bottom:32px;}
.u-inline-052{font-family:'Playfair Display',Georgia,serif;font-size:2.4rem;font-weight:400;color:var(--bone);margin-bottom:14px;}
.u-inline-053{font-size:.9rem;color:rgba(237,231,220,.42);margin-bottom:32px;max-width:400px;margin-left:auto;margin-right:auto;font-weight:300;line-height:1.7;}
.u-inline-054{background-image:url('img/hero/hero-galeria.webp');}
.u-inline-055{color:rgba(237,231,220,.45);margin-bottom:16px;}
.u-inline-056{text-align:center;margin-top:44px;}
.u-inline-057{font-size:.9rem;line-height:1.85;color:var(--muted);font-weight:300;margin-top:18px;margin-bottom:36px;max-width:400px;}
.u-inline-058{width:7px;height:7px;background:var(--green);}
.u-inline-059{color:var(--champ);}
.u-inline-060{background-image:url('img/destinos/cancun.jpg');}
.u-inline-061{background-image:url('img/destinos/riviera-maya.jpg');}
.u-inline-062{background-image:url('img/destinos/puerto-vallarta.jpg');}
.u-inline-063{background-image:url('img/destinos/nuevo-vallarta.jpg');}
.u-inline-064{background-image:url('img/destinos/huatulco.jpg');}
.u-inline-065{background:rgba(201,169,110,.08);display:flex;align-items:center;justify-content:center;text-align:center;border-radius:12px;}
.u-inline-066{padding:24px;}
.u-inline-067{font-family:'Playfair Display',Georgia,serif;font-size:1.3rem;color:var(--champ);margin-bottom:8px;}
.u-inline-068{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(237,231,220,.35);}
.u-inline-069{margin:0 12px;opacity:.3;}
.u-inline-070{background-image:url('img/hero/hero-nosotras.webp');}
.u-inline-071{font-size:.88rem;line-height:1.8;color:var(--muted);font-weight:300;max-width:580px;margin-top:28px;}
.u-inline-072{margin-top:44px;}
.u-inline-073{min-height:58vh;}
.u-inline-074{background-image:url('img/blog/post-destacado.jpg');background-position:center 40%;}
.u-inline-075{max-width:720px;}
.u-inline-076{display:none;}
.u-inline-077{background:var(--dark);padding:36px;border-radius:var(--r-xl);margin:44px 0;text-align:center;}
.u-inline-078{font-family:'Playfair Display',Georgia,serif;font-size:1.4rem;color:var(--bone);margin-bottom:10px;}
.u-inline-079{font-size:.85rem;color:rgba(237,231,220,.45);font-weight:300;line-height:1.7;margin-bottom:24px;max-width:380px;margin-left:auto;margin-right:auto;}
.u-inline-080{width:100%;text-align:center;display:block;padding:14px;}
.u-inline-081{height:80px;}
.u-inline-082{margin-top:48px;padding:24px;background:var(--bone);border-radius:var(--r-md);}
.u-inline-083{margin:0;font-size:.84rem;}
.u-inline-084{background-image:url('img/hero/hero-servicios.jpg');}
.u-inline-085{font-size:.9rem;line-height:1.85;color:var(--muted);font-weight:300;margin-bottom:28px;}
.u-inline-086{font-size:.9rem;color:rgba(237,231,220,.42);font-weight:300;margin-top:14px;max-width:480px;line-height:1.7;}

/* ============================================================
   Dark form contrast
   ============================================================ */
.form-box,
.landing-page .hero-form {
  color: var(--bone);
}

.form-sub,
.fnote,
.landing-page .lnote {
  color: rgba(237, 231, 220, .68);
}

.ff label,
.landing-page .lf label {
  color: rgba(237, 231, 220, .76);
}

.ff input,
.ff select,
.ff textarea,
.landing-page .lf input,
.landing-page .lf select,
.landing-page .lf textarea {
  color: #fff;
  border-bottom-color: rgba(201, 169, 110, .46);
}

.ff input::placeholder,
.ff textarea::placeholder,
.landing-page .lf input::placeholder,
.landing-page .lf textarea::placeholder {
  color: rgba(237, 231, 220, .48);
}

.ff select option,
.landing-page .lf select option {
  color: var(--bone);
  background: var(--dark);
}

.form-success-text,
.form-success-text-lp {
  color: rgba(237, 231, 220, .74);
}

.form-success-wa {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.form-success-wa .whatsapp-icon {
  width: 20px;
  height: 20px;
}

/* ============================================================
   Readability adjustments
   ============================================================ */
p,
li,
input,
select,
textarea,
button {
  font-size-adjust: none;
}

.nav-links a {
  font-size: .74rem;
}

.nav-cta,
.btn-p,
.btn-o {
  font-size: .74rem;
}

.section-label,
.ph-label,
.breadcrumb,
.fc h4,
.fbot {
  font-size: .7rem;
}

.ftag,
.fc ul a,
.boda-body p,
.post-content p,
.post-content ul li,
.post-content ol li,
.legal-wrap p,
.legal-wrap li,
.sv-desc {
  font-size: .98rem;
}

.testi-txt,
.landing-page .tc-txt {
  font-family: 'Jost', 'Helvetica Neue', Arial, sans-serif;
  font-size: 1.05rem;
  font-style: normal;
  font-weight: 300;
  line-height: 1.8;
}

.boda-quote blockquote,
.post-quote blockquote {
  font-family: 'Jost', 'Helvetica Neue', Arial, sans-serif;
  font-style: normal;
  font-weight: 300;
  line-height: 1.8;
}

@media(max-width:700px) {
  html {
    font-size: 16.5px;
  }
}

/* ============================================================
   Admin
   ============================================================ */
.admin-auth {
  min-height: 100vh;
  display: grid;
  place-items: center;
  background: var(--dark);
  padding: 24px;
}

.admin-card {
  width: min(420px, 100%);
  background: var(--warm);
  border-radius: var(--r-lg);
  padding: 36px;
  box-shadow: var(--sh-lg);
}

.admin-card h1 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 400;
  margin-bottom: 24px;
}

.admin-card label,
.admin-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 18px;
}

.admin-card input,
.admin-form input,
.admin-form select,
.admin-form textarea {
  border: 1px solid var(--bone);
  border-radius: var(--r-sm);
  padding: 12px 14px;
  font-family: 'Jost', sans-serif;
  font-size: .95rem;
  color: var(--dark);
  background: #fff;
}

.admin-card button,
.admin-form button,
.admin-new,
.admin-actions a {
  border: none;
  border-radius: var(--r-pill);
  background: var(--champ);
  color: #fff;
  padding: 13px 24px;
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}

.admin-error,
.admin-success {
  padding: 12px 14px;
  border-radius: var(--r-sm);
  margin-bottom: 18px;
  font-size: .9rem;
}

.admin-error {
  background: #f8dedc;
  color: #7a2620;
}

.admin-success {
  background: #e4f2e6;
  color: #245631;
}

.admin-page {
  background: #f6f1ea;
  color: var(--dark);
}

/* Neutraliza el nav global en páginas de admin */
.admin-page nav,
.admin-main nav {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  z-index: auto !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: none !important;
  padding: 0 !important;
}

.admin-side {
  position: fixed;
  inset: 0 auto 0 0;
  width: 250px;
  background: var(--dark);
  padding: 28px 24px;
  color: var(--bone);
}

.admin-brand {
  display: block;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.25rem;
  letter-spacing: .08em;
  color: #fff;
  text-decoration: none;
  margin-bottom: 32px;
}

.admin-brand span {
  color: var(--champ);
}

.admin-side nav {
  position: static;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0;
  background: transparent;
  border: 0;
  backdrop-filter: none;
}

.admin-side nav a {
  color: rgba(237, 231, 220, .7);
  text-decoration: none;
  padding: 10px 0;
}

.admin-side nav a:hover {
  color: var(--champ);
}

.admin-main {
  margin-left: 250px;
  padding: 40px;
}

.admin-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.admin-kicker {
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--champ);
  margin-bottom: 6px;
}

.admin-top h1 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 400;
}

.admin-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.admin-stats div,
.admin-table,
.admin-form {
  background: #fff;
  border: 1px solid var(--bone);
  border-radius: var(--r-md);
  box-shadow: var(--sh-sm);
}

.admin-stats div {
  padding: 24px;
}

.admin-stats strong {
  display: block;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 2rem;
  color: var(--champ);
}

.admin-stats span {
  color: var(--muted);
}

.admin-actions {
  display: flex;
  gap: 12px;
}

.admin-table {
  width: 100%;
  border-collapse: collapse;
  overflow: hidden;
}

.admin-table th,
.admin-table td {
  text-align: left;
  padding: 16px;
  border-bottom: 1px solid var(--bone);
}

.admin-table th {
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
}

.admin-table small {
  display: block;
  color: var(--muted);
  margin-top: 3px;
}

.admin-table a {
  color: var(--champ-dk);
  margin-right: 12px;
  text-decoration: none;
}

.admin-form {
  padding: 28px;
}

.admin-grid-2,
.admin-grid-3 {
  display: grid;
  gap: 16px;
}

.admin-grid-2 {
  grid-template-columns: 1fr 1fr;
}

.admin-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

.admin-form-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.admin-form-actions a {
  color: var(--muted);
  text-decoration: none;
}

@media(max-width:900px) {
  .admin-side {
    position: static;
    width: auto;
  }

  .admin-main {
    margin-left: 0;
    padding: 24px;
  }

  .admin-stats,
  .admin-grid-2,
  .admin-grid-3 {
    grid-template-columns: 1fr;
  }
}

/* ================================================================
   ADMIN — EXTENSIONES CMS
   ================================================================ */

/* ---- Sidebar mejorado ------------------------------------------- */
.admin-nav-section {
  font-size: .6rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(237,231,220,.35);
  margin: 24px 0 8px;
  padding: 0 0 6px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.admin-side nav a {
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: 6px;
  padding: 9px 12px;
  transition: background .2s, color .2s;
}

.admin-side nav a svg {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
  opacity: .7;
}

.admin-side nav a:hover,
.admin-side nav a.active {
  background: rgba(201,169,110,.12);
  color: var(--champ);
}

.admin-side nav a.active svg {
  opacity: 1;
}

.admin-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #e05252;
  color: #fff;
  font-size: .6rem;
  font-weight: 700;
  border-radius: 20px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  margin-left: auto;
}

/* ---- Dashboard -------------------------------------------------- */
.admin-top-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.admin-new-sec {
  background: transparent;
  border: 1px solid var(--champ);
  color: var(--champ);
}

.admin-new-sec:hover {
  background: var(--champ);
  color: #fff;
}

.admin-stats div small {
  display: block;
  color: var(--muted);
  font-size: .75rem;
  margin-top: 2px;
}

.stat-alert {
  border: 2px solid #e05252 !important;
}

.stat-alert strong {
  color: #e05252 !important;
}

.admin-recent-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 24px;
}

.admin-card-box {
  background: #fff;
  border: 1px solid var(--bone);
  border-radius: var(--r-md);
  box-shadow: var(--sh-sm);
  overflow: hidden;
}

.admin-card-box-full {
  grid-column: 1 / -1;
}

.admin-card-box-hd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 20px 14px;
  border-bottom: 1px solid var(--bone);
}

.admin-card-box-hd h2 {
  font-family: 'Playfair Display', serif;
  font-size: 1rem;
  font-weight: 400;
}

.admin-card-box-hd a {
  font-size: .8rem;
  color: var(--champ-dk);
  text-decoration: none;
}

.admin-empty {
  text-align: center;
  color: var(--muted);
  padding: 20px;
  font-size: .9rem;
}

.admin-empty-state {
  text-align: center;
  padding: 60px 20px;
  color: var(--muted);
}

.row-new td {
  background: #fffbf0;
}

.row-new td:first-child {
  border-left: 3px solid var(--champ);
}

/* ---- Pill de estado --------------------------------------------- */
.status-pill {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
}

.status-published { background: #e3f2e6; color: #2d6a35; }
.status-draft     { background: #f0f0f0; color: #666; }
.status-new       { background: #fef3cd; color: #8a6010; }
.status-read      { background: #e8f0fe; color: #2a56c6; }
.status-replied   { background: #e3f2e6; color: #2d6a35; }

/* ---- Acciones de fila ------------------------------------------- */
.admin-row-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

.admin-row-actions a,
.btn-link-danger {
  font-size: .8rem;
  color: var(--champ-dk);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
}

.btn-link-danger { color: #c0392b; }
.btn-link-danger:hover { text-decoration: underline; }

.btn-danger {
  background: #e05252;
  color: #fff;
  border: none;
  border-radius: var(--r-pill);
  padding: 10px 20px;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
}

/* ---- Formularios mejorados -------------------------------------- */
.admin-flash {
  margin-bottom: 20px;
}

.admin-preview-link {
  color: var(--champ-dk);
  text-decoration: none;
  font-size: .85rem;
}

.input-with-prefix {
  display: flex;
  align-items: center;
  border: 1px solid var(--bone);
  border-radius: var(--r-sm);
  overflow: hidden;
  background: #fff;
}

.input-with-prefix .url-prefix {
  padding: 12px 10px;
  background: var(--bone);
  color: var(--muted);
  font-size: .8rem;
  white-space: nowrap;
  flex-shrink: 0;
}

.input-with-prefix input {
  border: none !important;
  border-radius: 0 !important;
  flex: 1;
}

.input-media {
  display: flex;
  gap: 8px;
  align-items: center;
}

.input-media input {
  flex: 1;
}

.btn-upload-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--champ);
  color: #fff;
  padding: 12px 16px;
  border-radius: var(--r-sm);
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  white-space: nowrap;
  transition: background .2s;
}

.btn-upload-label:hover {
  background: var(--champ-dk);
}

.file-hidden {
  display: none !important;
}

.img-preview {
  margin-top: 10px;
  max-width: 200px;
  max-height: 140px;
  border-radius: var(--r-sm);
  object-fit: cover;
  border: 1px solid var(--bone);
}

.img-preview-hidden {
  display: none;
}

.admin-seo-box {
  background: var(--warm);
  border: 1px solid var(--bone);
  border-radius: var(--r-md);
  padding: 20px 24px 8px;
  margin-bottom: 18px;
}

.admin-seo-title {
  font-size: .65rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 16px;
}

.admin-seo-box label small {
  font-size: .7rem;
  text-transform: none;
  letter-spacing: 0;
  color: var(--muted);
}

/* ---- CKEditor override ------------------------------------------ */
.ck-editor__editable {
  min-height: 320px;
  font-family: 'Jost', sans-serif;
  font-size: 1rem;
  line-height: 1.7;
}

/* ---- Galería manager -------------------------------------------- */
.gallery-manager-box {
  background: var(--warm);
  border: 1px solid var(--bone);
  border-radius: var(--r-md);
  padding: 20px 24px;
  margin-bottom: 18px;
}

.gallery-manager-hd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  font-size: .9rem;
  font-weight: 500;
}

.gallery-manager-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 12px;
}

.gallery-item {
  position: relative;
  border-radius: var(--r-sm);
  overflow: hidden;
  aspect-ratio: 1;
  background: var(--bone);
  cursor: default;
}

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

.gallery-item-remove {
  position: absolute;
  top: 6px;
  right: 6px;
  background: rgba(0,0,0,.6);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  font-size: .75rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
}

.gallery-item-remove:hover {
  background: #e05252;
}

.gallery-empty {
  color: var(--muted);
  font-size: .9rem;
  margin-top: 8px;
}

/* ---- Media library ---------------------------------------------- */
.upload-zone {
  border: 2px dashed var(--champ-lt);
  border-radius: var(--r-md);
  background: var(--warm);
  padding: 40px;
  text-align: center;
  cursor: pointer;
  transition: border-color .2s, background .2s;
  margin-bottom: 24px;
}

.upload-zone:hover,
.upload-zone.drag-over {
  border-color: var(--champ);
  background: var(--champ-pale);
}

.upload-zone-inner svg {
  width: 40px;
  height: 40px;
  color: var(--muted);
  margin-bottom: 12px;
}

.upload-zone-inner p {
  color: var(--mid);
  margin-bottom: 6px;
}

.upload-zone-inner small {
  color: var(--muted);
  font-size: .8rem;
}

.media-count {
  font-size: .8rem;
  color: var(--muted);
  margin-bottom: 16px;
}

.media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 16px;
}

.media-item {
  background: #fff;
  border: 1px solid var(--bone);
  border-radius: var(--r-md);
  overflow: hidden;
  cursor: pointer;
  transition: box-shadow .2s, transform .2s;
}

.media-item:hover {
  box-shadow: var(--sh-md);
  transform: translateY(-2px);
}

.media-thumb {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--bone);
}

.media-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s;
}

.media-item:hover .media-thumb img {
  transform: scale(1.04);
}

.media-info {
  padding: 10px 12px 6px;
}

.media-name {
  font-size: .8rem;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.media-meta {
  font-size: .7rem;
  color: var(--muted);
  margin-top: 2px;
}

.media-actions {
  display: flex;
  gap: 8px;
  padding: 6px 12px 10px;
  align-items: center;
}

.media-copy {
  font-size: .72rem;
  background: none;
  border: 1px solid var(--bone);
  border-radius: 4px;
  padding: 4px 8px;
  cursor: pointer;
  color: var(--mid);
  transition: border-color .2s;
}

.media-copy:hover {
  border-color: var(--champ);
  color: var(--champ-dk);
}

.media-delete {
  margin-left: auto;
  background: none;
  border: none;
  color: var(--muted);
  cursor: pointer;
  font-size: .9rem;
  padding: 2px 4px;
  transition: color .2s;
}

.media-delete:hover {
  color: #e05252;
}

.copy-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(80px);
  background: var(--dark);
  color: #fff;
  padding: 12px 24px;
  border-radius: var(--r-pill);
  font-size: .85rem;
  opacity: 0;
  transition: transform .3s, opacity .3s;
  pointer-events: none;
  z-index: 9999;
}

.copy-toast.show {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
}

/* ---- Settings --------------------------------------------------- */
.admin-settings-section {
  background: #fff;
  border: 1px solid var(--bone);
  border-radius: var(--r-md);
  padding: 24px;
  margin-bottom: 20px;
  box-shadow: var(--sh-sm);
}

.admin-settings-section h2 {
  font-family: 'Playfair Display', serif;
  font-size: 1rem;
  font-weight: 400;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--bone);
}

.admin-settings-hint {
  font-size: .8rem;
  color: var(--muted);
  margin-bottom: 16px;
  margin-top: -8px;
}

/* ---- Contacts detail -------------------------------------------- */
.contact-detail-back {
  margin-bottom: 16px;
  font-size: .85rem;
}

.contact-detail-back a {
  color: var(--champ-dk);
  text-decoration: none;
}

.contact-detail {
  padding: 28px;
}

.contact-detail-hd {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 20px;
}

.contact-detail-hd h2 {
  font-family: 'Playfair Display', serif;
  font-weight: 400;
  font-size: 1.4rem;
}

.contact-detail-meta {
  font-size: .9rem;
  color: var(--muted);
  margin-top: 4px;
}

.contact-detail-meta a {
  color: var(--champ-dk);
  text-decoration: none;
}

.contact-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px 20px;
  margin-bottom: 20px;
  background: var(--warm);
  border-radius: var(--r-sm);
  padding: 16px;
}

.contact-detail-grid > div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.contact-detail-grid strong {
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
}

.contact-detail-msg {
  margin-bottom: 24px;
}

.contact-detail-msg strong {
  display: block;
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
}

.contact-detail-msg p {
  background: var(--warm);
  padding: 16px;
  border-radius: var(--r-sm);
  border-left: 3px solid var(--champ-lt);
  line-height: 1.7;
}

.contact-detail-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

@media(max-width:900px) {
  .admin-recent-grid {
    grid-template-columns: 1fr;
  }

  .admin-card-box-full {
    grid-column: auto;
  }

  .media-grid {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  }
}


/* ============================================================
   COTIZADOR DE BODA DESTINO
   ============================================================ */

.cot-hero-bg { background-image: url('/img/hero/hero-bodas.webp'); }

.cot-outer {
  padding: 56px 80px 100px;
  background: var(--warm);
}

/* --- Progress bar --- */
.cot-progress-wrap {
  height: 3px;
  background: rgba(201,169,110,.18);
  margin: 0 -40px 56px;
}
.cot-progress-fill {
  height: 100%;
  background: var(--champ);
  transition: width .5s cubic-bezier(.4,0,.2,1);
  width: 0%;
}

/* --- Layout — tarjeta única, columna derecha dorada --- */
.cot-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 0;
  align-items: start;
  background: #fff;
  border-radius: var(--r-md);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 4px 32px rgba(0,0,0,.07);
  overflow: clip;
}

/* --- Steps --- */
.cot-step          { display: none; }
.cot-step.active   { display: block; animation: cotFadeIn .35s ease; }

@keyframes cotFadeIn {
  from { opacity:0; transform:translateY(12px); }
  to   { opacity:1; transform:translateY(0); }
}

.cot-step-hd      { margin-bottom: 36px; }
.cot-step-n       { font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--champ); margin-bottom:8px; }
.cot-step-title   { font-family:'Playfair Display',serif; font-size:2rem; font-weight:400; color:var(--dark); line-height:1.2; margin-bottom:8px; }
.cot-step-title em{ font-style:italic; color:var(--champ); }
.cot-step-sub     { color:var(--muted); font-size:.95rem; }
.cot-dest-badge   { background:var(--champ); color:#fff; padding:2px 10px; border-radius:100px; font-size:.85rem; }

/* --- Fields --- */
.cot-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 560px;
}
.cot-label {
  display:flex; flex-direction:column; gap:6px;
  font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}
.cot-input {
  padding:13px 16px; border:1.5px solid rgba(0,0,0,.12);
  border-radius:var(--r-sm); font-size:1rem; font-family:inherit;
  color:var(--dark); background:#fff; transition:border-color .2s; outline:none;
}
.cot-input:focus { border-color:var(--champ); }

/* --- Cards grid --- */
.cot-cards       { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.cot-cards-img   { grid-template-columns:repeat(4,1fr); gap:16px; }
.cot-cards-rooms { grid-template-columns:repeat(4,1fr); gap:14px; }

/* Per-section overrides */
#hotelCards { grid-template-columns:repeat(3,1fr); }
#pkgCards   { grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); }
#ceremCards { grid-template-columns:repeat(3,1fr); }

/* --- Base card --- */
.cot-card {
  border-radius:var(--r-md); cursor:pointer; position:relative;
  border:2px solid transparent; transition:border-color .2s, transform .2s, box-shadow .2s;
  overflow:hidden;
}
.cot-card:hover          { transform:translateY(-3px); box-shadow:0 10px 28px rgba(0,0,0,.1); }
.cot-card.sel            { border-color:var(--champ); box-shadow:0 0 0 1px var(--champ); }

/* Image card */
.cot-card-img            { aspect-ratio:4/3; }
.cot-card-bg             { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .4s; }
.cot-card:hover .cot-card-bg { transform:scale(1.05); }
.cot-card-ov             { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,.05) 60%); }
.cot-card-img .cot-card-body { position:absolute; bottom:0; left:0; right:0; padding:20px 14px 14px; color:#fff; }

/* Text card */
.cot-card-txt {
  background:var(--warm); border:1.5px solid rgba(0,0,0,.07);
  padding:24px 20px; display:flex; flex-direction:column; gap:6px;
}
.cot-card-txt:hover { background:var(--ivory); border-color:rgba(201,169,110,.5); box-shadow:0 4px 16px rgba(201,169,110,.1); }
.cot-card-txt.sel   { background:#fff; border-color:var(--champ); box-shadow:0 0 0 1px var(--champ); }

.cot-card-name  { font-family:'Playfair Display',serif; font-size:1rem; font-weight:400; color:var(--dark); }
.cot-card-img .cot-card-name { font-size:1.1rem; color:#fff; }
.cot-card-tag   { font-size:.78rem; color:var(--muted); line-height:1.4; }
.cot-card-img .cot-card-tag  { color:rgba(255,255,255,.82); font-size:.72rem; margin-top:2px; }
.cot-card-icon  { font-size:1.5rem; margin-bottom:4px; }
.cot-card-price { font-size:.82rem; color:var(--champ); font-weight:600; margin-top:8px; }
.cot-free       { color:#27ae60; font-weight:700; }

/* Info card (sin click) */
.cot-card-info  { cursor:default; }
.cot-card-info:hover { transform:none; box-shadow:none; }

/* Check badge */
.cot-check {
  position:absolute; top:10px; right:10px;
  width:26px; height:26px; border-radius:50%;
  background:var(--champ); color:#fff; font-size:.7rem;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:scale(0); transition:opacity .2s,transform .2s;
}
.cot-card.sel .cot-check { opacity:1; transform:scale(1); }

/* Info note */
.cot-info-note {
  background:rgba(201,169,110,.1); border:1px solid rgba(201,169,110,.3);
  border-radius:var(--r-sm); padding:12px 16px; font-size:.85rem;
  color:var(--muted); margin-bottom:20px; line-height:1.5;
}

/* --- Summary sidebar --- */
.cot-summary {
  position: sticky;
  top: 100px;
  background: var(--dark);
  border-radius: var(--r-md);
  padding: 28px 24px;
  color: #fff;
}
.cot-sum-label  { font-family:'Playfair Display',serif; font-size:.85rem; color:var(--champ); letter-spacing:.08em; margin-bottom:18px; }
.cot-sum-empty  { font-size:.82rem; color:rgba(255,255,255,.35); font-style:italic; line-height:1.5; }
.cot-srow       { display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:.82rem; padding:7px 0; border-bottom:1px solid rgba(255,255,255,.07); }
.cot-srow span  { color:rgba(255,255,255,.55); flex-shrink:0; }
.cot-srow strong{ color:#fff; text-align:right; font-size:.8rem; }
.cot-sum-total  { display:flex; justify-content:space-between; align-items:center; margin-top:16px; padding-top:16px; border-top:1px solid rgba(201,169,110,.4); }
.cot-sum-total span  { font-size:.78rem; color:rgba(255,255,255,.6); }
.cot-sum-total strong{ color:var(--champ); font-size:1rem; font-weight:700; }
.cot-sum-note   { font-size:.7rem; color:rgba(255,255,255,.25); margin-top:12px; line-height:1.4; }

/* --- Navigation --- */
.cot-nav {
  display:flex; justify-content:space-between; align-items:center;
  margin-top:44px; padding-top:28px; border-top:1px solid rgba(0,0,0,.08);
}
.cot-btn-next {
  background:var(--dark); color:#fff; border:none;
  padding:15px 40px; border-radius:100px; font-size:.88rem;
  letter-spacing:.06em; cursor:pointer; font-family:inherit;
  transition:background .2s, transform .2s;
}
.cot-btn-next:hover { background:var(--champ); transform:translateY(-1px); }
.cot-btn-back {
  background:none; border:1.5px solid rgba(0,0,0,.15); color:var(--muted);
  padding:15px 28px; border-radius:100px; font-size:.88rem;
  cursor:pointer; font-family:inherit; transition:border-color .2s, color .2s;
}
.cot-btn-back:hover { border-color:var(--dark); color:var(--dark); }

/* --- Resume step --- */
.cot-resume-grid {
  background:var(--ivory); border-radius:var(--r-md); padding:28px 32px; margin-bottom:20px;
}
.cot-rrow {
  display:flex; justify-content:space-between; align-items:center;
  padding:9px 0; border-bottom:1px solid rgba(0,0,0,.06); font-size:.9rem;
}
.cot-rrow:last-child { border-bottom:none; }
.cot-rrow span    { color:var(--muted); }
.cot-rrow strong  { color:var(--dark); text-align:right; }
.cot-resume-total {
  background:var(--dark); color:#fff; border-radius:var(--r-md);
  padding:24px 32px; display:flex; justify-content:space-between; align-items:center;
  margin-bottom:20px;
}
.cot-rtotal-lbl  { font-family:'Playfair Display',serif; font-size:1rem; margin-bottom:4px; }
.cot-rtotal-sub  { font-size:.75rem; color:rgba(255,255,255,.45); }
.cot-rtotal-amt  { font-size:1.8rem; color:var(--champ); font-weight:700; line-height:1; }
.cot-rtotal-amt span { font-size:.9rem; color:rgba(255,255,255,.6); }

.cot-resume-cta  { text-align:center; padding:8px 0 16px; }
.cot-resume-cta p { color:var(--muted); margin-bottom:16px; font-size:.95rem; }
.cot-send-btn    { font-size:1rem; padding:16px 48px; }

/* --- Success --- */
.cot-success     { text-align:center; padding:48px 24px; }
.cot-success-ico { font-size:3rem; margin-bottom:16px; }
.cot-success h3  { font-family:'Playfair Display',serif; font-size:2rem; font-weight:400; margin-bottom:12px; }
.cot-success p   { color:var(--muted); margin-bottom:24px; }

/* --- Shake --- */
@keyframes cotShake {
  0%,100% { transform:translateX(0); }
  20%,60% { transform:translateX(-6px); }
  40%,80% { transform:translateX(6px); }
}
.cot-shake { animation:cotShake .4s ease; }

/* --- Responsive (v1 fallbacks, superseded by v2 block below) --- */
@media (max-width:400px) {
  .cot-cards,.cot-cards-img { grid-template-columns:1fr; }
}

/* Cotizar link en nav */
.nav-cot-link {
  color: var(--champ) !important;
  font-weight: 500;
}

/* ============================================================
   COTIZADOR v2 — Todo de jalón + sidebar contextual
   ============================================================ */

/* Left column — blanco, crea el contraste con la columna dorada */
.cot-main {
  min-width: 0;
  padding: 0 40px;
  background: #fff;
  border-right: 1px solid rgba(0,0,0,.07);
}

/* Section blocks — always visible */
.cot-section {
  padding: 48px 0;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.cot-section:last-child { border-bottom: none; }

.cot-sec-hd {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 32px;
}

.cot-sec-n {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  color: rgba(201,169,110,.22);
  font-weight: 400;
  line-height: 1;
  flex-shrink: 0;
  width: 44px;
  padding-top: 4px;
}

.cot-sec-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.55rem;
  font-weight: 400;
  color: var(--dark);
  line-height: 1.2;
  margin-bottom: 6px;
}
.cot-sec-title em { font-style: italic; color: var(--champ); }

.cot-sec-sub {
  font-size: .88rem;
  color: var(--muted);
  font-weight: 300;
}

/* Sidebar — columna derecha dentro del layout card */
.cot-sidebar {
  position: sticky;
  top: clamp(88px, calc(50vh - 260px), 260px);
  align-self: start;
  min-width: 0;
}

/* Info panel — transparente, hereda el dorado del layout */
.cot-info-panel {
  background: transparent;
  padding: 28px 24px;
  min-height: 200px;
  transition: opacity .15s ease;
}

/* Default state */
.cot-info-default {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 20px 8px;
  gap: 12px;
}
.cot-info-default-ico { font-size: 2rem; }
.cot-info-default-txt {
  font-size: .85rem;
  color: var(--muted);
  line-height: 1.65;
  font-weight: 300;
}

/* Destination cards — image on top, text below */
.cot-card-dest {
  background: #fff;
  border-radius: var(--r-md);
  overflow: hidden;
  border: 2px solid rgba(0,0,0,.07);
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  cursor: pointer;
  position: relative;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  display: flex;
  flex-direction: column;
}
.cot-card-dest:hover {
  transform: translateY(-5px);
  box-shadow: 0 14px 36px rgba(0,0,0,.12);
  border-color: rgba(201,169,110,.35);
}
.cot-card-dest.sel {
  border-color: var(--champ);
  box-shadow: 0 0 0 1px var(--champ), 0 10px 32px rgba(201,169,110,.18);
}
.cot-dest-img {
  height: 160px;
  overflow: hidden;
  flex-shrink: 0;
}
.cot-dest-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.cot-card-dest:hover .cot-dest-img img { transform: scale(1.07); }
.cot-dest-body {
  padding: 14px 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.cot-dest-body .cot-card-name { font-size: 1rem; color: var(--dark); }
.cot-dest-body .cot-card-tag  { font-size: .72rem; color: var(--muted); line-height: 1.4; }

/* Info card (populated) */
.cot-info-card { display: flex; flex-direction: column; gap: 10px; }
.cot-info-ico  { font-size: 1.8rem; }
.cot-info-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--dark);
  line-height: 1.25;
}
.cot-info-desc {
  font-size: .82rem;
  color: var(--muted);
  line-height: 1.7;
  font-weight: 300;
}
.cot-info-subtitle {
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--champ);
  margin-top: 4px;
  font-weight: 500;
}
.cot-info-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cot-info-list li {
  font-size: .8rem;
  color: var(--muted);
  line-height: 1.5;
  padding-left: 16px;
  position: relative;
  font-weight: 300;
}
.cot-info-list li::before {
  content: '·';
  position: absolute;
  left: 0;
  color: var(--champ-dk);
  font-size: 1.2rem;
  line-height: 1;
  top: 1px;
}
.cot-info-checks li::before {
  content: '✓';
  font-size: .65rem;
  top: 3px;
  font-weight: 700;
  color: var(--champ-dk);
}

/* Summary — caja oscura en fondo dorado */
.cot-sum-box,
.cot-sum-inner {
  background: var(--dark);
  padding: 24px;
  color: #fff;
  border-top: 2px solid var(--champ);
  margin: 20px 16px 16px;
  border-radius: var(--r-sm);
}
.cot-sum-rows  { margin-bottom: 4px; }
.cot-sum-disclaimer {
  font-size: .7rem;
  color: rgba(255,255,255,.25);
  margin-top: 12px;
  line-height: 1.4;
}

/* Placeholder text (hotel section before dest selected) */
.cot-placeholder {
  font-size: .88rem;
  color: var(--muted);
  font-style: italic;
  padding: 24px 0;
  font-weight: 300;
}

/* Form section */
.cot-fields-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 28px;
}

/* Pre-submit summary */
.cot-pre-summary {
  background: var(--ivory);
  border-radius: var(--r-md);
  padding: 20px 24px;
  margin-bottom: 24px;
  border-left: 3px solid var(--champ);
}
.cot-pre-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .85rem;
  padding: 6px 0;
  border-bottom: 1px solid rgba(0,0,0,.05);
}
.cot-pre-row span   { color: var(--muted); font-weight: 300; }
.cot-pre-row strong { color: var(--dark); }
.cot-pre-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0 0;
  margin-top: 4px;
}
.cot-pre-total span   { font-size: .88rem; color: var(--muted); }
.cot-pre-total strong { color: var(--champ); font-size: 1.15rem; font-weight: 700; }

/* Submit area */
.cot-submit-area {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
.cot-submit-note {
  font-size: .8rem;
  color: var(--muted);
  font-weight: 300;
}

/* Send section (below last section) */
.cot-send-section {
  padding: 48px 0 48px;
}

/* Responsive v2 */
@media (max-width: 1200px) {
  .cot-outer        { padding: 32px 32px 80px; }
  .cot-layout       { grid-template-columns: 1fr 300px; }
  .cot-main         { padding: 0 28px; }
  .cot-cards-img    { grid-template-columns: repeat(3,1fr); }
  #hotelCards       { grid-template-columns: repeat(2,1fr); }
  #ceremCards       { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 900px) {
  .cot-outer        { padding: 20px 16px 60px; }
  .cot-layout       { grid-template-columns:1fr; gap:0; overflow:visible; }
  .cot-main         { padding:20px 20px; border-right:none; border-bottom:1px solid rgba(0,0,0,.07); }
  .cot-sidebar      { position:static; }
  .cot-sum-box,
  .cot-sum-inner    { margin:16px; border-radius:var(--r-sm); }
  .cot-fields-grid  { grid-template-columns: 1fr; }
  .cot-section      { padding: 28px 0; }
  .cot-cards-rooms  { grid-template-columns: repeat(2,1fr); }
  .cot-cards-img    { grid-template-columns: repeat(2,1fr); }
  #hotelCards       { grid-template-columns: repeat(2,1fr); }
  #pkgCards         { grid-template-columns: repeat(2,1fr); }
  #ceremCards       { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 600px) {
  .cot-sec-title    { font-size: 1.25rem; }
  .cot-sec-n        { font-size: 1.5rem; width: 36px; }
  .cot-cards        { grid-template-columns: 1fr 1fr; }
  .cot-cards-img    { grid-template-columns: repeat(2,1fr); }
  #hotelCards       { grid-template-columns: 1fr 1fr; }
  #pkgCards         { grid-template-columns: 1fr 1fr; }
  #ceremCards       { grid-template-columns: 1fr 1fr; }
  .cot-dest-img     { height: 130px; }
}
