/* ==========================================================================
   DAWNING NEMESIS — brand system
   Kadence child theme / Elementor Pro
   All visual styling lives here. Elementor supplies structure + CSS classes.
   --------------------------------------------------------------------------
   Rules of the system:
   1. No border-radius. Corners are chamfered (clip-path) — the letterforms in
      the logo are chiseled, so the furniture is too.
   2. One accent family: ember. Arcane violet appears twice on the whole site.
   3. The rune ring is the signature. It rotates once in the hero, and shows up
      static as avatar frames and section rules. Nowhere else.
   ========================================================================== */

/* --------------------------------------------------------------- tokens */
:root {
  /* surfaces */
  --dn-obsidian:   #0B0F16;
  --dn-slate:      #131A26;
  --dn-slate-hi:   #1B2434;
  --dn-iron:       #2A3546;
  --dn-iron-hi:    #3A4759;

  /* ember */
  --dn-ember:      #F2762E;
  --dn-ember-hi:   #FFC96B;
  --dn-ember-lo:   #B62E15;

  /* gold / type */
  --dn-gold:       #E0B267;
  --dn-gold-hi:    #FBE3B0;
  --dn-parch:      #D9DEE8;
  --dn-muted:      #8C97A8;

  /* used exactly twice: Mythic tags and focus rings */
  --dn-arcane:     #7B5BD6;

  /* type */
  --dn-display: "Oswald", "Arial Narrow", sans-serif;
  --dn-heraldic: "Cinzel", "Times New Roman", serif;
  --dn-body: "Barlow", -apple-system, "Segoe UI", sans-serif;

  /* scale */
  --dn-step--1: clamp(.82rem, .78rem + .2vw, .9rem);
  --dn-step-0:  clamp(1rem, .96rem + .22vw, 1.1rem);
  --dn-step-1:  clamp(1.2rem, 1.1rem + .5vw, 1.45rem);
  --dn-step-2:  clamp(1.6rem, 1.35rem + 1.1vw, 2.25rem);
  --dn-step-3:  clamp(2.1rem, 1.6rem + 2.2vw, 3.4rem);
  --dn-step-4:  clamp(2.8rem, 1.8rem + 4.4vw, 5.75rem);

  --dn-wrap: 1200px;
  --dn-chamfer: 18px;
  --dn-shadow: 0 18px 45px -25px rgba(0,0,0,.95);
}

