/* ===========================================================
   A.D. CLUB — Каталог партнерів
   Токени 1:1 з лендінгу «Партнерам»
   =========================================================== */

.adp-root{
  --adp-bg:        rgb(25, 21, 20);
  --adp-bg-soft:   rgb(33, 28, 26);
  --adp-bg-card:   rgb(38, 32, 29);
  --adp-accent:    rgb(181, 131, 82);
  --adp-accent-2:  rgb(212, 168, 116);
  --adp-text:      #ece7e1;
  --adp-muted:     #a89f95;
  --adp-line:      rgba(181, 131, 82, .22);
  --adp-line-soft: rgba(236, 231, 225, .08);
  --adp-maxw:      1120px;
  --adp-radius:    18px;
  --adp-radius-sm: 12px;
}


.adp-root *{ margin:0; padding:0; box-sizing:border-box; }


.adp-root [hidden]{ display:none !important; }


.adp-root{ background:var(--adp-bg); }


.adp-root{
  font-family:'Raleway', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background:var(--adp-bg);
  color:var(--adp-text);
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}


.adp-root a{ color:inherit; }


.adp-root .adp-wrap{
  max-width:var(--adp-maxw);
  margin:0 auto;
  padding:0 20px;
}


.adp-root .adp-sr-only{
  position:absolute;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}


.adp-root .adp-skip-link{
  position:absolute;
  top:-60px;
  left:16px;
  z-index:200;
  background:var(--adp-accent-2);
  color:#1a1513;
  font-weight:700;
  font-size:14px;
  padding:12px 20px;
  border-radius:8px;
  transition:top .2s ease;
}

.adp-root .adp-skip-link:focus{
  top:16px;
  outline:2px solid var(--adp-text);
  outline-offset:2px;
}


.adp-root .adp-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--adp-accent-2);
  margin-bottom:14px;
}

.adp-root .adp-eyebrow::before{
  content:"";
  width:28px; height:1px;
  background:var(--adp-accent);
  display:inline-block;
}


/* ===========================================================
   HEADER
   =========================================================== */
.adp-root .adp-site-header{
  position:relative;
  padding:64px 0 40px;
  overflow:hidden;
}

.adp-root .adp-site-header::before{
  content:"";
  position:absolute;
  top:-40%; left:50%;
  transform:translateX(-50%);
  width:900px; height:600px;
  background:radial-gradient(circle, rgba(181,131,82,.16) 0%, rgba(181,131,82,0) 62%);
  pointer-events:none;
}

.adp-root .adp-site-header .adp-wrap{ position:relative; }

.adp-root .adp-site-title{
  font-size:clamp(28px, 5vw, 44px);
  font-weight:800;
  line-height:1.12;
  letter-spacing:-.02em;
  color:#fff;
  margin-bottom:12px;
}

.adp-root .adp-site-subtitle{
  font-size:clamp(15px, 2vw, 18px);
  color:var(--adp-muted);
  max-width:640px;
}


/* ===========================================================
   FILTERS BAR (sticky)
   =========================================================== */
.adp-root .adp-filters-bar{
  position:sticky;
  top:var(--adp-sticky-top, 0px);
  z-index:20;
  background:rgba(25,21,20,.92);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--adp-line-soft);
  padding:16px 0;
}

.adp-root .adp-filters-bar__inner{
  display:flex;
  flex-direction:column;
  gap:14px;
}


.adp-root .adp-field{ position:relative; }

.adp-root .adp-field--search{ display:flex; align-items:center; }

.adp-root .adp-field__icon{
  position:absolute;
  left:16px;
  color:var(--adp-muted);
  pointer-events:none;
}

.adp-root .adp-field__input{
  width:100%;
  font-family:inherit;
  font-size:15px;
  color:var(--adp-text);
  background:var(--adp-bg-card);
  border:1px solid var(--adp-line-soft);
  border-radius:50px;
  padding:13px 18px 13px 44px;
  transition:border-color .2s ease;
}

.adp-root .adp-field__input::placeholder{ color:var(--adp-muted); }

