/* Concept A — Premium Editorial   (namespace: ea-)
   Mineral paper, ink, plum. Oversized type, generous space, hairline structure. Cairo only. */
@font-face { font-family: "Cairo"; src: url("../../assets/fonts/cairo-arabic.woff2") format("woff2"); font-weight: 200 1000; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC; }
@font-face { font-family: "Cairo"; src: url("../../assets/fonts/cairo-latin-ext.woff2") format("woff2"); font-weight: 200 1000; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cairo"; src: url("../../assets/fonts/cairo-latin.woff2") format("woff2"); font-weight: 200 1000; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

.ea {
  /* customisable tokens */
  --ea-paper: #eceff1;
  --ea-paper-2: #e0e5e9;
  --ea-ink: #111820;
  --ea-accent: #6d1f43;       /* creator accent */
  --ea-accent-2: #531230;
  --ea-on-accent: #f4eff2;
  --ea-rule: #b4bcc4;
  --ea-muted: #44505b;
  --ea-font: "Cairo", system-ui, -apple-system, "Segoe UI", Tahoma, sans-serif;
  --ea-pad: 20px;

  margin: 0;
  background: var(--ea-paper);
  color: var(--ea-ink);
  font-family: var(--ea-font);
  font-size: 1.0625rem;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
  padding-bottom: 76px;
}
.ea *, .ea *::before, .ea *::after { box-sizing: border-box; }
.ea a { color: inherit; }
.ea button { font-family: inherit; }
.ea :focus-visible { outline: 3px solid var(--ea-accent); outline-offset: 4px; border-radius: 3px; }
.ea-dark :focus-visible { outline-color: var(--ea-on-accent); }
.ea-wrap { width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: var(--ea-pad); }
.ea-num { direction: ltr; unicode-bidi: isolate; display: inline-block; }
.ea-skip { position: absolute; inset-inline-start: 12px; top: -90px; background: var(--ea-ink); color: #fff !important; padding: 10px 18px; z-index: 100; }
.ea-skip:focus { top: 10px; }

/* masthead */
.ea-mast { border-bottom: 1px solid var(--ea-rule); }
.ea-mast__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 16px; }
.ea-brand { font-weight: 800; font-size: 1.15rem; text-decoration: none; line-height: 1.2; }
.ea-brand small { display: block; font-weight: 500; font-size: 0.78rem; color: var(--ea-muted); }
.ea-nav { display: none; gap: 30px; font-weight: 600; }
.ea-nav a { text-decoration: none; }
.ea-nav a:hover { text-decoration: underline; text-underline-offset: 6px; }

/* buttons / links */
.ea-btn { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 58px; padding: 10px 34px; background: var(--ea-ink); color: var(--ea-paper) !important; font-weight: 800; font-size: 1.1rem; line-height: 1.3; text-decoration: none; border: 2px solid var(--ea-ink); border-radius: 3px; cursor: pointer; transition: background-color .18s, border-color .18s, color .18s; }
.ea-btn:hover { background: var(--ea-accent); border-color: var(--ea-accent); }
.ea-btn:active { background: var(--ea-accent-2); border-color: var(--ea-accent-2); }
.ea-btn svg { width: 1.2em; height: 1.2em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transform: scaleX(-1); transition: translate .18s; }
.ea-btn:hover svg { translate: -4px 0; }
.ea-btn--paper { background: var(--ea-paper); color: var(--ea-ink) !important; border-color: var(--ea-paper); }
.ea-btn--paper:hover { background: #fff; border-color: #fff; }
.ea-btn--paper:active { background: var(--ea-paper-2); }
.ea-link { font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; text-decoration-color: var(--ea-accent); line-height: 1.8; }
.ea-link:hover { text-decoration-color: currentColor; }
.ea-dark .ea-link { text-decoration-color: var(--ea-on-accent); }
.ea-cta { display: flex; flex-direction: column; align-items: stretch; gap: 18px; }

/* hero */
.ea-hero { padding-block: 40px 56px; }
.ea-h1 { margin: 0; font-weight: 900; font-size: clamp(2rem, 8vw, 6rem); line-height: 1.16; letter-spacing: -0.005em; }
.ea-line { display: block; overflow: hidden; padding-block: 0.04em; }
.ea-line > span { display: block; }
.cv-js:not(.cv-ready) .ea-line > span { transform: translateY(108%); }
.cv-ready .ea-line > span { transition: transform .9s cubic-bezier(.2,.8,.15,1); transition-delay: calc(var(--i, 0) * 130ms); }
.ea-hero__grid { display: grid; gap: 40px; margin-top: 40px; }
.ea-lead { font-size: clamp(1.1rem, 3.4vw, 1.4rem); line-height: 1.95; max-width: 30em; margin: 0 0 30px; color: var(--ea-ink); }
.ea-spec { margin: 36px 0 0; border-top: 1px solid var(--ea-rule); }
.ea-spec > div { display: grid; grid-template-columns: 6.5rem 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--ea-rule); }
.ea-spec dt { font-weight: 700; color: var(--ea-muted); font-size: .95rem; }
.ea-spec dd { margin: 0; font-weight: 600; }

/* product plate (replaceable: [data-cv-field=product_media]) */
.ea-plate { position: relative; background: var(--ea-accent); aspect-ratio: 1 / 1.02; overflow: hidden; border-radius: 3px; isolation: isolate; }
.ea-sheet { position: absolute; background: var(--ea-paper); width: 44%; aspect-ratio: 3 / 4; padding: 5% 5.5%; display: grid; gap: 6px; align-content: start; box-shadow: 0 18px 40px rgba(0,0,0,.28); border-radius: 2px; }
.ea-sheet--1 { top: 8%; left: 7%; transform: rotate(-7deg); }
.ea-sheet--2 { top: 15%; left: 31%; transform: rotate(4deg); }
.ea-sheet b { font-size: clamp(.55rem, 1.9vw, .8rem); font-weight: 800; line-height: 1.4; color: var(--ea-accent); }
.ea-ln { display: block; height: 5px; width: var(--w, 100%); background: #c4ccd3; border-radius: 3px; }
.ea-ln--k { background: var(--ea-ink); }
.ea-ln--a { background: var(--ea-accent); }
.ea-bx { display: flex; gap: 6px; align-items: center; }
.ea-bx::before { content: ""; width: 8px; height: 8px; border: 1.5px solid var(--ea-ink); flex: none; }
.ea-bx.on::before { background: var(--ea-ink); }
.ea-cover { position: absolute; right: 7%; bottom: -4%; width: 50%; aspect-ratio: 3 / 4.15; background: var(--ea-ink); color: var(--ea-paper); padding: 7% 7% 6%; display: flex; flex-direction: column; justify-content: space-between; box-shadow: -14px 20px 44px rgba(0,0,0,.38); z-index: 2; }
.ea-cover small { font-size: clamp(.5rem, 1.6vw, .75rem); font-weight: 600; opacity: .8; line-height: 1.5; }
.ea-cover strong { font-size: clamp(1.25rem, 5.4vw, 2.5rem); font-weight: 900; line-height: 1.18; }
.ea-cover em { font-style: normal; font-size: clamp(.5rem, 1.7vw, .8rem); line-height: 1.5; border-top: 1px solid rgba(244,239,242,.4); padding-top: 6px; }
.ea-cover i { position: absolute; top: 0; left: 8%; width: 12%; height: 22%; background: var(--ea-accent); }

/* sections */
.ea-section { padding-block: 72px; }
.ea-section--2 { background: var(--ea-paper-2); }
.ea-dark { background: var(--ea-accent); color: var(--ea-on-accent); }
.ea-h2 { margin: 0; font-weight: 900; font-size: clamp(1.9rem, 6.4vw, 3.6rem); line-height: 1.22; max-width: 18em; text-wrap: balance; }
.ea-kicker { margin: 0 0 14px; font-weight: 700; color: var(--ea-muted); font-size: .95rem; }

/* problem / solution */
.ea-split { display: grid; gap: 40px; margin-top: 44px; }
.ea-col h3 { margin: 0 0 6px; font-size: 1.25rem; font-weight: 800; padding-bottom: 12px; border-bottom: 2px solid var(--ea-ink); }
.ea-col ul { list-style: none; margin: 0; padding: 0; }
.ea-col li { padding: 16px 0; border-bottom: 1px solid var(--ea-rule); font-size: 1.1rem; line-height: 1.8; }
.ea-col--after h3 { border-color: var(--ea-accent); color: var(--ea-accent); }
.ea-col--before li { color: var(--ea-muted); }
.ea-after { margin-top: 36px; }

/* benefits: index list */
.ea-index { margin: 44px 0 0; padding: 0; list-style: none; border-top: 2px solid var(--ea-ink); }
.ea-index li { display: grid; gap: 4px 40px; padding: 26px 0; border-bottom: 1px solid var(--ea-rule); }
.ea-index h3 { margin: 0; font-weight: 900; font-size: clamp(1.5rem, 4.6vw, 2.3rem); line-height: 1.3; }
.ea-index p { margin: 0; color: var(--ea-muted); max-width: 32em; }

/* contents: table of contents with leaders */
.ea-toc { list-style: none; margin: 40px 0 0; padding: 0; max-width: 46rem; }
.ea-toc li { display: flex; align-items: baseline; gap: 12px; padding: 12px 0; font-size: 1.15rem; font-weight: 700; line-height: 1.6; }
.ea-toc li::after { content: ""; order: 2; flex: 1; border-bottom: 2px dotted var(--ea-rule); min-width: 20px; translate: 0 -5px; }
.ea-toc span { order: 3; font-weight: 600; font-size: .92rem; color: var(--ea-muted); white-space: nowrap; }

/* offer band */
.ea-offer { display: grid; gap: 36px; align-items: end; }
.ea-price { display: flex; align-items: baseline; gap: 14px; line-height: 1; }
.ea-price b { font-size: clamp(5.5rem, 24vw, 11rem); font-weight: 900; letter-spacing: -0.02em; direction: ltr; }
.ea-price span { font-size: clamp(1.4rem, 4vw, 2rem); font-weight: 700; }
.ea-offer p { margin: 14px 0 0; max-width: 26em; opacity: .92; }
.ea-offer ul { list-style: none; margin: 0 0 28px; padding: 0; border-top: 1px solid rgba(244,239,242,.4); }
.ea-offer li { padding: 10px 0; border-bottom: 1px solid rgba(244,239,242,.4); font-weight: 600; }

.ea-foot { padding-block: 34px 40px; font-size: .92rem; color: var(--ea-muted); border-top: 1px solid var(--ea-rule); }
.ea-foot p { margin: 0; max-width: 48em; }

/* sticky + toast */
.ea-sticky { position: fixed; inset-inline: 0; bottom: 0; z-index: 1030; display: flex; align-items: center; gap: 16px; padding: 10px var(--ea-pad) calc(10px + env(safe-area-inset-bottom)); background: var(--ea-ink); color: var(--ea-paper); transform: translateY(110%); transition: transform .3s; }
.ea-sticky.is-visible { transform: none; }
.ea-sticky__p { line-height: 1.2; }
.ea-sticky__p small { display: block; font-size: .75rem; opacity: .75; }
.ea-sticky__p b { font-size: 1.4rem; font-weight: 900; }
.ea-sticky .ea-btn { flex: 1; min-height: 50px; padding-inline: 14px; background: var(--ea-paper); color: var(--ea-ink) !important; border-color: var(--ea-paper); }
.ea-toast { position: fixed; inset-inline: 16px; bottom: 92px; margin-inline: auto; max-width: 420px; z-index: 1040; background: var(--ea-ink); color: #fff; padding: 12px 18px; font-size: .95rem; line-height: 1.7; opacity: 0; pointer-events: none; transition: opacity .2s; }
.ea-toast.is-visible { opacity: 1; }

@media (min-width: 768px) {
  .ea { --ea-pad: 32px; font-size: 1.125rem; }
  .ea-nav { display: flex; }
  .ea-cta { flex-direction: row; align-items: center; gap: 28px; flex-wrap: wrap; }
  .ea-split { grid-template-columns: 1fr 1fr; gap: 64px; }
  .ea-index li { grid-template-columns: 1fr 1fr; align-items: baseline; }
  .ea-section { padding-block: 112px; }
}
@media (min-width: 992px) {
  .ea { padding-bottom: 0; }
  .ea-sticky { display: none; }
  .ea-hero { padding-block: 44px 96px; }
  .ea-hero__grid { grid-template-columns: 1fr 0.92fr; gap: 72px; align-items: end; margin-top: 44px; }
  .ea-offer { grid-template-columns: 1.15fr 1fr; gap: 80px; }
  .ea-toast { bottom: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .ea *, .ea *::before, .ea *::after { transition: none !important; animation: none !important; }
  .cv-js:not(.cv-ready) .ea-line > span { transform: none; }
}