/* ----------------------------------------------------------- foundation */
body.dn {
  background-color: var(--dn-obsidian);
  color: var(--dn-parch);
  font-family: var(--dn-body);
  font-size: var(--dn-step-0);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

body.dn::before {
  /* ambient forge glow, fixed behind everything */
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(900px 520px at 50% -8%, rgba(242,118,46,.13), transparent 70%),
    radial-gradient(700px 500px at 88% 12%, rgba(123,91,214,.07), transparent 65%);
}

body.dn .site,
body.dn #wrapper { position: relative; z-index: 1; }

body.dn ::selection { background: var(--dn-ember); color: #16100b; }

body.dn a { color: var(--dn-ember-hi); text-decoration: none; }
body.dn a:hover { color: var(--dn-gold-hi); }

body.dn :focus-visible {
  outline: 2px solid var(--dn-arcane);
  outline-offset: 3px;
}

/* ---------------------------------------------------------------- type */
body.dn h1, body.dn h2, body.dn h3, body.dn h4,
body.dn .dn-h1, body.dn .dn-h2, body.dn .dn-h3 {
  font-family: var(--dn-display);
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.02;
  text-transform: uppercase;
  color: var(--dn-parch);
  margin: 0;
}

body.dn .dn-h1 { font-size: var(--dn-step-4); font-weight: 700; }
body.dn .dn-h2 { font-size: var(--dn-step-3); }
body.dn .dn-h3 { font-size: var(--dn-step-2); }

/* forged gold treatment — reserved for the two biggest headings on a page */
body.dn .dn-forged {
  background: linear-gradient(180deg,
      var(--dn-gold-hi) 0%, var(--dn-gold) 38%, #C9873C 62%, #8A5A22 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 2px 0 rgba(0,0,0,.55));
  padding-bottom: .06em;
}

/* small heraldic label above a heading */
body.dn .dn-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .7em;
  font-family: var(--dn-heraldic);
  font-weight: 700;
  font-size: var(--dn-step--1);
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--dn-ember);
  margin: 0 0 1.1rem;
}
body.dn .dn-eyebrow::before {
  content: "";
  width: 26px; height: 1px;
  background: currentColor;
  opacity: .7;
}

body.dn .dn-lede {
  font-size: var(--dn-step-1);
  line-height: 1.6;
  color: #C3CCDA;
  max-width: 60ch;
}

body.dn .dn-body p { margin: 0 0 1.1em; }
body.dn .dn-body p:last-child { margin-bottom: 0; }
body.dn .dn-body strong { color: var(--dn-gold-hi); font-weight: 600; }

body.dn .dn-muted { color: var(--dn-muted); }

/* ------------------------------------------------------ chamfered plate */
.dn-plate {
  position: relative;
  background: linear-gradient(180deg, var(--dn-slate-hi), var(--dn-slate));
  border: 1px solid var(--dn-iron);
  box-shadow: var(--dn-shadow);
  padding: clamp(1.4rem, 1rem + 1.6vw, 2.4rem);
  clip-path: polygon(
    var(--dn-chamfer) 0, 100% 0, 100% calc(100% - var(--dn-chamfer)),
    calc(100% - var(--dn-chamfer)) 100%, 0 100%, 0 var(--dn-chamfer));
  transition: transform .25s ease, box-shadow .25s ease;
}
.dn-plate::after {
  /* hot top edge */
  content: "";
  position: absolute;
  left: var(--dn-chamfer); right: 0; top: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--dn-ember), rgba(242,118,46,0));
  opacity: .8;
}
.dn-plate--hot:hover {
  transform: translateY(-3px);
  box-shadow: 0 26px 50px -28px rgba(0,0,0,1), 0 0 0 1px rgba(242,118,46,.35);
}
.dn-plate--hot:hover::after { opacity: 1; box-shadow: 0 0 18px rgba(242,118,46,.75); }

/* ------------------------------------------------------------- buttons */
/* Two shapes for the same button: a raw <a class="dn-btn dn-btn--primary">
   inside HTML widgets, and Elementor's Button widget where the class lands on
   the widget wrapper (.dn-btn-primary) and the anchor is .elementor-button. */
body.dn .dn-btn,
body.dn .dn-btn-primary .elementor-button,
body.dn .dn-btn-ghost .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6em;
  font-family: var(--dn-display);
  font-weight: 600;
  font-size: .95rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: 1.05em 2.1em;
  border: 0;
  border-radius: 0;
  position: relative;
  overflow: hidden;
  clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px);
  transition: color .2s ease, transform .2s ease, box-shadow .25s ease;
}

body.dn .dn-btn--primary,
body.dn .dn-btn-primary .elementor-button {
  background: linear-gradient(180deg, #FF8C3D, var(--dn-ember) 42%, var(--dn-ember-lo));
  color: #1A0C04;
  box-shadow: 0 12px 30px -14px rgba(242,118,46,.85);
}
body.dn .dn-btn--primary:hover,
body.dn .dn-btn-primary .elementor-button:hover {
  color: #1A0C04;
  transform: translateY(-2px);
  box-shadow: 0 18px 38px -14px rgba(242,118,46,1);
}

body.dn .dn-btn--ghost,
body.dn .dn-btn-ghost .elementor-button {
  background: transparent;
  color: var(--dn-gold-hi);
  box-shadow: inset 0 0 0 1px var(--dn-iron-hi);
}
body.dn .dn-btn--ghost:hover,
body.dn .dn-btn-ghost .elementor-button:hover {
  color: var(--dn-obsidian);
  background: var(--dn-gold-hi);
  transform: translateY(-2px);
}

/* ember sweep on press-ready buttons */
body.dn .dn-btn::before,
body.dn .dn-btn-primary .elementor-button::before,
body.dn .dn-btn-ghost .elementor-button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%);
  transform: translateX(-120%);
}
body.dn .dn-btn:hover::before,
body.dn .dn-btn-primary .elementor-button:hover::before,
body.dn .dn-btn-ghost .elementor-button:hover::before { animation: dn-sweep .7s ease; }
@keyframes dn-sweep { to { transform: translateX(120%); } }

