/* ==========================================================================
   Lenny Swipe Era — homepage
   Digital Edge wireframe, Lenny branding: espresso black, cream, Lenny orange.
   Playfair Display (logo serif) + DM Sans (site body font).
   Paste into: Elementor > Site Settings > Custom CSS
   Scoped to .lse / .lse-booking / .lse-shop so other pages are untouched.
   ========================================================================== */

.lse, .lse-booking, .lse-shop {
  --paper: #f5efe6;
  --paper-2: #ece2d3;
  --card: #ffffff;
  --ink: #1a120b;
  --ink-deep: #0f0a06;
  --ink-2: #5f4a3a;
  --line: rgb(43 26 16 / .13);
  --line-strong: rgb(43 26 16 / .28);
  --orange: #f2871f;
  --orange-display: #e0761a;
  --orange-text: #a84f0b;
  --peach: #fde7d2;
  --gold: #e8a33d;
  --shadow: 0 34px 70px -40px rgb(43 26 16 / .45);
  --shadow-sm: 0 14px 30px -20px rgb(43 26 16 / .4);
  --ease: cubic-bezier(.2, .7, .1, 1);
  --serif: 'Playfair Display', Georgia, serif;
  --night: #120c08;
  --pill-bg: var(--ink); --pill-fg: var(--paper); --pill-icon-bg: var(--orange); --pill-icon-fg: var(--ink);
  --sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --script: 'Pinyon Script', cursive;
  --gutter: 64px;
  --section: clamp(84px, 10vw, 148px);
}

/* ---------- Theme reset ----------
   The site theme styles every paragraph, list and heading globally (uppercase, orange, small).
   These rules undo that inside the homepage only. They sit at the same weight as the theme's
   rules but load later, so they win; every rule further down this file still overrides them. */
.lse :where(p, li, span, blockquote, figcaption, h1, h2, h3, h4) { text-transform: none; letter-spacing: inherit; color: inherit; font-family: inherit; font-size: inherit; line-height: inherit; font-weight: inherit; }
.lse :where(h1, h2, h3, h4) { line-height: 1.05; }
/* The theme paints a black background behind every heading block; not inside the Swipe Era design. */
.lse :where(h1, h2, h3, h4, h5, h6, .wp-block-heading) { background: none !important; }
.lse :where(a) { color: inherit; text-decoration: none; text-transform: none; font-family: inherit; font-size: inherit; }

/* ---------- Base ---------- */
body.page-id-385 { background: #120c08 !important; overflow-x: clip; }
.lse { position: relative; background: #f5efe6; color: var(--ink); font-family: var(--sans); font-size: 18px; line-height: 1.6; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
.lse *, .lse *::before, .lse *::after { box-sizing: border-box; }
.lse img { max-width: 100%; height: auto; display: block; }
.lse a { color: inherit; text-decoration: none; }
.lse h1, .lse h2, .lse h3, .lse p, .lse figure, .lse blockquote { margin: 0; }
.lse ul { margin: 0; padding: 0; list-style: none; }
.lse ::selection { background: var(--peach); color: var(--ink); }
.lse :focus-visible { outline: 2px solid var(--orange-text); outline-offset: 3px; border-radius: 4px; }
.lse h1, .lse h2 { font-family: var(--serif); font-weight: 400; letter-spacing: -.025em; font-optical-sizing: auto; color: var(--ink); }
.lse h2 { font-size: clamp(38px, 4.6vw, 66px); line-height: 1.05; }
.lse h1 em, .lse h2 em, .lse h3 em { font-style: italic; font-weight: 400; color: var(--orange-display); }
.lse .dot { color: var(--orange-display); }
.lse-inner { max-width: 1320px; margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.lse .icon { flex-shrink: 0; transition: transform .45s var(--ease); }

/* Section label: number + words, no dash */
.lse-label { display: flex; align-items: baseline; gap: 14px; margin-bottom: 22px; font-size: 15px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); }
.lse-label b { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 30px; letter-spacing: 0; text-transform: none; color: var(--orange-display); line-height: 1; }

/* Brand sun mark (drawn, never typed) */
.lse-rings { display: inline-flex; color: var(--orange-display); line-height: 1; vertical-align: -.04em; }
.lse-rings svg { width: 1em; height: .78em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; overflow: visible; }

/* ---------- Buttons & links ---------- */
.lse-pill { position: relative; display: inline-flex; align-items: center; gap: 14px; height: 56px; padding: 0 8px 0 26px; border: 0; border-radius: 999px; cursor: pointer; background: var(--pill-bg); color: var(--pill-fg) !important; font-family: var(--sans); font-size: 16px; font-weight: 600; white-space: nowrap; overflow: hidden; isolation: isolate; transition: transform .3s var(--ease), box-shadow .3s; }
.lse-pill .icon { width: 40px; height: 40px; padding: 11px; border-radius: 50%; background: var(--pill-icon-bg); color: var(--pill-icon-fg); }
.lse-pill::before { content: ''; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: var(--ink-deep); transform: scaleX(0); transform-origin: right; transition: transform .5s var(--ease); }
.lse-pill:hover::before { transform: scaleX(1); transform-origin: left; }
.lse-pill:hover { box-shadow: var(--shadow-sm); }
.lse-pill:hover .icon { transform: rotate(45deg); }
.lse-plain { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 600; background: linear-gradient(var(--orange), var(--orange)) left 100% / 0 2px no-repeat; padding-bottom: 3px; transition: background-size .45s var(--ease); }
.lse-plain:hover { background-size: 100% 2px; }
.lse-plain:hover .icon { transform: translateX(4px); }
.lse-arrow { display: inline-flex; align-items: center; gap: 16px; font-size: 16px; font-weight: 600; }
.lse-arrow > span:first-child { background: linear-gradient(var(--orange), var(--orange)) left 100% / 0 2px no-repeat; padding-bottom: 2px; transition: background-size .45s var(--ease); }
.lse-arrow > span:last-child { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-strong); display: grid; place-items: center; transition: background .3s, border-color .3s, transform .45s var(--ease); }
.lse-arrow:hover > span:first-child { background-size: 100% 2px; }
.lse-arrow:hover > span:last-child { background: var(--orange); border-color: var(--orange); transform: rotate(45deg); }

/* ---------- Header ---------- */
.lse-header { position: sticky; top: 0; z-index: 60; background: rgb(251 245 236 / 0); border-bottom: 1px solid transparent; transition: background .3s, border-color .3s; }
.admin-bar .lse-header { top: 32px; }
.lse-header.is-scrolled, .lse-header.is-open { background: rgb(251 245 236 / .92); border-bottom-color: var(--line); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); }
.lse-header-inner { max-width: 1440px; margin: 0 auto; height: 92px; padding: 0 var(--gutter); display: flex; align-items: center; gap: 32px; transition: height .35s var(--ease); }
.lse-header.is-scrolled .lse-header-inner { height: 74px; }
.lse-wordmark { font-family: var(--serif); font-size: 28px; line-height: 1; letter-spacing: -.02em; white-space: nowrap; }
.lse-wordmark em { font-style: italic; font-weight: 300; color: var(--orange-display); }
.lse-nav { margin-left: auto; display: flex; align-items: center; gap: 30px; }
.lse-nav a { position: relative; padding: 10px 0; font-family: var(--serif); font-size: 18px; letter-spacing: .01em; color: #efe3d1; transition: color .3s; }

.lse-nav .lse-nav-mobile-cta { display: none; }
.lse-header-cta { display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 22px; border-radius: 999px; border: 1px solid var(--ink); font-size: 16px; font-weight: 600; white-space: nowrap; transition: background .3s, color .3s; }
.lse-header-cta:hover { background: var(--ink); color: var(--paper); }
.lse-header-cta:hover .icon { transform: rotate(45deg); color: var(--orange); }
.lse-menu-toggle { display: none; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--line-strong); background: transparent; cursor: pointer; place-items: center; align-content: center; padding: 0; }
.lse-menu-toggle span { display: block; width: 18px; height: 1.5px; background: var(--ink); border-radius: 2px; transition: transform .35s var(--ease); }
.lse-menu-toggle span + span { margin-top: 6px; }
.lse-menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.75px) rotate(45deg); }
.lse-menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

/* ---------- Hero ---------- */
.lse-hero { position: relative; padding-top: clamp(40px, 6vw, 80px); overflow: hidden; }
.lse-halo { position: absolute; top: -320px; right: -260px; width: 900px; height: 900px; border-radius: 50%; pointer-events: none; background: radial-gradient(closest-side, rgb(253 222 190 / .95), rgb(250 232 210 / .5) 55%, transparent 75%); animation: lse-breathe 9s ease-in-out infinite; }
.lse-hero-sunmark { position: absolute; top: 30px; right: -40px; width: min(420px, 34vw); color: var(--orange); opacity: .09; pointer-events: none; animation: lse-spin 90s linear infinite; }
.lse-hero .lse-inner { position: relative; }
.lse-kicker { display: inline-flex; align-items: center; gap: 16px; padding: 8px 28px 8px 8px; margin-bottom: clamp(28px, 3vw, 40px); border-radius: 999px; background: rgb(255 255 255 / .75); border: 1px solid var(--line); box-shadow: 0 1px 0 rgb(255 255 255 / .9) inset, 0 14px 34px -18px rgb(43 26 16 / .35); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: lse-rise 1.1s var(--ease) both; }
.lse-kicker-face { width: 48px; height: 48px; border-radius: 50%; overflow: hidden; flex-shrink: 0; box-shadow: 0 0 0 2.5px var(--paper); background: var(--peach); }
.lse-kicker-face img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.lse-kicker-text { font-family: var(--serif); font-size: clamp(20px, 2vw, 27px); line-height: 1.2; letter-spacing: -.01em; }
.lse-kicker-text em { position: relative; font-style: italic; color: var(--orange-display); white-space: nowrap; }
.lse-kicker-text em::after { content: ''; position: absolute; left: 0; right: 0; bottom: -7px; height: 6px; background: no-repeat center / 100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 6' preserveAspectRatio='none'%3E%3Cpath d='M1 4C20 1 40 1 60 3S100 5 119 2' fill='none' stroke='%23e0761a' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E"); transform-origin: left; animation: lse-line 1s var(--ease) .9s both; }
.lse-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 56px; align-items: end; margin-bottom: clamp(40px, 5vw, 64px); }
.lse-hero-title { font-size: clamp(56px, 7.6vw, 112px); line-height: 1.02; }
.lse-hero-line { display: block; animation: lse-rise 1.3s var(--ease) both; }
.lse-hero-line-2 { padding-left: clamp(40px, 8vw, 150px); animation-delay: .08s; }
.lse-hero-line-3 { padding-left: clamp(20px, 4vw, 78px); animation-delay: .16s; }
.lse-hero-line-3 .lse-rings { font-size: .82em; margin-right: .1em; animation: lse-spin 18s linear infinite; }
.lse-scribble { position: relative; display: inline-block; white-space: nowrap; }
.lse-scribble svg { position: absolute; left: -2%; bottom: -.1em; width: 104%; height: .26em; overflow: visible; fill: none; stroke: var(--orange); stroke-width: 5; stroke-linecap: round; }
.lse-scribble path { vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; animation: lse-draw 1.4s var(--ease) 1s forwards; }
.lse-hero-copy { margin-top: clamp(36px, 4vw, 56px); animation: lse-rise 1.3s var(--ease) .3s both; }
.lse-hero-claim { font-family: var(--serif); font-size: clamp(25px, 2.4vw, 34px); line-height: 1.3; letter-spacing: -.01em; max-width: 24ch; }
.lse-hero-sub { margin-top: 18px !important; font-size: 18px; line-height: 1.7; color: var(--ink-2); max-width: 46ch; }
.lse-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 28px; margin-top: 34px; }

