/* =========================================================
   EL PASO — Premium Tex-Mex restaurant theme
   Palette taken from the logo: chilli red, cactus green,
   sombrero gold on warm desert sand.
   Loaded AFTER the template css (core / vendor) on purpose.
   ========================================================= */

:root {
  /* dark "adobe / cocoa" surfaces */
  --ep-ink-950: #170907;
  --ep-ink-900: #26100c;
  --ep-ink-800: #3a1a13;
  --ep-ink-700: #5a2619;
  /* brand */
  --ep-red: #d91e28;
  --ep-red-dark: #a8121b;
  --ep-red-deep: #6e0b12;
  --ep-green: #2f8f3a;
  --ep-green-light: #59bc45;
  --ep-gold: #f2b418;
  --ep-gold-light: #ffd873;
  --ep-accent: #c8202b;                       /* accent text on light surfaces */
  --ep-gold-grad: linear-gradient(135deg, #ffd873 0%, #f2b418 50%, #d9930c 100%);
  --ep-red-grad: linear-gradient(135deg, #f0353c 0%, #d91e28 50%, #a8121b 100%);
  --ep-sand: #f3cd92;                         /* exact logo background */
  --ep-ivory: #fff8e8;
  --ep-cream: #f8e5bd;
  --ep-ink: #24130e;
  --ep-text: #4d3a30;
  --ep-muted: #8a7465;
  --ep-line: rgba(200, 120, 30, .38);
  --ep-radius: 22px;
  --ep-shadow: 0 30px 60px -25px rgba(23, 9, 7, .5);
  --ep-ease: cubic-bezier(.22, .8, .24, 1);
  --ep-head: 'Fraunces', Georgia, 'Times New Roman', serif;
  --ep-body: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ep-header-h: 92px;
}

html { scroll-behavior: smooth; }
body.ep {
  font-family: var(--ep-body) !important;
  background: var(--ep-ivory);
  color: var(--ep-ink);
  font-size: 16px;
  line-height: 1.7;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.ep.ep-lock { overflow: hidden; }
body.ep h1, body.ep h2, body.ep h3, body.ep h4, body.ep h5, body.ep h6 {
  font-family: var(--ep-head) !important;
  font-weight: 600;
  color: inherit;
  line-height: 1.08;
  letter-spacing: -.01em;
}
body.ep a { text-decoration: none; transition: color .3s, background .3s, border-color .3s, transform .3s var(--ep-ease); }
body.ep img { max-width: 100%; }
.ep .hide { display: none !important; }
body.ep #btnScrollTo { display: none !important; } /* template's own scroll-top button (replaced by .ep-top) */
.ep ::selection { background: var(--ep-red); color: #fff; }
.ep-container { width: min(1240px, 92%); margin-inline: auto; }

/* ---------- logo zig-zag strip (taken from the logo) ---------- */
.ep-zig {
  --zw: 24px;
  height: calc(var(--zw) / 2); width: 100%;
  background-color: var(--ep-green);
  background-image: conic-gradient(from 135deg at 50% 0, var(--ep-red) 0 90deg, transparent 0);
  background-size: var(--zw) 100%;
  background-repeat: repeat-x;
}
.ep-zig--sm { --zw: 16px; }

/* ---------- preloader ---------- */
.ep-preloader {
  position: fixed; inset: 0; z-index: 99999;
  background: radial-gradient(circle at 50% 40%, var(--ep-ink-700), var(--ep-ink-950));
  display: grid; place-items: center;
  transition: opacity .8s var(--ep-ease), visibility .8s;
}
.ep-preloader.is-done { opacity: 0; visibility: hidden; }
.ep-preloader__inner { text-align: center; }
.ep-preloader img {
  width: min(300px, 62vw); display: block;
  background: var(--ep-sand);
  border-radius: 26px;
  padding: 16px 22px;
  box-shadow: 0 0 0 4px var(--ep-gold), 0 0 0 10px rgba(242, 180, 24, .18), 0 30px 70px -20px #000;
  animation: epPulse 1.8s ease-in-out infinite;
}
.ep-preloader__bar { width: 220px; margin: 32px auto 0; border-radius: 4px; overflow: hidden; opacity: .9; }
.ep-preloader__bar .ep-zig { animation: epSlide 1s linear infinite; background-size: 24px 100%; }
@keyframes epPulse { 50% { transform: scale(1.04) rotate(-.6deg); } }
@keyframes epSlide { to { background-position-x: 24px; } }

/* ---------- scroll progress ---------- */
.ep-progress { position: fixed; top: 0; left: 0; height: 4px; width: 0; z-index: 10001; background: var(--ep-red-grad); box-shadow: 0 0 12px rgba(217, 30, 40, .6); }

/* ---------- topbar ---------- */
.ep-topbar { background: var(--ep-ink-950); color: rgba(255, 255, 255, .78); font-size: 13.5px; letter-spacing: .03em; position: relative; z-index: 1002; }
.ep-topbar__in { display: flex; justify-content: space-between; align-items: center; min-height: 42px; gap: 18px; }
.ep-topbar a { color: rgba(255, 255, 255, .78); }
.ep-topbar a:hover { color: var(--ep-gold-light); }
.ep-topbar__group { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.ep-topbar i { color: var(--ep-gold); font-size: 16px; vertical-align: -2px; margin-right: 6px; }
.ep-status { display: inline-flex; align-items: center; gap: 8px; }
.ep-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #4cd68a; box-shadow: 0 0 0 0 rgba(76, 214, 138, .7); animation: epPing 2s infinite; }
@keyframes epPing { 70% { box-shadow: 0 0 0 9px rgba(76, 214, 138, 0); } 100% { box-shadow: 0 0 0 0 rgba(76, 214, 138, 0); } }

.ep-lang { position: relative; }
.ep-lang__btn { background: none; border: 1px solid rgba(255, 255, 255, .2); color: #fff; border-radius: 40px; padding: 4px 14px; font: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.ep-lang__btn:hover { border-color: var(--ep-gold); }
.ep-lang__menu {
  position: absolute; left: 0; top: calc(100% + 10px); min-width: 170px;
  background: var(--ep-ink-900); border: 1px solid rgba(242, 180, 24, .35); border-radius: 14px; padding: 8px;
  opacity: 0; visibility: hidden; transform: translateY(8px); transition: .3s var(--ep-ease); z-index: 20; box-shadow: var(--ep-shadow);
}
.ep-lang.is-open .ep-lang__menu { opacity: 1; visibility: visible; transform: none; }
.ep-lang__menu a { display: flex; gap: 10px; align-items: center; padding: 9px 12px; border-radius: 9px; color: #fff; cursor: pointer; }
.ep-lang__menu a:hover { background: rgba(242, 180, 24, .16); color: var(--ep-gold-light); }

/* language flags: template sprite has no "uk", so use the png icons (24x24) */
.ep .flag.flag-uk, .ep .flag.flag-fi { content: url(uk.png); width: 20px; height: 20px; background: none; vertical-align: middle; object-fit: contain; }
.ep .flag.flag-fi { content: url(fi.png); }

.ep-social { display: flex; gap: 8px; }
.ep-social a { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .22); color: #fff; font-size: 17px; }
.ep-social a:hover { background: var(--ep-red); color: #fff; border-color: var(--ep-red); transform: translateY(-3px) rotate(-6deg); }
.ep-topbar .ep-social a { width: 28px; height: 28px; font-size: 15px; }
.ep-topbar .ep-social i { margin: 0; color: inherit; }

/* ---------- header / nav ---------- */
.ep-header { position: fixed; left: 0; right: 0; top: 0; z-index: 1000; transition: transform .5s var(--ep-ease), box-shadow .4s; }
.ep-header__nav { position: relative; background: var(--ep-sand); transition: .4s var(--ep-ease); }
.ep-header__nav .ep-zig { position: absolute; left: 0; right: 0; bottom: -8px; --zw: 16px; filter: drop-shadow(0 6px 8px rgba(23, 9, 7, .25)); }
.ep-header__in { display: flex; align-items: center; justify-content: space-between; height: var(--ep-header-h); gap: 24px; transition: height .4s var(--ep-ease); }
.ep-brand img { height: 74px; width: auto; transition: height .4s var(--ep-ease), transform .5s var(--ep-ease); display: block; mix-blend-mode: multiply; }
.ep-brand:hover img { transform: rotate(-2deg) scale(1.05); }
.ep-header.is-stuck .ep-header__in { height: 68px; }
.ep-header.is-stuck .ep-brand img { height: 54px; }
.ep-header.is-stuck .ep-topbar-wrap { display: none; }

.ep-menu { display: flex; align-items: center; gap: 6px; list-style: none; margin: 0; padding: 0; }
.ep-menu a { position: relative; display: block; padding: 10px 16px; font-weight: 700; font-size: 13.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--ep-ink-900); }
.ep-menu a::after { content: ""; position: absolute; left: 50%; bottom: 3px; width: 0; height: 3px; background: var(--ep-red); transform: translateX(-50%); transition: width .4s var(--ep-ease); border-radius: 3px; }
.ep-menu a:hover, .ep-menu a.is-active { color: var(--ep-red); }
.ep-menu a:hover::after, .ep-menu a.is-active::after { width: calc(100% - 32px); }

.ep-burger { display: none; width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid var(--ep-ink-900); background: transparent; cursor: pointer; position: relative; z-index: 1101; }
.ep-burger span { position: absolute; left: 13px; right: 13px; height: 2px; background: var(--ep-ink-900); transition: .4s var(--ep-ease); }
.ep-burger span:nth-child(1) { top: 17px; }
.ep-burger span:nth-child(2) { top: 23px; }
.ep-burger span:nth-child(3) { top: 29px; }
.ep-burger.is-open { border-color: var(--ep-gold); }
.ep-burger.is-open span:nth-child(1) { top: 23px; transform: rotate(45deg); background: var(--ep-gold-light); }
.ep-burger.is-open span:nth-child(2) { opacity: 0; }
.ep-burger.is-open span:nth-child(3) { top: 23px; transform: rotate(-45deg); background: var(--ep-gold-light); }

/* ---------- buttons ---------- */
.ep-btn {
  --bg: var(--ep-red-grad); --fg: #fff;
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 16px 32px; border-radius: 60px; border: 0; cursor: pointer;
  font: 700 13.5px/1 var(--ep-body); letter-spacing: .15em; text-transform: uppercase;
  background: var(--bg); color: var(--fg) !important; overflow: hidden; isolation: isolate;
  box-shadow: 0 14px 30px -12px rgba(168, 18, 27, .85), inset 0 0 0 1px rgba(255, 255, 255, .12);
  transition: transform .35s var(--ep-ease), box-shadow .35s;
}
.ep-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(120deg, transparent 20%, rgba(255, 255, 255, .45) 50%, transparent 80%); transform: translateX(-120%); transition: transform .8s var(--ep-ease); }
.ep-btn:hover { transform: translateY(-3px); box-shadow: 0 22px 36px -12px rgba(168, 18, 27, .95); }
.ep-btn:hover::before { transform: translateX(120%); }
.ep-btn i { font-size: 18px; transition: transform .35s var(--ep-ease); }
.ep-btn:hover i.ph-arrow-up-right { transform: translate(3px, -3px); }
.ep-btn--gold { --bg: var(--ep-gold-grad); --fg: var(--ep-ink-950); box-shadow: 0 14px 30px -14px rgba(217, 147, 12, .9); }
.ep-btn--ghost { --bg: transparent; --fg: #fff; border: 1.5px solid rgba(255, 255, 255, .6); box-shadow: none; backdrop-filter: blur(6px); }
.ep-btn--ghost:hover { border-color: var(--ep-gold); background: rgba(242, 180, 24, .16); box-shadow: none; }
.ep-btn--dark { --bg: var(--ep-ink-900); --fg: #fff; box-shadow: 0 14px 30px -14px rgba(23, 9, 7, .85); }
.ep-btn--sm { padding: 12px 22px; font-size: 12.5px; }
.ep-btn[disabled] { opacity: .5; cursor: not-allowed; transform: none; filter: grayscale(.4); }

/* ---------- hero ---------- */
.ep-hero {
  position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center;
  color: #fff; overflow: hidden; background: var(--ep-ink-950); text-align: center;
  padding: calc(var(--ep-header-h) + 90px) 0 150px;
}
.ep-hero__slides, .ep-hero__slide { position: absolute; inset: 0; }
.ep-hero__slide { background-size: cover; background-position: center; opacity: 0; transform: scale(1.12); transition: opacity 1.8s ease; will-change: transform, opacity; }
.ep-hero__slide.is-on { opacity: 1; animation: epKen 14s ease-out forwards; }
@keyframes epKen { from { transform: scale(1.12); } to { transform: scale(1); } }
.ep-hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    radial-gradient(ellipse at 50% 55%, rgba(23, 9, 7, .3) 0%, rgba(23, 9, 7, .8) 78%),
    linear-gradient(180deg, rgba(23, 9, 7, .65) 0%, rgba(110, 11, 18, .25) 45%, rgba(23, 9, 7, .95) 100%);
}
.ep-hero__glow { position: absolute; z-index: 2; width: 560px; height: 560px; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, rgba(242, 130, 24, .26), transparent 65%); transform: translate(-50%, -50%); left: 50%; top: 50%; }
.ep-embers { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; pointer-events: none; }
.ep-hero__in { position: relative; z-index: 3; max-width: 1000px; }

/* hanging fiesta bunting */
.ep-bunting { position: absolute; z-index: 4; left: 0; right: 0; top: calc(var(--ep-header-h) + 48px); height: 70px; overflow: hidden; pointer-events: none; display: flex; justify-content: center; }
.ep-bunting::before { content: ""; position: absolute; left: 0; right: 0; top: 8px; height: 2px; background: rgba(255, 216, 115, .7); }
.ep-bunting i { flex: none; width: 0; height: 0; margin-top: 8px; border-left: 17px solid transparent; border-right: 17px solid transparent; border-top: 46px solid var(--c, var(--ep-red)); transform-origin: 50% -8px; animation: epSway 3.4s ease-in-out infinite alternate; animation-delay: var(--dl, 0s); filter: drop-shadow(0 6px 5px rgba(0, 0, 0, .4)); margin-inline: 3px; }
.ep-bunting i:nth-child(4n+1) { --c: var(--ep-red); }
.ep-bunting i:nth-child(4n+2) { --c: var(--ep-gold); }
.ep-bunting i:nth-child(4n+3) { --c: var(--ep-green-light); }
.ep-bunting i:nth-child(4n)   { --c: var(--ep-sand); }
@keyframes epSway { from { transform: rotate(-9deg); } to { transform: rotate(9deg); } }

.ep-eyebrow { display: inline-flex; align-items: center; gap: 16px; font: 700 13px/1 var(--ep-body); letter-spacing: .42em; text-transform: uppercase; color: var(--ep-gold-light); }
.ep-eyebrow::before, .ep-eyebrow::after { content: ""; width: 48px; height: 2px; background: var(--ep-red); border-radius: 2px; }
.ep-hero h1 { font-size: clamp(2.5rem, 5.6vw, 5rem); font-weight: 600; margin: 26px 0 10px; color: #fff !important; text-shadow: 0 6px 40px rgba(0, 0, 0, .55); }
.ep-hero h1 .ep-word { display: inline-block; overflow: hidden; vertical-align: bottom; padding: 0 .04em .14em; }
.ep-hero h1 .ep-word > span { display: inline-block; transform: translateY(110%); animation: epRise 1.2s var(--ep-ease) forwards; }
.ep-hero h1 em { font-style: italic; font-weight: 500; background: var(--ep-gold-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--ep-gold); text-shadow: none; filter: drop-shadow(0 4px 24px rgba(242, 130, 24, .45)); }
@keyframes epRise { to { transform: none; } }
.ep-hero__sub { font-size: clamp(.95rem, 1.2vw, 1.1rem); color: rgba(255, 255, 255, .88); letter-spacing: .06em; }
.ep-open { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; padding: 10px 22px; border-radius: 40px; font-size: 13.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; background: rgba(255, 255, 255, .09); border: 1px solid rgba(255, 216, 115, .4); backdrop-filter: blur(8px); }
.ep-open i { color: var(--ep-gold-light); font-size: 18px; }
.ep-hero__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 40px; }

.ep-scroll { position: absolute; z-index: 3; left: 50%; bottom: 110px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 10px; color: rgba(255, 255, 255, .7); font-size: 11px; letter-spacing: .4em; text-transform: uppercase; }
.ep-scroll span { width: 24px; height: 40px; border: 1.5px solid rgba(255, 255, 255, .5); border-radius: 14px; position: relative; }
.ep-scroll span::after { content: ""; position: absolute; left: 50%; top: 7px; width: 3px; height: 8px; border-radius: 3px; background: var(--ep-gold); transform: translateX(-50%); animation: epWheel 1.8s infinite; }
@keyframes epWheel { 0% { opacity: 1; transform: translate(-50%, 0); } 100% { opacity: 0; transform: translate(-50%, 14px); } }

.ep-dots { position: absolute; z-index: 3; right: 4%; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 12px; }
.ep-dots button { width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid #fff; background: transparent; padding: 0; cursor: pointer; transition: .3s; }
.ep-dots button.is-on { background: var(--ep-gold); border-color: var(--ep-gold); transform: scale(1.4); }

/* floating info strip */
.ep-info { position: relative; z-index: 5; margin-top: -78px; }
.ep-info__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); background: var(--ep-ink-900); border-radius: var(--ep-radius); overflow: hidden; border: 1px solid rgba(242, 180, 24, .35); box-shadow: var(--ep-shadow); position: relative; }
.ep-info__grid::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: linear-gradient(90deg, var(--ep-red) 0 33%, var(--ep-gold) 33% 66%, var(--ep-green-light) 66%); }
.ep-info__item { display: flex; align-items: center; gap: 18px; padding: 32px 30px 28px; color: #fff; border-right: 1px solid rgba(242, 180, 24, .2); position: relative; transition: background .4s; }
.ep-info__item:last-child { border-right: 0; }
.ep-info__item:hover { background: var(--ep-ink-800); }
.ep-info__item i { flex: none; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--ep-gold); color: var(--ep-gold-light); font-size: 26px; transition: .4s var(--ep-ease); }
.ep-info__item:hover i { background: var(--ep-red); border-color: var(--ep-red); color: #fff; transform: rotate(-10deg) scale(1.08); }
.ep-info__item small { display: block; font-size: 11.5px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--ep-gold-light); }
.ep-info__item strong { font: 500 1.05rem/1.35 var(--ep-body); color: #fff; word-break: break-word; }
.ep-info__item a { color: #fff; }
.ep-info__item a:hover { color: var(--ep-gold-light); }

/* ---------- section scaffolding ---------- */
.ep-section { padding: clamp(80px, 11vw, 150px) 0; position: relative; }
.ep-head { text-align: center; max-width: 760px; margin: 0 auto 64px; }
.ep-head .ep-eyebrow { color: var(--ep-accent); }
.ep-head .ep-eyebrow::before, .ep-head .ep-eyebrow::after { background: var(--ep-green); }
.ep-head h2 { font-size: clamp(2rem, 3.6vw, 3rem); margin: 18px 0 0; color: var(--ep-ink-900); }
.ep-head h2 em, .ep-title em { font-style: italic; font-weight: 500; color: var(--ep-accent); }
.ep-orn { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 20px; color: var(--ep-accent); }
.ep-orn::before, .ep-orn::after { content: ""; width: 70px; height: 2px; background: linear-gradient(90deg, transparent, var(--ep-red)); border-radius: 2px; }
.ep-orn::after { transform: scaleX(-1); }
.ep-orn i { font-size: 22px; }
.ep-dark .ep-head h2 { color: #fff; }
.ep-dark .ep-head .ep-eyebrow { color: var(--ep-gold-light); }
.ep-dark .ep-head .ep-eyebrow::before, .ep-dark .ep-head .ep-eyebrow::after { background: var(--ep-red); }
.ep-dark .ep-orn { color: var(--ep-gold); }
.ep-dark .ep-orn::before, .ep-dark .ep-orn::after { background: linear-gradient(90deg, transparent, var(--ep-gold)); }

/* decorative bg pattern (tiny diamonds — talavera tile feel) */
.ep-pattern::before {
  content: ""; position: absolute; inset: 0; opacity: .6; pointer-events: none;
  background-image: radial-gradient(rgba(217, 30, 40, .16) 1.4px, transparent 1.6px), radial-gradient(rgba(47, 143, 58, .14) 1.4px, transparent 1.6px);
  background-size: 34px 34px; background-position: 0 0, 17px 17px;
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 20%, #000 80%, transparent);
  mask-image: linear-gradient(180deg, transparent, #000 20%, #000 80%, transparent);
}

/* ---------- marquee ---------- */
.ep-marquee { background: var(--ep-red-grad); color: #fff; overflow: hidden; padding: 18px 0; margin-top: 90px; position: relative; box-shadow: 0 -10px 30px -14px rgba(168, 18, 27, .6); }
.ep-marquee::before, .ep-marquee::after { content: ""; position: absolute; left: 0; right: 0; height: 6px; background: repeating-linear-gradient(90deg, var(--ep-gold) 0 14px, transparent 14px 28px); opacity: .85; }
.ep-marquee::before { top: 4px; } .ep-marquee::after { bottom: 4px; }
.ep-marquee__track { display: flex; width: max-content; animation: epMarquee 38s linear infinite; }
.ep-marquee:hover .ep-marquee__track { animation-play-state: paused; }
.ep-marquee span { display: inline-flex; align-items: center; gap: 28px; padding-right: 28px; font: 600 1.2rem/1 var(--ep-head); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.ep-marquee i { font-size: 22px; color: var(--ep-gold-light); }
@keyframes epMarquee { to { transform: translateX(-50%); } }

/* ---------- about ---------- */
.ep-about { background: var(--ep-ivory); }
.ep-about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 7vw, 110px); align-items: center; position: relative; }
.ep-collage { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding-bottom: 40px; }
.ep-collage figure { margin: 0; position: relative; border-radius: 200px 200px 18px 18px; overflow: hidden; box-shadow: var(--ep-shadow); }
.ep-collage figure img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--ep-ease); }
.ep-collage figure:hover img { transform: scale(1.08); }
.ep-collage .c1 { grid-row: span 2; aspect-ratio: 3/4.6; }
.ep-collage .c2 { aspect-ratio: 1/1.05; border-radius: 18px; margin-top: 60px; }
.ep-collage .c3 { aspect-ratio: 1/1.25; border-radius: 18px 18px 120px 18px; }
.ep-collage::before { content: ""; position: absolute; inset: -22px 22% 12px -22px; border: 2px dashed var(--ep-red); opacity: .55; border-radius: 200px 200px 24px 24px; z-index: -1; }
.ep-badge { position: absolute; z-index: 3; left: 50%; bottom: 0; transform: translateX(-50%); width: 120px; height: 120px; border-radius: 50%; display: grid; place-items: center; background: var(--ep-red-grad); color: #fff; border: 4px solid var(--ep-ivory); box-shadow: var(--ep-shadow); font-size: 46px; }
.ep-badge::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; border: 1.5px dashed var(--ep-gold-light); animation: epSpin 24s linear infinite; }
.ep-badge i { animation: epWiggle 3s ease-in-out infinite; }
@keyframes epSpin { to { transform: rotate(360deg); } }
@keyframes epWiggle { 50% { transform: rotate(14deg) scale(1.08); } }
.ep-title { font-size: clamp(2rem, 3.4vw, 2.8rem); color: var(--ep-ink-900); margin: 18px 0 24px; }
.ep-about .ep-eyebrow { color: var(--ep-accent); }
.ep-about .ep-eyebrow::before { background: var(--ep-green); }
.ep-about .ep-eyebrow::after { display: none; }
.ep-rich { color: var(--ep-text); }
.ep-rich p { margin-bottom: 1.1em; }
.ep-rich blockquote { margin: 0; padding: 0; border: 0; font: inherit; color: inherit; quotes: none; }
.ep-rich blockquote p { margin: 0 0 1.1em; }
.ep-rich > p:first-child, .ep-rich blockquote:first-child > p:first-child { font: italic 500 1.2rem/1.5 var(--ep-head); color: var(--ep-ink-800); padding-left: 24px; border-left: 4px solid var(--ep-red); margin-bottom: 1.3em; }
.ep-rich a { color: var(--ep-accent); }
.ep-features { display: flex; flex-wrap: wrap; gap: 14px; margin: 30px 0 38px; padding: 0; list-style: none; }
.ep-features li { display: inline-flex; align-items: center; gap: 10px; padding: 11px 20px; border-radius: 40px; background: #fff; border: 1px solid var(--ep-line); font-weight: 500; color: var(--ep-ink-800); transition: .35s var(--ep-ease); }
.ep-features li:hover { background: var(--ep-red); border-color: var(--ep-red); color: #fff; transform: translateY(-4px); }
.ep-features i { color: var(--ep-red); font-size: 22px; transition: color .3s; }
.ep-features li:hover i { color: var(--ep-gold-light); }

/* ---------- menu categories ---------- */
.ep-menu-sec { background: var(--ep-ink-900); color: #fff; overflow: hidden; }
.ep-menu-sec::before { content: ""; position: absolute; left: 0; right: 0; top: 0; }
.ep-menu-sec::after { content: ""; position: absolute; width: 760px; height: 760px; right: -280px; top: -280px; border-radius: 50%; background: radial-gradient(circle, rgba(217, 30, 40, .28), transparent 65%); pointer-events: none; }
.ep-cats { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 28px; position: relative; z-index: 1; }
.ep-cat { position: relative; display: block; border-radius: var(--ep-radius); overflow: hidden; color: #fff !important; aspect-ratio: 4/5; isolation: isolate; border: 1px solid rgba(242, 180, 24, .3); transform-style: preserve-3d; transition: transform .5s var(--ep-ease), box-shadow .5s, border-color .5s; }
.ep-cat img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.2s var(--ep-ease); }
.ep-cat::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(23, 9, 7, .05) 25%, rgba(23, 9, 7, .93)); transition: .5s; }
.ep-cat:hover img { transform: scale(1.12); }
.ep-cat:hover::before { background: linear-gradient(180deg, rgba(110, 11, 18, .3), rgba(23, 9, 7, .96)); }
.ep-cat:hover { box-shadow: 0 40px 70px -30px #000, 0 0 0 1px var(--ep-gold); border-color: var(--ep-gold); }
.ep-cat__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 30px 32px; transition: transform .5s var(--ep-ease); }
.ep-cat__num { font: italic 500 1.2rem var(--ep-head); color: var(--ep-gold-light); letter-spacing: .1em; }
.ep-cat h3 { font-size: 2rem; margin: 4px 0 0; color: #fff !important; text-transform: capitalize; }
.ep-cat__more { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 12.5px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--ep-gold-light); max-height: 0; opacity: 0; overflow: hidden; transition: .5s var(--ep-ease); }
.ep-cat:hover .ep-cat__more { max-height: 30px; opacity: 1; }
.ep-cat__corner { position: absolute; top: 20px; right: 20px; width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 248, 232, .14); backdrop-filter: blur(8px); border: 1px solid rgba(255, 255, 255, .3); font-size: 22px; transition: .5s var(--ep-ease); }
.ep-cat:hover .ep-cat__corner { background: var(--ep-red); border-color: var(--ep-red); transform: rotate(45deg); }
/* menu showcase: big typographic list + arch image stage */
.ep-showcase { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(30px, 6vw, 90px); align-items: center; position: relative; z-index: 1; }
.ep-showcase__list { list-style: none; margin: 0; padding: 0; counter-reset: d; }
.ep-dish { position: relative; display: flex; align-items: center; gap: 22px; padding: 20px 8px; color: rgba(255, 255, 255, .55) !important; border-bottom: 1px solid rgba(242, 180, 24, .22); overflow: hidden; transition: color .4s, padding .5s var(--ep-ease); }
.ep-dish::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(217, 30, 40, .35), transparent 80%); transform: translateX(-101%); transition: transform .6s var(--ep-ease); z-index: -1; }
.ep-dish__num { font: italic 500 1.1rem var(--ep-head); color: var(--ep-gold); min-width: 34px; }
.ep-dish h3 { flex: 1; margin: 0; font-size: clamp(1.4rem, 2.4vw, 2.1rem); font-weight: 500; text-transform: capitalize; color: inherit !important; transition: transform .5s var(--ep-ease); }
.ep-dish__go { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .3); font-size: 20px; opacity: .6; transition: .5s var(--ep-ease); }
.ep-dish__thumb { display: none; }
.ep-dish.is-on, .ep-dish:hover { color: #fff !important; padding-left: 22px; }
.ep-dish.is-on::before, .ep-dish:hover::before { transform: none; }
.ep-dish.is-on h3, .ep-dish:hover h3 { transform: translateX(6px); font-style: italic; }
.ep-dish.is-on .ep-dish__go, .ep-dish:hover .ep-dish__go { background: var(--ep-gold); border-color: var(--ep-gold); color: var(--ep-ink-950); opacity: 1; transform: rotate(45deg); }
.ep-showcase__stage { position: relative; perspective: 1000px; }
.ep-showcase__frame { position: relative; aspect-ratio: 4/5; border-radius: 999px 999px 26px 26px; overflow: hidden; border: 2px solid var(--ep-gold); box-shadow: 0 0 0 10px rgba(242, 180, 24, .1), 0 40px 80px -30px #000; transition: transform .3s ease-out; transform-style: preserve-3d; }
.ep-showcase__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.15); transition: opacity .8s ease, transform 1.4s var(--ep-ease); }
.ep-showcase__frame img.is-on { opacity: 1; transform: scale(1); }
.ep-showcase__frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(23, 9, 7, .5)); pointer-events: none; }
.ep-stamp { position: absolute; z-index: 2; left: -34px; bottom: 40px; width: 92px; height: 92px; border-radius: 50%; display: grid; place-items: center; background: var(--ep-red-grad); color: #fff; font-size: 38px; border: 4px solid var(--ep-ink-900); box-shadow: 0 16px 30px -10px #000; }
.ep-stamp::before { content: ""; position: absolute; inset: 5px; border-radius: 50%; border: 1.5px dashed var(--ep-gold-light); animation: epSpin 18s linear infinite; }
.ep-mdots, .ep-mcount { display: none; }
.ep-menu-cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 60px; position: relative; z-index: 1; }

/* ---------- notice ---------- */
.ep-notice { background: var(--ep-cream); padding: 50px 0; text-align: center; border-block: 1px solid var(--ep-line); }
.ep-notice i { font-size: 38px; color: var(--ep-red); }
.ep-notice h3 { color: var(--ep-ink-900); font-size: 1.6rem; margin: 8px 0; }

/* ---------- gallery ---------- */
.ep-gallery { background: var(--ep-sand); }
.ep-gallery .ep-orn { color: var(--ep-red-dark); }
.ep-masonry { columns: 3 320px; column-gap: 22px; }
.ep-shot { position: relative; display: block; margin: 0 0 22px; border-radius: 18px; overflow: hidden; cursor: zoom-in; break-inside: avoid; box-shadow: 0 20px 40px -22px rgba(23, 9, 7, .7); border: 5px solid #fff8e8; }
.ep-shot img { width: 100%; display: block; transition: transform 1.1s var(--ep-ease); }
.ep-shot::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(110, 11, 18, .78)); opacity: 0; transition: opacity .5s; }
.ep-shot__ico { position: absolute; z-index: 2; left: 50%; top: 50%; width: 66px; height: 66px; display: grid; place-items: center; border-radius: 50%; background: var(--ep-gold); color: var(--ep-ink-950); font-size: 28px; transform: translate(-50%, -30%) scale(.4); opacity: 0; transition: .5s var(--ep-ease); }
.ep-shot:hover img { transform: scale(1.1); }
.ep-shot:hover::after { opacity: 1; }
.ep-shot:hover .ep-shot__ico { opacity: 1; transform: translate(-50%, -50%) scale(1); }

