@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/73961b9b0d7bb126.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/f556cda9daa89a20.woff2) format('woff2');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:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/9deeae77196ab805.woff2) format('woff2');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}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/73961b9b0d7bb126.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/f556cda9daa89a20.woff2) format('woff2');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:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/9deeae77196ab805.woff2) format('woff2');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}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/73961b9b0d7bb126.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/f556cda9daa89a20.woff2) format('woff2');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:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/9deeae77196ab805.woff2) format('woff2');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}@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/e34c5f1bf15ea3cc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/749a308406a63378.woff2) format('woff2');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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/1ab1ad55902b85eb.woff2) format('woff2');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}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/e34c5f1bf15ea3cc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/749a308406a63378.woff2) format('woff2');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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/1ab1ad55902b85eb.woff2) format('woff2');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}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/e34c5f1bf15ea3cc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/749a308406a63378.woff2) format('woff2');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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/1ab1ad55902b85eb.woff2) format('woff2');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}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/e34c5f1bf15ea3cc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/749a308406a63378.woff2) format('woff2');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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/1ab1ad55902b85eb.woff2) format('woff2');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}@font-face{font-family:'Inter';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/e34c5f1bf15ea3cc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/749a308406a63378.woff2) format('woff2');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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/1ab1ad55902b85eb.woff2) format('woff2');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}
:root{--color-bg:#ffffff;--color-surface:#f6f7f9;--color-surface-2:#eceff3;--color-text:#14171c;--color-text-muted:#555d6b;--color-border:#dde1e7;--color-primary:#1f5eff;--color-primary-contrast:#ffffff;--color-accent:#ffb020;--color-accent-contrast:#14171c;--color-focus:#1f5eff;--font-heading:"Helvetica Neue", "Arial Nova", "Nimbus Sans", Arial, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--radius-sm:8px;--radius-md:14px;--radius-lg:24px;--radius-pill:999px;--container:1200px;--container-narrow:760px;--shadow-sm:0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.08);--shadow-md:0 12px 32px -12px rgba(16,24,40,.22);--header-h:68px}
*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:clamp(1rem,.96rem + .2vw,1.0625rem);line-height:1.6;text-rendering:optimizeLegibility}img{max-width:100%;height:auto;display:block}a{color:var(--color-primary)}h1,h2,h3{font-family:var(--font-heading);line-height:1.15;margin:0 0 .5em;overflow-wrap:anywhere;letter-spacing:-.01em}h1{font-size:clamp(2rem,1.4rem + 3vw,3.6rem);letter-spacing:-.02em}h2{font-size:clamp(1.6rem,1.25rem + 1.6vw,2.5rem)}h3{font-size:clamp(1.1rem,1rem + .5vw,1.35rem)}p{margin:0 0 1em}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:4px}.btn-row{display:flex;flex-wrap:wrap;gap:12px}.hero__points{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px}.hero__points li{display:flex;gap:10px;align-items:flex-start;font-weight:500}.hero__points svg{flex:none;margin-block-start:3px;color:var(--color-primary)}.page-header__grid{display:grid;gap:24px;align-items:center}@media (min-width:900px){.page-header__grid{grid-template-columns:1.2fr .8fr}}.cards{display:grid;gap:16px;list-style:none;margin:0;padding:0;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:24px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm)}.card__icon{width:44px;height:44px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);display:grid;place-items:center;margin-block-end:8px}.card h3{margin:0}.card p{margin:0;color:var(--color-text-muted)}.faq{display:grid;gap:10px;max-width:var(--container-narrow)}.faq details{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.faq summary{cursor:pointer;list-style:none;padding:18px 20px;font-weight:600;display:flex;justify-content:space-between;gap:16px;min-height:44px}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--color-primary);flex:none}.faq details[open] summary::after{content:"–"}.cta-box{background:var(--color-primary);color:var(--color-primary-contrast);border-radius:var(--radius-lg);padding:clamp(28px,5vw,56px);display:grid;gap:20px;align-items:center}.cta-box h2{margin:0}.cta-box p{margin:0;opacity:.9;max-width:56ch}@media (min-width:860px){.cta-box{grid-template-columns:1fr auto}}.mcta{position:fixed;inset-inline:0;inset-block-end:0;z-index:60;display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--color-bg);border-block-start:1px solid var(--color-border);box-shadow:0 -8px 24px -12px rgba(0,0,0,.25)}body{padding-block-end:76px}@media (min-width:960px){.mcta{display:none}body{padding-block-end:0}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

picture.media-picture{display:contents}h1,h2,h3{overflow-wrap:anywhere}.dej-lg{display:block;height:36px;width:auto;max-width:190px;object-fit:contain}.dej-summary-sec{padding-block:clamp(16px,3vw,32px) 0}.dej-toc-sec{padding-block:clamp(12px,2vw,24px) 0}.dej-meta{font-size:.9rem;margin:.25em 0 1em}.table-wrap{overflow-x:auto}
/* =========================================================
   Core — tokens, reset, typography, layout, header, footer
   ========================================================= */

:root{
  --color-bg:#FBF3EA;
  --color-surface:#FFFFFF;
  --color-surface-2:#F7E7DB;
  --color-text:#1D0F0D;
  --color-text-muted:#7E6D64;
  --color-border:#EADFD2;
  --color-primary:#D91E3F;
  --color-primary-contrast:#FFFFFF;
  --color-accent:#F5C45C;
  --color-accent-contrast:#1D0F0D;
  --color-focus:#D91E3F;

  --font-heading:'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-display:'Playfair Display', Georgia, 'Times New Roman', serif;

  --radius-sm:8px;
  --radius-md:16px;
  --radius-lg:24px;
  --radius-pill:999px;

  --container:1120px;
  --container-narrow:720px;

  --shadow-sm:0 8px 24px rgba(42,14,13,.06);
  --shadow-md:0 20px 60px rgba(42,14,13,.10);

  --header-h:72px;

  /* local */
  --dark:#2A0E0D;
  --dark-muted:#B9A7A0;
  --dark-link:#D8C8C2;
  --gutter:24px;
}

/* ---------- reset ---------- */
*,
*::before,
*::after{ box-sizing:border-box; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  -webkit-tap-highlight-color:transparent;
}

img,
video{ display:block; max-width:100%; }

svg{ max-width:100%; }

button,
input,
select,
textarea{ font:inherit; color:inherit; }

button{ background:none; border:0; padding:0; cursor:pointer; }

a{ color:inherit; text-decoration:none; }

ul,
ol{ margin:0; padding:0; }

ul[data-system],
ol[data-system]{ list-style:none; }

hr{ border:0; border-top:1px solid var(--color-border); margin:32px 0; }

::selection{ background:var(--color-accent); color:var(--color-accent-contrast); }

/* ---------- typography ---------- */
h1,
h2,
h3,
h4,
h5,
h6{
  font-family:var(--font-heading);
  font-weight:400;
  color:var(--color-text);
  margin:0 0 .45em;
  letter-spacing:-0.015em;
}

h1{
  font-size:72px;
  line-height:.96;
  letter-spacing:-0.025em;
}

h2{
  font-size:48px;
  line-height:1.04;
  letter-spacing:-0.02em;
}

h3{
  font-size:26px;
  line-height:1.15;
}

h4{
  font-size:20px;
  line-height:1.25;
}

p{ margin:0 0 1em; }

p:last-child{ margin-bottom:0; }

strong{ font-weight:600; }

small{ font-size:12px; }

/* ---------- links ---------- */
.link{
  color:var(--color-primary);
  font-weight:600;
  font-size:12px;
  display:inline-flex;
  align-items:center;
  gap:6px;
}

@media (hover:hover){
  .link:hover{ text-decoration:underline; }}

/* ---------- focus ---------- */
:focus-visible{
  outline:2px solid var(--color-focus);
  outline-offset:3px;
  border-radius:4px;
}

/* ---------- skip link ---------- */
.dej-sk{
  position:absolute;
  left:16px;
  top:-64px;
  z-index:200;
  padding:12px 18px;
  border-radius:var(--radius-pill);
  background:var(--color-primary);
  color:var(--color-primary-contrast);
  font-size:13px;
  font-weight:600;
  transition:top .18s ease-out;
}

.dej-sk:focus{
  top:12px;
  outline-offset:2px;
}

/* ---------- layout ---------- */
.page{
  display:flex;
  flex-direction:column;
  min-height:100vh;
}

[data-region="main"]{ flex:1 0 auto; }

.container{
  width:100%;
  max-width:calc(var(--container) + (var(--gutter) * 2));
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.container--narrow{
  max-width:calc(var(--container-narrow) + (var(--gutter) * 2));
}

.section{ padding:72px 0; }

.section--flush{ padding:0; }

.stack > * + *{ margin-top:16px; }

.eyebrow{
  font-family:var(--font-body);
  font-size:11px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--color-primary);
  margin:0 0 16px;
}

.lead{
  font-size:16px;
  line-height:1.6;
  color:var(--color-text-muted);
  max-width:52ch;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  height:44px;
  padding:0 26px;
  border:1px solid transparent;
  border-radius:var(--radius-pill);
  font-family:var(--font-body);
  font-size:13px;
  font-weight:600;
  line-height:1;
  text-align:center;
  white-space:nowrap;
  cursor:pointer;
  transition:background-color .18s ease-out, border-color .18s ease-out, color .18s ease-out, transform .18s ease-out, box-shadow .18s ease-out;
}

.btn:active{ transform:translateY(1px); }

.btn--sm{
  height:36px;
  padding:0 18px;
  font-size:13px;
}

.btn--lg{
  height:52px;
  padding:0 32px;
  font-size:14px;
}

.btn--block{
  display:flex;
  width:100%;
}

.btn--primary{
  background:var(--color-primary);
  color:var(--color-primary-contrast);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
}

.btn--light{
  background:var(--color-surface);
  color:var(--color-primary);
}

.btn--outline{
  background:transparent;
  border-color:var(--color-border);
  color:var(--color-text);
}

.btn--ghost{
  background:transparent;
  border-color:rgba(255,255,255,.25);
  color:#fff;
}

@media (hover:hover){
  .btn--primary:hover{ background:color-mix(in srgb, var(--color-primary) 88%, #000); }
  .btn--light:hover{ background:#FFF7F4; transform:scale(1.02); }
  .btn--outline:hover{ border-color:var(--color-primary); color:var(--color-primary); }
  .btn--ghost:hover{ border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.06); }}

/* ---------- icons ---------- */
[data-icon]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1em;
  height:1em;
  vertical-align:-.13em;
}

[data-icon] svg,
[data-icon] > svg{
  width:100%;
  height:100%;
}

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:var(--color-bg);
  background:color-mix(in srgb, var(--color-bg) 95%, transparent);
  border-bottom:1px solid var(--color-border);
  transition:box-shadow .2s ease-out, backdrop-filter .2s ease-out, -webkit-backdrop-filter .2s ease-out;
}

.site-header.is-scrolled{
  box-shadow:var(--shadow-sm);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}

.site-header__in{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:24px;
  min-height:var(--header-h);
}

/* brand */
.brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-heading);
  font-size:20px;
  line-height:1;
  letter-spacing:-0.01em;
  color:var(--color-text);
}