.adp-root .adp-field__input:focus{
  outline:none;
  border-color:var(--adp-accent);
  box-shadow:0 0 0 3px rgba(181,131,82,.35);
}

.adp-root .adp-field__input::-webkit-search-cancel-button{ filter:invert(1) opacity(.6); }


.adp-root .adp-field__select{
  width:100%;
  font-family:inherit;
  font-size:15px;
  color:var(--adp-text);
  background:var(--adp-bg-card) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a89f95' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") no-repeat right 16px center;
  border:1px solid var(--adp-line-soft);
  border-radius:50px;
  padding:13px 42px 13px 18px;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  transition:border-color .2s ease;
}

.adp-root .adp-field__select:focus{
  outline:none;
  border-color:var(--adp-accent);
  box-shadow:0 0 0 3px rgba(181,131,82,.35);
}


.adp-root .adp-chips{
  display:flex;
  flex-wrap:nowrap;
  gap:10px;
  overflow-x:auto;
  padding-bottom:2px;
  scrollbar-width:thin;
}

.adp-root .adp-chips::-webkit-scrollbar{ height:4px; }

.adp-root .adp-chips::-webkit-scrollbar-thumb{ background:var(--adp-line); border-radius:4px; }


.adp-root .adp-chip{
  flex:0 0 auto;
  font-family:inherit;
  font-size:14px;
  font-weight:500;
  min-height:44px;
  color:var(--adp-text);
  background:rgba(181,131,82,.04);
  border:1px solid var(--adp-line);
  border-radius:50px;
  padding:13px 18px;
  cursor:pointer;
  white-space:nowrap;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}

.adp-root .adp-chip:focus-visible{ outline:2px solid var(--adp-accent-2); outline-offset:2px; }

.adp-root .adp-chip:hover{ background:rgba(181,131,82,.14); }

.adp-root .adp-chip--active{
  background:linear-gradient(135deg, var(--adp-accent) 0%, var(--adp-accent-2) 100%);
  color:#1a1513;
  font-weight:700;
  border-color:transparent;
}

.adp-root .adp-chip--active:hover{ background:linear-gradient(135deg, var(--adp-accent-2) 0%, var(--adp-accent) 100%); }


.adp-root .adp-results-count{
  font-size:13px;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--adp-muted);
}


/* ===========================================================
   MAIN / GRID
   =========================================================== */
.adp-root .adp-main-content{ padding:36px 20px 80px; min-height:40vh; }


.adp-root .adp-cards-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}


.adp-root .adp-partner-card{
  display:flex;
  flex-direction:column;
  gap:12px;
  background:var(--adp-bg-card);
  border:1px solid var(--adp-line-soft);
  border-radius:var(--adp-radius);
  padding:26px;
  cursor:pointer;
  text-align:left;
  transition:border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}

.adp-root .adp-partner-card:hover, .adp-root .adp-partner-card:focus-visible{
  border-color:var(--adp-line);
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(0,0,0,.28);
}

.adp-root .adp-partner-card:focus-visible{ outline:2px solid var(--adp-accent); outline-offset:2px; }


.adp-root .adp-partner-card__top{
  display:flex;
  align-items:flex-start;
  gap:12px;
}

.adp-root .adp-tag{
  display:inline-flex;
  align-items:center;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--adp-accent-2);
  background:rgba(181,131,82,.10);
  border:1px solid var(--adp-line);
  border-radius:50px;
  padding:5px 12px;
}

.adp-root .adp-partner-card__name{
  font-size:19px;
  font-weight:700;
  color:#fff;
  line-height:1.3;
}

.adp-root .adp-partner-card__city{
  font-size:13px;
  color:var(--adp-muted);
  font-weight:500;
}

.adp-root .adp-partner-card__desc{
  font-size:14.5px;
  color:var(--adp-muted);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  flex-grow:1;
}

.adp-root .adp-partner-card__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.adp-root .adp-partner-card__cta{
  font-size:13px;
  font-weight:700;
  color:var(--adp-accent-2);
  white-space:nowrap;
}