/* ------------------------------------------------- the crest (signature) */
.dn-crest { width: 100%; height: auto; display: block; overflow: visible; }
.dn-crest__runes {
  transform-origin: 256px 256px;
  animation: dn-turn 120s linear infinite;
}
@keyframes dn-turn { to { transform: rotate(360deg); } }

.dn-crest-wrap {
  position: relative;
  max-width: 460px;
  margin-inline: auto;
  filter: drop-shadow(0 30px 60px rgba(0,0,0,.8));
}
.dn-crest-wrap::before {
  content: "";
  position: absolute;
  inset: -14%;
  background: radial-gradient(circle at 50% 58%, rgba(242,118,46,.34), transparent 62%);
  z-index: 0;
}
.dn-crest-wrap > svg { position: relative; z-index: 1; }

/* section rule with a rune diamond */
.dn-rule { width: 120px; height: 28px; color: var(--dn-ember); display: block; }
.dn-rule--center { margin: 0 auto; }

/* ---------------------------------------------------------------- hero */
.dn-hero {
  position: relative;
  padding-block: clamp(3.5rem, 2rem + 7vw, 7.5rem) clamp(3rem, 2rem + 5vw, 6rem);
  overflow: hidden;
}
/* the horizon line — echoes the horizon inside the crest */
.dn-hero::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent, rgba(242,118,46,.15) 12%, var(--dn-ember) 50%, rgba(242,118,46,.15) 88%, transparent);
}
.dn-hero__title { margin-bottom: 1.1rem; }
.dn-hero__title .dn-hero__years { display: block; }
.dn-hero__actions { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 2rem; }

/* ------------------------------------------------------- stat strip */
.dn-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 1px;
  background: var(--dn-iron);
  border-block: 1px solid var(--dn-iron);
}
.dn-stat { background: var(--dn-obsidian); padding: 1.6rem 1.4rem; text-align: center; }
.dn-stat__num {
  display: block;
  font-family: var(--dn-display);
  font-weight: 700;
  font-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.6rem);
  line-height: 1;
  color: var(--dn-gold-hi);
  letter-spacing: -.02em;
}
.dn-stat__label {
  display: block;
  margin-top: .55rem;
  font-family: var(--dn-heraldic);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--dn-muted);
}

/* --------------------------------------------------- the charter panel */
/* The 2004 EverQuest guild-approval message, treated as the founding document */
.dn-charter {
  border: 1px solid var(--dn-iron);
  background:
    linear-gradient(180deg, rgba(27,36,52,.9), rgba(11,15,22,.9));
  padding: clamp(1.6rem, 1rem + 2vw, 3rem);
  clip-path: polygon(28px 0, 100% 0, 100% calc(100% - 28px), calc(100% - 28px) 100%, 0 100%, 0 28px);
  position: relative;
}
.dn-charter__stamp {
  font-family: var(--dn-heraldic);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--dn-ember);
  display: block;
  margin-bottom: 1.2rem;
}
.dn-charter__msg {
  font-family: var(--dn-body);
  font-size: var(--dn-step-1);
  line-height: 1.75;
  color: #E4E9F1;
  border-left: 2px solid var(--dn-ember);
  padding-left: clamp(1rem, .6rem + 1.2vw, 1.8rem);
  margin: 0;
}
.dn-charter__born {
  font-family: var(--dn-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: clamp(1.4rem, 1rem + 1.6vw, 2.1rem);
  color: var(--dn-gold-hi);
  margin: 1.6rem 0 0;
}

/* ------------------------------------------------------------- cards */
.dn-grid {
  display: grid;
  gap: clamp(1rem, .6rem + 1.4vw, 1.75rem);
}
.dn-grid--2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.dn-grid--3 { grid-template-columns: repeat(auto-fit, minmax(268px, 1fr)); }

.dn-card__title {
  font-family: var(--dn-display);
  font-weight: 600;
  text-transform: uppercase;
  font-size: var(--dn-step-1);
  letter-spacing: .01em;
  color: var(--dn-gold-hi);
  margin: 0 0 .35rem;
}
.dn-card__meta {
  font-family: var(--dn-heraldic);
  font-size: .72rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--dn-ember);
  margin: 0 0 1rem;
}
.dn-card p { margin: 0 0 .9em; }
.dn-card p:last-child { margin-bottom: 0; }