.lse-portrait { position: relative; width: clamp(260px, 24vw, 340px); margin-right: 24px; animation: lse-rise 1.4s var(--ease) .45s both; }
.lse-portrait-frame { aspect-ratio: 4 / 5; border-radius: 999px 999px 26px 26px; overflow: hidden; background: var(--paper-2); box-shadow: var(--shadow); }
.lse-portrait-frame img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; transform: scale(1.04); transition: transform 1.6s var(--ease); }
.lse-portrait:hover .lse-portrait-frame img { transform: scale(1.09); }
.lse-seal { position: absolute; top: -26px; left: -54px; z-index: 2; width: 116px; height: 116px; display: grid; place-items: center; align-content: center; gap: 2px; border-radius: 50%; background: var(--card); box-shadow: var(--shadow-sm), 0 0 0 1px var(--line); text-align: center; }
.lse-seal b { font-family: var(--serif); font-weight: 400; font-style: italic; font-size: 34px; line-height: 1; color: var(--orange-display); }
.lse-seal span { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); line-height: 1.3; }
.lse-portrait figcaption { position: absolute; right: -24px; bottom: 26px; padding: 12px 20px 12px 18px; border-radius: 14px; background: var(--card); box-shadow: var(--shadow-sm); border: 1px solid var(--line); display: grid; gap: 2px; }
.lse-portrait figcaption strong { font-family: var(--script); font-weight: 400; font-size: 34px; line-height: 1.05; color: var(--ink); }
.lse-portrait figcaption span { font-size: 13px; color: var(--ink-2); }
.lse-hero-foot { display: flex; justify-content: space-between; gap: 20px; padding: 18px 0 22px; border-top: 1px solid var(--line); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.lse-hero-foot a { display: inline-flex; gap: 10px; align-items: center; }
.lse-hero-foot a .icon { animation: lse-bob 2.4s ease-in-out infinite; }

/* ---------- Promise row ---------- */
.lse-promise { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgb(255 255 255 / .4); }
.lse-promise ul { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px 28px; padding-top: 24px; padding-bottom: 24px; }
.lse-promise li { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 600; }
.lse-promise .icon { color: var(--orange-display); }

/* ---------- Section heading ---------- */
.lse-heading { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 64px; align-items: end; margin-bottom: clamp(40px, 5vw, 64px); }
.lse-heading p { font-size: 18px; line-height: 1.75; color: var(--ink-2); max-width: 42ch; }
.lse-heading .lse-note { margin-top: 18px; font-family: var(--serif); font-size: 22px; line-height: 1.45; color: var(--ink); }

/* ---------- About (icon rows) ---------- */
.lse-about { position: relative; padding: var(--section) 0; overflow: hidden; }
.lse-about-sun { position: absolute; left: -140px; bottom: -180px; width: 540px; color: var(--orange); opacity: .1; pointer-events: none; animation: lse-spin 80s linear infinite; }
.lse-about-layout { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(48px, 7vw, 110px); }
.lse-about-intro { position: sticky; top: 130px; align-self: start; }
.lse-about-intro h2 { margin-bottom: 28px; }
.lse-about-quote { font-family: var(--serif); font-size: clamp(22px, 2.1vw, 28px); line-height: 1.4; letter-spacing: -.01em; padding-left: 22px; border-left: 3px solid var(--orange); max-width: 30ch; }
.lse-about-quote b { font-weight: 400; font-style: italic; color: var(--orange-display); }
.lse-signature { display: block; margin: 18px 0 30px 22px; font-family: var(--script); font-size: 46px; line-height: 1.1; color: var(--orange-display); }
.lse-story-item { position: relative; display: grid; grid-template-columns: 72px 1fr; gap: 24px; padding: 34px 0; border-bottom: 1px solid var(--line-strong); }
.lse-story-item:first-child { border-top: 1px solid var(--line-strong); }
.lse-story-item::before { content: ''; position: absolute; left: 0; top: -1px; height: 2px; width: 0; background: var(--orange); transition: width .7s var(--ease); }
.lse-story-item:hover::before { width: 100%; }
.lse-story-icon { position: relative; width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: var(--peach); color: var(--orange-text); transition: background .4s, color .4s, transform .5s var(--ease); }
.lse-story-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.lse-story-icon i { position: absolute; right: -4px; top: -4px; min-width: 28px; height: 28px; padding: 0 6px; border-radius: 999px; display: grid; place-items: center; background: var(--ink); color: var(--paper); font-family: var(--serif); font-style: italic; font-size: 14px; }
.lse-story-item:hover .lse-story-icon { background: var(--orange); color: var(--ink); transform: rotate(-6deg); }
.lse-story-tag { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--orange-text); }
.lse-story-item h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(28px, 2.6vw, 36px); line-height: 1.1; letter-spacing: -.02em; margin-bottom: 12px; }
.lse-story-item p { font-size: 17px; line-height: 1.75; color: var(--ink-2); }

/* ---------- Sessions ---------- */
.lse-sessions { padding: var(--section) 0 0; border-top: 1px solid var(--line); }
.lse-package-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; max-width: 1040px; }
.lse-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 38px 34px 32px; border-radius: 22px; background: var(--card); border: 1px solid var(--line); transition: transform .6s var(--ease), box-shadow .6s, border-color .3s; }
.lse-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); border-color: var(--line-strong); }
.lse-card.is-featured { border: 1.5px solid var(--ink); box-shadow: var(--shadow); }
.lse-card.is-featured::before { content: ''; position: absolute; top: -1px; left: 34px; right: 34px; height: 4px; border-radius: 0 0 4px 4px; background: var(--orange); }
.lse-card-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.lse-card-kind { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--orange-text); }
.lse-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--peach); color: var(--orange-text); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.lse-badge .lse-rings { animation: lse-spin 10s linear infinite; }
.lse-card h3 { margin-top: 14px; font-family: var(--serif); font-weight: 400; font-size: clamp(30px, 2.8vw, 40px); line-height: 1.08; letter-spacing: -.02em; }
.lse-price { display: flex; align-items: baseline; gap: 12px; margin-top: 18px; }
.lse-price b { font-family: var(--serif); font-weight: 300; font-size: clamp(52px, 5vw, 68px); line-height: 1; letter-spacing: -.03em; }
.lse-price span { font-size: 15px; color: var(--ink-2); }
.lse-card > p { margin-top: 18px; font-size: 16px; line-height: 1.7; color: var(--ink-2); }
.lse-features { flex: 1; margin-top: 22px !important; padding-top: 22px !important; border-top: 1px solid var(--line); }
.lse-features li { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; font-size: 16px; line-height: 1.5; }
.lse-features .icon { margin-top: 3px; color: var(--orange-display); }
.lse-features li.is-price { align-items: baseline; }
.lse-features li.is-price i { flex: 1; border-bottom: 1.5px dotted var(--line-strong); transform: translateY(-5px); min-width: 20px; }
.lse-features li.is-price b { font-family: var(--serif); font-weight: 400; font-size: 24px; }
.lse-card-cta { display: flex; justify-content: space-between; align-items: center; height: 54px; padding: 0 22px; margin-top: 10px; border-radius: 999px; border: 1px solid var(--line-strong); font-size: 16px; font-weight: 600; transition: background .3s, color .3s, border-color .3s; }
.lse-card-cta:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.lse-card-cta:hover .icon { transform: rotate(45deg); color: var(--orange); }
.is-featured .lse-card-cta { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.is-featured .lse-card-cta .icon { color: var(--orange); }
.is-featured .lse-card-cta:hover { background: var(--ink-deep); }
.lse-smallprint { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 28px; font-size: 15px; color: var(--ink-2); }
.lse-smallprint span { display: inline-flex; gap: 10px; align-items: baseline; }
.lse-book-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 16px 40px; margin-top: clamp(64px, 8vw, 104px); padding-bottom: 26px; }
.lse-book-head h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(34px, 3.6vw, 52px); line-height: 1.05; letter-spacing: -.02em; }
.lse-book-head p { font-size: 17px; color: var(--ink-2); max-width: 40ch; }

/* ---------- Guides ---------- */
.lse-guides { padding: var(--section) 0 clamp(40px, 5vw, 64px); border-top: 1px solid var(--line); }

/* ---------- Quote spotlight ---------- */
.lse-quotes { position: relative; padding: var(--section) 0; border-top: 1px solid var(--line); text-align: center; overflow: hidden; }
.lse-quotes-mark { display: block; font-family: var(--serif); font-size: 170px; line-height: .7; height: 76px; color: var(--orange); opacity: .55; }
.lse-quote-slides { display: grid; max-width: 980px; margin: 0 auto; }
.lse-quote-slide { grid-area: 1 / 1; transition: opacity .8s var(--ease), transform .8s var(--ease); }
.lse-quote-slide:not(.is-active) { opacity: 0; visibility: hidden; transform: translateY(14px); pointer-events: none; transition: opacity .5s var(--ease), transform .5s var(--ease), visibility 0s .5s; }
.lse-quote-slide blockquote { font-family: var(--serif); font-weight: 300; font-size: clamp(30px, 3.6vw, 52px); line-height: 1.22; letter-spacing: -.02em; }
.lse-quote-slide figcaption { margin-top: 30px; display: grid; gap: 4px; }
.lse-quote-slide figcaption strong { font-family: var(--serif); font-weight: 400; font-size: 22px; }
.lse-quote-slide figcaption span { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--orange-text); }
.lse-quote-dots { display: flex; justify-content: center; gap: 10px; margin-top: 36px; }
.lse-quote-dots button { width: 12px; height: 12px; padding: 0; border-radius: 999px; border: 0; background: var(--line-strong); cursor: pointer; transition: width .4s var(--ease), background .3s; }
.lse-quote-dots button[aria-selected="true"] { width: 36px; background: var(--orange); }

/* ---------- Contact band ---------- */
.lse-contact { padding: 0 0 var(--section); }
.lse-contact-card { position: relative; overflow: hidden; isolation: isolate; padding: clamp(40px, 6vw, 84px); border-radius: 34px; background: var(--card); border: 1px solid var(--line); transition: transform .6s var(--ease), box-shadow .6s; }
.lse-contact-card::before { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 80% at 100% 0%, rgb(253 222 190 / .7), transparent 60%), radial-gradient(40% 60% at 0% 100%, rgb(254 243 232 / .9), transparent 70%); }
.lse-contact-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }
.lse-contact-sun { position: absolute; right: clamp(24px, 4vw, 56px); top: clamp(24px, 4vw, 52px); font-size: clamp(52px, 6vw, 88px); }
.lse-contact-sun .lse-rings { animation: lse-spin 18s linear infinite; }
.lse-contact-row { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 56px; align-items: end; margin-top: 10px; }
.lse-contact h2 { font-size: clamp(46px, 6.2vw, 92px); line-height: 1; }
.lse-contact-side p { font-size: 18px; line-height: 1.75; color: var(--ink-2); margin-bottom: 28px; max-width: 38ch; }
.lse-contact-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px 28px; }
.lse-contact-actions .lse-plain { overflow-wrap: anywhere; }