.dej-mk{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--color-primary);
  color:var(--color-primary-contrast);
}

.dej-mk svg{ width:12px; height:12px; }

/* desktop nav */
.nav{ justify-self:center; }

.nav ul{
  display:flex;
  align-items:center;
  gap:32px;
  list-style:none;
  margin:0;
  padding:0;
}

.nav a{
  display:inline-block;
  padding:6px 0 4px;
  font-size:13px;
  font-weight:500;
  line-height:1;
  color:var(--color-text);
  border-bottom:2px solid transparent;
  transition:color .15s ease-out, border-color .15s ease-out;
}

.nav a[aria-current="page"],
.nav a[aria-current="true"],
.nav .is-active{
  color:var(--color-primary);
  border-bottom-color:var(--color-primary);
}

@media (hover:hover){
  .nav a:hover{ color:var(--color-primary); }}

/* header actions */
.header-actions{
  justify-self:end;
  display:flex;
  align-items:center;
  gap:20px;
}

.header-login{
  font-size:13px;
  font-weight:500;
  line-height:1;
  color:var(--color-text);
  transition:color .15s ease-out;
}

@media (hover:hover){
  .header-login:hover{ color:var(--color-primary); }}

/* mobile menu */
.menu{
  display:none;
  position:relative;
}

.menu__btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  margin-right:-10px;
  list-style:none;
  cursor:pointer;
  color:var(--color-text);
  border-radius:var(--radius-sm);
}

.menu__btn::-webkit-details-marker{ display:none; }

.menu__btn::marker{ content:''; }

.menu__icon--close{ display:none; }

.menu[open] .menu__icon--open{ display:none; }

.menu[open] .menu__icon--close{ display:block; }

.menu__panel{
  position:fixed;
  left:0;
  right:0;
  top:var(--header-h);
  bottom:0;
  z-index:40;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:8px var(--gutter) 40px;
  overflow-y:auto;
  background:var(--color-bg);
  border-top:1px solid var(--color-border);
  animation:menuIn .18s ease-out;
}

@keyframes menuIn{
  from{ opacity:0; transform:translateY(-8px); }
  to{ opacity:1; transform:none; }
}

.menu__nav ul{
  list-style:none;
  margin:0;
  padding:0;
}

.menu__nav li{ border-bottom:1px solid var(--color-border); }

.menu__nav a{
  display:block;
  padding:18px 0;
  min-height:44px;
  font-family:var(--font-heading);
  font-size:24px;
  line-height:1.2;
  color:var(--color-text);
  transition:color .15s ease-out;
}

@media (hover:hover){
  .menu__nav a:hover{ color:var(--color-primary); }}

.menu__actions{
  display:grid;
  gap:12px;
  margin-top:20px;
}

.menu__langs{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid var(--color-border);
}

.langs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  list-style:none;
  margin:0;
  padding:0;
}

.langs a{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:6px 12px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-pill);
  font-size:12px;
  color:var(--color-text-muted);
  transition:color .15s ease-out, border-color .15s ease-out;
}

@media (hover:hover){
  .langs a:hover{ color:var(--color-text); border-color:var(--color-text); }}

html.menu-open,
html.menu-open body{ overflow:hidden; }

/* =========================================================
   Footer
   ========================================================= */
.site-footer{
  background:var(--dark);
  color:#FFFFFF;
  padding:64px 0 32px;
}

.site-footer .brand{
  color:#FFFFFF;
  font-size:20px;
}

.footer-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto auto;
  gap:40px 64px;
  align-items:start;
}

.footer-brand{ max-width:280px; }

.footer-tagline{
  margin:14px 0 0;
  font-size:12px;
  line-height:1.7;
  color:var(--dark-muted);
  max-width:260px;
}

