/* ══════════════════════════════════════════════════════════════════════
   EUROPOUND ELEMENTS · estilos compartidos de los widgets
   Fiel al prototipo original (europound.css v2 · 14 agosto 2026)
   ══════════════════════════════════════════════════════════════════════ */
:root{
  /* Paleta «Escaparate de noche», elegida por el cliente el 13/08/2026. El
     prototipo la fuerza al arrancar (applyTheme(0)) sobre los colores base
     de europound.css: estos son los valores que de verdad pinta. */
  --ep-ink:#0E1B33; --ep-carbon:#16264A; --ep-graphite:#1E3358; --ep-slate:#2A4470;
  --ep-ruby:#E32227; --ep-ruby-700:#B3161B; --ep-ruby-500:#EE3B41; --ep-ruby-300:#FFA24A; --ep-ruby-050:#FDEDEE;
  /* «blue» es el color de sistema; en esta paleta es dorado. */
  --ep-blue:#8A6508; --ep-blue-600:#F0B429; --ep-blue-050:#FEF6E4;
  --ep-w:#fff; --ep-g50:#F7F9FC; --ep-g100:#F2F4F8; --ep-g200:#E2E7EF; --ep-g300:#C6D0E1;
  --ep-g400:#AAB0BA; --ep-g500:#868C97; --ep-g600:#5F656F; --ep-g700:#3D424B;
  --ep-text:#0D1729;
  --ep-dark-rgb:14,27,51; --ep-ruby-rgb:227,34,39;
  --ep-serif:'Instrument Serif',Georgia,serif;
  --ep-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --ep-r-s:6px; --ep-r:10px; --ep-r-l:16px; --ep-r-xl:24px; --ep-r-f:999px;
  --ep-sh1:0 1px 2px rgba(10,10,12,.05),0 1px 3px rgba(10,10,12,.04);
  --ep-sh2:0 6px 18px rgba(10,10,12,.07),0 1px 3px rgba(10,10,12,.05);
  --ep-sh3:0 18px 44px rgba(10,10,12,.12),0 3px 10px rgba(10,10,12,.06);
  --ep-sh4:0 34px 80px rgba(10,10,12,.22);
  --ep-ease:cubic-bezier(.22,.8,.28,1);
}

/* ── Base del prototipo ────────────────────────────────────────────────
   El tema padre ya no carga su reset (ver el tema hijo): esta es la base
   de europound.css, tal cual. Sin márgenes heredados, enlaces que toman
   el color de su contexto y botones sin estilo propio. */
