:root{
  --cream: #FAF7F2;
  --cream-dark: #F5F0E8;
  --ink: #2C1810;
  --ink-soft: #6B5344;
  --rose: #B85C6E;
  --rose-deep: #9A4A5A;
  --rose-light: #D48494;
  --gold: #C9A227;
  --gold-pale: #E8D5A3;
  --white: #FFFFFF;
  --line: rgba(44,24,16,0.10);
  --shadow: 0 8px 32px rgba(44,24,16,0.08);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Jost', sans-serif;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{ font-family:'Cormorant Garamond', serif; }
a{ text-decoration:none; color:inherit; }

/* ---------- HEADER ---------- */
.ep-header{
  background:var(--cream);
  border-bottom:1px solid var(--line);
  padding:18px 0;
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
}
.ep-header-inner{
  max-width:1200px;
  margin:0 auto;
  padding:0 28px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
}
.ep-logo{
  font-family:'Cormorant Garamond', serif;
  font-size:22px;
  font-weight:500;
  color:var(--ink);
  display:flex;
  align-items:baseline;
  gap:1px;
}
.ep-logo-event{
  font-style:italic;
  font-weight:400;
  color:var(--rose);
}
.ep-logo-dot{ color:var(--rose); }
.ep-logo-domain{ font-weight:500; }
.ep-tagline{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:24px;
  color:var(--ink-soft);
  font-weight:600;
}
.ep-tagline svg{ color:var(--rose); }

@media (max-width:640px){
  .ep-header-inner{ flex-direction:column; gap:8px; }
  .ep-tagline{ font-size:13px; }
}


/* ============================================================
   BARRA DE NAVEGACIÓN FIJA (site-bar)
   ============================================================ */
.site-bar{
  position:fixed;
  top:20px;
  left:20px;
  z-index:60;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:13px 24px 13px 18px;
  background:rgba(255,255,255,0.2);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:2px solid var(--line);
  border-radius:30px;
  font-family:'Baloo 2', sans-serif;
  font-size:15px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--ink-soft);
  transition:.3s;
  box-shadow:0 2px 12px rgba(46,38,32,0.06);
}
.site-bar img{
  height:64px;
  width:auto;
  display:block;
}
.site-bar:hover{
  color:var(--coral-deep);
  border-color:var(--coral-deep);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(228,87,63,0.12);
}

/* ---------- WRAP ---------- */
.ep-wrap{
  max-width:1200px;
  margin:0 auto;
  padding:48px 28px;
}

/* ---------- HERO GRID ---------- */
.ep-hero-grid{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:48px;
  align-items:start;
}
@media (max-width:960px){
  .ep-hero-grid{ grid-template-columns:1fr; }
}

/* ---------- LEFT COLUMN ---------- */
.ep-hero-left h1{
  font-size:clamp(36px, 4.5vw, 52px);
  font-weight:500;
  line-height:1.1;
  color:var(--ink);
  margin:0 0 6px;
}
.ep-hero-left h1 span{
  color:var(--rose);
}
.ep-divider{
  display:flex;
  align-items:center;
  gap:12px;
  margin:18px 0 24px;
  color:var(--rose);
}
.ep-divider span{
  flex:1;
  height:1px;
  background:linear-gradient(90deg, var(--line), transparent);
}
.ep-divider span:last-child{
  background:linear-gradient(90deg, transparent, var(--line));
}
.ep-hero-desc{
  font-size:16.5px;
  color:var(--ink-soft);
  font-weight:300;
  line-height:1.7;
  max-width:380px;
  margin:0 0 36px;
}

/* Features */
.ep-features{ display:flex; flex-direction:column; gap:22px; }
.ep-feature{
  display:flex;
  align-items:flex-start;
  gap:16px;
}
.ep-feature-icon{
  width:48px;
  height:48px;
  border-radius:12px;
  border:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gold);
  background:var(--white);
  flex-shrink:0;
}
.ep-feature h4{
  font-size:17px;
  font-weight:600;
  margin:0 0 4px;
  color:var(--ink);
  font-family:'Jost', sans-serif;
}
.ep-feature p{
  font-size:14px;
  color:var(--ink-soft);
  font-weight:300;
  margin:0;
  line-height:1.5;
}

/* ---------- FORM CARD ---------- */
.ep-form-card{
  background:var(--white);
  border-radius:20px;
  padding:40px 36px;
  box-shadow:var(--shadow);
  border:1px solid var(--line);
}
.ep-form-card h2{
  font-size:28px;
  font-weight:500;
  color:var(--rose);
  margin:0 0 6px;
}
.ep-form-sub{
  font-size:15px;
  color:var(--ink-soft);
  font-weight:300;
  margin:0 0 28px;
}

@media (max-width:640px){
  .ep-form-card{ padding:28px 22px; border-radius:14px; }
}

/* ---------- FORM FIELDS ---------- */
.ep-field{ margin-bottom:22px; }
.ep-field label{
  display:block;
  font-size:14px;
  font-weight:500;
  color:var(--ink);
  margin-bottom:8px;
}
.ep-req{ color:var(--rose); }
.ep-hint{ font-weight:400; color:var(--ink-soft); font-size:13px; }