.footer-col h2{
  font-family:var(--font-body);
  font-size:12px;
  font-weight:700;
  letter-spacing:0;
  line-height:1.6;
  color:#FFFFFF;
  margin:0 0 10px;
}

.footer-col ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.footer-col a{
  display:inline-block;
  padding:3px 0;
  font-size:12px;
  line-height:1.6;
  color:var(--dark-link);
  transition:color .15s ease-out;
}

@media (hover:hover){
  .footer-col a:hover{ color:#FFFFFF; text-decoration:underline; }}

.footer-col--lang{ min-width:150px; }

.lang{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--dark-link);
}

.lang svg{ flex:0 0 auto; }

.lang select{
  appearance:none;
  -webkit-appearance:none;
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.2);
  border-radius:0;
  padding:6px 22px 6px 0;
  min-height:32px;
  font-size:12px;
  color:var(--dark-link);
  cursor:pointer;
  background-image:linear-gradient(45deg, transparent 50%, var(--dark-muted) 50%), linear-gradient(135deg, var(--dark-muted) 50%, transparent 50%);
  background-position:calc(100% - 9px) calc(50% + 2px), calc(100% - 5px) calc(50% + 2px);
  background-size:4px 4px, 4px 4px;
  background-repeat:no-repeat;
  transition:color .15s ease-out, border-color .15s ease-out;
}

.lang select option{ color:#1D0F0D; }

@media (hover:hover){
  .lang select:hover{ color:#FFFFFF; border-bottom-color:rgba(255,255,255,.5); }}

.footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:48px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:11px;
  line-height:1.6;
  color:#8A7770;
}

.footer-age{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:20px;
  padding:0 6px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:var(--radius-sm);
  font-size:10px;
  font-weight:600;
  color:var(--dark-muted);
  font-variant-numeric:tabular-nums;
}

/* =========================================================
   Prose
   ========================================================= */
.prose{
  max-width:68ch;
  font-size:15px;
  line-height:1.7;
  color:var(--color-text);
}

.prose > *:first-child{ margin-top:0; }

.prose h2{
  font-family:var(--font-heading);
  font-size:32px;
  line-height:1.12;
  margin:40px 0 12px;
}

.prose h3{
  font-family:var(--font-heading);
  font-size:24px;
  line-height:1.2;
  margin:28px 0 10px;
}

.prose h4{
  font-family:var(--font-body);
  font-size:16px;
  font-weight:600;
  margin:24px 0 8px;
}

.prose p{
  margin:0 0 16px;
  max-width:68ch;
}

.prose ul,
.prose ol{
  margin:0 0 16px;
  padding-left:1.25em;
}

.prose li{ margin:.35em 0; }

.prose ul li::marker{ color:var(--color-primary); }

.prose a{
  color:var(--color-primary);
  text-decoration:underline;
  text-underline-offset:2px;
}

.prose blockquote{
  margin:24px 0;
  padding:4px 0 4px 20px;
  border-left:1px solid var(--color-border);
  font-family:var(--font-heading);
  font-size:20px;
  line-height:1.4;
  color:var(--color-text);
}

.prose img{
  border-radius:var(--radius-md);
  margin:24px 0;
}

.prose .table-wrap{
  width:100%;
  overflow-x:auto;
  margin:24px 0;
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  background:var(--color-surface);
}

.prose table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}

.prose th,
.prose td{
  padding:12px 16px;
  text-align:left;
  border-bottom:1px solid var(--color-border);
}

.prose th{
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--color-text-muted);
}

.prose tr:last-child td{ border-bottom:0; }

.prose td{ font-variant-numeric:tabular-nums; }

/* =========================================================
   Utilities
   ========================================================= */
.visually-hidden{
  position:absolute !important;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}

[hidden]{ display:none !important; }

/* =========================================================
   Breakpoints
   ========================================================= */
@media (max-width:1200px){
  h1{ font-size:64px; }
  .footer-grid{ gap:32px 48px; }
}

@media (max-width:1024px){
  :root{ --header-h:64px; }

  .site-header__in{ grid-template-columns:1fr auto; }

  .nav{ display:none; }

  .header-login{ display:none; }

  .menu{ display:block; }

  h1{ font-size:56px; }

  .footer-grid{ grid-template-columns:minmax(0,1fr) auto auto; }}

@media (max-width:768px){
  h1{ font-size:48px; }
  h2{ font-size:34px; }
  h3{ font-size:23px; }

  .section{ padding:56px 0; }

  .site-footer{ padding:48px 0 28px; }

  .footer-grid{ grid-template-columns:1fr 1fr; gap:32px; }
  .footer-brand{ grid-column:1 / -1; max-width:none; }
  .footer-tagline{ max-width:340px; }

  .footer-bottom{ margin-top:32px; }}

@media (max-width:560px){
  :root{ --gutter:20px; }

  body{ font-size:15px; }

  h1{ font-size:40px; }
  h2{ font-size:30px; }
  h3{ font-size:21px; }

  .header-actions{ gap:12px; }

  .btn{ height:44px; padding:0 22px; }
  .btn--sm{ height:36px; padding:0 16px; }

  .prose h2{ font-size:26px; }
  .prose h3{ font-size:21px; }

  .footer-grid{ grid-template-columns:1fr; }
  .footer-col--lang{ min-width:0; }}

/* ---------- motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }

  *,
  *::before,
  *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}
/* =========================================================
   Home blocks — hero, trust strip, steps, video match,
   testimonials, crimson CTA, SEO text
   ========================================================= */

/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */
.hero{
  position:relative;
  overflow:hidden;
  padding:56px 0 0;
}

.hero::before{
  content:"";
  position:absolute;
  top:-180px;
  right:-120px;
  width:860px;
  height:860px;
  border-radius:50%;
  background:radial-gradient(circle,
    rgba(247,217,166,.92) 0%,
    rgba(247,217,166,.48) 42%,
    rgba(247,217,166,0) 70%);
  pointer-events:none;
}

.hero__grid{
  position:relative;
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:40px;
  align-items:center;
  padding-bottom:32px;
}

.hero__copy{ max-width:520px; }

.hero h1{
  font-size:72px;
  line-height:.96;
  letter-spacing:-0.025em;
  margin:0 0 20px;
}

.hero h1 em{
  font-style:italic;
  color:var(--color-primary);
}

.hero__lead{
  font-size:16px;
  line-height:1.6;
  color:#4A3A35;
  max-width:390px;
  margin:0 0 20px;
}

.hero__rating{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  line-height:1.4;
  color:var(--color-text-muted);
}

.stars{
  display:inline-flex;
  align-items:center;
  gap:2px;
  color:var(--color-primary);
}

.stars svg{ display:block; }

/* portrait */
.hero__media{
  position:relative;
  display:flex;
  justify-content:center;
  align-items:flex-end;
}