/* lightbox */
.ep-lb { position: fixed; inset: 0; z-index: 100000; background: rgba(12, 4, 3, .95); backdrop-filter: blur(8px); display: grid; place-items: center; opacity: 0; visibility: hidden; transition: .4s; }
.ep-lb.is-open { opacity: 1; visibility: visible; }
.ep-lb img { max-width: 90vw; max-height: 86vh; border-radius: 12px; box-shadow: 0 40px 100px #000; transform: scale(.94); transition: transform .5s var(--ep-ease), opacity .3s; }
.ep-lb.is-open img { transform: none; }
.ep-lb button { position: absolute; width: 54px; height: 54px; border-radius: 50%; border: 1px solid rgba(242, 180, 24, .4); background: rgba(255, 255, 255, .06); color: #fff; font-size: 24px; cursor: pointer; display: grid; place-items: center; transition: .3s; }
.ep-lb button:hover { background: var(--ep-red); border-color: var(--ep-red); }
.ep-lb__x { top: 22px; right: 22px; }
.ep-lb__p { left: 22px; top: 50%; transform: translateY(-50%); }
.ep-lb__n { right: 22px; top: 50%; transform: translateY(-50%); }
.ep-lb__c { position: absolute; bottom: 24px; left: 0; right: 0; text-align: center; color: var(--ep-gold-light); letter-spacing: .3em; font-size: 13px; }

/* ---------- app download ---------- */
.ep-app { background: linear-gradient(120deg, var(--ep-red-deep), var(--ep-ink-900) 70%); color: #fff; overflow: hidden; }
.ep-app::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 216, 115, .14) 1.4px, transparent 1.6px); background-size: 30px 30px; pointer-events: none; }
.ep-app__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; position: relative; }
.ep-app .ep-eyebrow { color: var(--ep-gold-light); }
.ep-app h2 { color: #fff; font-size: clamp(1.9rem, 3.2vw, 2.7rem); margin: 18px 0 30px; }
.ep-store { display: flex; flex-wrap: wrap; gap: 14px; }
.ep-store a { display: inline-flex; align-items: center; gap: 14px; padding: 12px 26px; border-radius: 16px; background: #fff8e8; color: var(--ep-ink-950) !important; border: 1px solid var(--ep-line); transition: .35s var(--ep-ease); }
.ep-store a:hover { transform: translateY(-5px); background: var(--ep-gold-light); }
.ep-store i { font-size: 34px; }
.ep-store small { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; line-height: 1.1; opacity: .7; }
.ep-store strong { font: 700 1.3rem/1.1 var(--ep-body); }
.ep-phones { display: flex; gap: 22px; justify-content: center; }
.ep-phone { width: min(230px, 40%); padding: 8px; border-radius: 34px; background: #0a0a0a; border: 2px solid var(--ep-gold); box-shadow: var(--ep-shadow); animation: epFloat 6s ease-in-out infinite; }
.ep-phone:nth-child(2) { margin-top: 50px; animation-delay: -3s; }
.ep-phone img { width: 100%; border-radius: 26px; display: block; }
@keyframes epFloat { 50% { transform: translateY(-16px); } }

/* ---------- contact ---------- */
.ep-contact { background: var(--ep-cream); }
.ep-contact.ep-section { padding: clamp(60px, 8vw, 100px) 0; }
.ep-contact .ep-head { margin-bottom: 38px; }
.ep-contact .ep-head h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin-top: 10px; }
.ep-contact .ep-orn { margin-top: 10px; }
.ep-contact__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 24px; align-items: stretch; }
.ep-card { background: #fff; border-radius: 24px; padding: clamp(22px, 2.6vw, 34px); box-shadow: var(--ep-shadow); border: 1px solid var(--ep-line); position: relative; }
.ep-card--dark { background: var(--ep-ink-900); color: #fff; border-color: rgba(242, 180, 24, .35); overflow: hidden; }
.ep-card--dark::after { content: ""; position: absolute; width: 300px; height: 300px; right: -120px; bottom: -120px; border-radius: 50%; border: 1px solid rgba(242, 180, 24, .35); box-shadow: 0 0 0 40px rgba(217, 30, 40, .08), 0 0 0 80px rgba(217, 30, 40, .05); pointer-events: none; }
.ep-card h3 { font-size: 1.6rem; color: var(--ep-ink-900); }
.ep-card--dark h3, .ep-card--dark h4 { color: #fff; }
body.ep main { overflow-x: clip; }

.ep-radios { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.ep-radios label { cursor: pointer; margin: 0; padding: 0; }
.ep-radios input { position: absolute; opacity: 0; pointer-events: none; }
.ep-radios span { display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; font-size: 15px; border-radius: 40px; border: 1.5px solid var(--ep-line); font-weight: 600; color: var(--ep-ink-800); transition: .3s var(--ep-ease); }
.ep-radios input:checked + span { background: var(--ep-red-grad); color: #fff; border-color: var(--ep-red); box-shadow: 0 12px 24px -12px rgba(168, 18, 27, .8); }

.ep-field { position: relative; margin-bottom: 12px; }
.ep .ep-field .form-control, .ep .ep-field .form-select, .ep .ep-phonebox .form-control { width: 100%; height: 50px; padding: 20px 16px 6px; font-size: 15px; border-radius: 12px; border: 1.5px solid #e7cf9f; background: var(--ep-ivory); font-family: var(--ep-body); color: var(--ep-ink); transition: .3s; box-shadow: none; appearance: none; }
.ep .ep-field textarea.form-control { min-height: 90px; height: 90px; padding-top: 22px; resize: vertical; }
.ep .ep-field .form-control:focus, .ep .ep-phonebox .form-control:focus, .ep .ep-phonebox:focus-within { border-color: var(--ep-red); background: #fff; box-shadow: 0 0 0 4px rgba(217, 30, 40, .14); outline: 0; }
.ep-field label { position: absolute; left: 16px; top: 14px; font-size: 15px; color: var(--ep-muted); pointer-events: none; transition: .25s var(--ep-ease); transform-origin: left top; margin: 0; }
.ep-field .form-control:focus ~ label, .ep-field .form-control:not(:placeholder-shown) ~ label { transform: translateY(-11px) scale(.78); color: var(--ep-accent); }
.ep-field .form-control::placeholder { color: transparent; }
.ep-field select.form-control ~ label { transform: translateY(-11px) scale(.78); color: var(--ep-accent); }
.ep-field select.form-control { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23c8202b' viewBox='0 0 256 256'%3E%3Cpath d='M213.7 101.7l-80 80a8 8 0 01-11.4 0l-80-80a8 8 0 0111.4-11.4L128 164.7l74.3-74.4a8 8 0 0111.4 11.4z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 18px center; }
.ep-phonebox { display: flex; margin-bottom: 12px; border-radius: 12px; border: 1.5px solid #e7cf9f; background: var(--ep-ivory); overflow: hidden; transition: .3s; }
.ep-phonebox .pre { white-space: nowrap; flex: none; display: grid; place-items: center; padding: 0 18px; background: var(--ep-ink-900); color: var(--ep-gold-light); font-weight: 600; }
.ep .ep-phonebox .form-control { border: 0; border-radius: 0; background: transparent; padding: 0 18px; height: 48px; box-shadow: none !important; }
.ep-captcha { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch; }
.ep-captcha .captcha { display: grid !important; place-items: center; height: 50px !important; border-radius: 12px; font: 700 1.25rem var(--ep-head); letter-spacing: .12em; background: repeating-linear-gradient(135deg, var(--ep-red-dark) 0 12px, var(--ep-red) 12px 24px); color: #fff; width: 100% !important; }
.ep-card #msg { color: #c0392b; font-size: 12px; margin: 4px 0 0; }
.ep-alert { border-radius: 14px; padding: 16px 20px; margin-bottom: 16px; font-weight: 500; }
.ep-alert.alert-danger { background: #fdecea; color: #a1281c; border: 1px solid #f5c6c1; }
.ep-alert.alert-success { background: #e8f6ee; color: #1b6b3a; border: 1px solid #b9e2c9; }
.ep-submit { width: 100%; padding: 15px; font-size: 14px; }

.ep-aside { display: flex; flex-direction: column; gap: 14px; }
.ep-aside .ep-card--dark { flex: 0 0 auto; padding: 18px 22px; }
.ep-aside .ep-card--dark h3 { font-size: 1.4rem; margin: 0; }
.ep-contact-list { list-style: none; margin: 0; padding: 0; position: relative; z-index: 1; }
.ep-contact-list li { display: flex; gap: 12px; align-items: center; padding: 7px 0; border-bottom: 1px solid rgba(242, 180, 24, .2); }
.ep-contact-list li:last-child { border: 0; }
.ep-contact-list i { flex: none; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: rgba(217, 30, 40, .25); color: var(--ep-gold-light); font-size: 17px; }
.ep-contact-list li > div { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; font-size: 14.5px; line-height: 1.35; }
.ep-contact-list small { min-width: 64px; display: block; color: var(--ep-gold-light); font-size: 10.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.ep-contact-list a { color: #fff; }
.ep-contact-list a:hover { color: var(--ep-gold-light); }
.ep-contact-list br { display: none; }
.ep-contact-list li > div a + a { margin-left: 10px; }
.ep-hours-grid { display: grid; grid-template-columns: 1fr; gap: 0 18px; position: relative; z-index: 1; }
.ep-hours-title { display: flex; align-items: center; gap: 10px; margin: 10px 0 0; font-size: 1.1rem; position: relative; z-index: 1; }
.ep-hours-title i { color: var(--ep-gold); }
.ep-hours { list-style: none; margin: 4px 0 0; padding: 0; position: relative; z-index: 1; }
.ep-hours li { display: flex; justify-content: space-between; gap: 12px; padding: 3px 10px; border-radius: 10px; font-size: 14px; line-height: 1.4; color: rgba(255, 255, 255, .78); transition: .3s; }
.ep-hours li:hover { background: rgba(255, 255, 255, .05); }
.ep-hours li.is-today { background: var(--ep-gold-grad); color: var(--ep-ink-950); font-weight: 700; }
.ep-map { flex: 1 1 auto; min-height: 150px; border-radius: 20px; overflow: hidden; border: 3px solid var(--ep-red); box-shadow: var(--ep-shadow); position: relative; z-index: 1; }
.ep-map iframe { width: 100%; height: 100%; min-height: 150px; border: 0; filter: sepia(.35) saturate(1.1) contrast(1.02); transition: filter .5s; }
.ep-map:hover iframe { filter: none; }

/* ---------- footer ---------- */
.ep-footer { background: var(--ep-ink-950); color: rgba(255, 255, 255, .75); padding: 0; position: relative; overflow: hidden; font-size: 14px; }
.ep-footer .ep-zig { --zw: 22px; }
.ep-footer__grid { display: flex; align-items: center; justify-content: space-between; gap: 16px 28px; flex-wrap: wrap; padding: 34px 0 20px; }
.ep-footer__logo { display: inline-block; background: var(--ep-sand); border-radius: 18px; padding: 8px 18px; border: 2px solid var(--ep-gold); }
.ep-footer__logo img { height: 48px; display: block; mix-blend-mode: multiply; }
.ep-footer h4 { display: none; }
.ep-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 22px; }
.ep-footer li { margin: 0; }
.ep-footer a { color: rgba(255, 255, 255, .78); }
.ep-footer a:hover { color: var(--ep-gold-light); }
.ep-footer li i { color: var(--ep-gold); margin-right: 8px; vertical-align: -2px; }
.ep-footer .ep-social { margin-top: 18px; }
.ep-footer__bar { border-top: 1px solid rgba(242, 180, 24, .2); padding: 14px 70px 14px 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; font-size: 13px; }
.ep-footer__bar a { color: var(--ep-gold-light); }
.ep-pay { background: #fff; padding: 12px; text-align: center; }
.ep-pay img { max-width: 60%; }

/* ---------- floating bits ---------- */
.ep-top { position: fixed; right: 24px; bottom: 24px; z-index: 900; width: 54px; height: 54px; border-radius: 50%; border: 0; cursor: pointer; background: var(--ep-red-grad); color: #fff; font-size: 22px; display: grid; place-items: center; box-shadow: 0 16px 30px -10px rgba(0, 0, 0, .55), 0 0 0 3px var(--ep-gold); opacity: 0; visibility: hidden; transform: translateY(20px); transition: .4s var(--ep-ease); }
.ep-top.is-on { opacity: 1; visibility: visible; transform: none; }
.ep-top:hover { transform: translateY(-5px); }
.ep-fab { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%) translateY(120px); z-index: 899; transition: transform .5s var(--ep-ease); display: none; }
.ep-fab.is-on { transform: translateX(-50%); }

/* ---------- PWA install card ---------- */
.ep-install { position: fixed; left: 20px; bottom: 20px; z-index: 950; display: flex; align-items: center; gap: 14px; max-width: min(440px, calc(100vw - 32px)); padding: 12px 40px 12px 12px; border-radius: 20px; background: var(--ep-ink-900); color: #fff; border: 1px solid rgba(242, 180, 24, .5); box-shadow: 0 24px 50px -18px #000; transform: translateY(140%); opacity: 0; transition: transform .6s var(--ep-ease), opacity .6s; }
.ep-install[hidden] { display: none; }
.ep-install.is-on { transform: none; opacity: 1; }
.ep-install img { width: 52px; height: 52px; border-radius: 14px; flex: none; }
.ep-install__txt { display: flex; flex-direction: column; line-height: 1.3; font-size: 13px; color: rgba(255, 255, 255, .75); min-width: 0; }
.ep-install__txt strong { font: 600 1rem var(--ep-head); color: #fff; }
.ep-install .ep-btn { flex: none; }
.ep-install__x { position: absolute; top: 6px; right: 6px; width: 28px; height: 28px; border: 0; background: transparent; color: rgba(255, 255, 255, .6); font-size: 16px; cursor: pointer; }
.ep-install__x:hover { color: #fff; }
@media (max-width: 991px) { .ep-install { left: 16px; right: 16px; bottom: 84px; max-width: none; } }

/* ---------- reveal animations ---------- */
[data-reveal] { opacity: 0; transition: opacity 1s var(--ep-ease), transform 1s var(--ep-ease), clip-path 1.2s var(--ep-ease); transition-delay: var(--d, 0s); will-change: transform, opacity; }
[data-reveal="up"] { transform: translateY(50px); }
[data-reveal="down"] { transform: translateY(-40px); }
[data-reveal="left"] { transform: translateX(-70px); }
[data-reveal="right"] { transform: translateX(70px); }
[data-reveal="zoom"] { transform: scale(.88); }
[data-reveal].is-in { opacity: 1; transform: none; clip-path: inset(0 0 0 0); }

/* ---------- vacation modal restyle ---------- */
.ep .modal-content { border-radius: 26px !important; border: 2px solid var(--ep-red) !important; background: var(--ep-ivory) !important; color: var(--ep-ink) !important; overflow: hidden; }
.ep .modal-title { font-family: var(--ep-head) !important; font-size: 1.5rem; color: var(--ep-ink-900); }
.ep .btn-clsvmodel { color: var(--ep-ink-900); font-size: 26px; cursor: pointer; }
.ep .modal-body { padding: 18px 24px 28px !important; }
.ep .daterangepicker { border-radius: 16px; border: 1px solid var(--ep-line); font-family: var(--ep-body); }

/* ---------- responsive ---------- */
@media (min-width: 1200px) {
  .ep-hours-grid { grid-template-columns: 1fr 1fr; }
  .ep-hours li { padding: 3px 8px; font-size: 13.5px; gap: 6px; }
}
@media (max-width: 1280px) {
  .ep-info__grid { grid-template-columns: repeat(2, 1fr); }
  .ep-info__item:nth-child(2) { border-right: 0; }
  .ep-info__item:nth-child(-n+2) { border-bottom: 1px solid rgba(242, 180, 24, .2); }
}
@media (max-width: 1100px) {
  .ep-menu a { padding: 10px 10px; font-size: 12px; letter-spacing: .1em; }
}
@media (max-width: 991px) {
  :root { --ep-header-h: 76px; }
  .ep-brand img { height: 60px; }
  .ep-burger { display: block; }
  .ep-header__cta { display: none; }
  .ep-nav { position: fixed; inset: 0; z-index: 1100; background: radial-gradient(circle at 80% 10%, var(--ep-red-deep), var(--ep-ink-950) 70%); display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 30px; clip-path: circle(0 at calc(100% - 44px) 42px); transition: clip-path .8s var(--ep-ease); visibility: hidden; }
  .ep-nav.is-open { clip-path: circle(150% at calc(100% - 44px) 42px); visibility: visible; }
  .ep-menu { flex-direction: column; gap: 4px; }
  .ep-menu a { color: #fff; font: 600 1.9rem/1.3 var(--ep-head); letter-spacing: 0; text-transform: none; text-align: center; }
  .ep-menu a::after { display: none; }
  .ep-menu a:hover, .ep-menu a.is-active { color: var(--ep-gold-light); }
  .ep-about__grid, .ep-contact__grid, .ep-app__grid { grid-template-columns: 1fr; }
  .ep-collage { max-width: 560px; margin-inline: auto; }
  .ep-dots { display: none; }
  .ep-fab { display: block; }
  .ep-bunting { top: calc(var(--ep-header-h) + 44px); }
  .ep-footer__grid { flex-direction: column; align-items: flex-start; }
  .ep-footer ul { flex-direction: column; justify-content: flex-start; flex-wrap: nowrap; }
  .ep-footer__bar { padding-right: 0; }
  .ep-map { min-height: 240px; }
}
@media (max-width: 991px) {
  .ep-showcase { grid-template-columns: 1fr; }
  .ep-showcase__stage { display: none; }
  .ep-showcase { display: block; }
  /* swipeable arch-card carousel */
  .ep-showcase__list { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin-inline: -4vw; padding: 26px 14vw 34px; }
  .ep-showcase__list::-webkit-scrollbar { display: none; }
  .ep-showcase__list li { flex: 0 0 72%; max-width: 330px; scroll-snap-align: center; }
  .ep-dish { display: block; height: 0; padding: 0 0 130% !important; border: 2px solid rgba(242, 180, 24, .55); border-radius: 999px 999px 24px 24px; background: var(--ep-ink-800); color: #fff !important; transform: scale(.9); opacity: .6; transition: transform .5s var(--ep-ease), opacity .5s, border-color .5s, box-shadow .5s; isolation: isolate; }
  .ep-dish.is-on { transform: scale(1); opacity: 1; border-color: var(--ep-gold); box-shadow: 0 30px 50px -22px #000, 0 0 0 6px rgba(242, 180, 24, .12); padding-left: 0 !important; }
  .ep-dish__thumb { display: block; position: absolute; inset: 0; z-index: -2; background-size: cover; background-position: center; transition: transform 1.2s var(--ep-ease); }
  .ep-dish.is-on .ep-dish__thumb { transform: scale(1.08); }
  .ep-dish::before { transform: none !important; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(23, 9, 7, .05) 35%, rgba(110, 11, 18, .55) 70%, rgba(23, 9, 7, .95)); }
  .ep-dish__num { position: absolute; top: 15%; left: 0; right: 0; text-align: center; font-size: 3.6rem; font-style: italic; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px rgba(255, 216, 115, .85); text-shadow: 0 6px 30px rgba(0, 0, 0, .4); }
  .ep-dish h3 { position: absolute; left: 18px; right: 18px; bottom: 26px; text-align: center; font-size: 1.7rem; transform: none !important; font-style: normal !important; text-shadow: 0 4px 20px rgba(0, 0, 0, .6); }
  .ep-dish h3::after { content: ""; display: block; width: 36px; height: 3px; margin: 10px auto 0; border-radius: 3px; background: var(--ep-red); transition: width .5s var(--ep-ease); }
  .ep-dish.is-on h3::after { width: 70px; background: var(--ep-gold); }
  .ep-dish__go { position: absolute; right: 12%; top: 46%; width: 44px; height: 44px; background: var(--ep-red); border-color: var(--ep-red); opacity: 1; transform: scale(.7); transition: .5s var(--ep-ease); }
  .ep-dish.is-on .ep-dish__go { transform: scale(1) rotate(0); background: var(--ep-gold); border-color: var(--ep-gold); color: var(--ep-ink-950); }
  .ep-mdots { display: flex !important; align-items: center; justify-content: center; gap: 8px; margin-top: -8px; }
  .ep-mdots b { width: 7px; height: 7px; border-radius: 7px; background: rgba(255, 255, 255, .3); transition: .4s var(--ep-ease); }
  .ep-mdots b.is-on { width: 26px; background: var(--ep-gold); }
  .ep-mcount { display: block; text-align: center; margin-top: 14px; font: italic 500 1rem var(--ep-head); color: var(--ep-gold-light); letter-spacing: .2em; }
}
@media (max-width: 640px) {
  body.ep { font-size: 16px; }
  .ep-topbar__hide-sm { display: none !important; }
  .ep-hero { padding-bottom: 150px; }
  .ep-bunting i { border-left-width: 13px; border-right-width: 13px; border-top-width: 36px; }
  .ep-eyebrow { letter-spacing: .26em; font-size: 11.5px; gap: 10px; }
  .ep-eyebrow::before, .ep-eyebrow::after { width: 22px; }
  .ep-info__grid { grid-template-columns: 1fr; }
  .ep-info__item { border-right: 0; border-bottom: 1px solid rgba(242, 180, 24, .2); padding: 22px; }
  .ep-captcha { grid-template-columns: 1fr; }
  .ep-scroll { display: none; }
  .ep-hero__cta .ep-btn { width: 100%; }
  .ep-collage .c2 { margin-top: 34px; }
  .ep-lb__p { left: 8px; } .ep-lb__n { right: 8px; }
  .ep-top { bottom: 82px; right: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  [data-reveal] { opacity: 1; transform: none; clip-path: none; }
  .ep-hero h1 .ep-word > span { transform: none; }
}