*,*::before,*::after{box-sizing:border-box}
body *{margin:0;padding:0}
body{font-family:var(--ep-sans);background:#fff;color:var(--ep-text);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
body.elementor-kit-8{line-height:1.55;color:var(--ep-text)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
h1,h2,h3,h4,h5,h6{color:inherit}
h4{font-size:17px;font-weight:650;letter-spacing:-.015em;line-height:1.25}
p{color:var(--ep-g600)}
b,strong{font-weight:700}
/* Las notas de diseño van ocultas, como en el prototipo (body.hn). En el
   editor de Elementor se siguen viendo para poder editarlas. */
/* Las notas de diseño solo se ven en el editor. Se oculta el widget entero:
   si solo se ocultara la nota, su envoltorio seguiría sumando el hueco. */
body:not(.elementor-editor-active) .ep-note,
body:not(.elementor-editor-active) .elementor-widget-europound-note{display:none!important}

.ep-eyebrow{font-family:var(--ep-sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ep-ruby);display:inline;line-height:inherit}
.ep-eyebrow.on-dark{color:var(--ep-ruby-300)}
.ep-mut{color:var(--ep-g600)} .ep-fai{color:var(--ep-g500)}
.ep-num,.ep-rt td.n{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}

/* ── Hero · fondo de cuatro capas ─────────────────────── */
.ep-hero-bg{position:absolute;inset:0;background-size:cover;background-position:42% 56%;opacity:.58;
  filter:saturate(1.5) brightness(1.16) contrast(1.04);z-index:0}
.ep-hero-bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(102deg,rgba(var(--ep-dark-rgb),.94) 4%,rgba(var(--ep-dark-rgb),.74) 38%,rgba(var(--ep-dark-rgb),.24) 78%,rgba(var(--ep-dark-rgb),.10) 100%)}
.ep-hero-mesh{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;z-index:1;
  background:
    radial-gradient(58% 46% at 84% 6%, rgba(var(--ep-ruby-rgb),.30) 0%, transparent 62%),
    radial-gradient(52% 44% at 8% 98%, rgba(43,99,220,.40) 0%, transparent 66%),
    radial-gradient(42% 38% at 98% 90%, rgba(43,99,220,.26) 0%, transparent 68%)}
.ep-hero-grid{position:absolute;inset:0;pointer-events:none;opacity:.7;z-index:1;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000,transparent 82%);
  mask-image:radial-gradient(70% 60% at 50% 40%,#000,transparent 82%)}
.ep-hero-glow{position:absolute;right:-12%;top:-25%;width:620px;height:620px;border-radius:50%;z-index:1;
  background:radial-gradient(circle,rgba(var(--ep-ruby-rgb),.30),transparent 68%);pointer-events:none}
.ep-hero-fade{position:absolute;left:0;right:0;bottom:0;height:190px;z-index:2;pointer-events:none;
  background:linear-gradient(to bottom,transparent,rgba(0,0,0,.35) 45%,rgba(0,0,0,.72))}

/* ── Hero · texto ─────────────────────────────────────── */
.ep-hero-text{position:relative;z-index:3}
.ep-hero-text h1{font-family:var(--ep-serif);font-weight:400;font-size:clamp(44px,7vw,88px);
  line-height:1.02;letter-spacing:-.02em;color:#fff!important;margin:18px 0 20px}
/* El énfasis NO es cursiva: palabra en blanco con trazo rubí debajo. */
.ep-hero-text h1 em{font-style:normal;color:#fff;position:relative;white-space:nowrap}
.ep-hero-text h1 em::after{content:'';position:absolute;left:2%;right:2%;bottom:.06em;height:.085em;
  background:var(--ep-ruby);border-radius:99px;transform:scaleX(0);transform-origin:left;
  animation:ep-underline .8s var(--ep-ease) .45s forwards}
@keyframes ep-underline{to{transform:scaleX(1)}}
.ep-hero-text p{font:400 clamp(16px,1.7vw,19px)/1.6 var(--ep-sans);color:rgba(255,255,255,.68);max-width:46ch;margin:0}
.ep-hero-btns{display:flex;align-items:center;gap:12px;margin-top:32px;flex-wrap:wrap}

/* ── Botones ──────────────────────────────────────────── */
.ep-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 26px;
  border-radius:var(--ep-r-f);font-weight:600;font-size:15px;letter-spacing:-.01em;white-space:nowrap;
  text-decoration:none;border:none;cursor:pointer;font-family:var(--ep-sans);
  transition:transform .18s var(--ep-ease),box-shadow .18s var(--ep-ease),background .18s,color .18s,border-color .18s}
.ep-btn:active{transform:translateY(1px)}
body .ep-btn.ep-btn-ruby{background:var(--ep-ruby);color:#fff!important;box-shadow:0 4px 14px rgba(158,27,50,.28)}
body .ep-btn.ep-btn-ruby:hover{background:var(--ep-ruby-700);color:#fff!important;box-shadow:0 8px 24px rgba(158,27,50,.36)}
.ep-btn-line{background:transparent;color:var(--ep-text)!important;border:1.5px solid var(--ep-g300)}
.ep-btn-line:hover{border-color:var(--ep-ink)}
.ep-btn-line-d{background:transparent;color:#fff!important;border:1.5px solid rgba(255,255,255,.3)}
.ep-btn-line-d:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.ep-btn-lg{padding:17px 34px;font-size:16.5px}
.ep-btn-sm{padding:9px 17px;font-size:13.5px}
.ep-btn-block{width:100%;box-sizing:border-box}

/* ── Chips ────────────────────────────────────────────── */
.ep-chip-b{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--ep-r-f);
  font-size:12.5px;font-weight:600;background:var(--ep-g100);color:var(--ep-g600);font-family:var(--ep-sans)}
.ep-chip-ruby{background:var(--ep-ruby-050);color:var(--ep-ruby)}
.ep-chip-blue{background:var(--ep-blue-050);color:var(--ep-blue)}
.ep-chip-line{background:transparent;border:1px solid var(--ep-g300)}
.ep-chip-dark{background:rgba(255,255,255,.1);color:#fff}
.ep-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.ep-pulse{animation:ep-pulse 2.4s ease-in-out infinite}
@keyframes ep-pulse{0%,100%{opacity:1}50%{opacity:.3}}
.ep-stars{color:var(--ep-ruby);letter-spacing:1px;font-size:13px}

/* ── Franja KPI ───────────────────────────────────────── */
.ep-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1200px;margin:0 auto;
  padding:22px 26px;font-family:var(--ep-sans)}
.ep-kpi{position:relative;padding-left:16px}
.ep-kpi::before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:2px;border-radius:2px;background:var(--ep-ruby);opacity:.8}
.ep-kpi.ep-kpi-blue::before{background:var(--ep-blue-600)}
.ep-kpi b{display:block;font-size:24px;font-weight:700;letter-spacing:-.02em;color:#fff}
.ep-kpi span{color:rgba(255,255,255,.48);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}
@media(max-width:700px){.ep-kpis{grid-template-columns:repeat(2,1fr);gap:16px}}

/* ── Bloque título de sección ─────────────────────────── */
.ep-eh{font-family:var(--ep-sans)}
.ep-eh h2,.ep-eh h1{font-family:var(--ep-serif);font-weight:400;line-height:1.02;letter-spacing:-.02em;color:var(--ep-text)!important}
.ep-eh h1{font-size:clamp(32px,4.6vw,56px)}
.ep-eh h2{font-size:clamp(32px,4.6vw,56px)}
.ep-eh.ep-center{text-align:center;margin-left:auto;margin-right:auto}
.ep-eh .ep-lead{font-size:clamp(16px,1.7vw,19px);line-height:1.6;color:var(--ep-g600);margin:0}
.ep-eh.ep-center .ep-lead{margin-left:auto;margin-right:auto}
.ep-eh.on-dark h1,.ep-eh.on-dark h2{color:#fff!important}
.ep-eh.on-dark .ep-lead{color:rgba(255,255,255,.68)}
/* Sobre fondo oscuro el énfasis no es cursiva: palabra en blanco con
   trazo rubí debajo, igual que en el hero. */
.ep-eh.on-dark h1 em,.ep-eh.on-dark h2 em,.ep-btwn.on-dark h2 em{font-style:normal;color:#fff;position:relative;white-space:nowrap}
.ep-eh.on-dark h1 em::after,.ep-eh.on-dark h2 em::after,.ep-btwn.on-dark h2 em::after{
  content:'';position:absolute;left:2%;right:2%;bottom:.06em;height:.085em;background:var(--ep-ruby);
  border-radius:99px;transform:scaleX(0);transform-origin:left;
  animation:ep-underline .8s var(--ep-ease) .45s forwards}
.ep-btwn{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;font-family:var(--ep-sans)}
.ep-btwn h2{font-family:var(--ep-serif);font-weight:400;font-size:clamp(25px,3vw,36px);line-height:1.02;letter-spacing:-.02em;color:var(--ep-text)!important}
.ep-btwn.on-dark h2{color:#fff!important}
/* Escalas display del prototipo (.d1/.d2/.d3), aplicables a cualquier título */
.ep-eh h1.ep-d1,.ep-eh h2.ep-d1,.ep-btwn h1.ep-d1,.ep-btwn h2.ep-d1{font-size:clamp(44px,7vw,88px)}
.ep-eh h1.ep-d2,.ep-eh h2.ep-d2,.ep-btwn h1.ep-d2,.ep-btwn h2.ep-d2{font-size:clamp(32px,4.6vw,56px)}
.ep-eh h1.ep-d3,.ep-eh h2.ep-d3,.ep-btwn h1.ep-d3,.ep-btwn h2.ep-d3{font-size:clamp(25px,3vw,36px)}

/* ── Estado vacío ─────────────────────────────────────── */
.ep-empty-card{border:1.5px dashed var(--ep-g300);border-radius:var(--ep-r-l);text-align:center;
  padding:56px 26px;font-family:var(--ep-sans)}
.ep-empty-ic{width:56px;height:56px;border-radius:var(--ep-r-l);background:var(--ep-ruby-050);color:var(--ep-ruby);
  display:grid;place-items:center;font-size:22px;margin:0 auto 18px}
.ep-empty-card h3{font-family:var(--ep-serif);font-weight:400;font-size:clamp(25px,3vw,36px);color:var(--ep-text)!important;margin-bottom:12px}
.ep-empty-card p{max-width:56ch;margin:0 auto 22px;color:var(--ep-g600);font-size:14px}

/* ── Pasos numerados ──────────────────────────────────── */
.ep-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;font-family:var(--ep-sans)}
.ep-step{display:flex;gap:18px;align-items:flex-start}
.ep-step-n{font-family:var(--ep-serif);font-size:34px;color:var(--ep-ruby);line-height:.9;flex:none;width:52px}
.ep-step h4{font-size:17px;font-weight:650;letter-spacing:-.015em;line-height:1.25;color:var(--ep-text)!important;margin-bottom:7px}
.ep-step p{font-size:14px;color:var(--ep-g600);line-height:1.55;margin:0}

/* ── Aviso de documento ───────────────────────────────── */
.ep-doc{display:flex;gap:14px;align-items:flex-start;background:var(--ep-ruby-050);
  border:1.5px solid rgba(var(--ep-ruby-rgb),.22);border-radius:var(--ep-r-l);padding:16px 19px;font-family:var(--ep-sans)}
.ep-doc-i{width:38px;height:38px;border-radius:var(--ep-r);background:var(--ep-ruby);color:#fff;display:grid;place-items:center;font-size:17px;flex:none}
.ep-doc strong{display:block;font-size:14.5px;margin-bottom:2px;color:var(--ep-text)}
.ep-doc p{font-size:13px;color:var(--ep-ruby-700);margin:0}

/* ── Cards de servicio ────────────────────────────────── */
.ep-svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;font-family:var(--ep-sans)}
.ep-svc-card{background:#fff;border:1px solid var(--ep-g200);border-radius:var(--ep-r-l);padding:26px;
  transition:transform .22s var(--ep-ease),box-shadow .22s var(--ep-ease),border-color .22s}
.ep-svc-card:hover{transform:translateY(-4px);box-shadow:var(--ep-sh3);border-color:var(--ep-g300)}
.ep-svc-ic{width:44px;height:44px;border-radius:12px;background:var(--ep-ruby-050);color:var(--ep-ruby);
  display:grid;place-items:center;font-size:19px;font-weight:700;margin-bottom:16px}
.ep-svc-card h4{font-size:17px;font-weight:650;letter-spacing:-.015em;color:var(--ep-text)!important;margin-bottom:8px}
.ep-svc-card p{font-size:14px;color:var(--ep-g600);line-height:1.55;margin:0}

/* ── Rail de destinos · réplica literal de .rail y .dest ─────────────── */
.ep-rail{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:none}
.ep-rail::-webkit-scrollbar{display:none}
.ep-dest{position:relative;flex:0 0 330px;height:470px;border-radius:var(--ep-r-l);overflow:hidden;
  scroll-snap-align:start;background:var(--ep-ink);cursor:pointer;isolation:isolate;display:block}
/* Las fotos se levantan a la paleta en CSS; --z es el zoom de recorte de cada una. */
.ep-dest img,.ep-dest .ep-ph{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;
  transform:scale(var(--z,1));transform-origin:center;transition:transform 1.1s var(--ep-ease),filter .5s;
  filter:saturate(1.55) brightness(1.14) contrast(1.06);max-width:none!important}
.ep-dest .ep-ph{background:radial-gradient(70% 55% at 30% 22%, rgba(var(--ep-ruby-rgb),.30), transparent 62%),
  linear-gradient(155deg,var(--ep-slate),var(--ep-ink) 72%)}
.ep-dest .ep-ph::after{content:'FOTO PENDIENTE';position:absolute;top:20px;left:20px;
  font-size:9.5px;font-weight:800;letter-spacing:.16em;color:rgba(255,255,255,.42)}
.ep-dest:hover img{transform:scale(calc(var(--z,1) * 1.06));filter:saturate(1.8) brightness(1.2) contrast(1.08)}
/* Velo de marca: unifica fotos de origen distinto bajo el mismo azul. */
.ep-dest .ep-tint{position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;
  background:linear-gradient(200deg,rgba(43,99,220,.75),transparent 55%,rgba(var(--ep-ruby-rgb),.55))}
.ep-dest::after{content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(var(--ep-dark-rgb),.95) 0%,rgba(var(--ep-dark-rgb),.72) 22%,rgba(var(--ep-dark-rgb),.18) 52%,transparent 78%)}
.ep-dest-c{position:absolute;left:0;right:0;bottom:0;padding:24px;z-index:2;color:#fff;font-family:var(--ep-sans)}
.ep-dest-c .ep-cur-label{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--ep-ruby-300);text-transform:uppercase}
.ep-dest-c h3{font-family:var(--ep-serif)!important;font-size:31px!important;font-weight:400!important;line-height:1!important;
  letter-spacing:normal!important;margin:7px 0 6px;color:#fff!important}
.ep-dest-c p{color:rgba(255,255,255,.66);font-size:13px}
.ep-dest-c .ep-go{margin-top:14px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:7px;
  opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}
.ep-dest:hover .ep-dest-c .ep-go{opacity:1;transform:none}
.ep-railnav{display:flex;gap:8px}
.ep-railnav button{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--ep-g300);display:grid;
  place-items:center;transition:border-color .16s,background .16s;color:inherit}
.ep-railnav button:hover{border-color:var(--ep-ink);background:var(--ep-ink);color:#fff}
/* Sobre la sección oscura el prototipo pone el borde en línea: rgba(255,255,255,.25). */
.ep-btwn.on-dark .ep-railnav{color:#fff}
.ep-btwn.on-dark .ep-railnav button{border-color:rgba(255,255,255,.25)}

/* ── Mapa de la red ───────────────────────────────────── */
.ep-map{background:linear-gradient(160deg,#F4F6F9,#E8ECF1);border-radius:var(--ep-r-l);position:relative;
  overflow:hidden;border:1px solid var(--ep-g200)}
.ep-maplg{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.95);border-radius:var(--ep-r-s);
  padding:10px 13px;font-family:var(--ep-sans);font-size:12px;box-shadow:var(--ep-sh1);display:grid;gap:6px}
.ep-maplg span{display:flex;align-items:center;gap:8px;color:var(--ep-g600)}
.ep-maplg b{width:9px;height:9px;border-radius:50%;display:block}
.ep-mapnote{position:absolute;bottom:14px;left:14px;background:rgba(255,255,255,.9);border-radius:var(--ep-r-s);
  padding:7px 12px;font-family:var(--ep-sans);font-size:11.5px;color:var(--ep-g600)}

/* ── Reseñas ──────────────────────────────────────────── */
.ep-rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;font-family:var(--ep-sans)}
.ep-rev-card{background:#fff;border:1px solid var(--ep-g200);border-radius:var(--ep-r-l);padding:26px}
.ep-rev-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.ep-avatar{width:38px;height:38px;border-radius:50%;background:var(--ep-ink);color:#fff;display:grid;
  place-items:center;font-weight:700;font-size:14px;flex:none}
.ep-rev-name{font-weight:600;font-size:14.5px;color:var(--ep-text)}
.ep-rev-city{font-size:12.5px;color:var(--ep-g500)}
.ep-rev-card .ep-stars{margin-left:auto}
.ep-rev-card p{font-size:14px;color:var(--ep-text);line-height:1.55;margin:0}

/* ── Oficinas · cabecera de provincia y fichas ────────── */
.ep-provhd{position:relative;border-radius:var(--ep-r-l);overflow:hidden;background-size:cover;background-position:center;
  min-height:132px;display:flex;align-items:flex-end;font-family:var(--ep-sans)}
.ep-provhd::after{content:'';position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(var(--ep-dark-rgb),.92) 8%,rgba(var(--ep-dark-rgb),.62) 52%,rgba(var(--ep-dark-rgb),.30))}
.ep-provhd-in{position:relative;z-index:2;padding:22px 26px;color:#fff}
.ep-provhd h2{font-family:var(--ep-serif);font-weight:400;color:#fff!important;font-size:clamp(26px,3.4vw,38px);margin-top:6px;line-height:1.02;letter-spacing:-.02em}
.ep-ocard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px;font-family:var(--ep-sans)}
.ep-ocard{display:block;border-radius:var(--ep-r-l);overflow:hidden;background:#fff;border:1px solid var(--ep-g200);
  text-decoration:none;transition:transform .22s var(--ep-ease),box-shadow .22s var(--ep-ease)}
body .ep-ocard:hover{transform:translateY(-4px);box-shadow:var(--ep-sh3)}
.ep-ocard-top{position:relative;min-height:168px;background-size:cover;background-position:center;
  display:flex;flex-direction:column;justify-content:space-between;padding:14px}
.ep-ocard-top::after{content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(var(--ep-dark-rgb),.94) 4%,rgba(var(--ep-dark-rgb),.66) 46%,rgba(var(--ep-dark-rgb),.42))}
.ep-ocard-chips,.ep-ocard-name{position:relative;z-index:2}
.ep-ocard-chips{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.ep-ocard-name h4{color:#fff!important;font-size:17px;line-height:1.2;margin-bottom:3px;font-weight:650}
.ep-ocard-name p{color:rgba(255,255,255,.72);font-size:12.5px;margin:0}
.ep-ocard-bot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;background:#fff}
.ep-cta{font-size:14px;font-weight:600;color:var(--ep-ruby)}
.ep-chip{padding:5px 12px;border-radius:var(--ep-r-f);font-size:12.5px;font-weight:600;border:1px solid var(--ep-g300);
  background:transparent;color:var(--ep-text);cursor:default;font-family:var(--ep-sans)}

/* ── Divisas · rejilla ────────────────────────────────── */
.ep-cur-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;font-family:var(--ep-sans);margin:34px 0 0}
.ep-cur-card{display:block;background:#fff;border:1px solid var(--ep-g200);border-radius:var(--ep-r-l);padding:26px;
  text-decoration:none;transition:transform .22s var(--ep-ease),box-shadow .22s var(--ep-ease),border-color .22s}
body .ep-cur-card:hover{transform:translateY(-4px);box-shadow:var(--ep-sh3);border-color:var(--ep-g300)}
body .ep-cur-card img{width:36px;height:auto;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.08);margin-bottom:16px;display:block;background:var(--ep-g100)}
.ep-cur-card h4{font-size:17px;font-weight:650;letter-spacing:-.015em;color:var(--ep-text)!important}
.ep-cur-code{font-size:12.5px;color:var(--ep-g500)}
.ep-cur-cta{font-size:14px;margin-top:16px;padding-top:16px;border-top:1px solid var(--ep-g200);color:var(--ep-ruby);font-weight:600}

/* ── CTA oscuro ───────────────────────────────────────── */

/* ── Nota / placeholder ───────────────────────────────── */
/* Nota de proyecto: recuadro crema con filo rubí, como en el prototipo. */
.ep-note{background:#FFFBF2;border:1px solid #F0E2C0;border-left:3px solid var(--ep-ruby);
  border-radius:var(--ep-r-s);padding:14px 17px;font-family:var(--ep-sans);
  font-size:13.5px;color:#6A5426;line-height:1.55;margin:20px 0}
.ep-note p{font-size:13.5px;color:#6A5426;line-height:1.55;margin:0}
.ep-note p + p{margin-top:1.55em}
.ep-note b,.ep-note strong{color:#463719;font-weight:700}
.ep-note code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;
  background:rgba(158,27,50,.07);padding:1px 5px;border-radius:5px}

/* ── Dos columnas de pasos ────────────────────────────── */
.ep-num-c{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;flex:none}
.ep-num-ruby{background:var(--ep-ruby-050);color:var(--ep-ruby)}
.ep-num-blue{background:var(--ep-blue-050);color:var(--ep-blue)}

/* ── Cards informativas / contacto ────────────────────── */
.ep-2col{display:grid;grid-template-columns:1fr 1fr;gap:20px;font-family:var(--ep-sans)}
.ep-info-card{background:#fff;border:1px solid var(--ep-g200);border-radius:var(--ep-r-l);padding:26px}
.ep-ruby-card{background:var(--ep-ruby-050);border-color:rgba(158,27,50,.2)}
.ep-ic{font-size:24px;margin-bottom:12px}
.ep-info-card h4{font-size:17px;font-weight:650;letter-spacing:-.015em;color:var(--ep-text)!important;margin-bottom:8px}
.ep-info-card p{font-size:14px;color:var(--ep-g600);line-height:1.55;margin:0}
.ep-ruby-card p{color:var(--ep-ruby-700)}
.ep-cgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;font-family:var(--ep-sans)}
.ep-ccard{display:block;background:#fff;border:1px solid var(--ep-g200);border-radius:var(--ep-r-l);padding:26px;text-decoration:none}
.ep-ccard h4{font-size:17px;font-weight:650;color:var(--ep-text)!important;margin-bottom:5px}
.ep-ccard p{font-size:12.5px;color:var(--ep-g500);margin-bottom:9px}
.ep-ccard b{font-size:14px;color:var(--ep-ruby);font-weight:700}

/* ══ FICHAS (single oficina / single divisa) ══════════════ */
.ep-band{background:var(--ep-g50);border-bottom:1px solid var(--ep-g200);font-family:var(--ep-sans)}
.ep-band-in{max-width:1200px;margin:0 auto;padding:40px 26px}
.ep-bc{font-size:12.5px;color:var(--ep-g500);margin-bottom:14px}
.ep-bc a{color:var(--ep-g500);text-decoration:none}
.ep-bc a:hover{color:var(--ep-ruby)}
.ep-band h1{font-family:var(--ep-serif);font-weight:400;font-size:clamp(32px,4.6vw,56px);line-height:1.02;
  letter-spacing:-.02em;color:var(--ep-text)!important}
.ep-band .ep-lead{font-size:clamp(16px,1.7vw,19px);line-height:1.6;color:var(--ep-g600);margin-top:8px}
.ep-band-split{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;flex-wrap:wrap}
.ep-band-actions{display:flex;align-items:center;gap:12px}

.ep-detail{max-width:1200px;margin:0 auto;padding:68px 26px;font-family:var(--ep-sans)}
.ep-detail-split{display:grid;grid-template-columns:1.6fr 1fr;gap:36px;align-items:start}
.ep-stack>*+*{margin-top:18px}
.ep-card{background:#fff;border:1px solid var(--ep-g200);border-radius:var(--ep-r-l)}
.ep-card-pad{padding:26px}
.ep-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:26px 26px 14px}
.ep-card-head h3{font-family:var(--ep-serif);font-weight:400;font-size:clamp(25px,3vw,36px);color:var(--ep-text)!important;letter-spacing:-.02em}
.ep-card h4{font-size:17px;font-weight:650;letter-spacing:-.015em;color:var(--ep-text)!important}

/* Tabla de precios */
.ep-rt{width:100%;border-collapse:collapse;font-size:15px;font-family:var(--ep-sans)}
.ep-rt th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.13em;color:var(--ep-g500);
  font-weight:700;padding:0 18px 12px;border-bottom:1px solid var(--ep-g200)}
.ep-rt th.r,.ep-rt td.r{text-align:right}
.ep-rt td{padding:15px 18px;border-bottom:1px solid var(--ep-g100);color:var(--ep-text)}
.ep-rt tr:last-child td{border-bottom:none}
.ep-rt tbody tr{transition:background .13s}
.ep-rt tbody tr:hover{background:var(--ep-g50)}
.ep-rt-name{display:flex;align-items:center;gap:12px}
body .ep-rt-name img{width:26px;height:auto;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.08);flex:none;display:block;background:var(--ep-g100)}
.ep-rt-name .n{font-weight:600;letter-spacing:-.01em;font-size:15px}
.ep-rt-name .c{font-size:12.5px;color:var(--ep-g500)}

/* Acordeón */
.ep-acc{border-bottom:1px solid var(--ep-g200)}
.ep-acc summary{padding:20px 0;font-weight:600;cursor:pointer;list-style:none;display:flex;
  justify-content:space-between;gap:16px}
.ep-acc summary::-webkit-details-marker{display:none}
.ep-acc summary::after{content:'+';font-size:21px;color:var(--ep-g400);font-weight:300;line-height:1}
.ep-acc[open] summary::after{content:'–'}
.ep-acc p{padding-bottom:20px;font-size:15px;color:var(--ep-g600);margin:0}

/* Lista de servicios con check */
.ep-svc-row{display:flex;align-items:flex-start;gap:10px;padding:7px 0;font-size:14px;color:var(--ep-text)}
.ep-check{width:18px;height:18px;border-radius:50%;background:var(--ep-blue-050);color:var(--ep-blue);
  display:grid;place-items:center;font-size:10px;font-weight:800;flex:none}

/* Ficha de divisa */
.ep-nearby-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;
  border-bottom:1px solid var(--ep-g100);text-decoration:none;transition:opacity .15s}
.ep-nearby-row:hover{opacity:.7}
.ep-nearby-row:last-of-type{border-bottom:none}
.ep-nearby-row .city{font-size:14px;font-weight:600;color:var(--ep-text)}
.ep-nearby-row .name{font-size:12.5px;color:var(--ep-g500)}
.ep-nearby-row b{font-variant-numeric:tabular-nums;color:var(--ep-text)}

/* Puntos de ruptura del prototipo: 1000px y 640px. */
@media(max-width:1000px){
  /* .g3 (servicios, reseñas, oficinas, pasos) pasa a una sola columna */
  .ep-svc-grid,.ep-rev-grid,.ep-ocard-grid,.ep-steps{grid-template-columns:1fr}
  /* .g4 (divisas) pasa a dos columnas */
  .ep-cur-grid{grid-template-columns:repeat(2,1fr)}
  /* .split y .hero-cols se apilan */
  .ep-detail-split{grid-template-columns:1fr}
  .ep-hero-cols{grid-template-columns:1fr!important;gap:44px!important}
  .ep-g2split{grid-template-columns:1fr!important}
}
@media(max-width:640px){
  /* .g2 y .g4 pasan a una sola columna */
  .ep-cur-grid,.ep-2col,.ep-cgrid,.ep-grid2{grid-template-columns:1fr}
  .ep-dest{flex:0 0 264px;height:352px}
  .ep-detail{padding-left:18px;padding-right:18px}
  /* .wrap pasa de 26px a 18px; .sec (104px) baja a 64px y .sec-s (68px) se queda */
  /* Las que en el prototipo llevan relleno propio (hero, bandas de ficha) se quedan en 26px. */
  .ep-wrap:not(.ep-wrap-26){padding-left:18px!important;padding-right:18px!important}
  .ep-sec-l{padding-top:64px!important;padding-bottom:64px!important}
  /* En el móvil la cabecera se queda con logo, menú y reserva */
  .ep-langs{display:none!important}
}
/* ── Animación de entrada — solo bajo el pliegue, una sola vez ── */
.ep-rv{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ep-ease),transform .7s var(--ep-ease)}
.ep-rv.in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  .ep-rv{opacity:1;transform:none;transition:none}
  .ep-hero-text h1 em::after,
  .ep-eh.on-dark h1 em::after,.ep-eh.on-dark h2 em::after,.ep-btwn.on-dark h2 em::after{animation:none;transform:scaleX(1)}
  .ep-dest img,.ep-dest .ep-go,.ep-ocard,.ep-svc-card,.ep-cur-card{transition:none}
  .ep-pulse{animation:none}
}

/* ══════════════════════════════════════════════════════════════════════
   El Theme Style del Kit fija tamaño a h1–h6 con la misma especificidad
   que estas reglas y se carga después, así que las escalas display del
   prototipo (.d1/.d2/.d3) se reafirman aquí.
   ══════════════════════════════════════════════════════════════════════ */
.ep-hero-text h1{font-size:clamp(44px,7vw,88px)!important;line-height:1.02!important}
.ep-eh h1,.ep-eh h2{font-size:clamp(32px,4.6vw,56px)!important;line-height:1.02!important}
.ep-btwn h2{font-size:clamp(25px,3vw,36px)!important;line-height:1.02!important}
.ep-eh h1.ep-d1,.ep-eh h2.ep-d1,.ep-btwn h1.ep-d1,.ep-btwn h2.ep-d1{font-size:clamp(44px,7vw,88px)!important}
.ep-eh h1.ep-d2,.ep-eh h2.ep-d2,.ep-btwn h1.ep-d2,.ep-btwn h2.ep-d2{font-size:clamp(32px,4.6vw,56px)!important}
.ep-eh h1.ep-d3,.ep-eh h2.ep-d3,.ep-btwn h1.ep-d3,.ep-btwn h2.ep-d3{font-size:clamp(25px,3vw,36px)!important}
.ep-band h1{font-size:clamp(32px,4.6vw,56px)!important;line-height:1.02!important}
.ep-empty-card h3,.ep-card-head h3{font-size:clamp(25px,3vw,36px)!important;line-height:1.02!important}
.ep-dest-c h3{font-size:31px!important;line-height:1!important}
.ep-provhd h2{font-size:clamp(26px,3.4vw,38px)!important;line-height:1.02!important}
.ep-step h4,.ep-svc-card h4,.ep-info-card h4,.ep-ccard h4,.ep-cur-card h4,
.ep-card h4{font-size:17px!important;line-height:1.25!important}
.ep-ocard-name h4{font-size:17px!important;line-height:1.2!important}

/* ══════════════════════════════════════════════════════════════════════
   ENTRADA DE BLOG · cabecera, cuerpo y «Más entradas»
   ══════════════════════════════════════════════════════════════════════ */
.ep-xs{font-size:12.5px} .ep-sm{font-size:14px}
.ep-posthd{font-family:var(--ep-sans)}
.ep-posthd-bc{margin-bottom:14px}
.ep-posthd-bc a{color:var(--ep-g500)!important;text-decoration:none}
.ep-posthd-bc a:hover{color:var(--ep-ruby)!important}
.ep-posthd-meta{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.ep-posthd-t{font-family:var(--ep-serif);font-weight:400;line-height:1.02;letter-spacing:-.02em;
  color:var(--ep-text)!important;max-width:24ch;margin:0}
.ep-posthd-l{font-size:clamp(16px,1.7vw,19px);line-height:1.6;color:var(--ep-g600);max-width:60ch;margin:12px 0 0}

.ep-related{font-family:var(--ep-sans)}
.ep-related .ep-d3{font-family:var(--ep-serif);font-weight:400;line-height:1.02;letter-spacing:-.02em;
  color:var(--ep-text)!important;margin:0 0 18px}
/* En el prototipo sus 10px de arriba se funden con los 18px del .stack;
   en un contenedor flex no se funden, así que basta con el hueco. */
.ep-ncard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ep-ncard{display:block;border-radius:var(--ep-r-l);overflow:hidden;background:var(--ep-w);
  border:1px solid var(--ep-g200);transition:transform .22s var(--ep-ease),box-shadow .22s var(--ep-ease),border-color .22s}
body .ep-ncard:hover{transform:translateY(-4px);box-shadow:var(--ep-sh3);border-color:var(--ep-g300)}
.ep-ncard-ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--ep-g200)}
.ep-ncard-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ep-ease)}
.ep-ncard:hover .ep-ncard-ph img{transform:scale(1.04)}
.ep-ncard-b{padding:20px 22px 24px;background:#fff}
.ep-ncard-b h4{font-size:17px!important;font-weight:650;color:var(--ep-text)!important;
  letter-spacing:-.015em;line-height:1.25;margin-bottom:8px}
.ep-ph-empty{position:absolute;inset:0;display:grid;place-items:center;
  color:var(--ep-g500);font-size:12px;font-weight:700;letter-spacing:.08em}

/* El titular de la entrada usa la misma escala D2 que el resto de la web. */
.ep-posthd h1.ep-d2{font-size:clamp(32px,4.6vw,56px)!important}
.ep-related h3.ep-d3{font-size:clamp(25px,3vw,36px)!important}

@media(max-width:1000px){ .ep-ncard-grid{grid-template-columns:1fr} }
.ep-ncard-big .ep-ncard-ph{aspect-ratio:21/9}
.ep-ncard-big .ep-ncard-b{padding:28px 32px 32px}
@media(max-width:760px){.ep-ncard-big .ep-ncard-ph{aspect-ratio:16/10}}

/* Sin foto destacada Elementor pinta su marcador gris. En el prototipo,
   una entrada sin foto simplemente no lleva foto. */
.elementor-widget-theme-post-featured-image:has(img[src*="/elementor/assets/images/placeholder.png"]){display:none}
.elementor-widget-theme-post-featured-image img[src*="/elementor/assets/images/placeholder.png"]{display:none}

/* ══════════════════════════════════════════════════════════════════════
   BANDA DE DOCUMENTO · la franja oscura bajo la cabecera
   ══════════════════════════════════════════════════════════════════════ */
.ep-docbar{background:var(--ep-ink);color:#fff;position:relative;overflow:hidden;font-family:var(--ep-sans)}
.ep-docbar-in{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:11px;
  padding:13px 26px;font-size:13px;position:relative;z-index:2}
.ep-docbar-msg b,.ep-docbar-msg strong{color:var(--ep-ruby-300)}
.ep-docwhy{margin-left:auto;color:var(--ep-g400)!important;border-bottom:1px solid var(--ep-slate);
  white-space:nowrap;text-decoration:none}
.ep-docwhy:hover{color:#fff!important}
/* No hay versión en blanco del logo: brightness(0) lo aplana a negro e
   invert(1) lo pasa a blanco puro. Sustituir al recibir el SVG real. */
.ep-doclogo{margin-left:auto;display:flex;align-items:center;border:none;opacity:.9;transition:opacity .16s}
.ep-doclogo:hover{opacity:1}
.ep-doclogo img{height:28px!important;width:auto!important;display:block;filter:brightness(0) invert(1)}
.ep-doclogo-edge{position:absolute;top:50%;transform:translateY(-50%);height:28px!important;width:auto!important;
  filter:brightness(0) invert(1);opacity:.9;pointer-events:none;display:block}
.ep-doclogo-edge.l{left:104px}
.ep-doclogo-edge.r{right:104px}
/* Solo aparecen cuando hay hueco real fuera del contenedor central. */
@media(max-width:1500px){.ep-doclogo-edge{display:none}}
@media(max-width:900px){.ep-doclogo{display:none}}

/* ══════════════════════════════════════════════════════════════════════
   SELECTOR DE OFICINA · barra persistente, barra compacta y ventana
   ══════════════════════════════════════════════════════════════════════ */
.ep-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;display:inline-block}
.ep-linkbtn{color:var(--ep-ruby)!important;font-weight:600;font-size:13px;background:none;border:0;
  cursor:pointer;font-family:var(--ep-sans);padding:0}
.ep-linkbtn:hover{text-decoration:underline}

/* Barra de oficina: la que va bajo la banda de documento. */
.ep-officebar{background:var(--ep-g100);border-bottom:1px solid var(--ep-g200);font-family:var(--ep-sans)}
.ep-officebar-in{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:10px;
  padding:9px 26px;font-size:13px;color:var(--ep-text)}
.ep-officebar-dot{color:var(--ep-blue)}

/* Barra compacta: aparece al pasar de 620 px de scroll. */
.ep-qbar{position:fixed;left:0;right:0;top:72px;z-index:290;background:var(--ep-ink);color:#fff;
  transform:translateY(-105%);transition:transform .34s var(--ep-ease);border-bottom:1px solid var(--ep-graphite)}
.ep-qbar.on{transform:none}
.ep-qbar-in{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:18px;
  padding:11px 26px;font-family:var(--ep-sans)}
.ep-qbar-in .v{font-size:19px;font-weight:700;letter-spacing:-.02em;color:#fff}
.ep-qbar-in .l{font-size:11.5px;color:var(--ep-g500);text-transform:uppercase;letter-spacing:.1em;font-weight:700}
.ep-qbar-in .ep-btn,.ep-qbar-in > button:last-child{margin-left:auto}

/* Ventana de selección. */
#ep-picker{display:none}
#ep-picker.on{display:block;position:fixed;inset:0;z-index:900}
.ep-pk-bg{position:absolute;inset:0;background:rgba(var(--ep-dark-rgb),.55);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:ep-pkfade .2s ease}
@keyframes ep-pkfade{from{opacity:0}to{opacity:1}}
.ep-pk{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(620px,calc(100vw - 32px));max-height:min(82vh,760px);background:#fff;
  border-radius:var(--ep-r-xl);box-shadow:var(--ep-sh4);display:flex;flex-direction:column;
  overflow:hidden;animation:ep-pkin .28s var(--ep-ease);font-family:var(--ep-sans)}
@keyframes ep-pkin{from{opacity:0;transform:translate(-50%,-46%) scale(.97)}
                   to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.ep-pk-h{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:26px 26px 18px;border-bottom:1px solid var(--ep-g200)}
.ep-pk-h h3{font-family:var(--ep-serif);font-weight:400;font-size:clamp(25px,3vw,36px)!important;
  line-height:1.02;letter-spacing:-.02em;color:var(--ep-text)!important;margin:0}
.ep-pk-h p{font-size:14px;color:var(--ep-g600);margin:4px 0 0}
.ep-pk-x{width:34px;height:34px;border-radius:50%;background:var(--ep-g100);font-size:19px;
  line-height:1;color:var(--ep-g600);flex:none;border:0;cursor:pointer}
.ep-pk-x:hover{background:var(--ep-g200)}
.ep-pk-s{padding:14px 26px;border-bottom:1px solid var(--ep-g200);background:var(--ep-g50)}
.ep-pk-s input{width:100%;padding:11px 14px;border:1.5px solid var(--ep-g200);border-radius:var(--ep-r);
  background:#fff;outline:none;font-size:15px;font-family:var(--ep-sans)}
.ep-pk-s input:focus{border-color:var(--ep-ink);box-shadow:0 0 0 3px rgba(var(--ep-dark-rgb),.10)}
.ep-pk-b{flex:1;overflow-y:auto;padding:8px 14px 14px}
.ep-pk-z{margin-top:14px}
.ep-pk-zt{display:flex;align-items:center;gap:9px;font-size:10.5px;font-weight:800;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ep-g500);padding:6px 12px 8px;position:sticky;top:0;
  background:#fff;z-index:2}
.ep-pk-zt span{background:var(--ep-g100);color:var(--ep-g600);border-radius:99px;padding:1px 7px;
  font-size:10px;letter-spacing:0}
.ep-pk-o{width:100%;display:flex;align-items:center;gap:13px;padding:12px;border-radius:var(--ep-r);
  text-align:left;transition:background .13s;background:none;border:0;cursor:pointer;font-family:var(--ep-sans)}
.ep-pk-o:hover{background:var(--ep-g50)}
.ep-pk-o.on{background:var(--ep-blue-050);box-shadow:inset 0 0 0 1.5px var(--ep-blue)}
.ep-pk-oi{width:30px;height:30px;border-radius:9px;background:var(--ep-ink);color:var(--ep-ruby-300);
  display:grid;place-items:center;font-size:13px;flex:none}
.ep-pk-o.on .ep-pk-oi{background:var(--ep-blue);color:#fff}
.ep-pk-on{flex:1;min-width:0}
.ep-pk-on b{display:block;font-size:14.5px;font-weight:600;letter-spacing:-.01em;color:var(--ep-text)}
.ep-pk-on i{display:block;font-style:normal;font-size:12.5px;color:var(--ep-g500);margin-top:1px}
.ep-pk-tag{font-size:10.5px;padding:3px 8px;border-radius:var(--ep-r-f);background:var(--ep-g100);
  color:var(--ep-g600);font-weight:600;flex:none}
.ep-pk-f{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:14px 26px;border-top:1px solid var(--ep-g200);background:var(--ep-g50);
  font-size:12.5px;color:var(--ep-g500)}
.ep-pk-none{font-size:14px;text-align:center;padding:34px 0;color:var(--ep-g600)}
@media(max-width:640px){
  .ep-pk{width:100%;max-height:100%;height:100%;border-radius:0;top:0;left:0;transform:none}
  @keyframes ep-pkin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  .ep-qbar{display:none}
}

/* ══════════════════════════════════════════════════════════════════════
   CALCULADORA EN VIVO · el bloque que sustituye al recuadro vacío
   ══════════════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════════════
   El Theme Style de Elementor pinta TODOS los <button> con el aspecto de
   botón rubí. Aquí se reinicia dentro de los componentes propios y se
   vuelve a aplicar el aspecto real de cada uno.
   ══════════════════════════════════════════════════════════════════════ */

/* Bloque de precios de la portada. */
.ep-rates{font-family:var(--ep-sans)}
.ep-rates-head{align-items:flex-end;margin-bottom:26px}
.ep-rates-sub{margin:6px 0 0;font-size:14px}
.ep-rates-card{overflow:hidden}
.ep-rates-foot{text-align:center;margin-top:22px}

/* El botón de invertir sentido y la lista de oficinas cercanas también
   necesitan escapar del Theme Style. */


/* La ventana no debe quedar debajo de la barra de administración. */
body.admin-bar #ep-picker.on{top:46px}
@media(min-width:783px){body.admin-bar #ep-picker.on{top:32px}}
/* Nombres largos: se recortan antes que empujar la etiqueta de colaborador. */
.ep-pk-on b,.ep-pk-on i{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Aviso de contenido pendiente: el borde discontinuo lo delata como
   provisional, que es exactamente lo que queremos que se note. */
.ep-pending{background:var(--ep-g50);border:1.5px dashed var(--ep-g300);border-radius:var(--ep-r-l);
  padding:28px;font-family:var(--ep-sans)}
.ep-pending-ic{font-size:22px;margin-bottom:10px}
.ep-pending h4{font-size:15px!important;font-weight:650;color:var(--ep-text)!important;margin-bottom:6px}
.ep-pending p{font-size:13.5px;color:var(--ep-g500);line-height:1.5;margin:0;max-width:60ch}

/* Foco visible para quien navega con teclado. El diseño no lo contempla
   porque el prototipo se pensó con ratón, pero sin esto la web no se
   puede usar sin ver dónde estás. */
.ep-pk-o:focus-visible,.ep-pk-x:focus-visible,.ep-fx-pick:focus-visible,
.ep-linkbtn:focus-visible,.ep-btn:focus-visible,
.ep-fx-swap button:focus-visible,
.ep-railnav button:focus-visible,.ep-ncard:focus-visible,.ep-ocard:focus-visible,
.ep-dest:focus-visible,.ep-nearby-row:focus-visible{
  outline:2px solid var(--ep-ruby)!important;outline-offset:2px!important}
.ep-pk-s input:focus-visible{
  outline:2px solid var(--ep-ink)!important;outline-offset:1px!important}

/* ══════════════════════════════════════════════════════════════════════
   CABECERA Y PIE · réplica literal de header.site y footer.site
   ══════════════════════════════════════════════════════════════════════ */
.ep-hdr{max-width:1200px;margin:0 auto;padding:0 26px;display:flex;align-items:center;gap:26px;height:72px;
  font-family:var(--ep-sans);font-size:16px;line-height:1.55;color:var(--ep-text)}
.ep-logo{display:flex;align-items:center}
.ep-logo img{height:36px!important;width:auto!important;max-width:100%!important}
.ep-nav-main{display:flex;gap:26px;margin-left:10px}
.ep-nav-main a{font-size:14.5px;font-weight:500;color:var(--ep-g600)!important;padding:26px 0;position:relative;
  transition:color .15s;line-height:1.55}
.ep-nav-main a:hover,.ep-nav-main a.on{color:var(--ep-text)!important}
.ep-nav-main a.on::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ep-ruby)}
.ep-hdr-r{margin-left:auto;display:flex;align-items:center;gap:14px}
.ep-langs{display:flex;gap:2px;background:var(--ep-g100);padding:3px;border-radius:var(--ep-r-f)}
.ep-langs button,.ep-langs a{display:block;padding:5px 11px!important;border-radius:var(--ep-r-f)!important;font-size:12px!important;font-weight:700!important;
  color:var(--ep-g500)!important;background:none!important;border:0!important;box-shadow:none!important;line-height:normal!important;
  font-family:var(--ep-sans)!important;letter-spacing:normal!important;text-transform:none!important}
.ep-langs button.on,.ep-langs a.on{background:var(--ep-w)!important;color:var(--ep-text)!important;box-shadow:var(--ep-sh1)!important}
.ep-burger{display:none!important}

.ep-site-footer{background:var(--ep-ink);color:var(--ep-g500);padding:76px 0 30px;font-size:14px;line-height:1.55;
  font-family:var(--ep-sans)}
.ep-foot-wrap{max-width:1200px;margin:0 auto;padding:0 26px}
.ep-site-footer h5{color:#fff!important;font-size:10.5px!important;text-transform:uppercase;letter-spacing:.16em;
  margin-bottom:15px;font-weight:700!important;line-height:1.55!important;font-family:var(--ep-sans)!important}
.ep-site-footer a{display:block;padding:5px 0;transition:color .15s;color:inherit!important}
.ep-site-footer a:hover{color:var(--ep-ruby-300)!important}
.ep-fgrid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr 1fr;gap:28px}
.ep-logo-plate{background:#fff;border-radius:8px;padding:9px 12px;display:inline-flex;margin-bottom:18px}
.ep-logo-plate img{height:30px!important}
.ep-ftag{color:var(--ep-g500)!important;max-width:34ch}
.ep-bde{background:var(--ep-carbon);border:1px solid var(--ep-graphite);border-radius:var(--ep-r);padding:14px;
  font-size:12.5px;line-height:1.5;margin-top:18px}
.ep-bde strong{color:#fff;display:block;margin-bottom:3px}
.ep-bde-n{color:var(--ep-ruby-300)}
.ep-fbot{border-top:1px solid var(--ep-graphite);margin-top:44px;padding-top:26px;display:flex;
  justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px}

@media(max-width:1000px){
  .ep-nav-main{display:none}
  .ep-burger{display:grid!important;place-items:center;width:42px!important;height:42px!important;border-radius:11px!important;
    border:1.5px solid var(--ep-g200)!important;background:none!important;color:var(--ep-text)!important;padding:0!important;font-size:16px!important}
  .ep-fgrid{grid-template-columns:1fr 1fr}
  /* Menú desplegado en móvil (el prototipo no lo resuelve: se abre bajo la cabecera). */
  .ep-hdr.open .ep-nav-main{display:flex;flex-direction:column;gap:0;position:absolute;left:0;right:0;top:72px;margin:0;
    background:#fff;border-bottom:1px solid var(--ep-g200);box-shadow:var(--ep-sh2);padding:6px 26px 14px;z-index:5}
  .ep-hdr.open .ep-nav-main a{padding:13px 0;border-bottom:1px solid var(--ep-g100)}
  .ep-hdr.open .ep-nav-main a.on::after{display:none}
}
@media(max-width:640px){
  .ep-hdr{padding:0 18px}
  .ep-langs{display:none}
  .ep-foot-wrap{padding:0 18px}
  .ep-hdr.open .ep-nav-main{padding:6px 18px 14px}
}
.ep-row{display:flex;align-items:center;gap:12px}
.ep-btnrow{flex-wrap:wrap}
.ep-btn-ink{background:var(--ep-ink);color:#fff!important}
.ep-btn-ink:hover{background:var(--ep-graphite)}

/* ── Widget de cambio · réplica literal de .fx del prototipo ─────────── */
.ep-fx{background:var(--ep-w);color:var(--ep-text);border-radius:var(--ep-r-xl);padding:24px;box-shadow:var(--ep-sh4);
  font-family:var(--ep-sans);font-size:16px;line-height:1.55}
.ep-fx-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}
.ep-fx-title{font-weight:700;font-size:15px;letter-spacing:-.02em}
.ep-fx-sub{font-size:12.5px;color:var(--ep-g600)}
.ep-fx-top .ep-chip-b{padding:4px 10px}
.ep-fx-pick{width:100%;display:flex;align-items:center;gap:12px;padding:11px 13px;margin-bottom:14px;
  border:1.5px dashed var(--ep-ruby);background:var(--ep-ruby-050);border-radius:var(--ep-r);
  text-align:left;transition:background .15s,border-color .15s;color:inherit;cursor:pointer}
.ep-fx-pick:hover{background:#FBE3E4}
.ep-fx-pick.set{border-style:solid;border-color:var(--ep-g200);background:var(--ep-g50)}
.ep-fx-pi{width:30px;height:30px;border-radius:9px;background:var(--ep-ruby);color:#fff;
  display:grid;place-items:center;font-size:12px;flex:none}
.ep-fx-pick.set .ep-fx-pi{background:var(--ep-blue)}
.ep-fx-pn{flex:1;min-width:0}
.ep-fx-pn i{display:block;font-style:normal;font-size:10px;font-weight:800;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ep-ruby)}
.ep-fx-pick.set .ep-fx-pn i{color:var(--ep-g500)}
.ep-fx-pn b{display:block;font-size:14px;font-weight:600;letter-spacing:-.01em;margin-top:1px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-fx-pc{font-size:12px;font-weight:700;color:var(--ep-ruby);flex:none}
.ep-fx-pick.set .ep-fx-pc{color:var(--ep-g500);font-weight:600}
.ep-fxmode{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--ep-g100);padding:3px;
  border-radius:var(--ep-r-f);margin-bottom:14px}
.ep-fxmode button{padding:9px 6px;border-radius:var(--ep-r-f);font-size:12.5px;font-weight:600;color:var(--ep-g600);
  transition:background .16s,color .16s;line-height:1.25}
.ep-fxmode button.on{background:var(--ep-w);color:var(--ep-text);box-shadow:var(--ep-sh1)}
.ep-fxf{background:var(--ep-g50);border:1.5px solid var(--ep-g200);border-radius:var(--ep-r);padding:12px 15px;
  display:flex;align-items:center;gap:10px;transition:border-color .16s,background .16s}
.ep-fxf:focus-within{border-color:var(--ep-ink);background:var(--ep-w)}
.ep-fxf input{border:none;background:none;outline:none;font-size:28px;font-weight:700;letter-spacing:-.03em;
  width:100%;min-width:0;color:var(--ep-text);padding:0;box-shadow:none;border-radius:0;height:auto}
.ep-cur{display:flex;align-items:center;gap:7px;font-weight:700;font-size:15px;padding-left:13px;
  border-left:1px solid var(--ep-g200);white-space:nowrap}
.ep-cur select{border:none;background:none;outline:none;font-weight:700;font-size:15px;cursor:pointer;
  padding:0;height:auto;color:inherit;box-shadow:none;width:auto}
body img.ep-flag{width:26px!important;height:auto!important;border-radius:3px;flex:none;display:block;background:var(--ep-g100);
  box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.ep-fx-swap{display:flex;justify-content:center;margin:-10px 0;position:relative;z-index:2}
.ep-fx-swap button{width:36px;height:36px;border-radius:50%;background:var(--ep-w);border:1.5px solid var(--ep-g200);
  display:grid;place-items:center;box-shadow:var(--ep-sh1);transition:transform .34s var(--ep-ease),border-color .16s}
.ep-fx-swap button:hover{transform:rotate(180deg);border-color:var(--ep-ink)}
.ep-fx-out{background:var(--ep-blue-050);border:1.5px solid rgba(var(--ep-dark-rgb),.10);
  color:var(--ep-text);border-radius:var(--ep-r);padding:15px 17px;position:relative;overflow:hidden;
  transition:box-shadow .3s var(--ep-ease)}
.ep-fx-out::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ep-ruby)}
.ep-fx-out.upd{box-shadow:0 0 0 3px rgba(var(--ep-ruby-rgb),.18)}
.ep-fx-lab{font-size:12.5px;color:var(--ep-g600);margin-bottom:3px;font-weight:600}
.ep-fx-out .v{font-size:38px;font-weight:800;letter-spacing:-.04em;color:var(--ep-ink);line-height:1.05;transition:color .25s}
.ep-fx-out.upd .v{color:var(--ep-ruby)}
.ep-fx-oc{font-weight:700;font-size:16px;color:var(--ep-g600)}
.ep-fx-meta{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--ep-g600);margin-top:13px}
.ep-guar{border:1.5px solid var(--ep-g200);background:var(--ep-blue-050);border-radius:var(--ep-r);padding:13px 15px;margin-top:14px}
.ep-guar-h{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--ep-blue);margin-bottom:7px}
.ep-guar-i{width:17px;height:17px;border-radius:50%;background:var(--ep-blue);color:#fff;display:grid;place-items:center;font-size:10px;flex:none}
.ep-guar li{list-style:none;font-size:12.8px;line-height:1.45;color:var(--ep-text);padding-left:14px;position:relative}
.ep-guar li+li{margin-top:4px}
.ep-guar li::before{content:'';position:absolute;left:3px;top:8px;width:4px;height:4px;border-radius:50%;background:var(--ep-blue)}
.ep-fx-cta{margin-top:15px}
.ep-fx-sub2{font-size:12.5px;color:var(--ep-g500);text-align:center;margin-top:9px}
.ep-fx-empty{border:1.5px solid var(--ep-g200);border-radius:var(--ep-r);padding:20px;text-align:center;background:var(--ep-g50)}
.ep-fx-el{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ep-g500)}
.ep-fx-ev{font-size:38px;font-weight:800;letter-spacing:.06em;color:var(--ep-g300);line-height:1.15;margin:4px 0 8px}
/* En el prototipo este párrafo hereda el blanco del hero y queda invisible
   sobre el fondo claro: aquí se deja en gris, que es lo que se quería leer. */
.ep-fx-empty p{font-size:13px;margin-bottom:14px;color:var(--ep-g600)}
.ep-fx-warn{font-size:12.5px;text-align:center;margin-top:9px;color:var(--ep-ruby)}
.ep-between{display:flex;align-items:center;justify-content:space-between;gap:14px}
.ep-num{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}
.ep-pulse{animation:ep-pulse 2.4s ease-in-out infinite}
@keyframes ep-pulse{0%,100%{opacity:1}50%{opacity:.3}}

/* ══════════════════════════════════════════════════════════════════════
   MAQUETACIÓN DE SECCIONES · las rejillas del prototipo
   ══════════════════════════════════════════════════════════════════════ */
/* Las capas del fondo del hero ocupan toda la sección. El envoltorio del
   widget en Elementor es relativo y mide 0 px: sin esto no se veía nada. */
.elementor-widget-europound-hero-bg{position:absolute!important;inset:0;width:auto!important;max-width:none!important;
  margin:0!important;z-index:0;pointer-events:none}
.elementor-widget-europound-hero-bg > .elementor-widget-container{position:absolute;inset:0}
/* .hero-cols: texto y calculadora, 1fr + 448px. */
.ep-hero-cols{display:grid!important;grid-template-columns:1fr 448px;gap:64px!important;align-items:center!important;
  z-index:3!important}
.ep-hero-cols > .e-con{width:auto!important;max-width:100%!important}
/* .grid.g2.split de «La red»: dos columnas, 56 px. */
.ep-g2split{display:grid!important;grid-template-columns:repeat(2,1fr);gap:56px!important;align-items:center!important}
.ep-g2split > .e-con{width:auto!important;max-width:100%!important}

/* .d1 .d2 .d3 del prototipo, completos, para cualquier titular que los lleve. */
.ep-d1,.ep-d2,.ep-d3{font-family:var(--ep-serif);font-weight:400;line-height:1.02;letter-spacing:-.02em}
.ep-d1{font-size:clamp(44px,7vw,88px)} .ep-d2{font-size:clamp(32px,4.6vw,56px)} .ep-d3{font-size:clamp(25px,3vw,36px)}
.ep-officebar-txt{color:var(--ep-g600)}
.ep-officebar-txt b{color:var(--ep-text);font-weight:700}
/* La tarjeta vacía de precios es .card.pad: fondo blanco. */
.ep-empty-card{background:var(--ep-w)}
.ep-officebar-act{margin-left:auto}
.ep-officebar-dot{color:var(--ep-blue)}

/* Listado de oficinas: .provsec, chips y tarjeta propia (.ocard.mine). */
.ep-provsec{margin-top:48px}
.ep-ofilters{margin:28px 0 22px;flex-wrap:wrap}
.ep-chip-ink{background:var(--ep-ink);color:#fff}
.ep-chip-all{background:var(--ep-g100)}
a.ep-chip-b{color:var(--ep-g600);text-align:center}
body .ep-ocard.mine{box-shadow:inset 0 0 0 2px var(--ep-blue),var(--ep-sh2);animation:ep-pick .7s var(--ep-ease)}
@keyframes ep-pick{0%{box-shadow:inset 0 0 0 2px var(--ep-blue),0 0 0 0 rgba(27,79,196,.35)}
  100%{box-shadow:inset 0 0 0 2px var(--ep-blue),0 0 0 14px rgba(27,79,196,0)}}
@media(prefers-reduced-motion:reduce){body .ep-ocard.mine{animation:none}}
/* Los chips del prototipo son <button>: interlineado normal. */
.ep-ofilters .ep-chip-b{line-height:normal}

/* ══════════════════════════════════════════════════════════════════════
   FORMULARIOS · réplica literal de .field del prototipo
   Va DESPUÉS de .ep-fxf input a propósito: en el prototipo .field input
   también da forma al importe de «Reservar» (misma especificidad, gana
   la que va después), y eso es parte del aspecto que hay que calcar.
   ══════════════════════════════════════════════════════════════════════ */
.ep-field{margin-bottom:18px}
.ep-field label{display:block;font-size:12.5px;font-weight:650;margin-bottom:7px}
.ep-field input,.ep-field select,.ep-field textarea{width:100%;padding:13px 15px;border:1.5px solid var(--ep-g200);
  border-radius:var(--ep-r);background:var(--ep-w);outline:none;transition:border-color .15s,box-shadow .15s;
  box-shadow:none;height:auto;line-height:normal}
.ep-field input:focus,.ep-field select:focus,.ep-field textarea:focus{border-color:var(--ep-ink);box-shadow:0 0 0 3px rgba(10,10,12,.07)}
.ep-field .ep-hint{font-size:12.5px;color:var(--ep-g500);margin-top:6px}
/* .fxf .cur select pesa más que .field select: el selector de divisa
   conserva su aspecto sin borde aunque herede el relleno del campo. */
.ep-fxf .ep-cur select{border:none;background:none;outline:none;font-weight:700;font-size:15px;cursor:pointer;box-shadow:none}
/* Sin el relleno del campo: con él, «GBP» no cabía y salía «GI». */
.ep-field .ep-cur select{padding:0 2px!important;min-width:3.6em}
/* Icono del documento (sustituye al emoji 🪪, que Windows 10 y móviles antiguos no muestran). */
.ep-ico-doc{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.18em}
.ep-field input.err,.ep-field textarea.err{border-color:var(--ep-ruby)}
.ep-contact-form{position:relative}
.ep-contact-form .ep-error{text-align:center;margin-top:10px}
.ep-req{color:var(--ep-ruby)}
.ep-error{font-size:12.5px;color:var(--ep-ruby);margin-top:6px;font-weight:600}
.ep-grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media(max-width:640px){.ep-grid2{grid-template-columns:1fr}}

/* .grid.split de Contacto: texto a la izquierda y formulario de 400px. */
.ep-split{display:grid!important;grid-template-columns:1fr 400px;gap:48px!important;align-items:start!important}
.ep-split > .e-con{width:auto!important;max-width:100%!important;min-width:0}
@media(max-width:1000px){.ep-split{grid-template-columns:1fr!important}}

/* Pasos en tarjeta (Garantía): filas .row con número serif de 44px. */
.ep-sl-row{align-items:flex-start;gap:18px;padding:20px 0;border-bottom:1px solid var(--ep-g100)}
.ep-sl-n{font-family:var(--ep-serif);font-size:34px;color:var(--ep-ruby);line-height:.9;width:44px;flex:none}

/* .lead global del prototipo y estrellas apagadas de las reseñas. */
.ep-lead{font-size:clamp(16px,1.7vw,19px);line-height:1.6}
.ep-stars .ep-dim{color:var(--ep-g300)}

/* La regla base de .ep-hero-cols lleva !important y va después de la media
   query de 1000px: se repite aquí para que en tableta y móvil se apile con 44px. */
@media(max-width:1000px){.ep-hero-cols{grid-template-columns:1fr!important;gap:44px!important}}

/* Con oficina elegida, la tabla de precios de la portada mide ~416px. En el
   prototipo desborda y ensancha toda la página en el móvil; aquí se desplaza
   dentro de su tarjeta, que es lo mismo sin romper el ancho de la página. */
@media(max-width:640px){.ep-rates-card,.ep-detail .ep-card:has(> .ep-rt){overflow-x:auto}.ep-detail-split > *{min-width:0}}

/* ══════════════════════════════════════════════════════════════════════
   MAPA REAL · OpenStreetMap con Leaflet, vestido con los colores del diseño
   ══════════════════════════════════════════════════════════════════════ */
.ep-map-lienzo{position:absolute;inset:0;z-index:1}
.ep-map .leaflet-container{font-family:var(--ep-sans);background:#EEF1F5;width:100%;height:100%}
/* Calle en gris: el color es de las oficinas, no del callejero. */
.ep-map .leaflet-tile-pane{filter:grayscale(1) contrast(.92) brightness(1.05)}
.ep-map .ep-maplg,.ep-map .ep-mapnote{z-index:800}
.ep-map .leaflet-control-zoom{border:0;box-shadow:var(--ep-sh1);border-radius:var(--ep-r-s);overflow:hidden;margin:14px 14px 0 0}
.ep-map .leaflet-control-zoom a{color:var(--ep-text)!important;width:32px;height:32px;line-height:30px;font-size:18px;border-color:var(--ep-g200)}
.ep-map .leaflet-control-attribution{font-size:10.5px;background:rgba(255,255,255,.85);border-radius:6px 0 0 0}
.ep-map .leaflet-control-attribution a{color:var(--ep-g600)!important}
/* Puntos: r 7 tinta con borde blanco; rubí al pasar y en la oficina elegida. */
.leaflet-marker-icon.ep-mk{display:grid;place-items:center}
.ep-mk span{display:block;width:14px;height:14px;border-radius:50%;background:#0A0A0C;box-shadow:0 0 0 2px #fff,0 1px 4px rgba(0,0,0,.25);
  transition:background .16s,transform .16s}
.ep-mk:hover span,.ep-mk:focus span{background:var(--ep-ruby);transform:scale(1.36)}
.ep-mk.near span{background:var(--ep-ruby);transform:scale(1.43)}
.ep-mk:focus{outline:none}.ep-mk:focus-visible span{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ep-ruby)}
/* «Estás aquí»: azul con halo que respira, como en el prototipo. */
.leaflet-marker-icon.ep-mk-me{pointer-events:none;display:grid;place-items:center}
.ep-mk-me i,.ep-mk-me span{grid-area:1/1;border-radius:50%;display:block}
.ep-mk-me i{width:30px;height:30px;background:#1B3FA0;opacity:.16;animation:ep-respira 2.6s infinite}
.ep-mk-me span{width:12px;height:12px;background:#1B3FA0;box-shadow:0 0 0 2.4px #fff}
@keyframes ep-respira{0%,100%{transform:scale(.47)}50%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.ep-mk-me i{animation:none}}
/* Ficha al pulsar un punto. */
.ep-pop .leaflet-popup-content-wrapper{border-radius:var(--ep-r);box-shadow:var(--ep-sh3);padding:0}
.ep-pop .leaflet-popup-content{margin:14px 16px 15px;font:13px/1.45 var(--ep-sans);color:var(--ep-g600);min-width:210px}
.ep-pop .leaflet-popup-content b{display:block;font-size:14.5px;font-weight:700;color:var(--ep-text);margin-bottom:2px}
.ep-pop .leaflet-popup-content span{display:block}
.ep-pop .leaflet-popup-content em{display:inline-block;margin-top:6px;font-style:normal;font-size:11px;font-weight:600;
  padding:2px 8px;border-radius:var(--ep-r-f);background:var(--ep-g100);color:var(--ep-g600)}
.ep-pop .ep-pop-act{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.ep-pop a.ep-btn-ink{color:#fff!important}
.ep-pop a.leaflet-popup-close-button{color:var(--ep-g400)!important}
.ep-langs a:not(.on):hover{color:var(--ep-text)!important}

/* ══ Textos legales (aviso legal, privacidad, cookies, canal ético) ══
   Van en un «Editor de texto» de Elementor con la clase ep-legal: se
   corrigen desde el editor sin tocar código. El Kit pisa h2/a: !important. */
.ep-legal{font-family:var(--ep-sans);font-size:15.5px;line-height:1.7;color:var(--ep-g700);max-width:820px;margin-top:34px}
.ep-legal p{margin:0 0 1em}
.ep-legal h2{font-family:var(--ep-sans)!important;font-size:16.5px!important;font-weight:700!important;letter-spacing:.01em;line-height:1.35!important;
  color:var(--ep-text)!important;margin:2.1em 0 .7em!important;text-transform:none}
.ep-legal h2:first-child,.ep-legal .ep-legal-nota + h2{margin-top:.4em!important}
.ep-legal a{color:var(--ep-ruby)!important;font-size:inherit!important;font-weight:500;text-decoration:underline;text-underline-offset:2px;word-break:break-word}
.ep-legal ul,.ep-legal ol{margin:0 0 1.2em;padding-left:1.4em}
.ep-legal li{margin:.35em 0}
.ep-legal ol ol{list-style:none;padding-left:.6em;margin:.5em 0 .8em}
.ep-legal table{display:block;overflow-x:auto;border-collapse:collapse;font-size:13px;line-height:1.5;margin:0 0 1.6em;max-width:100%}
.ep-legal th,.ep-legal td{border:1px solid var(--ep-g200);padding:8px 10px;text-align:left;vertical-align:top}
.ep-legal th{background:var(--ep-g50);color:var(--ep-text);font-weight:700;font-size:11.5px;letter-spacing:.06em}
.ep-legal td:first-child{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ep-text);white-space:nowrap}
.ep-legal .ep-legal-nota{background:var(--ep-g50);border:1px solid var(--ep-g200);border-radius:var(--ep-r);padding:12px 16px;font-size:14px;color:var(--ep-g600)}
.ep-legal .ep-btn{display:inline-flex;text-decoration:none!important;color:#fff!important;font-weight:600}
@media (max-width:700px){.ep-legal{font-size:15px;margin-top:24px}}

/* Crédito del desarrollador en el pie. */
.ep-fbot .ep-credito a{display:inline!important;padding:0!important;color:inherit!important;font-size:inherit!important;text-decoration:underline;text-underline-offset:2px}
.ep-fbot .ep-credito a:hover{color:var(--ep-ruby-300)!important}

/* Página interna de precios para colaboradores. */
.ep-colab{margin-top:30px;max-width:820px;font-family:var(--ep-sans)}
.ep-colab-bar{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin-bottom:16px}
.ep-colab-bar .ep-sm{margin:0}
.ep-colab-buscar{position:relative;flex:1 1 280px;max-width:400px;margin:0}
.ep-colab-buscar svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--ep-g500);pointer-events:none}
.ep-colab-buscar input{width:100%;height:48px;padding:0 16px 0 44px!important;border:1.5px solid var(--ep-g200)!important;border-radius:var(--ep-r)!important;
  background:#fff!important;font:500 15px/1 var(--ep-sans)!important;color:var(--ep-text)!important;outline:none;transition:border-color .15s,box-shadow .15s}
.ep-colab-buscar input:focus{border-color:var(--ep-ink)!important;box-shadow:0 0 0 3px rgba(10,10,12,.07)}
.ep-colab-buscar input::placeholder{color:var(--ep-g500);opacity:1}
.ep-colab-card{overflow:hidden}
.ep-colab .ep-rt th{padding:14px 24px;background:var(--ep-g50)}
.ep-colab .ep-rt td{padding:14px 24px}
.ep-colab .ep-rt td.n b{font-size:16px}
.ep-colab-vacio{padding:34px 24px;text-align:center;color:var(--ep-g500);margin:0}
@media(max-width:640px){.ep-colab .ep-rt th,.ep-colab .ep-rt td{padding-left:16px;padding-right:16px}.ep-colab-buscar{max-width:none}}

/* Fecha de la cotización (12/11/2026) */
.ep-fx-fecha{font-size:12px;color:var(--ep-g600);margin-top:8px;line-height:1.4}
.ep-rates-fecha{font-size:13px;color:var(--ep-g600);margin:-4px 0 12px;padding:0 26px;line-height:1.4}
.ep-fecha-vieja{color:#9a5b00;font-weight:600}
.ep-chip-b.ep-chip-vieja{background:#fff4dc;color:#9a5b00}

/* Desplegable de divisas con bandera y nombre (12/11/2026) */
select.ep-dd-oculto{position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden;padding:0!important}
.ep-cur{position:relative}
.ep-dd-btn,.ep-dd-btn:hover,.ep-dd-btn:focus,.ep-dd-btn:active{display:inline-flex;align-items:center;gap:5px;border:none;background:none;padding:2px 0;margin:0;cursor:pointer;
  font:inherit;font-weight:700;color:inherit;box-shadow:none;line-height:1.2;min-width:3.4em;text-transform:none;letter-spacing:normal}
.ep-dd-btn:focus-visible{outline:2px solid var(--ep-ink);outline-offset:3px;border-radius:4px}
.ep-dd-car{font-size:11px;color:var(--ep-g500)}
.ep-dd-pop{position:fixed;z-index:100000;background:#fff;border:1px solid var(--ep-g200);border-radius:14px;
  box-shadow:0 18px 50px rgba(15,20,40,.18),0 2px 6px rgba(15,20,40,.08);display:flex;flex-direction:column;overflow:hidden;
  font-family:var(--ep-sans);outline:none}
.ep-dd-pop .ep-dd-q{margin:10px;padding:10px 12px;border:1.5px solid var(--ep-g200);border-radius:10px;font-size:15px;
  outline:none;background:var(--ep-g50);color:var(--ep-text);box-shadow:none;width:auto;height:auto;flex:none}
.ep-dd-pop .ep-dd-q:focus{border-color:var(--ep-ink);background:#fff}
.ep-dd-pop ul{list-style:none;margin:0;padding:0 6px 8px;overflow-y:auto;flex:1;min-height:0;overscroll-behavior:contain}
.ep-dd-pop li{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:9px;cursor:pointer;font-size:15px;color:var(--ep-text);margin:0;line-height:1.3}
.ep-dd-pop li img,.ep-dd-nf{width:26px;height:auto;border-radius:3px;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.08);background:var(--ep-g100);display:block}
.ep-dd-nf{height:18px}
.ep-dd-n{flex:1;min-width:0;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ep-dd-c{font-size:13px;font-weight:700;color:var(--ep-g500);letter-spacing:.02em}
.ep-dd-pop li.act{background:var(--ep-g50)}
.ep-dd-pop li.on{background:var(--ep-g100)}
.ep-dd-pop li.on .ep-dd-n{font-weight:700}
.ep-dd-pop li.ep-dd-none{cursor:default;color:var(--ep-g500);justify-content:center}

/* Precio reservado: solo vale ese día (12/11/2026) */
.ep-guar li.ep-guar-dia{font-weight:600}
.ep-rv-dia{text-align:center;margin:14px 0 0;font-weight:600;color:var(--ep-text);line-height:1.45}

/* Tablas de precios con todas las divisas y scroll interno (12/11/2026) */
.ep-rt-scroll{max-height:560px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;outline:none}
.ep-rt-scroll:focus-visible{box-shadow:inset 0 0 0 2px var(--ep-ink)}
.ep-rt-scroll .ep-rt thead th{position:sticky;top:0;z-index:1;background:#fff;padding-top:12px;box-shadow:inset 0 -1px 0 var(--ep-g200)}
@media (max-width:767px){.ep-rt-scroll{max-height:480px}}