.hero__photo{
  width:100%;
  max-width:480px;
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:50% 18%;
  border-radius:var(--radius-lg);
  -webkit-mask-image:radial-gradient(118% 96% at 50% 34%, #000 56%, rgba(0,0,0,0) 92%);
  mask-image:radial-gradient(118% 96% at 50% 34%, #000 56%, rgba(0,0,0,0) 92%);
}

/* floating match card */
.hero__card{
  position:absolute;
  right:0;
  bottom:32px;
  z-index:2;
  width:300px;
  padding:24px;
  background:var(--color-surface);
  border-radius:var(--radius-md);
  box-shadow:0 24px 70px rgba(42,14,13,.14);
  transition:transform .2s ease-out;
}

@media (hover:hover){
  .hero__card:hover{ transform:translateY(-2px); }}

.hero__card-title{
  font-family:var(--font-heading);
  font-size:24px;
  line-height:1.1;
  letter-spacing:-0.01em;
  margin:0 0 16px;
}

.hero__cta{ margin-bottom:12px; }

.hero__micro{
  margin:0;
  font-size:10px;
  line-height:1.5;
  text-align:center;
  color:var(--color-text-muted);
}

/* mobile-only pieces of the card */
.hero__fields{ display:none; }
.hero__live{ display:none; }

.field{ display:grid; gap:6px; }

.field__label{
  font-size:10px;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--color-text-muted);
}

.field__control{
  position:relative;
  display:block;
}

.field__select{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  height:44px;
  padding:0 32px 0 12px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  background:var(--color-surface);
  color:var(--color-text);
  font-size:16px;
  line-height:1;
  cursor:pointer;
}

.field__chev{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  color:var(--color-text-muted);
  pointer-events:none;
}

.hero__live{
  align-items:center;
  gap:8px;
  font-size:11px;
  line-height:1.3;
  color:var(--color-text-muted);
}

.hero__live-dot{
  flex:0 0 auto;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--color-primary);
}

.hero__live-text{ flex:1 1 auto; }

.hero__live-cta{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:36px;
  padding:0 16px;
  border-radius:var(--radius-pill);
  background:var(--color-primary);
  color:var(--color-primary-contrast);
  font-size:11px;
  font-weight:600;
  line-height:1;
  transition:background-color .18s ease-out;
}

@media (hover:hover){
  .hero__live-cta:hover{ background:color-mix(in srgb, var(--color-primary) 88%, #000); }}

/* ---------------------------------------------------------
   Trust strip
   --------------------------------------------------------- */
.trust{ border-block:1px solid var(--color-border); }

.trust__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  list-style:none;
  margin:0;
  padding:18px 0;
}

.trust__item{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  line-height:1.4;
  color:#4A3A35;
}

.trust__dot{
  flex:0 0 auto;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--color-primary);
}

/* ---------------------------------------------------------
   Steps
   --------------------------------------------------------- */
.steps{ padding:72px 0 64px; }

.steps__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:32px;
}

.steps__head h2{
  font-size:48px;
  line-height:1.04;
  max-width:620px;
  margin:0;
}

.steps__link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding-bottom:6px;
  font-size:12px;
  font-weight:600;
  line-height:1;
  color:var(--color-primary);
  white-space:nowrap;
  transition:color .15s ease-out;
}

.steps__link svg{ transition:transform .18s ease-out; }

@media (hover:hover){
  .steps__link:hover svg{ transform:translateX(3px); }}

.steps__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  list-style:none;
  margin:0;
  padding:0;
  counter-reset:step;
}

.step{
  display:flex;
  flex-direction:column;
  min-height:210px;
  padding:32px;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  counter-increment:step;
  transition:transform .2s ease-out, border-color .2s ease-out, box-shadow .2s ease-out;
}

.step::before{
  content:counter(step,decimal-leading-zero);
  display:block;
  margin-bottom:16px;
  font-family:var(--font-heading);
  font-style:italic;
  font-size:48px;
  line-height:.9;
  color:var(--color-primary);
  font-variant-numeric:lining-nums tabular-nums;
}

.step h3{
  font-size:26px;
  line-height:1.15;
  margin:0 0 10px;
}

.step p{
  margin:0;
  font-size:14px;
  line-height:1.55;
  color:var(--color-text-muted);
}

@media (hover:hover){
  .step:hover{
    transform:translateY(-4px);
    border-color:#D9B8AA;
    box-shadow:0 16px 40px rgba(42,14,13,.08);
  }}

/* ---------------------------------------------------------
   Video match promo
   --------------------------------------------------------- */
.video-match{ padding:0 0 72px; }

.video-match__panel{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:48px;
  align-items:center;
  padding:48px;
  background:var(--dark);
  border-radius:var(--radius-lg);
}

.video-match__copy{ max-width:430px; }

.eyebrow--gold{ color:var(--color-accent); }

.video-match h2{
  color:#FFFFFF;
  font-size:44px;
  line-height:1.05;
  margin:0 0 16px;
}

.video-match p{
  margin:0 0 24px;
  max-width:360px;
  font-size:14px;
  line-height:1.6;
  color:#CBB8B2;
}

.video-match__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

/* mock phone */
.match-mock{
  justify-self:end;
  width:300px;
  padding:10px;
  background:#3A1613;
  border:1px solid rgba(255,255,255,.08);
  border-radius:20px;
}

.match-mock__media{
  position:relative;
  border-radius:16px;
  overflow:hidden;
}

.match-mock__media img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
}

.match-mock__timer,
.match-mock__tag{
  position:absolute;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 10px;
  border-radius:var(--radius-pill);
  background:rgba(29,15,13,.62);
  color:#FFFFFF;
  font-size:11px;
  font-weight:600;
  line-height:1.2;
}

.match-mock__timer{
  top:10px;
  left:10px;
  font-variant-numeric:tabular-nums;
}

.match-mock__timer-label{ font-weight:400; opacity:.85; }

.match-mock__tag{
  left:10px;
  bottom:10px;
}

.match-mock__tag-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#FF4D6A;
}

.match-mock__actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:12px 0 4px;
}

.mock-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:#EFE7DE;
  color:var(--dark);
  transition:transform .18s ease-out, background-color .18s ease-out;
}

.mock-btn--like{
  background:var(--color-primary);
  color:#FFFFFF;
}

.mock-btn[aria-pressed="true"]{ background:#FF5C77; }

@media (hover:hover){
  .mock-btn:hover{ transform:scale(1.06); }
  .mock-btn--like:hover{ background:#C41837; }
  .mock-btn--like[aria-pressed="true"]:hover{ background:#FF5C77; }}

/* ---------------------------------------------------------
   Testimonials
   --------------------------------------------------------- */
.testimonials{
  background:var(--color-surface-2);
  padding:72px 0;
}

.testimonials__title{
  font-size:44px;
  line-height:1.05;
  max-width:560px;
  margin:0 0 32px;
}

.testimonials__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  list-style:none;
  margin:0;
  padding:0;
}

.quote-card{
  display:flex;
  flex-direction:column;
  gap:20px;
  padding:24px;
  background:var(--color-surface);
  border-radius:var(--radius-md);
  transition:transform .2s ease-out, box-shadow .2s ease-out;
}

@media (hover:hover){
  .quote-card:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 40px rgba(42,14,13,.08);
  }}

.quote-card__text{
  margin:0;
  font-family:var(--font-heading);
  font-size:16px;
  line-height:1.5;
  color:var(--color-text);
}

.quote-card__author{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:auto;
}

.quote-card__avatar{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border-radius:50%;
  background:var(--color-primary);
  color:var(--color-primary-contrast);
  font-size:10px;
  font-weight:700;
  letter-spacing:.02em;
}

.quote-card__meta{
  display:grid;
  gap:2px;
}

.quote-card__name{
  font-size:11px;
  font-weight:700;
  line-height:1.3;
}

.quote-card__role{
  font-size:10px;
  line-height:1.3;
  color:var(--color-text-muted);
}

/* ---------------------------------------------------------
   Crimson CTA band
   --------------------------------------------------------- */
.cta-band{
  position:relative;
  overflow:hidden;
  background:var(--color-primary);
  padding:96px 0;
  text-align:center;
}

.cta-band::before{
  content:"";
  position:absolute;
  top:-40%;
  left:50%;
  width:1200px;
  height:900px;
  transform:translateX(-50%);
  background:radial-gradient(circle at 50% 45%,
    rgba(255,255,255,.16) 0%,
    rgba(255,255,255,0) 62%);
  pointer-events:none;
}

.cta-band__in{
  position:relative;
  max-width:760px;
  margin-inline:auto;
}

.cta-band h2{
  color:#FFFFFF;
  font-size:56px;
  line-height:1.02;
  max-width:720px;
  margin:0 auto 16px;
}

.cta-band p{
  margin:0 0 28px;
  font-size:15px;
  line-height:1.5;
  color:rgba(255,255,255,.85);
}

.cta-band .btn{
  min-width:180px;
  color:var(--color-primary);
}

/* ---------------------------------------------------------
   SEO text block
   --------------------------------------------------------- */
.seo{ padding:72px 0 80px; }

.seo .eyebrow{ margin-bottom:12px; }

.seo h2{
  font-size:36px;
  line-height:1.1;
  max-width:640px;
  margin:0 0 20px;
}

.seo__body{
  max-width:none;
  font-size:15px;
  line-height:1.7;
  color:#4A3A35;
}

.seo__body h3{ color:var(--color-text); }

.seo__foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:32px;
}

.seo__note{
  margin:0;
  max-width:46ch;
  font-size:14px;
  line-height:1.5;
  color:var(--color-text-muted);
}

/* ---------------------------------------------------------
   Breakpoints
   --------------------------------------------------------- */
@media (max-width:1200px){
  .hero h1{ font-size:64px; }
  .hero::before{ right:-160px; }
  .steps__head h2{ font-size:42px; }
}

@media (max-width:1024px){
  .hero h1{ font-size:56px; }
  .trust__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 24px; }
  .video-match__panel{ gap:32px; padding:40px; grid-template-columns:minmax(0,1fr) 280px; }
  .match-mock{ width:280px; }
  .testimonials__title{ font-size:38px; }
  .cta-band h2{ font-size:48px; }}

