/*
Theme Name: Eman Bensalem
Theme URI: https://emanbensalem.com
Description: Noble Education, Maison Ivory. Child theme of Hello Elementor. It registers the house menus, loads Cormorant Garamond and Jost, carries the shared motion engine, and holds only the frame rules Elementor's own vocabulary cannot express. Every colour below is an alias of an Elementor Global Colour; every fluid size is declared once here and referenced by a Global Font.
Author: MS Web Arts
Template: hello-elementor
Version: 1.4.0
Text Domain: eb
Domain Path: /languages
*/

/* =========================================================
   1. Type scale. The single source for every fluid size.
   Global Fonts reference these with Elementor's custom unit.
   ========================================================= */
:root{
  --eb-display:   clamp(40px, 4.4vw, 78px);
  --eb-h1:        clamp(38px, 5vw, 68px);
  --eb-h2:        clamp(28px, 3.4vw, 44px);
  --eb-h2-lg:     clamp(30px, 4vw, 52px);
  --eb-h2-xl:     clamp(32px, 4.4vw, 58px);
  --eb-h2-md:     clamp(30px, 4vw, 50px);
  --eb-h2-letters: clamp(28px, 3.8vw, 50px);
  --eb-h2-journal: clamp(28px, 3.8vw, 48px);
  --eb-statement: clamp(26px, 3.7vw, 46px);
  --eb-serif-md:  clamp(18px, 1.9vw, 23px);
  --eb-vault:     clamp(42px, 6vw, 86px);
  --eb-body:      16px;
  --eb-hh:        98px;
  --eb-gut:       46px;
  --eb-ease:      cubic-bezier(.16, .84, .44, 1);

  /* Inner pages. Each is declared once here and referenced by a Global Font,
     so a size is changed in one place and every page follows. */
  --eb-h1-about:   clamp(38px, 5.6vw, 74px);
  --eb-h1-blog:    clamp(48px, 9vw, 140px);
  --eb-h1-contact: clamp(44px, 6.2vw, 104px);
  --eb-h1-post:    clamp(36px, 5.4vw, 74px);
  --eb-h2-sec:     clamp(30px, 4vw, 54px);
  --eb-h2-mid:     clamp(28px, 3.6vw, 46px);
  --eb-h2-feat:    clamp(30px, 4vw, 52px);
  --eb-h2-essay:   clamp(27px, 3vw, 38px);
  --eb-h2-books:   clamp(28px, 3.2vw, 42px);
  --eb-h2-close:   clamp(26px, 3.4vw, 44px);
  --eb-h3-card:    clamp(24px, 2.6vw, 32px);
  --eb-h3-draw:    clamp(28px, 3vw, 36px);
  --eb-h4-faq:     clamp(21px, 2.2vw, 28px);
  --eb-state-42:   clamp(24px, 3.3vw, 42px);
  --eb-state-27:   clamp(19px, 2vw, 26px);
  --eb-stand-29:   clamp(22px, 2.4vw, 29px);
  --eb-quote-31:   clamp(23px, 2.6vw, 31px);
  --eb-tag-30:     clamp(20px, 2.3vw, 30px);
  --eb-poem:       clamp(19px, 1.7vw, 24px);
  --eb-h1-mentor:  clamp(34px, 4.2vw, 58px);
  --eb-h2-contact: clamp(28px, 3.4vw, 44px);
  --eb-h2-door:    clamp(23px, 2.9vw, 36px);
  --eb-h2-prog:    clamp(25px, 3.5vw, 44px);
  --eb-serif-27:   clamp(20px, 1.9vw, 27px);
  --eb-h1-legal:   clamp(40px, 6.2vw, 86px);
  --eb-h1-legal-lg: clamp(42px, 6.6vw, 92px);
  --eb-lede-legal: clamp(20px, 2.2vw, 27px);
  --eb-h2-legal:   clamp(28px, 3.2vw, 42px);
  --eb-callout:    clamp(20px, 2.1vw, 26px);
  --eb-mail:       clamp(22px, 2.4vw, 30px);
}
@media (max-width: 760px){ :root{ --eb-gut: 22px; } }

/* =========================================================
   2. Palette aliases. The hex values live in Site Settings.
   ========================================================= */
body{
  --eb-bordeaux:   var(--e-global-color-primary);
  --eb-brass:      var(--e-global-color-secondary);
  --eb-ink2:       var(--e-global-color-text);
  --eb-ink:        var(--e-global-color-accent);
  --eb-cream:      var(--e-global-color-ebcream);
  --eb-cream2:     var(--e-global-color-ebcream2);
  --eb-paper:      var(--e-global-color-ebpaper);
  --eb-hair:       var(--e-global-color-ebhair);
  --eb-cream-90:   var(--e-global-color-ebcream90);
  --eb-cream-80:   var(--e-global-color-ebcream80);
  --eb-cream-62:   var(--e-global-color-ebcream62);
  --eb-cream-55:   var(--e-global-color-ebcream55);
  --eb-cream-rule: var(--e-global-color-ebcreamrule);
  --eb-entrance-curtain: var(--e-global-color-primary);
}

/* =========================================================
   3. Base
   ========================================================= */
/* Reserve the scrollbar gutter from the first paint. Without it the viewport
   is full width until the page grows tall enough to scroll, and every full
   width element loses the scrollbar's width in a single frame. */
html{ scroll-behavior: smooth; scrollbar-gutter: stable; }
/* clip, not hidden: hidden turns the body into a scroll container and the
   sticky header would then stick to the body rather than the viewport. */
html, body{ overflow-x: clip; }
body{ text-rendering: optimizeLegibility; font-feature-settings: "kern" 1, "liga" 1; }
img{ display: block; max-width: 100%; }
.elementor a{ text-decoration: none; }
.elementor-widget-text-editor p:last-child{ margin-bottom: 0; }
.eb-anchor{ scroll-margin-top: 92px; }

/* =========================================================
   4. Keyframes used by the house motion
   ========================================================= */
@keyframes ebKen{ 0%{ transform: scale(1.045) translate3d(0,0,0); } 100%{ transform: scale(1.11) translate3d(-1.2%,-1%,0); } }
@keyframes ebBreathe{ 0%{ opacity:.45; transform: scale(1); } 100%{ opacity:.9; transform: scale(1.06); } }
@keyframes ebSweep{ 0%{ left:-45%; } 55%,100%{ left:125%; } }
@keyframes ebFrameIn{ to{ clip-path: inset(0 0 0 0); } }
@keyframes ebCapIn{ to{ opacity:1; transform:none; } }
@keyframes ebCueRun{ 0%{ transform: translateY(0); } 100%{ transform: translateY(104px); } }
@keyframes ebGrain{ 0%{ transform: translate(0,0); } 20%{ transform: translate(-14px,8px); } 40%{ transform: translate(10px,-12px); } 60%{ transform: translate(-8px,-6px); } 80%{ transform: translate(12px,10px); } 100%{ transform: translate(0,0); } }
@keyframes ebBlink{ 0%,49%{ opacity:1; } 50%,100%{ opacity:0; } }

/* =========================================================
   5. Reveal defaults, and the blanket reduced-motion rule
   ========================================================= */
[data-rv]{ opacity: 0; }
[data-rl]{ display: block; overflow: hidden; }
[data-rl] > span{ display: block; opacity: 0; }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation: none !important; transition-duration: .01ms !important; }
  [data-rv], [data-rl] > span{ opacity: 1 !important; transform: none !important; filter: none !important; }
  [data-curtain-panel]{ transform: scaleY(0) !important; }
  [data-hero-media]{ transform: none !important; }
}

/* =========================================================
   6. Scroll progress hairline and the film grain
   ========================================================= */
.eb-prog{
  position: fixed; top: 0; left: 0; height: 2px; width: 100%;
  transform: scaleX(0); transform-origin: 0 50%;
  background: linear-gradient(90deg, var(--eb-brass), var(--eb-bordeaux));
  z-index: 200; pointer-events: none; transition: transform .12s linear;
}
.eb-grain{
  position: fixed; inset: -120px; z-index: 150; pointer-events: none;
  opacity: .05; animation: ebGrain 8s steps(6) infinite;
}

/* =========================================================
   7. The standing frame: sticky header
   ========================================================= */
/* UAE renders the header template inside its own wrapper, and that wrapper is
   only as tall as the header. Sticky has to sit on the wrapper, or it has no
   room to travel and the header scrolls away with the page. */
body #masthead{ position: sticky !important; top: 0; z-index: 60; }
.eb-hdr{
  position: relative;
  background: color-mix(in srgb, var(--eb-cream) 86%, transparent);
  backdrop-filter: blur(16px) saturate(1.1);
  -webkit-backdrop-filter: blur(16px) saturate(1.1);
  border-bottom: 1px solid var(--eb-hair);
  transition: box-shadow .5s var(--eb-ease), background .5s var(--eb-ease);
}
.eb-hdr-top{ transition: padding .5s var(--eb-ease), height .5s var(--eb-ease); }
/* Scrolled state. eb-motion.js only toggles .is-deep; every value is here. */
.eb-hdr.is-deep{
  background: color-mix(in srgb, var(--eb-cream) 96%, transparent);
  box-shadow: 0 12px 40px -28px color-mix(in srgb, var(--eb-ink) 55%, transparent);
}
@media (max-width: 980px){
  .eb-hdr-top{ padding: 18px var(--eb-gut); height: auto; }
}

/* =========================================================
   8. Actions. Rectangular, with the house upward wipe.
   ========================================================= */
.eb-btn .elementor-button{
  position: relative; overflow: hidden; isolation: isolate; border-radius: 0;
  transition: transform .5s var(--eb-ease), box-shadow .5s var(--eb-ease), color .45s var(--eb-ease), border-color .45s var(--eb-ease);
}
.eb-btn .elementor-button::before{
  content: ""; position: absolute; inset: 0; z-index: -1;
  transform: translateY(101%); transition: transform .55s var(--eb-ease);
}
.eb-btn .elementor-button:hover::before,
.eb-btn .elementor-button:focus-visible::before{ transform: translateY(0); }

.eb-btn-primary .elementor-button::before{ background: var(--eb-ink); }
.eb-btn-primary .elementor-button:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 34px -22px color-mix(in srgb, var(--eb-ink) 75%, transparent);
}
.eb-btn-invert .elementor-button::before{ background: #fff; }
.eb-btn-invert .elementor-button:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 34px -22px color-mix(in srgb, var(--eb-ink) 60%, transparent);
}
/* The outline actions carry no panel of their own: the kit's button fill
   would otherwise sit under the label. */
.elementor .eb-btn-outline-alt .elementor-button,
.elementor .eb-btn-outline-primary .elementor-button{ background-color: transparent; }
.eb-btn-outline-alt .elementor-button::before{ background: var(--eb-ink); }
.eb-btn-outline-alt .elementor-button:hover{ border-color: var(--eb-ink); }
.eb-btn-outline-primary .elementor-button::before{ background: var(--eb-bordeaux); }
.eb-btn-outline-primary .elementor-button:hover{
  border-color: var(--eb-bordeaux); transform: translateY(-2px);
  box-shadow: 0 18px 34px -22px color-mix(in srgb, var(--eb-ink) 75%, transparent);
}

/* Quiet link: hairline underline, bordeaux line sweeping in from the left. */
.eb-link .elementor-button{
  position: relative; display: inline-block; background: none !important;
  padding: 0 0 6px !important; border: 0; border-bottom: 1px solid var(--eb-hair);
  border-radius: 0; box-shadow: none; transition: color .35s var(--eb-ease);
}
.eb-link .elementor-button::before{ display: none; }
.eb-link .elementor-button::after{
  content: ""; position: absolute; left: 0; bottom: -1px; width: 100%; height: 1px;
  background: var(--eb-bordeaux); transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .55s var(--eb-ease);
}
.eb-link .elementor-button:hover::after,
.eb-link .elementor-button:focus-visible::after{ transform: scaleX(1); }
.eb-link .elementor-button:hover{ transform: none; box-shadow: none; }

/* =========================================================
   9. Cards
   ========================================================= */
.eb-card{ align-self: stretch; }
.eb-card-foot{ margin-top: auto; border-top: 1px solid var(--eb-hair); transition: letter-spacing .5s var(--eb-ease), border-color .5s var(--eb-ease); }
.eb-card:hover .eb-card-foot{ letter-spacing: .3em; border-color: var(--eb-bordeaux); }

.eb-plate{ position: relative; overflow: hidden; }
.eb-plate img{ width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--eb-ease), filter 1.2s var(--eb-ease); }
.eb-plate > .elementor-widget-image,
.eb-plate .elementor-widget-container,
.eb-plate .elementor-image{ height: 100%; }
.eb-plate::before{
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(180deg, transparent 45%, color-mix(in srgb, var(--eb-ink) 34%, transparent) 100%);
  opacity: 0; transition: opacity .8s var(--eb-ease);
}
.eb-plate::after{
  content: ""; position: absolute; inset: 14px; z-index: 3; pointer-events: none;
  border: 1px solid color-mix(in srgb, var(--eb-cream) 42%, transparent);
  transition: inset .8s var(--eb-ease), border-color .8s var(--eb-ease);
}
.eb-card:hover .eb-plate img{ transform: scale(1.07); filter: saturate(1.08); }
.eb-card:hover .eb-plate::before{ opacity: 1; }
.eb-card:hover .eb-plate::after{ inset: 20px; border-color: color-mix(in srgb, var(--eb-cream) 75%, transparent); }

.eb-3x4{ aspect-ratio: 3 / 4; }
.eb-4x3{ aspect-ratio: 4 / 3; }
.eb-4x5 img{ aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }

