/* ==========================================================================
   plinko-casino4.shop — шаблон «gabion»
   Габион: сетчатая корзина, набитая камнем разного калибра.
   Каркас — двойная проволочная обвязка, содержимое — камень, фон — известь.
   Префикс классов: gbn-
   ========================================================================== */

:root {
  --gbn-mesh:      #b9bcbb;
  --gbn-mesh-dark: #8e9291;
  --gbn-stone:     #6d6558;
  --gbn-stone-dk:  #4a443a;
  --gbn-lime:      #eceae4;
  --gbn-lime-2:    #f6f4ef;
  --gbn-ink:       #2f2b25;
  --gbn-ink-soft:  #555047;
  --gbn-wire:      #7f8382;
  --gbn-hot:       #8a5a2b;
  --gbn-cell:      22px;
  --gbn-gap:       clamp(18px, 3vw, 34px);
  --gbn-rad:       3px;
}

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

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

body {
  margin: 0;
  background-color: var(--gbn-lime);
  background-image:
    repeating-linear-gradient(90deg,  rgba(143,147,146,.16) 0 1px, transparent 1px var(--gbn-cell)),
    repeating-linear-gradient(0deg,   rgba(143,147,146,.10) 0 1px, transparent 1px var(--gbn-cell));
  color: var(--gbn-ink);
  font-family: "Merriweather Sans", "Segoe UI", Tahoma, sans-serif;
  font-size: 17px;
  line-height: 1.72;
  font-weight: 400;
}

.gbn-wrap {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 clamp(14px, 3vw, 30px);
}

a { color: var(--gbn-hot); }
p { margin: 0 0 1.05em; }

/* --- проволочная сетка: универсальная обвязка ----------------------------- */

.gbn-basket {
  position: relative;
  margin: var(--gbn-gap) 0;
  padding: clamp(20px, 3.2vw, 38px) clamp(16px, 3vw, 34px);
  background: var(--gbn-lime-2);
  border: 2px solid var(--gbn-wire);
  border-radius: var(--gbn-rad);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7),
              inset 0 0 0 7px rgba(185, 188, 187, .30),
              inset 0 0 0 8px var(--gbn-mesh-dark);
}

.gbn-basket::before {
  content: "";
  position: absolute;
  inset: 8px;
  pointer-events: none;
  background-image:
    repeating-linear-gradient(45deg,  rgba(126,130,129,.20) 0 1px, transparent 1px 17px),
    repeating-linear-gradient(-45deg, rgba(126,130,129,.20) 0 1px, transparent 1px 17px);
}

/* скобы обвязки по углам корзины */
.gbn-basket::after {
  content: "";
  position: absolute;
  top: -5px; left: 26px; right: 26px;
  height: 9px;
  background:
    repeating-linear-gradient(90deg, var(--gbn-mesh-dark) 0 10px, transparent 10px 40px);
  opacity: .8;
}

.gbn-basket > * { position: relative; z-index: 1; }

/* --- шапка ---------------------------------------------------------------- */

.gbn-top {
  background: var(--gbn-stone-dk);
  color: #ddd7c9;
  border-bottom: 6px solid var(--gbn-mesh-dark);
}

.gbn-top .gbn-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 20px;
  padding-top: 13px;
  padding-bottom: 13px;
}

.gbn-logo {
  font-family: "Rubik Broken Fax", "Merriweather Sans", sans-serif;
  font-size: 26px;
  letter-spacing: .04em;
  color: #f3efe4;
  line-height: 1;
}

.gbn-logo span { color: var(--gbn-mesh); }

.gbn-top-note {
  font-size: 13.5px;
  letter-spacing: .02em;
  color: #b3ab99;
  margin-left: auto;
}

/* --- hero ----------------------------------------------------------------- */

.gbn-hero {
  position: relative;
  overflow: hidden;
  background: var(--gbn-stone);
  background-image:
    linear-gradient(160deg, rgba(74, 68, 58, .92), rgba(109, 101, 88, .78)),
    repeating-linear-gradient(60deg,  rgba(236, 234, 228, .14) 0 1px, transparent 1px 26px),
    repeating-linear-gradient(-60deg, rgba(236, 234, 228, .14) 0 1px, transparent 1px 26px);
  color: #f2eee4;
  padding: clamp(28px, 5vw, 62px) 0 clamp(24px, 4vw, 46px);
  border-bottom: 10px double var(--gbn-mesh-dark);
}