@media (max-width:900px){
  .hero{ padding:28px 0 0; }
  .hero::before{ top:-90px; right:-45%; width:640px; height:640px; }
  .hero__grid{
    grid-template-columns:1fr;
    gap:20px;
    padding-bottom:0;
  }
  .hero h1{ font-size:46px; }
  .hero__copy{ max-width:none; }
  .hero__lead{ max-width:none; }

  .hero__media{
    display:block;
    margin-inline:calc(var(--gutter) * -1);
  }
  .hero__photo{
    max-width:none;
    aspect-ratio:4/5;
    border-radius:0;
    object-position:50% 22%;
  }
  .hero__card{
    position:relative;
    right:auto;
    bottom:auto;
    width:auto;
    margin:-24px var(--gutter) 24px;
    padding:16px;
    display:grid;
    gap:12px;
  }
  .hero__card-title{ display:none; }
  .hero__fields{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
  }
  .hero__live{ display:flex; }
  .hero__cta{ margin-bottom:0; }

  .steps{ padding:56px 0 48px; }
  .steps__head{ flex-direction:column; align-items:flex-start; gap:12px; }
  .steps__head h2{ font-size:34px; }
  .steps__grid{ grid-template-columns:1fr; gap:16px; }
  .step{ min-height:0; }

  .video-match{ padding:0 0 56px; }
  .video-match__panel{
    grid-template-columns:1fr;
    padding:32px;
    gap:28px;
  }
  .video-match h2{ font-size:34px; }
  .video-match p{ max-width:none; }
  .match-mock{ justify-self:center; width:100%; max-width:320px; }

  .testimonials{ padding:56px 0; }
  .testimonials__title{ font-size:32px; margin-bottom:24px; }
  .testimonials__grid{
    display:flex;
    gap:16px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    margin-inline:calc(var(--gutter) * -1);
    padding:0 var(--gutter) 8px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .testimonials__grid::-webkit-scrollbar{ display:none; }
  .quote-card{
    flex:0 0 auto;
    min-width:280px;
    max-width:320px;
    scroll-snap-align:start;
  }

  .cta-band{ padding:64px 0; }
  .cta-band h2{ font-size:38px; }

  .seo{ padding:56px 0 64px; }
  .seo h2{ font-size:30px; }}

@media (max-width:560px){
  .hero h1{ font-size:38px; }
  .hero__lead{ font-size:15px; }
  .hero__rating{ font-size:11px; }
  .hero__fields{ grid-template-columns:1fr 1fr; }

  .steps__head h2{ font-size:30px; }
  .step{ padding:24px; }
  .step h3{ font-size:23px; }

  .video-match__panel{ padding:24px; border-radius:var(--radius-md); }
  .video-match h2{ font-size:29px; }
  .video-match__actions .btn{ width:100%; }

  .testimonials__title{ font-size:28px; }

  .cta-band h2{ font-size:31px; }
  .cta-band .btn{ min-width:0; width:100%; }

  .seo h2{ font-size:26px; }
  .seo__foot{ flex-direction:column; align-items:flex-start; gap:16px; }
  .seo__foot .btn{ width:100%; }}

/* ---------- motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  .hero__card,
  .step,
  .quote-card,
  .mock-btn,
  .steps__link svg{
    transition:none !important;
  }
  .step:hover,
  .quote-card:hover,
  .hero__card:hover,
  .mock-btn:hover{
    transform:none !important;
  }
}
/* =========================================================
   Content blocks — inner pages
   page header, text, features, steps, faq, cta,
   contacts, posts, related, summary, legal
   ========================================================= */

.muted{ color:var(--color-text-muted); }

.section--alt{ background:var(--color-surface-2); }

.section__head{
  max-width:640px;
  margin:0 0 32px;
}

.section__head h2{
  font-size:44px;
  line-height:1.05;
  margin:0 0 12px;
}

.section__head p{
  margin:0;
  font-size:15px;
  line-height:1.6;
  color:var(--color-text-muted);
}

/* ---------------------------------------------------------
   Page header
   --------------------------------------------------------- */
.page-header{
  padding:56px 0 0;
}

.crumbs{ margin:0 0 24px; }

.crumbs ol{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  list-style:none;
  margin:0;
  padding:0;
}

.crumbs li{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.crumbs li + li::before{
  content:"/";
  color:var(--color-text-muted);
  font-size:11px;
}

.crumbs a{
  display:inline-block;
  padding:4px 0;
  font-size:12px;
  font-weight:600;
  line-height:1.4;
  color:var(--color-primary);
}

@media (hover:hover){
  .crumbs a:hover{ text-decoration:underline; text-underline-offset:2px; }}

.page-header__body{ max-width:760px; }

.page-header .eyebrow{ margin-bottom:14px; }

.page-header h1{
  font-size:64px;
  line-height:1.02;
  letter-spacing:-0.02em;
  margin:0 0 18px;
}

.page-header__lead{
  margin:0;
  max-width:60ch;
  font-size:16px;
  line-height:1.6;
  color:var(--color-text-muted);
}

.page-header__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:24px;
}

.page-header__media{
  margin:32px 0 0;
  max-width:720px;
}

.page-header__media img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  border-radius:var(--radius-md);
}

/* ---------------------------------------------------------
   Text / SEO column
   --------------------------------------------------------- */
.text-block{ padding:64px 0 72px; }

.text-block h2{
  font-size:36px;
  line-height:1.1;
  margin:0 0 20px;
}

.text-block .prose,
.legal-block .prose{
  color:#4A3A35;
  max-width:none;
}