/* A caption sitting inside a photograph. */
.eb-figcap{
  position: absolute; left: 20px; right: 20px; bottom: 20px; z-index: 4;
  background: color-mix(in srgb, var(--eb-paper) 94%, transparent);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.eb-figcap-hero{ left: 44px; right: auto; bottom: 44px; background: color-mix(in srgb, var(--eb-cream) 94%, transparent); }

/* =========================================================
   10. Indexed list rows
   ========================================================= */
.eb-row{ border-bottom: 1px solid var(--eb-cream-rule); }
.eb-row-inner{
  background-image: linear-gradient(90deg, color-mix(in srgb, var(--eb-cream) 9%, transparent), transparent 62%);
  background-size: 0% 100%; background-repeat: no-repeat;
  transition: background-size .6s var(--eb-ease), padding-left .6s var(--eb-ease);
}
.eb-row-inner:hover{ background-size: 100% 100%; padding-left: 26px !important; }

/* =========================================================
   11. Hairlines, diamonds, dividers
   ========================================================= */
.eb-rule-top{ border-top: 1px solid var(--eb-hair); }
.eb-rule-bottom{ border-bottom: 1px solid var(--eb-hair); }
.eb-diamond{ width: 4px; height: 4px; transform: rotate(45deg); background: var(--eb-brass); flex: none; }
.eb-diamond-sm{ width: 3px; height: 3px; }

/* =========================================================
   12. Navigation (UAE Nav Menu)
   ========================================================= */
.eb-nav .hfe-nav-menu li a.hfe-menu-item{ padding-left: 0; padding-right: 0; transition: color .35s var(--eb-ease); }
.eb-nav .hfe-nav-menu__layout-horizontal .hfe-nav-menu{ flex-wrap: nowrap; white-space: nowrap; }
@media (max-width: 1024px){ .eb-nav .hfe-nav-menu__layout-horizontal .hfe-nav-menu{ flex-wrap: wrap; white-space: normal; justify-content: center; } }

/* =========================================================
   13. Press strip
   ========================================================= */
.eb-press img{ height: 18px; width: auto; filter: brightness(0); opacity: .36; transition: opacity .45s var(--eb-ease), transform .45s var(--eb-ease); }
.eb-press:hover img{ opacity: .8; transform: translateY(-3px) scale(1.04); }

/* =========================================================
   14. Hero
   ========================================================= */
.eb-hero-fig{ position: relative; overflow: hidden; isolation: isolate; }
.eb-hero-fig img{ width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }
.eb-hero-fig .elementor-widget-image,
.eb-hero-fig .elementor-widget-image .elementor-widget-container,
.eb-hero-fig .elementor-image{ height: 100%; }
.eb-ken img{ transform: scale(1.045); animation: ebKen 26s var(--eb-ease) infinite alternate; filter: saturate(1.03) contrast(1.03); }
.eb-hero-frame::after{
  content: ""; position: absolute; inset: 24px; pointer-events: none; z-index: 5;
  border: 1px solid color-mix(in srgb, var(--eb-cream) 40%, transparent);
  clip-path: inset(0 0 100% 0); animation: ebFrameIn 1.5s var(--eb-ease) 1.1s forwards;
}
.eb-hero-scrim{
  position: absolute; inset: 0; pointer-events: none; z-index: 3; mix-blend-mode: multiply; opacity: .92;
  background:
    radial-gradient(120% 90% at 50% 108%, color-mix(in srgb, var(--eb-bordeaux) 30%, transparent) 0%, transparent 58%),
    radial-gradient(90% 70% at 18% 8%, color-mix(in srgb, var(--eb-cream) 30%, transparent) 0%, transparent 60%),
    linear-gradient(90deg, color-mix(in srgb, var(--eb-cream) 55%, transparent) 0%, transparent 34%),
    linear-gradient(180deg, color-mix(in srgb, var(--eb-ink) 16%, transparent) 0%, transparent 30%, color-mix(in srgb, var(--eb-ink) 6%, transparent) 66%, color-mix(in srgb, var(--eb-ink) 30%, transparent) 100%);
}
.eb-hero-glow{
  position: absolute; inset: 0; pointer-events: none; z-index: 4; mix-blend-mode: screen; opacity: .75;
  background: radial-gradient(60% 45% at 62% 22%, color-mix(in srgb, var(--eb-brass) 28%, transparent) 0%, transparent 70%);
  animation: ebBreathe 9s ease-in-out infinite alternate;
}
.eb-aura{
  position: absolute; inset: -30% -10%; pointer-events: none;
  background: radial-gradient(45% 55% at 50% 50%, color-mix(in srgb, var(--eb-brass) 34%, transparent) 0%, transparent 70%);
  animation: ebBreathe 12s ease-in-out infinite alternate;
}
.eb-aura-right{ background: radial-gradient(40% 50% at 78% 30%, color-mix(in srgb, var(--eb-brass) 30%, transparent) 0%, transparent 70%); }

/* =========================================================
   15. Portraits uncovered by a curtain rather than a fade
   ========================================================= */
.eb-curtain{ position: relative; overflow: hidden; }
[data-curtain-panel]{
  position: absolute; inset: 0; z-index: 4; background: var(--eb-cream);
  transform-origin: 50% 0; transform: scaleY(1); pointer-events: none;
  transition: transform 1.3s var(--eb-ease);
}

/* =========================================================
   16. Underline fields. No boxes, no fills.
   ========================================================= */
.eb-field{ position: relative; display: block; }
.eb-field input[type="text"],
.eb-field input[type="email"],
.eb-field textarea,
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 textarea{
  width: 100%; background: none; border: 0; border-bottom: 1px solid var(--eb-hair);
  border-radius: 0; padding: 15px 4px; outline: none;
  color: var(--eb-ink);
  font-family: var(--e-global-typography-text-font-family), system-ui, sans-serif;
  font-size: 15.5px; font-weight: 400;
}
[data-field-line]{
  position: absolute; left: 0; bottom: 0; width: 100%; height: 1px;
  background: var(--eb-bordeaux); transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .55s var(--eb-ease);
}

/* =========================================================
   17. Footer links indent rather than underline
   ========================================================= */
.eb-footlist .hfe-nav-menu li a.hfe-menu-item,
.eb-footlist a{ transition: color .3s var(--eb-ease), padding-left .4s var(--eb-ease); }
.eb-footlist .hfe-nav-menu li a.hfe-menu-item:hover,
.eb-footlist a:hover{ padding-left: 5px; }

/* =========================================================
   18. Social squares
   ========================================================= */
.eb-social .elementor-social-icon{
  background: none !important; border: 1px solid var(--eb-hair); border-radius: 0 !important;
  width: 38px; height: 38px;
  transition: color .35s var(--eb-ease), border-color .35s var(--eb-ease), transform .35s var(--eb-ease);
}
.eb-social .elementor-social-icon:hover{ border-color: var(--eb-brass); transform: translateY(-2px); }
.eb-social .elementor-social-icon i, .eb-social .elementor-social-icon svg{ color: var(--eb-ink2); fill: var(--eb-ink2); }
.eb-social .elementor-social-icon:hover i, .eb-social .elementor-social-icon:hover svg{ color: var(--eb-bordeaux); fill: var(--eb-bordeaux); }

/* =========================================================
   19. The founder card overlaps the portrait
   ========================================================= */
.eb-overlap{
  margin-left: -72px; position: relative; z-index: 2;
  border: 1px solid var(--eb-hair);
  box-shadow: 0 40px 80px -70px color-mix(in srgb, var(--eb-ink) 90%, transparent);
}
/* The design stacks the card under the portrait at 820px and below. */
@media (max-width: 820px){
  .elementor .eb-overlap{ margin-left: 22px; margin-right: 22px; margin-top: -40px; --padding-top: 44px !important; --padding-right: 28px !important; --padding-bottom: 44px !important; --padding-left: 28px !important; }
}

/* =========================================================
   20. Two column prose with a dropped capital
   ========================================================= */
.eb-prose .elementor-widget-container{ columns: 2; column-gap: 64px; text-align: justify; hyphens: auto; text-wrap: pretty; }
.eb-prose p{ margin-bottom: 20px; }
.eb-prose p:first-of-type::first-letter{
  float: left; font-family: var(--e-global-typography-primary-font-family), Georgia, serif;
  font-size: 74px; line-height: .78; padding: 6px 12px 0 0; color: var(--eb-bordeaux); font-weight: 400;
}
@media (max-width: 767px){ .eb-prose .elementor-widget-container{ columns: 1; text-align: left; } }

/* =========================================================
   21. Serif chip row, hairline separated
   ========================================================= */
.eb-chips > .e-con-inner > *:not(:last-child),
.eb-chips > *:not(:last-child){ padding-right: 22px; border-right: 1px solid var(--eb-hair); }

/* =========================================================
   22. Stat band
   ========================================================= */
.eb-stat{ transition: background .5s var(--eb-ease); }
.eb-stat:hover{ background: color-mix(in srgb, var(--eb-brass) 7%, transparent); }

/* =========================================================
   23. Round portrait, the one exception to zero radius
   ========================================================= */
.eb-round img{ border-radius: 50%; width: 66px; height: 66px; object-fit: cover; transition: transform .7s var(--eb-ease), box-shadow .7s var(--eb-ease); }
.eb-round:hover img{ transform: scale(1.09); box-shadow: 0 14px 28px -16px color-mix(in srgb, var(--eb-bordeaux) 60%, transparent); }
/* =========================================================
   24. Header three column frame
   The design flanks a centred wordmark with two three-item lists. Both lists
   carry flex: 1 1 0, so they claim equal space whatever words are in them,
   and that is what holds the wordmark on the centre line rather than merely
   between them. Below the collapse point both lists leave and the Primary
   menu returns as a single toggle beside the wordmark.
   ========================================================= */
.elementor .eb-hdr-top .eb-hdr-col{ flex: 1 1 0; min-width: 0; }
.elementor .eb-hdr-top .eb-hdr-logo{ flex: 0 0 auto; }
.elementor .eb-hdr-top .eb-hdr-toggle{ flex: 0 0 auto; }
.eb-hdr-logo img{ width: min(100%, 288px); height: auto; transition: width .4s var(--eb-ease); }
.eb-hdr-left .hfe-nav-menu{ justify-content: flex-start; }
.eb-hdr-right .hfe-nav-menu{ justify-content: flex-end; }
.eb-hdr-toggle{ flex: 0 0 auto; }

/* Collapsed: the wordmark leads, one toggle closes the row, and the panel
   hangs off the header rather than out of the toggle's own column. */
@media (max-width: 1024px){
  .eb-hdr-logo{ order: -1; margin-right: auto; }
  .elementor .eb-hdr-top .eb-hdr-logo{ justify-content: flex-start; }
  .eb-hdr-toggle{ order: 1; position: static !important; }
  /* Whatever class UAE gives the collapsed list, it leaves the row and hangs
     under the header, so only the toggle itself claims width. */
  .eb-hdr-toggle nav{ position: absolute; top: 100%; left: 0; width: 100%; }
}

/* =========================================================
   25. Hero split
   ========================================================= */
.eb-hero{ min-height: calc(100svh - var(--eb-hh)); }
/* The image column runs to the right edge, but the copy starts where every
   other section starts. Past the width at which the rail begins to grow, a
   static gutter can no longer reach it, so the padding is read from the
   viewport: half the leftover, plus the gutter the boxed sections carry. */
/* Padding percentages resolve against the containing block, so 100% here is
   the full width of the hero row, not the copy column. The copy therefore
   starts exactly where the boxed sections start, and never inside the gutter. */
.eb-hero-copy{ padding-left: max(var(--eb-gut), calc((100% - 1228px) / 2)) !important; }
@media (max-width: 880px){ .eb-hero{ min-height: 0; } }
.eb-hero-media-wrap{ position: absolute; inset: -8% 0 -8% 0; will-change: transform; }

/* The scroll cue under the hero. */
.eb-cue{ position: absolute; width: auto; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 6; opacity: 0; animation: ebCapIn 1s var(--eb-ease) 2s forwards; }
.eb-cue-line{ display: block; width: 1px; height: 52px; background: linear-gradient(180deg, var(--eb-hair), transparent); position: relative; overflow: hidden; }
.eb-cue-line::after{ content: ""; position: absolute; left: 0; top: -52px; width: 1px; height: 52px; background: linear-gradient(180deg, transparent, var(--eb-bordeaux)); animation: ebCueRun 2.4s var(--eb-ease) infinite; }

/* Captions that fade up once the frame has drawn itself. */
.eb-capin{ opacity: 0; transform: translateY(14px); animation: ebCapIn 1.1s var(--eb-ease) 1.5s forwards; }

/* =========================================================
   26. Measure helpers
   ========================================================= */
.eb-measure-38 .elementor-widget-container{ max-width: 38ch; }
.eb-measure-40 .elementor-widget-container{ max-width: 40ch; }
.eb-measure-44 .elementor-widget-container{ max-width: 44ch; }
.eb-measure-56 .elementor-widget-container{ max-width: 56ch; }
.eb-measure-18 .elementor-heading-title{ max-width: 18ch; }
.eb-measure-20 .elementor-heading-title{ max-width: 20ch; }
.eb-measure-22 .elementor-heading-title{ max-width: 22ch; }
.eb-measure-24 .elementor-heading-title{ max-width: 24ch; }
.eb-measure-26 .elementor-heading-title{ max-width: 26ch; }
.eb-centred .elementor-widget-container,
.eb-centred .elementor-heading-title{ margin-left: auto; margin-right: auto; }
.eb-pretty .elementor-widget-container, .eb-pretty p{ text-wrap: pretty; }

/* Italic emphasis inside a display line. */
.elementor-heading-title em{ font-style: italic; color: var(--eb-bordeaux); }
.eb-on-dark .elementor-heading-title em{ color: inherit; }
/* The header row is a boxed container, so its side padding is carried by
   --padding-inline-* on the inner element. Setting padding on the outer box
   would stack on top of that instead of replacing it. */
.eb-hdr-top{ position: relative; }
@media (max-width: 980px){
  .eb-hdr-top{
    --padding-inline-start: var(--eb-gut) !important;
    --padding-inline-end: var(--eb-gut) !important;
    --padding-block-start: 18px !important;
    --padding-block-end: 18px !important;
  }
}
/* =========================================================
   27. Footer frame
   ========================================================= */
/* Elementor gives every child container width:100%, which would put each
   footer column on its own line. The flex basis has to outrank it. */
.elementor .eb-foot-brand{ flex: 1.5 1 260px; width: auto; min-width: 0; }
.elementor .eb-foot-col{ flex: 1 1 150px; width: auto; min-width: 0; }
.elementor .eb-foot-wide{ flex: 1.2 1 220px; width: auto; min-width: 0; }
.eb-foot-mission ul{ list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-direction: column; gap: 11px; max-width: 40ch; }
.eb-foot-mission li{ display: flex; gap: 11px; }
.eb-foot-mission li::before{ content: ""; flex: none; width: 4px; height: 4px; margin-top: 10px; transform: rotate(45deg); background: var(--eb-brass); }
.eb-foot-mission strong{ font-weight: 500; color: var(--eb-ink); }
.eb-foot-mission p{ max-width: 40ch; }

.eb-legal-nav .hfe-nav-menu{ align-items: center; }
.eb-legal-nav .hfe-nav-menu li.menu-item{ display: flex; align-items: center; }
.eb-legal-nav .hfe-nav-menu li.menu-item:not(:last-child)::after{
  content: ""; width: 3px; height: 3px; transform: rotate(45deg);
  background: var(--eb-brass); margin-left: 18px;
}
/* =========================================================
   28. Card headings answer the card, not themselves
   ========================================================= */
.eb-card-title .elementor-heading-title{ transition: color .45s var(--eb-ease); }
.eb-card:hover .eb-card-title .elementor-heading-title{ color: var(--eb-bordeaux); }
.eb-card{ position: relative; }
.eb-card .e-con-inner{ height: 100%; display: flex; flex-direction: column; }

/* Serif chips lift on hover. */
.eb-chips > *{ transition: transform .5s var(--eb-ease); }
.eb-chips > *:hover{ transform: translateY(-3px); }
.eb-chips > *:hover .elementor-heading-title{ color: var(--eb-brass); }

/* The Royal Correspondence signup, rendered by the Brevo plugin ([sibwp_form id="2"]).
   The form HTML in Brevo carries the same .eb-form-row / .eb-field markup the
   Contact Form 7 version used, so the row rules below serve it unchanged. */
.eb-sr{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.eb-form-row{ display:flex; gap:14px; align-items:flex-end; max-width:540px; margin:42px auto 0; }
.eb-form-row .eb-field{ flex:1; min-width:0; }
.wpcf7 .wpcf7-submit{
  background:none; border:0; border-radius:0; cursor:pointer; padding:0 6px 15px;
  color:var(--eb-bordeaux);
  font-family:var(--e-global-typography-ebbutton-font-family), system-ui, sans-serif;
  font-size:var(--e-global-typography-ebbutton-font-size);
  font-weight:var(--e-global-typography-ebbutton-font-weight);
  letter-spacing:var(--e-global-typography-ebbutton-letter-spacing);
  text-transform:var(--e-global-typography-ebbutton-text-transform);
  transition:letter-spacing .5s var(--eb-ease);
}
.wpcf7 .wpcf7-submit:hover{ letter-spacing:.32em; }
.wpcf7 .wpcf7-spinner{ margin:0 0 15px 8px; }
.wpcf7 form .wpcf7-response-output{ border:0; border-top:1px solid var(--eb-hair); margin:24px auto 0; padding:16px 0 0; max-width:540px; text-align:center; color:var(--eb-ink2); font-size:13.5px; }
.wpcf7 .wpcf7-not-valid-tip{ color:var(--eb-bordeaux); font-size:12px; padding-top:8px; }
.wpcf7 ::placeholder{ color:var(--eb-ink2); opacity:.62; }
@media (max-width:600px){ .eb-form-row{ flex-wrap:wrap; } .eb-form-row .eb-field{ flex:1 1 100%; } }

/* Brevo's message box moves under the row and reads like the old CF7 response
   line; the plugin's pastel boxes are removed in functions.php. The spinner gif
   is replaced by a faded button while the form is sending. */
.sib_signup_form [class^="sib_signup_box_inside"]{ display:flex; flex-direction:column; }
.sib_signup_form .sib_msg_disp{ order:2; }
.sib_signup_form .sib_loader{ display:none !important; }
.sib_signup_form p.sib-alert-message{ background:none; border:0; border-top:1px solid var(--eb-hair); border-radius:0; margin:24px auto 0; padding:16px 0 0; max-width:540px; width:100%; text-align:center; color:var(--eb-ink2); font-size:13.5px; line-height:1.7; }
.sib_signup_form p.sib-alert-message-error,
.sib_signup_form p.sib-alert-message-warning{ color:var(--eb-bordeaux); }
.sib_signup_form.sib_processing .sib-default-btn{ opacity:.45; cursor:progress; }
.sib_signup_form ::placeholder{ color:var(--eb-ink2); opacity:.62; }

/* =========================================================
   29. Utilities the page tree leans on
   ========================================================= */
.eb-hero-copy{ min-width: min(100%, 420px); }
.eb-hero-fig{ min-width: min(100%, 360px); }
.eb-minw-320{ min-width: min(100%, 320px); }
.eb-stack-20 p{ margin: 0 0 20px; }
.eb-stack-22 p{ margin: 0 0 22px; }
.eb-stack-20 p:last-child, .eb-stack-22 p:last-child{ margin-bottom: 0; }

/* The credit line under a caption speaks quieter than the caption. */
.eb-cap-credit{
  display: block;
  font-family: var(--e-global-typography-ebcap18-font-family), system-ui, sans-serif;
  font-size: var(--e-global-typography-ebcap18-font-size);
  font-weight: var(--e-global-typography-ebcap18-font-weight);
  font-style: normal;
  letter-spacing: var(--e-global-typography-ebcap18-letter-spacing);
  text-transform: var(--e-global-typography-ebcap18-text-transform);
  color: var(--eb-brass);
}
.eb-figcap-hero .eb-cap-credit{ color: var(--eb-ink2); letter-spacing: var(--e-global-typography-ebcap26-letter-spacing); }

/* The hero caption is a plate, not a band: it takes the width of its words. */
.elementor .eb-figcap-hero{ width: auto; max-width: calc(100% - 44px); }
.elementor .eb-cue{ width: auto; }

/* Below the phone breakpoint the standing frame drops the action, which the
   hero repeats immediately underneath, and keeps the wordmark and the menu. */
@media (max-width: 767px){
  .eb-hdr-logo img{ width: min(100%, 214px); }
  .eb-hdr-top, .eb-hdr-top > .e-con-inner{ row-gap: 10px; }
}

/* =========================================================
   30. Home pass, 17 Sep 2026
   ========================================================= */
/* Elementor's optimised markup drops .elementor-widget-container from text
   widgets, so the measure helpers also reach the paragraphs directly. */
.eb-measure-38 p{ max-width: 38ch; }
.eb-measure-40 p{ max-width: 40ch; }
.eb-measure-44 p{ max-width: 44ch; }
.eb-measure-56 p{ max-width: 56ch; }
.eb-centred p{ margin-left: auto; margin-right: auto; }

/* Two column prose, on the widget itself when there is no inner wrapper. */
.elementor-widget.eb-prose:not(:has(> .elementor-widget-container)){ columns: 2; column-gap: 64px; text-align: justify; hyphens: auto; text-wrap: pretty; }
@media (max-width: 767px){
  .elementor-widget.eb-prose:not(:has(> .elementor-widget-container)){ columns: 1; text-align: left; }
}
.eb-prose p{ break-inside: auto; }

/* A caption inside a photograph sits inside the plate, never wider than it. */
.elementor .eb-figcap:not(.eb-figcap-hero){ width: auto; max-width: none; }

/* The signup row (Brevo form). */
.eb-form-row{ position: relative; }
.eb-form-row input[type="text"],
.eb-form-row input[type="email"]{ line-height: 1.75; }
.sib_signup_form .eb-form-row .sib-default-btn{ flex: none; margin: 0; }

/* Footer mission list keeps its own rhythm inside the paragraph widget. */
.eb-foot-mission ul{ line-height: 1.7; letter-spacing: normal; }

/* Social squares: the box comes from the widget's own size, padding and
   border controls; the stroke marks follow the text colour. */
.eb-social .elementor-social-icon{ color: var(--eb-ink2); }
.eb-social .elementor-social-icon:hover{ color: var(--eb-bordeaux); }
.eb-social .elementor-social-icon svg{ color: inherit; fill: currentColor; }

/* =========================================================
   31. EB Post Cards widget
   ========================================================= */
.eb-pc{ display: flex; flex-wrap: wrap; gap: 36px; }
.eb-pc__card{ position: relative; flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; }
.eb-pc__link{ position: absolute; inset: 0; z-index: 5; }
.eb-pc__link:focus-visible{ outline: 1px solid var(--eb-bordeaux); outline-offset: 6px; }
.eb-pc__plate{ position: relative; aspect-ratio: 4 / 3; overflow: hidden; background-color: var(--eb-cream2); }
.eb-pc__plate img{ display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--eb-ease); }
.eb-pc__cat{ display: block; }
.elementor-widget-eb-post-cards .eb-pc__title{ margin-bottom: 0; transition: color .45s var(--eb-ease); }
.eb-pc__empty{ margin: 0; }

/* =========================================================
   32. Home pass, responsive details
   ========================================================= */
/* In the design the prose keeps each paragraph's bottom margin inside the columns. */
@media (min-width: 768px){ .eb-prose p:last-child{ margin-bottom: 20px; } }
/* UAE zeroes vertical list spacing below desktop; the design keeps 12px on every item. */
.elementor .eb-footlist .hfe-nav-menu > li.menu-item{ margin-bottom: 12px !important; }

/* The hero actions sit straight in a flex row in the design, with no line box around them. */
.eb-hero-copy .elementor-widget-button{ display: flex; }

/* Press marks and hero actions are flex items in the design, with no line box. */
.eb-press.elementor-widget-image{ display: flex; }
.eb-hero-copy .elementor-button-content-wrapper{ justify-content: flex-start; text-align: left; }

/* Below desktop the legal links start at the left edge and wrap with an 18px row gap. */
@media (max-width: 1024px){
  .eb-legal-nav div.hfe-nav-menu, .eb-legal-nav nav.hfe-nav-menu__layout-horizontal{ justify-content: flex-start !important; }
  .eb-legal-nav .hfe-nav-menu__layout-horizontal .hfe-nav-menu{ justify-content: flex-start !important; margin-left: 0 !important; margin-right: auto !important; flex-wrap: wrap; row-gap: 18px; column-gap: 18px; }
  .eb-legal-nav .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item{ margin-right: 0 !important; }
}

/* Below desktop the footer brand takes the full row and the three link columns share the next one in thirds. */
@media (max-width: 1024px){
  .elementor .eb-foot-brand{ flex: 0 0 100%; width: 100%; }
  .eb-foot-mission p, .eb-foot-mission ul{ max-width: none; }
  .elementor .eb-foot-brand-body{ flex: 1 1 0; min-width: 0; }
  .elementor .eb-foot-col{ flex: 1 1 0; width: auto; min-width: 0; }
}

/* On phones every footer column takes the full row. */
@media (max-width: 767px){
  .elementor .eb-foot-brand-body{ flex: 0 0 auto; width: 100%; }
  .elementor .eb-foot-col{ flex: 0 0 100%; width: 100%; }
}

/* =========================================================
   33. Inner pages, shared figure vocabulary
   ========================================================= */
/* The design frames a photograph with an inset hairline in cream, and hangs a
   caption plate off its bottom-left corner. Both are drawn here so a page only
   has to name the classes. */
.eb-fig{ position: relative; overflow: hidden; background-color: var(--eb-cream2); }
.eb-fig::after{ content: ""; position: absolute; inset: 16px; border: 1px solid var(--eb-cream-rule); z-index: 3; pointer-events: none; }
.eb-fig-14::after{ inset: 14px; }
.eb-fig img{ width: 100%; height: 100%; object-fit: cover; }
.eb-fig-none::after{ display: none; }

.eb-plate-cap{ position: absolute; left: 0; bottom: 0; z-index: 4; background-color: var(--e-global-color-ebcream90); backdrop-filter: blur(6px); }
.eb-plate-cap-in{ left: 22px; bottom: 22px; }

/* Ratio helpers the design uses on inner pages. */
.eb-r45 img, .eb-r45{ aspect-ratio: 4 / 5; }
.eb-r34 img, .eb-r34{ aspect-ratio: 3 / 4; }
.eb-r43 img, .eb-r43{ aspect-ratio: 4 / 3; }

/* A radial brass glow over a bordeaux band. */
.eb-glow{ position: relative; overflow: hidden; }
.eb-glow > .e-con-inner, .eb-glow > .elementor-widget-wrap{ position: relative; z-index: 1; }
.eb-glow::before{ content: ""; position: absolute; inset: -30% -10%; z-index: 0; pointer-events: none;
  background: radial-gradient(45% 55% at 50% 50%, color-mix(in srgb, var(--eb-brass) 34%, transparent) 0%, transparent 70%); }
.eb-glow-right::before{ background: radial-gradient(40% 50% at 78% 30%, color-mix(in srgb, var(--eb-brass) 30%, transparent) 0%, transparent 70%); }

/* A serif drop cap opening a passage of prose. */
.eb-drop p:first-of-type::first-letter{
  float: left; font-family: "Cormorant Garamond", Georgia, serif; font-weight: 400;
  font-size: 74px; line-height: .78; padding: 6px 12px 0 0; color: var(--eb-bordeaux);
}
.eb-drop-brass p:first-of-type::first-letter{ font-size: 86px; line-height: .72; padding: 8px 14px 0 0; color: var(--eb-brass); font-weight: 300; }

/* =========================================================
   34. The drifting portrait strip and its story drawer
   ========================================================= */
.eb-film{ position: relative; overflow: hidden; width: 100%; background-color: var(--eb-ink); }
.elementor .eb-film-track{ display: flex; flex-wrap: nowrap; width: max-content; max-width: none; align-items: stretch; will-change: transform; }
.elementor .eb-film-frame{
  flex: 0 0 auto; width: clamp(236px, 20vw, 318px); aspect-ratio: 4 / 5;
  margin: 0 7px; padding: 0; position: relative; overflow: hidden; cursor: pointer;
  background-color: #0E0C0B;
}
.eb-film-frame img{ width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); transition: filter .8s var(--eb-ease); }
.eb-film-frame:hover img{ filter: grayscale(.15) contrast(1.05); }
.eb-film-frame:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: -3px; }

/* The plaque rests out of sight and rises on hover. */
.elementor .eb-plaque{
  position: absolute; left: 0; right: 0; bottom: 0; width: auto; z-index: 3;
  background-color: color-mix(in srgb, var(--eb-ink) 80%, transparent);
  padding: 13px 16px; text-align: left; opacity: 0; transform: translateY(6px);
  transition: opacity .55s var(--eb-ease), transform .55s var(--eb-ease);
}
.eb-film-frame:hover .eb-plaque, .eb-film-frame:focus-visible .eb-plaque{ opacity: 1; transform: none; }

.eb-scrim{
  position: fixed; inset: 0; z-index: 310; background-color: color-mix(in srgb, var(--eb-ink) 42%, transparent);
  opacity: 0; pointer-events: none; transition: opacity .6s var(--eb-ease);
}
.eb-scrim.is-open{ opacity: 1; pointer-events: auto; }

.elementor .eb-drawer{
  position: fixed; top: 0; right: 0; height: 100vh; height: 100dvh; width: min(420px, 92vw); max-width: none;
  z-index: 320; background-color: var(--eb-cream); overflow-y: auto; overscroll-behavior: contain;
  transform: translateX(100%); transition: transform .8s var(--eb-ease);
  box-shadow: -40px 0 90px -60px color-mix(in srgb, var(--eb-ink) 90%, transparent);
}
.elementor .eb-drawer.is-open{ transform: none; }
.elementor .eb-story{ display: none; }
.elementor .eb-story.is-on{ display: flex; }
.elementor .eb-drawer-close{
  position: absolute; top: 14px; right: 18px; z-index: 3; width: auto;
}
.eb-drawer-close .elementor-heading-title{ cursor: pointer; }
html.eb-locked{ overflow: hidden; }

/* =========================================================
   35. Rules, bands and lists
   ========================================================= */
/* A row of equal cells between two hairlines, the design's statistics band. */
.elementor .eb-band{ flex-wrap: wrap; border-top: 1px solid var(--eb-hair); border-bottom: 1px solid var(--eb-hair); }
.elementor .eb-band-cell{ flex: 1 1 200px; width: auto; }
.elementor .eb-band-cell-300{ flex: 1 1 300px; width: auto; }
.elementor .eb-band-cell-220{ flex: 1 1 220px; width: auto; }
.eb-band-tint{ transition: background-color .5s var(--eb-ease); }
.eb-band-tint:hover{ background-color: color-mix(in srgb, var(--eb-brass) 7%, transparent); }
.eb-band-tint:hover .eb-band-h .elementor-heading-title{ color: var(--eb-bordeaux); }
.eb-band-h .elementor-heading-title{ transition: color .5s var(--eb-ease); }

/* On cream the dividing lines are ink; on bordeaux they are cream. */
.elementor .eb-rules-cream{ border-top-color: var(--eb-cream-rule); }
.elementor .eb-rule-l{ border-left: 1px solid var(--eb-hair); }
.elementor .eb-rule-b{ border-bottom: 1px solid var(--eb-hair); }
.elementor .eb-on-dark .eb-rule-l, .elementor .eb-rule-l-cream{ border-left-color: var(--eb-cream-rule); }
.elementor .eb-on-dark .eb-rule-b, .elementor .eb-rule-b-cream{ border-bottom-color: var(--eb-cream-rule); }
@media (max-width: 1024px){ .elementor .eb-rule-l, .elementor .eb-rule-l-cream{ border-left: 0; } }

/* The milestone list: a fixed label column, then the entry. */
.elementor .eb-mile-item{ border-bottom: 1px solid var(--eb-hair); display: grid; grid-template-columns: 96px 1fr; gap: 20px; align-items: baseline; width: 100%; }
@media (max-width: 767px){ .elementor .eb-mile-item{ grid-template-columns: 1fr; gap: 8px; } }
.elementor .eb-mile-list{ border-top: 1px solid var(--eb-hair); }

/* The figure stack the list drives. Only one is lit at a time. */
.elementor .eb-mile-stack{ position: relative; aspect-ratio: 4 / 3; overflow: hidden; background-color: var(--eb-cream); }
.elementor .eb-mile-fig{ position: absolute; inset: 0; opacity: 0; transition: opacity 1s var(--eb-ease); }
.elementor .eb-mile-fig.is-on{ opacity: 1; }
.elementor .eb-mile-sticky{ position: sticky; top: 150px; }
@media (max-width: 1024px){ .elementor .eb-mile-sticky{ position: static; } }

/* =========================================================
   36. Cross-fading slides
   ========================================================= */
.elementor .eb-carousel{ position: relative; }
.elementor .eb-car-stack{ position: relative; aspect-ratio: 4 / 3; overflow: hidden; background-color: var(--eb-cream); }
.elementor .eb-car-slide{ position: absolute; inset: 0; opacity: 0; transition: opacity 1.1s var(--eb-ease); }
.elementor .eb-car-slide.is-on{ opacity: 1; }
.elementor .eb-car-slide img{ width: 100%; height: 100%; object-fit: cover; }
.elementor .eb-car-dots{ display: flex; gap: 11px; width: auto; }
.elementor .eb-car-dot{ width: 34px; height: 2px; flex: 0 0 34px; padding: 0; cursor: pointer;
  background-color: color-mix(in srgb, var(--eb-ink) 20%, transparent); transition: background-color .5s var(--eb-ease); }
.elementor .eb-car-dot.is-on{ background-color: var(--eb-bordeaux); }

/* =========================================================
   37. Tab group
   ========================================================= */
.elementor .eb-tab-panel{ display: none; }
.elementor .eb-tab-panel.is-on{ display: flex; }
.eb-tab-btn{ cursor: pointer; }

/* =========================================================
   38. The chip row: a label that fills with bordeaux on hover
   ========================================================= */
.elementor .eb-chip .elementor-button{
  position: relative; overflow: hidden; border: 1px solid var(--eb-hair); background-color: transparent;
  color: var(--eb-ink2); padding: 15px 30px; border-radius: 0;
  transition: color .5s var(--eb-ease), border-color .5s var(--eb-ease), transform .5s var(--eb-ease), box-shadow .5s var(--eb-ease);
}
.elementor .eb-chip .elementor-button::before{
  content: ""; position: absolute; inset: 0; z-index: 0; background-color: var(--eb-bordeaux);
  transform: translateY(101%); transition: transform .6s var(--eb-ease);
}
.elementor .eb-chip .elementor-button-content-wrapper{ position: relative; z-index: 1; }
.elementor .eb-chip .elementor-button:hover{
  color: var(--eb-cream); border-color: var(--eb-bordeaux); transform: translateY(-2px);
  box-shadow: 0 18px 34px -22px color-mix(in srgb, var(--eb-ink) 75%, transparent);
}
.elementor .eb-chip .elementor-button:hover::before{ transform: none; }

/* =========================================================
   39. The FAQ accordion, drawn as the design draws it
   ========================================================= */
.eb-faq .e-n-accordion-item{ border-bottom: 1px solid var(--eb-hair); }
.eb-faq{ border-top: 1px solid var(--eb-hair); }
.eb-faq .e-n-accordion-item-title{ padding: 28px 0; background: none; border: 0; gap: 24px; }
.eb-faq .e-n-accordion-item-title-text{ color: var(--eb-ink); }
.eb-faq .e-n-accordion-item-title-icon{ color: var(--eb-brass); }
.eb-faq details[open] .e-n-accordion-item-title-icon{ transform: rotate(135deg); }
.eb-faq .e-n-accordion-item-title-icon > span{ transition: transform .5s var(--eb-ease); }
.eb-faq .e-con.e-child{ padding: 0 0 30px; }

/* An overlapping card pulled back over the photograph beside it. */
.elementor .eb-overlap-card{ position: relative; z-index: 2; border: 1px solid var(--eb-hair); box-shadow: 0 40px 80px -70px color-mix(in srgb, var(--eb-ink) 90%, transparent); margin-left: -72px; }
@media (max-width: 1024px){ .elementor .eb-overlap-card{ margin-left: 22px; margin-right: 22px; margin-top: -40px; } }

/* A brass hairline used as a section ornament. */
.eb-hairline-brass{ height: 1px; background-color: var(--eb-brass); opacity: .6; }
/* =========================================================
   40. EB Post Cards: the row and compact layouts
   ========================================================= */
/* Rows: the plate keeps a fixed share of the line, the copy takes the rest,
   and a hairline closes each entry. */
.eb-pc--rows{ display: flex; flex-direction: column; gap: 0; }
.eb-pc--rows .eb-pc__card{ flex: 0 0 auto; flex-direction: row; flex-wrap: wrap; gap: 38px; align-items: flex-start; padding: 38px 0; border-bottom: 1px solid var(--eb-hair); }
.eb-pc--rows .eb-pc__plate{ flex: 0 1 300px; aspect-ratio: 4 / 3; }
.eb-pc--rows .eb-pc__body{ flex: 1 1 300px; min-width: 0; }
.eb-pc--rows .eb-pc__cat{ margin-top: 0; }
.eb-pc--rows .eb-pc__stand{ max-width: 52ch; }
@media (max-width: 600px){
  .eb-pc--rows .eb-pc__card{ gap: 22px; }
  .eb-pc--rows .eb-pc__plate{ flex: 1 1 100%; }
}