.adp-root .adp-badge{
  font-size:13px;
  font-weight:700;
  color:#1a1513;
  background:linear-gradient(135deg, var(--adp-accent) 0%, var(--adp-accent-2) 100%);
  border-radius:50px;
  padding:6px 16px;
}


/* ===========================================================
   SKELETON / LOADING
   =========================================================== */
.adp-root .adp-skeleton-card{
  height:230px;
  border-radius:var(--adp-radius);
  background:linear-gradient(100deg, var(--adp-bg-card) 30%, var(--adp-bg-soft) 50%, var(--adp-bg-card) 70%);
  background-size:300% 100%;
  animation:adp-shimmer 1.4s ease-in-out infinite;
  border:1px solid var(--adp-line-soft);
}

@keyframes adp-shimmer{
  0%{ background-position:120% 0; }
  100%{ background-position:-20% 0; }
}

@media (prefers-reduced-motion: reduce){
  .adp-root .adp-skeleton-card{ animation:none; }

  .adp-root *, .adp-root *::before, .adp-root *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }

  .adp-root .adp-partner-card:hover, .adp-root .adp-partner-card:focus-visible{ transform:none; }

  .adp-root .adp-btn--primary:hover{ transform:none; }}


/* ===========================================================
   STATE MESSAGES (empty / error / config-missing)
   =========================================================== */
.adp-root .adp-state-message{
  text-align:center;
  max-width:480px;
  margin:60px auto;
  padding:40px 28px;
  background:var(--adp-bg-card);
  border:1px solid var(--adp-line-soft);
  border-radius:var(--adp-radius);
}

.adp-root .adp-state-message__title{
  font-size:19px;
  font-weight:700;
  color:#fff;
  margin-bottom:10px;
}

.adp-root .adp-state-message__text{
  font-size:15px;
  color:var(--adp-muted);
  margin-bottom:20px;
}

.adp-root .adp-state-message__text code{
  background:rgba(181,131,82,.12);
  color:var(--adp-accent-2);
  padding:2px 6px;
  border-radius:6px;
  font-size:13px;
}

.adp-root .adp-state-message .adp-btn{ margin:0 auto; }


/* ===========================================================
   BUTTONS
   =========================================================== */
.adp-root .adp-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:inherit;
  font-size:15px;
  font-weight:700;
  letter-spacing:.01em;
  padding:14px 30px;
  border-radius:60px;
  cursor:pointer;
  border:none;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.adp-root .adp-btn--primary{
  background:linear-gradient(135deg, var(--adp-accent) 0%, var(--adp-accent-2) 100%);
  color:#1a1513;
  box-shadow:0 14px 34px rgba(181,131,82,.22);
}

.adp-root .adp-btn--primary:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(181,131,82,.34);
}

.adp-root .adp-btn--primary:focus-visible{ outline:2px solid var(--adp-text); outline-offset:3px; }


/* ===========================================================
   FOOTER
   =========================================================== */
.adp-root .adp-site-footer{
  border-top:1px solid var(--adp-line-soft);
  padding:28px 0;
}

.adp-root .adp-site-footer p{
  font-size:13px;
  color:var(--adp-muted);
  text-align:center;
}


/* ===========================================================
   MODAL
   =========================================================== */
.adp-root .adp-modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(12,10,9,.72);
  backdrop-filter:blur(4px);
  display:flex;
  align-items:flex-end;
  justify-content:center;
  z-index:100000;
  padding:0;
  animation:adp-fadeIn .2s ease;
}

@media (min-width: 700px){
  .adp-root .adp-modal-overlay{ align-items:center; padding:24px; }}

@keyframes adp-fadeIn{ from{ opacity:0; } to{ opacity:1; } }


.adp-root .adp-modal{
  position:relative;
  width:100%;
  max-width:620px;
  max-height:90vh;
  overflow-y:auto;
  background:var(--adp-bg-card);
  border:1px solid var(--adp-line);
  border-radius:var(--adp-radius) var(--adp-radius) 0 0;
  padding:36px 26px 32px;
  animation:adp-slideUp .25s ease;
}