.text-block .prose p,
.legal-block .prose p{ max-width:68ch; }

.text-block .prose h2,
.legal-block .prose h2{
  font-size:30px;
  line-height:1.15;
  color:var(--color-text);
  margin:36px 0 12px;
}

.text-block .prose h3,
.legal-block .prose h3{
  font-size:24px;
  line-height:1.2;
  color:var(--color-text);
  margin:32px 0 10px;
}

.text-block .prose > *:first-child,
.legal-block .prose > *:first-child{ margin-top:0; }

.legal-block{ padding:64px 0 72px; }

/* ---------------------------------------------------------
   Features
   --------------------------------------------------------- */
.feature-cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  list-style:none;
  margin:0;
  padding:0;
}

.feature-card{
  display:flex;
  flex-direction:column;
  padding:32px;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  transition:transform .2s ease-out, border-color .2s ease-out, box-shadow .2s ease-out;
}

.feature-card__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  margin-bottom:18px;
  border-radius:50%;
  background:rgba(217,30,63,.09);
  color:var(--color-primary);
  font-size:18px;
}

.feature-card__icon [data-icon]{
  width:20px;
  height:20px;
}

.feature-card h3{
  font-size:22px;
  line-height:1.2;
  margin:0 0 10px;
}

.feature-card p{
  margin:0;
  font-size:14px;
  line-height:1.55;
  color:var(--color-text-muted);
}

@media (hover:hover){
  .feature-card:hover{
    transform:translateY(-4px);
    border-color:#D9B8AA;
    box-shadow:0 16px 40px rgba(42,14,13,.08);
  }}

/* ---------------------------------------------------------
   Steps — process rows
   --------------------------------------------------------- */
.process{ padding:64px 0 72px; }

.process-list{
  list-style:none;
  counter-reset:step;
  margin:0;
  padding:0;
}

.process-row{
  display:grid;
  grid-template-columns:80px minmax(0,1.2fr) minmax(0,1fr);
  gap:24px;
  align-items:start;
  padding:28px 0;
  border-top:1px solid var(--color-border);
  counter-increment:step;
  transition:background-color .18s ease-out;
}

.process-row:last-child{ border-bottom:1px solid var(--color-border); }

.process-row::before{
  content:counter(step,decimal-leading-zero);
  font-family:var(--font-heading);
  font-style:italic;
  font-size:30px;
  line-height:1;
  color:var(--color-primary);
  font-variant-numeric:lining-nums tabular-nums;
  transition:transform .2s ease-out;
}

.process-row h3{
  font-size:28px;
  line-height:1.15;
  margin:0;
}

.process-row p{
  margin:0;
  font-size:13px;
  line-height:1.6;
  color:var(--color-text-muted);
}

@media (hover:hover){
  .process-row:hover{ background:rgba(247,231,219,.4); }
  .process-row:hover::before{ transform:scale(1.04); }}

/* ---------------------------------------------------------
   FAQ
   --------------------------------------------------------- */
.faq-block{ padding:64px 0 72px; }

.container--faq{ max-width:calc(840px + (var(--gutter) * 2)); }

.faq-block .section__head{ margin-bottom:20px; }

.faq-block .section__head h2{ font-size:36px; }

.faq-list details{
  border-top:1px solid var(--color-border);
}

.faq-list details:last-child{ border-bottom:1px solid var(--color-border); }

.faq-list summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:56px;
  padding:18px 0;
  font-size:14px;
  font-weight:600;
  line-height:1.4;
  color:var(--color-text);
  cursor:pointer;
  list-style:none;
}

.faq-list summary::-webkit-details-marker{ display:none; }

.faq-list summary::marker{ content:''; }

.faq__icon{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--color-primary);
  transition:transform .2s ease-out;
}

.faq-list details[open] .faq__icon{ transform:rotate(45deg); }

.faq__a{
  padding:0 0 18px;
  max-width:68ch;
  font-size:13px;
  line-height:1.7;
  color:var(--color-text-muted);
}

@media (hover:hover){
  .faq-list summary:hover{ color:var(--color-primary); }}

/* ---------------------------------------------------------
   Crimson CTA band
   --------------------------------------------------------- */
.cta{
  position:relative;
  overflow:hidden;
  background:var(--color-primary);
  padding:96px 0;
  text-align:center;
}

.cta::before{
  content:"";
  position:absolute;
  top:-45%;
  left:50%;
  width:1200px;
  height:900px;
  transform:translateX(-50%);
  background:radial-gradient(circle at 50% 45%,
    rgba(255,255,255,.16) 0%,
    rgba(255,255,255,0) 62%);
  pointer-events:none;
}

.cta__in{
  position:relative;
  max-width:760px;
  margin-inline:auto;
}

.cta h2{
  color:#FFFFFF;
  font-size:56px;
  line-height:1.02;
  max-width:720px;
  margin:0 auto 14px;
}

.cta p{
  margin:0 0 28px;
  font-size:15px;
  line-height:1.5;
  color:rgba(255,255,255,.85);
}

.cta .btn{ min-width:180px; }

/* ---------------------------------------------------------
   Contacts
   --------------------------------------------------------- */
.contacts{ padding:64px 0 72px; }

.contact-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
}

.contact-item{
  padding:24px;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
}

.contact-item > span{
  display:block;
  margin-bottom:8px;
  font-size:10px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--color-primary);
}

.contact-item a,
.contact-item p{
  margin:0;
  font-size:15px;
  line-height:1.5;
  color:var(--color-text);
  overflow-wrap:anywhere;
}

.contact-item a{ transition:color .15s ease-out; }

@media (hover:hover){
  .contact-item a:hover{ color:var(--color-primary); }}

/* ---------------------------------------------------------
   Posts / related cards
   --------------------------------------------------------- */
.posts{ padding:64px 0 72px; }

.posts-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:32px 24px;
  list-style:none;
  margin:0;
  padding:0;
}

.posts-grid--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }

.post-card{
  display:flex;
  flex-direction:column;
}

.post-card__cover{
  position:relative;
  aspect-ratio:3/2;
  border-radius:12px;
  overflow:hidden;
  background:var(--color-surface-2);
}

.post-card__cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease-out;
}

.post-card__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin:14px 0 8px;
  font-size:10px;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  line-height:1.4;
  color:var(--color-primary);
}

.post-card__dot{ color:var(--color-text-muted); }

.post-card__link{
  font-family:var(--font-body);
  font-size:16px;
  font-weight:700;
  line-height:1.35;
  color:var(--color-text);
  transition:color .15s ease-out;
}

.post-card__text{
  margin:8px 0 0;
  font-size:12px;
  line-height:1.55;
  color:var(--color-text-muted);
  max-width:38ch;
}

@media (hover:hover){
  .post-card:hover .post-card__cover img{ transform:scale(1.03); }
  .post-card:hover .post-card__link{ color:var(--color-primary); }}

.related{ padding:64px 0 72px; }

.related .section__head h2{ font-size:36px; }

.related__more{ margin:32px 0 0; }

/* ---------------------------------------------------------
   Summary
   --------------------------------------------------------- */
.summary{ padding:48px 0 0; }

.summary__box{
  padding:32px;
  background:var(--color-surface-2);
  border-radius:var(--radius-md);
}

.summary__title{
  font-size:24px;
  line-height:1.2;
  margin:0 0 16px;
}

.summary__list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:12px;
}

.summary__list li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:14px;
  line-height:1.55;
  color:#4A3A35;
  max-width:68ch;
}