.ep-field input[type="text"],
.ep-field input[type="email"],
.ep-field input[type="tel"],
.ep-field input[type="number"],
.ep-field input[type="date"],
.ep-field select,
.ep-field textarea{
  width:100%;
  padding:13px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--cream);
  color:var(--ink);
  font-family:'Jost', sans-serif;
  font-size:15px;
  font-weight:400;
  outline:none;
  transition:border-color 0.25s ease, box-shadow 0.25s ease;
}
.ep-field input::placeholder,
.ep-field textarea::placeholder{
  color:rgba(107,83,68,0.45);
  font-weight:300;
}
.ep-field input:focus,
.ep-field select:focus,
.ep-field textarea:focus{
  border-color:var(--rose-light);
  box-shadow:0 0 0 3px rgba(184,92,110,0.08);
}
.ep-field textarea{ resize:vertical; min-height:100px; line-height:1.6; }

.ep-select-wrap{ position:relative; }
.ep-select-wrap select{
  appearance:none;
  padding-right:44px;
  cursor:pointer;
}
.ep-select-wrap::after{
  content:"";
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  width:0; height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:5px solid var(--ink-soft);
  pointer-events:none;
}

/* Row layout */
.ep-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
@media (max-width:520px){ .ep-row{ grid-template-columns:1fr; } }

/* Event icons */
.ep-event-icons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}
.ep-eicon{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  padding:10px 8px;
  border-radius:10px;
  border:1.5px solid var(--line);
  background:var(--white);
  cursor:pointer;
  transition:all 0.2s ease;
  min-width:64px;
  color:var(--ink-soft);
}
.ep-eicon svg{ color:var(--gold); }
.ep-eicon span{ font-size:11px; font-weight:500; }
.ep-eicon:hover{ border-color:var(--rose-light); color:var(--rose); }
.ep-eicon.active{
  border-color:var(--rose);
  background:rgba(184,92,110,0.06);
  color:var(--rose);
}
.ep-eicon.active svg{ color:var(--rose); }

/* Checkboxes */
.ep-check-grid{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.ep-check{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  font-size:13.5px;
  color:var(--ink-soft);
  cursor:pointer;
  transition:all 0.2s ease;
  background:var(--white);
}
.ep-check:hover{ border-color:var(--rose-light); }
.ep-check input[type="checkbox"]{
  width:16px; height:16px;
  accent-color:var(--rose);
  cursor:pointer;
}
.ep-check:has(input:checked){
  border-color:var(--rose);
  background:rgba(184,92,110,0.06);
  color:var(--rose);
}

/* Phone row */
.ep-phone-row{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:10px;
  margin-top:12px;
}
.ep-phone-prefix{
  display:flex;
  align-items:center;
  gap:6px;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--cream);
  font-size:15px;
  color:var(--ink);
  font-weight:500;
  white-space:nowrap;
}
.ep-flag{ font-size:18px; }

/* Privacy */
.ep-privacy{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:18px 0 24px;
  font-size:13.5px;
  color:var(--ink-soft);
  cursor:pointer;
}
.ep-privacy input{ width:18px; height:18px; accent-color:var(--rose); margin-top:2px; flex-shrink:0; }
.ep-privacy a{ color:var(--rose); text-decoration:underline; }

/* Submit button */
.ep-submit{
  width:100%;
  padding:16px 24px;
  background:var(--rose);
  color:#fff;
  border:none;
  border-radius:10px;
  font-family:'Jost', sans-serif;
  font-size:15px;
  font-weight:600;
  letter-spacing:0.04em;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  transition:background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.ep-submit:hover{
  background:var(--rose-deep);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(184,92,110,0.25);
}

/* ---------- TRUST BADGES ---------- */
.ep-trust{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-top:40px;
  padding:28px 32px;
  background:var(--white);
  border-radius:16px;
  border:1px solid var(--line);
}
.ep-trust-item{
  display:flex;
  align-items:flex-start;
  gap:16px;
}
.ep-trust-item svg{
  color:var(--gold);
  flex-shrink:0;
  margin-top:2px;
}
.ep-trust-item p{
  margin:0;
  font-size:14px;
  color:var(--ink-soft);
  line-height:1.5;
}
.ep-trust-item strong{
  color:var(--ink);
  font-weight:600;
}
@media (max-width:640px){
  .ep-trust{ grid-template-columns:1fr; }
}

/* ---------- FOOTER ---------- */
.ep-footer{
  background:var(--rose);
  color:#fff;
  padding:48px 28px;
  text-align:center;
}
.ep-footer-inner{
  max-width:600px;
  margin:0 auto;
}
.ep-footer-logo{
  font-family:'Cormorant Garamond', serif;
  font-size:26px;
  font-weight:500;
  display:inline-flex;
  align-items:baseline;
  gap:1px;
  margin-bottom:8px;
}
.ep-footer-logo .ep-logo-event{ font-style:italic; font-weight:400; }
.ep-footer-logo .ep-logo-dot{ color:var(--gold-pale); }
.ep-footer p{
  font-size:15px;
  font-weight:300;
  color:rgba(255,255,255,0.85);
  margin:0 0 16px;
}
.ep-footer-divider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  color:var(--gold-pale);
}
.ep-footer-divider span{
  width:60px;
  height:1px;
  background:rgba(255,255,255,0.25);
}

.ep-planner-selected {
    margin-bottom: 24px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(44, 24, 16, 0.10);
}

.ep-planner-selected span {
    display: block;
    font-family: 'Jost', sans-serif;
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #B85C6E;
    margin-bottom: 4px;
}

.ep-planner-selected strong {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 25px;
    font-weight: 600;
    color: #2C1810;
}