/* Compact: a small plate and the title on one line, for a sidebar list. */
.eb-pc--compact{ display: flex; flex-direction: column; gap: 18px; }
.eb-pc--compact .eb-pc__card{ flex: 0 0 auto; flex-direction: row; align-items: center; gap: 16px; }
.eb-pc--compact .eb-pc__plate{ flex: none; width: 74px; height: 64px; aspect-ratio: auto; }
.eb-pc--compact .eb-pc__body{ min-width: 0; }
.eb-pc--compact .eb-pc__cat{ display: none; }

/* The standfirst and the quiet link, shared by both wide layouts. */
.eb-pc__stand{ margin: 14px 0 0; color: var(--eb-ink2); }
/* Read more has two looks, chosen in Customizer > Custom Settings > Journal,
   which sets eb-rm-button or eb-rm-link on the body. Its hover belongs to the
   button alone: on a post card it is its own link (out of the tab order, the
   card link already carries the post) lifted above the card's link overlay,
   so the pointer reaches it and hovering the rest of the card leaves it be. */
.eb-pc__more{ position: relative; z-index: 6; }

/* Button (default): the house bordeaux action of .eb-btn-primary, a filled
   rectangle whose ink panel wipes up from the bottom edge. */
.eb-rm-button .eb-pc__more,
.eb-rm-button .eb-fs-more{
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-block; align-self: flex-start; margin-top: 26px; padding: 19px 44px;
  border: 0; border-radius: 0; background-color: var(--eb-bordeaux); color: var(--eb-cream);
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 11px; line-height: 1.75;
  letter-spacing: .24em; text-transform: uppercase; text-decoration: none;
  transition: transform .5s var(--eb-ease), box-shadow .5s var(--eb-ease), color .45s var(--eb-ease);
}
.eb-rm-button .eb-fs-more{ margin-top: 34px; }
.eb-rm-button .eb-rm-arrow{ display: none; }
.eb-rm-button .eb-pc__more::before,
.eb-rm-button .eb-fs-more::before{
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--eb-ink);
  transform: translateY(101%); transition: transform .55s var(--eb-ease);
}
.eb-rm-button .eb-pc__more:hover,
.eb-rm-button .eb-fs-more:hover,
.eb-rm-button .eb-fs-more:focus-visible{
  color: var(--eb-cream); transform: translateY(-2px);
  box-shadow: 0 18px 34px -22px color-mix(in srgb, var(--eb-ink) 75%, transparent);
}
.eb-rm-button .eb-pc__more:hover::before,
.eb-rm-button .eb-fs-more:hover::before,
.eb-rm-button .eb-fs-more:focus-visible::before{ transform: translateY(0); }
.eb-rm-button .eb-fs-more:focus-visible{ outline: 1px solid var(--eb-bordeaux); outline-offset: 6px; }
/* The light sweep of the house buttons (eb-motion.js [data-shine]): the same
   bar and ebSweep timing, drawn in CSS, run each time the button is entered. */
.eb-rm-button .eb-pc__more::after,
.eb-rm-button .eb-fs-more::after{
  content: ""; position: absolute; top: -40%; left: -45%; width: 38%; height: 180%;
  pointer-events: none; transform: rotate(14deg); opacity: 0;
  background: linear-gradient(90deg, color-mix(in srgb, var(--eb-cream) 0%, transparent), color-mix(in srgb, var(--eb-cream) 50%, transparent), color-mix(in srgb, var(--eb-cream) 0%, transparent));
}
.eb-rm-button .eb-pc__more:hover::after,
.eb-rm-button .eb-fs-more:hover::after{ opacity: 1; animation: ebSweep 1.15s var(--eb-ease) both; }
@media (prefers-reduced-motion: reduce){
  .eb-rm-button .eb-pc__more::after,
  .eb-rm-button .eb-fs-more::after{ display: none; }
}

/* Link: the earlier quiet word, hairline underline, tracking opens on hover. */
.eb-rm-link .eb-pc__more{ display: inline-block; margin-top: 22px; padding-bottom: 6px; border-bottom: 1px solid var(--eb-hair); color: var(--eb-bordeaux); text-decoration: none; transition: letter-spacing .5s var(--eb-ease), border-color .5s var(--eb-ease); }
.eb-rm-link .eb-pc__more:hover{ color: var(--eb-bordeaux); border-bottom-color: var(--eb-bordeaux); letter-spacing: .3em; }
.eb-rm-link .eb-fs-more{
  display: inline-block; align-self: flex-start; margin-top: 34px; padding-bottom: 8px;
  border-bottom: 1px solid var(--eb-bordeaux); color: var(--eb-bordeaux);
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 11px;
  letter-spacing: .22em; text-transform: uppercase; transition: letter-spacing .5s var(--eb-ease);
}
.eb-rm-link .eb-fs-more:hover,
.eb-rm-link .eb-fs-more:focus-visible{ letter-spacing: .3em; }

/* =========================================================
   41. Paging
   ========================================================= */
.eb-pg{ display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-top: 34px; }
.eb-pg__count{ font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--eb-ink2); }
.eb-pg__links{ display: flex; gap: 12px; }
.eb-pg__links .page-numbers{
  display: flex; align-items: center; justify-content: center; width: 46px; height: 46px;
  border: 1px solid var(--eb-hair); color: var(--eb-ink2);
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 13px; line-height: 1;
  transition: color .45s var(--eb-ease), border-color .45s var(--eb-ease), background-color .45s var(--eb-ease);
}
.eb-pg__links .page-numbers:hover{ color: var(--eb-bordeaux); border-color: var(--eb-brass); }
.eb-pg__links .page-numbers.current{ color: var(--eb-cream); background-color: var(--eb-bordeaux); border-color: var(--eb-bordeaux); }
.eb-pg__links .page-numbers.dots{ border-color: transparent; }

/* =========================================================
   42. Filter chips: the category row above the journal list
   ========================================================= */
.elementor .eb-filters{ display: flex; flex-wrap: wrap; gap: 10px; }
.elementor .eb-filter .elementor-button{
  background-color: transparent; color: var(--eb-ink2); border: 1px solid var(--eb-hair);
  padding: 11px 22px; border-radius: 0;
  transition: color .45s var(--eb-ease), background-color .45s var(--eb-ease), border-color .45s var(--eb-ease);
}
.elementor .eb-filter .elementor-button:hover{ color: var(--eb-bordeaux); border-color: var(--eb-brass); }
.elementor .eb-filter-on .elementor-button,
.elementor .eb-filter .elementor-button:hover.is-on{
  background-color: var(--eb-bordeaux); border-color: var(--eb-bordeaux); color: var(--eb-cream);
}
.elementor .eb-filter-on .elementor-button:hover{ color: var(--eb-cream); border-color: var(--eb-bordeaux); }
/* =========================================================
   43. The coded templates: single post, archive, search
   These carry the same rail, tokens and type as the builder
   documents, so the two halves of the site read as one.
   ========================================================= */
.eb-rail{ max-width: 1320px; margin: 0 auto; padding-left: var(--eb-gut); padding-right: var(--eb-gut); }
.eb-rail-narrow{ max-width: 1072px; }

.eb-eyebrow.eb-eyebrow{
  display: block; font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 11px;
  line-height: 1.75; letter-spacing: .34em; text-transform: uppercase; color: var(--eb-brass);
}
.eb-eyebrow-wide{ letter-spacing: .42em; }
.eb-side-h.eb-side-h{
  display: block; font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px;
  line-height: 1.75; letter-spacing: .26em; text-transform: uppercase; color: var(--eb-brass); margin: 0;
}
.eb-quiet.eb-quiet{
  display: inline-block; font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 11px;
  letter-spacing: .22em; text-transform: uppercase; color: var(--eb-bordeaux);
  padding-bottom: 6px; border-bottom: 1px solid var(--eb-hair);
  transition: letter-spacing .5s var(--eb-ease), border-color .5s var(--eb-ease);
}
.eb-quiet:hover{ letter-spacing: .3em; border-bottom-color: var(--eb-bordeaux); }
.eb-diamond-sm{ display: block; flex: none; width: 3px; height: 3px; transform: rotate(45deg); background-color: var(--eb-brass); }

/* ---- the hero band both the post and the archives open with ---- */
.eb-post-hero, .eb-arch-hero{ position: relative; overflow: hidden; }
.eb-post-hero__glow, .eb-arch-hero__glow{
  position: absolute; left: 50%; top: -40%; width: min(140%, 1100px); aspect-ratio: 1;
  transform: translateX(-50%); pointer-events: none;
  background: radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--eb-brass) 15%, transparent), transparent 62%);
}
.eb-arch-hero__glow{ top: -26%; width: min(140%, 1180px); background: radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--eb-brass) 16%, transparent), transparent 62%); }

.eb-post-hero__copy{ position: relative; max-width: 1092px; margin: 0 auto; padding: 78px var(--eb-gut) 58px; text-align: center; }
.eb-arch-hero__copy{ position: relative; padding-top: 96px; padding-bottom: 66px; text-align: center; }

.eb-crumbs{ display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap;
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--eb-ink2); }
.eb-crumbs a{ color: var(--eb-ink2); transition: color .45s var(--eb-ease); }
.eb-crumbs a:hover{ color: var(--eb-bordeaux); }
.eb-crumbs__here{ color: var(--eb-brass); }

.eb-post-title.eb-post-title{
  font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; line-height: 1.04;
  font-size: clamp(36px, 5.4vw, 74px); letter-spacing: -.02em; color: var(--eb-ink); margin: 22px 0 0;
}
.eb-arch-title.eb-arch-title{
  font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; line-height: .96;
  font-size: clamp(48px, 9vw, 140px); letter-spacing: -.03em; color: var(--eb-ink); margin: 24px 0 0;
}
.eb-post-meta{
  display: flex; align-items: center; justify-content: center; gap: 18px; flex-wrap: wrap; margin-top: 28px;
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px; letter-spacing: .22em;
  text-transform: uppercase; color: var(--eb-ink2);
}
.eb-arch-rule{ display: flex; align-items: center; justify-content: center; gap: 26px; margin-top: 22px; }
.eb-arch-rule span{
  font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-weight: 300;
  font-size: clamp(20px, 2.3vw, 30px); line-height: 1.3; color: var(--eb-bordeaux); white-space: nowrap;
}
.eb-arch-rule i{ display: block; height: 1px; flex: 0 1 180px; background: linear-gradient(90deg, transparent, var(--eb-brass)); }
.eb-arch-rule i:last-child{ background: linear-gradient(270deg, transparent, var(--eb-brass)); }
@media (max-width: 680px){
  .eb-arch-rule{ gap: 14px; }
  .eb-arch-rule i{ display: none; }
  .eb-arch-rule span{ white-space: normal; }
}

.eb-post-lede{ max-width: 1320px; margin: 0 auto; padding: 0 var(--eb-gut) 66px; }
.eb-post-lede__plate{ overflow: hidden; background-color: var(--eb-cream2); aspect-ratio: 16 / 9; }
.eb-post-lede__plate img{ width: 100%; height: 100%; object-fit: cover; }

/* ---- the two-column body ---- */
.eb-post-main{ padding: 78px 0 96px; }
.eb-arch-main{ padding: 110px 0; }
.eb-post-grid{ display: flex; gap: 78px; align-items: flex-start; flex-wrap: wrap; }
.eb-post-col{ flex: 1 1 600px; min-width: 0; }
.eb-arch-main .eb-post-col{ flex: 1 1 560px; }
.eb-post-side{ flex: 1 1 300px; position: sticky; top: 150px; }
@media (max-width: 1024px){ .eb-post-side{ position: static; } .eb-post-grid{ gap: 56px; } }

.eb-post-body{ font-family: "Jost", system-ui, sans-serif; font-size: 17px; line-height: 1.95; color: var(--eb-ink2); font-weight: 400; max-width: 68ch; }
.eb-post-body > p{ margin: 18px 0 0; }
/* The opening paragraph is the standfirst: serif, italic, closed by a hairline. */
.eb-post-body > p:first-child{
  font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-weight: 300;
  font-size: clamp(22px, 2.4vw, 29px); line-height: 1.55; color: var(--eb-ink);
  margin: 0; padding-bottom: 34px; border-bottom: 1px solid var(--eb-hair);
}
.eb-post-body > p:first-child + *{ margin-top: 34px; }
.eb-post-body.eb-post-body h2{
  font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; font-size: clamp(27px, 3vw, 38px);
  line-height: 1.2; color: var(--eb-ink); margin: 52px 0 0; scroll-margin-top: calc(var(--eb-hh) + 28px);
}
.eb-post-body.eb-post-body h3{ font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; font-size: clamp(23px, 2.4vw, 30px); line-height: 1.25; color: var(--eb-ink); margin: 42px 0 0; }
.eb-post-body.eb-post-body a{ color: var(--eb-bordeaux); border-bottom: 1px solid color-mix(in srgb, var(--eb-brass) 50%, transparent); }
.eb-post-body strong, .eb-post-body b{ font-weight: 500; color: var(--eb-ink); }
.eb-post-body ul, .eb-post-body ol{ margin: 20px 0 0; padding-left: 22px; display: flex; flex-direction: column; gap: 14px; }
.eb-post-body li::marker{ color: var(--eb-brass); }
.eb-post-body.eb-post-body blockquote{
  margin: 52px 0 0; padding: 36px 0 36px 34px; border-left: 1px solid var(--eb-brass);
  font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-weight: 300;
  font-size: clamp(23px, 2.6vw, 31px); line-height: 1.45; color: var(--eb-ink);
}
.eb-post-body blockquote p{ margin: 0; }
.eb-post-body figure, .eb-post-body .wp-block-image{ margin: 52px 0 0; }
.eb-post-body img{ width: 100%; height: auto; }
.eb-post-body figcaption{
  font-family: "Jost", system-ui, sans-serif; font-size: 12.5px; letter-spacing: .06em; font-weight: 400;
  color: var(--e-global-color-ebinkfaint); margin-top: 14px; text-align: left;
}

/* ---- what closes the essay ---- */
.eb-post-filed{ margin-top: 46px; padding-top: 26px; border-top: 1px solid var(--eb-hair); max-width: 68ch; }
.eb-post-filed__row{ display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.eb-tagchip{
  display: inline-block; padding: 9px 18px; border: 1px solid var(--eb-hair);
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 11px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--eb-ink2);
  transition: color .45s var(--eb-ease), border-color .45s var(--eb-ease);
}
.eb-tagchip:hover{ color: var(--eb-bordeaux); border-color: var(--eb-brass); }

.eb-post-author{
  display: flex; gap: 30px; align-items: flex-start; flex-wrap: wrap; margin-top: 30px;
  padding: 26px 0; border-top: 1px solid var(--eb-hair); border-bottom: 1px solid var(--eb-hair); max-width: 68ch;
}
.eb-post-author__face{ flex: none; width: 104px; height: 104px; object-fit: cover; border-radius: 50%; }
.eb-post-author__body{ flex: 1 1 260px; min-width: 0; }
.eb-post-author__name.eb-post-author__name{ font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; font-size: 28px; line-height: 1.15; color: var(--eb-ink); margin: 8px 0 0; }
.eb-post-author__body p{ color: var(--eb-ink2); font-size: 15px; line-height: 1.85; margin: 12px 0 0; }
.eb-post-author__body .eb-quiet.eb-quiet{ margin-top: 16px; }

.eb-post-nav{ display: flex; gap: 34px; flex-wrap: wrap; max-width: 68ch; }
.eb-post-nav a{ flex: 1 1 260px; padding: 24px 0; min-width: 0; }
.eb-post-nav__next{ text-align: right; }
.eb-post-nav__t{
  display: block; font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; font-size: 23px;
  line-height: 1.25; margin-top: 10px; color: var(--eb-ink); transition: color .45s var(--eb-ease);
}
.eb-post-nav a:hover .eb-post-nav__t{ color: var(--eb-bordeaux); }

/* ---- the sidebar ---- */
.eb-side-card{ border: 1px solid var(--eb-hair); background-color: var(--eb-paper); padding: 28px 26px; }
.eb-side-block{ margin-top: 38px; }
.eb-side-block:first-child, .eb-post-side > .eb-side-card:first-child{ margin-top: 0; }
.eb-side-toc{ list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.eb-side-toc a{ display: block; font-family: "Jost", system-ui, sans-serif; font-weight: 400; font-size: 14.5px; line-height: 1.5; color: var(--eb-ink2); transition: color .35s, padding-left .4s var(--eb-ease); }
.eb-side-toc a:hover{ color: var(--eb-bordeaux); padding-left: 5px; }

.eb-side-search{ display: flex; align-items: flex-end; gap: 12px; margin-top: 16px; }
.eb-side-search .eb-field{ position: relative; display: block; flex: 1; min-width: 0; }
.eb-side-search input{
  width: 100%; background: none; border: 0; border-bottom: 1px solid var(--eb-hair);
  font-family: "Jost", system-ui, sans-serif; font-size: 15px; color: var(--eb-ink); padding: 12px 4px; font-weight: 400;
}
.eb-side-search input:focus{ outline: none; }
.eb-side-search button.eb-go, .eb-side-search button[type="submit"]{
  background: none; border: 0; cursor: pointer; padding: 0 2px 12px;
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 11px; letter-spacing: .22em;
  text-transform: uppercase; color: var(--eb-bordeaux);
}

.eb-side-cats{ list-style: none; margin: 16px 0 0; padding: 0; border-top: 1px solid var(--eb-hair); }
.eb-side-cats li{ border-bottom: 1px solid var(--eb-hair); }
.eb-side-cats a{ display: block; padding: 13px 0; font-family: "Jost", system-ui, sans-serif; font-weight: 400; font-size: 14.5px; line-height: 1.75; color: var(--eb-ink2); transition: color .35s, padding-left .4s var(--eb-ease); }
.eb-side-cats a:hover, .eb-side-cats a.is-on{ color: var(--eb-bordeaux); }
.eb-side-cats a:hover{ padding-left: 6px; }

.eb-side-pop{ list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.eb-side-pop a{ display: flex; gap: 16px; align-items: center; }
.eb-side-pop__plate{ flex: none; width: 74px; height: 64px; overflow: hidden; background-color: var(--eb-cream2); }
.eb-side-pop__plate img{ width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--eb-ease); }
.eb-side-pop a:hover .eb-side-pop__plate img{ transform: scale(1.08); }
.eb-side-pop__title{ font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; font-size: 19px; line-height: 1.25; color: var(--eb-ink); transition: color .45s var(--eb-ease); }
.eb-side-pop a:hover .eb-side-pop__title{ color: var(--eb-bordeaux); }

/* ---- the archive list head and its filter row ---- */
.eb-arch-head{ display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; border-bottom: 1px solid var(--eb-hair); padding-bottom: 26px; }
.eb-arch-h.eb-arch-h{ font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; line-height: 1.1; font-size: clamp(28px, 3.6vw, 46px); color: var(--eb-ink); margin: 14px 0 0; }
.eb-arch-count{ font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--eb-ink2); }
.eb-arch-list{ margin-top: 44px; }
.eb-arch-empty{ font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-size: 22px; color: var(--eb-ink2); padding: 56px 0; text-align: center; }
.eb-filters{ display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.eb-filterchip{
  display: inline-block; padding: 11px 22px; border: 1px solid var(--eb-hair); background: none;
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--eb-ink2);
  transition: color .45s var(--eb-ease), border-color .45s var(--eb-ease), background-color .45s var(--eb-ease);
}
.eb-filterchip:hover{ color: var(--eb-bordeaux); border-color: var(--eb-brass); }
.eb-filterchip.is-on{ background-color: var(--eb-bordeaux); border-color: var(--eb-bordeaux); color: var(--eb-cream); }

/* ---- keep reading ---- */
.eb-more{ background-color: var(--eb-paper); padding: 88px 0; }
.eb-more__head{ display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; border-bottom: 1px solid var(--eb-hair); padding-bottom: 24px; }
.eb-more__h.eb-more__h{ font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; line-height: 1.1; font-size: clamp(26px, 3.2vw, 42px); color: var(--eb-ink); margin: 12px 0 0; }
.eb-more__grid{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px; margin-top: 40px; }
@media (max-width: 900px){ .eb-more__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px){ .eb-more__grid{ grid-template-columns: 1fr; } }
.eb-more__plate{ display: block; aspect-ratio: 4 / 3; overflow: hidden; background-color: var(--eb-cream2); }
.eb-more__plate img{ width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--eb-ease); }
.eb-more__card:hover .eb-more__plate img{ transform: scale(1.06); }
.eb-more__cat{ display: block; font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--eb-brass); margin-top: 18px; }
.eb-more__t{ display: block; font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; font-size: 26px; line-height: 1.2; margin-top: 10px; color: var(--eb-ink); transition: color .45s var(--eb-ease); }
.eb-more__card:hover .eb-more__t{ color: var(--eb-bordeaux); }

/* ---- the letters band that closes the coded templates ---- */
.eb-band-letters{ padding: 104px 0; text-align: center; }
.eb-letters-h.eb-letters-h{ font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; line-height: 1.1; font-size: var(--eb-h2-letters); color: var(--eb-ink); max-width: 20ch; margin: 16px auto 0; }
.eb-letters-p{ color: var(--eb-ink2); font-size: 15.5px; line-height: 1.9; max-width: 56ch; margin: 22px auto 0; }
.eb-letters-form{ margin-top: 42px; }
/* =========================================================
   44. The letter: the Contact form
   Contact Form 7 supplies the fields; every rule the design
   draws around them is here, so the form template stays plain.
   ========================================================= */
.eb-letter-card .wpcf7 form{ display: flex; flex-direction: column; gap: 34px; margin-top: 40px; }
.eb-cf-group{ display: block; }
.eb-cf-legend{
  display: block; font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px;
  letter-spacing: .24em; text-transform: uppercase; color: var(--eb-ink2); margin-bottom: 16px;
}
.eb-cf-req{ color: var(--eb-brass); }
.eb-cf-opt{ color: var(--e-global-color-ebinkfaint); letter-spacing: .14em; }

/* Topic chips: a radio group drawn as the design's outlined labels. */
.eb-cf-chips .wpcf7-radio,
.eb-cf-checks .wpcf7-checkbox{ display: flex; flex-wrap: wrap; gap: 10px; }
.eb-cf-chips .wpcf7-list-item,
.eb-cf-checks .wpcf7-list-item{ margin: 0; }
.eb-cf-chips .wpcf7-list-item label{ display: block; cursor: pointer; }
.eb-cf-chips .wpcf7-list-item input{ position: absolute; opacity: 0; width: 1px; height: 1px; }
.eb-cf-chips .wpcf7-list-item-label{
  display: inline-block; border: 1px solid var(--eb-hair); padding: 12px 20px;
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 11px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--eb-ink2);
  transition: color .45s var(--eb-ease), border-color .45s var(--eb-ease), background-color .45s var(--eb-ease);
}
.eb-cf-chips .wpcf7-list-item label:hover .wpcf7-list-item-label{ color: var(--eb-bordeaux); border-color: var(--eb-brass); }
.eb-cf-chips .wpcf7-list-item input:checked + .wpcf7-list-item-label{
  background-color: var(--eb-bordeaux); border-color: var(--eb-bordeaux); color: var(--eb-cream);
}
.eb-cf-chips .wpcf7-list-item input:focus-visible + .wpcf7-list-item-label{ outline: 1px solid var(--eb-bordeaux); outline-offset: 3px; }

/* The mentorship group is a quiet aside of the topic above it. */
.eb-cf-sub{ display: none; border-left: 1px solid var(--eb-brass); padding: 2px 0 2px 22px; }
.eb-cf-sub.is-on{ display: block; }
.eb-cf-sub .eb-cf-legend{ color: var(--eb-brass); }
.eb-cf-checks .wpcf7-checkbox{ flex-direction: column; gap: 13px; }
.eb-cf-checks label{ display: flex; align-items: center; gap: 13px; cursor: pointer; }
.eb-cf-checks input[type="checkbox"]{ flex: none; width: 16px; height: 16px; accent-color: var(--eb-bordeaux); }
.eb-cf-checks .wpcf7-list-item-label{ font-family: "Jost", system-ui, sans-serif; font-size: 14.5px; color: var(--eb-ink2); font-weight: 400; }

/* Field rows. */
.eb-cf-row{ display: flex; gap: 34px; flex-wrap: wrap; }
.eb-cf-cell{ position: relative; display: block; flex: 1 1 220px; min-width: 0; }
.eb-cf-msg{ position: relative; display: block; }
.eb-letter-card .wpcf7 label{
  display: block; font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px;
  letter-spacing: .24em; text-transform: uppercase; color: var(--eb-ink2);
}
.eb-letter-card .wpcf7 .wpcf7-form-control-wrap{ display: block; }
.eb-letter-card .wpcf7 input[type="text"],
.eb-letter-card .wpcf7 input[type="email"],
.eb-letter-card .wpcf7 input[type="tel"]{
  width: 100%; background: none; border: 0; border-bottom: 1px solid var(--eb-hair);
  font-family: "Jost", system-ui, sans-serif; font-size: 16px; font-weight: 400;
  color: var(--eb-ink); padding: 14px 2px; border-radius: 0;
}
.eb-letter-card .wpcf7 textarea{
  display: block; width: 100%; background: none; border: 0; border-bottom: 1px solid var(--eb-hair);
  font-family: "Cormorant Garamond", Georgia, serif; font-size: 19px; line-height: 1.85; font-weight: 300;
  color: var(--eb-ink); padding: 14px 2px; border-radius: 0; resize: vertical;
}
.eb-letter-card .wpcf7 input:focus, .eb-letter-card .wpcf7 textarea:focus{ outline: none; }