/* raid team card specifics */
.dn-team__rows { list-style: none; margin: 0 0 1.6rem; padding: 0; }
.dn-team__rows li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .6rem 0;
  border-bottom: 1px dashed var(--dn-iron);
  font-size: .95rem;
}
.dn-team__rows li:last-child { border-bottom: 0; }
.dn-team__rows dt, .dn-team__rows .k {
  font-family: var(--dn-heraldic);
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--dn-muted);
  white-space: nowrap;
  padding-top: .18em;
}
.dn-team__rows .v { color: var(--dn-parch); text-align: right; font-weight: 500; }

.dn-tag {
  display: inline-block;
  font-family: var(--dn-heraldic);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  padding: .38em .9em;
  color: var(--dn-ember-hi);
  box-shadow: inset 0 0 0 1px rgba(242,118,46,.45);
  clip-path: polygon(7px 0, 100% 0, 100% calc(100% - 7px), calc(100% - 7px) 100%, 0 100%, 0 7px);
}
.dn-tag--mythic { color: #C0AEF3; box-shadow: inset 0 0 0 1px rgba(123,91,214,.55); }

/* ------------------------------------------------- requirement checklist */
.dn-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: .85rem; }
.dn-checks li {
  position: relative;
  padding-left: 2.1rem;
  line-height: 1.6;
}
.dn-checks li::before {
  content: "";
  position: absolute;
  left: 0; top: .55em;
  width: 11px; height: 11px;
  background: var(--dn-ember);
  transform: rotate(45deg);
  box-shadow: 0 0 12px rgba(242,118,46,.65);
}

/* ------------------------------------------------------- policy blocks */
.dn-tenets { display: grid; gap: 1px; background: var(--dn-iron); border: 1px solid var(--dn-iron); }
.dn-tenet {
  background: linear-gradient(180deg, rgba(27,36,52,.65), rgba(11,15,22,.9));
  padding: clamp(1.3rem, .9rem + 1.3vw, 2rem);
  transition: background .25s ease;
}
.dn-tenet:hover { background: linear-gradient(180deg, rgba(37,48,68,.8), rgba(15,20,30,.95)); }
.dn-tenet__name {
  font-family: var(--dn-display);
  font-weight: 600;
  text-transform: uppercase;
  font-size: var(--dn-step-1);
  color: var(--dn-gold-hi);
  margin: 0 0 .5rem;
  display: flex;
  align-items: baseline;
  gap: .7rem;
}
.dn-tenet__name::before {
  content: "";
  flex: 0 0 auto;
  width: 9px; height: 9px;
  background: var(--dn-ember);
  transform: rotate(45deg);
}
.dn-tenet p { margin: 0; color: #BDC7D6; }
.dn-tenet ul { margin: .8rem 0 0; padding-left: 1.1rem; color: #BDC7D6; }
.dn-tenet li { margin-bottom: .35rem; }

.dn-signoff {
  font-family: var(--dn-heraldic);
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--dn-ember);
  font-size: .85rem;
  text-align: right;
  margin-top: 2rem;
}

/* ------------------------------------------------------- testimonials */
.dn-voice { text-align: center; }
.dn-voice__quote {
  font-size: var(--dn-step-1);
  line-height: 1.6;
  color: #DCE3EC;
  margin: 0 0 1.5rem;
}
.dn-voice__quote::before { content: "\201C"; color: var(--dn-ember); }
.dn-voice__quote::after { content: "\201D"; color: var(--dn-ember); }

.dn-voice__avatar {
  width: 92px; height: 92px;
  margin: 0 auto 1rem;
  position: relative;
  padding: 5px;
  background:
    conic-gradient(from 0deg, var(--dn-ember-lo), var(--dn-ember-hi), var(--dn-ember), var(--dn-ember-lo));
  clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
}
.dn-voice__avatar img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
}
.dn-voice__name {
  font-family: var(--dn-display);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--dn-gold-hi);
  font-size: 1.1rem;
}
.dn-voice__role {
  font-family: var(--dn-heraldic);
  font-size: .68rem;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--dn-muted);
}