.gbn-hero h1 {
  font-family: "Rubik Broken Fax", "Merriweather Sans", sans-serif;
  font-weight: 400;
  font-size: clamp(28px, 4.6vw, 47px);
  line-height: 1.16;
  letter-spacing: .01em;
  margin: 0 0 18px;
  color: #fbf8f1;
  max-width: 19ch;
}

.gbn-hero h1 em {
  font-style: normal;
  color: var(--gbn-mesh);
}

.gbn-lead {
  max-width: 62ch;
  font-size: clamp(16px, 1.9vw, 19px);
  color: #e4ded0;
}

.gbn-hero-stones {
  position: absolute;
  right: -40px;
  top: 0;
  bottom: 0;
  width: 320px;
  opacity: .5;
  pointer-events: none;
}

/* --- KPI: ячейки сетки ---------------------------------------------------- */

.gbn-cells {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  margin: 26px 0 24px;
  border: 2px solid var(--gbn-mesh);
  border-radius: var(--gbn-rad);
  background: rgba(30, 27, 23, .34);
}

.gbn-cells div {
  padding: 15px 13px;
  border-right: 1px dashed rgba(185, 188, 187, .55);
}

.gbn-cells div:last-child { border-right: 0; }

.gbn-cells dt,
.gbn-cells .gbn-k {
  display: block;
  font-size: 12px;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #b6ae9c;
  margin-bottom: 6px;
}

.gbn-cells .gbn-v {
  display: block;
  font-family: "Rubik Broken Fax", "Merriweather Sans", sans-serif;
  font-size: clamp(19px, 2.4vw, 26px);
  line-height: 1.1;
  color: #fdf9f0;
}

/* --- кнопки --------------------------------------------------------------- */

.gbn-cta {
  display: inline-block;
  margin-top: 8px;
  padding: 15px 30px;
  font-family: "Rubik Broken Fax", "Merriweather Sans", sans-serif;
  font-size: 18px;
  letter-spacing: .03em;
  text-decoration: none;
  color: #211e19;
  background: var(--gbn-mesh);
  border: 2px solid #f0ede4;
  border-radius: var(--gbn-rad);
  box-shadow: 5px 5px 0 rgba(33, 30, 25, .5);
}

.gbn-cta:hover { background: #cfd2d1; }

.gbn-cta--stone {
  color: #f4f1e8;
  background: var(--gbn-stone);
  border-color: var(--gbn-stone-dk);
  box-shadow: 5px 5px 0 rgba(143, 147, 146, .6);
}

.gbn-cta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 22px;
  margin: 22px 0 4px;
}

.gbn-cta-hint {
  font-size: 14.5px;
  color: var(--gbn-ink-soft);
  max-width: 44ch;
}

/* --- заголовки ------------------------------------------------------------ */

h2 {
  font-family: "Rubik Broken Fax", "Merriweather Sans", sans-serif;
  font-weight: 400;
  font-size: clamp(22px, 3.1vw, 32px);
  line-height: 1.22;
  margin: 0 0 18px;
  padding-left: 46px;
  position: relative;
  color: var(--gbn-stone-dk);
}

/* камень-маркер у каждой H2 */
h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: .18em;
  width: 30px;
  height: 30px;
  background: var(--gbn-stone);
  border: 2px solid var(--gbn-mesh-dark);
  border-radius: 46% 54% 38% 62% / 55% 42% 58% 45%;
}

h3 {
  font-family: "Merriweather Sans", sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 2.1vw, 20px);
  margin: 26px 0 10px;
  color: var(--gbn-stone-dk);
  border-left: 5px solid var(--gbn-mesh-dark);
  padding-left: 12px;
}

/* --- акценты (без <b> и <strong>) ----------------------------------------- */

.gbn-num {
  font-family: "Rubik Broken Fax", "Merriweather Sans", sans-serif;
  color: var(--gbn-hot);
  letter-spacing: .01em;
}