/* ---------- Footer ---------- */
.lse-footer { background: var(--ink); color: #f3e3cf; padding: clamp(56px, 7vw, 88px) 0 32px; }
.lse-footer-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 32px; padding-bottom: 36px; border-bottom: 1px solid rgb(243 227 207 / .16); }
.lse-footer .lse-wordmark { font-size: clamp(36px, 4vw, 52px); color: #fbf5ec; }
.lse-footer .lse-wordmark em { color: var(--gold); }
.lse-footer-tag { margin-top: 10px !important; font-size: 16px; color: #d9c2a8; }
.lse-footer-links { display: flex; flex-wrap: wrap; gap: 10px; }
.lse-footer-links a { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 18px; border-radius: 999px; border: 1px solid rgb(243 227 207 / .25); font-size: 15px; font-weight: 600; transition: background .3s, border-color .3s, color .3s; }
.lse-footer-links a:hover { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.lse-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding-top: 26px; font-size: 14px; color: #c9b39a; }
.lse-footer-bottom nav { display: flex; flex-wrap: wrap; gap: 22px; }
.lse-footer-bottom a:hover { color: #fbf5ec; }

/* ---------- Lenny branding: dark sections ---------- */
.lse-dark { --ink: #f5efe6; --ink-2: #cbb8a2; --line: rgb(245 239 230 / .14); --line-strong: rgb(245 239 230 / .3); --card: #1f1610; --paper: #120c08; --peach: rgb(242 135 31 / .16); --orange-text: #f0a35a; --pill-bg: var(--orange); --pill-fg: #120c08; --pill-icon-bg: #120c08; --pill-icon-fg: var(--orange); --shadow: 0 34px 70px -36px rgb(0 0 0 / .8); --shadow-sm: 0 14px 30px -18px rgb(0 0 0 / .7); background: radial-gradient(70% 80% at 85% 10%, rgb(242 135 31 / .2), transparent 60%), radial-gradient(50% 60% at 0% 100%, rgb(176 82 22 / .18), transparent 70%), var(--night); color: var(--ink); }
.lse-dark h1, .lse-dark h2, .lse-dark h3 { color: var(--ink); }
.lse-dark .lse-pill::before { background: #f8a54d; }
.lse-dark .lse-plain, .lse-dark .lse-arrow { color: var(--ink); }
.lse-wordmark em { color: var(--gold) !important; font-weight: 400; }

/* Header: fixed so it stays visible across every Elementor widget */
.lse-header { position: fixed; left: 0; right: 0; top: 0; color: #f5efe6; --ink: #f5efe6; --line: rgb(245 239 230 / .14); --line-strong: rgb(245 239 230 / .3); }
.lse-header.is-scrolled, .lse-header.is-open { background: rgb(15 10 6 / .9); border-bottom-color: rgb(232 163 61 / .22); }
.lse-header-cta { border-color: rgb(232 163 61 / .6); color: #f3d9a8; letter-spacing: .02em; }
.lse-header-cta:hover { background: var(--orange); border-color: var(--orange); color: #120c08; }
.lse-header-cta:hover .icon { color: #120c08; }
.lse-menu-toggle span { background: #f5efe6; }
.lse-hero { padding-top: calc(92px + clamp(40px, 6vw, 80px)); }
.lse-halo { background: radial-gradient(closest-side, rgb(242 135 31 / .34), rgb(232 163 61 / .12) 55%, transparent 75%); }
.lse-hero-sunmark { opacity: .12; }
.lse-dark .lse-kicker { background: rgb(255 255 255 / .06); border-color: rgb(245 239 230 / .16); box-shadow: 0 14px 34px -18px rgb(0 0 0 / .6); }
.lse-dark .lse-kicker-face { box-shadow: 0 0 0 2.5px var(--orange); }
.lse-dark .lse-seal { background: #f5efe6; box-shadow: var(--shadow-sm); }
.lse-dark .lse-seal span { color: #5f4a3a; }
.lse-dark .lse-portrait figcaption { background: #f5efe6; border-color: transparent; }
.lse-dark .lse-portrait figcaption strong { color: #1a120b; }
.lse-dark .lse-portrait figcaption span { color: #5f4a3a; }
.lse-dark .lse-portrait-frame { box-shadow: 0 0 0 1px rgb(242 135 31 / .35), 0 40px 80px -30px rgb(0 0 0 / .8), 0 0 90px -20px rgb(242 135 31 / .45); }
.lse-promise { background: #1a120b; border-color: rgb(245 239 230 / .1); color: #f5efe6; }
.lse-promise .icon { color: var(--orange); }
.lse-quotes.lse-dark { border-top: 0; }
.lse-quotes-mark { opacity: .8; }
.lse-footer { background: var(--night); }

/* ---------- Motion ---------- */
@keyframes lse-rise { from { opacity: 0; transform: translateY(36px); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes lse-draw { to { stroke-dashoffset: 0; } }
@keyframes lse-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes lse-spin { to { transform: rotate(360deg); } }
@keyframes lse-bob { 50% { transform: translateY(4px); } }
@keyframes lse-breathe { 50% { transform: scale(1.06); opacity: .85; } }
.lse-js .lse-reveal { opacity: 0; transform: translateY(32px); transition: opacity 1s var(--ease), transform 1.1s var(--ease); transition-delay: calc(var(--i, 0) * 90ms); }
.lse-js .lse-reveal.is-visible { opacity: 1; transform: none; }

/* ==========================================================================
   Amelia booking — Shortcode widget with CSS class "lse-booking"
   ========================================================================== */
.lse-booking { background: #f5efe6; padding: 0 0 var(--section); }
.lse-booking > .elementor-widget-container, .lse-booking .lse-booking-inner { max-width: 1320px; margin: 0 auto; padding: 0 var(--gutter); }
.lse-booking #amelia-container {
  --am-c-primary: #e0761a !important;
  --am-c-sb-bgr: #2b1a10 !important;
  --am-c-sb-text: #fbf5ec !important;
  --am-c-main-bgr: #ffffff !important;
  --am-c-main-heading-text: #2b1a10 !important;
  --am-c-main-text: #4a3326 !important;
  --am-font-family: 'DM Sans', sans-serif !important;
  border-radius: 22px !important;
  overflow: hidden;
  border: 1px solid rgb(43 26 16 / .13);
  box-shadow: 0 34px 70px -40px rgb(43 26 16 / .45) !important;
}

/* ==========================================================================
   WooCommerce guides — Shortcode widget with CSS class "lse-shop"
   ========================================================================== */
.lse-shop { background: #f5efe6; padding: 0 0 var(--section); }
.lse-shop > .elementor-widget-container, .lse-shop .lse-shop-inner { max-width: 1320px; margin: 0 auto; padding: 0 var(--gutter); }
.lse-shop .woocommerce ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; max-width: 1180px; margin: 0 !important; padding: 0; list-style: none; }
.lse-shop .woocommerce ul.products::before, .lse-shop .woocommerce ul.products::after { display: none !important; }
.lse-shop .woocommerce ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; padding: 16px 16px 30px !important; border-radius: 22px; background: #fff; border: 1px solid rgb(43 26 16 / .13); display: flex; flex-direction: column; text-align: left; font-family: 'DM Sans', sans-serif; transition: transform .6s cubic-bezier(.2,.7,.1,1), box-shadow .6s, border-color .3s; }
.lse-shop .woocommerce ul.products li.product:hover { transform: translateY(-6px); box-shadow: 0 34px 70px -40px rgb(43 26 16 / .45); border-color: rgb(43 26 16 / .28); }
.lse-shop .woocommerce ul.products li.product a.woocommerce-LoopProduct-link { color: #2b1a10; text-decoration: none; display: block; }
.lse-shop .woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 14px; margin: 0 0 24px !important; background: #f3e8d8; }
.lse-shop .woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: 'Playfair Display', Georgia, serif !important; font-weight: 400; font-size: clamp(24px, 2vw, 30px) !important; line-height: 1.1; letter-spacing: -.02em; color: #2b1a10; padding: 0 14px !important; margin: 0 0 8px !important; }
.lse-shop .woocommerce ul.products li.product .price { display: block; padding: 0 14px; margin: 0 0 24px !important; font-family: 'Playfair Display', Georgia, serif; font-weight: 300; font-size: 30px !important; color: #e0761a !important; }
.lse-shop .woocommerce ul.products li.product .button { margin: auto 14px 0 !important; align-self: flex-start; height: 52px; display: inline-flex !important; align-items: center; border-radius: 999px !important; padding: 0 26px !important; font-family: 'DM Sans', sans-serif !important; font-size: 16px !important; font-weight: 600 !important; background: #2b1a10 !important; color: #fbf5ec !important; border: 0 !important; transition: background .3s; }
.lse-shop .woocommerce ul.products li.product .button:hover { background: #1e120a !important; }
.lse-shop .woocommerce ul.products li.product .added_to_cart { margin: 12px 14px 0; font-size: 15px; font-weight: 600; color: #a84f0b; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1180px) {
  .lse, .lse-booking, .lse-shop { --gutter: 40px; }
  .lse-nav { gap: 22px; }
}
@media (max-width: 960px) {
  .lse-menu-toggle { display: grid; margin-left: auto; }
  .lse-header-cta { display: none; }
  .lse-nav { position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; align-items: flex-start; gap: 0; margin: 0; padding: 8px var(--gutter) 28px; background: rgb(18 12 8 / .98); border-bottom: 1px solid var(--line); box-shadow: var(--shadow-sm); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .25s, transform .35s var(--ease), visibility 0s .35s; }
  .lse-header.is-open .lse-nav { opacity: 1; visibility: visible; transform: none; transition: opacity .25s, transform .35s var(--ease); }
  .lse-nav a { width: 100%; padding: 16px 0; font-size: 28px; border-bottom: 1px solid var(--line); }
  .lse-nav a::after { display: none; }
  .lse-nav .lse-nav-mobile-cta { display: inline-flex; width: auto; margin-top: 22px; padding: 0 8px 0 26px; border: 0; font-family: var(--sans); font-size: 16px; }
  .lse-hero-grid { grid-template-columns: 1fr; gap: 64px; }
  .lse-portrait { justify-self: center; margin: 0 auto; width: min(340px, 78vw); }
  .lse-heading, .lse-about-layout, .lse-contact-row { grid-template-columns: 1fr; gap: 28px; }
  .lse-about-intro { position: static; }
  .lse-package-grid { grid-template-columns: 1fr; max-width: 620px; }
  .lse-shop .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 782px) {
  .admin-bar .lse-header { top: 46px; }
}
@media (max-width: 640px) {
  .lse, .lse-booking, .lse-shop { --gutter: 20px; --section: 76px; }
  .lse { font-size: 17px; }
  .lse-header-inner, .lse-header.is-scrolled .lse-header-inner { height: 70px; }
  .lse-hero { padding-top: 110px; }
  .lse-wordmark { font-size: 24px; }
  .lse-kicker { gap: 12px; padding: 6px 20px 6px 6px; border-radius: 26px; max-width: 100%; }
  .lse-kicker-face { width: 40px; height: 40px; }
  .lse-kicker-text { font-size: 18px; line-height: 1.3; }
  .lse-kicker-text em { display: table; }
  .lse-hero-title { font-size: clamp(46px, 13.4vw, 64px); }
  .lse-hero-line-2 { padding-left: 28px; }
  .lse-hero-line-3 { padding-left: 0; }
  .lse-hero-claim { font-size: 25px; }
  .lse-hero-actions { gap: 22px; }
  .lse-seal { width: 96px; height: 96px; top: -20px; left: -18px; }
  .lse-seal b { font-size: 28px; }
  .lse-seal span { font-size: 10px; }
  .lse-portrait figcaption { right: -8px; bottom: 18px; }
  .lse-hero-foot { flex-direction: column; gap: 10px; font-size: 12px; }
  .lse-promise ul { flex-direction: column; gap: 14px; }
  .lse h2 { font-size: clamp(36px, 10vw, 46px); }
  .lse-label { font-size: 13px; letter-spacing: .12em; }
  .lse-label b { font-size: 26px; }
  .lse-story-item { grid-template-columns: 1fr; gap: 18px; padding: 28px 0; }
  .lse-story-icon { width: 64px; height: 64px; }
  .lse-card { padding: 32px 22px 24px; }
  .lse-card.is-featured::before { left: 22px; right: 22px; }
  .lse-quotes-mark { font-size: 130px; height: 58px; }
  .lse-quote-slide blockquote { font-size: 27px; line-height: 1.3; }
  .lse-contact-card { border-radius: 26px; }
  .lse-contact h2 { font-size: clamp(42px, 12vw, 58px); }
  .lse-contact-sun { top: 20px; right: 20px; font-size: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .lse *, .lse *::before, .lse *::after { animation: none !important; transition: none !important; }
  .lse-scribble path { stroke-dashoffset: 0; }
  .lse-js .lse-reveal { opacity: 1; transform: none; }
}

/* ==========================================================================
   Lighter, more engaging layer: people imagery, light, motion, mobile
   ========================================================================== */
.lse section > .lse-inner { position: relative; z-index: 1; }

/* Low-opacity photos of people. Swap the image with style="--photo:url(...)" in the HTML. */
.lse-photo-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.lse-photo-bg::before { content: ''; position: absolute; inset: -6%; background: var(--photo) center / cover no-repeat; opacity: var(--photo-opacity, .16); filter: grayscale(.25) sepia(.25) saturate(1.1); animation: lse-kenburns 28s ease-in-out infinite alternate; }
.lse-photo-hero::before { left: 30%; bottom: 42%; background-position: 50% 8%; -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 45%, transparent 100%), linear-gradient(90deg, transparent 0%, #000 35%); -webkit-mask-composite: source-in; mask-image: linear-gradient(180deg, #000 0%, #000 45%, transparent 100%), linear-gradient(90deg, transparent 0%, #000 35%); mask-composite: intersect; }
.lse-photo-quotes::before { right: 45%; background-position: 50% 15%; -webkit-mask-image: linear-gradient(90deg, #000 20%, transparent 85%); mask-image: linear-gradient(90deg, #000 20%, transparent 85%); }
.lse-photo-soft::before { filter: grayscale(1) sepia(.4); mix-blend-mode: multiply; -webkit-mask-image: radial-gradient(60% 70% at 85% 30%, #000 20%, transparent 70%); mask-image: radial-gradient(60% 70% at 85% 30%, #000 20%, transparent 70%); }
@keyframes lse-kenburns { from { transform: scale(1) translate3d(0, 0, 0); } to { transform: scale(1.1) translate3d(-2%, -2%, 0); } }

/* Floating light */
.lse-blob { position: absolute; z-index: 0; width: 460px; height: 460px; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, rgb(251 196 140 / .75), rgb(253 231 210 / .35) 45%, transparent 68%); filter: blur(20px); animation: lse-float 16s ease-in-out infinite alternate; }
.lse-blob.is-b { width: 340px; height: 340px; background: radial-gradient(circle, rgb(242 135 31 / .28), transparent 65%); animation-duration: 21s; animation-direction: alternate-reverse; }
@keyframes lse-float { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(40px, -50px, 0) scale(1.12); } }
.lse-about, .lse-sessions, .lse-guides { position: relative; overflow: hidden; }
.lse-about-layout > *, .lse-story-list-wrap, .lse-swipe-layout > *, .lse-heading > *, .lse-hero-grid > * { min-width: 0; }

/* Drawn people (line art) */
.lse-people { display: block; color: var(--orange-display); }
.lse-people path, .lse-people circle { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.lse-people .heart { fill: currentColor; fill-opacity: .18; }
.lse-js .lse-reveal .lse-people path, .lse-js .lse-reveal .lse-people circle { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.2s var(--ease) .3s; }
.lse-js .lse-reveal.is-visible .lse-people path, .lse-js .lse-reveal.is-visible .lse-people circle { stroke-dashoffset: 0; }

/* Hero: floating chips round the portrait */
.lse-chip { position: absolute; z-index: 3; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: rgb(255 255 255 / .1); border: 1px solid rgb(245 239 230 / .22); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #f5efe6; font-size: 14px; font-weight: 600; white-space: nowrap; box-shadow: 0 14px 30px -16px rgb(0 0 0 / .7); animation: lse-bobble 6s ease-in-out infinite; }
.lse-chip::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 4px rgb(242 135 31 / .25); }
.lse-chip-1 { top: 34%; right: -70px; }
.lse-chip-2 { top: 58%; left: -86px; animation-delay: -2s; }
.lse-chip-3 { top: -14px; right: 6%; animation-delay: -4s; }
@keyframes lse-bobble { 50% { transform: translateY(-10px); } }

/* Scroll progress */
.lse-progress { position: fixed; left: 0; top: 0; z-index: 80; width: 100%; height: 3px; background: linear-gradient(90deg, var(--gold), var(--orange)); transform: scaleX(var(--p, 0)); transform-origin: left; pointer-events: none; }
.admin-bar .lse-progress { top: 32px; }

/* Swipe your patterns */
.lse-swipe { position: relative; overflow: hidden; padding: var(--section) 0; background: radial-gradient(60% 70% at 85% 20%, rgb(251 196 140 / .55), transparent 70%), radial-gradient(50% 60% at 0% 100%, rgb(253 231 210 / .9), transparent 70%), #fbf1e4; border-top: 1px solid var(--line); }
.lse-swipe-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.lse-swipe-copy h2 { margin-bottom: 22px; }
.lse-swipe-copy > p { font-size: 18px; line-height: 1.75; color: var(--ink-2); max-width: 40ch; }
.lse-swipe-copy .lse-people { width: min(260px, 70%); margin-top: 34px; }
.lse-deck-wrap { display: grid; justify-items: center; gap: 22px; }
.lse-deck { position: relative; width: min(380px, 100%); aspect-ratio: 4 / 5; }
.lse-deck-card { --depth: 0; position: absolute; inset: 0; z-index: calc(10 - var(--depth)); display: flex; flex-direction: column; justify-content: space-between; padding: 30px 28px; border-radius: 28px; background: #fff; border: 1px solid var(--line); box-shadow: 0 30px 60px -34px rgb(43 26 16 / .5); touch-action: pan-y; user-select: none; -webkit-user-select: none; cursor: grab; transform: translateY(calc(var(--depth) * 14px)) scale(calc(1 - var(--depth) * .05)); transition: transform .5s var(--ease), opacity .5s var(--ease); }
.lse-deck-card:nth-child(2) { --depth: 1; } .lse-deck-card:nth-child(3) { --depth: 2; } .lse-deck-card:nth-child(n+4) { --depth: 3; } .lse:not(.lse-js) .lse-deck-card:nth-child(n+4) { opacity: 0; }
.lse-deck-card.is-dragging { transition: none; cursor: grabbing; }
.lse-deck-card.is-gone { opacity: 0; pointer-events: none; }
.lse-deck-card.is-hidden { opacity: 0; }
.lse-deck-card:nth-child(3n+2) { background: #fde7d2; }
.lse-deck-card:nth-child(3n) { background: #1a120b; color: #f5efe6; border-color: transparent; }
.lse-deck-card:nth-child(3n) .lse-deck-meta { color: #cbb8a2; }
.lse-deck-meta { display: flex; justify-content: space-between; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--orange-text); }
.lse-deck-card blockquote { font-family: var(--serif); font-size: clamp(28px, 3vw, 36px); line-height: 1.18; letter-spacing: -.015em; }
.lse-deck-card blockquote::before { content: '\201C'; display: block; font-size: 80px; line-height: .6; height: 36px; color: var(--orange); }
.lse-deck-hint { font-size: 14px; color: var(--ink-2); }
.lse-deck-card:nth-child(3n) .lse-deck-hint { color: #cbb8a2; }
.lse-stamp { position: absolute; top: 26px; padding: 6px 14px; border: 2.5px solid currentColor; border-radius: 10px; font-size: 15px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; opacity: 0; pointer-events: none; }
.lse-stamp-yes { right: 22px; color: var(--orange-display); transform: rotate(10deg); opacity: var(--yes, 0); }
.lse-stamp-no { left: 22px; color: #8a7462; transform: rotate(-10deg); opacity: var(--no, 0); }
.lse-deck-actions { display: flex; align-items: center; gap: 14px; }
.lse-deck-btn { display: inline-flex; align-items: center; gap: 10px; height: 56px; padding: 0 24px; border-radius: 999px; border: 1px solid var(--line-strong); background: #fff; color: var(--ink); font: 600 16px var(--sans); cursor: pointer; transition: transform .25s var(--ease), background .25s, border-color .25s; }
.lse-deck-btn:active { transform: scale(.96); }
.lse-deck-btn.is-yes { background: var(--ink); border-color: var(--ink); color: #f5efe6; }
.lse-deck-btn.is-yes:hover { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.lse-deck-btn:not(.is-yes):hover { border-color: var(--ink); }
.lse-deck-count { font-size: 14px; font-weight: 600; color: var(--ink-2); min-width: 44px; text-align: center; }
.lse-deck-result { position: absolute; inset: 0; z-index: 20; display: flex; flex-direction: column; justify-content: center; gap: 16px; padding: 32px 28px; border-radius: 28px; background: #1a120b; color: #f5efe6; box-shadow: 0 30px 60px -30px rgb(43 26 16 / .6); opacity: 0; visibility: hidden; transform: scale(.94); transition: opacity .5s var(--ease), transform .6s var(--ease), visibility 0s .5s; }
.lse-deck.is-done .lse-deck-result { opacity: 1; visibility: visible; transform: none; transition: opacity .5s var(--ease), transform .6s var(--ease); }
.lse-deck-result b { font-family: var(--serif); font-weight: 400; font-size: 64px; line-height: 1; color: var(--orange); }
.lse-deck-result h3 { font-family: var(--serif); font-weight: 400; font-size: 28px; line-height: 1.2; color: #f5efe6; }
.lse-deck-result p { font-size: 16px; line-height: 1.6; color: #cbb8a2; }
.lse-deck-result .lse-pill { --pill-bg: var(--orange); --pill-fg: #120c08; --pill-icon-bg: #120c08; --pill-icon-fg: var(--orange); align-self: flex-start; margin-top: 6px; }
.lse-deck-result button { align-self: flex-start; padding: 0; border: 0; background: none; color: #cbb8a2; font: 600 14px var(--sans); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.lse-deck.is-done .lse-deck-card { opacity: 0; }

/* Mobile sticky booking bar */
.lse-mbar { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: 70; display: none; align-items: center; gap: 10px; padding: 8px; border-radius: 999px; background: rgb(26 18 11 / .92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: 0 20px 40px -18px rgb(0 0 0 / .7); transform: translateY(140%); transition: transform .5s var(--ease); }
.lse-mbar.is-on { transform: none; }
.lse-mbar .lse-pill { flex: 1; justify-content: space-between; height: 50px; --pill-bg: var(--orange); --pill-fg: #120c08; --pill-icon-bg: #120c08; --pill-icon-fg: var(--orange); }
.lse-mbar-guide { display: grid; place-items: center; flex-shrink: 0; width: 50px; height: 50px; border-radius: 50%; border: 1px solid rgb(245 239 230 / .25); color: #f5efe6; font-size: 11px; font-weight: 700; line-height: 1.1; text-align: center; }

/* Mobile swipe hint */
.lse-swipe-hint { display: none; align-items: center; gap: 8px; margin: 6px 0 4px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--orange-text); }
.lse-swipe-hint svg { animation: lse-nudge 1.6s ease-in-out infinite; }
@keyframes lse-nudge { 50% { transform: translateX(6px); } }

/* Tap feedback */
.lse-pill:active, .lse-card-cta:active, .lse-arrow:active { transform: scale(.97); }

@media (max-width: 960px) {
  .lse-swipe-layout { grid-template-columns: 1fr; }
  .lse-swipe-copy .lse-people { display: none; }
  .lse-mbar { display: flex; }
  .lse-chip-1 { right: -14px; }
  .lse-chip-2 { left: -18px; }
  .lse-footer { padding-bottom: 110px; }
}
@media (max-width: 640px) {
  .lse-photo-hero::before { left: 0; bottom: 70%; background-size: 190% auto; background-position: 60% 0; }
  .lse-chip { padding: 8px 13px; font-size: 13px; }
  .lse-chip-3 { display: none; }
  .lse-blob { width: 300px; height: 300px; }
  /* Promises become a swipeable row of chips */
  .lse-promise ul { flex-direction: row; flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; padding-top: 16px; padding-bottom: 16px; scrollbar-width: none; }
  .lse-promise ul::-webkit-scrollbar { display: none; }
  .lse-promise li { flex: 0 0 auto; scroll-snap-align: start; padding: 10px 16px; border-radius: 999px; background: rgb(245 239 230 / .08); border: 1px solid rgb(245 239 230 / .14); font-size: 15px; white-space: nowrap; }
  /* Lenny's story becomes swipeable cards */
  .lse-swipe-hint { display: inline-flex; }
  .lse-story-list { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 18px calc(var(--gutter) * -1) 0; padding: 6px var(--gutter) 22px; scrollbar-width: none; }
  .lse-story-list::-webkit-scrollbar { display: none; }
  .lse-story-item, .lse-story-item:first-child { flex: 0 0 86%; scroll-snap-align: center; padding: 26px 22px; border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: 0 20px 40px -30px rgb(43 26 16 / .5); }
  .lse-story-item::before { display: none; }
  .lse-deck { width: 100%; max-width: 360px; }
  .lse-deck-card blockquote { font-size: 28px; }
  .lse-deck-btn { height: 52px; padding: 0 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .lse-photo-bg::before, .lse-blob, .lse-chip { animation: none !important; }
  .lse-people path, .lse-people circle { stroke-dashoffset: 0 !important; }
}

/* ==========================================================================
   Top bar + blog section
   ========================================================================== */
.lse-topbar { position: relative; height: 42px; overflow: hidden; background: linear-gradient(180deg, #0c0805, #150e09); color: #d9c3a5; border-bottom: 1px solid rgb(232 163 61 / .28); transition: height .45s var(--ease); }
.lse-topbar::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(100deg, transparent 30%, rgb(240 200 140 / .12) 50%, transparent 70%) -100% 0 / 60% 100% no-repeat; animation: lse-sheen 9s ease-in-out infinite; }
@keyframes lse-sheen { 0%, 55% { background-position: -100% 0; } 100% { background-position: 220% 0; } }
.lse-header.is-scrolled .lse-topbar { height: 0; border-bottom-color: transparent; }
.lse-topbar-inner { position: relative; z-index: 1; max-width: 1440px; height: 100%; margin: 0 auto; padding: 0 var(--gutter); display: flex; align-items: center; justify-content: space-between; gap: 24px; font-size: 11.5px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; }
.lse-topbar a { color: #d9c3a5; transition: color .3s; }
.lse-topbar a:hover { color: #f3d9a8; }
.lse-topbar-note { display: inline-flex; align-items: center; gap: 12px; }
.lse-topbar-note .lse-rings { color: #e8a33d; font-size: 17px; }
.lse-topbar-note em { font-family: var(--serif); font-style: italic; font-size: 14px; letter-spacing: .02em; text-transform: none; color: #f3d9a8; }
.lse-topbar-links { display: flex; align-items: center; gap: 0; }
.lse-topbar-links a { position: relative; padding: 0 16px; }
.lse-topbar-links a + a::before { content: ''; position: absolute; left: 0; top: 50%; width: 1px; height: 12px; margin-top: -6px; background: rgb(232 163 61 / .35); }
.lse-topbar-links a:last-child { padding-right: 0; }.lse-hero { padding-top: calc(92px + clamp(40px, 6vw, 80px)); }

.lse-blog-head { position: relative; overflow: hidden; padding: var(--section) 0 clamp(36px, 4vw, 52px); border-top: 1px solid var(--line); }

/* Elementor Pro "Posts" widget with CSS class "lse-blog" (Classic skin) */
.lse-blog { --gutter: 64px; --section: clamp(84px, 10vw, 148px); background: #f5efe6; padding: 0 0 var(--section); }
.lse-blog > .elementor-widget-container, .lse-blog .lse-blog-inner { max-width: 1320px; margin: 0 auto; padding: 0 var(--gutter); }
.lse-blog .elementor-posts-container { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px !important; }
.lse-blog .elementor-post { position: relative; overflow: hidden; display: flex !important; flex-direction: column; margin: 0 !important; background: #fff; border: 1px solid rgb(43 26 16 / .13); border-radius: 22px; font-family: 'DM Sans', sans-serif; transition: transform .6s cubic-bezier(.2,.7,.1,1), box-shadow .6s, border-color .3s; }
.lse-blog .elementor-post::before { content: ''; height: 4px; flex-shrink: 0; background: linear-gradient(90deg, #e8a33d, #f2871f); }
.lse-blog .elementor-post::after { content: ''; position: absolute; right: -26px; top: 18px; width: 150px; height: 100px; pointer-events: none; opacity: .1; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16' fill='none' stroke='%23e0761a' stroke-width='.8'%3E%3Ccircle cx='8.6' cy='8' r='6.4'/%3E%3Ccircle cx='15.4' cy='8' r='6.4'/%3E%3C/svg%3E"); }
.lse-blog .elementor-post:hover { transform: translateY(-6px); box-shadow: 0 34px 70px -40px rgb(43 26 16 / .45); border-color: rgb(43 26 16 / .28); }
.lse-blog .elementor-post__thumbnail__link { display: block; margin: 0 !important; width: 100% !important; }
.lse-blog .elementor-post__thumbnail { position: relative; aspect-ratio: 16 / 10; overflow: hidden; padding-bottom: 0 !important; }
.lse-blog .elementor-post__thumbnail img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; transform: none !important; transition: transform 1.2s cubic-bezier(.2,.7,.1,1) !important; }
.lse-blog .elementor-post:hover .elementor-post__thumbnail img { transform: scale(1.05) !important; }
.lse-blog .elementor-post__text { position: relative; z-index: 1; display: flex; flex-direction: column; flex: 1; padding: 26px 26px 28px; }
.lse-blog .elementor-post__meta-data { order: -1; margin: 0 0 12px !important; padding: 0 !important; border: 0 !important; font-size: 12px !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #a84f0b !important; }
.lse-blog .elementor-post__title { margin: 0 0 12px !important; font-family: 'Playfair Display', Georgia, serif !important; font-weight: 400 !important; font-size: clamp(22px, 1.9vw, 26px) !important; line-height: 1.2 !important; letter-spacing: -.01em; }
.lse-blog a { text-decoration: none !important; }
.lse-blog .elementor-post__title a { color: #1a120b !important; transition: color .25s; }
.lse-blog .elementor-post__title a:hover { color: #a84f0b !important; }
.lse-blog .elementor-post__excerpt p { margin: 0 !important; font-size: 16px !important; line-height: 1.65 !important; color: #5f4a3a !important; }
.lse-blog .elementor-post__read-more { display: inline-flex; align-items: center; gap: 8px; margin-top: auto !important; padding-top: 20px; font-size: 15px !important; font-weight: 600 !important; color: #1a120b !important; background: linear-gradient(#f2871f, #f2871f) left 100% / 0 2px no-repeat; transition: background-size .45s; align-self: flex-start; }
.lse-blog .elementor-post__read-more:hover { background-size: 100% 2px; }

@media (max-width: 1180px) { .lse-blog { --gutter: 40px; } }
@media (max-width: 960px) {
  .lse-blog .elementor-posts-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .lse-topbar { height: 36px; }
  .lse-topbar-inner { letter-spacing: .16em; }
  .lse-topbar-links { display: none; }
  .lse-topbar-inner { justify-content: center; font-size: 13px; }
  .lse-hero { padding-top: 110px; }
  .lse-blog { --gutter: 20px; --section: 64px; }
  .lse-blog .elementor-posts-container { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px !important; margin: 0 -20px; padding: 6px 20px 22px; scrollbar-width: none; }
  .lse-blog .elementor-posts-container::-webkit-scrollbar { display: none; }
  .lse-blog .elementor-post { flex: 0 0 84%; scroll-snap-align: center; }
}

/* ==========================================================================
   Navigation: refined hover + current section
   ========================================================================== */
.lse-nav { gap: 6px; }
.lse-nav a { padding: 10px 14px; color: #e9dcc8; font-size: 17.5px; letter-spacing: .015em; transition: color .35s var(--ease); }
.lse-nav a::before { content: ''; position: absolute; left: 14px; right: 14px; bottom: 3px; height: 1.5px; background: linear-gradient(90deg, rgb(232 163 61 / 0), #f0b964 18%, #ffe2ae 50%, #f0b964 82%, rgb(232 163 61 / 0)); transform: scaleX(0); transform-origin: center; transition: transform .55s var(--ease); }
.lse-nav a::after { content: ''; position: absolute; left: 50%; top: -1px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: #e8a33d; box-shadow: 0 0 10px 2px rgb(232 163 61 / .55); opacity: 0; transform: translateY(4px); transition: opacity .35s, transform .45s var(--ease); }
.lse-nav a:hover, .lse-nav a:focus-visible, .lse-nav a.is-current { color: #f7c983; text-shadow: 0 0 18px rgb(232 163 61 / .35); }
.lse-nav a:hover::before, .lse-nav a:focus-visible::before, .lse-nav a.is-current::before { transform: scaleX(1); }
.lse-nav a.is-current::after { opacity: 1; transform: none; }
.lse-wordmark { transition: opacity .3s; }
.lse-wordmark em { background: linear-gradient(100deg, #e8a33d 0%, #e8a33d 40%, #fbe2b4 50%, #e8a33d 60%, #e8a33d 100%) 100% 0 / 250% 100%; -webkit-background-clip: text; background-clip: text; color: transparent !important; transition: background-position 1.1s var(--ease); }
.lse-wordmark:hover em { background-position: 0 0; }

/* Book a session: gold outline that fills on hover */
.lse-header-cta { position: relative; overflow: hidden; isolation: isolate; height: 46px; padding: 0 22px; border: 1px solid rgb(232 163 61 / .65); color: #f6d9a6; font-weight: 600; letter-spacing: .03em; background: rgb(232 163 61 / .06); transition: color .4s var(--ease), border-color .4s, box-shadow .4s; }
.lse-header-cta::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(120deg, #e8a33d, #f6c784 50%, #e0761a); transform: translateY(101%); transition: transform .5s var(--ease); }
.lse-header-cta:hover { color: #1a120b !important; border-color: #f0b964; background: rgb(232 163 61 / .06); box-shadow: 0 10px 30px -12px rgb(232 163 61 / .6); }
.lse-header-cta:hover::before { transform: none; }
.lse-header-cta:hover .icon { color: #1a120b !important; transform: rotate(45deg); }

/* Top bar links: champagne to gold with a hairline */
.lse-topbar-links a span, .lse-topbar-note em { background: linear-gradient(#e8b46a, #e8b46a) left 100% / 0 1px no-repeat; padding-bottom: 2px; transition: background-size .5s var(--ease), color .3s; }
.lse-topbar-links a:hover span, .lse-topbar-note:hover em { background-size: 100% 1px; }
.lse-topbar a:hover { color: #f6d9a6; }

/* Mobile menu */
@media (max-width: 960px) {
  .lse-nav { gap: 0; padding-top: 14px; background: linear-gradient(180deg, rgb(15 10 6 / .98), rgb(26 18 11 / .98)); border-bottom: 1px solid rgb(232 163 61 / .22); }
  .lse-nav a { padding: 16px 0; font-size: 28px; color: #efe3d1; border-bottom: 1px solid rgb(232 163 61 / .14); }
  .lse-nav a::before { left: 0; right: auto; width: 48px; bottom: -1px; transform-origin: left; }
  .lse-nav a::after { display: none; }
  .lse-nav .lse-nav-mobile-cta::before { display: none; }
}
/* Photo placement variants */
.lse-photo-left::before { -webkit-mask-image: radial-gradient(55% 75% at 20% 55%, #000 15%, transparent 70%); mask-image: radial-gradient(55% 75% at 20% 55%, #000 15%, transparent 70%); }
.lse-photo-card { z-index: -2; border-radius: inherit; }
.lse-photo-card::before { inset: 0; -webkit-mask-image: linear-gradient(90deg, #000 10%, transparent 60%); mask-image: linear-gradient(90deg, #000 10%, transparent 60%); }
.lse-quotes .lse-photo-quotes::before { right: 0; filter: grayscale(.2) sepia(.35) saturate(1.2); -webkit-mask-image: radial-gradient(80% 90% at 50% 50%, #000 25%, transparent 80%); mask-image: radial-gradient(80% 90% at 50% 50%, #000 25%, transparent 80%); }
.lse-quotes .lse-inner { position: relative; z-index: 1; }
/* About: portrait of Lenny */
.lse .lse-about-photo { position: relative; width: min(340px, 100%); margin: 0 0 48px; }
.lse-about-photo-frame { aspect-ratio: 4 / 4.6; border-radius: 999px 999px 24px 24px; overflow: hidden; background: #1a120b; box-shadow: 0 0 0 1px rgb(232 163 61 / .45), 0 0 0 10px #f5efe6, 0 0 0 11px rgb(232 163 61 / .3), 0 40px 70px -40px rgb(43 26 16 / .7); }
.lse-about-photo-frame img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; transition: transform 1.6s var(--ease); }
.lse-about-photo:hover .lse-about-photo-frame img { transform: scale(1.05); }
.lse-about-photo figcaption { position: absolute; right: -22px; bottom: 28px; display: grid; gap: 2px; padding: 12px 20px; border-radius: 14px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.lse-about-photo figcaption strong { font-family: var(--script); font-weight: 400; font-size: 32px; line-height: 1; color: var(--ink); }
.lse-about-photo figcaption span { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--orange-text); }
@media (max-width: 960px) { .lse .lse-about-photo { width: min(320px, 82%); margin: 0 auto 44px; } }
@media (max-width: 640px) { .lse-about-photo figcaption { right: -8px; } }
/* Amelia booking: contain its margins, fit the frame to the form, calm the sidebar */
.lse-booking { display: flow-root; }
.lse-booking #amelia-container { margin: 0 auto !important; }
/* Amelia pins its form to 100% of its holder, so the holder is limited to the form's own 760px */
.lse-booking .lse-booking-inner > .amelia-v2-booking, .lse-booking > .elementor-widget-container > .amelia-v2-booking { max-width: 760px; margin: 0 auto; }
.lse-booking .am-fs-sb__step-heading { color: #f5efe6 !important; text-transform: none !important; letter-spacing: .01em !important; font-size: 15px !important; font-family: 'DM Sans', sans-serif !important; }
.lse-booking .am-fs-sb svg, .lse-booking .am-fs-sb [class*="icon"] { color: #e8a33d; }
.lse-book-head h3 { color: var(--ink) !important; }
.lse-book-head p { text-transform: none !important; letter-spacing: 0 !important; }
/* ==========================================================================
   Blog posts and the journal (plugin templates)
   ========================================================================== */
.lse-article-hero { position: relative; overflow: hidden; padding: calc(92px + clamp(48px, 7vw, 96px)) 0 clamp(120px, 14vw, 180px); }
.lse-article-hero .lse-inner { max-width: 960px; position: relative; z-index: 1; }
.lse-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 26px; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #cbb8a2; }
.lse-crumbs a { color: #cbb8a2; transition: color .25s; }
.lse-crumbs a:hover { color: #f6d9a6; }
.lse-crumbs a:last-child { color: #e8a33d; }
.lse .lse-article-title { font-size: clamp(40px, 5.6vw, 76px); line-height: 1.04; color: #f5efe6; max-width: 18ch; }
.lse .lse-article-excerpt { margin-top: 24px; max-width: 54ch; font-family: var(--serif); font-style: italic; font-size: clamp(20px, 1.9vw, 25px); line-height: 1.45; color: #e9dcc8; }
.lse-article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; margin-top: 34px; font-size: 15px; color: #cbb8a2; }
.lse-article-meta img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; object-position: 50% 18%; box-shadow: 0 0 0 2px #e8a33d; }
.lse-article-meta strong { font-family: var(--script); font-weight: 400; font-size: 30px; line-height: 1; color: #f5efe6; }
.lse-article-meta span + span::before { content: ''; display: inline-block; width: 4px; height: 4px; margin-right: 22px; border-radius: 50%; background: #e8a33d; vertical-align: middle; }
.lse-article-meta span:first-of-type::before { display: none; }

.lse .lse-article-cover { position: relative; z-index: 2; max-width: calc(720px + 2 * var(--gutter)); margin: clamp(-150px, -11vw, -90px) auto 0; padding: 0 var(--gutter); }
.lse-article-cover img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 26px; box-shadow: 0 0 0 1px rgb(232 163 61 / .35), 0 40px 80px -40px rgb(43 26 16 / .7); }

.lse-article { padding: clamp(56px, 7vw, 88px) var(--gutter) clamp(72px, 9vw, 120px); background: #f5efe6; }
.lse-article-body { max-width: 720px; margin: 0 auto; font-size: 19px; line-height: 1.8; color: #3a2a1e; }
.lse .lse-article-body > * + * { margin-top: 1.25em; }
.lse-article-body > p:first-child { font-family: var(--serif); font-size: clamp(21px, 2vw, 25px); line-height: 1.6; color: var(--ink); }
.lse .lse-article-body h2 { margin-top: 2em; margin-bottom: 0; font-size: clamp(28px, 3vw, 38px); line-height: 1.15; color: var(--ink); }
.lse .lse-article-body h3 { margin-top: 1.7em; font-family: var(--serif); font-size: 26px; color: var(--ink); }
.lse .lse-article-body h2 + *, .lse .lse-article-body h3 + * { margin-top: .6em; }
.lse-article-body strong { font-weight: 700; color: var(--ink); }
.lse-article-body em { font-style: italic; }
.lse-article-body a { color: var(--orange-text); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; transition: color .25s; }
.lse-article-body a:hover { color: var(--orange-display); }
.lse .lse-article-body ul { list-style: disc; padding-left: 1.4em; }
.lse .lse-article-body ol { list-style: decimal; padding-left: 1.4em; }
.lse-article-body li { margin: .55em 0; padding-left: .3em; }
.lse-article-body ul li::marker { color: var(--orange); }
.lse-article-body ol li::marker { color: var(--orange-text); font-weight: 700; }
.lse-article-body blockquote { margin: 1.8em 0; padding-left: 24px; border-left: 3px solid var(--orange); font-family: var(--serif); font-size: 24px; line-height: 1.5; color: var(--ink); }
.lse-article-body img { border-radius: 18px; }

.lse-author { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 26px; align-items: start; max-width: 720px; margin: clamp(56px, 7vw, 80px) auto 0; padding: 34px; border-radius: 24px; background: #fff; border: 1px solid var(--line); box-shadow: 0 30px 60px -40px rgb(43 26 16 / .45); }
.lse-author img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; object-position: 50% 18%; box-shadow: 0 0 0 3px #fff, 0 0 0 4px rgb(232 163 61 / .6); }
.lse .lse-author-kicker { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--orange-text); }
.lse .lse-author-name { margin: 2px 0 10px; font-family: var(--serif); font-size: 32px; line-height: 1.1; color: var(--ink); }
.lse-author-name em { font-family: var(--script); font-style: normal; color: var(--orange-display); }
.lse .lse-author p:not([class]) { font-size: 16px; line-height: 1.7; color: var(--ink-2); }
.lse-author-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 22px; }

.lse-related { padding: clamp(72px, 9vw, 110px) 0 clamp(32px, 4vw, 48px); background: #f5efe6; border-top: 1px solid var(--line); }

.lse-journal-hero { padding-bottom: clamp(72px, 9vw, 110px); }
.lse-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 34px; }
.lse-chips a { display: inline-flex; align-items: center; height: 42px; padding: 0 18px; border-radius: 999px; border: 1px solid rgb(245 239 230 / .25); color: #e9dcc8; font-size: 14px; font-weight: 600; transition: background .3s, border-color .3s, color .3s; }
.lse-chips a:hover { border-color: #e8a33d; color: #f6d9a6; }
.lse-chips a.is-current { background: #e8a33d; border-color: #e8a33d; color: #1a120b; }
.lse-journal { padding-top: clamp(56px, 7vw, 88px); background: #f5efe6; }
.lse-journal .lse-blog { padding-bottom: clamp(40px, 5vw, 64px); }
.lse-journal-empty { padding-bottom: 96px; font-size: 18px; color: var(--ink-2); }
.lse-pagination { padding: 0 var(--gutter) clamp(72px, 9vw, 120px); background: #f5efe6; }
.lse-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.lse-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 46px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line-strong); font-size: 15px; font-weight: 600; color: var(--ink); background: #fff; transition: background .3s, color .3s, border-color .3s; }
.lse-pagination a.page-numbers:hover { border-color: var(--ink); }
.lse-pagination .page-numbers.current { background: var(--ink); border-color: var(--ink); color: #f5efe6; }

@media (max-width: 960px) {
  .lse-blog-all .elementor-posts-container { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 640px) {
  .lse-article-hero { padding-top: 120px; }
  .lse-article-cover img { border-radius: 18px; }
  .lse-article-body { font-size: 17.5px; }
  .lse-author { grid-template-columns: 1fr; padding: 26px 22px; }
  .lse-blog-all .elementor-posts-container { display: grid !important; grid-template-columns: 1fr !important; overflow: visible; margin: 0; padding: 0; }
  .lse-blog-all .elementor-post { flex: none; }
}
/* Testimonials: samples are hidden on the live site; the preview opts in with .lse-show-samples */
.lse-quote-slide.is-sample { display: none; }
.lse-show-samples .lse-quote-slide.is-sample { display: block; }
.lse-show-samples .lse-quote-slide.is-sample figcaption::after { content: 'Sample. Replace with a real client quote before going live'; display: block; margin-top: 10px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #f2871f; }
.lse .lse-quotes-note { margin-top: 18px; font-size: 13px; color: #a8957f; letter-spacing: .02em; }
/* "You're not the only one" statistics band */
.lse-stats { position: relative; overflow: hidden; padding: var(--section) 0; }
.lse-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgb(245 239 230 / .16); }
.lse-stat { display: flex; flex-direction: column; gap: 14px; padding: 34px 28px 30px; border-left: 1px solid rgb(245 239 230 / .12); }
.lse-stat:first-child { padding-left: 0; border-left: 0; }
.lse-stat b { font-family: var(--serif); font-weight: 400; font-size: clamp(48px, 5.4vw, 76px); line-height: 1; letter-spacing: -.02em; background: linear-gradient(180deg, #fbe2b4, #e8a33d 60%, #e0761a); -webkit-background-clip: text; background-clip: text; color: transparent; padding-bottom: .06em; }
.lse .lse-stat p { font-size: 16px; line-height: 1.6; color: #e9dcc8; max-width: 26ch; }
.lse-stat a { margin-top: auto; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #a8957f; text-decoration: underline; text-decoration-color: rgb(168 149 127 / .4); text-underline-offset: 4px; transition: color .25s; }
.lse-stat a:hover { color: #f6d9a6; }
.lse-stats-help { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 28px; margin-top: 40px; padding: 20px 26px; border-radius: 18px; background: rgb(245 239 230 / .06); border: 1px solid rgb(232 163 61 / .28); font-size: 15px; color: #e9dcc8; }
.lse-stats-help strong { color: #f5efe6; }
.lse-stats-help a { color: #f6c27f; font-weight: 700; white-space: nowrap; }
@media (max-width: 960px) {
  .lse-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lse-stat:nth-child(3) { padding-left: 0; border-left: 0; }
  .lse-stat:nth-child(n+3) { border-top: 1px solid rgb(245 239 230 / .12); }
}
@media (max-width: 640px) {
  .lse-stat-grid { grid-template-columns: 1fr; }
  .lse-stat, .lse-stat:nth-child(3) { padding: 26px 0; border-left: 0; }
  .lse-stat + .lse-stat { border-top: 1px solid rgb(245 239 230 / .12); }
  .lse-stats-help { flex-direction: column; align-items: flex-start; }
}
/* ==========================================================================
   Basket, checkout and account pages (plugin template + theme)
   ========================================================================== */
.lse .lse-page-hero { padding-bottom: clamp(56px, 7vw, 88px); }
.lse-trust { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 26px 0 0 !important; padding: 0; list-style: none; font-size: 15px; color: #e9dcc8; }
.lse-trust li { display: inline-flex; align-items: center; gap: 10px; }
.lse-trust svg { color: #e8a33d; flex-shrink: 0; }
.lse-trust a { color: #f6c27f; text-decoration: underline; text-underline-offset: 3px; }

.lse .lse-page-content { flex: 1; padding: clamp(48px, 6vw, 80px) var(--gutter) clamp(72px, 9vw, 120px); background: #f5efe6; color: #3a2a1e; }
.lse .lse-page-body { max-width: 760px; margin: 0 auto; font-size: 17px; line-height: 1.7; }
.lse .lse-page-content.is-wide .lse-page-body { max-width: 1120px; }
.lse .lse-page-body h2, .lse .lse-page-body h3 { font-family: var(--serif); font-weight: 400; color: var(--ink); line-height: 1.15; }
.lse .lse-page-body h2 { font-size: clamp(26px, 2.6vw, 34px); margin: 0 0 18px; }
.lse .lse-page-body h3 { font-size: 24px; margin: 0 0 14px; }
.lse .lse-page-body p { margin: 0 0 1em; }
.lse .lse-page-body a:not(.button):not(.remove):not(.wc-forward) { color: var(--orange-text); text-decoration: underline; text-underline-offset: 3px; }

/* Fields */
.lse .lse-page-body input.input-text, .lse .lse-page-body input[type="text"], .lse .lse-page-body input[type="email"], .lse .lse-page-body input[type="tel"],
.lse .lse-page-body input[type="password"], .lse .lse-page-body input[type="number"], .lse .lse-page-body select, .lse .lse-page-body textarea,
.lse .lse-page-body .select2-container .select2-selection--single {
  min-height: 50px; padding: 12px 16px; border: 1px solid rgb(43 26 16 / .2); border-radius: 12px; background: #fff;
  font: 400 16px var(--sans); color: var(--ink); box-sizing: border-box; transition: border-color .2s, box-shadow .2s;
}
.lse .lse-page-body .select2-container .select2-selection--single .select2-selection__rendered { line-height: 24px; padding: 0; }
.lse .lse-page-body .select2-container .select2-selection--single .select2-selection__arrow { top: 12px; right: 10px; }
.lse .lse-page-body input:focus, .lse .lse-page-body select:focus, .lse .lse-page-body textarea:focus { outline: none; border-color: #e0761a; box-shadow: 0 0 0 3px rgb(224 118 26 / .18); }
.lse .lse-page-body label { font-size: 14px; font-weight: 600; color: var(--ink); }
.lse .lse-page-body .form-row { margin: 0 0 16px; padding: 0; }
.lse .lse-page-body .form-row input.input-text, .lse .lse-page-body .form-row select, .lse .lse-page-body .form-row textarea { width: 100%; }
.lse .lse-page-body .required { color: #c0392b; text-decoration: none; }

/* Buttons */
.lse .lse-page-body .button, .lse .lse-page-body button.button, .lse .lse-page-body button[type="submit"], .lse .lse-page-body .wp-element-button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 24px; border: 0; border-radius: 999px;
  background: #1a120b; color: #f5efe6 !important; font: 600 15px var(--sans); line-height: 1; text-decoration: none; cursor: pointer; transition: background .3s, color .3s, transform .3s;
}
.lse .lse-page-body .button:hover, .lse .lse-page-body button[type="submit"]:hover { background: #e0761a; color: #1a120b !important; }
.lse .lse-page-body .button:disabled, .lse .lse-page-body .button.disabled { opacity: .45; cursor: not-allowed; }
.lse .lse-page-body .button.alt, .lse .lse-page-body .checkout-button, .lse .lse-page-body #place_order { background: linear-gradient(135deg, #e8a33d, #e0761a); color: #1a120b !important; }
.lse .lse-page-body .button.alt:hover, .lse .lse-page-body .checkout-button:hover, .lse .lse-page-body #place_order:hover { background: #1a120b; color: #f5efe6 !important; }

/* Notices */
.lse .lse-page-body .woocommerce-message, .lse .lse-page-body .woocommerce-info, .lse .lse-page-body .woocommerce-error, .lse .lse-page-body .woocommerce-notices-wrapper > * {
  margin: 0 0 24px; padding: 16px 20px 16px 52px; border: 1px solid rgb(232 163 61 / .4); border-top: 1px solid rgb(232 163 61 / .4); border-radius: 14px; background: #fff; color: var(--ink); list-style: none; font-size: 15px;
}
.lse .lse-page-body .woocommerce-error { border-color: rgb(192 57 43 / .35); }
.lse .lse-page-body .woocommerce-message::before, .lse .lse-page-body .woocommerce-info::before { color: #e0761a; top: 16px; left: 20px; }
.lse .lse-page-body .woocommerce-message .button, .lse .lse-page-body .woocommerce-info .button { float: right; min-height: 38px; padding: 0 16px; font-size: 14px; }

/* Basket table */
.lse .lse-page-body table.shop_table { width: 100%; border: 1px solid rgb(43 26 16 / .12); border-radius: 18px; border-collapse: separate; border-spacing: 0; background: #fff; overflow: hidden; margin: 0 0 28px; }
.lse .lse-page-body table.shop_table th { padding: 16px 18px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #8a7462; background: #fbf6ef; border: 0; text-align: left; }
.lse .lse-page-body table.shop_table td { padding: 18px; border-top: 1px solid rgb(43 26 16 / .08); vertical-align: middle; font-size: 16px; }
.lse .lse-page-body table.cart td.product-thumbnail img { width: 76px; height: 76px; object-fit: cover; border-radius: 12px; }
.lse .lse-page-body table.cart td.product-name a { font-family: var(--serif); font-size: 21px; color: var(--ink) !important; text-decoration: none !important; }
.lse .lse-page-body table.cart a.remove { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgb(43 26 16 / .2); color: #8a7462 !important; font-size: 20px; line-height: 1; text-decoration: none; transition: background .2s, color .2s, border-color .2s; }
.lse .lse-page-body table.cart a.remove:hover { background: #c0392b; border-color: #c0392b; color: #fff !important; }
.lse .lse-page-body .quantity input.qty { width: 80px; min-height: 44px; text-align: center; }
.lse .lse-page-body table.cart td.actions { background: #fbf6ef; }
.lse .lse-page-body table.cart td.actions .coupon { display: inline-flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.lse .lse-page-body table.cart td.actions .coupon input.input-text { width: 200px; min-height: 46px; }
.lse .lse-page-body .product-price, .lse .lse-page-body .product-subtotal, .lse .lse-page-body .order-total .amount { color: var(--ink); font-weight: 600; }

/* Basket totals + cross-sells */
.lse .lse-page-body .cart-collaterals { display: flex; flex-direction: row-reverse; flex-wrap: wrap; gap: 28px; }
.lse .lse-page-body .cart-collaterals .cart_totals { float: none; width: min(100%, 420px); margin-left: auto; padding: 28px; border-radius: 22px; background: #fff; border: 1px solid rgb(43 26 16 / .12); box-shadow: 0 30px 60px -44px rgb(43 26 16 / .5); }
.lse .lse-page-body .cart_totals table.shop_table { border: 0; border-radius: 0; margin: 0 0 18px; }
.lse .lse-page-body .cart_totals table.shop_table th { background: transparent; padding-left: 0; }
.lse .lse-page-body .cart_totals table.shop_table td { text-align: right; padding-right: 0; }
.lse .lse-page-body .cart_totals .order-total td { font-family: var(--serif); font-size: 26px; }
.lse .lse-page-body .wc-proceed-to-checkout { padding: 0; }
.lse .lse-page-body .wc-proceed-to-checkout .checkout-button { display: flex; width: 100%; min-height: 56px; font-size: 16px; margin: 0; }
.lse .lse-page-body .cross-sells { flex: 1 1 420px; float: none; width: auto; }
.lse .lse-page-body .cross-sells ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 18px; margin: 0; padding: 0; }
.lse .lse-page-body ul.products::before, .lse .lse-page-body ul.products::after { display: none !important; }
.lse .lse-page-body ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; padding: 14px 14px 22px !important; list-style: none; background: #fff; border-radius: 18px; border: 1px solid rgb(43 26 16 / .12); text-align: left; }
.lse .lse-page-body ul.products li.product img { border-radius: 12px; margin-bottom: 14px !important; }
.lse .lse-page-body ul.products li.product .woocommerce-loop-product__title { font-family: var(--serif) !important; font-size: 20px !important; color: var(--ink) !important; padding: 0 !important; }
.lse .lse-page-body ul.products li.product .price { color: #a84f0b !important; font-weight: 600; }
.lse .lse-page-body .cart-empty { font-size: 18px; }
.lse .lse-page-body .return-to-shop { margin-top: 18px; }

/* Checkout */
.lse .lse-page-body form.checkout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 36px; align-items: start; }
.lse .lse-page-body form.checkout > * { min-width: 0; }
.lse .lse-page-body form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
.lse .lse-page-body form.checkout #order_review_heading { grid-column: 2; margin: 0; }
.lse .lse-page-body form.checkout #order_review { grid-column: 2; padding: 26px; border-radius: 22px; background: #fff; border: 1px solid rgb(43 26 16 / .12); box-shadow: 0 30px 60px -44px rgb(43 26 16 / .5); }
.lse .lse-page-body #customer_details .col-1, .lse .lse-page-body #customer_details .col-2 { float: none; width: 100%; }
.lse .lse-page-body #order_review table.shop_table { border: 0; border-radius: 0; }
.lse .lse-page-body #order_review table.shop_table th { background: transparent; padding-left: 0; }
.lse .lse-page-body #payment { background: #fbf6ef !important; border-radius: 16px !important; }
.lse .lse-page-body #payment ul.payment_methods { border-bottom-color: rgb(43 26 16 / .1) !important; }
.lse .lse-page-body #payment div.payment_box { background: #fff !important; border-radius: 12px; color: var(--ink) !important; }
.lse .lse-page-body #payment div.payment_box::before { border-bottom-color: #fff !important; }
.lse .lse-page-body #place_order { width: 100%; min-height: 56px; font-size: 16px; float: none; }

/* Account */
.lse .lse-page-body .woocommerce-MyAccount-navigation { float: none; width: 100%; }
.lse .lse-page-body .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; padding: 0; list-style: none; }
.lse .lse-page-body .woocommerce-MyAccount-navigation a { display: inline-flex; padding: 10px 18px; border-radius: 999px; border: 1px solid rgb(43 26 16 / .2); color: var(--ink) !important; text-decoration: none !important; font-weight: 600; font-size: 15px; background: #fff; }
.lse .lse-page-body .woocommerce-MyAccount-navigation .is-active a { background: #1a120b; color: #f5efe6 !important; border-color: #1a120b; }
.lse .lse-page-body .woocommerce-MyAccount-content { float: none; width: 100%; }
.lse .lse-page-body .woocommerce-form-login, .lse .lse-page-body .woocommerce-form-register { max-width: 520px; padding: 30px; border: 1px solid rgb(43 26 16 / .12) !important; border-radius: 22px !important; background: #fff; }

@media (max-width: 900px) {
  .lse .lse-page-body form.checkout { grid-template-columns: 1fr; }
  .lse .lse-page-body form.checkout #customer_details, .lse .lse-page-body form.checkout #order_review_heading, .lse .lse-page-body form.checkout #order_review { grid-column: 1; grid-row: auto; }
  .lse .lse-page-body .cart-collaterals .cart_totals { width: 100%; }
}
@media (max-width: 768px) {
  .lse .lse-page-body table.shop_table_responsive tr td { padding: 12px 16px; }
  .lse .lse-page-body table.cart td.actions .coupon { display: flex; width: 100%; }
  .lse .lse-page-body table.cart td.actions .coupon input.input-text { flex: 1; width: auto; }
  .lse .lse-page-body table.cart td.actions > .button { width: 100%; margin-top: 10px; }
  .lse-trust { flex-direction: column; }
}
/* Basket button in the header */
.lse-cart-link { position: relative; display: grid; place-items: center; flex-shrink: 0; width: 46px; height: 46px; margin-right: -14px; border-radius: 50%; border: 1px solid rgb(245 239 230 / .3); color: #f5efe6; transition: border-color .3s, background .3s, color .3s; }
.lse-cart-link:hover, .lse-cart-link:focus-visible { border-color: #e8a33d; background: rgb(232 163 61 / .1); color: #f6d9a6; }
.lse-cart-count { position: absolute; top: -5px; right: -6px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: #f2871f; color: #120c08; font: 700 11px/20px var(--sans); text-align: center; box-shadow: 0 0 0 2px #120c08; }
.lse-cart-count[hidden] { display: none; }
.lse-cart-count.is-pop { animation: lse-pop .5s var(--ease); }
@keyframes lse-pop { 50% { transform: scale(1.35); } }
@media (max-width: 960px) {
  .lse-header .lse-cart-link { margin: 0 0 0 auto; }
  .lse-header .lse-menu-toggle { margin-left: 10px; }
}

/* Full-page template (plugin) */
body.lse-page { margin: 0; background: #120c08; overflow-x: clip; }

@media (max-width: 560px) { .lse-shop .woocommerce ul.products { grid-template-columns: 1fr; max-width: 460px; } }

/* ==========================================================================
   Online journals (/journal/)
   ========================================================================== */
.lse-j-hero { padding-bottom: clamp(64px, 8vw, 104px); }
.lse .lse-j-hero .lse-article-title em { color: #e8a33d; font-style: italic; }
.lse-j-progress { margin-top: 34px; max-width: 560px; }
.lse-j-bar { height: 6px; border-radius: 999px; background: rgb(245 239 230 / .14); overflow: hidden; }
.lse-j-bar span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #e8a33d, #f2871f); transition: width .6s cubic-bezier(.2,.7,.1,1); }
.lse .lse-j-progress p { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 12px 0 0; font-size: 15px; color: #cbb8a2; }
.lse-j-progress strong { color: #f5efe6; }
.lse-j-status { color: #cbb8a2; }
.lse-j-status[data-state="saved"] { color: #f6c27f; }
.lse-j-status[data-state="saved"]::before { content: '✓ '; }
.lse-j-status[data-state="error"] { color: #ffb38a; }

/* Section chips: scroll sideways on phones, stick under the header */
.lse-j-toc { position: sticky; top: 74px; z-index: 20; background: rgb(245 239 230 / .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid rgb(43 26 16 / .1); }
.lse-j-toc-inner { display: flex; gap: 8px; max-width: calc(760px + 2 * var(--gutter)); margin: 0 auto; padding: 12px var(--gutter); overflow-x: auto; scrollbar-width: none; }
.lse-j-toc-inner::-webkit-scrollbar { display: none; }
.lse .lse-j-toc a { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px; border: 1px solid rgb(43 26 16 / .14); background: #fff; color: #3a2a1e; font-size: 14px; font-weight: 600; white-space: nowrap; transition: background .25s, color .25s, border-color .25s; }
.lse-j-toc a b { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #a84f0b; }
.lse .lse-j-toc a:hover, .lse .lse-j-toc a.is-current { background: #1a120b; border-color: #1a120b; color: #f5efe6; }
.lse .lse-j-toc a.is-current b, .lse .lse-j-toc a:hover b { color: #e8a33d; }

/* Body */
.lse-j-body { padding: clamp(40px, 6vw, 72px) var(--gutter) clamp(72px, 9vw, 120px); background: #f5efe6; font-size: 18px; line-height: 1.75; color: #3a2a1e; }
.lse-j-body > * { max-width: 760px; margin-left: auto; margin-right: auto; }
.lse-j-section { scroll-margin-top: 140px; padding: clamp(32px, 5vw, 56px) 0; border-bottom: 1px solid rgb(43 26 16 / .1); }
.lse-j-section:first-child { padding-top: 0; }
.lse .lse-j-body p { margin: 0 0 1em; }
.lse-j-head { margin-bottom: 22px; }
.lse-j-head .mark { width: 40px; margin: 0 0 12px !important; color: #e0761a; }
.lse-j-head .mark svg { display: block; width: 40px; height: 27px; }
.lse .lse-j-body .session-kicker { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #a84f0b; }
.lse .lse-j-body h2 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(30px, 4vw, 44px); line-height: 1.1; letter-spacing: -.01em; color: #1a120b; }
.lse .lse-j-body h3 { margin: 30px 0 10px; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #a84f0b; }
.lse .lse-j-body strong { color: #1a120b; }
.lse .lse-j-body ul { margin: 0 0 1.2em; padding-left: 22px; }
.lse .lse-j-body ul li { margin: 0 0 .5em; }
.lse .lse-j-body ul li::marker { color: #e0761a; }
.lse .lse-j-body ol.cards { list-style: none; counter-reset: q; margin: 0 0 1.2em; padding: 0; }
.lse .lse-j-body ol.cards li { counter-increment: q; display: flex; gap: 14px; align-items: flex-start; margin: 0 0 10px; padding: 14px 18px; border-radius: 16px; background: #fff; border: 1px solid rgb(43 26 16 / .1); }
.lse .lse-j-body ol.cards li::before { content: counter(q); flex: 0 0 30px; height: 30px; border-radius: 50%; background: #e0761a; color: #1a120b; font-size: 14px; font-weight: 700; line-height: 30px; text-align: center; }
.lse .lse-j-body blockquote.prompt { margin: 6px 0 14px; padding: 18px 22px; border-left: 4px solid #e0761a; border-radius: 0 16px 16px 0; background: #fbe7d3; font-family: var(--serif); font-style: italic; font-size: clamp(20px, 2.2vw, 24px); line-height: 1.45; color: #1a120b; }
.lse .lse-j-body .signature { margin: 10px 0 0; font-family: var(--script); font-size: 40px; line-height: 1.1; color: #e0761a; }

/* Questions and answer boxes */
.lse-j-q { position: relative; margin: 0 0 26px; }
.lse .lse-j-q > p:first-child, .lse-j-qtext { display: block; margin: 0 0 10px; font-weight: 600; color: #1a120b; }
.lse-j-q > h3:first-child { margin-top: 8px !important; }
.lse .lse-j-body textarea { display: block; width: 100%; min-height: 120px; padding: 16px 18px; border: 1px solid rgb(43 26 16 / .18); border-radius: 16px; background: #fff; color: #1a120b; font: inherit; font-size: 18px; line-height: 1.7; resize: none; overflow: hidden; box-shadow: 0 1px 0 rgb(43 26 16 / .04); transition: border-color .25s, box-shadow .25s; }
.lse .lse-j-body textarea::placeholder { color: #b5a18a; }
.lse .lse-j-body textarea:focus { outline: none; border-color: #e0761a; box-shadow: 0 0 0 4px rgb(224 118 26 / .16); }
.lse-j-q.is-done textarea { border-color: rgb(232 163 61 / .6); }
.lse-j-q.is-done::after { content: '✓'; position: absolute; right: 14px; bottom: 12px; width: 24px; height: 24px; border-radius: 50%; background: #e8a33d; color: #1a120b; font-size: 13px; font-weight: 700; line-height: 24px; text-align: center; pointer-events: none; }
.lse-j-print { display: none; }

.lse-j-statement { padding: 48px 0; text-align: center; }
.lse .lse-j-statement p { font-family: var(--serif); font-size: clamp(26px, 3.4vw, 38px); line-height: 1.3; color: #1a120b; }
.lse .lse-j-statement p:last-child { font-style: italic; color: #e0761a; }
.lse-j-closing { padding: 34px 30px; border-radius: 24px; background: radial-gradient(70% 80% at 85% 10%, rgb(242 135 31 / .3), transparent 65%), #120c08; color: #e9dcc8; }
.lse .lse-j-closing h2 { color: #f5efe6; margin-bottom: 12px; }

/* End, locked and list views */
.lse-j-end, .lse-j-locked { margin-top: clamp(40px, 6vw, 64px) !important; padding: clamp(28px, 4vw, 44px); border-radius: 26px; background: #fff; border: 1px solid rgb(43 26 16 / .1); }
.lse-j-locked { margin-top: 0 !important; }
.lse .lse-j-end h2, .lse .lse-j-locked h2 { font-size: clamp(28px, 3.2vw, 38px); margin-bottom: 12px; }
.lse-j-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 22px !important; }
.lse .lse-j-link { font-weight: 700; color: #a84f0b; text-decoration: underline; text-underline-offset: 4px; }
.lse .lse-j-small { margin-top: 18px !important; font-size: 15px; line-height: 1.6; color: #6b5a4b; }
.lse-j-center { text-align: center; margin-top: 36px !important; }
.lse-j-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: 1040px !important; }
.lse-j-card { display: flex; flex-direction: column; align-items: flex-start; padding: 28px; border-radius: 24px; background: #fff; border: 1px solid rgb(43 26 16 / .1); }
.lse-j-card.is-open { border-color: rgb(232 163 61 / .55); box-shadow: 0 30px 60px -44px rgb(43 26 16 / .5); }
.lse .lse-j-card .lse-j-kind { margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #a84f0b; }
.lse .lse-j-card h2 { font-size: clamp(26px, 2.6vw, 32px); margin-bottom: 10px; }
.lse .lse-j-card h2 em { color: #e0761a; }
.lse .lse-j-card p { font-size: 16px; line-height: 1.6; }
.lse .lse-j-card .lse-j-meta { margin: auto 0 16px; padding-top: 6px; font-size: 14px; font-weight: 600; color: #6b5a4b; }

/* Links on the thank-you page and in My account → Orders */
.lse-j-orderlinks { margin: 32px 0; padding: 24px 26px; border-radius: 20px; background: #fbe7d3; border-left: 4px solid #e0761a; }
.lse-j-orderlinks h2 { margin: 0 0 6px; font-family: 'Playfair Display', Georgia, serif; font-weight: 400; font-size: 28px; color: #1a120b; }
.lse-j-orderlinks ul { margin: 12px 0 0; padding: 0; list-style: none; }
.lse-j-orderlinks a { font-weight: 700; color: #a84f0b; }

@media (max-width: 760px) {
  .lse-j-toc { top: 70px; }
  .lse-j-body { font-size: 17px; }
  .lse .lse-j-body textarea { font-size: 17px; padding: 14px 16px; }
  .lse-j-grid { grid-template-columns: 1fr; }
  .lse-j-closing { padding: 26px 22px; }
}

@media print {
  .lse-header, .lse-footer, .lse-progress, .lse-j-toc, .lse-j-actions, .lse-halo, .lse-mobile-bar, .lse-j-status { display: none !important; }
  .lse-j-hero { padding: 0 0 12px !important; background: none !important; color: #1a120b !important; }
  .lse .lse-j-hero .lse-article-title, .lse .lse-j-hero .lse-article-excerpt { color: #1a120b !important; font-size: 28pt; }
  .lse .lse-j-hero .lse-article-excerpt { font-size: 13pt; }
  .lse-j-body { padding: 0 !important; background: #fff !important; font-size: 11.5pt; }
  .lse .lse-j-body textarea { display: none !important; }
  .lse-j-print { display: block; white-space: pre-wrap; min-height: 2.5em; padding: 6px 0 10px; border-bottom: 1px solid #c9b8a3; font-size: 11.5pt; line-height: 1.6; }
  .lse-j-q { break-inside: avoid; }
  .lse-j-q.is-done::after { display: none; }
  .lse-j-section { break-before: page; border: 0; }
  .lse-j-section:first-child { break-before: auto; }
}

/* How the guides work (guides section and /journal/) */
.lse-howto { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: clamp(36px, 5vw, 56px) 0 0; padding: 0; }
.lse-howto li { padding: 26px 26px 24px; border-radius: 22px; background: #fff; border: 1px solid rgb(43 26 16 / .1); }
.lse-howto b { display: inline-grid; place-items: center; width: 40px; height: 40px; margin-bottom: 16px; border-radius: 50%; background: #fbe7d3; color: #a84f0b; font-size: 14px; font-weight: 700; letter-spacing: .04em; }
.lse .lse-howto h3 { margin: 0 0 8px; font-family: var(--serif); font-weight: 400; font-size: 24px; line-height: 1.15; color: #1a120b; }
.lse .lse-howto p { margin: 0; font-size: 16px; line-height: 1.6; color: #3a2a1e; }
.lse-j-body > .lse-howto { max-width: 1040px; margin: 0 auto clamp(36px, 5vw, 56px); }
@media (max-width: 860px) { .lse-howto { grid-template-columns: 1fr; gap: 12px; } .lse-howto li { display: grid; grid-template-columns: 40px 1fr; column-gap: 16px; padding: 20px; } .lse-howto b { grid-row: span 2; margin: 0; } }

/* Journal consent and delete */
.lse-j-consent { margin: 0 auto clamp(36px, 5vw, 56px) !important; padding: clamp(26px, 4vw, 40px); border-radius: 26px; background: #fff; border: 1px solid rgb(224 118 26 / .45); box-shadow: 0 30px 60px -44px rgb(43 26 16 / .5); }
.lse .lse-j-consent .lse-j-kind { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #a84f0b; }
.lse .lse-j-consent h2 { font-size: clamp(28px, 3.2vw, 38px); margin-bottom: 12px; }
.lse .lse-j-consent ul { margin: 14px 0 18px; }
.lse .lse-j-consent li { font-size: 16px; line-height: 1.6; }
.lse-j-agree { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px; border-radius: 16px; background: #fbe7d3; font-weight: 600; line-height: 1.5; color: #1a120b; cursor: pointer; }
.lse-j-agree input { flex: 0 0 auto; width: 22px; height: 22px; margin: 2px 0 0; accent-color: #e0761a; }
.lse-j-consent .lse-pill[disabled] { opacity: .45; cursor: not-allowed; }
.lse-j-consent.is-done { border-color: rgb(232 163 61 / .55); }
.lse .lse-j-body textarea:disabled { background: #f8f3ec; cursor: not-allowed; }
.lse .lse-j-delete { padding: 0; border: 0; background: none; font: inherit; font-weight: 700; color: #b3261e; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
@media print { .lse-j-consent, .lse-j-delete { display: none !important; } }
/* Journal save bar and per-answer "Saved" notes */
.lse-j-savebar { position: fixed; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 80; display: flex; align-items: center; gap: 14px; width: min(560px, calc(100% - 24px)); padding: 8px 8px 8px 20px; border-radius: 999px; background: rgb(26 18 11 / .94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); color: #f5efe6; box-shadow: 0 20px 44px -18px rgb(0 0 0 / .7); transform: translateX(-50%); font-family: var(--sans); }
.lse-j-savebar[hidden] { display: none; }
.lse-j-savebar-text { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; font-size: 14px; font-weight: 600; line-height: 1.3; }
.lse-j-savebar-text [data-j-status] { color: #f5efe6 !important; }
.lse-j-dot { flex: 0 0 10px; height: 10px; border-radius: 50%; background: #7bc47f; box-shadow: 0 0 0 4px rgb(123 196 127 / .2); }
.lse-j-savebar[data-state="saving"] .lse-j-dot { background: #e8a33d; box-shadow: 0 0 0 4px rgb(232 163 61 / .25); animation: lse-j-pulse 1s ease-in-out infinite; }
.lse-j-savebar[data-state="error"] .lse-j-dot { background: #ff8a6b; box-shadow: 0 0 0 4px rgb(255 138 107 / .25); }
.lse-j-savebar[data-state="saved"] [data-j-status]::before, .lse-j-savebar [data-j-status][data-state="saved"]::before { content: none; }
@keyframes lse-j-pulse { 50% { opacity: .35; } }
.lse .lse-j-savebtn { flex: 0 0 auto; height: 44px; padding: 0 22px; border: 0; border-radius: 999px; background: #e0761a; color: #120c08; font: 700 15px/1 var(--sans); cursor: pointer; transition: background .25s; }
.lse .lse-j-savebtn:hover { background: #f2871f; }
.lse .lse-j-body .lse-j-saved { margin: 8px 2px 0; font-size: 13px; font-weight: 600; color: #8a6a2f; }
.lse-page-journal .lse-j-body { padding-bottom: calc(clamp(72px, 9vw, 120px) + 70px); }
.lse-page-journal .lse-footer { padding-bottom: 90px; }
@media (max-width: 560px) { .lse-j-savebar { padding-left: 16px; gap: 10px; } .lse-j-savebar-text { font-size: 13px; } .lse .lse-j-savebtn { padding: 0 18px; } }
@media print { .lse-j-savebar, .lse-j-saved { display: none !important; } }
.lse-j-q:has(.lse-j-saved:not(:empty))::after { bottom: 42px; }

/* Find my journals (email links) */
.lse-j-find { margin: clamp(32px, 5vw, 48px) auto 0 !important; padding: clamp(24px, 4vw, 36px); border-radius: 24px; background: #fff; border: 1px solid rgb(43 26 16 / .1); }
.lse .lse-j-find h2 { font-size: clamp(24px, 2.8vw, 32px); margin-bottom: 8px; }
.lse-j-find-form { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.lse .lse-j-find-form input[type="email"] { flex: 1 1 240px; min-width: 0; height: 48px; padding: 0 18px; border: 1px solid rgb(43 26 16 / .2); border-radius: 999px; background: #fff; font: 16px var(--sans); color: #1a120b; }
.lse .lse-j-find-form input[type="email"]:focus { outline: none; border-color: #e0761a; box-shadow: 0 0 0 4px rgb(224 118 26 / .16); }
.lse .lse-j-find-form .lse-j-savebtn { height: 48px; }
.lse .lse-j-find-ok { padding: 12px 16px; border-radius: 14px; background: #fbe7d3; }