:root { --ease-out: cubic-bezier(.23, 1, .32, 1); --ease-drawer: cubic-bezier(.32, .72, 0, 1); }
html { -webkit-tap-highlight-color: transparent; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: #FEFEFD; color: #1C1A18; font-family: 'Manrope', system-ui, sans-serif; -webkit-font-smoothing: antialiased; overscroll-behavior-y: none; }
*, *::before, *::after { box-sizing: border-box; }
img { display: block; max-width: 100%; }
a { color: #1C1A18; text-decoration: none; }
a:hover { color: #B3261E; }
h1, h2, h3, p { margin: 0; }
input, select, textarea { font-size: 16px; font-family: inherit; color: inherit; }
button, a, [role="button"] { touch-action: manipulation; }
button { font-family: inherit; -webkit-user-select: none; user-select: none; cursor: pointer; }
:focus-visible { outline: 3px solid #1a5fd0; outline-offset: 3px; border-radius: 8px; }
@keyframes ej-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }

.ej-site { min-height: 100vh; background: #FEFEFD; }
@media (max-width: 759.98px) { .ej-site { padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px)); } }

.skip-link { position: fixed; left: 12px; top: 12px; z-index: 200; padding: 10px 16px; border-radius: 999px; background: #1C1A18; color: #fff; transform: translateY(-160%); }
.skip-link:focus { transform: none; color: #fff; }

.ej-wrap { width: min(1200px, 100% - 40px); margin-inline: auto; }
.ej-section { padding-bottom: clamp(36px, 5vw, 64px); }
.ej-grow { flex: 1; }
.ej-muted { color: #5D5750; }
.ej-fine { font-size: 13px; line-height: 1.55; color: #5D5750; max-width: 70ch; }
.ej-mt16 { margin-top: 16px; } .ej-mt28 { margin-top: 28px; } .ej-mt30 { margin-top: 30px; } .ej-mt32 { margin-top: 32px; }

.ej-label { font-size: 11px; font-weight: 700; letter-spacing: .16em; color: #7A3B2E; }
.ej-eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 22px; font-size: 11px; font-weight: 700; letter-spacing: .16em; color: #7A3B2E; }
.ej-eyebrow-sm { flex-wrap: nowrap; margin-bottom: 12px; }
.ej-eyebrow-center { display: inline-flex; margin-bottom: 18px; }
.ej-eyebrow-sage { color: #3D5239; margin-bottom: 14px; }
.ej-chip { padding: 7px 12px; border-radius: 999px; background: #F3E4DA; }
.ej-eyebrow-sage .ej-chip { padding: 6px 11px; background: #EEF2EB; }
.ej-rule { width: 28px; height: 1.5px; background: currentColor; }
.ej-rule-sm { width: 22px; }
.ej-h2 { font: 400 clamp(1.9rem, 1.4rem + 1.8vw, 2.9rem)/1.08 'Gloock', serif; color: #1C1A18; }
.ej-h2-md { font: 400 clamp(1.7rem, 1.3rem + 1.4vw, 2.5rem)/1.1 'Gloock', serif; color: #1C1A18; }
.ej-h2-sm { margin: 14px 0 10px; font: 400 clamp(1.5rem, 1.25rem + 1vw, 2.1rem)/1.15 'Gloock', serif; }
.ej-script { display: inline-block; font: 400 1.22em/.9 'Allura', cursive; color: #B3261E; letter-spacing: 0; padding-right: .08em; }
.ej-script-sm { font: 400 1.25em/.9 'Allura', cursive; color: #B3261E; }

.ej-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: 999px; font-size: 15px; font-weight: 600; transition: transform .12s ease-out, background-color .2s; }
.ej-btn:active { transform: scale(.97); }
.ej-btn-dark { background: #1C1A18; color: #fff; }
.ej-btn-dark:hover { color: #fff; background: #34302c; }
.ej-btn-red { background: #B3261E; color: #fff; }
.ej-btn-red:hover { color: #fff; background: #931d17; }
.ej-btn-light { padding: 0 24px 0 8px; background: #fff; color: #1C1A18; box-shadow: 0 1px 2px rgba(28,26,24,.06), 0 10px 24px -14px rgba(28,26,24,.25); }
.ej-btn-pad { padding: 0 26px; }
.ej-btn-sm { min-height: 44px; padding: 0 18px; gap: 8px; font-size: 14px; }
.ej-btn-lg { min-height: 54px; padding: 0 28px; }
.ej-btn-ico { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #1C1A18; color: #fff; }
.ej-more { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; white-space: nowrap; }
.ej-more > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(28,26,24,.08); }
.ej-round { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(28,26,24,.08); }
.ej-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.ej-pills a { padding: 11px 16px; border-radius: 999px; background: #fff; border: 1px solid rgba(28,26,24,.1); font-size: 14px; font-weight: 600; }
.ej-pills a:active { transform: scale(.97); }
.ej-pills-lg { gap: 10px; margin-top: 20px; }
.ej-pills-lg a { display: inline-flex; align-items: center; min-height: 48px; padding: 0 20px; }

.ej-brand { display: inline-flex; align-items: center; min-width: 0; }
.ej-logo { display: block; width: auto; height: 36px; }
@media (max-width: 759.98px) { .ej-logo { height: 30px; } }

.ej-header { position: sticky; top: 0; z-index: 40; padding-top: env(safe-area-inset-top, 0px); background: rgba(254,254,253,.85); -webkit-backdrop-filter: blur(20px) saturate(170%); backdrop-filter: blur(20px) saturate(170%); transition: box-shadow .25s; }
.ej-header.is-scrolled { box-shadow: 0 1px 0 rgba(28,26,24,.08); }
.ej-header-in { width: min(1240px, 100% - 32px); margin-inline: auto; height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
@media (max-width: 759.98px) { .ej-header-in { height: 64px; } }
.ej-nav { display: flex; align-items: center; gap: 2px; padding: 5px; border-radius: 999px; background: #F7F6F3; box-shadow: 0 1px 0 rgba(28,26,24,.06); }
.ej-nav a { padding: 9px 15px; border-radius: 999px; font-size: 14px; font-weight: 500; color: #5D5750; transition: background-color .2s, color .2s; }
.ej-nav a:hover { color: #1C1A18; background: #ECE6E1; }
.ej-nav a.is-on { font-weight: 700; color: #1C1A18; background: #F3E4DA; }
.ej-header-cta { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 8px 0 20px; border-radius: 999px; background: #1C1A18; color: #fff; font-size: 14px; font-weight: 600; white-space: nowrap; transition: transform .12s ease-out; }
.ej-header-cta:hover { color: #fff; background: #34302c; }
.ej-header-cta:active { transform: scale(.97); }
.ej-header-cta span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #B3261E; }
.ej-menu-btn { flex: none; display: none; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 14px; background: #F7F6F3; color: #1C1A18; box-shadow: 0 1px 0 rgba(28,26,24,.06); transition: transform .12s ease-out; }
.ej-menu-btn:active { transform: scale(.92); }
.ej-header-actions { display: flex; align-items: center; gap: 8px; }
.ej-icon-btn { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #F7F6F3; color: #1C1A18; box-shadow: 0 1px 0 rgba(28,26,24,.06); transition: transform .12s ease-out, background-color .2s, color .2s; }
.ej-icon-btn:hover { background: #ECE6E1; color: #B3261E; }
.ej-icon-btn:active { transform: scale(.92); }
.ej-icon-btn.ej-icon-wa { background: #25D366; color: #fff; box-shadow: 0 8px 18px -8px rgba(18,140,74,.6); }
.ej-icon-btn.ej-icon-wa:hover { background: #1DA851; color: #fff; }
@media (max-width: 959.98px) {
  .ej-nav, .ej-header-cta { display: none; }
  .ej-header-actions { margin-left: auto; }
  .ej-menu-btn { display: grid; }
}

@media (max-width: 759.98px) { .ej-header-actions { display: none; } }

.ej-scrim { position: fixed; inset: 0; z-index: 55; background: rgba(28,26,24,.32); opacity: 0; pointer-events: none; transition: opacity .25s; }
.ej-scrim.is-open { opacity: 1; pointer-events: auto; }
.ej-sheet { position: fixed; top: 0; right: 0; bottom: 0; z-index: 60; width: min(88vw, 380px); overflow-y: auto; overscroll-behavior: contain; padding: calc(env(safe-area-inset-top, 0px) + 12px) 0 calc(24px + env(safe-area-inset-bottom, 0px)); background: #F7F6F3; visibility: hidden; transform: translateX(105%); transition: transform .42s cubic-bezier(.32,.72,0,1), visibility .42s; }
.ej-sheet.is-open { visibility: visible; transform: translateX(0); box-shadow: -24px 0 60px rgba(0,0,0,.18); }
.ej-sheet-head { display: flex; align-items: center; justify-content: space-between; padding: 4px 16px 12px 22px; }
.ej-sheet-head > span { font: 400 28px/1.1 'Gloock', serif; }
.ej-sheet-head button { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #ECEBE7; color: #1C1A18; }
.ej-sheet-head button:active { transform: scale(.92); }
.ej-sheet-nav { margin: 4px 16px 16px; background: #fff; border-radius: 20px; overflow: hidden; }
.ej-sheet-nav a { display: flex; align-items: center; justify-content: space-between; min-height: 54px; padding: 0 18px; border-top: 1px solid rgba(28,26,24,.08); color: #1C1A18; font-weight: 500; }
.ej-sheet-nav a:first-child { border-top: 0; }
.ej-sheet-nav a.is-on { color: #B3261E; font-weight: 700; }
.ej-sheet-nav a:active { background: #F2F1EE; }
.ej-sheet-cta { display: flex; align-items: center; justify-content: center; min-height: 52px; margin: 0 16px; border-radius: 999px; background: #B3261E; color: #fff; font-weight: 600; }
.ej-sheet-cta:hover { color: #fff; }
.ej-sheet-cta:active { transform: scale(.97); }
.ej-sheet-links { display: grid; gap: 4px; padding: 22px 22px 8px; }
.ej-sheet-links a { padding: 6px 0; font-weight: 600; }
.ej-sheet-ig { display: flex; align-items: center; gap: 10px; }
.ej-sheet-ig > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: linear-gradient(45deg, #FEDA75, #FA7E1E 30%, #D62976 60%, #962FBF); color: #fff; }
.ej-sheet-links p { margin: 6px 0 0; color: #5D5750; font-size: 13px; line-height: 1.5; }
.ej-sheet-legal { display: flex; gap: 20px; padding: 12px 22px; font-size: 13px; }
.ej-sheet-legal a { color: #5D5750; }

.ej-hero { width: min(1240px, 100% - 32px); margin-inline: auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: clamp(32px, 5vw, 72px); align-items: center; padding: clamp(12px, 3vw, 40px) 0 clamp(24px, 4vw, 48px); }
.ej-hero-copy { min-width: 0; padding-inline: clamp(0px, 1.5vw, 16px); animation: ej-rise .8s .1s cubic-bezier(.22,1,.36,1) both; }
.ej-hero h1 { font: 400 clamp(2.7rem, 1.6rem + 4.2vw, 5.1rem)/1.02 'Gloock', serif; letter-spacing: -.015em; color: #1C1A18; text-wrap: balance; }
.ej-hero-lead { margin-top: 24px !important; max-width: 46ch; font-size: clamp(1.02rem, .95rem + .3vw, 1.18rem); line-height: 1.6; color: #5D5750; text-wrap: pretty; }
.ej-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.ej-hero-actions .ej-btn { flex: 1 1 auto; max-width: 240px; }
.ej-hero-note { display: flex; align-items: center; gap: 12px; margin-top: 32px !important; font-size: 14px; color: #5D5750; line-height: 1.5; }
.ej-hero-note > span { flex: none; width: 9px; height: 9px; border-radius: 50%; background: #7E9A7A; box-shadow: 0 0 0 5px #DCE4D8; }
.ej-hero { overflow-x: clip; }
.ej-hero-art { position: relative; min-width: 0; justify-self: center; width: min(100%, 520px); animation: ej-rise .9s .2s cubic-bezier(.22,1,.36,1) both; }
.ej-blob { position: absolute; aspect-ratio: 1; border-radius: 50%; }
.ej-blob-sage { left: -6%; bottom: 12%; width: 46%; background: #DCE4D8; }
.ej-blob-blush { right: -5%; top: 8%; width: 30%; background: #F3E4DA; }
.ej-hero-photo { position: relative; aspect-ratio: 4/5; border-radius: 50% 50% 30px 30px / 34% 34% 30px 30px; overflow: hidden; background: #d9d5ce; box-shadow: 0 40px 80px -40px rgba(28,26,24,.55); -webkit-user-select: none; user-select: none; --x: 50%; --y: 50%; --r: 0px; }
.ej-hero-photo.is-reveal { cursor: crosshair; }
.ej-hero-base, .ej-hero-color { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.is-reveal .ej-hero-base { filter: grayscale(1) sepia(.12) contrast(1.06); }

.ej-hero-color { pointer-events: none;
  -webkit-mask-image: radial-gradient(circle at var(--x) var(--y), #000 max(0px, calc(var(--r) - var(--feather))), transparent var(--r));
  mask-image: radial-gradient(circle at var(--x) var(--y), #000 max(0px, calc(var(--r) - var(--feather))), transparent var(--r)); }
.ej-hero-hint { position: absolute; top: 22%; left: 50%; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.72); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); font-size: 11px; font-weight: 700; letter-spacing: .12em; color: #1C1A18; white-space: nowrap; transition: opacity .4s; pointer-events: none; }
.ej-hero-hint > span { width: 7px; height: 7px; border-radius: 50%; background: #B3261E; }

.ej-insta { width: min(1240px, 100% - 24px); margin-inline: auto; padding: clamp(16px, 3.5vw, 44px); border-radius: 36px; background: #F7F6F3; display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(240px, 1fr); gap: clamp(20px, 4vw, 56px); align-items: center; }
@media (max-width: 959.98px) { .ej-insta { grid-template-columns: 1fr; } }
.ej-ig-card { display: flex; align-items: center; gap: clamp(18px, 3.5vw, 44px); padding: clamp(18px, 3vw, 32px); border-radius: 28px; background: #fff; color: #000; box-shadow: 0 1px 2px rgba(28,26,24,.05), 0 30px 60px -44px rgba(28,26,24,.45); }
.ej-ig-avatar { flex: none; width: clamp(84px, 11vw, 150px); aspect-ratio: 1; padding: 4px; border-radius: 50%; background: linear-gradient(45deg, #FFD600, #FF7A00 30%, #FF0069 65%, #D300C5); transition: transform 200ms var(--ease-out); }
.ej-ig-avatar:active { transform: scale(.97); }
.ej-ig-logo { width: 100%; height: 100%; border-radius: 50%; border: 3px solid #fff; background: #8B4D0C; color: #fff; display: grid; place-items: center; align-content: center; gap: 2px; text-align: center; }
.ej-ig-mono { font: 400 clamp(1.7rem, .9rem + 2.6vw, 3.1rem)/.9 'Gloock', serif; letter-spacing: -.06em; }
.ej-ig-name { font-size: clamp(3.5px, .45vw, 6.5px); font-weight: 700; letter-spacing: .05em; margin-top: 6%; }
.ej-ig-num { font-size: clamp(3.5px, .42vw, 6px); letter-spacing: .3em; opacity: .9; }
.ej-ig-info { flex: 1; min-width: 0; }
.ej-ig-top { display: flex; align-items: center; gap: 12px; }
.ej-ig-handle { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 clamp(1.05rem, .9rem + .55vw, 1.35rem)/1.3 'Manrope', sans-serif; color: #000; }
.ej-ig-handle:hover { color: #000; }
.ej-ig-follow { flex: none; display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 20px; border-radius: 8px; background: #0095F6; color: #fff; font-size: 14px; font-weight: 700; transition: background-color .2s, transform 160ms var(--ease-out); }
.ej-ig-follow:hover { background: #1877F2; color: #fff; }
.ej-ig-follow:active { transform: scale(.97); }
.ej-ig-dots { flex: none; font-size: 18px; font-weight: 800; line-height: 1; letter-spacing: 1px; }
.ej-ig-title { margin-top: 6px !important; font-size: 14.5px; color: #262626; }
.ej-ig-stats { list-style: none; display: flex; gap: clamp(16px, 2.6vw, 32px); margin: 14px 0 0; padding: 0; font-size: 15px; color: #262626; }
.ej-ig-stats li { white-space: nowrap; }
.ej-ig-stats strong { font-weight: 700; color: #000; }
.ej-ig-cat { margin-top: 14px !important; font-size: 14px; color: #737373; }
.ej-ig-bio { display: grid; margin-top: 2px !important; font-size: 14.5px; line-height: 1.5; color: #000; }
.ej-ig-threads { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: 14.5px; font-weight: 700; color: #000; }
.ej-ig-threads > span { display: grid; place-items: center; width: 17px; height: 17px; border: 2px solid currentColor; border-radius: 50%; font-size: 10px; line-height: 1; }

@media (max-width: 599.98px) {
  .ej-ig-card { display: grid; grid-template-columns: 86px minmax(0, 1fr); align-items: center; column-gap: 18px; }
  .ej-ig-info { display: contents; }
  .ej-ig-avatar { grid-row: 1; grid-column: 1; width: 86px; }
  .ej-ig-stats { grid-row: 1; grid-column: 2; justify-content: space-around; gap: 8px; margin: 0; font-size: 13px; text-align: center; }
  .ej-ig-stats strong { display: block; font-size: 17px; }
  .ej-ig-top, .ej-ig-title, .ej-ig-cat, .ej-ig-bio, .ej-ig-threads { grid-column: 1 / -1; }
  .ej-ig-top { flex-wrap: wrap; row-gap: 12px; margin-top: 16px; }
  .ej-ig-handle { flex: 1 0 100%; }
  .ej-ig-follow { flex: 1; }
  .ej-ig-threads { justify-self: start; }
}
.ej-milestones { display: grid; gap: 16px; align-content: center; }
.ej-milestones dl { margin: 0; display: grid; }
.ej-milestone { display: grid; grid-template-columns: minmax(3.2ch, auto) 1fr; align-items: center; gap: 18px; padding: 14px 0; border-top: 1px solid rgba(28,26,24,.12); }
.ej-milestone:first-child { border-top: 0; padding-top: 0; }
.ej-milestone dd { grid-column: 1; grid-row: 1; margin: 0; font: 400 clamp(3rem, 2.2rem + 2.6vw, 4.5rem)/.9 'Gloock', serif; letter-spacing: -.02em; color: #B3261E; }
.ej-milestone dt { grid-column: 2; grid-row: 1; font-size: clamp(1rem, .95rem + .3vw, 1.2rem); font-weight: 600; line-height: 1.3; color: #1C1A18; }
.ej-milestones-note { max-width: 36ch; color: #5D5750; font-size: 15px; line-height: 1.6; }
@media (max-width: 959.98px) {
  .ej-milestones dl { grid-template-columns: 1fr 1fr; gap: 16px; }
  .ej-milestone { grid-template-columns: 1fr; gap: 6px; padding: 0; border-top: 0; }
  .ej-milestone dd, .ej-milestone dt { grid-column: 1; grid-row: auto; }
}

.ej-banner { position: relative; isolation: isolate; display: flex; align-items: flex-end; width: min(1240px, 100% - 24px); min-height: clamp(460px, 50vw, 620px); margin: clamp(16px, 3vw, 28px) auto 0; border-radius: 36px; overflow: hidden; background: #2A211C; }
.ej-banner > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.ej-banner-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(20,14,10,.86) 0%, rgba(20,14,10,.6) 38%, rgba(20,14,10,.08) 72%), linear-gradient(0deg, rgba(20,14,10,.5), rgba(20,14,10,0) 55%); }
.ej-banner-copy { max-width: 640px; padding: clamp(28px, 5vw, 64px); color: #fff; }
.ej-banner-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .16em; color: #F3E4DA; }
.ej-banner h2 { margin-top: 14px !important; font: 400 clamp(2.1rem, 1.4rem + 2.6vw, 3.6rem)/1.06 'Gloock', serif; color: #fff; text-wrap: balance; text-shadow: 0 2px 24px rgba(0,0,0,.3); }
.ej-banner-text { margin-top: 16px !important; max-width: 48ch; color: rgba(255,255,255,.9); font-size: clamp(1rem, .95rem + .2vw, 1.1rem); line-height: 1.65; }
.ej-banner-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.ej-btn-glass { background: rgba(255,255,255,.14); color: #fff; border: 1px solid rgba(255,255,255,.4); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.ej-btn-glass:hover { background: rgba(255,255,255,.26); color: #fff; }
@media (max-width: 759.98px) {
  .ej-banner { min-height: 580px; }
  .ej-banner-shade { background: linear-gradient(0deg, rgba(20,14,10,.92) 0%, rgba(20,14,10,.66) 48%, rgba(20,14,10,.05) 82%); }
  .ej-banner-actions .ej-btn { flex: 1 1 auto; }
}

.ej-featured { width: min(1200px, 100% - 40px); margin-inline: auto; padding: clamp(36px, 5vw, 64px) 0 clamp(28px, 4vw, 48px); }
.ej-sec-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 24px; margin-bottom: 22px; }
.ej-mosaic { display: grid; grid-template-columns: repeat(auto-fill, minmax(max(150px, calc((100% - 36px) / 4)), 1fr)); grid-auto-rows: clamp(150px, 18vw, 250px); grid-auto-flow: dense; gap: 12px; }
.ej-mosaic > button { position: relative; padding: 0; border: 0; overflow: hidden; border-radius: 22px; background: #d9d5ce; cursor: zoom-in; transition: transform 160ms var(--ease-out); }
.ej-mosaic > button.is-big { grid-column: span 2; grid-row: span 2; }
.ej-mosaic > button:active { transform: scale(.98); }
.ej-mosaic img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .ej-mosaic > button:hover img { transform: scale(1.03); } }
.ej-more-row { display: flex; justify-content: center; margin-top: 20px; }
.ej-more-count { font-size: 13px; font-weight: 500; color: #5D5750; }

.ej-band { width: min(1240px, 100% - 24px); margin-inline: auto; padding: clamp(32px, 5vw, 64px) clamp(16px, 3vw, 40px); border-radius: 36px; background: #F7F6F3; }
.ej-band-in { width: min(1200px, 100%); margin-inline: auto; }
.ej-services { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 12px; }
.ej-services li { display: flex; }
.ej-services a { flex: 1; display: flex; align-items: center; gap: 16px; min-height: 88px; padding: 16px 16px 16px 18px; border-radius: 20px; background: #F7F6F3; transition: transform .12s ease-out, box-shadow .25s; }
.ej-services a:hover { color: #1C1A18; box-shadow: 0 18px 36px -24px rgba(28,26,24,.45); }
.ej-services a:active { transform: scale(.98); }
.ej-svc-num { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: #fff; font: 400 15px/1 'Gloock', serif; color: #B3261E; }
.ej-svc-text { flex: 1; min-width: 0; display: grid; gap: 3px; }
.ej-svc-text strong { font-size: 15px; font-weight: 700; line-height: 1.3; color: #1C1A18; }
.ej-svc-text span { font-size: 13px; line-height: 1.45; color: #5D5750; }
.ej-svc-go { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #fff; color: #1C1A18; }

.ej-page-hero { width: min(1200px, 100% - 40px); margin-inline: auto; padding: clamp(24px, 5vw, 64px) 0 clamp(20px, 3vw, 36px); animation: ej-rise .7s cubic-bezier(.22,1,.36,1) both; }
.ej-page-hero .ej-eyebrow { margin-bottom: 20px; }
.ej-page-hero h1 { max-width: 18ch; font: 400 clamp(2.3rem, 1.5rem + 3.4vw, 4.2rem)/1.04 'Gloock', serif; letter-spacing: -.01em; color: #1C1A18; text-wrap: balance; }
.ej-page-intro { margin-top: 20px !important; max-width: 62ch; font-size: clamp(1rem, .95rem + .3vw, 1.18rem); line-height: 1.65; color: #5D5750; text-wrap: pretty; }
.ej-page-cta { margin-top: 28px; }
.ej-page-hero .ej-hero-actions { margin-top: 28px; }

.ej-panel { padding: clamp(24px, 4vw, 48px); border-radius: 32px; background: #F7F6F3; }
.ej-panel > p:where(:not([class])) { margin: 0 0 24px; max-width: 60ch; color: #5D5750; line-height: 1.65; }
.ej-panel-lg { padding: clamp(28px, 5vw, 56px); }
.ej-prose { max-width: 72ch; }
.ej-prose .ej-eyebrow { margin-bottom: 14px; }
.ej-prose h2 { margin: 36px 0 0; font: 400 clamp(1.5rem, 1.25rem + 1vw, 2.1rem)/1.15 'Gloock', serif; color: #1C1A18; }
.ej-prose .ej-eyebrow + h2 { margin-top: 0; }
.ej-prose > p { margin: 14px 0 0; color: #5D5750; line-height: 1.75; }
.ej-prose h2:has(+ .ej-pills) { margin-bottom: 16px; }
.ej-prose > p.ej-fine { margin-top: 28px; font-size: 13px; line-height: 1.55; }

.ej-about { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: clamp(28px, 5vw, 72px); align-items: start; }
.ej-about-photo { position: relative; max-width: 440px; }
.ej-about-photo > span { position: absolute; left: -14px; bottom: -14px; width: 70%; height: 70%; border-radius: 28px; background: #DCE4D8; }
.ej-about-photo img { position: relative; width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: 50% 30%; border-radius: 28px; box-shadow: 0 30px 60px -36px rgba(28,26,24,.5); }
.ej-about-copy { max-width: 60ch; padding: clamp(24px, 4vw, 44px); }
.ej-about-copy .ej-eyebrow { margin-bottom: 14px; }
.ej-about-copy > p { margin: 14px 0 0; color: #5D5750; line-height: 1.75; }
.ej-about-copy h2 + p { margin-top: 18px; }
.ej-about-copy .ej-btn { min-height: 50px; padding: 0 24px; }

.ej-legal-page { display: grid; gap: 20px; }
.ej-legal { max-width: 880px; }
.ej-legal .ej-eyebrow { margin-bottom: 14px; }
.ej-legal > div { padding: 20px 0; border-top: 1px solid rgba(28,26,24,.09); }
.ej-legal h2 + div { margin-top: 18px; }
.ej-legal h3 { margin: 0 0 8px; font: 700 16px/1.35 'Manrope', sans-serif; color: #1C1A18; }
.ej-legal > div p { color: #5D5750; line-height: 1.7; }
.ej-legal-page > .ej-pills a { min-height: 44px; display: inline-flex; align-items: center; }
.ej-refund { background: #F3E4DA; }
.ej-refund > p:last-child { margin: 14px 0 0; color: #3F3A35; line-height: 1.7; font-weight: 500; }
.ej-legal-page > .ej-fine a { color: #B3261E; font-weight: 600; }

.ej-journal { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.ej-post-card { display: flex; flex-direction: column; gap: 16px; padding: 12px 12px 22px; border-radius: 28px; color: #1C1A18; transition: transform 160ms var(--ease-out); }
.ej-post-card:not(:has(.ej-post-cover)) { padding: 28px; }
.ej-post-card:hover { color: #1C1A18; }
.ej-post-card:active { transform: scale(.99); }
.ej-cover { position: relative; display: block; overflow: hidden; background: #d9d5ce; }
.ej-cover img { display: block; width: 100%; height: 100%; object-fit: cover; -webkit-user-select: none; user-select: none; }
.ej-post-cover { border-radius: 20px; }
.ej-post-cover img { transition: transform .6s var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .ej-post-card:hover .ej-post-cover img { transform: scale(1.03); } }
.ej-post-text { flex: 1; display: grid; align-content: start; gap: 8px; padding: 0 10px; }
.ej-post-text strong { font: 400 23px/1.25 'Gloock', serif; }
.ej-post-text span { color: #5D5750; font-size: 15px; line-height: 1.6; }
.ej-post-card .ej-more { padding: 0 10px; }
.ej-post-card .ej-more > span { width: 32px; height: 32px; }

.ej-article { width: min(760px, 100% - 40px); margin-inline: auto; padding: clamp(20px, 4vw, 48px) 0 clamp(28px, 4vw, 48px); }
.ej-article-back { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin-bottom: 12px; color: #B3261E; font-weight: 600; }
.ej-article h1 { font: 400 clamp(2.1rem, 1.4rem + 2.8vw, 3.6rem)/1.08 'Gloock', serif; letter-spacing: -.01em; text-wrap: balance; }
.ej-article-date { display: block; margin-top: 10px; font-size: 14px; color: #8a837b; }
.ej-article-cover { margin-top: 28px; border-radius: 28px; }
.ej-article-body { margin-top: 28px; color: #2E2A26; font-size: 1.075rem; line-height: 1.8; }
.ej-article-body > * + * { margin-top: 1.1em; }
.ej-article-body h2 { margin-top: 1.8em !important; font: 400 clamp(1.5rem, 1.2rem + 1vw, 2rem)/1.2 'Gloock', serif; color: #1C1A18; }
.ej-article-body ul { padding-left: 1.2em; }
.ej-article-body li + li { margin-top: .4em; }
.ej-article-body > .ej-ad { margin: 2em 0; min-height: 90px; }

.ej-contact-form { padding-bottom: clamp(28px, 4vw, 48px); }
.ej-contact-form .ej-form { max-width: 920px; }
.ej-contact-direct { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: clamp(24px, 4vw, 56px); align-items: center; padding-top: clamp(28px, 4vw, 48px); border-top: 1px solid rgba(28,26,24,.1); }
.ej-contact-intro > p { margin-top: 12px !important; max-width: 48ch; color: #5D5750; line-height: 1.65; }
.ej-contact-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.ej-details { margin: 0; padding: 6px; border-radius: 24px; background: #F7F6F3; display: grid; gap: 4px; }
.ej-details > div { display: grid; grid-template-columns: 96px 1fr; gap: 12px; padding: 14px 16px; border-radius: 18px; background: #fff; }
.ej-details dt { color: #5D5750; font-size: 13px; padding-top: 2px; }
.ej-details dd { margin: 0; font-weight: 500; line-height: 1.5; }
.ej-details dd a { color: #B3261E; font-weight: 600; }

.ej-form { display: grid; gap: 18px; padding: clamp(22px, 4vw, 36px); border-radius: 32px; background: #fff; box-shadow: 0 1px 2px rgba(28,26,24,.04), 0 30px 60px -36px rgba(28,26,24,.3); }
.ej-form-kicker { display: block; margin-bottom: 10px; }
.ej-form h2 { font: 400 26px/1.15 'Gloock', serif; }
.ej-form-note { margin-top: 6px !important; color: #5D5750; font-size: 13px; }
.ej-form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 18px; }
.ej-form label { display: grid; gap: 7px; font-size: 14px; font-weight: 600; }
.ej-form label small { font-weight: 400; color: #5D5750; }
.ej-form input:not([type="checkbox"]), .ej-form select, .ej-form textarea { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid rgba(28,26,24,.12); border-radius: 14px; background: #F4F3F0; font-size: 16px; font-weight: 400; outline: none; }
.ej-form textarea { min-height: 116px; resize: vertical; }
.ej-form input:not([type="checkbox"]):focus, .ej-form select:focus, .ej-form textarea:focus { border-color: #1C1A18; background: #fff; box-shadow: 0 0 0 4px rgba(179,38,30,.12); }
.ej-form .ej-form-help { font-size: 12px; }
.ej-consent { display: flex !important; align-items: flex-start; gap: 12px !important; font-weight: 400 !important; color: #5D5750; line-height: 1.5; }
.ej-consent input { width: 22px; height: 22px; margin: 0; flex: none; accent-color: #B3261E; }
.ej-consent a { text-decoration: underline; text-underline-offset: 3px; }
.ej-form-submit { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 54px; border: 0; border-radius: 999px; background: #B3261E; color: #fff; font-size: 15px; font-weight: 600; transition: transform .12s ease-out; }
.ej-form-submit:hover { background: #931d17; }
.ej-form-submit:active { transform: scale(.97); }
.ej-form-submit:disabled { opacity: .6; cursor: default; transform: none; }
.ej-form-status { min-height: 1.5em; font-size: 15px; font-weight: 600; color: #1d6b3a; }
.ej-form-status.error { color: #B3261E; }
.ej-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.ej-footer { width: min(1240px, 100% - 24px); margin: clamp(24px, 4vw, 40px) auto 12px; padding: 0 clamp(20px, 4vw, 48px); border-radius: 36px; background: #F7F6F3; }
.ej-footer-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 36px; padding: 56px 0 40px; }
@media (max-width: 959.98px) { .ej-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599.98px) { .ej-footer-grid { grid-template-columns: 1fr; gap: 28px; padding: 40px 0 28px; } }
.ej-footer .ej-logo { height: 42px; }
.ej-footer-tag { margin-top: 18px !important; max-width: 34ch; color: #5D5750; line-height: 1.6; }
.ej-footer-ig { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font-size: 14px; font-weight: 600; }
.ej-footer-col { display: grid; align-content: start; gap: 10px; font-size: 15px; }
.ej-footer-col .ej-label { margin-bottom: 4px; }
.ej-footer-col p { color: #5D5750; line-height: 1.55; }
.ej-footer-base { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; padding: 20px 0 28px; border-top: 1px solid rgba(28,26,24,.1); font-size: 13px; color: #5D5750; }
.ej-powered { font-weight: 700; color: #1C1A18; }
.ej-footer-legal { color: #5D5750; }

.ej-dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; height: calc(64px + env(safe-area-inset-bottom, 0px)); padding-bottom: env(safe-area-inset-bottom, 0px); background: #fff; border-radius: 18px 18px 0 0; box-shadow: 0 -8px 24px rgba(28,26,24,.08), 0 -1px 0 rgba(28,26,24,.06); }
.ej-dock-in { position: relative; height: 64px; }
.ej-dock-bead { position: absolute; left: 0; top: 0; z-index: 1; width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; background: #B3261E; color: #fff; box-shadow: 0 10px 22px -6px rgba(179,38,30,.6), inset 0 1px 0 rgba(255,255,255,.25); touch-action: none; cursor: grab; will-change: transform; }
.ej-dock-tabs { position: absolute; inset: 0; display: grid; padding: 0 24px; }
.ej-dock-tabs a { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #5D5750; transition: transform .12s ease-out; }
.ej-dock-tabs a:active { transform: scale(.9); }
.ej-dock-tabs a.is-wa { color: #1DA851; }
.ej-dock-ico { display: grid; transition: opacity .2s; }
.ej-dock-label { position: absolute; bottom: 9px; font-size: 11px; font-weight: 700; color: #B3261E; opacity: 0; transform: translateY(6px); transition: opacity .25s, transform .35s cubic-bezier(.32,.72,0,1); }
.ej-dock-label.is-on { opacity: 1; transform: none; }

.ej-svc-hero h1 { font-size: clamp(2.4rem, 1.5rem + 3.6vw, 4.4rem); }
.ej-btn-ico-wa { background: #25D366; }
.ej-svc-proof { list-style: none; display: flex; flex-wrap: wrap; gap: 14px 32px; margin: 30px 0 0; padding: 0; }
.ej-svc-proof li { display: flex; align-items: baseline; gap: 10px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #5D5750; }
.ej-svc-proof strong { font: 400 2.2rem/1 'Gloock', serif; letter-spacing: 0; color: #B3261E; }
.ej-highlights { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px; margin-top: 28px; }
.ej-highlight { display: grid; align-content: start; gap: 12px; padding: 24px; border-radius: 24px; background: #fff; }
.ej-highlight .ej-svc-num { background: #F3E4DA; }
.ej-highlight h3 { font: 400 1.4rem/1.2 'Gloock', serif; color: #1C1A18; }
.ej-highlight p { color: #5D5750; font-size: 15px; line-height: 1.6; }
.ej-svc-detail { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(16px, 3vw, 28px); padding: clamp(32px, 5vw, 64px) 0 clamp(24px, 4vw, 40px); }
.ej-includes, .ej-process { padding: clamp(24px, 4vw, 44px); border-radius: 32px; }
.ej-includes { background: #fff; box-shadow: 0 1px 2px rgba(28,26,24,.05), 0 40px 70px -46px rgba(28,26,24,.5); }
.ej-process { background: #F7F6F3; }
.ej-includes .ej-eyebrow, .ej-process .ej-eyebrow, .ej-faq .ej-eyebrow { margin-bottom: 12px; }
.ej-includes ul { list-style: none; display: grid; gap: 13px; margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid rgba(28,26,24,.09); }
.ej-includes li { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.45; }
.ej-includes li > span { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; }
.ej-includes .ej-fine { margin-top: 22px; }
.ej-process ol { list-style: none; display: grid; gap: 18px; margin: 22px 0 0; padding: 0; }
.ej-process li { display: flex; align-items: flex-start; gap: 16px; }
.ej-process li > span { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #1C1A18; color: #fff; font: 400 16px/1 'Gloock', serif; }
.ej-process strong { font-size: 16px; }
.ej-process li p { margin-top: 4px; color: #5D5750; font-size: 14.5px; line-height: 1.55; }
.ej-faq { padding-bottom: clamp(32px, 5vw, 56px); }
.ej-faq-list { display: grid; gap: 10px; max-width: 880px; margin-top: 24px; }
.ej-faq details { padding: 0 20px; border-radius: 20px; background: #F7F6F3; }
.ej-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; list-style: none; cursor: pointer; font-size: 16px; font-weight: 700; }
.ej-faq summary::-webkit-details-marker { display: none; }
.ej-faq summary > span { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #fff; transition: transform .25s; }
.ej-faq details[open] summary > span { transform: rotate(45deg); }
.ej-faq details p { max-width: 70ch; padding: 0 0 20px; color: #5D5750; line-height: 1.65; }
.ej-related { margin-top: clamp(16px, 2.5vw, 24px); }

.ej-viewer { position: fixed; inset: 0; z-index: 100; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) auto; background: rgba(12,10,9,.96); color: #fff; opacity: 0; transition: opacity 160ms ease-out; }
.ej-viewer[data-open] { opacity: 1; transition-duration: 240ms; }
.ej-viewer-bar { display: flex; align-items: center; justify-content: space-between; padding: calc(env(safe-area-inset-top, 0px) + 10px) 16px 10px 20px; }
.ej-viewer-count { font-size: 14px; font-weight: 600; color: rgba(255,255,255,.82); font-variant-numeric: tabular-nums; }
.ej-viewer-close { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; transition: transform 160ms var(--ease-out), background-color .2s; }
.ej-viewer-close:hover { background: rgba(255,255,255,.2); }
.ej-viewer-close:active { transform: scale(.94); }
.ej-viewer-track { display: flex; min-height: 0; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior: contain; scrollbar-width: none; transform: scale(.97); transition: transform 280ms var(--ease-out); }
.ej-viewer-track::-webkit-scrollbar { display: none; }
.ej-viewer[data-open] .ej-viewer-track { transform: none; }
.ej-viewer-slide { flex: 0 0 100%; height: 100%; margin: 0; display: grid; place-items: center; padding: 0 clamp(16px, 4vw, 64px); scroll-snap-align: center; scroll-snap-stop: always; }
.ej-viewer-slide img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 6px; -webkit-user-select: none; user-select: none; }
.ej-viewer-controls { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 16px 20px calc(env(safe-area-inset-bottom, 0px) + 20px); }
.ej-viewer-step { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 18px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; background: transparent; color: #fff; font-size: 14px; font-weight: 600; transition: transform 160ms var(--ease-out), background-color .2s, opacity .2s; }
.ej-viewer-step:hover:not(:disabled) { background: rgba(255,255,255,.1); }
.ej-viewer-step:active:not(:disabled) { transform: scale(.97); }
.ej-viewer-step:disabled { opacity: .3; cursor: default; }
.ej-viewer-strip { display: flex; gap: 8px; }
.ej-viewer-strip button { flex: none; width: 56px; aspect-ratio: 1; padding: 0; border: 0; border-radius: 10px; overflow: hidden; background: #2A2522; opacity: .45; transition: opacity .2s, transform 160ms var(--ease-out); }
.ej-viewer-strip button:hover { opacity: .8; }
.ej-viewer-strip button:active { transform: scale(.94); }
.ej-viewer-strip button[aria-current="true"] { opacity: 1; box-shadow: 0 0 0 2px #0C0A09, 0 0 0 4px #fff; }
.ej-viewer-strip img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 759.98px) {
  .ej-viewer { background: #000; }
  .ej-viewer-track { transform: translateY(4%) scale(.98); transition: transform 380ms var(--ease-drawer); }
  .ej-viewer-slide { padding: 0; }
  .ej-viewer-slide img { border-radius: 0; }
  .ej-viewer-controls { padding: 10px 0 calc(env(safe-area-inset-bottom, 0px) + 12px); }
  .ej-viewer-strip { width: 100%; gap: 4px; padding: 4px 16px; overflow-x: auto; scrollbar-width: none; }
  .ej-viewer-strip::-webkit-scrollbar { display: none; }
  .ej-viewer-strip button { width: 44px; border-radius: 6px; }
  .ej-viewer-strip button[aria-current="true"] { box-shadow: 0 0 0 2px #fff; }
}

.ej-step { animation: ej-step-in 260ms var(--ease-out) both; }
@keyframes ej-step-in { from { opacity: 0; transform: translateY(10px); } }
.ej-step-badge { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 14px; padding: 6px 12px; border-radius: 999px; background: #E3F1E6; color: #1D6B3A; font-size: 13px; font-weight: 700; }
.ej-summary { margin: 0; display: grid; padding: 4px 18px; border-radius: 20px; background: #F7F6F3; }
.ej-summary > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-top: 1px solid rgba(28,26,24,.08); }
.ej-summary > div:first-child { border-top: 0; }
.ej-summary dt { color: #5D5750; font-size: 13px; padding-top: 2px; }
.ej-summary dd { margin: 0; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; white-space: pre-line; }
.ej-wa-submit { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 54px; border-radius: 999px; background: #0F7B40; color: #fff; font-size: 15px; font-weight: 700; transition: transform 160ms var(--ease-out), background-color .2s; }
.ej-wa-submit:hover { background: #0B6A36; color: #fff; }
.ej-wa-submit:active { transform: scale(.97); }
.ej-step-edit { justify-self: center; min-height: 44px; padding: 0 12px; border: 0; background: none; color: #5D5750; font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.ej-form[hidden] { display: none; }
@media (max-width: 759.98px) {
  .ej-wa-submit { justify-self: center; width: 70%; min-height: 56px; }
  .ej-summary > div { grid-template-columns: 92px minmax(0, 1fr); }
}

.ej-pkgs { width: min(1200px, 100% - 40px); margin-inline: auto; padding: clamp(36px, 5vw, 64px) 0 clamp(16px, 2.5vw, 28px); }
.ej-pkgs-head { max-width: 640px; margin: 0 auto clamp(20px, 3vw, 28px); text-align: center; }
.ej-pkgs-head > p { margin-top: 12px !important; color: #5D5750; line-height: 1.6; }
.ej-pkgs-tabs { position: relative; display: grid; grid-template-columns: repeat(var(--tabs), 1fr); width: min(100%, 470px); margin: 0 auto clamp(22px, 3vw, 34px); padding: 5px; border-radius: 999px; background: #F3F1EC; box-shadow: inset 0 1px 2px rgba(28,26,24,.07); }
.ej-pkgs-tabs button { position: relative; z-index: 1; min-height: 44px; padding: 0 10px; border: 0; border-radius: 999px; background: none; color: #5D5750; font-size: 14.5px; font-weight: 600; transition: color .25s ease; }
.ej-pkgs-tabs button[aria-selected="true"] { color: #fff; }
.ej-pkgs-tab-glider { position: absolute; top: 5px; bottom: 5px; left: 5px; width: calc((100% - 10px) / var(--tabs)); border-radius: 999px; background: #1C1A18; box-shadow: 0 8px 18px -8px rgba(28,26,24,.6); transform: translateX(calc(var(--i) * 100%)); transition: transform 380ms var(--ease-drawer); }
.ej-pkgs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); align-items: stretch; padding-top: 12px; }
@media (max-width: 899.98px) { .ej-pkgs-grid { grid-template-columns: minmax(0, 1fr); max-width: 480px; margin-inline: auto; gap: 26px; } }
.ej-pkg-card { position: relative; display: flex; flex-direction: column; padding: clamp(24px, 2.6vw, 32px); border: 1px solid rgba(28,26,24,.08); border-radius: 28px; background: #fff; color: #1C1A18; box-shadow: 0 1px 2px rgba(28,26,24,.04), 0 30px 60px -44px rgba(28,26,24,.45); animation: ej-pkg-in 460ms var(--ease-out) backwards; animation-delay: var(--d, 0ms); transition: transform 240ms var(--ease-out), box-shadow 240ms var(--ease-out); }
@keyframes ej-pkg-in { from { opacity: 0; transform: translateY(16px); } }
@media (hover: hover) and (pointer: fine) { .ej-pkg-card:hover { transform: translateY(-4px); box-shadow: 0 1px 2px rgba(28,26,24,.05), 0 40px 70px -40px rgba(28,26,24,.55); } }
.ej-pkg-card.is-featured { border-color: #1C1A18; background: #1C1A18; color: #F7F6F3; box-shadow: 0 40px 80px -40px rgba(28,26,24,.75); }
.ej-pkg-badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); padding: 6px 14px; border-radius: 999px; background: #B3261E; color: #fff; font-size: 12px; font-weight: 700; white-space: nowrap; box-shadow: 0 8px 18px -8px rgba(179,38,30,.7); }
.ej-pkg-service { font-size: 13px; font-weight: 600; color: #7A3B2E; }
.is-featured .ej-pkg-service { color: #E9B3A6; }
.ej-pkg-card h3 { margin-top: 4px; font: 400 clamp(1.8rem, 1.5rem + .8vw, 2.2rem)/1.1 'Gloock', serif; }
.ej-pkg-price { display: flex; align-items: baseline; gap: 8px; margin-top: 16px !important; padding-bottom: 20px; border-bottom: 1px solid rgba(28,26,24,.1); }
.is-featured .ej-pkg-price { border-color: rgba(255,255,255,.14); }
.ej-pkg-price strong { font: 400 clamp(2.2rem, 1.8rem + 1.2vw, 2.8rem)/1 'Gloock', serif; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.ej-pkg-price span { font-size: 13px; color: #5D5750; }
.is-featured .ej-pkg-price span { color: rgba(247,246,243,.65); }
.ej-pkg-card ul { flex: 1; list-style: none; display: grid; align-content: start; gap: 12px; margin: 20px 0 0; padding: 0; }
.ej-pkg-card li { display: flex; align-items: flex-start; gap: 12px; font-size: 14.5px; line-height: 1.45; }
.ej-pkg-card li > span { flex: none; display: grid; place-items: center; width: 20px; height: 20px; margin-top: 1px; border-radius: 50%; background: #F3E4DA; color: #7A3B2E; }
.is-featured li > span { background: rgba(255,255,255,.12); color: #fff; }
.ej-pkg-cta { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; margin-top: 26px; border-radius: 999px; background: #1C1A18; color: #fff; font-size: 15px; font-weight: 600; transition: transform 160ms var(--ease-out), background-color .2s; }
.ej-pkg-cta:hover { background: #34302c; color: #fff; }
.ej-pkg-cta:active { transform: scale(.97); }
.is-featured .ej-pkg-cta { background: #B3261E; }
.is-featured .ej-pkg-cta:hover { background: #931d17; }
.ej-pkg-note { margin-top: 12px !important; font-size: 11.5px; line-height: 1.5; color: #8a837b; }
.is-featured .ej-pkg-note { color: rgba(247,246,243,.55); }

.ej-places { margin-top: 24px; }
.ej-places h3 { font-size: 16px; font-weight: 700; color: #1C1A18; }
.ej-places ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0; }
.ej-places li { padding: 9px 16px; border-radius: 999px; background: #fff; font-size: 14px; font-weight: 600; color: #3F3A35; }
.ej-city-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 28px; padding-top: clamp(28px, 4vw, 48px); }
.ej-city-links .ej-h2-md { margin-bottom: 16px; }
.ej-links-text { max-width: 52ch; margin: -4px 0 4px !important; line-height: 1.6; }
.ej-sheet-label { margin: 4px 22px 8px; font-size: 13px; font-weight: 600; color: #5D5750; }

@media (max-width: 759.98px) {
  body { font-size: 14px; }
  .ej-eyebrow { gap: 8px; margin-bottom: 14px; }
  .ej-eyebrow:not(.ej-eyebrow-sm) > .ej-rule { display: none; }
  .ej-chip { max-width: 100%; padding: 5px 10px; font-size: min(10.5px, calc((100vw - 56px) / (var(--chars, 49) * .63))); letter-spacing: .06em; white-space: nowrap; overflow: hidden; }
  .ej-eyebrow-sm { margin-bottom: 8px; font-size: 10px; }

  .ej-hero { gap: 24px; padding: 8px 0 4px; }
  .ej-hero h1, .ej-svc-hero h1 { font-size: min(calc((100vw - 34px) / 12.7), 2.6rem); line-height: 1.08; letter-spacing: -.01em; }
  .ej-hero h1 .ej-script { display: block; margin-top: .06em; font-size: 1.4em; }
  .ej-hero-lead { margin-top: 14px !important; font-size: 14.5px; line-height: 1.6; }
  .ej-hero-actions { gap: 10px; margin-top: 20px; }
  .ej-hero-actions .ej-btn { flex: 1 1 100%; max-width: none; }
  .ej-svc-proof { gap: 10px 24px; margin-top: 20px; }
  .ej-svc-proof li { font-size: 11px; }
  .ej-svc-proof strong { font-size: 1.8rem; }

  .ej-btn { min-height: 46px; padding: 0 20px; gap: 8px; font-size: 14px; }
  .ej-btn-light { padding: 0 20px 0 6px; }
  .ej-btn-pad { padding: 0 20px; }
  .ej-btn-ico { width: 32px; height: 32px; }
  .ej-more { font-size: 13px; }

  .ej-page-hero { padding: 16px 0 20px; }
  .ej-page-hero h1 { font-size: clamp(1.75rem, 7.6vw, 2.25rem); }
  .ej-page-intro { margin-top: 12px !important; font-size: 14.5px; line-height: 1.6; }
  .ej-h2 { font-size: 1.6rem; }
  .ej-h2-md { font-size: 1.45rem; }
  .ej-h2-sm { font-size: 1.35rem; }

  .ej-section, .ej-faq { padding-bottom: 28px; }
  .ej-featured { padding: 28px 0 20px; }
  .ej-band { padding: 28px 16px; border-radius: 28px; }
  .ej-pkgs { padding: 28px 0 12px; }
  .ej-svc-detail { gap: 12px; padding: 28px 0 20px; }
  .ej-city-links { gap: 20px; padding-top: 28px; }
  .ej-sec-head { gap: 12px; margin-bottom: 16px; }
  .ej-banner { min-height: 500px; margin-top: 20px; border-radius: 28px; }
  .ej-insta { padding: 16px; border-radius: 28px; }

  .ej-mosaic { gap: 8px; }
  .ej-services { gap: 8px; }
  .ej-services a { min-height: 76px; gap: 12px; padding: 12px 12px 12px 14px; }
  .ej-svc-num { width: 36px; height: 36px; border-radius: 11px; font-size: 14px; }
  .ej-svc-text strong { font-size: 14px; }
  .ej-svc-text span { font-size: 12.5px; }

  .ej-highlights { gap: 8px; margin-top: 18px; }
  .ej-highlight { gap: 8px; padding: 18px; }
  .ej-highlight h3 { font-size: 1.2rem; }
  .ej-highlight p, .ej-includes li, .ej-faq details p, .ej-legal > div p, .ej-details dd { font-size: 14px; }
  .ej-includes, .ej-process { padding: 22px 18px; border-radius: 26px; }
  .ej-includes ul { gap: 10px; margin-top: 16px; padding-top: 14px; }
  .ej-process ol { gap: 14px; margin-top: 16px; }
  .ej-process strong { font-size: 15px; }
  .ej-process li p { font-size: 13.5px; }
  .ej-faq-list { gap: 8px; margin-top: 16px; }
  .ej-faq details { padding: 0 16px; border-radius: 18px; }
  .ej-faq summary { min-height: 56px; font-size: 14.5px; }
  .ej-places li { padding: 8px 14px; font-size: 13px; }

  .ej-banner-copy { padding: 24px 20px; }
  .ej-banner h2 { font-size: 1.85rem; }
  .ej-banner-text { margin-top: 12px !important; font-size: 14.5px; }
  .ej-banner-actions { gap: 10px; margin-top: 20px; }

  .ej-pkgs-head > p { font-size: 14px; }
  .ej-pkgs-tabs { margin-bottom: 20px; }
  .ej-pkgs-tabs button { font-size: 13.5px; }
  .ej-pkgs-grid { gap: 22px; }
  .ej-pkg-card { padding: 22px 20px; border-radius: 24px; }
  .ej-pkg-card li { gap: 10px; font-size: 13.5px; }
  .ej-pkg-card ul { gap: 10px; margin-top: 16px; }
  .ej-pkg-price { margin-top: 12px !important; padding-bottom: 16px; }
  .ej-pkg-cta { min-height: 46px; margin-top: 20px; font-size: 14px; }

  .ej-pills-lg { gap: 8px; margin-top: 14px; }
  .ej-pills-lg a { min-height: 42px; padding: 0 14px; font-size: 13px; }
  .ej-links-text { font-size: 14px; }

  .ej-milestones-note, .ej-about-copy > p, .ej-contact-intro > p { font-size: 14px; }
  .ej-about { gap: 24px; }
  .ej-panel { padding: 22px 18px; border-radius: 26px; }
  .ej-post-text strong { font-size: 20px; }
  .ej-post-text span { font-size: 14px; }
  .ej-article-body { margin-top: 22px; font-size: 1rem; line-height: 1.75; }
  .ej-article h1 { font-size: clamp(1.75rem, 7.6vw, 2.25rem); }

  .ej-form { gap: 14px; padding: 20px 16px; border-radius: 26px; }
  .ej-form h2 { font-size: 22px; }
  .ej-form label { gap: 6px; font-size: 13px; }
  .ej-form input:not([type="checkbox"]), .ej-form select, .ej-form textarea { min-height: 46px; padding: 10px 12px; }
  .ej-form-row { gap: 14px; }
  .ej-form-submit { min-height: 50px; font-size: 14.5px; }
  .ej-details > div { grid-template-columns: 80px 1fr; padding: 12px 14px; }
}

/* Showreel: full-bleed looping YouTube film, 3/4 of the viewport tall, cover-cropped. */
.ej-reel { position: relative; width: 100%; height: 75vh; height: 75svh; overflow: hidden; background: #1C1A18; }
.ej-reel iframe, .ej-reel > img { position: absolute; top: 50%; left: 50%; width: max(100%, 75svh * 16 / 9); height: max(100%, 100vw * 9 / 16); border: 0; transform: translate(-50%, -50%); pointer-events: none; object-fit: cover; }
.ej-reel-shield { position: absolute; inset: 0; z-index: 1; }
.ej-reel-mute { position: absolute; right: 16px; bottom: 16px; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 999px; background: rgba(28,26,24,.6); color: #fff; backdrop-filter: blur(6px); cursor: pointer; }
.ej-reel-mute:hover { background: rgba(28,26,24,.8); }
.ej-reel-mute:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