.gbn-key { color: var(--gbn-stone-dk); border-bottom: 2px solid var(--gbn-mesh); }

.gbn-tag {
  display: inline-block;
  padding: 1px 8px;
  margin: 0 2px 4px 0;
  font-size: 13.5px;
  background: var(--gbn-mesh);
  color: #23201b;
  border-radius: var(--gbn-rad);
}

/* --- таблицы -------------------------------------------------------------- */

.gbn-scroll {
  overflow-x: auto;
  margin: 18px 0 8px;
  border: 1px solid var(--gbn-mesh-dark);
  border-radius: var(--gbn-rad);
}

table {
  width: 100%;
  min-width: 540px;
  border-collapse: collapse;
  font-size: 15.5px;
  background: #fbfaf6;
}

caption {
  caption-side: top;
  text-align: left;
  padding: 10px 12px;
  font-size: 13.5px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #6b6558;
  background: var(--gbn-mesh);
}

th, td {
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid #ddd9cf;
  border-right: 1px dotted #cfcbc1;
  vertical-align: top;
}

th:last-child, td:last-child { border-right: 0; }

thead th {
  background: #e3e1da;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .02em;
  color: var(--gbn-stone-dk);
  border-bottom: 2px solid var(--gbn-mesh-dark);
}

tbody tr:nth-child(even) td { background: #f2f0e9; }

.gbn-t-num { white-space: nowrap; font-family: "Rubik Broken Fax", "Merriweather Sans", sans-serif; }

/* --- список-насыпь (камни разного калибра) -------------------------------- */

.gbn-rubble {
  list-style: none;
  margin: 14px 0 6px;
  padding: 0;
}

.gbn-rubble li {
  position: relative;
  padding: 0 0 0 30px;
  margin-bottom: 11px;
}

.gbn-rubble li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: .55em;
  width: 13px;
  height: 13px;
  background: var(--gbn-stone);
  border-radius: 58% 42% 47% 53% / 44% 56% 44% 56%;
}

.gbn-rubble li:nth-child(2n)::before { width: 9px;  height: 9px;  top: .7em; background: var(--gbn-mesh-dark); }
.gbn-rubble li:nth-child(3n)::before { width: 16px; height: 16px; top: .45em; border-radius: 40% 60% 62% 38% / 52% 40% 60% 48%; }

/* --- ступени клуба -------------------------------------------------------- */

.gbn-tiers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  margin: 18px 0 6px;
}

.gbn-tier {
  padding: 14px 13px;
  background: #f3f1ea;
  border: 1px solid var(--gbn-mesh-dark);
  border-top: 6px solid var(--gbn-stone);
  border-radius: var(--gbn-rad);
}

.gbn-tier b, .gbn-tier .gbn-tier-n {
  display: block;
  font-family: "Rubik Broken Fax", "Merriweather Sans", sans-serif;
  font-size: 19px;
  color: var(--gbn-stone-dk);
  margin-bottom: 4px;
}

.gbn-tier .gbn-tier-c {
  display: block;
  font-size: 14px;
  color: var(--gbn-ink-soft);
}