/* Consent and the send row. */
.eb-cf-consent{ display: flex; flex-direction: column; gap: 14px; }
.eb-cf-consent .wpcf7-list-item{ margin: 0; }
.eb-letter-card .wpcf7 .eb-cf-consent label{
  display: flex; align-items: flex-start; gap: 14px; text-transform: none; letter-spacing: normal;
  font-size: 14px; font-weight: 400; color: var(--eb-ink2); line-height: 1.7;
}
.eb-cf-consent input[type="checkbox"]{ flex: none; width: 17px; height: 17px; margin-top: 5px; accent-color: var(--eb-bordeaux); }
.eb-cf-consent a{ color: var(--eb-bordeaux); border-bottom: 1px solid var(--eb-hair); }
.eb-cf-actions{ display: flex; align-items: center; gap: 28px; flex-wrap: wrap; padding-top: 6px; }
/* Send the letter: the house upward wipe of .eb-btn-primary. A submit input
   cannot carry a ::before panel, so the ink panel is a background layer that
   grows from the bottom edge. The label keeps its tracking on hover. */
.eb-letter-card .wpcf7 .wpcf7-submit{
  position: relative; overflow: hidden; border: 0; cursor: pointer; border-radius: 0;
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 11px; letter-spacing: .24em;
  text-transform: uppercase; padding: 19px 48px; color: var(--eb-cream);
  background-color: var(--eb-bordeaux);
  background-image: linear-gradient(var(--eb-ink), var(--eb-ink));
  background-repeat: no-repeat; background-position: 0 100%; background-size: 100% 0%;
  transition: background-size .55s var(--eb-ease), transform .5s var(--eb-ease), box-shadow .5s var(--eb-ease), opacity .3s var(--eb-ease);
}
.eb-letter-card .wpcf7 .wpcf7-submit:hover,
.eb-letter-card .wpcf7 .wpcf7-submit:focus-visible{
  background-color: var(--eb-bordeaux); background-size: 100% 100%; letter-spacing: .24em;
  transform: translateY(-2px);
  box-shadow: 0 18px 34px -22px color-mix(in srgb, var(--eb-ink) 75%, transparent);
}
/* The kit fills every focused submit with its accent; after a click the
   button would stay ink. It keeps bordeaux until hovered. */
.eb-letter-card .wpcf7 .wpcf7-submit:focus{ background-color: var(--eb-bordeaux); color: var(--eb-cream); }
.eb-letter-card .wpcf7 .wpcf7-submit:focus-visible{ outline: 1px solid var(--eb-bordeaux); outline-offset: 6px; }
/* Until the terms are accepted CF7 disables the button; it now looks it. While
   the telephone check or the send is running it fades the same way. */
.eb-letter-card .wpcf7 .wpcf7-submit:disabled{
  opacity: .45; cursor: not-allowed; background-size: 100% 0%; transform: none; box-shadow: none;
}
.eb-letter-card .wpcf7 form.submitting .wpcf7-submit,
.eb-letter-card .wpcf7 form.eb-tel-checking .wpcf7-submit{ opacity: .45; cursor: progress; }
.eb-cf-note{ font-family: "Jost", system-ui, sans-serif; font-size: 12.5px; font-weight: 400; color: var(--e-global-color-ebinkfaint); }
.eb-letter-card .wpcf7 form .wpcf7-response-output{ max-width: none; text-align: left; margin-top: 8px; }

/* A telephone number the phone check rejects, or any field CF7 rejects,
   keeps the burgundy underline until it is edited. */
.eb-letter-card .wpcf7 input.wpcf7-not-valid,
.eb-letter-card .wpcf7 textarea.wpcf7-not-valid{ border-bottom-color: var(--eb-bordeaux); }

/* Once sent, CF7 marks the form `sent`: the fields, the response line and the
   card's own eyebrow and title give way to the thank-you panel. */
.eb-cf-thanks{ display: none; }
.eb-letter-card .wpcf7 form.sent > :not(.eb-cf-thanks){ display: none; }
.eb-letter-card .wpcf7 form.sent{ margin-top: 0; }
.elementor .eb-letter-card:has(form.sent) .elementor-widget-heading{ display: none; }
.eb-letter-card .wpcf7 form.sent > .eb-cf-thanks{
  display: flex; flex-direction: column; align-items: center; text-align: center;
  padding: 8px 0 12px; animation: eb-thanks-in .9s var(--eb-ease) both;
}
.eb-cf-thanks:focus{ outline: none; }
.eb-cf-thanks-rule{ display: block; width: 1px; height: 46px; margin-bottom: 30px; background-color: color-mix(in srgb, var(--eb-ink) 55%, transparent); }
.eb-cf-thanks-eyebrow{
  margin: 0; font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 11px;
  letter-spacing: .3em; text-transform: uppercase; color: var(--eb-brass);
}
.eb-cf-thanks-title.eb-cf-thanks-title{
  margin: 22px 0 0; font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300;
  font-size: clamp(30px, 3.4vw, 44px); line-height: 1.15; letter-spacing: normal; text-transform: none; color: var(--eb-ink);
}
.eb-cf-thanks-lede{
  max-width: 44ch; margin: 24px auto 0; font-family: "Jost", system-ui, sans-serif; font-weight: 400;
  font-size: 16px; line-height: 1.9; color: var(--eb-ink2);
}
.eb-cf-thanks-lede em{ font-style: italic; color: var(--eb-bordeaux); }
/* A reader who ticked the newsletter box is reminded to confirm it (the
   response says eb_newsletter: pending and eb-letter.js marks the form). */
.eb-cf-thanks-doi{ display: none; }
.eb-letter-card .wpcf7 form.eb-doi-pending .eb-cf-thanks-doi{
  display: block; max-width: 46ch; margin: 28px auto 0; padding: 22px 28px;
  background-color: color-mix(in srgb, var(--eb-brass) 9%, var(--eb-paper));
}
.eb-cf-thanks-doi-eyebrow{
  margin: 0; font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px;
  letter-spacing: .28em; text-transform: uppercase; color: var(--eb-bordeaux);
}
.eb-cf-thanks-doi-text{
  margin: 10px 0 0; font-family: "Jost", system-ui, sans-serif; font-weight: 400;
  font-size: 14px; line-height: 1.8; color: var(--eb-ink2);
}
.eb-cf-thanks-note{
  max-width: 46ch; margin: 22px auto 0; font-family: "Jost", system-ui, sans-serif; font-weight: 400;
  font-size: 13px; line-height: 1.8; color: var(--e-global-color-ebinkfaint);
}
@keyframes eb-thanks-in{ from{ opacity: 0; transform: translateY(14px); } }
@media (prefers-reduced-motion: reduce){ .eb-letter-card .wpcf7 form.sent > .eb-cf-thanks{ animation: none; } }

/* The paper card the letter sits on. */
.elementor .eb-letter-card{ background-color: var(--eb-paper); position: relative; box-shadow: 0 50px 90px -80px color-mix(in srgb, var(--eb-ink) 90%, transparent); }
@media (max-width: 600px){
  .eb-cf-row{ gap: 26px; }
  .eb-letter-card .wpcf7 .wpcf7-submit{ padding: 19px 34px; }
}
/* =========================================================
   45. Inner pages, remaining frame rules
   ========================================================= */
/* A narrower rail than the site's, for the FAQ and the closing bands. */
.elementor .eb-rail-980{ max-width: 888px; margin-left: auto; margin-right: auto; }
.elementor .eb-rail-640{ max-width: 640px; margin-left: auto; margin-right: auto; }
.elementor .eb-rail-660{ max-width: 660px; margin-left: auto; margin-right: auto; }

/* The story drawer's inner rhythm. */
.elementor .eb-story{ flex-direction: column; }
/* The photograph opens whole, at its own proportion: a fixed strip cropped
   the portraits (heads and faces cut) once the story was clicked. The drawer
   scrolls, so a tall portrait simply pushes the words further down. */
.elementor .eb-story-plate{ overflow: hidden; background-color: var(--eb-cream2); }
.elementor .eb-story-plate img{ width: 100%; height: auto; filter: grayscale(1) contrast(1.05); }
.eb-film-static .eb-film-track{ transform: none; overflow-x: auto; scrollbar-width: thin; }
.eb-film-static .eb-plaque{ opacity: 1; transform: none; }

/* The drifting strip gets a little room at the smallest widths. */
@media (max-width: 600px){ .elementor .eb-film-frame{ width: clamp(200px, 62vw, 260px); } }

/* A caption plate whose credit line drops the tracking. */
.eb-cap-plain{ letter-spacing: .06em; text-transform: none; }

/* The 2x2 panel grid on bordeaux: the design alternates the inner padding so
   the text columns keep an even gutter either side of the dividing rule. */
.elementor .eb-panel-a{ padding-right: 34px; padding-left: 0; }
.elementor .eb-panel-b{ padding-right: 0; padding-left: 34px; }
@media (max-width: 1024px){
  .elementor .eb-panel-a, .elementor .eb-panel-b{ padding-left: 0; padding-right: 0; }
}

/* Divider tone. The widget draws the line; these only soften it, so the rule
   keeps the width and alignment set in the panel. */
.eb-hr .elementor-divider-separator{ opacity: 1; }
.eb-hr-brass .elementor-divider-separator{ opacity: .6; }
/* A hairline drawn by an empty container rather than a widget. */
.elementor .eb-hairline{ height: 1px; background-color: var(--eb-hair); }

/* The pillar band keeps its cells even and its rules tidy when it wraps. */
.elementor .eb-band > .e-con-inner{ flex-wrap: wrap; }
/* =========================================================
   46. Measures and ratio boxes used by the inner pages
   ========================================================= */
.eb-measure-46 .elementor-widget-container, .eb-measure-46 p{ max-width: 46ch; }
.eb-measure-48 .elementor-widget-container, .eb-measure-48 p{ max-width: 48ch; }
.eb-measure-52 .elementor-widget-container, .eb-measure-52 p{ max-width: 52ch; }
.eb-measure-58 .elementor-widget-container, .eb-measure-58 p{ max-width: 58ch; }
.eb-measure-60 .elementor-widget-container, .eb-measure-60 p{ max-width: 60ch; }
.eb-measure-64 .elementor-widget-container, .eb-measure-64 p{ max-width: 64ch; }
.eb-measure-66 .elementor-widget-container, .eb-measure-66 p{ max-width: 66ch; }
.eb-measure-68 .elementor-widget-container, .eb-measure-68 p{ max-width: 68ch; }
.eb-measure-34 .elementor-widget-container, .eb-measure-34 p{ max-width: 34ch; }
.eb-measure-36 .elementor-widget-container, .eb-measure-36 p{ max-width: 36ch; }
.eb-measure-42 .elementor-widget-container, .eb-measure-42 p{ max-width: 42ch; }
.eb-measure-16 .elementor-heading-title{ max-width: 16ch; }
.eb-measure-18 .elementor-heading-title{ max-width: 18ch; }
.eb-measure-22 .elementor-heading-title{ max-width: 22ch; }

/* A figure box in a fixed ratio whose image fills it. */
.elementor .eb-4x5-box{ aspect-ratio: 4 / 5; }
.elementor .eb-16x9-box{ aspect-ratio: 16 / 9; }
.elementor .eb-1x1-box{ aspect-ratio: 1 / 1; }
.eb-4x5-box img, .eb-16x9-box img, .eb-1x1-box img, .eb-3x4 img, .eb-4x3 img, .eb-cover img{
  width: 100%; height: 100%; object-fit: cover;
}
.eb-4x3-img img{ width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.eb-3x4-img img{ width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.eb-4x5-box > .elementor-widget-image, .eb-16x9-box > .elementor-widget-image,
.eb-1x1-box > .elementor-widget-image, .eb-cover > .elementor-widget-image,
.eb-mile-fig > .elementor-widget-image, .eb-story-plate > .elementor-widget-image,
.eb-car-slide > .elementor-widget-image, .eb-film-frame > .elementor-widget-image{ height: 100%; }
.eb-mile-fig .elementor-widget-image, .eb-mile-fig .elementor-image{ height: 100%; }
.eb-film-frame .elementor-widget-image, .eb-film-frame .elementor-image,
.eb-story-plate .elementor-widget-image, .eb-story-plate .elementor-image,
.eb-car-slide .elementor-widget-image, .eb-car-slide .elementor-image{ height: 100%; }

/* The inset hairline sits on the figure, so its image must not claim the box. */
.eb-fig > .elementor-widget-image img{ width: 100%; }
/* =========================================================
   47. Mentorship: the film, the stepper, the masterclass plates
   ========================================================= */
/* The hero film. Elementor draws the <video>; the bar is the design's own. */
.elementor .eb-vid{ position: relative; overflow: hidden; background-color: var(--eb-cream2); aspect-ratio: 4 / 5; }
.eb-vid video{ width: 100%; height: 100%; object-fit: cover; display: block; }
.eb-vid .elementor-widget-video, .eb-vid .elementor-wrapper{ height: 100%; }
.eb-vid .elementor-wrapper::before{ display: none; }
.eb-vid .elementor-custom-embed-image-overlay{ background-size: cover; }
.eb-vid::after{
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(180deg, transparent 48%, color-mix(in srgb, var(--eb-ink) 42%, transparent));
}
.elementor .eb-vid-frame{ position: absolute; inset: 14px; z-index: 3; border: 1px solid var(--eb-brass); pointer-events: none; }

.elementor .eb-vid-bar{
  position: absolute; left: 26px; right: 26px; bottom: 26px; z-index: 4; width: auto;
  display: flex; align-items: center; gap: 16px; padding: 12px 16px;
  background-color: color-mix(in srgb, var(--eb-ink) 42%, transparent);
  backdrop-filter: blur(10px) saturate(1.1);
  border: 1px solid color-mix(in srgb, var(--eb-brass) 55%, transparent);
  opacity: 0; transition: opacity .5s var(--eb-ease);
}
.eb-vid:hover .eb-vid-bar, .eb-vid:focus-within .eb-vid-bar{ opacity: 1; }
@media (hover: none){ .elementor .eb-vid-bar{ opacity: 1; } }

.elementor .eb-vid-play{ flex: 0 0 auto; width: 26px; height: 26px; display: grid; place-items: center; cursor: pointer; }
.eb-vid-play .elementor-heading-title{ display: block; width: 9px; height: 12px; overflow: hidden; text-indent: -99em; border-left: 3px solid var(--e-global-color-ebcream80); border-right: 3px solid var(--e-global-color-ebcream80); }
.eb-vid:not(.is-playing) .eb-vid-play .elementor-heading-title{
  width: 0; height: 0; border-left: 10px solid var(--e-global-color-ebcream80);
  border-right: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent;
}
.elementor .eb-vid-track{ flex: 1 1 auto; position: relative; height: 16px; display: flex; align-items: center; cursor: pointer; }
.eb-vid-track .eb-vid-rail{ position: absolute; left: 0; right: 0; height: 1px; background-color: color-mix(in srgb, var(--eb-cream) 34%, transparent); }
.eb-vid-track .eb-vid-fill{ position: absolute; left: 0; width: 0; height: 1px; background-color: var(--eb-brass); }
.eb-vid-track .eb-vid-dot{ position: absolute; left: 0; width: 7px; height: 7px; border-radius: 50%; background-color: var(--e-global-color-ebcream80); margin-left: -3px; }
.elementor .eb-vid-time{ flex: 0 0 auto; width: auto; }
.elementor .eb-vid-sound{ flex: 0 0 auto; width: auto; display: flex; align-items: center; gap: 8px; cursor: pointer; }
.eb-vid-sound .eb-vid-led{ width: 6px; height: 6px; border-radius: 50%; border: 1px solid var(--eb-brass); background-color: transparent; }
.eb-vid:not(.is-muted) .eb-vid-sound .eb-vid-led{ background-color: var(--eb-brass); }

/* The stepper beside the hero copy. */
.elementor .eb-vstep{ position: relative; display: flex; gap: 22px; align-items: stretch; }
.elementor .eb-vstep-nav{ flex: none; width: auto; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding-top: 6px; }
.elementor .eb-vstep-prev, .elementor .eb-vstep-next{ width: auto; cursor: pointer; }
.eb-vstep-prev .elementor-heading-title, .eb-vstep-next .elementor-heading-title{ color: var(--eb-brass); line-height: 1; transition: color .4s var(--eb-ease), transform .4s var(--eb-ease); }
.eb-vstep-prev:hover .elementor-heading-title{ transform: translateY(-2px); color: var(--eb-bordeaux); }
.eb-vstep-next:hover .elementor-heading-title{ transform: translateY(2px); color: var(--eb-bordeaux); }
.elementor .eb-vstep-rail{ display: block; width: 1px; flex: 1; min-height: 52px; background-color: var(--eb-hair); position: relative; overflow: hidden; }
.elementor .eb-vstep-rail > *{ position: absolute; left: 0; top: 0; width: 1px; height: 33.33%; background-color: var(--eb-bordeaux); transition: top .6s var(--eb-ease); }
.elementor .eb-vstep-stack{ position: relative; flex: 1; min-width: 0; }
.elementor .eb-vstep-item{ position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity .6s var(--eb-ease); }
.elementor .eb-vstep-item.is-on{ position: relative; opacity: 1; pointer-events: auto; }

/* The masterclass plates: the card's face turns bordeaux under the pointer. */
.elementor .eb-mc-plate{ position: relative; aspect-ratio: 3 / 4; overflow: hidden; background-color: var(--eb-cream2); }
.eb-mc-plate img{ width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--eb-ease); }
.eb-mc-plate > .elementor-widget-image, .eb-mc-plate .elementor-image{ height: 100%; }
.eb-mc-plate::before{
  content: ""; position: absolute; inset: 0; z-index: 2; opacity: 0; pointer-events: none;
  transition: opacity .7s var(--eb-ease);
  background: linear-gradient(180deg, color-mix(in srgb, var(--eb-bordeaux) 42%, transparent) 0%, color-mix(in srgb, var(--eb-bordeaux) 78%, transparent) 62%, color-mix(in srgb, var(--eb-ink) 92%, transparent) 100%);
}
.eb-mc-plate::after{
  content: ""; position: absolute; inset: 14px; z-index: 5; pointer-events: none;
  border: 1px solid var(--eb-cream-rule); transition: inset .7s var(--eb-ease), border-color .7s var(--eb-ease);
}
.elementor .eb-mc-face{
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; width: auto;
  padding: 34px 26px; opacity: 0; transform: translateY(16px);
  transition: opacity .7s var(--eb-ease), transform .7s var(--eb-ease);
}
.eb-card:hover .eb-mc-plate img{ transform: scale(1.07); }
.eb-card:hover .eb-mc-plate::before{ opacity: 1; }
.eb-card:hover .eb-mc-plate::after{ inset: 20px; border-color: color-mix(in srgb, var(--eb-cream) 75%, transparent); }
.eb-card:hover .eb-mc-face{ opacity: 1; transform: none; }

/* The two-column button grid on the closing bordeaux band. */
.elementor .eb-doorgrid{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 750px; margin-left: auto; margin-right: auto; }
.elementor .eb-doorgrid > *:nth-child(odd){ justify-self: end; }
.elementor .eb-doorgrid > *:nth-child(even){ justify-self: start; }
@media (max-width: 600px){
  .elementor .eb-doorgrid{ grid-template-columns: 1fr; }
  .elementor .eb-doorgrid > *{ justify-self: stretch; }
}
/* On bordeaux the chip fills with cream and the label turns bordeaux. */
.elementor .eb-chip-invert .elementor-button{ border-color: var(--eb-cream-rule); color: var(--eb-cream); }
.elementor .eb-chip-invert .elementor-button::before{ background-color: var(--eb-cream); }
.elementor .eb-chip-invert .elementor-button:hover{ color: var(--eb-bordeaux); border-color: var(--eb-cream); }
/* =========================================================
   48. Mentorship, remaining frame rules
   ========================================================= */
.eb-glow-soft{ position: relative; overflow: hidden; }
.eb-glow-soft > .e-con-inner{ position: relative; z-index: 1; }
.eb-glow-soft::before{
  content: ""; position: absolute; left: 50%; top: -30%; width: min(140%, 1180px); aspect-ratio: 1;
  transform: translateX(-50%); z-index: 0; pointer-events: none;
  background: radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--eb-brass) 14%, transparent), transparent 62%);
}
.eb-measure-30 .elementor-heading-title{ max-width: 30ch; }
.eb-measure-20 .elementor-heading-title{ max-width: 20ch; }
.eb-measure-26 .elementor-heading-title{ max-width: 26ch; }
/* The reversed row the CROWNED section uses. */
.elementor .eb-row-reverse{ flex-direction: row-reverse; }
@media (max-width: 767px){ .elementor .eb-row-reverse{ flex-direction: column; } }
/* =========================================================
   49. Mentorship, type inside the answers and the doors
   ========================================================= */
.eb-faq-body p{ margin: 0 0 16px; }
.eb-faq-body p:last-child{ margin-bottom: 0; }
.eb-faq-body .eb-faq-name.eb-faq-name{
  font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; font-size: 26px;
  line-height: 1.2; color: var(--eb-ink);
}
.eb-faq-body .eb-faq-kicker.eb-faq-kicker{
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px;
  letter-spacing: .26em; text-transform: uppercase; color: var(--eb-brass);
}
.eb-faq-body .eb-faq-lede.eb-faq-lede{
  font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-weight: 300;
  font-size: 20px; line-height: 1.5; color: var(--eb-bordeaux);
}
.eb-faq-body a{ color: var(--eb-bordeaux); border-bottom: 1px solid var(--eb-hair); }

/* The doors: the italic phrase inside each line is the link. */
.eb-doorline .elementor-heading-title a{ color: var(--eb-brass); position: relative; display: inline-block; }
.eb-doorline .elementor-heading-title a em{ font-style: italic; }
.eb-doorline .elementor-heading-title a::after{
  content: ""; position: absolute; left: 0; bottom: -2px; width: 100%; height: 1px;
  background-color: color-mix(in srgb, var(--eb-cream) 55%, transparent);
  transform: scaleX(0); transform-origin: left; transition: transform .6s var(--eb-ease);
}
.eb-doorline .elementor-heading-title a:hover{ color: var(--e-global-color-ebcream80); }
.eb-doorline .elementor-heading-title a:hover::after{ transform: scaleX(1); }

.elementor .eb-rail-680{ max-width: 680px; margin-left: auto; margin-right: auto; }
.eb-measure-54 .elementor-widget-container, .eb-measure-54 p{ max-width: 54ch; }
.eb-tall-img img{ width: 100%; aspect-ratio: 2268 / 4032; object-fit: cover; }
/* The serif phrase that carries an italic bordeaux emphasis. */
.elementor .eb-serif-em .elementor-heading-title em{ font-style: italic; color: var(--eb-bordeaux); }
/* The poem sets its stanzas apart rather than running them together. */
.eb-poem-stack p{ margin: 0 0 20px; }
.eb-poem-stack p:last-child{ margin-bottom: 0; }
/* The stepper's rail marker, named so it reads in the panel. */
.elementor .eb-vstep-fill{ position: absolute; left: 0; top: 0; width: 1px; background-color: var(--eb-bordeaux); }
/* eb-mile and eb-film are behaviour hooks for the house script, not styles. */
/* =========================================================
   50. Contact: the hero plate, the letter card, the doors
   ========================================================= */
/* The hero portrait: a warm scrim, a light sweep, an inset hairline. */
.elementor .eb-contact-fig{ position: relative; overflow: hidden; background-color: var(--eb-cream2); min-height: 56svh; }
.eb-contact-fig > .elementor-widget-image, .eb-contact-fig .elementor-image, .eb-contact-fig .elementor-widget-container{ height: 100%; }
.eb-contact-fig img{ width: 100%; height: 100%; object-fit: cover; }
.eb-contact-fig::before{
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; mix-blend-mode: multiply; opacity: .92;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--eb-cream) 60%, transparent) 0%, color-mix(in srgb, var(--eb-cream) 8%, transparent) 18%, transparent 36%),
    linear-gradient(180deg, color-mix(in srgb, var(--eb-ink) 14%, transparent) 0%, transparent 34%, color-mix(in srgb, var(--eb-ink) 26%, transparent) 100%);
}
.eb-contact-fig::after{ content: ""; position: absolute; inset: 24px; z-index: 3; border: 1px solid var(--eb-cream-rule); pointer-events: none; }
.elementor .eb-contact-cap{ position: absolute; left: 44px; bottom: 44px; z-index: 4; width: auto;
  background-color: var(--e-global-color-ebcream90); backdrop-filter: blur(6px); }
@media (max-width: 767px){ .elementor .eb-contact-cap{ left: 22px; bottom: 22px; } }

/* The hero copy column carries the site's left gutter, not a column padding. */
.elementor .eb-contact-copy{ padding-left: max(var(--eb-gut), calc((100% - 1228px) / 2)); }

/* The meta row beneath the hero paragraph. */
.elementor .eb-metarow{ display: flex; flex-wrap: wrap; }
.elementor .eb-metaitem{ display: flex; align-items: center; gap: 11px; width: auto; }

/* The letter card. */
.elementor .eb-letter-card{ background-color: var(--eb-paper); position: relative; }