/* ----------------------------------------------------------- CTA band */
.dn-cta {
  position: relative;
  text-align: center;
  padding: clamp(3rem, 2rem + 4vw, 5.5rem) clamp(1rem, .5rem + 2vw, 3rem);
  background:
    radial-gradient(700px 300px at 50% 120%, rgba(242,118,46,.28), transparent 70%),
    linear-gradient(180deg, var(--dn-slate), var(--dn-obsidian));
  border-top: 1px solid var(--dn-iron);
}
.dn-cta .dn-h2 { margin-bottom: 1rem; }
.dn-cta__actions { display: flex; flex-wrap: wrap; gap: .9rem; justify-content: center; margin-top: 2rem; }

/* --------------------------------------------------------- page header */
.dn-pagehead {
  padding-block: clamp(3rem, 2rem + 5vw, 6rem) clamp(2rem, 1.5rem + 3vw, 4rem);
  border-bottom: 1px solid var(--dn-iron);
  position: relative;
}
.dn-pagehead::after {
  content: "";
  position: absolute; left: 0; bottom: -1px; width: 160px; height: 2px;
  background: var(--dn-ember);
  box-shadow: 0 0 18px rgba(242,118,46,.8);
}

/* ------------------------------------------------------- legal / prose */
.dn-legal { max-width: 76ch; }
.dn-legal h2 {
  font-size: var(--dn-step-2);
  color: var(--dn-gold-hi);
  margin: 2.6rem 0 .9rem;
  padding-top: 1.6rem;
  border-top: 1px solid var(--dn-iron);
}
.dn-legal h2:first-of-type { border-top: 0; padding-top: 0; margin-top: 0; }
.dn-legal h3 {
  font-size: var(--dn-step-1);
  color: var(--dn-parch);
  margin: 1.8rem 0 .6rem;
}
.dn-legal p, .dn-legal li { color: #BDC7D6; }
.dn-legal ul { padding-left: 1.2rem; margin: 0 0 1.2em; }
.dn-legal li { margin-bottom: .45rem; }
.dn-legal__updated {
  font-family: var(--dn-heraldic);
  font-size: .74rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--dn-muted);
}

/* --------------------------------------------------- header / footer  */
/* Kadence header bar */
body.dn #masthead,
body.dn .site-header-wrap {
  background: rgba(11,15,22,.86);
  backdrop-filter: blur(9px);
  border-bottom: 1px solid var(--dn-iron);
}
body.dn .site-branding img,
body.dn .site-header-item .custom-logo { max-height: 62px; width: auto; }

body.dn .main-navigation .primary-menu-container > ul > li > a {
  font-family: var(--dn-display);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .84rem;
  color: var(--dn-parch);
}
body.dn .main-navigation .primary-menu-container > ul > li > a:hover { color: var(--dn-ember-hi); }
body.dn .main-navigation .primary-menu-container > ul > li.current-menu-item > a { color: var(--dn-ember); }