.summary__icon{
  flex:0 0 auto;
  display:inline-flex;
  color:var(--color-primary);
  margin-top:3px;
  font-size:12px;
}

/* ---------------------------------------------------------
   Breakpoints
   --------------------------------------------------------- */
@media (max-width:1200px){
  .page-header h1{ font-size:58px; }
  .section__head h2{ font-size:40px; }
  .cta h2{ font-size:50px; }
}

@media (max-width:1024px){
  .page-header{ padding-top:48px; }
  .page-header h1{ font-size:52px; }
  .text-block h2{ font-size:32px; }
  .process-row{ grid-template-columns:64px minmax(0,1fr) minmax(0,1fr); }
  .process-row h3{ font-size:24px; }
  .contact-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .posts-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .posts-grid--3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cta{ padding:80px 0; }
  .cta h2{ font-size:42px; }}

@media (max-width:768px){
  .page-header h1{ font-size:44px; }
  .page-header__lead{ font-size:15px; }
  .page-header__media{ margin-top:24px; }
  .section__head{ margin-bottom:24px; }
  .section__head h2{ font-size:32px; }
  .feature-cards{ grid-template-columns:1fr; }
  .feature-card{ padding:24px; }
  .feature-card h3{ font-size:20px; }
  .process-row{
    grid-template-columns:auto minmax(0,1fr);
    gap:6px 16px;
    padding:22px 0;
  }
  .process-row::before{ font-size:24px; }
  .process-row h3{ font-size:22px; }
  .process-row p{ grid-column:2; font-size:14px; }
  .faq-block .section__head h2,
  .related .section__head h2,
  .text-block h2{ font-size:30px; }
  .text-block .prose h2,
  .legal-block .prose h2{ font-size:26px; }
  .text-block .prose h3,
  .legal-block .prose h3{ font-size:21px; }
  .cta{ padding:64px 0; }
  .cta h2{ font-size:34px; }
  .cta p{ font-size:14px; }
  .summary__box{ padding:24px; }
  .summary__title{ font-size:22px; }}

@media (max-width:560px){
  .page-header{ padding-top:40px; }
  .page-header h1{ font-size:36px; }
  .page-header__actions .btn{ width:100%; }
  .section__head h2{ font-size:28px; }
  .posts-grid,
  .posts-grid--3{ grid-template-columns:1fr; }
  .post-card__text{ max-width:none; }
  .contact-grid{ grid-template-columns:1fr; }
  .cta h2{ font-size:30px; }
  .cta .btn{ width:100%; }
  .related__more{ margin-top:24px; }}
/* =========================================================
   Blog — post cards, related, summary, article reading
   ========================================================= */

/* ---------- shared card ---------- */
.dej-posts{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:36px 24px;
}

.dej-post{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
}

.dej-post__cover{
  position:relative;
  aspect-ratio:16 / 9;
  border-radius:12px;
  overflow:hidden;
  background-color:var(--color-surface-2);
  isolation:isolate;
}

.dej-post:nth-child(4n+1) .dej-post__cover{ background-color:#F5C45C; }
.dej-post:nth-child(4n+2) .dej-post__cover{ background-color:#D91E3F; }
.dej-post:nth-child(4n+3) .dej-post__cover{ background-color:#2A0E0D; }
.dej-post:nth-child(4n+0) .dej-post__cover{ background-color:#F7E7DB; }

.dej-post__mark{
  position:absolute;
  left:22px;
  bottom:16px;
  z-index:0;
  color:rgba(29,15,13,.22);
  pointer-events:none;
  transform-origin:50% 50%;
  transition:transform .3s ease-out;
}

.dej-post__mark svg{
  display:block;
  width:56px;
  height:56px;
  fill:currentColor;
}

.dej-post:nth-child(4n+2) .dej-post__mark,
.dej-post:nth-child(4n+3) .dej-post__mark{ color:rgba(255,255,255,.32); }

.dej-post__img{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
  transition:transform .3s ease-out;
}

.dej-post__img:not([src]),
.dej-post__img[src=""]{ display:none; }

.dej-post__body{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}

.dej-post__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 10px;
  margin:0;
  font-size:10px;
  font-weight:600;
  letter-spacing:.1em;
  line-height:1.6;
  text-transform:uppercase;
  color:var(--color-primary);
}

.dej-post__meta > *{
  display:inline-flex;
  align-items:center;
}

.dej-post__meta > * + *::before{
  content:"·";
  margin-right:9px;
  color:var(--color-text-muted);
  font-weight:400;
}

.dej-post__link{
  display:block;
  font-family:var(--font-body);
  font-size:16px;
  font-weight:700;
  line-height:1.35;
  letter-spacing:-.01em;
  color:var(--color-text);
  transition:color .15s ease-out;
}

.dej-post__link::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  border-radius:var(--radius-md);
}

.dej-post__link:focus-visible{ outline-offset:4px; }

.dej-post__text{
  margin:0;
  font-size:14px;
  line-height:1.5;
  color:var(--color-text-muted);
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
  overflow:hidden;
}

.dej-post__date{
  margin:2px 0 0;
  font-size:11px;
  line-height:1.4;
  color:var(--color-text-muted);
  font-variant-numeric:tabular-nums;
}

.dej-post__date:empty{ display:none; }

@media (hover:hover){
  .dej-post:hover .dej-post__img,
  .dej-post:hover .dej-post__mark{ transform:scale(1.04); }
  .dej-post:hover .dej-post__link{ color:var(--color-primary); }}

/* ---------- featured (first) card ---------- */
.dej-posts--feature > .dej-post:first-child{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  overflow:hidden;
}

.dej-posts--feature > .dej-post:first-child .dej-post__cover{
  aspect-ratio:auto;
  height:100%;
  min-height:280px;
  border-radius:0;
}

.dej-posts--feature > .dej-post:first-child .dej-post__body{
  padding:32px;
  justify-content:center;
  gap:14px;
}

.dej-posts--feature > .dej-post:first-child .dej-post__link{
  font-family:var(--font-heading);
  font-size:36px;
  font-weight:400;
  line-height:1.06;
  letter-spacing:-.02em;
}

.dej-posts--feature > .dej-post:first-child .dej-post__text{
  font-size:14px;
  -webkit-line-clamp:4;
  line-clamp:4;
}

/* ---------- related ---------- */
.dej-related{ padding-top:56px; }

.dej-related__head{ margin:0 0 24px; }

.dej-related__head h2{
  margin:0;
  font-size:36px;
  line-height:1.1;
}

.dej-posts--compact{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.dej-posts--compact .dej-post__cover{ aspect-ratio:3 / 2; }

.dej-posts--compact .dej-post__link{ font-size:15px; }

.dej-posts__more{ margin:28px 0 0; }

.dej-posts__more a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--color-primary);
  transition:color .15s ease-out, gap .18s ease-out;
}

.dej-posts__more a svg{ flex:0 0 auto; }

@media (hover:hover){
  .dej-posts__more a:hover{ gap:12px; color:color-mix(in srgb, var(--color-primary) 80%, #000); }}

/* ---------- blog empty state ---------- */
.dej-blog-empty{
  margin:0;
  padding:64px 24px;
  text-align:center;
  font-size:15px;
  line-height:1.6;
  color:var(--color-text-muted);
  background:var(--color-surface);
  border:1px dashed var(--color-border);
  border-radius:var(--radius-md);
}

/* ---------- summary plaque ---------- */
.dej-summary-sec{ padding:0 0 8px; }

.dej-summary{
  max-width:var(--container-narrow);
  margin-inline:auto;
  padding:32px 36px;
  background:var(--color-surface-2);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
}

.dej-summary__title{
  font-family:var(--font-heading);
  font-size:26px;
  line-height:1.2;
  letter-spacing:-.01em;
  margin:0 0 18px;
}

.dej-summary ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:12px;
}

.dej-summary li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:15px;
  line-height:1.6;
  color:var(--color-text);
}

.dej-summary li [data-icon]{
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin-top:3px;
  font-size:18px;
  color:var(--color-primary);
}

/* ---------- article reading column ---------- */
.dej-article{ padding-top:8px; }

.dej-article__col{
  max-width:var(--container-narrow);
  margin-inline:auto;
}

.dej-article h2{
  font-family:var(--font-heading);
  font-size:32px;
  line-height:1.12;
  letter-spacing:-.02em;
  margin:0 0 20px;
}

.dej-article .prose{
  max-width:70ch;
  font-size:18px;
  line-height:1.72;
}

.dej-article .prose p,
.dej-article .prose li{ max-width:70ch; }

.dej-article .prose h2{ font-size:32px; margin:40px 0 12px; }

.dej-article .prose h3{ font-size:24px; margin:32px 0 10px; }

.dej-article .prose blockquote{
  margin:28px 0;
  padding:4px 0 4px 22px;
  border-left:2px solid var(--color-primary);
  font-family:var(--font-heading);
  font-size:21px;
  line-height:1.45;
  font-style:italic;
}

.prose figure{ margin:28px 0; }

.prose figure img{ margin:0; }

.prose figcaption{
  margin-top:10px;
  font-size:13px;
  line-height:1.5;
  color:var(--color-text-muted);
}

.prose code{
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:.86em;
  padding:.08em .35em;
  background:var(--color-surface-2);
  border:1px solid var(--color-border);
  border-radius:6px;
}

.prose hr{ margin:32px 0; }

.dej-article [id],
.prose [id]{ scroll-margin-top:calc(var(--header-h) + 28px); }

/* ---------- article page header (system page-header) ---------- */
.page-header:has(.dej-meta){
  padding:56px 0 8px;
  background:var(--color-bg);
}

.page-header:has(.dej-meta) .container{
  max-width:calc(var(--container-narrow) + (var(--gutter) * 2));
}

.page-header:has(.dej-meta) h1{
  font-size:64px;
  line-height:1.02;
  letter-spacing:-.025em;
  margin:0;
}

/* ---------- meta line under H1 ---------- */
.dej-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 12px;
  margin:20px 0 0;
  font-size:11px;
  font-weight:600;
  letter-spacing:.1em;
  line-height:1.6;
  text-transform:uppercase;
  color:var(--color-text-muted);
  font-variant-numeric:tabular-nums;
}

.dej-meta > *{
  display:inline-flex;
  align-items:center;
}

.dej-meta > * + *::before{
  content:"·";
  margin-right:12px;
  color:var(--color-text-muted);
  font-weight:400;
}

/* ---------- table of contents ---------- */
.dej-toc-sec{ padding:0 0 8px; }

.dej-toc-sec .container{
  max-width:calc(var(--container-narrow) + (var(--gutter) * 2));
}

.dej-toc{
  padding:20px 24px;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
}

.dej-toc__title{
  margin:0 0 10px;
  font-family:var(--font-body);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--color-primary);
}