/* The aside cards beside the letter. */
.elementor .eb-side-panel{ border: 1px solid var(--eb-hair); }
.eb-dotlist ul{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.eb-dotlist li{ display: flex; gap: 11px; }
.eb-dotlist li::before{
  content: ""; flex: none; width: 4px; height: 4px; margin-top: 9px;
  transform: rotate(45deg); background-color: var(--eb-brass);
}
.eb-dotlist-14 li::before{ margin-top: 10px; }
.eb-dotlist a{ color: var(--eb-ink2); transition: color .45s var(--eb-ease), padding-left .45s var(--eb-ease); }
.eb-dotlist a:hover{ color: var(--eb-bordeaux); padding-left: 5px; }

/* The door rows: a wash that fills from the left under the pointer. */
.elementor .eb-doors{ border-bottom: 1px solid var(--eb-hair); }
.elementor .eb-door{
  display: flex; align-items: baseline; gap: 26px; border-top: 1px solid var(--eb-hair);
  padding: 28px 24px 28px 18px; width: 100%;
  background-image: linear-gradient(90deg, color-mix(in srgb, var(--eb-bordeaux) 5%, transparent), transparent 62%);
  background-repeat: no-repeat; background-size: 0 100%;
  transition: background-size .7s var(--eb-ease), padding-left .5s var(--eb-ease);
}
.elementor .eb-door:hover{ background-size: 100% 100%; padding-left: 30px; }
.elementor .eb-door-num{ flex: none; width: 26px; }
.elementor .eb-door-body{ flex: 1 1 auto; min-width: 0; }
.elementor .eb-door-go{ flex: none; width: auto; }
.eb-door:hover .eb-door-title .elementor-heading-title{ color: var(--eb-bordeaux); }
.eb-door-title .elementor-heading-title{ transition: color .45s var(--eb-ease); }
.eb-door:hover .eb-door-go .elementor-heading-title{ letter-spacing: .32em; color: var(--eb-bordeaux); }
.eb-door-go .elementor-heading-title{ transition: letter-spacing .5s var(--eb-ease), color .45s var(--eb-ease); }
@media (max-width: 600px){
  .elementor .eb-door{ flex-wrap: wrap; gap: 12px; padding-left: 0; padding-right: 0; }
  .elementor .eb-door:hover{ padding-left: 8px; }
}

/* The eight-tile salon grid. */
.elementor .eb-gram{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
@media (max-width: 767px){ .elementor .eb-gram{ grid-template-columns: repeat(2, 1fr); } }
.elementor .eb-gram-tile{ position: relative; aspect-ratio: 4 / 5; overflow: hidden; background-color: var(--eb-cream); }
.eb-gram-tile img{ width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--eb-ease); }
.eb-gram-tile:hover img{ transform: scale(1.06); }
.eb-gram-tile > .elementor-widget-image, .eb-gram-tile .elementor-image, .eb-gram-tile .elementor-widget-container{ height: 100%; }
/* The image link is inline by default, so the image kept its natural height. Make the link fill the tile so every photo crops to the same 4:5 frame. */
.eb-gram-tile .elementor-widget-image > a, .eb-gram-tile .elementor-image > a{ display: block; width: 100%; height: 100%; }
.elementor .eb-gram-tile > .elementor-widget-image{ width: 100%; }
/* The Blog page's four-tile row: a grid, so a tile never wraps alone and grows. */
.elementor .eb-gram-flow{ display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); gap: 0; }
.elementor .eb-gram-flow > .eb-gram-tile{ width: auto; min-width: 0; }

/* A figure with a scrim and an inset hairline, used beside the doors. */
.elementor .eb-scrim-fig{ position: relative; aspect-ratio: 4 / 5; overflow: hidden; background-color: var(--eb-cream2); max-width: 470px; }
.eb-scrim-fig img{ width: 100%; height: 100%; object-fit: cover; }
.eb-scrim-fig > .elementor-widget-image, .eb-scrim-fig .elementor-image, .eb-scrim-fig .elementor-widget-container{ height: 100%; }
.eb-scrim-fig::before{
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; mix-blend-mode: multiply;
  background: linear-gradient(180deg, color-mix(in srgb, var(--eb-ink) 28%, transparent) 0%, color-mix(in srgb, var(--eb-ink) 4%, transparent) 44%, color-mix(in srgb, var(--eb-ink) 44%, transparent) 100%);
}
.eb-scrim-fig::after{ content: ""; position: absolute; inset: 18px; z-index: 3; border: 1px solid var(--eb-cream-rule); pointer-events: none; }
.eb-measure-44 .elementor-widget-container, .eb-measure-44 p{ max-width: 44ch; }

/* =========================================================
   51. The journal's feature slider
   ========================================================= */
.eb-fs{ position: relative; }
.eb-fs-view{ overflow: hidden; }
.eb-fs-track{ display: flex; flex-wrap: nowrap; transition: transform .9s var(--eb-ease); will-change: transform; }
.eb-fs-item{ flex: 0 0 100%; display: flex; gap: 0; align-items: center; flex-wrap: wrap; min-width: 0; }
.eb-fs-plate{ flex: 1 1 50%; min-width: 0; overflow: hidden; background-color: var(--eb-cream2); position: relative; aspect-ratio: 4 / 3; }
.eb-fs-plate img{ width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--eb-ease); }
.eb-fs-item:hover .eb-fs-plate img{ transform: scale(1.05); }
.eb-fs-copy{ flex: 1 1 40%; min-width: 0; padding: 78px 0 78px 62px; display: flex; flex-direction: column; justify-content: center; }
@media (max-width: 900px){
  .eb-fs-plate{ flex: 1 1 100%; }
  .eb-fs-copy{ flex: 1 1 100%; padding: 36px 0 8px; }
}
.eb-fs-kicker{
  display: block; font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px;
  letter-spacing: .28em; text-transform: uppercase; color: var(--eb-brass);
}
.eb-fs-title.eb-fs-title{
  font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; line-height: 1.08;
  font-size: var(--eb-h2-feat); margin: 18px 0 0; max-width: 20ch;
}
.eb-fs-title a{ color: var(--eb-ink); transition: color .45s var(--eb-ease); }
.eb-fs-item:hover .eb-fs-title a, .eb-fs-title a:hover{ color: var(--eb-brass); }
.eb-fs-stand{ color: var(--eb-ink2); font-family: "Jost", system-ui, sans-serif; font-size: 15.5px; margin: 22px 0 0; line-height: 1.9; max-width: 52ch; }
/* The feature slide's Read more follows the Journal option; see section 40. */

.eb-fs-bar{ display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-top: 34px; }
.eb-fs-dots{ display: flex; align-items: center; gap: 12px; }
.eb-fs-dots .eb-fs-dot{ width: 34px; height: 2px; padding: 0; border: 0; cursor: pointer; background-color: var(--eb-hair); transition: background-color .5s var(--eb-ease); }
.eb-fs-dots .eb-fs-dot.is-on{ background-color: var(--eb-bordeaux); }
.eb-fs-count{ font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--eb-ink2); margin-left: 6px; }
.eb-fs-nav{ display: flex; gap: 12px; }
.eb-fs-nav button{
  width: 46px; height: 46px; border: 1px solid var(--eb-hair); background: none; cursor: pointer;
  color: var(--eb-ink2); font-size: 16px; line-height: 1;
  transition: color .45s var(--eb-ease), border-color .45s var(--eb-ease);
}
.eb-fs-nav button:hover{ color: var(--eb-bordeaux); border-color: var(--eb-brass); }
/* =========================================================
   52. EB Search widget
   ========================================================= */
.eb-sf{ display: flex; align-items: flex-end; gap: 12px; }
.eb-sf__cell{ position: relative; display: block; flex: 1; min-width: 0; }
.eb-sf__input{
  width: 100%; background: none; border: 0; border-bottom: 1px solid var(--eb-hair);
  padding: 12px 4px; border-radius: 0;
}
.eb-sf__input:focus{ outline: none; }
.eb-sf__input::-webkit-search-cancel-button{ -webkit-appearance: none; }
.eb-sf .eb-sf__go{ background: none; border: 0; cursor: pointer; padding: 0 2px 12px; transition: letter-spacing .5s var(--eb-ease); }
.eb-sf .eb-sf__go:hover{ letter-spacing: .3em; }
/* =========================================================
   53. The journal page
   ========================================================= */
.elementor .eb-taglines{ width: 100%; }
.elementor .eb-tagrule{ display: block; height: 1px; flex: 0 1 180px; width: auto; }
.elementor .eb-tagrule-l{ background: linear-gradient(90deg, transparent, var(--eb-brass)); }
.elementor .eb-tagrule-r{ background: linear-gradient(270deg, transparent, var(--eb-brass)); }
.elementor .eb-tagword{ width: auto; white-space: nowrap; }
@media (max-width: 680px){
  .elementor .eb-tagrule{ display: none; }
  .elementor .eb-tagword{ white-space: normal; }
}

/* The chip that marks the archive you are already in. */
.elementor .eb-chip-on .elementor-button{ background-color: var(--eb-bordeaux); border-color: var(--eb-bordeaux); color: var(--eb-cream); }
.elementor .eb-chip-on .elementor-button:hover{ color: var(--eb-cream); border-color: var(--eb-bordeaux); }
.elementor .eb-chip .elementor-button, .elementor .eb-chip-on .elementor-button{ padding: 11px 22px; }

/* The sidebar's category list, drawn as rules rather than bullets. */
.eb-catlist .elementor-icon-list-items{ border-top: 1px solid var(--eb-hair); }
.eb-catlist .elementor-icon-list-item{ border-bottom: 1px solid var(--eb-hair); }
.eb-catlist .elementor-icon-list-item > a{ padding: 13px 0; transition: padding-left .45s var(--eb-ease), color .45s var(--eb-ease); }
.eb-catlist .elementor-icon-list-item > a:hover{ padding-left: 5px; }
.eb-catlist .elementor-icon-list-icon{ display: none; }

/* The author portrait in the sidebar. */
.eb-round-120 img{ width: 120px; height: 120px; border-radius: 50%; object-fit: cover; }
.elementor .eb-minw-160{ min-width: min(100%, 160px); }
/* The kit gives every <button> the action panel. These controls draw their own,
   so they take it back at a weight that outranks it. */
.elementor .eb-fs-dots .eb-fs-dot,
.elementor .eb-fs-nav button,
.elementor .eb-sf .eb-sf__go,
.elementor .eb-side-search button{
  background-color: transparent; background-image: none; border-radius: 0; color: inherit;
}
.elementor .eb-fs-dots .eb-fs-dot{ background-color: var(--eb-hair); padding: 0; }
.elementor .eb-fs-dots .eb-fs-dot.is-on{ background-color: var(--eb-bordeaux); }
.elementor .eb-fs-nav button{ color: var(--eb-ink2); padding: 0; }
.elementor .eb-fs-nav button:hover{ color: var(--eb-bordeaux); border-color: var(--eb-brass); background-color: transparent; }
.elementor .eb-sf .eb-sf__go{ color: var(--eb-bordeaux); padding: 0 2px 12px; }
.elementor .eb-side-search button{ color: var(--eb-bordeaux); padding: 0 2px 12px; }
/* Note on the doubled class names above: Site Settings styles h1-h6, a and
   button by tag name, and the kit's stylesheet loads after this one, so a rule
   written with a single class ties and loses. Naming the class twice raises the
   weight by one class without inventing a wrapper element. */

/* =========================================================
   54. Legal pages: Privacy Policy, Terms and Conditions, Cookie Policy
   One frame for all three. The masthead, then a sticky contents rail beside
   the policy text. Section numbers are counters, so a section added or
   removed in the builder renumbers itself and its contents entry.
   ========================================================= */
@keyframes ebDrift{ 0%{ transform: translateX(-50%) translateY(0) scale(1); } 100%{ transform: translateX(-50%) translateY(30px) scale(1.09); } }

/* ---- masthead ---- */
.elementor .eb-legal-mast{ position: relative; overflow: hidden; }
.elementor .eb-legal-mast > .e-con-inner{ position: relative; z-index: 1; }
.elementor .eb-legal-mast::before{ content: ""; position: absolute; left: 50%; top: -46%; width: min(140%, 1100px); aspect-ratio: 1; transform: translateX(-50%); z-index: 0; pointer-events: none; background: radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--eb-brass) 15%, transparent), transparent 62%); animation: ebDrift 22s ease-in-out infinite alternate; }
.eb-legal-crumbs .elementor-heading-title{ display: block; }
.eb-legal-crumbs .elementor-heading-title a{ color: inherit; transition: color .35s; }
.eb-legal-crumbs .elementor-heading-title a:hover{ color: var(--eb-bordeaux); }
.elementor .eb-legal-crumbs > .e-con.eb-diamond-sm{ --width: 3px; width: 3px; min-width: 3px; height: 3px; min-height: 0; padding: 0; flex: none; }
.eb-legal-meta a{ color: inherit; transition: color .35s; }
.eb-legal-meta a:hover{ color: var(--eb-bordeaux); }
.eb-legal-h1 .elementor-heading-title{ max-width: 12ch; }
.eb-legal-h1-lg .elementor-heading-title{ max-width: 14ch; }
.eb-legal-h1 [data-rl]{ padding-bottom: .08em; }
.elementor .e-con > .elementor-widget.eb-legal-lede{ flex: 1 1 460px; min-width: min(100%, 300px); max-width: 62ch; text-wrap: pretty; }
.elementor .e-con.eb-legal-meta{ flex: 0 1 260px; min-width: min(100%, 240px); width: auto; }
.elementor .e-con.eb-legal-meta-item{ border-top: 1px solid var(--eb-hair); }

/* ---- the frame: rail and text ---- */
.elementor .e-con.eb-legal-side{ flex: 0 1 268px; min-width: min(100%, 250px); width: auto; position: sticky; top: 150px; align-self: flex-start; }
.elementor .e-con.eb-legal-body{ flex: 1 1 620px; min-width: min(100%, 320px); max-width: 780px; width: auto; counter-reset: ebsec; }
@media (max-width: 1100px){
  .elementor .e-con.eb-legal-grid.eb-legal-grid{ --gap: 46px 46px; --row-gap: 46px; --column-gap: 46px; }
}
@media (max-width: 980px){
  .elementor .e-con.eb-legal-side{ flex: 1 1 100%; position: static; }
}

/* ---- contents ---- */
.eb-legal-toc .elementor-icon-list-items{ counter-reset: ebtoc; display: flex; flex-direction: column; gap: 2px; }
.eb-legal-toc .elementor-icon-list-item{ counter-increment: ebtoc; padding: 0 !important; margin: 0 !important; }
.eb-legal-toc .elementor-icon-list-item > a{ display: flex !important; gap: 10px; align-items: baseline !important; padding: 7px 0 7px 12px; border-left: 1px solid transparent; transition: border-color .35s; }
.eb-legal-toc .elementor-icon-list-item > a::before{ content: counter(ebtoc, decimal-leading-zero); flex: none; min-width: 2.2em; font-size: 10.5px; line-height: 1.5; letter-spacing: .14em; color: var(--eb-brass); }
.eb-legal-toc .elementor-icon-list-text{ padding: 0 !important; transition: color .35s; }
.eb-legal-toc .elementor-icon-list-item.is-on > a{ border-left-color: var(--eb-brass); }
.eb-legal-toc .elementor-icon-list-item.is-on .elementor-icon-list-text{ color: var(--eb-bordeaux); font-weight: 500; }
.elementor .e-con.eb-legal-also{ border-top: 1px solid var(--eb-hair); }
.eb-legal-also-list .elementor-icon-list-items{ display: flex; flex-direction: column; gap: 11px; }
.eb-legal-also-list .elementor-icon-list-item{ padding: 0 !important; margin: 0 !important; }
.eb-legal-also-list .elementor-icon-list-text{ padding: 0 !important; transition: color .35s, padding-left .4s var(--eb-ease); }
.eb-legal-also-list .elementor-icon-list-item > a:hover .elementor-icon-list-text{ padding-left: 5px !important; }
.elementor .elementor-widget.eb-legal-print{ display: flex; }
.eb-legal-print.eb-legal-print .elementor-button{ background: none !important; padding: 0 0 6px !important; border: 0; border-bottom: 1px solid var(--eb-hair); border-radius: 0; box-shadow: none; transition: letter-spacing .5s var(--eb-ease); }
.eb-legal-print.eb-legal-print .elementor-button:hover{ letter-spacing: .3em; transform: none; box-shadow: none; }
.eb-legal-print .elementor-button::before, .eb-legal-print .elementor-button::after{ display: none; }

/* ---- sections ---- */
.elementor .e-con.eb-legal-sec{ counter-increment: ebsec; scroll-margin-top: 150px; }
.eb-legal-h .elementor-heading-title{ display: flex; gap: 18px; align-items: baseline; text-wrap: balance; }
.eb-legal-h .elementor-heading-title::before{ content: counter(ebsec, decimal-leading-zero); flex: none; min-width: 2.4em; font-family: var(--e-global-typography-ebcap20-font-family), sans-serif; font-size: 11px; line-height: 1; letter-spacing: .2em; font-weight: 500; color: var(--eb-brass); transform: translateY(-.35em); }