.gbn-tier:nth-child(2) { border-top-color: #7d7466; }
.gbn-tier:nth-child(3) { border-top-color: #8c8272; }
.gbn-tier:nth-child(4) { border-top-color: #9b917f; }
.gbn-tier:nth-child(5) { border-top-color: var(--gbn-mesh-dark); }

/* --- схема плинко --------------------------------------------------------- */

.gbn-board {
  display: flex;
  justify-content: center;
  margin: 20px 0 10px;
}

.gbn-board svg { width: 100%; max-width: 460px; height: auto; }

.gbn-risk {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
  margin: 18px 0 8px;
}

.gbn-risk div {
  padding: 15px 14px;
  background: #f4f2ec;
  border: 2px solid var(--gbn-mesh);
  border-left: 8px solid var(--gbn-stone);
  border-radius: var(--gbn-rad);
  font-size: 15.5px;
}

.gbn-risk div:nth-child(2) { border-left-color: #8c8272; }
.gbn-risk div:nth-child(3) { border-left-color: var(--gbn-hot); }

.gbn-risk h4 {
  margin: 0 0 6px;
  font-family: "Rubik Broken Fax", "Merriweather Sans", sans-serif;
  font-weight: 400;
  font-size: 18px;
  color: var(--gbn-stone-dk);
}

/* --- отзыв ---------------------------------------------------------------- */

.gbn-voice {
  margin: 22px 0 6px;
  padding: 18px 20px 18px 24px;
  background: #efece4;
  border-left: 10px solid var(--gbn-mesh-dark);
  border-radius: var(--gbn-rad);
  font-size: 16px;
}

.gbn-voice p { margin-bottom: .6em; }

.gbn-voice cite {
  font-style: normal;
  font-size: 14px;
  color: var(--gbn-ink-soft);
  letter-spacing: .03em;
}

/* --- FAQ ------------------------------------------------------------------ */

details {
  margin-bottom: 9px;
  background: #f5f3ed;
  border: 1px solid var(--gbn-mesh-dark);
  border-radius: var(--gbn-rad);
}

summary {
  cursor: pointer;
  padding: 13px 16px;
  font-size: 16px;
  color: var(--gbn-stone-dk);
  list-style: none;
  position: relative;
  padding-left: 42px;
}

summary::-webkit-details-marker { display: none; }

summary::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 1.05em;
  width: 14px;
  height: 14px;
  background: var(--gbn-stone);
  border-radius: 55% 45% 38% 62% / 48% 58% 42% 52%;
}

details[open] summary { background: #e7e4db; }
details[open] summary::before { background: var(--gbn-hot); }

details > p {
  margin: 0;
  padding: 2px 18px 16px 42px;
  font-size: 15.5px;
  color: var(--gbn-ink-soft);
}

/* --- источники ------------------------------------------------------------ */

.gbn-source {
  background: #e8e6de;
  border: 2px dashed var(--gbn-mesh-dark);
}

.gbn-source h3 { border-left-color: var(--gbn-hot); margin-top: 0; }

.gbn-source ul { padding-left: 0; }

/* --- подвал --------------------------------------------------------------- */

.gbn-foot {
  margin-top: 40px;
  padding: 30px 0 38px;
  background: var(--gbn-stone-dk);
  color: #c8c1b1;
  font-size: 14.5px;
  border-top: 10px double var(--gbn-mesh-dark);
}

.gbn-foot p { margin-bottom: .7em; }
.gbn-foot .gbn-legal { color: #ddd6c6; }
.gbn-foot .gbn-age {
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid rgba(185, 188, 187, .35);
  letter-spacing: .02em;
  color: #a8a190;
}

/* --- мобильная ------------------------------------------------------------ */

@media (max-width: 640px) {
  body { font-size: 16px; line-height: 1.68; }

  .gbn-top .gbn-wrap { padding-top: 10px; padding-bottom: 10px; }
  .gbn-top-note { margin-left: 0; width: 100%; font-size: 12.5px; }

  .gbn-hero { padding-top: 24px; }
  .gbn-hero h1 { max-width: none; }
  .gbn-hero-stones { display: none; }

  .gbn-cells { grid-template-columns: repeat(2, 1fr); }
  .gbn-cells div { border-right: 1px dashed rgba(185, 188, 187, .55); border-bottom: 1px dashed rgba(185, 188, 187, .4); }
  .gbn-cells div:nth-child(2n) { border-right: 0; }
  .gbn-cells div:last-child { grid-column: 1 / -1; border-bottom: 0; }

  h2 { padding-left: 36px; }
  h2::before { width: 23px; height: 23px; }

  .gbn-basket { padding-left: 14px; padding-right: 14px; }
  .gbn-basket::after { left: 14px; right: 14px; }

  .gbn-cta { width: 100%; text-align: center; padding-left: 12px; padding-right: 12px; }
  .gbn-cta-row { gap: 12px; }

  summary { padding-left: 36px; font-size: 15.5px; }
  summary::before { left: 13px; }
  details > p { padding-left: 36px; padding-right: 14px; }

  .gbn-voice { padding-left: 16px; border-left-width: 7px; }
}