body.dn #colophon,
body.dn .site-footer { background: #080B11; border-top: 1px solid var(--dn-iron); }
body.dn .site-footer, body.dn .site-footer a { color: var(--dn-muted); }
body.dn .site-footer a:hover { color: var(--dn-ember-hi); }

/* ------------------------------------------------------------ utility */
.dn-section { padding-block: clamp(3rem, 2rem + 5vw, 6.5rem); }
.dn-section--tight { padding-block: clamp(2rem, 1.5rem + 3vw, 4rem); }
.dn-center { text-align: center; }
.dn-mt-1 { margin-top: 1rem; }
.dn-mt-2 { margin-top: 2rem; }
.dn-mt-3 { margin-top: 3rem; }
.dn-maxw { max-width: 62ch; }
.dn-maxw--center { max-width: 62ch; margin-inline: auto; }

/* ------------------------------------------------------------ mobile */
@media (max-width: 767px) {
  .dn-hero { text-align: center; }
  .dn-hero .dn-eyebrow { justify-content: center; }
  .dn-hero__actions { justify-content: center; }
  .dn-crest-wrap { max-width: 300px; margin-top: 2.5rem; }
  .dn-team__rows li { flex-direction: column; gap: .15rem; }
  .dn-team__rows .v { text-align: left; }
}

/* ------------------------------------------------- reduced motion */
@media (prefers-reduced-motion: reduce) {
  body.dn *, body.dn *::before, body.dn *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  .dn-crest__runes { animation: none; }
}

/* ======================================================================
   Elementor bindings
   Elementor containers paint their padding through custom properties, so we
   set the properties rather than fight the shorthand. Same trick for display:
   .e-con reads --display, which lets a flex container become a grid.
   ====================================================================== */

body.dn .elementor-widget-container > p:last-child { margin-bottom: 0; }
body.dn .elementor-widget:not(:last-child) { margin-block-end: 0; }

/* section rhythm */
body.dn .dn-section {
  --padding-block-start: clamp(3rem, 2rem + 5vw, 6.5rem);
  --padding-block-end: clamp(3rem, 2rem + 5vw, 6.5rem);
}
body.dn .dn-section--tight {
  --padding-block-start: 0px;
  --padding-block-end: 0px;
}
body.dn .dn-pagehead {
  --padding-block-start: clamp(3rem, 2rem + 5vw, 6rem);
  --padding-block-end: clamp(2rem, 1.5rem + 3vw, 4rem);
}
body.dn .dn-hero {
  --padding-block-start: clamp(3.5rem, 2rem + 7vw, 7.5rem);
  --padding-block-end: clamp(3rem, 2rem + 5vw, 6rem);
}
body.dn .dn-cta {
  --padding-block-start: clamp(3rem, 2rem + 4vw, 5.5rem);
  --padding-block-end: clamp(3rem, 2rem + 4vw, 5.5rem);
}

/* full-bleed sections keep their content on the same measure as boxed ones */
body.dn .dn-hero__grid,
body.dn .dn-cta > * {
  width: 100%;
  max-width: var(--dn-wrap, 1200px);
  margin-inline: auto;
}

/* hero: copy left, crest right, stacking under 900px */
body.dn .dn-hero__grid {
  --display: grid;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: center;
  gap: clamp(2rem, 1rem + 4vw, 4.5rem);
}
body.dn .dn-hero__copy,
body.dn .dn-hero__crest { --width: 100%; width: 100%; }

body.dn .dn-hero__actions,
body.dn .dn-cta__actions {
  --display: flex;
  --flex-direction: row;
  --flex-wrap: wrap;
  --gap: .9rem;
  --width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: .9rem;
  width: 100%;
}
body.dn .dn-cta__actions { --justify-content: center; justify-content: center; }
body.dn .dn-hero__actions { margin-top: 2rem; }

@media (max-width: 900px) {
  body.dn .dn-hero__grid { grid-template-columns: minmax(0, 1fr); }
  body.dn .dn-hero__crest { order: -1; }
}

/* text-editor widgets carrying a utility class */
body.dn .dn-lede.elementor-widget-text-editor,
body.dn .dn-lede .elementor-widget-container { font-size: inherit; }
body.dn .dn-maxw--center .elementor-widget-container { margin-inline: auto; }

/* the crest keeps its own scale inside an Elementor column */
body.dn .dn-hero__crest .elementor-widget-shortcode,
body.dn .dn-hero__crest .elementor-shortcode { display: block; }

/* ======================================================================
   Kadence global palette
   Kadence paints its own buttons, links and header from these custom
   properties. Remapping them here means the theme's default furniture
   already matches the brand before you touch the Customizer.
   ====================================================================== */
:root, body.dn {
  --global-palette1: #F2762E;   /* primary accent  */
  --global-palette2: #B62E15;   /* accent, pressed */
  --global-palette3: #F1F5FA;   /* strongest text  */
  --global-palette4: #D9DEE8;   /* body text       */
  --global-palette5: #8C97A8;   /* muted text      */
  --global-palette6: #2A3546;   /* borders         */
  --global-palette7: #131A26;   /* panel bg        */
  --global-palette8: #0B0F16;   /* page bg         */
  --global-palette9: #FFFFFF;

  --global-palette-highlight: #FFC96B;
  --global-palette-highlight-alt: #E0B267;
  --global-palette-highlight-alt2: #7B5BD6;

  --global-palette-btn: #1A0C04;
  --global-palette-btn-bg: #F2762E;
  --global-palette-btn-hover: #1A0C04;
  --global-palette-btn-bg-hover: #FFC96B;

  --global-content-width: 1200px;
  --global-content-narrow-width: 842px;
}