/* ---- the policy text ---- */
.eb-legal-prose p, .eb-legal-prose ul, .eb-legal-prose dl, .eb-legal-intro p{ margin: 0; }
.eb-legal-prose p, .eb-legal-intro p{ text-wrap: pretty; }
.eb-legal-prose * + p{ margin-top: 18px; }
.eb-legal-prose ul + p{ margin-top: 26px; }
.eb-legal-prose ul + p.eb-mt18{ margin-top: 18px; }
.eb-legal-prose * + ul, .eb-legal-prose * + dl{ margin-top: 22px; }
.eb-legal-intro p + p{ margin-top: 16px; }
.eb-legal-prose ul{ list-style: none; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.eb-legal-prose ul.eb-gap16{ gap: 16px; }
.eb-legal-prose li{ position: relative; padding-left: 18px; }
.eb-legal-prose li::before{ content: ""; position: absolute; left: 0; top: 14px; width: 4px; height: 4px; transform: rotate(45deg); background: var(--eb-brass); }
.eb-legal-prose strong, .eb-legal-prose b{ font-weight: 500; color: var(--eb-ink); }
.eb-legal-prose.eb-legal-prose a, .eb-legal-intro.eb-legal-intro a{ color: var(--eb-bordeaux); border-bottom: 1px solid var(--eb-hair); transition: border-color .35s; }
.eb-legal-prose.eb-legal-prose a:hover, .eb-legal-intro.eb-legal-intro a:hover{ color: var(--eb-bordeaux); border-bottom-color: var(--eb-bordeaux); }
.eb-legal-prose dl{ display: grid; grid-template-columns: 190px minmax(0, 1fr); border-top: 1px solid var(--eb-hair); }
.eb-legal-prose dl.eb-dt210{ grid-template-columns: 210px minmax(0, 1fr); }
.eb-legal-prose dt, .eb-legal-prose dd{ margin: 0; padding: 16px 0; border-bottom: 1px solid var(--eb-hair); }
.eb-legal-prose dt{ font-weight: 500; color: var(--eb-ink); }
.eb-legal-prose dd{ padding-left: 24px; }
@media (max-width: 767px){
  .eb-legal-prose dl, .eb-legal-prose dl.eb-dt210{ grid-template-columns: minmax(0, 1fr); }
  .eb-legal-prose dt{ padding-bottom: 0; border-bottom: 0; }
  .eb-legal-prose dd{ padding: 24px 0 16px; }
}

/* ---- the panels inside the text ---- */
/* In the design these labels are inline runs inside a block of body text, so
   their line box is the body's (16.5px at 1.95), not their own. */
.eb-legal-callout > .elementor-widget-heading .elementor-heading-title,
.eb-legal-cards .elementor-widget-heading .elementor-heading-title{ line-height: calc(16.5px * 1.95) !important; }
.elementor .e-con.eb-legal-cards{ border: 1px solid var(--eb-hair); }
.eb-legal-chips ul{ list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.eb-legal-chips li{ padding: 8px 14px; border: 1px solid var(--eb-hair); background: var(--eb-paper); }
.eb-legal-mail .elementor-heading-title{ display: inline-block; padding-bottom: 7px; border-bottom: 1px solid var(--eb-brass); transition: letter-spacing .5s var(--eb-ease); }
.eb-legal-mail .elementor-heading-title a{ color: inherit; }
.eb-legal-mail .elementor-heading-title:hover{ letter-spacing: .02em; }
.eb-legal-contact address{ font-style: normal; margin: 0; }

@media print{
  /* Only the policy prints. Note: body carries .ehf-header and .ehf-footer,
     so those classes must never be used as print selectors on their own. */
  .eb-prog, .eb-grain, [data-prog], [data-grain], #masthead, #colophon, header.site-header, footer.site-footer, #wpadminbar, .eb-legal-side, body > .eb-door{ display: none !important; }
  html, body{ background: #fff !important; margin: 0 !important; }
  /* Sections the reader never scrolled to are still waiting to be revealed. */
  [data-rv], [data-rv] *, [data-rl] > span, .eb-rv, .eb-rv *{ opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; animation: none !important; transition: none !important; }
  .eb-glow::before, .eb-glow::after{ display: none !important; }
  /* The parent theme prints every link's address after it; the breadcrumb
     and the in-text links read better without. */
  a[href]::after{ content: none !important; }
}

/* =========================================================
   57. Build revision 1 (18 Sep 2026)
   ========================================================= */

/* "What Dr Eman is not": four equal columns split by cream hairlines, each
   cell closed by a hairline beneath, as in the comp. Two by two on tablet,
   one column on phones. */
.elementor .eb-band.eb-rules-cream{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 0; }
.elementor .eb-band.eb-rules-cream > .e-con{ border-bottom: 1px solid var(--eb-cream-rule); padding-left: 34px; padding-right: 34px; }
.elementor .eb-band.eb-rules-cream > .e-con + .e-con{ border-left: 1px solid var(--eb-cream-rule); }
.elementor .eb-band.eb-rules-cream > .e-con:first-child{ padding-left: 0; }
.elementor .eb-band.eb-rules-cream > .e-con:last-child{ padding-right: 0; }
@media (max-width: 1199px){
  .elementor .eb-band.eb-rules-cream{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .elementor .eb-band.eb-rules-cream > .e-con:nth-child(odd){ border-left: 0; padding-left: 0; padding-right: 34px; }
  .elementor .eb-band.eb-rules-cream > .e-con:nth-child(even){ padding-left: 34px; padding-right: 0; }
}
@media (max-width: 767px){
  .elementor .eb-band.eb-rules-cream{ grid-template-columns: minmax(0, 1fr); }
  .elementor .eb-band.eb-rules-cream > .e-con:nth-child(n){ border-left: 0; padding-left: 0; padding-right: 0; }
}

/* FAQ answers: no box around the open panel, and the answer runs the full
   width of the list. */
.eb-faq .e-n-accordion-item > [role="region"]{ border: 0; }
.eb-faq .e-n-accordion-item > [role="region"] .elementor-widget,
.eb-faq .e-n-accordion-item > [role="region"] .elementor-widget-container,
.eb-faq .e-n-accordion-item > [role="region"] p,
.eb-faq .e-n-accordion-item > [role="region"] :is(h1, h2, h3, h4, h5, h6, ul, ol, blockquote){ max-width: none; }

/* Contact door rows: the comp's hover timing. */
.elementor .eb-door{ transition: background-size .6s var(--eb-ease), padding-left .6s var(--eb-ease); }

/* Mentorship stepper: every entry sits in the same grid cell, so the block
   keeps the height of the longest entry and nothing below it moves when the
   set turns. Entries rise in and out, as in the comp. */
.elementor .eb-vstep-stack.eb-vstep-stack{ display: grid; }
.elementor .eb-vstep-stack > .eb-vstep-item{ grid-area: 1 / 1; position: relative; inset: auto; transform: translateY(14px); transition: opacity .7s var(--eb-ease), transform .7s var(--eb-ease); }
.elementor .eb-vstep-stack > .eb-vstep-item.is-past{ transform: translateY(-14px); }
.elementor .eb-vstep-stack > .eb-vstep-item.is-on{ transform: none; }

/* Underline fields keep only their bordeaux sweep as the focus mark: the
   parent theme's white focus ring does not belong on cream. */
.eb-field input:focus, .eb-field input:focus-visible,
.eb-field textarea:focus, .eb-field textarea:focus-visible,
.wpcf7 input:is([type="text"], [type="email"], [type="tel"], [type="url"]):is(:focus, :focus-visible),
.wpcf7 textarea:is(:focus, :focus-visible){ outline: 0; box-shadow: none; background: none; }

/* The Royal Correspondence button is a quiet bordeaux word with an arrow, not
   a filled block. Site Settings style every submit input, so the class is
   named twice to win over the kit. */
.sib_signup_form .eb-form-row .sib-default-btn.sib-default-btn,
.sib_signup_form .eb-form-row .sib-default-btn.sib-default-btn:hover,
.sib_signup_form .eb-form-row .sib-default-btn.sib-default-btn:focus,
.sib_signup_form .eb-form-row .sib-default-btn.sib-default-btn:disabled{
  background: none; background-color: transparent; border: 0; border-radius: 0; box-shadow: none;
  color: var(--eb-bordeaux); padding: 0 6px 15px; line-height: 1.75;
  font-family: "Jost", system-ui, sans-serif; font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
  transition: letter-spacing .5s var(--eb-ease);
}
.sib_signup_form .eb-form-row .sib-default-btn.sib-default-btn:hover{ letter-spacing: .32em; }
.sib_signup_form .eb-form-row .sib-default-btn.sib-default-btn:focus-visible{ outline: 1px solid var(--eb-bordeaux); outline-offset: 6px; box-shadow: none; }

/* =========================================================
   58. Blog widget areas (Appearance > Widgets: "Blog", "Blog - single")
   The house widgets print the sidebar markup above. These rules cover the
   author card, the search field's weight against the kit, and any core
   widget dropped into an area.
   ========================================================= */
.eb-widget-author.eb-widget-author{
  background-color: var(--eb-cream2); border: 1px solid var(--eb-hair);
  padding: 34px 30px; text-align: center;
}
.eb-author-card__face{ display: block; width: 120px; height: 120px; object-fit: cover; border-radius: 50%; margin: 0 auto 22px; }
.eb-author-card__name.eb-author-card__name{
  font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300; font-size: 30px;
  line-height: 1.15; color: var(--eb-ink); margin: 10px 0 0;
}
.eb-author-card__bio{ font-family: "Jost", system-ui, sans-serif; font-weight: 400; font-size: 14px; line-height: 1.85; color: var(--eb-ink2); margin: 14px 0 0; text-wrap: pretty; }
.eb-quiet.eb-author-card__link{ margin-top: 20px; line-height: 1.75; }

/* The field is drawn by its rule alone, whatever the kit gives inputs. */
.eb-side-search.eb-side-search input[type="search"]{
  width: 100%; background: none; border: 0; border-bottom: 1px solid var(--eb-hair); border-radius: 0;
  box-shadow: none; font-family: "Jost", system-ui, sans-serif; font-size: 15px; font-weight: 400;
  line-height: normal; color: var(--eb-ink); padding: 12px 4px;
}
.eb-side-search input[type="search"]::-webkit-search-cancel-button{ -webkit-appearance: none; }
.eb-side-search.eb-side-search button[type="submit"]{ background-color: transparent; background-image: none; border-radius: 0; transition: letter-spacing .5s var(--eb-ease); }
.eb-side-search.eb-side-search button[type="submit"]:hover{ letter-spacing: .3em; }

/* Core widgets dropped into an area: plain lists and text in the house voice. */
.eb-widget:not([class*="eb-widget-"]) ul{ list-style: none; margin: 16px 0 0; padding: 0; border-top: 1px solid var(--eb-hair); }
.eb-widget:not([class*="eb-widget-"]) li{ border-bottom: 1px solid var(--eb-hair); padding: 13px 0; font-size: 14.5px; line-height: 1.75; color: var(--eb-ink2); }
.eb-widget:not([class*="eb-widget-"]) li a{ color: var(--eb-ink2); transition: color .35s; }
.eb-widget:not([class*="eb-widget-"]) li a:hover{ color: var(--eb-bordeaux); }
.eb-widget:not([class*="eb-widget-"]) .textwidget{ margin-top: 16px; font-size: 14.5px; line-height: 1.85; color: var(--eb-ink2); }
.eb-widget:not([class*="eb-widget-"]) img{ max-width: 100%; height: auto; }

/* The Blog page shows its area through Elementor's Sidebar widget. */
.elementor-widget-sidebar .eb-widget:first-child{ margin-top: 0; }

/* Post hero: it carries eb-hero-copy for the reveal, but not the Home hero's left-aligned padding. Equal gutters keep the title block centred. */
.eb-post-hero__copy.eb-hero-copy,
.eb-arch-hero__copy.eb-hero-copy{ padding-left: var(--eb-gut) !important; padding-right: var(--eb-gut) !important; }

/* Header: the bar already holds the block padding, so the inner row takes none and fills the bar. Logo and menus sit on its middle line. */
@media (min-width: 981px){
  .elementor .eb-hdr-top > .e-con-inner{ padding-block: 0 !important; height: 100%; align-items: center; }
  /* Desktop bar: 88px at rest, 68px once scrolled (.is-deep). */
  .elementor .eb-hdr-top{ box-sizing: border-box; padding: 26px 46px; height: 88px; }
  .elementor .eb-hdr.is-deep .eb-hdr-top{ padding: 16px 46px; height: 68px; }
}

/* =========================================================
   59. Audit fixes (23 Sep 2026): staging brought back to the comps
   ========================================================= */
:root{
  --eb-h1-blog-arch: clamp(44px, 6.6vw, 104px);
  --eb-tag-28:       clamp(19px, 2.1vw, 28px);
}
body{
  --eb-champ:      var(--e-global-color-ebchamp);
  --eb-champ-rule: var(--e-global-color-ebchamprule);
  --eb-film:       var(--e-global-color-ebfilm);
}

/* The design's sans stack is Jost, then the system sans. Jost's latin subset
   has no arrows, and Elementor appends the kit's serif fallback to every
   global, so the arrows fell to Georgia. This face only covers the arrow
   block and borrows the system sans for it, as the comp does. One face per
   weight the site loads, so each joins the matching Jost weight. */
@font-face{ font-family: "Jost"; font-style: normal; font-weight: 300; font-display: swap; src: local("Segoe UI"), local("SegoeUI"), local("Helvetica Neue"), local("HelveticaNeue"), local("Roboto"), local("Noto Sans"), local("DejaVu Sans"), local("Arial"); unicode-range: U+2190-21FF, U+27F5-27FF; }
@font-face{ font-family: "Jost"; font-style: normal; font-weight: 400; font-display: swap; src: local("Segoe UI"), local("SegoeUI"), local("Helvetica Neue"), local("HelveticaNeue"), local("Roboto"), local("Noto Sans"), local("DejaVu Sans"), local("Arial"); unicode-range: U+2190-21FF, U+27F5-27FF; }
@font-face{ font-family: "Jost"; font-style: normal; font-weight: 500; font-display: swap; src: local("Segoe UI"), local("SegoeUI"), local("Helvetica Neue"), local("HelveticaNeue"), local("Roboto"), local("Noto Sans"), local("DejaVu Sans"), local("Arial"); unicode-range: U+2190-21FF, U+27F5-27FF; }
@font-face{ font-family: "Jost"; font-style: normal; font-weight: 600; font-display: swap; src: local("Segoe UI"), local("SegoeUI"), local("Helvetica Neue"), local("HelveticaNeue"), local("Roboto"), local("Noto Sans"), local("DejaVu Sans"), local("Arial"); unicode-range: U+2190-21FF, U+27F5-27FF; }

/* ---- Mentorship: the doors band ---- */
.elementor .elementor-element.eb-doorline.eb-doorline .elementor-heading-title a{ color: var(--eb-brass); }
.elementor .elementor-element.eb-doorline.eb-doorline .elementor-heading-title a:hover{ color: var(--eb-champ); }
.eb-doorline .elementor-heading-title a::after{ background-color: var(--eb-champ); }

/* Quiet ghost: the border and the label turn bordeaux, nothing fills. */
.elementor .eb-chip-quiet .elementor-button::before{ display: none; }
.elementor .eb-chip-quiet .elementor-button:hover{ transform: none; box-shadow: none; }

/* The stepper's rail arrows are the comp's hairline chevrons, nudging. */
.elementor .eb-vstep-prev.eb-vstep-prev .elementor-heading-title,
.elementor .eb-vstep-next.eb-vstep-next .elementor-heading-title{
  position: relative; display: block; width: 15px; height: 9px; padding: 4px; box-sizing: content-box;
  font-size: 0; line-height: 0; color: var(--eb-brass);
}
.eb-vstep-prev .elementor-heading-title::before,
.eb-vstep-next .elementor-heading-title::before{
  content: ""; position: absolute; left: 50%; width: 9px; height: 9px; margin-left: -5px; box-sizing: border-box;
  border: 0 solid currentColor;
}
.eb-vstep-prev .elementor-heading-title::before{
  top: 8px; border-left-width: 1.3px; border-top-width: 1.3px; transform: rotate(45deg);
  animation: ebNudgeUp 3.4s ease-in-out infinite;
}
.eb-vstep-next .elementor-heading-title::before{
  top: 1px; border-right-width: 1.3px; border-bottom-width: 1.3px; transform: rotate(45deg);
  animation: ebNudge 3.4s ease-in-out infinite;
}
@keyframes ebNudgeUp{ 0%, 100%{ translate: 0 0; opacity: .5; } 50%{ translate: 0 -3px; opacity: 1; } }
@keyframes ebNudge{ 0%, 100%{ translate: 0 0; opacity: .5; } 50%{ translate: 0 3px; opacity: 1; } }
.eb-vstep-prev:hover .elementor-heading-title, .eb-vstep-next:hover .elementor-heading-title{ transform: none; }

/* "This is for me": the long drawn arrow that slides on hover. */
.elementor .eb-link-arrow .elementor-button-content-wrapper{ display: inline-flex; align-items: center; gap: 14px; }
.elementor .eb-link-arrow .elementor-button-content-wrapper::after{
  content: ""; flex: none; width: 30px; height: 8px; background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 8'%3E%3Cpath d='M0 4h27M23.6 1 27 4l-3.4 3' stroke='%23000' stroke-width='1.1' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 30px 8px no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 8'%3E%3Cpath d='M0 4h27M23.6 1 27 4l-3.4 3' stroke='%23000' stroke-width='1.1' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 30px 8px no-repeat;
  transition: transform .55s var(--eb-ease);
}
.elementor .elementor-element.eb-link-arrow.eb-link-arrow .elementor-button{ padding-bottom: 8px !important; transition: letter-spacing .55s var(--eb-ease), color .4s var(--eb-ease); }
.elementor .elementor-element.eb-link-arrow.eb-link-arrow .elementor-button:hover{ letter-spacing: .3em; }
.elementor .eb-link-arrow .elementor-button:hover .elementor-button-content-wrapper::after{ transform: translateX(6px); }

/* ---- About: the filmstrip is a film, perforations and all ---- */
.elementor .eb-film.eb-film{ background-color: var(--eb-film); }
.elementor .eb-film.eb-film::before,
.elementor .eb-film.eb-film::after{
  content: ""; display: block; position: absolute; left: 0; right: auto; width: 100%; height: 24px;
  background-image: repeating-linear-gradient(90deg, var(--eb-film) 0 14px, color-mix(in srgb, var(--eb-cream) 82%, transparent) 14px 32px);
  background-size: 46px 11px; background-position: center; background-repeat: repeat-x;
  pointer-events: none; z-index: 6; opacity: 1; mix-blend-mode: normal; border-radius: 0;
}
.elementor .eb-film.eb-film::before{ top: 0; bottom: auto; }
.elementor .eb-film.eb-film::after{ top: auto; bottom: 0; }
.elementor .eb-film-frame { background-color: var(--eb-film); }
.eb-film-frame.eb-film-colour img, .eb-film-frame.eb-film-colour:hover img{ filter: none; }

/* ---- Dividers between band cells (stat bands, the HWHW pillars) ---- */
.elementor .elementor-element.eb-band > .elementor-element.eb-stat:not(:last-child),
.elementor .elementor-element.eb-band > .elementor-element.eb-band-tint:not(:last-child){
  border-right: 1px solid var(--eb-hair);
}

/* ---- FAQ: the question fills the row, a thin plus sits at its end ---- */
.elementor .eb-faq.eb-faq .e-n-accordion-item-title{ justify-content: space-between; }
.elementor .eb-faq.eb-faq .e-n-accordion-item-title-header{ order: 1; flex: 1 1 auto; }
.elementor .eb-faq.eb-faq .e-n-accordion-item-title-icon{ order: 2; flex: none; display: flex; align-items: center; line-height: 1; margin-top: -4px; }
.elementor .eb-faq.eb-faq .e-n-accordion-item-title-text{ line-height: 1.3; }
.elementor .eb-faq.eb-faq .e-n-accordion-item-title-icon svg{ display: none; }
.elementor .eb-faq.eb-faq .e-n-accordion-item-title-icon > span::before{
  content: "+"; display: block; font-family: "Jost", system-ui, sans-serif; font-style: normal;
  font-size: 22px; font-weight: 300; line-height: 1; color: var(--eb-brass);
}

/* ---- Hover details the comp carries ---- */
.elementor .eb-footlist.eb-footlist .hfe-nav-menu .menu-item a.hfe-menu-item{ transition: color .3s var(--eb-ease), padding-left .4s var(--eb-ease); }
.elementor .eb-footlist.eb-footlist .hfe-nav-menu .menu-item a.hfe-menu-item:hover,
.elementor .eb-footlist.eb-footlist a:hover{ padding-left: 5px; }
/* A testimonial lifts its portrait when the card, not only the photo, is hovered. */
.elementor .e-con:has(> .eb-round):hover .eb-round img{
  transform: scale(1.09); box-shadow: 0 14px 28px -16px color-mix(in srgb, var(--eb-bordeaux) 60%, transparent);
}

/* ---- Blog: the portrait arch masthead ---- */
/* It keeps eb-hero-copy for the reveal, not the Home hero's left gutter: the boxed row already sits on the rail. */
.elementor .eb-arch-copy.eb-arch-copy{ min-width: min(100%, 320px); padding-left: 0 !important; padding-right: 0 !important; }
.elementor .elementor-element.eb-arch-rule{
  --min-height: 0px; height: 1px; width: 100%; max-width: 280px; margin-top: 26px; padding: 0;
  background: linear-gradient(90deg, var(--eb-brass), transparent);
}
.elementor .eb-arch{ position: relative; min-width: min(100%, 260px); overflow: visible; }
.elementor .eb-arch.eb-arch::before{
  content: ""; display: block; position: absolute; inset: -18px -18px 24px; width: auto; height: auto;
  border: 1px solid var(--eb-brass); opacity: .42; border-radius: 999px 999px 0 0; pointer-events: none; z-index: 0;
  background: none; mix-blend-mode: normal;
}
.elementor .eb-arch-img{ position: relative; z-index: 1; overflow: hidden; border-radius: 999px 999px 0 0; aspect-ratio: 3 / 4; background-color: var(--eb-cream2); }
.elementor .eb-arch-img .elementor-widget-container, .elementor .eb-arch-img img{ width: 100%; height: 100%; }
.elementor .eb-arch-img img{ object-fit: cover; object-position: center top; animation: ebSlowZoom 22s ease-in-out infinite alternate; }
@keyframes ebSlowZoom{ 0%{ transform: scale(1); } 100%{ transform: scale(1.07); } }

/* ---- Contact: the airmail card on the right, the notes on the left ---- */
.elementor .elementor-element.eb-letter-card::after{
  content: ""; display: block; position: absolute; inset: 0; width: auto; height: auto; z-index: 1;
  border: 10px solid transparent; pointer-events: none; opacity: .9; background: none; border-radius: 0;
  border-image: repeating-linear-gradient(45deg, var(--eb-bordeaux) 0 11px, var(--eb-cream) 11px 22px, var(--eb-brass) 22px 33px, var(--eb-cream) 33px 44px) 10;
}
@media (min-width: 981px){
  .elementor .eb-letter-grid > .eb-letter-side{ order: 1; }
  .elementor .eb-letter-grid > .eb-letter-col{ order: 2; }
}

/* ---- The single post: what the comp closes the essay with ---- */
.eb-post-body > p:first-child + p::first-letter{
  float: left; font-family: "Cormorant Garamond", Georgia, serif; font-size: 78px; line-height: .82;
  color: var(--eb-bordeaux); margin: 6px 14px 0 0; font-weight: 300;
}
.eb-post-body ol{ list-style: none; padding-left: 0; gap: 20px; counter-reset: eb-ol; }
.eb-post-body ol > li{ position: relative; padding-left: 48px; counter-increment: eb-ol; }
.eb-post-body ol > li::before{
  content: counter(eb-ol, upper-roman) "."; position: absolute; left: 0; top: 0;
  font-family: "Cormorant Garamond", Georgia, serif; font-size: 26px; line-height: 1.2; color: var(--eb-brass);
}
.eb-post-note, .eb-post-source{ background-color: var(--eb-paper); border: 1px solid var(--eb-hair); max-width: 68ch; }
.eb-post-note{ margin-top: 52px; padding: 32px 34px; }
.eb-post-note p{ margin: 12px 0 0; color: var(--eb-ink2); font-size: 15.5px; line-height: 1.9; text-wrap: pretty; }
.eb-post-note .eb-quiet.eb-quiet, .eb-post-source .eb-quiet.eb-quiet{ padding-bottom: 7px; border-bottom-color: var(--eb-bordeaux); }
.eb-post-note .eb-quiet.eb-quiet{ margin-top: 20px; }
.eb-post-source{ margin-top: 40px; padding: 26px 30px; display: flex; gap: 22px; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.eb-post-source__copy{ min-width: 0; }
.eb-post-source__t{ display: block; font-size: 15px; line-height: 1.85; color: var(--eb-ink2); margin-top: 8px; font-weight: 400; text-wrap: pretty; }
.eb-post-source .eb-quiet{ flex: none; }
.eb-post-share{
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap; max-width: 68ch;
  margin-top: 38px; padding-top: 26px; border-top: 1px solid var(--eb-hair);
}
.eb-post-share .eb-side-h.eb-side-h{ color: var(--eb-ink2); }
.eb-post-share__row{ display: flex; gap: 10px; }
.eb-share-btn.eb-share-btn{
  display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0;
  border: 1px solid var(--eb-hair); border-radius: 0; background: none; color: var(--eb-ink2); cursor: pointer;
  transition: color .35s var(--eb-ease), border-color .35s var(--eb-ease), transform .35s var(--eb-ease);
}
.eb-share-btn.eb-share-btn:hover, .eb-share-btn.eb-share-btn:focus-visible{ color: var(--eb-bordeaux); border-color: var(--eb-brass); transform: translateY(-2px); background: none; }
.eb-share-btn svg{ width: 18px; height: 18px; }
.eb-share-copied{
  align-self: center; font-family: "Jost", system-ui, sans-serif; font-size: 10.5px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--eb-brass); font-weight: 500; opacity: 0; transition: opacity .4s var(--eb-ease);
}
.eb-share-copied.is-on{ opacity: 1; }
@media print{ .eb-post-share, .eb-post-note, .eb-post-source{ display: none; } }

/* =========================================================
   60. EB Filmstrip widget (the About portrait strip as one widget)
   The frame, plaque, scrim and drawer rules are sections 34, 45 and 59;
   these only stand in for the spacing the Elementor containers used to give.
   ========================================================= */
.elementor-widget-eb-filmstrip .eb-film{ padding: 24px 0; }
.elementor-widget-eb-filmstrip .eb-film-frame img{ display: block; max-width: none; }
.elementor-widget-eb-filmstrip .eb-plaque-name,
.elementor-widget-eb-filmstrip .eb-plaque-line{ margin: 0; padding: 0; }
.elementor-widget-eb-filmstrip .eb-plaque-line{ margin-top: 4px; }

.elementor-widget-eb-filmstrip .eb-film-hint-wrap{ padding: 26px 46px 0; }
.elementor-widget-eb-filmstrip .eb-film-hint{ max-width: var(--content-width, 1228px); margin: 0 auto; padding: 0; text-align: center; }
@media (max-width: 767px){
  .elementor-widget-eb-filmstrip .eb-film-hint-wrap{ padding-left: 22px; padding-right: 22px; }
}

.elementor-widget-eb-filmstrip .eb-drawer-close{ display: block; cursor: pointer; margin: 0; }
.elementor-widget-eb-filmstrip .eb-drawer-close:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 2px; }
.elementor-widget-eb-filmstrip .eb-story-plate img{ display: block; max-width: none; }
.elementor-widget-eb-filmstrip .eb-story-body{ padding: 40px 40px 64px; }
.elementor-widget-eb-filmstrip .eb-story-name,
.elementor-widget-eb-filmstrip .eb-story-line{ margin: 0; padding: 0; }
.elementor-widget-eb-filmstrip .eb-story-line{ margin-top: 10px; }
.elementor-widget-eb-filmstrip .eb-story-rule{ display: block; width: 64px; height: 0; margin: 26px 0; border-top-width: 1px; border-top-style: solid; opacity: .6; }
.elementor-widget-eb-filmstrip .eb-story-text p{ margin: 0 0 16px; }

/* =========================================================
   61. EB Hero Film and EB Stepper widgets (the Mentorship hero)
   Sections 47 and 48 still draw the film, the bar, the rail and the
   entries; these rules cover the markup the two widgets write in place of
   Elementor containers and heading widgets, and read the state eb-ui.js
   hands over as custom properties.
   ========================================================= */
/* The stepper's rail marker: one share of the rail, moved to the entry on show. */
.elementor .eb-vstep-rail > *{
  height: calc(100% / var(--eb-vstep-n, 3));
  top: calc(100% * var(--eb-vstep-i, 0) / var(--eb-vstep-n, 3));
}

.elementor-widget-eb-stepper .eb-vstep-nav .eb-vstep-prev,
.elementor-widget-eb-stepper .eb-vstep-nav .eb-vstep-next{
  position: relative; display: block; width: 15px; height: 9px; padding: 4px; box-sizing: content-box;
  font-size: 0; line-height: 0; cursor: pointer; color: var(--eb-brass);
}
.elementor-widget-eb-stepper .eb-vstep-prev::before,
.elementor-widget-eb-stepper .eb-vstep-next::before{
  content: ""; position: absolute; left: 50%; width: 9px; height: 9px; margin-left: -5px; box-sizing: border-box;
  border: 0 solid currentColor;
}
.elementor-widget-eb-stepper .eb-vstep-prev::before{
  top: 8px; border-left-width: 1.3px; border-top-width: 1.3px; transform: rotate(45deg);
  animation: ebNudgeUp 3.4s ease-in-out infinite;
}
.elementor-widget-eb-stepper .eb-vstep-next::before{
  top: 1px; border-right-width: 1.3px; border-bottom-width: 1.3px; transform: rotate(45deg);
  animation: ebNudge 3.4s ease-in-out infinite;
}
.elementor-widget-eb-stepper .eb-vstep-prev:focus-visible,
.elementor-widget-eb-stepper .eb-vstep-next:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 2px; }
.elementor-widget-eb-stepper .eb-vstep-stack > .eb-vstep-item{ display: flex; flex-direction: column; }
.elementor-widget-eb-stepper .eb-vstep-title,
.elementor-widget-eb-stepper .eb-vstep-sub{ margin: 0; padding: 0; }
.elementor-widget-eb-stepper .eb-vstep-text > :last-child{ margin-bottom: 0; }
@media (prefers-reduced-motion: reduce){
  .elementor-widget-eb-stepper .eb-vstep-prev::before,
  .elementor-widget-eb-stepper .eb-vstep-next::before{ animation: none; }
}

/* The film. The widget's backdrop, hairline and ink colours arrive as
   --eb-vid-brass and --eb-vid-ink; without them the design's own apply. */
.elementor-widget-eb-hero-film .eb-vid{ display: block; width: 100%; }
.elementor-widget-eb-hero-film .eb-vid-video{ border: 0; background-color: transparent; }
.elementor-widget-eb-hero-film .eb-vid-frame{ border-color: var(--eb-vid-brass, var(--eb-brass)); }
.elementor-widget-eb-hero-film .eb-vid-bar{ border-color: color-mix(in srgb, var(--eb-vid-brass, var(--eb-brass)) 55%, transparent); }
.elementor-widget-eb-hero-film .eb-vid-play-mark{
  display: block; width: 9px; height: 12px;
  border-left: 3px solid var(--eb-vid-ink, var(--e-global-color-ebcream80));
  border-right: 3px solid var(--eb-vid-ink, var(--e-global-color-ebcream80));
}
.elementor-widget-eb-hero-film .eb-vid:not(.is-playing) .eb-vid-play-mark{
  width: 0; height: 0; border-left: 10px solid var(--eb-vid-ink, var(--e-global-color-ebcream80));
  border-right: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent;
}
.elementor-widget-eb-hero-film .eb-vid-track .eb-vid-fill{ width: calc(var(--eb-vid-p, 0) * 1%); background-color: var(--eb-vid-brass, var(--eb-brass)); }
.elementor-widget-eb-hero-film .eb-vid-track .eb-vid-dot{ left: calc(var(--eb-vid-p, 0) * 1%); background-color: var(--eb-vid-ink, var(--e-global-color-ebcream80)); }
.elementor-widget-eb-hero-film .eb-vid-led{ display: block; border-color: var(--eb-vid-brass, var(--eb-brass)); }
.elementor-widget-eb-hero-film .eb-vid:not(.is-muted) .eb-vid-sound .eb-vid-led{ background-color: var(--eb-vid-brass, var(--eb-brass)); }
.elementor-widget-eb-hero-film .eb-vid-time,
.elementor-widget-eb-hero-film .eb-vid-sound-word{ display: block; margin: 0; padding: 0; }
.elementor-widget-eb-hero-film .eb-vid-play:focus-visible,
.elementor-widget-eb-hero-film .eb-vid-track:focus-visible,
.elementor-widget-eb-hero-film .eb-vid-sound:focus-visible{ outline: 1px solid var(--eb-vid-brass, var(--eb-brass)); outline-offset: 2px; }
/* On phones the bar wraps as the container build did: play, then the rail
   across the full width, then the clock and the sound switch. */
@media (max-width: 767px){
  .elementor-widget-eb-hero-film .eb-vid-bar{ flex-wrap: wrap; }
  .elementor-widget-eb-hero-film .eb-vid-track{ width: 100%; }
}
/* The empty state, seen only in the editor before a file is chosen. */
.elementor-widget-eb-hero-film .eb-vid-empty{ display: grid; place-items: center; }
.elementor-widget-eb-hero-film .eb-vid-note{ margin: 0; padding: 24px; text-align: center; }

/* =========================================================
   62. Sassy Social Share in the single post 'Share this post' row
   The plugin prints its icons through [Sassy_Social_Share]. These rules put
   them on one line beside the label and give them the house share button:
   hairline square, ink2 glyph, bordeaux glyph and brass hairline on hover,
   a 2px lift. The plugin's inline sizes and float need !important to undo.
   ========================================================= */
.eb-post-share .eb-sss{ display: flex; align-items: center; }
.eb-post-share .eb-sss .heateor_sss_sharing_container{ margin: 0; padding: 0; }
.eb-post-share .eb-sss .heateor_sss_sharing_title,
.eb-post-share .eb-sss .heateorSssClear{ display: none; }
.eb-post-share .eb-sss div.heateor_sss_sharing_ul{
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 !important; padding: 0 !important;
}
.eb-post-share.eb-post-share .eb-sss div.heateor_sss_sharing_ul a{
  display: flex !important; float: none; margin: 0; font-size: 0 !important; line-height: 0;
}
.eb-post-share.eb-post-share .eb-sss span.heateor_sss_svg{
  display: flex !important; align-items: center; justify-content: center; float: none !important;
  width: 38px !important; height: 38px !important; padding: 0 !important; box-sizing: border-box !important;
  border: 1px solid var(--eb-hair); border-radius: 0; color: var(--eb-ink2);
  transition: color .35s var(--eb-ease), border-color .35s var(--eb-ease), transform .35s var(--eb-ease);
}
.eb-post-share.eb-post-share .eb-sss span.heateor_sss_svg svg{ width: 22px; height: 22px; flex: none; }
/* The glyphs take the button colour, so one colour change drives every icon. */
.eb-post-share.eb-post-share .eb-sss span.heateor_sss_svg svg :is(path, rect, circle, ellipse, polygon):not(.heateor_sss_no_fill){ fill: currentColor; }
.eb-post-share.eb-post-share .eb-sss span.heateor_sss_svg svg .heateor_sss_svg_stroke{ stroke: currentColor; }
/* Hover and keyboard focus: the same lift and colours as .eb-share-btn. */
.eb-post-share.eb-post-share .eb-sss div.heateor_sss_sharing_ul a:hover span.heateor_sss_svg,
.eb-post-share.eb-post-share .eb-sss div.heateor_sss_sharing_ul a:focus-visible span.heateor_sss_svg{
  color: var(--eb-bordeaux); border-color: var(--eb-brass); transform: translateY(-2px);
}
.eb-post-share.eb-post-share .eb-sss div.heateor_sss_sharing_ul a:focus-visible{ outline: none; }
.eb-post-share.eb-post-share .eb-sss div.heateor_sss_sharing_ul a:focus-visible span.heateor_sss_svg{ outline: 1px solid var(--eb-brass); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce){
  .eb-post-share.eb-post-share .eb-sss div.heateor_sss_sharing_ul a:hover span.heateor_sss_svg,
  .eb-post-share.eb-post-share .eb-sss div.heateor_sss_sharing_ul a:focus-visible span.heateor_sss_svg{ transform: none; }
}
/* Phones: a slightly tighter gap keeps all seven icons on one line. */
@media (max-width: 480px){
  .eb-post-share .eb-sss div.heateor_sss_sharing_ul{ gap: 7px; }
}

/* =========================================================
   63. EB Cards widget (protocols, doors, mentorship, masterclasses)
   The plate, its shade, hairline and zoom, the caption panel and tag and
   the masterclass veil are sections 9, 29, 30, 44 and 49; these rules only
   stand in for what the Elementor containers used to give, and read the
   classes the widget's switches add. Colours and type come from the
   widget's own controls.
   ========================================================= */
/* Columns: each card is one column wide (cards per row and the gap arrive
   as custom properties from the widget). A card never gets narrower than
   the widget's "narrowest card", so a row holds fewer cards when columns
   would be too thin. Equal height stretches the cards of a row; "stretch a
   short last row" lets the cards of a row that is not full widen into it. */
.elementor-widget-eb-cards .eb-cards{
  --eb-cards-cols: 3; --eb-cards-gap: 44px;
  display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--eb-cards-gap);
}
.elementor-widget-eb-cards .eb-cards > .eb-card{
  display: flex; flex-direction: column; min-width: 0; align-self: auto;
  flex: 0 1 calc((100% - (var(--eb-cards-cols) - 1) * var(--eb-cards-gap)) / var(--eb-cards-cols) - .1px);
  color: inherit; text-decoration: none;
}
.elementor-widget-eb-cards .eb-cards--equal{ align-items: stretch; }
.elementor-widget-eb-cards .eb-cards--fill > .eb-card{ flex-grow: 1; }
.elementor-widget-eb-cards a.eb-card:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 6px; }

