/* Reusable components. */

/* Icons (sprite in index.html) */
.dn-icon { width: 10px; height: 10px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; }
.dn-icon--right { transform: rotate(-90deg); }
.dn-icon--chevron { width: 12px; height: 7px; stroke-width: 1.5; stroke-linecap: square; }

/* Button: filled by default, outlined variant exists in Figma (1:604) */
.dn-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: var(--control-height);
  padding: 3px var(--button-pad-x);
  border: var(--border-width) solid var(--button-primary);
  border-radius: var(--radius);
  background: var(--button-primary);
  color: var(--typography-primary);
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  cursor: pointer;
}
.dn-button--outlined { background: transparent; }
.dn-button--wide { padding-inline: 50px; }

/* Section heading */
.dn-heading {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h2);
  line-height: 0.85;
  text-transform: uppercase;
  letter-spacing: 0;
}
/* A heading that links to its listing page (home: News). Same look; underline on hover, ring on keyboard focus. */
.dn-heading__link { color: inherit; text-decoration: underline transparent; text-decoration-thickness: 0.06em; text-underline-offset: 0.12em; transition: text-decoration-color var(--transition); }
.dn-heading__link:hover, .dn-heading__link:focus-visible { text-decoration-color: currentColor; }

/* Form fields */
.dn-field {
  display: block;
  width: 100%;
  height: var(--control-height);
  padding: 16px;
  border: var(--border-width) solid var(--elements-lines);
  border-radius: var(--radius);
  background: var(--background-primary);
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 1.3;
  color: var(--typography-primary);
}
.dn-field::placeholder { color: var(--typography-quarternary); opacity: 1; }
.dn-field--area { height: 200px; resize: vertical; }

/* Sticker: SVG shape as background (colour variants), live Songer text (same size in EN / RU / EL) */
.dn-sticker {
  --dn-rot: 8.31deg;
  width: 254.1px;
  height: 66.4px;
  /* the painted band of the artwork is x 6.6-247.5, y 4.7-39.8 (254.1 x 66.4 with the tail): the text is centred in it */
  display: flex; align-items: center; justify-content: center;
  padding: 7.2px 6.6px 26.6px;   /* +2.5px on top: caps sit above the centre of the line box */
  box-sizing: border-box;
  background: var(--dn-sticker-bg) no-repeat 0 0 / 254.1px 66.4px;
  transform: rotate(var(--dn-rot));
  font-family: var(--font-sticker);
  font-size: 25px;
  line-height: 35.1px;
  letter-spacing: -0.02em;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--typography-primary);
}
.dn-sticker--green { --dn-sticker-bg: url("../svg/stickers/g30.svg"); }
.dn-sticker--pink  { --dn-sticker-bg: url("../svg/stickers/g31.svg"); }

/* Vertical slide indicator: bar, rotated number, dots */
.dn-indicator {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 66px;
  color: var(--typography-primary);
}
.dn-indicator__bar { width: 6px; height: 80px; margin-bottom: 25px; background: currentColor; }
.dn-indicator__num {
  display: flex; align-items: center; justify-content: center;
  width: 62px; height: 45px; margin-bottom: 49px;
}
.dn-indicator__num span {
  display: block; width: 45px; height: 62px;
  transform: rotate(90deg);
  font-family: var(--font-display);
  font-weight: 700; font-size: 80px; line-height: 62px; text-align: center;
}
.dn-indicator__dots { width: 10px; height: 86px; }
.dn-indicator--light { color: var(--typography-secondary); }

/* Tags (news categories): small outlined labels that link to the filtered news list; the chosen tag is filled */
.dn-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.dn-tag {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 12px;
  border: var(--border-width) solid var(--elements-lines);
  border-radius: var(--radius);
  color: var(--typography-primary);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