@media (min-width: 700px){
  .adp-root .adp-modal{ border-radius:var(--adp-radius); padding:44px 40px 40px; }}

@keyframes adp-slideUp{ from{ transform:translateY(24px); opacity:0; } to{ transform:translateY(0); opacity:1; } }


.adp-root .adp-modal__close{
  position:absolute;
  top:14px; right:14px;
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:rgba(236,231,225,.06);
  border:1px solid var(--adp-line-soft);
  color:var(--adp-text);
  cursor:pointer;
  transition:background .2s ease;
}

.adp-root .adp-modal__close:hover{ background:rgba(236,231,225,.12); }

.adp-root .adp-modal__close:focus-visible{ outline:2px solid var(--adp-accent); outline-offset:2px; }


.adp-root .adp-modal-title-row{ display:flex; align-items:flex-start; gap:14px; margin-bottom:8px; padding-right:34px; }

.adp-root .adp-modal__name{
  font-size:24px;
  font-weight:800;
  color:#fff;
  line-height:1.25;
}

.adp-root .adp-modal-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-bottom:20px;
}

.adp-root .adp-modal-meta__item{
  font-size:13px;
  font-weight:500;
  color:var(--adp-muted);
}

.adp-root .adp-modal__desc{
  font-size:15.5px;
  color:var(--adp-text);
  margin-bottom:26px;
}


.adp-root .adp-modal-section-label{
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--adp-accent-2);
  margin-bottom:14px;
}


.adp-root .adp-offer-list{ list-style:none; display:flex; flex-direction:column; gap:14px; margin-bottom:24px; }

.adp-root .adp-offer-item{
  background:var(--adp-bg-soft);
  border:1px solid var(--adp-line-soft);
  border-radius:var(--adp-radius-sm);
  padding:16px 18px;
}

.adp-root .adp-offer-benefit{
  font-size:15px;
  font-weight:700;
  color:var(--adp-accent-2);
  margin-bottom:6px;
}

.adp-root .adp-offer-condition{
  font-size:13.5px;
  color:var(--adp-muted);
}

.adp-root .adp-offer-code{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(181,131,82,.10);
  border:1px dashed var(--adp-line);
  border-radius:8px;
  padding:6px 6px 6px 14px;
  margin:8px 0;
}

.adp-root .adp-offer-code code{
  font-family:'SF Mono', 'Menlo', monospace;
  font-size:14px;
  font-weight:700;
  color:var(--adp-text);
  letter-spacing:.03em;
}

.adp-root .adp-copy-btn{
  font-family:inherit;
  font-size:12.5px;
  font-weight:700;
  min-height:40px;
  color:#1a1513;
  background:var(--adp-accent);
  border:none;
  border-radius:6px;
  padding:10px 14px;
  cursor:pointer;
  transition:background .2s ease;
  white-space:nowrap;
}

.adp-root .adp-copy-btn:hover{ background:var(--adp-accent-2); }

.adp-root .adp-copy-btn:focus-visible{ outline:2px solid var(--adp-accent-2); outline-offset:2px; }