.elementor-widget-eb-cards .eb-cards-plate{ display: block; position: relative; overflow: hidden; flex: none; aspect-ratio: 3 / 4; }
.elementor-widget-eb-cards .eb-cards-plate img{ display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.elementor-widget-eb-cards .eb-cards--nozoom .eb-card:hover .eb-cards-plate img{ transform: none; filter: none; }
.elementor-widget-eb-cards .eb-cards--nohair .eb-cards-plate::after{ display: none; }

.elementor-widget-eb-cards .eb-cards-eyebrow,
.elementor-widget-eb-cards .eb-cards-index,
.elementor-widget-eb-cards .eb-cards-kicker,
.elementor-widget-eb-cards .eb-cards-title,
.elementor-widget-eb-cards .eb-cards-sub,
.elementor-widget-eb-cards .eb-cards-cap-text,
.elementor-widget-eb-cards .eb-cards-face-title,
.elementor-widget-eb-cards .eb-cards-face-action{ display: block; margin: 0; padding: 0; }
.elementor-widget-eb-cards .eb-cards-title{ transition: color .45s var(--eb-ease); }
.elementor-widget-eb-cards .eb-cards-title a,
.elementor-widget-eb-cards a.eb-cards-action{ color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; text-decoration: none; }
.elementor-widget-eb-cards .eb-cards-title a:focus-visible,
.elementor-widget-eb-cards a.eb-cards-action:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 3px; }
.elementor-widget-eb-cards .eb-cards-text p{ margin: 0 0 16px; }
.elementor-widget-eb-cards .eb-cards-text > :last-child{ margin-bottom: 0; }

.elementor-widget-eb-cards .eb-cards-foot{
  display: block; margin-top: auto; border-top-width: 1px; border-top-style: solid;
  transition: border-color .5s var(--eb-ease);
}
.elementor-widget-eb-cards .eb-cards-action{ display: block; }

/* Fallbacks for the hover colours. Elementor writes a control's Global
   default at the same weight as the instance's own colour, so without these
   the resting colour would win under the pointer. A colour chosen in the
   widget still wins over them. */
.elementor-widget-eb-cards .eb-cards > .eb-card .eb-cards-foot{ border-top-color: var(--eb-hair); }
.elementor-widget-eb-cards .eb-cards > .eb-card:hover .eb-cards-foot,
.elementor-widget-eb-cards .eb-cards > .eb-card:focus-within .eb-cards-foot{ border-top-color: var(--eb-bordeaux); }
.elementor-widget-eb-cards .eb-cards > .eb-card:hover .eb-cards-title,
.elementor-widget-eb-cards .eb-cards > .eb-card:focus-within .eb-cards-title{ color: var(--eb-bordeaux); }

/* Captions: the panel spans the foot of the image inside a 20px margin; the
   tag starts 22px in from the lower left and takes the width of its words,
   never closer than 22px to the right edge. */
.elementor-widget-eb-cards .eb-cards-cap--panel{ padding: 12px 16px; }
.elementor-widget-eb-cards .eb-cards-cap--tag{ right: auto; max-width: calc(100% - 44px); padding: 10px 15px; }

/* The veil's words sit centred; keyboard focus shows them as hover does. */
.elementor-widget-eb-cards .eb-cards-face{ text-align: center; }
.elementor-widget-eb-cards .eb-card:focus-within .eb-mc-face{ opacity: 1; transform: none; }
.elementor-widget-eb-cards .eb-card:focus-within .eb-mc-plate::before,
.elementor-widget-eb-cards .eb-card:focus-within .eb-plate::before{ opacity: 1; }

/* =========================================================
   64. EB Post Grid widget (Home Magazine row, Mentorship edits)
   Also the base of EB Post List and EB Post Slider (section 65), which
   use the same card markup; :is() keeps each rule at one class of weight.
   The veil, the frame and shade and the pager squares are sections 9, 41
   and 49; these rules lay the row out, place the words for the three card
   layouts and draw the load more states. Colours and type come from the
   widget's own controls; the hover fallbacks below carry one class more
   than Elementor's resting rules so the pointer states still win.
   ========================================================= */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-wrap{ position: relative; scroll-margin-top: calc(var(--eb-hh, 0px) + 32px); }