.dej-toc ol{
  list-style:none;
  margin:0;
  padding:0;
  counter-reset:ns-toc;
  display:grid;
  gap:2px;
}

.dej-toc ol li{
  counter-increment:ns-toc;
  margin:0;
}

.dej-toc ol li a{
  display:block;
  padding:7px 0;
  font-size:14px;
  line-height:1.45;
  color:var(--color-text-muted);
  transition:color .15s ease-out;
}

.dej-toc ol li a::before{
  content:counter(ns-toc) ". ";
  color:var(--color-primary);
  font-variant-numeric:tabular-nums;
}

.dej-toc ol li a.is-active,
.dej-toc ol li a[aria-current]{
  color:var(--color-primary);
  font-weight:600;
}

@media (hover:hover){
  .dej-toc ol li a:hover{ color:var(--color-text); }}

/* ---------- reading progress ---------- */
.dej-progress{
  position:fixed;
  top:var(--header-h);
  left:0;
  z-index:60;
  width:100%;
  height:3px;
  background:var(--color-primary);
  transform:scaleX(0);
  transform-origin:0 50%;
  transition:transform .1s linear;
  pointer-events:none;
}

/* =========================================================
   Breakpoints
   ========================================================= */
@media (max-width:1200px){
  .dej-posts{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:1024px){
  .page-header:has(.dej-meta) h1{ font-size:56px; }
  .dej-posts--compact{ grid-template-columns:repeat(2,minmax(0,1fr)); }}

@media (max-width:900px){
  .dej-posts{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; }

  .dej-posts--feature > .dej-post:first-child{ grid-template-columns:1fr; }

  .dej-posts--feature > .dej-post:first-child .dej-post__cover{
    aspect-ratio:16 / 9;
    min-height:0;
  }

  .dej-posts--feature > .dej-post:first-child .dej-post__body{ padding:24px; }

  .dej-posts--feature > .dej-post:first-child .dej-post__link{ font-size:28px; }}

@media (max-width:768px){
  .dej-related{ padding-top:44px; }

  .dej-related__head h2{ font-size:30px; }

  .dej-posts--compact{
    display:flex;
    gap:16px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    margin-inline:calc(var(--gutter) * -1);
    padding-inline:var(--gutter);
    padding-bottom:8px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }

  .dej-posts--compact::-webkit-scrollbar{ display:none; }

  .dej-posts--compact .dej-post{
    flex:0 0 78%;
    scroll-snap-align:start;
  }

  .page-header:has(.dej-meta){ padding:40px 0 0; }

  .page-header:has(.dej-meta) h1{ font-size:40px; }

  .dej-article .prose{ font-size:17px; }

  .dej-summary{ padding:24px; }}

@media (max-width:560px){
  .dej-posts{ grid-template-columns:1fr; gap:28px; }

  .dej-post__link{ font-size:17px; }

  .dej-post__text{ font-size:15px; }

  .dej-posts--feature > .dej-post:first-child .dej-post__link{ font-size:24px; }

  .dej-posts--feature > .dej-post:first-child .dej-post__body{ padding:20px; }

  .dej-summary{ padding:20px; }

  .dej-summary__title{ font-size:22px; }

  .dej-toc{ padding:16px 18px; }

  .dej-article h2{ font-size:26px; }}

/* ---------- motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  .dej-post__img,
  .dej-post__mark,
  .dej-progress{
    transition:none;
  }

  .dej-post:hover .dej-post__img,
  .dej-post:hover .dej-post__mark{ transform:none; }
}

:root{--color-bg:#FBF3EA;--color-surface:#FFFFFF;--color-surface-2:#F7E7DB;--color-text:#1D0F0D;--color-text-muted:#4b5563;--color-border:#EADFD2;--color-primary:#A32B5E;--color-primary-contrast:#FFFFFF;--color-accent:#EFB65E;--color-accent-contrast:#1D0F0D;--color-focus:#A32B5E;--font-heading:'Playfair Display', system-ui, sans-serif;--font-body:'Inter', system-ui, sans-serif;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-pill:999px;--container:1120px;--container-narrow:720px;--shadow-sm:0 8px 24px rgba(42,14,13,.06);--shadow-md:0 20px 60px rgba(42,14,13,.10);--header-h:72px;--font-display:'Playfair Display', var(--font-heading)}