.adp-root .adp-copy-btn.adp-is-copied{ background:#7fae86; color:#12200f; }


.adp-root .adp-activation-row{
  font-size:14.5px;
  color:var(--adp-muted);
  margin-bottom:28px;
}

.adp-root .adp-activation-row strong{ color:var(--adp-text); font-weight:600; }


.adp-root .adp-modal .adp-btn{ width:100%; }


/* ===========================================================
   RESPONSIVE — TABLET / DESKTOP
   =========================================================== */
@media (min-width: 700px){
  .adp-root .adp-cards-grid{ grid-template-columns:repeat(2, 1fr); }

  .adp-root .adp-filters-bar__inner{ flex-direction:row; align-items:center; flex-wrap:wrap; }

  .adp-root .adp-field--search{ flex:1 1 240px; }

  .adp-root .adp-field--city{ flex:0 0 200px; }

  .adp-root .adp-chips{ flex:1 1 100%; order:3; }

  .adp-root .adp-results-count{ order:4; margin-left:auto; }}


@media (min-width: 980px){
  .adp-root .adp-cards-grid{ grid-template-columns:repeat(3, 1fr); }

  .adp-root .adp-main-content{ padding:44px 20px 96px; }

  .adp-root .adp-field--search{ flex:1 1 320px; }}

/* ===========================================================
   Клей для WordPress — дописано tools/build-plugin.mjs.
   Не редагуйте цей файл: правте GLUE_CSS у tools/build-plugin.mjs.
   Йде останнім, щоб вигравати при рівній специфічності.
   =========================================================== */

.adp-root{
  box-sizing:border-box;
  position:relative;      /* якір для .adp-skip-link, див. нижче */
  font-size:16px;         /* теми часто ставлять 18px на body */
  --adp-sticky-top:0px;   /* перевизначається інлайном з шорткоду */
}

.adp-root a,
.adp-root a:hover,
.adp-root a:focus{ text-decoration:none; }

/* Skip-link: у статиці position:absolute + top:-60px ховав його за верх
   вікна. На сторінці WP найближчий позиційований предок — це вже .adp-root
   (або взагалі секція Elementor з transform), тому -60px вилазив просто
   поверх чужого тексту. Ховаємо його по-справжньому — до фокуса. */
.adp-root .adp-skip-link:not(:focus){
  position:absolute;
  width:1px; height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  clip-path:inset(50%);
  white-space:nowrap;
}
.adp-root .adp-skip-link:focus{ top:16px; }

/* Теми люблять глобально стилізувати кнопки й поля. Знімаємо це всередині
   віджета — але рівно до БРАУЗЕРНИХ значень, а не до inherit.

   Обережно з шорткатом font:inherit — він тягне ще й line-height, тобто 1.6
   від .adp-root, тоді як браузер для контролів дає normal (~1.2). Через це
   поле пошуку роздувалось, а текст у select переставав влазити в рядок
   і його різало. На Vercel такого немає, бо там контроли сидять на дефолтах
   UA. Тому властивості перелічені поштучно, а line-height явно normal —
   щоб WordPress збігався з Vercel піксель у піксель.

   height/min-height/max-height теж обов'язкові: наші правила їх не задають,
   тож input{height:56px} чи button{min-height:60px} з теми інакше
   проходять без бою — перебивати нічим.

   Власні правила (.adp-chip, .adp-btn, .adp-field__input) специфічніші
   й переб'ють цей ресет. */
.adp-root button,
.adp-root input,
.adp-root select,
.adp-root textarea{
  font-family:inherit;
  font-weight:400;
  font-style:normal;
  line-height:normal;
  letter-spacing:normal;
  text-transform:none;
  text-indent:0;
  color:inherit;
  height:auto;
  min-height:0;
  max-height:none;
  min-width:0;
  max-width:none;
  box-shadow:none;
  text-shadow:none;
}
.adp-root button{
  background:none;
  border:none;
  border-radius:0;
}
.adp-root ul,
.adp-root li{ list-style:none; }
.adp-root img{ max-width:100%; height:auto; }
.adp-root h1, .adp-root h2, .adp-root h3{ font-family:inherit; }

/* Обгортка-портал для оверлею модалки (див. кінець app.js).
   Успадкувала б фон від .adp-root — гасимо. */
.adp-portal{
  background:none;
  color:var(--adp-text);
}

/* На вузьких екранах панель фільтрів стає стовпчиком (пошук + місто + чипси
   + лічильник) і виростає до ~250px. Зверху ще фіксована шапка теми — разом
   це третина екрана суцільної стіни, під яку заїжджають картки: у першої
   видно лише низ, бо тег/назва/місто сховані за панеллю.

   На статичному сайті шапки теми не було, тому проблема не вилазила.
   Тут відпускаємо панель — хай їде з контентом. Фільтри однаково поруч,
   а екран звільняється під картки. */
@media (max-width: 699px){
  .adp-root .adp-filters-bar{
    position:static;
    top:auto;
  }
}