/* Columns: the same model as EB Cards. */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid{
  --eb-pgrid-cols: 3; --eb-pgrid-gap: 44px;
  display: flex; flex-wrap: wrap; align-items: flex-start;
  gap: var(--eb-pgrid-row-gap, var(--eb-pgrid-gap)) var(--eb-pgrid-gap);
  transition: opacity .45s var(--eb-ease);
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid > .eb-pgrid-card{
  position: relative; display: flex; flex-direction: column; min-width: 0; align-self: auto;
  flex: 0 1 calc((100% - (var(--eb-pgrid-cols) - 1) * var(--eb-pgrid-gap)) / var(--eb-pgrid-cols) - .1px);
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--equal{ align-items: stretch; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--fill > .eb-pgrid-card{ flex-grow: 1; }

/* The whole-card link sits over everything, one stop for the keyboard. */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-link{ position: absolute; inset: 0; z-index: 7; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-link:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 6px; }

/* The plate. */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-plate{
  display: block; position: relative; overflow: hidden; flex: none;
  aspect-ratio: 4 / 3; background-color: var(--eb-cream2); color: inherit; text-decoration: none;
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-plate img{
  display: block; width: 100%; height: 100%; max-width: none; object-fit: cover;
  transition: transform 1.2s var(--eb-ease), filter 1.2s var(--eb-ease);
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid:not(.eb-pgrid--h-still) .eb-pgrid-card:hover .eb-pgrid-plate img,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid:not(.eb-pgrid--h-still) .eb-pgrid-card:focus-within .eb-pgrid-plate img{ transform: scale(var(--eb-pgrid-zoom, 1.07)); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid.eb-pgrid--nozoom .eb-pgrid-card .eb-pgrid-plate img{ transform: none; filter: none; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--nohair .eb-pgrid-plate::after{ display: none; }

/* Keyboard focus shows the veil and the shade as the pointer does. */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card:focus-within .eb-mc-plate::before,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card:focus-within .eb-plate::before{ opacity: 1; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card:focus-within .eb-mc-plate::after,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card:focus-within .eb-plate::after{ inset: 20px; border-color: color-mix(in srgb, var(--eb-cream) 75%, transparent); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card:focus-within .eb-mc-face{ opacity: 1; transform: none; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-face{ text-align: center; }

/* Words. */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-label,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-title,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-meta,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-excerpt,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-face-title,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-face-action{ display: block; margin: 0; padding: 0; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-title{ transition: color .45s var(--eb-ease); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-title a{ color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; text-decoration: none; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-title a:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 3px; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-body{ display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-foot{ margin-top: auto; }

/* The action: a quiet line whose tracking opens with the card, or the
   house bordeaux button whose ink panel wipes up. */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-action{ display: inline-block; text-decoration: none; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-action--quiet{ transition: letter-spacing .5s var(--eb-ease), color .45s var(--eb-ease); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid .eb-pgrid-card:hover .eb-pgrid-action--quiet:not(.eb-pgrid-action--own),
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid .eb-pgrid-card:focus-within .eb-pgrid-action--quiet:not(.eb-pgrid-action--own){ letter-spacing: .3em; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid:not(.eb-pgrid--overlay) .eb-pgrid-card.eb-card:hover .eb-pgrid-action--quiet:not(.eb-pgrid-action--own),
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid:not(.eb-pgrid--overlay) .eb-pgrid-card.eb-card:focus-within .eb-pgrid-action--quiet:not(.eb-pgrid-action--own){ color: var(--eb-bordeaux); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid:not(.eb-pgrid--overlay) .eb-pgrid-card.eb-card:hover .eb-pgrid-title,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid:not(.eb-pgrid--overlay) .eb-pgrid-card.eb-card:focus-within .eb-pgrid-title{ color: var(--eb-bordeaux); }

:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-action--button{
  position: relative; overflow: hidden; isolation: isolate; padding: 19px 44px;
  background-color: var(--eb-bordeaux); color: var(--eb-cream);
  transition: transform .5s var(--eb-ease), box-shadow .5s var(--eb-ease);
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-action--button::before{
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--eb-ink);
  transform: translateY(101%); transition: transform .55s var(--eb-ease);
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card:hover .eb-pgrid-action--button:not(.eb-pgrid-action--own),
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card:focus-within .eb-pgrid-action--button:not(.eb-pgrid-action--own){
  transform: translateY(-2px); box-shadow: 0 18px 34px -22px color-mix(in srgb, var(--eb-ink) 75%, transparent);
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card:hover .eb-pgrid-action--button:not(.eb-pgrid-action--own)::before,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card:focus-within .eb-pgrid-action--button:not(.eb-pgrid-action--own)::before{ transform: translateY(0); }

/* Words on the image: they sit on a soft ink shade at the foot of the
   plate, inside the hairline, and rise a little as the veil comes in. */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--overlay .eb-pgrid-body{
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; flex: none;
  padding: 40px 36px 36px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--eb-ink) 0%, transparent) 0%, color-mix(in srgb, var(--eb-ink) 70%, transparent) 100%);
  transition: transform .7s var(--eb-ease);
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--overlay .eb-pgrid-card:hover .eb-pgrid-body,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--overlay .eb-pgrid-card:focus-within .eb-pgrid-body{ transform: translateY(-6px); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--overlay .eb-pgrid-title,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--overlay .eb-pgrid-action--quiet{ color: var(--eb-cream); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--overlay .eb-pgrid-label,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--overlay .eb-pgrid-meta,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--overlay .eb-pgrid-excerpt{ color: color-mix(in srgb, var(--eb-cream) 88%, transparent); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid.eb-pgrid--overlay .eb-pgrid-body > :first-child{ margin-top: 0; }

/* Image beside the words; stacked again on a phone. */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--side > .eb-pgrid-card{ flex-direction: row; align-items: flex-start; gap: var(--eb-pgrid-side-gap, 32px); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--side .eb-pgrid-plate{ flex: 0 0 var(--eb-pgrid-side-w, 42%); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--side.eb-pgrid--equal > .eb-pgrid-card{ align-items: stretch; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--side.eb-pgrid--equal .eb-pgrid-plate{ align-self: flex-start; }
@media (min-width: 601px){
  :is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid.eb-pgrid--side .eb-pgrid-body > :first-child{ margin-top: 0; }
}
@media (max-width: 600px){
  :is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--side > .eb-pgrid-card{ flex-direction: column; gap: 0; }
  :is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--side .eb-pgrid-plate{ flex: none; width: 100%; }
}

/* Pagination. Numbers and arrows are the journal's squares (section 41). */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-pager{ display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 24px; margin-top: 56px; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-pager .page-numbers.is-off{ opacity: .35; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-pager--more{ flex-direction: column; gap: 0; }

:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more{
  position: relative; display: inline-block; overflow: hidden; isolation: isolate; text-decoration: none; cursor: pointer;
  transition: transform .5s var(--eb-ease), box-shadow .5s var(--eb-ease), color .45s var(--eb-ease), background-color .45s var(--eb-ease), letter-spacing .5s var(--eb-ease), border-color .45s var(--eb-ease);
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--filled{ padding: 19px 44px; background-color: var(--eb-pgrid-more, var(--eb-bordeaux)); color: var(--eb-cream); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--filled::before{
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--eb-pgrid-more-ink, var(--eb-ink));
  transform: translateY(101%); transition: transform .55s var(--eb-ease);
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--filled:hover,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--filled:focus-visible{ color: var(--eb-cream); transform: translateY(-2px); box-shadow: 0 18px 34px -22px color-mix(in srgb, var(--eb-ink) 75%, transparent); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--filled:hover::before,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--filled:focus-visible::before{ transform: translateY(0); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--outline{ padding: 18px 43px; border: 1px solid var(--eb-pgrid-more, var(--eb-bordeaux)); color: var(--eb-pgrid-more, var(--eb-bordeaux)); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--outline:hover,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--outline:focus-visible{ background-color: var(--eb-pgrid-more, var(--eb-bordeaux)); color: var(--eb-cream); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--quiet{ padding: 0 0 8px; border-bottom: 1px solid var(--eb-hair); color: var(--eb-pgrid-more, var(--eb-bordeaux)); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--quiet:hover,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more--quiet:focus-visible{ letter-spacing: .3em; border-bottom-color: var(--eb-pgrid-more, var(--eb-bordeaux)); }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 6px; }

/* Loading: the cards dim while a page is swapped; a bordeaux line runs
   along a hairline under the button while more are fetched. */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-wrap.is-busy .eb-pgrid{ opacity: .45; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-wrap--load_more.is-busy .eb-pgrid,
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-wrap--infinite.is-busy .eb-pgrid{ opacity: 1; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-wrap.is-busy .eb-pgrid-more{ pointer-events: none; opacity: .55; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-loader{
  position: relative; display: block; width: 120px; height: 1px; margin-top: 22px; overflow: hidden;
  background-color: var(--eb-hair); opacity: 0; transition: opacity .4s var(--eb-ease);
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-loader::after{
  content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 40%; background-color: var(--eb-bordeaux);
  animation: ebPgridRun 1.2s var(--eb-ease) infinite;
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-wrap.is-busy .eb-pgrid-loader{ opacity: 1; }
@keyframes ebPgridRun{ 0%{ left: -40%; } 100%{ left: 100%; } }

/* Endless scroll keeps its link for readers without scripts; with the
   observer running only the running line shows. */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-wrap--infinite.is-live .eb-pgrid-more{
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-wrap--infinite.is-live .eb-pgrid-loader{ margin-top: 0; }

:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-end{ margin: 0; text-align: center; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-empty{ margin: 0; }

/* Cards that arrive later rise in one after another. */
@keyframes ebPgridIn{ from{ opacity: 0; transform: translateY(18px); } to{ opacity: 1; transform: none; } }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card.is-new{ animation: ebPgridIn .9s var(--eb-ease) both; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card.eb-pgrid-d2{ animation-delay: .09s; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card.eb-pgrid-d3{ animation-delay: .18s; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card.eb-pgrid-d4{ animation-delay: .27s; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card.eb-pgrid-d5{ animation-delay: .36s; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card.eb-pgrid-d6{ animation-delay: .45s; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card.eb-pgrid-d7{ animation-delay: .54s; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card.eb-pgrid-d8{ animation-delay: .63s; }

@media (prefers-reduced-motion: reduce){
  :is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-card.is-new{ animation: none; }
  :is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-loader::after{ animation-duration: 2.4s; }
  :is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-more,
  :is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid--overlay .eb-pgrid-body{ transition: none; }
}

/* =========================================================
   65. EB Post List and EB Post Slider (the Blog page, the journal archives)
   Both are EB Post Grid underneath: the card parts, the veil, the frame and
   shade, the actions and the pager are section 64. These rules draw the
   list's row and chips, and the slider's frame, its change and its bar.
   Colours and type come from each widget's controls; the values below are
   the design's own, so the archives (drawn outside Elementor, wrapped in
   .eb-posts-archive) look the same with no controls at all.
   ========================================================= */

/* ---- The list: one entry a line, the photograph beside the words. ---- */
:is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-pgrid--list{
  flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: var(--eb-plist-gap, 36px);
}
:is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-pgrid--list > .eb-pgrid-card{
  flex: none; width: 100%; flex-direction: row; align-items: stretch;
  gap: var(--eb-pgrid-side-gap, 38px); padding: var(--eb-plist-pad, 38px) 0;
}
/* Each side keeps its own place up and down (the widget's two alignment
   controls, or Customizer > Journal archives): the photograph by align-self,
   the words by spreading within the full height of the entry. Stretch lets
   the photograph fill a taller entry; its proportion is then the least it
   takes, and the image covers the rest. */
:is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-pgrid--list .eb-pgrid-plate{ flex: 0 0 var(--eb-pgrid-side-w, 300px); width: auto; max-width: 100%; align-self: var(--eb-plist-img-v, flex-start); }
:is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-pgrid--list .eb-pgrid-body{ flex: 1 1 0; align-self: stretch; justify-content: var(--eb-plist-words-v, flex-start); }
:is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-pgrid--list .eb-pgrid-excerpt{ max-width: 52ch; }
:is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-pgrid--list .eb-pgrid-foot{ margin-top: 0; }

:is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-plist--img-right > .eb-pgrid-card,
:is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-plist--img-alt > .eb-pgrid-card:nth-child(even){ flex-direction: row-reverse; }

/* The hairline that closes each entry. */
:is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-plist--ruled > .eb-pgrid-card{ border-bottom: 1px solid var(--eb-plist-rule, var(--eb-hair)); }

/* The photograph goes above the words at the width the widget names. */
@media (max-width: 1024px){
  :is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-plist--stack-1024 > .eb-pgrid-card{ flex-direction: column; align-items: stretch; gap: 22px; }
  :is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-plist--stack-1024 .eb-pgrid-plate{ flex: none; width: 100%; align-self: stretch; }
}
@media (max-width: 767px){
  :is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-plist--stack-767 > .eb-pgrid-card{ flex-direction: column; align-items: stretch; gap: 22px; }
  :is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-plist--stack-767 .eb-pgrid-plate{ flex: none; width: 100%; align-self: stretch; }
}
@media (max-width: 600px){
  :is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-plist--stack-600 > .eb-pgrid-card{ flex-direction: column; align-items: stretch; gap: 22px; }
  :is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-plist--stack-600 .eb-pgrid-plate{ flex: none; width: 100%; align-self: stretch; }
}
@media (max-width: 600px){
  /* Kept side by side on a phone, the photograph gives up some width. */
  :is(.elementor-widget-eb-post-list, .elementor-widget-eb-post-grid) .eb-pgrid.eb-plist--stack-never .eb-pgrid-plate{ flex-basis: min(var(--eb-pgrid-side-w, 300px), 40%); }
}

/* ---- Category chips: hairline squares; the chosen one fills bordeaux. ---- */
.eb-plist-chips{ display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 36px; }
.eb-plist-chips .eb-plist-chip{
  display: inline-flex; align-items: center; padding: 11px 22px;
  border: 1px solid var(--eb-chip-line, var(--eb-hair)); border-radius: 0;
  color: var(--eb-chip-ink, var(--eb-ink2)); background-color: transparent; text-decoration: none;
  transition: color .45s var(--eb-ease), background-color .45s var(--eb-ease), border-color .45s var(--eb-ease);
}
.eb-plist-chips .eb-plist-chip:hover,
.eb-plist-chips .eb-plist-chip:focus-visible{ color: var(--eb-chip-on, var(--eb-bordeaux)); border-color: var(--eb-chip-hover, var(--eb-brass)); }
.eb-plist-chips .eb-plist-chip:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 3px; }
.eb-plist-chips .eb-plist-chip.is-on,
.eb-plist-chips .eb-plist-chip.is-on:hover{ color: var(--eb-chip-on-ink, var(--eb-cream)); background-color: var(--eb-chip-on, var(--eb-bordeaux)); border-color: var(--eb-chip-on, var(--eb-bordeaux)); }

/* ---- The slider: every slide in one cell; the one shown is is-on. ---- */
.elementor-widget-eb-post-slider .eb-pslide-wrap{ --eb-pslide-speed: 900ms; --eb-pslide-delay: 6500ms; position: relative; }
.elementor-widget-eb-post-slider .eb-pslide-view{ display: grid; overflow: hidden; }
.elementor-widget-eb-post-slider .eb-pslide-item{
  grid-area: 1 / 1; position: relative; display: flex; flex-direction: row; align-items: center; min-width: 0;
  visibility: hidden; opacity: 0; transform: translate3d(100%, 0, 0);
  transition: transform var(--eb-pslide-speed) var(--eb-ease), opacity var(--eb-pslide-speed) var(--eb-ease), visibility 0s linear var(--eb-pslide-speed);
}
.elementor-widget-eb-post-slider .eb-pslide-item.is-left{ transform: translate3d(-100%, 0, 0); }
.elementor-widget-eb-post-slider .eb-pslide--slide .eb-pslide-item{ opacity: 1; }
.elementor-widget-eb-post-slider .eb-pslide--fade .eb-pslide-item,
.elementor-widget-eb-post-slider .eb-pslide--fade .eb-pslide-item.is-left{ transform: none; }
.elementor-widget-eb-post-slider .eb-pslide-item.is-on{ visibility: visible; opacity: 1; transform: none; transition-delay: 0s; z-index: 1; }
.elementor-widget-eb-post-slider .eb-pslide-item.is-jump{ transition: none; }

/* A slide: the photograph, then the words, centred beside it. */
.elementor-widget-eb-post-slider .eb-pslide .eb-pgrid-plate{ flex: 0 0 var(--eb-pslide-img-w, 55%); width: auto; max-width: 100%; }
.elementor-widget-eb-post-slider .eb-pslide .eb-pgrid-body{
  flex: 1 1 0; align-self: stretch; justify-content: center;
  padding: var(--eb-pslide-pad, 78px) 0 var(--eb-pslide-pad, 78px) var(--eb-pslide-gap, 62px);
}
.elementor-widget-eb-post-slider .eb-pslide .eb-pgrid-foot{ margin-top: 0; }
.elementor-widget-eb-post-slider .eb-pslide--v-top .eb-pgrid-body{ justify-content: flex-start; }
.elementor-widget-eb-post-slider .eb-pslide--v-bottom .eb-pgrid-body{ justify-content: flex-end; }
.elementor-widget-eb-post-slider .eb-pslide--img-right .eb-pslide-item{ flex-direction: row-reverse; }
.elementor-widget-eb-post-slider .eb-pslide--img-right .eb-pgrid-body{ padding-left: 0; padding-right: var(--eb-pslide-gap, 62px); }
.elementor-widget-eb-post-slider .eb-pslide .eb-pgrid-title{ max-width: 20ch; }
.elementor-widget-eb-post-slider .eb-pslide .eb-pgrid-excerpt{ max-width: 52ch; }

@media (max-width: 1024px){
  .elementor-widget-eb-post-slider .eb-pslide--stack-1024 .eb-pslide-item{ flex-direction: column; align-items: stretch; }
  .elementor-widget-eb-post-slider .eb-pslide--stack-1024 .eb-pgrid-plate{ flex: none; width: 100%; }
  .elementor-widget-eb-post-slider .eb-pslide--stack-1024 .eb-pgrid-body{ padding: 36px 0 8px; }
}
@media (max-width: 900px){
  .elementor-widget-eb-post-slider .eb-pslide--stack-900 .eb-pslide-item{ flex-direction: column; align-items: stretch; }
  .elementor-widget-eb-post-slider .eb-pslide--stack-900 .eb-pgrid-plate{ flex: none; width: 100%; }
  .elementor-widget-eb-post-slider .eb-pslide--stack-900 .eb-pgrid-body{ padding: 36px 0 8px; }
}
@media (max-width: 767px){
  .elementor-widget-eb-post-slider .eb-pslide--stack-767 .eb-pslide-item{ flex-direction: column; align-items: stretch; }
  .elementor-widget-eb-post-slider .eb-pslide--stack-767 .eb-pgrid-plate{ flex: none; width: 100%; }
  .elementor-widget-eb-post-slider .eb-pslide--stack-767 .eb-pgrid-body{ padding: 36px 0 8px; }
}

/* The house hovers on the slider's own frame (section 64 keys them to the
   grid's row). */
.elementor-widget-eb-post-slider .eb-pslide:not(.eb-pgrid--h-still) .eb-pgrid-card:hover .eb-pgrid-plate img,
.elementor-widget-eb-post-slider .eb-pslide:not(.eb-pgrid--h-still) .eb-pgrid-card:focus-within .eb-pgrid-plate img{ transform: scale(var(--eb-pgrid-zoom, 1.07)); }
.elementor-widget-eb-post-slider .eb-pslide.eb-pgrid--nozoom .eb-pgrid-card .eb-pgrid-plate img{ transform: none; filter: none; }
.elementor-widget-eb-post-slider .eb-pslide .eb-pgrid-card:hover .eb-pgrid-action--quiet:not(.eb-pgrid-action--own),
.elementor-widget-eb-post-slider .eb-pslide .eb-pgrid-card:focus-within .eb-pgrid-action--quiet:not(.eb-pgrid-action--own){ letter-spacing: .3em; }
.elementor-widget-eb-post-slider .eb-pslide .eb-pgrid-card.eb-card:hover .eb-pgrid-title,
.elementor-widget-eb-post-slider .eb-pslide .eb-pgrid-card.eb-card:focus-within .eb-pgrid-title{ color: var(--eb-brass); }

/* The bar: rule marks and the counter, then the arrows. The kit gives every
   button the action panel, so these state their own at a weight above it. */
.elementor-widget-eb-post-slider .eb-pslide-bar{ display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-top: 34px; }
.elementor-widget-eb-post-slider .eb-pslide-dots{ display: flex; align-items: center; gap: 12px; }
.elementor-widget-eb-post-slider .eb-pslide-dots .eb-pslide-dot{
  position: relative; display: block; width: var(--eb-pslide-dot-w, 34px); height: 24px; padding: 0; margin: 0;
  border: 0; border-radius: 0; background: none; box-shadow: none; cursor: pointer;
}
.elementor-widget-eb-post-slider .eb-pslide-dots .eb-pslide-dot::before,
.elementor-widget-eb-post-slider .eb-pslide-dots .eb-pslide-dot::after{
  content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 2px; margin-top: -1px;
}
.elementor-widget-eb-post-slider .eb-pslide-dots .eb-pslide-dot::before{ background-color: var(--eb-pslide-dot, var(--eb-hair)); transition: background-color .5s var(--eb-ease); }
.elementor-widget-eb-post-slider .eb-pslide-dots .eb-pslide-dot::after{
  background-color: var(--eb-pslide-dot-on, var(--eb-bordeaux));
  transform: scaleX(0); transform-origin: 0 50%; transition: transform .5s var(--eb-ease);
}
.elementor-widget-eb-post-slider .eb-pslide-dots .eb-pslide-dot:hover,
.elementor-widget-eb-post-slider .eb-pslide-dots .eb-pslide-dot:focus{ background: none; }
.elementor-widget-eb-post-slider .eb-pslide-dots .eb-pslide-dot:hover::before{ background-color: color-mix(in srgb, var(--eb-pslide-dot-on, var(--eb-bordeaux)) 35%, transparent); }
.elementor-widget-eb-post-slider .eb-pslide-dots .eb-pslide-dot.is-on::after{ transform: scaleX(1); }
.elementor-widget-eb-post-slider .eb-pslide-dots .eb-pslide-dot:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 2px; }
/* With autoplay the shown rule fills over the time the slide stays, and
   holds while the slider waits. */
@keyframes ebPslideFill{ from{ transform: scaleX(0); } to{ transform: scaleX(1); } }
.elementor-widget-eb-post-slider .eb-pslide-wrap.is-auto .eb-pslide-dots .eb-pslide-dot.is-on::after{ transition: none; animation: ebPslideFill var(--eb-pslide-delay) linear both; }
.elementor-widget-eb-post-slider .eb-pslide-wrap.is-auto.is-paused .eb-pslide-dots .eb-pslide-dot.is-on::after{ animation-play-state: paused; }

.elementor-widget-eb-post-slider .eb-pslide-count{
  margin-left: 6px; color: var(--eb-ink2);
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase;
}
.elementor-widget-eb-post-slider .eb-pslide-nav{ display: flex; gap: 12px; }
.elementor-widget-eb-post-slider .eb-pslide-nav button{
  display: flex; align-items: center; justify-content: center;
  width: var(--eb-pslide-arrow-size, 46px); height: var(--eb-pslide-arrow-size, 46px); padding: 0; margin: 0;
  border: 1px solid var(--eb-pslide-arrow-line, var(--eb-hair)); border-radius: 0; background: none; box-shadow: none;
  color: var(--eb-pslide-arrow, var(--eb-ink2)); font-family: "Jost", system-ui, sans-serif; font-size: 16px; line-height: 1; cursor: pointer;
  transition: color .45s var(--eb-ease), border-color .45s var(--eb-ease), opacity .45s var(--eb-ease);
}
.elementor-widget-eb-post-slider .eb-pslide-nav button:hover,
.elementor-widget-eb-post-slider .eb-pslide-nav button:focus-visible{
  background: none; color: var(--eb-pslide-arrow-hover, var(--eb-bordeaux)); border-color: var(--eb-pslide-arrow-hover-line, var(--eb-brass));
}
.elementor-widget-eb-post-slider .eb-pslide-nav button:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 3px; }
.elementor-widget-eb-post-slider .eb-pslide-nav button:disabled{ opacity: .35; cursor: default; color: var(--eb-pslide-arrow, var(--eb-ink2)); border-color: var(--eb-pslide-arrow-line, var(--eb-hair)); }
/* Pause: two bars; pressed, a play triangle. */
.elementor-widget-eb-post-slider .eb-pslide-play-i{ position: relative; display: block; width: 10px; height: 12px; }
.elementor-widget-eb-post-slider .eb-pslide-play-i::before,
.elementor-widget-eb-post-slider .eb-pslide-play-i::after{ content: ""; position: absolute; top: 0; bottom: 0; width: 3px; background-color: currentColor; }
.elementor-widget-eb-post-slider .eb-pslide-play-i::before{ left: 0; }
.elementor-widget-eb-post-slider .eb-pslide-play-i::after{ right: 0; }
.elementor-widget-eb-post-slider .eb-pslide-play[aria-pressed="true"] .eb-pslide-play-i::before{
  width: 0; height: 0; bottom: auto; left: 1px; background: none;
  border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor;
}
.elementor-widget-eb-post-slider .eb-pslide-play[aria-pressed="true"] .eb-pslide-play-i::after{ display: none; }

@media (prefers-reduced-motion: reduce){
  .elementor-widget-eb-post-slider .eb-pslide-item,
  .elementor-widget-eb-post-slider .eb-pslide-dots .eb-pslide-dot::after{ transition: none; }
  .elementor-widget-eb-post-slider .eb-pslide--slide .eb-pslide-item:not(.is-on){ opacity: 0; }
}

/* ---- The journal archives: drawn outside Elementor, so the design's type
   and colours are stated here from the Global Fonts and Colours. The sizes
   chosen in Customizer > Journal archives arrive as variables (inline). ---- */
.eb-posts-archive .eb-pgrid-label{
  font-family: var(--e-global-typography-ebcap24-font-family), system-ui, sans-serif; font-size: var(--e-global-typography-ebcap24-font-size);
  font-weight: var(--e-global-typography-ebcap24-font-weight); line-height: var(--e-global-typography-ebcap24-line-height);
  letter-spacing: var(--e-global-typography-ebcap24-letter-spacing); text-transform: var(--e-global-typography-ebcap24-text-transform);
  color: var(--eb-brass);
}
.eb-posts-archive .eb-pgrid:not(.eb-pgrid--overlay) .eb-pgrid-label{ margin-top: 22px; }
.eb-posts-archive .eb-pgrid-title{
  font-family: var(--e-global-typography-ebh3card-font-family), Georgia, serif; font-size: var(--e-global-typography-ebh3card-font-size);
  font-weight: var(--e-global-typography-ebh3card-font-weight); line-height: var(--e-global-typography-ebh3card-line-height);
  color: var(--eb-ink); margin-top: 11px;
}
.eb-posts-archive .eb-pgrid:not(.eb-pgrid--overlay) .eb-pgrid-title{ color: var(--eb-ink); }
.eb-posts-archive .eb-pgrid--overlay .eb-pgrid-title{ color: var(--eb-cream); }
.eb-posts-archive .eb-pgrid-meta{
  font-family: var(--e-global-typography-ebcaption11-font-family), system-ui, sans-serif; font-size: var(--e-global-typography-ebcaption11-font-size);
  font-weight: var(--e-global-typography-ebcaption11-font-weight); line-height: var(--e-global-typography-ebcaption11-line-height);
  letter-spacing: var(--e-global-typography-ebcaption11-letter-spacing); text-transform: var(--e-global-typography-ebcaption11-text-transform);
  color: var(--eb-ink2); margin-top: 12px;
}
.eb-posts-archive .eb-pgrid-excerpt{
  font-family: var(--e-global-typography-text-font-family), system-ui, sans-serif; font-size: var(--e-global-typography-text-font-size);
  font-weight: var(--e-global-typography-text-font-weight); line-height: var(--e-global-typography-text-line-height);
  color: var(--eb-ink2); margin-top: 14px;
}
.eb-posts-archive .eb-pgrid-action,
.eb-posts-archive .eb-pgrid-more{
  font-family: var(--e-global-typography-ebquiet-font-family), system-ui, sans-serif; font-size: var(--e-global-typography-ebquiet-font-size);
  font-weight: var(--e-global-typography-ebquiet-font-weight); line-height: var(--e-global-typography-ebquiet-line-height);
  letter-spacing: var(--e-global-typography-ebquiet-letter-spacing); text-transform: var(--e-global-typography-ebquiet-text-transform);
}
.eb-posts-archive .eb-pgrid-action--quiet{ color: var(--eb-ink2); }
.eb-posts-archive .eb-pgrid-foot{ padding-top: 26px; }
.eb-posts-archive .eb-pgrid--stacked:not(.eb-pgrid--list) .eb-pgrid-foot{ padding-top: 14px; }
.eb-posts-archive .eb-pgrid-face-title{
  font-family: var(--e-global-typography-ebserif26-font-family), Georgia, serif; font-size: var(--e-global-typography-ebserif26-font-size);
  font-weight: var(--e-global-typography-ebserif26-font-weight); line-height: var(--e-global-typography-ebserif26-line-height); color: var(--eb-cream);
}
.eb-posts-archive .eb-pgrid-face-action{
  font-family: var(--e-global-typography-ebcap24-font-family), system-ui, sans-serif; font-size: var(--e-global-typography-ebcap24-font-size);
  font-weight: var(--e-global-typography-ebcap24-font-weight); letter-spacing: var(--e-global-typography-ebcap24-letter-spacing);
  text-transform: var(--e-global-typography-ebcap24-text-transform); color: color-mix(in srgb, var(--eb-cream) 90%, transparent);
}
.eb-posts-archive .eb-pgrid-face-title + .eb-pgrid-face-action{ margin-top: 14px; }
.eb-posts-archive .eb-plist-chip{
  font-family: var(--e-global-typography-ebcap20-font-family), system-ui, sans-serif; font-size: var(--e-global-typography-ebcap20-font-size);
  font-weight: var(--e-global-typography-ebcap20-font-weight); line-height: var(--e-global-typography-ebcap20-line-height);
  letter-spacing: var(--e-global-typography-ebcap20-letter-spacing); text-transform: var(--e-global-typography-ebcap20-text-transform);
}
.eb-posts-archive .eb-pgrid-empty{
  font-family: var(--e-global-typography-ebitalsm-font-family), Georgia, serif; font-size: var(--e-global-typography-ebitalsm-font-size);
  font-style: italic; color: var(--eb-ink2);
}
.eb-posts-archive .eb-pgrid-pager{ margin-top: 34px; justify-content: space-between; }
.eb-posts-archive .eb-pgrid-pager--more{ justify-content: center; }

/* ---- The action answers its own pointer (EB Post List, EB Post Slider and
   the journal archives' list). It is a link of its own, lifted above the
   card's link and out of the tab order (the card's link carries the entry),
   so hovering the rest of the card leaves it at rest. ---- */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-action.eb-pgrid-action--own{ position: relative; z-index: 8; cursor: pointer; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-action--own.eb-pgrid-action--button:hover{
  color: var(--eb-cream); text-decoration: none; transform: translateY(-2px); box-shadow: 0 18px 34px -22px color-mix(in srgb, var(--eb-ink) 75%, transparent);
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-action--own.eb-pgrid-action--button:hover::before{ transform: translateY(0); }
/* The light sweep of the house buttons, run each time the button is entered. */
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-action--own.eb-pgrid-action--button::after{
  content: ""; position: absolute; top: -40%; left: -45%; width: 38%; height: 180%;
  pointer-events: none; transform: rotate(14deg); opacity: 0;
  background: linear-gradient(90deg, color-mix(in srgb, var(--eb-cream) 0%, transparent), color-mix(in srgb, var(--eb-cream) 50%, transparent), color-mix(in srgb, var(--eb-cream) 0%, transparent));
}
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-action--own.eb-pgrid-action--button:hover::after{ opacity: 1; animation: ebSweep 1.15s var(--eb-ease) both; }
:is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-action--own.eb-pgrid-action--quiet:hover{ letter-spacing: .3em; color: var(--eb-bordeaux); }
@media (prefers-reduced-motion: reduce){
  :is(.elementor-widget-eb-post-grid, .elementor-widget-eb-post-list, .elementor-widget-eb-post-slider) .eb-pgrid-action--own.eb-pgrid-action--button::after{ display: none; }
}

/* The list's label sits on the entry's top line, level with the photograph;
   on a phone the gap under the stacked photograph does the spacing. */
.eb-posts-archive .eb-pgrid.eb-pgrid--list .eb-pgrid-label{ margin-top: 0; }

/* =========================================================
   66. EB Image widget (Elementor's Image with the house plate)
   The plate holds the photograph; the width, max width, height, border,
   radius and shadow set in the widget's Style tab land on it. The hover
   styles repeat section 9 (frame and shade) and the masterclass plates
   (bordeaux veil), so an EB Image reads as an EB Cards plate. The hover
   answers the plate itself; keyboard focus on a linked plate shows it too.
   Colours, insets and the zoom arrive as custom properties from the
   widget's controls; the values here are the house defaults.
   ========================================================= */
.elementor-widget-eb-image .eb-img-plate{
  --eb-img-hair: color-mix(in srgb, var(--eb-cream) 42%, transparent);
  --eb-img-hair-hover: color-mix(in srgb, var(--eb-cream) 75%, transparent);
  --eb-img-hair-inset: 14px; --eb-img-hair-inset-hover: 20px; --eb-img-zoom: 1.07;
  position: relative; display: inline-block; vertical-align: top; max-width: 100%;
  overflow: hidden; line-height: 0; color: inherit; text-decoration: none;
  border-radius: 0; outline: 0;
}
/* Linked or not, the frame is drawn the same: a link to the media file
   changes neither its proportion nor its corners. */
.elementor-widget-eb-image a.eb-img-plate{ display: inline-block; box-shadow: none; }
.elementor-widget-eb-image a.eb-img-plate:focus:not(:focus-visible){ outline: 0; }
.elementor-widget-eb-image .eb-img-plate--veil{ --eb-img-hair: var(--eb-cream-rule); }
.elementor-widget-eb-image .eb-img-plate.eb-img-plate--ratio{ width: 100%; }
.elementor-widget-eb-image .eb-img-plate img{
  display: block; width: 100%; height: 100%; max-width: 100%;
  transition: transform 1.2s var(--eb-ease), filter 1.2s var(--eb-ease);
}
/* In a fixed proportion the frame takes its height from its width alone,
   so the photograph is laid over it rather than sizing it. */
.elementor-widget-eb-image .eb-img-plate--ratio img{ position: absolute; inset: 0; object-fit: cover; }

/* Shade (frame) and veil, resting. */
.elementor-widget-eb-image .eb-img-plate--frame::before,
.elementor-widget-eb-image .eb-img-plate--veil::before{
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 0;
}
.elementor-widget-eb-image .eb-img-plate--frame::before{
  background: linear-gradient(180deg, transparent 45%, color-mix(in srgb, var(--eb-ink) 34%, transparent) 100%);
  transition: opacity .8s var(--eb-ease);
}
.elementor-widget-eb-image .eb-img-plate--veil::before{
  background: linear-gradient(180deg, color-mix(in srgb, var(--eb-bordeaux) 42%, transparent) 0%, color-mix(in srgb, var(--eb-bordeaux) 78%, transparent) 62%, color-mix(in srgb, var(--eb-ink) 92%, transparent) 100%);
  transition: opacity .7s var(--eb-ease);
}

/* The inset hairline. */
.elementor-widget-eb-image .eb-img-plate--hair::after{
  content: ""; position: absolute; inset: var(--eb-img-hair-inset); z-index: 5; pointer-events: none;
  border: 1px solid var(--eb-img-hair);
  transition: inset .8s var(--eb-ease), border-color .8s var(--eb-ease);
}

/* The veil's words. */
.elementor-widget-eb-image .eb-img-face{
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 4;
  padding: 34px 26px; line-height: normal; text-align: center;
  opacity: 0; transform: translateY(16px);
  transition: opacity .7s var(--eb-ease), transform .7s var(--eb-ease);
}
.elementor-widget-eb-image .eb-img-face-title,
.elementor-widget-eb-image .eb-img-face-action{ display: block; }

/* Under the pointer, or focused from the keyboard. */
.elementor-widget-eb-image :is(.eb-img-plate--frame, .eb-img-plate--veil):is(:hover, :focus-visible)::before{ opacity: 1; }
.elementor-widget-eb-image .eb-img-plate--hair:not(.eb-img-plate--still):is(:hover, :focus-visible)::after{
  inset: var(--eb-img-hair-inset-hover); border-color: var(--eb-img-hair-hover);
}
.elementor-widget-eb-image .eb-img-plate--zoom:is(:hover, :focus-visible) img{ transform: scale(var(--eb-img-zoom)); }
.elementor-widget-eb-image .eb-img-plate--frame.eb-img-plate--zoom:is(:hover, :focus-visible) img{ filter: saturate(1.08); }
.elementor-widget-eb-image .eb-img-plate--veil:is(:hover, :focus-visible) .eb-img-face{ opacity: 1; transform: none; }
.elementor-widget-eb-image a.eb-img-plate:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 6px; }

@media (prefers-reduced-motion: reduce){
  .elementor-widget-eb-image .eb-img-plate img,
  .elementor-widget-eb-image .eb-img-face{ transition: none; }
  .elementor-widget-eb-image .eb-img-plate--zoom:is(:hover, :focus-visible) img{ transform: none; }
}

/* In the lightbox, an EB Image photograph keeps its frame: the same
   proportion, cropped from the centre, with square corners (eb-ui.js sets
   the class from the widget's proportion). */
.elementor-lightbox .elementor-lightbox-image[class*="eb-lb-r-"]{ border-radius: 0; object-fit: cover; }
.elementor-lightbox .elementor-lightbox-image.eb-lb-r-3-4{ aspect-ratio: 3 / 4; }
.elementor-lightbox .elementor-lightbox-image.eb-lb-r-4-5{ aspect-ratio: 4 / 5; }
.elementor-lightbox .elementor-lightbox-image.eb-lb-r-2-3{ aspect-ratio: 2 / 3; }
.elementor-lightbox .elementor-lightbox-image.eb-lb-r-1-1{ aspect-ratio: 1 / 1; }
.elementor-lightbox .elementor-lightbox-image.eb-lb-r-4-3{ aspect-ratio: 4 / 3; }
.elementor-lightbox .elementor-lightbox-image.eb-lb-r-3-2{ aspect-ratio: 3 / 2; }
.elementor-lightbox .elementor-lightbox-image.eb-lb-r-16-9{ aspect-ratio: 16 / 9; }

/* A flex item that starts from 260px and grows to share the row (the
   About "decade before the protocols" photographs, with .eb-minw-320). */
.elementor .eb-basis-260{ flex-basis: 260px; }
/* Elementor zeroes a widget's min-width inside a container; the house
   minimum widths hold for widgets as they do for containers. */
.elementor .e-con > .elementor-widget.eb-minw-320{ min-width: min(100%, 320px); }

/* =========================================================
   67. Essay furniture and the related cards (11 Oct 2026)
   Tables, figures, citation marks and the sources list inside a post
   body, and the bordeaux veil on the "More from the writing room"
   cards, so every linked card on the site answers the pointer the
   same way (client request).
   ========================================================= */
.eb-post-body .wp-block-table{ margin: 46px 0 0; overflow-x: auto; }
.eb-post-body .wp-block-table table{ width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.7; }
.eb-post-body .wp-block-table thead{ border: 0; }
.eb-post-body .wp-block-table th{
  text-align: left; vertical-align: bottom; padding: 0 18px 14px 0; border: 0;
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 10.5px; line-height: 1.6;
  letter-spacing: .22em; text-transform: uppercase; color: var(--eb-brass);
}
.eb-post-body .wp-block-table td{ vertical-align: top; padding: 16px 18px 16px 0; border: 0; color: var(--eb-ink2); }
.eb-post-body .wp-block-table tbody tr:nth-child(odd){ background-color: var(--eb-cream2); }
.eb-post-body .wp-block-table tbody td:first-child{ padding-left: 16px; font-family: "Cormorant Garamond", Georgia, serif; font-size: 20px; line-height: 1.3; color: var(--eb-ink); }
.eb-post-body .wp-block-table thead th:first-child{ padding-left: 16px; }
@media (max-width: 600px){
  .eb-post-body .wp-block-table table{ min-width: 560px; }
}

/* Figures: a portrait never takes the full column, a small photograph is
   never enlarged past its own size. */
.eb-post-body .wp-block-image.eb-fig-portrait{ max-width: 560px; }
.eb-post-body .wp-block-image.eb-fig-narrow{ max-width: 400px; }

/* Citation marks and the sources list. */
.eb-post-body sup.eb-cite{ font-size: .62em; line-height: 0; vertical-align: super; margin-left: 2px; }
.eb-post-body.eb-post-body sup.eb-cite a{ border-bottom: 0; color: var(--eb-brass); letter-spacing: .04em; }
.eb-post-body.eb-post-body ol.eb-refs{ display: block; counter-reset: none; font-size: 14.5px; line-height: 1.7; list-style: decimal; padding-left: 22px; }
.eb-post-body.eb-post-body ol.eb-refs > li{ display: list-item; padding-left: 4px; }
.eb-post-body.eb-post-body ol.eb-refs > li + li{ margin-top: 10px; }
.eb-post-body.eb-post-body ol.eb-refs > li::before{ content: none; }

/* "More from the writing room": the masterclass veil and its words. */
.eb-more__card{ display: block; color: inherit; text-decoration: none; }
.eb-more__plate.eb-mc-plate{ position: relative; overflow: hidden; aspect-ratio: 4 / 3; }
.eb-more__face{
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; padding: 30px 24px; text-align: center;
  font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 11px; letter-spacing: .24em;
  text-transform: uppercase; color: var(--eb-cream);
  opacity: 0; transform: translateY(16px); transition: opacity .7s var(--eb-ease), transform .7s var(--eb-ease);
}
.eb-more__card:is(:hover, :focus-visible) .eb-more__face{ opacity: 1; transform: none; }
.eb-more__card:focus-visible .eb-mc-plate::before{ opacity: 1; }
.eb-more__card:focus-visible .eb-mc-plate::after{ inset: 20px; border-color: color-mix(in srgb, var(--eb-cream) 75%, transparent); }
.eb-more__card:focus-visible{ outline: 1px solid var(--eb-brass); outline-offset: 6px; }
@media (prefers-reduced-motion: reduce){ .eb-more__face{ transition: none; } }

/* A short opening paragraph keeps its dropped capital to itself. */
.eb-post-body > p:first-child + p{ display: flow-root; }
.eb-post-body .wp-block-table table, .eb-post-body .wp-block-table thead, .eb-post-body .wp-block-table tfoot, .eb-post-body .wp-block-table tr{ border: 0; }
