/* ===========================
   KV Partnerlus – clean CSS
   =========================== */

:root{
  --kv-bg:#0f1a33;
  --kv-surface: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.03));
  --kv-text:#eef2f8;
  --kv-text-dim:#c9cfdd;
  --kv-accent:#6d5dff;
  --kv-accent-2:#00e676;
  --kv-border:rgba(255,255,255,0.14);
  --kv-radius:18px;
  --kv-shadow:0 18px 50px rgba(0,0,0,0.45);
  --kv-max:1120px;

  /* Animatsioonide muutujad */
  --kv-ease: cubic-bezier(.22,.61,.36,1);
  --kv-dur: .5s;
  --kv-dur-fast: .24s;
}

html:focus-within{scroll-behavior:smooth}
*{box-sizing:border-box}
img,svg{max-width:100%}
section{position:relative}

/* Safe-area for iOS notches */
.kv-hero,.kv-section{
  padding-left:clamp(16px,env(safe-area-inset-left),24px);
  padding-right:clamp(16px,env(safe-area-inset-right),24px)
}

/* ===== HERO ===== */
.kv-hero{
  color:var(--kv-text);
  padding-top:clamp(64px,8svh,128px);
  padding-bottom:clamp(48px,7svh,112px);
  background:transparent;
  isolation:isolate;
  overflow:hidden
}
.kv-hero__inner{max-width:var(--kv-max);margin:0 auto;text-align:center}
.kv-hero__title{font-size:clamp(28px,4.5vw,48px);line-height:1.14;margin:0 0 12px;letter-spacing:.2px}
.kv-hero__lead{max-width:min(760px,92vw);margin:0 auto 24px;color:var(--kv-text-dim);font-size:clamp(16px,2.4vw,18px)}
.kv-hero__cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;padding-top:50px}
.kv-ribbon{
  position:absolute;top:16px;left:50%;transform:translateX(-50%);
  background:linear-gradient(180deg,var(--kv-accent),#8a7bff);color:#fff;
  font-weight:800;letter-spacing:.3px;padding:8px 22px;border:1px solid rgba(255,255,255,.25);
  text-transform:uppercase;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.35);z-index:2
}
.kv-hero__bg{
  position:absolute;inset:-20% -10% auto -10%;height:80%;
  background: linear-gradient(180deg, #0D0A1D 0%, #191235 54%, #241B4A 100%);
  filter:blur(36px);z-index:-1
}

/* ===== SECTIONS ===== */
.kv-section{padding-top:clamp(40px,6svh,88px);padding-bottom:clamp(40px,6svh,88px);color:var(--kv-text)}
.kv-section--alt{background:rgba(255,255,255,0.03)}
.kv-container{max-width:var(--kv-max);margin:0 auto}
.kv-section__header{text-align:center;margin-bottom:24px}
.kv-section__header h2{font-size:clamp(22px,3.6vw,32px);margin:0 0 8px}
.kv-section__lead{color:var(--kv-text-dim);max-width:800px;margin:0 auto}

/* ===== GRID & CARDS ===== */
.kv-grid{display:grid;gap:16px}
.kv-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:980px){.kv-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.kv-grid--3{grid-template-columns:1fr}}

.kv-card{
  background:var(--kv-surface);border:1px solid var(--kv-border);border-radius:var(--kv-radius);
  padding:18px;box-shadow:var(--kv-shadow);min-width:0
}
.kv-card h3{margin:6px 0 8px;font-size:clamp(16px,2.6vw,18px)}
.kv-card p{margin:0;color:var(--kv-text-dim)}
.kv-icon{font-size:24px;line-height:1}

/* ===== LIST ===== */
.kv-list{margin:8px 0 0;padding-left:18px;color:var(--kv-text-dim)}
.kv-list li{margin:6px 0}

/* ===== BENEFITS ===== */
.kv-benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:780px){.kv-benefits{grid-template-columns:1fr}}
.kv-benefits__item{
  background:var(--kv-surface);border:1px solid var(--kv-border);border-radius:var(--kv-radius);
  padding:18px;box-shadow:var(--kv-shadow)
}
.kv-benefits__item h3{margin:4px 0 8px}
.kv-benefits__item p{margin:0;color:var(--kv-text-dim)}

/* ===== STEPS ===== */
.kv-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:steps}
@media (max-width:1100px){.kv-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.kv-steps{grid-template-columns:1fr}}
.kv-step{
  background:var(--kv-surface);border:1px solid var(--kv-border);border-radius:var(--kv-radius);
  padding:18px;display:flex;gap:12px;align-items:flex-start;box-shadow:var(--kv-shadow);min-width:0
}
.kv-step__num{
  display:inline-grid;place-items:center;background:linear-gradient(180deg,var(--kv-accent),#8a7bff);
  color:#fff;font-weight:800;width:36px;height:36px;border-radius:50%;flex:0 0 auto
}
.kv-step__body h3{margin:2px 0 6px;font-size:16px}
.kv-step__body p{margin:0;color:var(--kv-text-dim)}

/* ===== LOGOS ===== */
.kv-logos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:center}
@media (max-width:1100px){.kv-logos{grid-template-columns:repeat(4,1fr)}}
@media (max-width:780px){.kv-logos{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.kv-logos{grid-template-columns:repeat(2,1fr)}}
.kv-logo{
  background:rgba(255,255,255,0.04);border:1px dashed var(--kv-border);border-radius:14px;
  padding:22px;text-align:center;color:#b8c1ff;user-select:none;min-height:64px;display:grid;place-items:center
}

/* ===== ACCORDION ===== */
.kv-acc{background:var(--kv-surface);border:1px solid var(--kv-border);border-radius:var(--kv-radius);box-shadow:var(--kv-shadow);overflow:hidden}
.kv-acc + .kv-acc{margin-top:12px}
.kv-acc__sum{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;padding:16px 18px}
.kv-acc__sum::-webkit-details-marker{display:none}
.kv-acc__sum span{flex:1}
.kv-acc[open] .kv-acc__sum{border-bottom:1px solid var(--kv-border)}
.kv-acc__content{padding:14px 18px;color:var(--kv-text-dim)}

/* Accordion +/- toggle */
.kv-acc__sum{ position: relative; padding-right: 52px; }
.kv-acc__sum::after{
  content: "+"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 999px;
  background: linear-gradient(180deg, var(--kv-accent), #8a7bff);
  color:#fff; font-weight:900; line-height:1; border:1px solid rgba(255,255,255,.25);
  box-shadow:0 6px 16px rgba(0,0,0,.25); transition: transform .18s ease, opacity .18s ease;
}
.kv-acc[open] .kv-acc__sum::after{ content:"–"; transform: translateY(-50%) }
.kv-acc__sum:focus-visible{ outline:3px solid rgba(109,93,255,.45); outline-offset:2px; border-radius:var(--kv-radius) }
@media (max-width:560px){
  .kv-acc__sum{ padding-right:46px }
  .kv-acc__sum::after{ width:24px; height:24px; right:10px; font-size:14px }
}

/* ===== FORM ===== */
.kv-form{background:var(--kv-surface);border:1px solid var(--kv-border);border-radius:var(--kv-radius);box-shadow:var(--kv-shadow);padding:18px}
.kv-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:560px){.kv-form__grid{grid-template-columns:1fr}}
.kv-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.kv-field--full{grid-column:1 / -1}
.kv-field span{font-size:14px;color:#dbe1ff}
.kv-field input,.kv-field textarea{
  background:rgba(255,255,255,0.06);border:1px solid var(--kv-border);border-radius:12px;
  padding:12px;line-height:1.35;color:var(--kv-text);outline:none;-webkit-tap-highlight-color:transparent
}
.kv-field textarea{resize:vertical;min-height:112px}
.kv-field input:focus,.kv-field textarea:focus{border-color:var(--kv-accent);box-shadow:0 0 0 3px rgba(109,93,255,.25)}
.kv-form__actions{display:flex;align-items:center;gap:12px;margin-top:40px;flex-wrap:wrap;margin-bottom:40px}
.kv-form__small{margin:0 !important;color:var(--kv-text-dim);font-size:14px}
.kv-form__msg{margin-top:10px}

/* Consent (checkbox) – mobiilisõbralik grid ja parem veateade */
.kv-check{
  display:grid; grid-template-columns:22px 1fr; align-items:flex-start; gap:12px;
  padding:12px 14px; background:rgba(255,255,255,0.04); border:1px solid var(--kv-border); border-radius:12px
}
.kv-check input{ width:20px; height:20px; margin-top:2px; accent-color:var(--kv-accent); flex:0 0 auto }
.kv-check span{ display:block; line-height:1.5; color:var(--kv-text); word-break:break-word }
.kv-check .kv-error{ grid-column:1 / -1; margin:8px 0 0; font-size:13px; color:#ffb4b4 }
.kv-check.kv-field--error{ border-color:#ff6b6b; box-shadow:0 0 0 3px rgba(255,0,0,.15) }
.kv-check:focus-within{ outline:none; box-shadow:0 0 0 3px rgba(109,93,255,.25); border-color:var(--kv-accent) }
@media (max-width:560px){ .kv-check{ grid-template-columns:20px 1fr; padding:12px } .kv-check span{ font-size:15px } }
.kv-check a{ color:#b8c1ff; text-decoration:underline } .kv-check a:hover{ color:#fff }

/* Error styles for fields */
.kv-field--error input,
.kv-field--error textarea,
.kv-field--error input[type="file"]{ border-color:#ff6b6b !important; box-shadow:0 0 0 3px rgba(255,0,0,.15) !important }
.kv-check.kv-field--error{ outline:3px solid rgba(255,0,0,.25); border-radius:12px; padding:6px }
.kv-error{ color:#ffb4b4; font-size:13px; margin-top:6px }

/* Upload preview */
.kv-upload__list{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; margin-top:10px }
.kv-upload__item{
  display:flex; align-items:center; gap:10px; background:rgba(255,255,255,0.06);
  border:1px solid var(--kv-border); border-radius:12px; padding:25px 10px; min-width:0; position:relative
}
.kv-upload__thumb,.kv-upload__icon{
  width:44px; height:44px; border-radius:8px; flex:0 0 auto; background:rgba(255,255,255,0.06);
  display:grid; place-items:center; font-weight:800; color:#dbe1ff
}
.kv-upload__thumb{ object-fit:cover }
.kv-upload__meta{ min-width:0 }
.kv-upload__name{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--kv-text); font-size:14px }
.kv-upload__size{ color:var(--kv-text-dim); font-size:12px }
.kv-upload__remove{
  position:absolute; top:6px; right:8px; background:transparent; border:0; cursor:pointer;
  color:#ffb4b4; font-size:18px; line-height:1; padding:2px 4px
}
.kv-upload__remove:hover{ color:#fff }

/* ===== BUTTONS ===== */
.kv-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:999px;
  font-weight:700;text-decoration:none;border:1px solid transparent;touch-action:manipulation
}
.kv-btn--primary{background:linear-gradient(180deg,var(--kv-accent),#8a7bff);color:#fff;box-shadow:0 10px 30px rgba(109,93,255,.35)}
.kv-btn--primary:hover{filter:brightness(1.05)}
.kv-btn--ghost{background:transparent;color:var(--kv-text);border-color:var(--kv-border)}
.kv-btn--ghost:hover{border-color:#cfd7ff}

/* ===== PAGE BACKGROUND ===== */
body:has(#partner-hero){background:var(--kv-bg)}

/* Legal line */
.kv-form__legal{margin:6px 0 0;font-size:12px;color:var(--kv-text-dim);opacity:.95}
.kv-form__legal a{color:#b8c1ff;text-decoration:underline}

/* ===== Reduced motion ===== */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}

/* ===== Telefonivaade – peenhäälestus ribale ===== */
@media (max-width:560px){
  .kv-ribbon{
    top: calc(env(safe-area-inset-top, 0px) + 8px);
    left: 50%; transform: translateX(-50%);
    font-size: clamp(11px, 3.3vw, 13px); padding: 6px 14px;
    white-space: nowrap; max-width: 90vw; line-height: 1.1;
    letter-spacing: .25px; border-radius: 999px; z-index: 10; pointer-events: none;
  }
}
@media (max-width:340px){ .kv-ribbon{ font-size:10px; padding:5px 12px } }

/* ===== Anim keyframes ===== */
@keyframes kv-fade-up{ from{opacity:0; transform:translateY(12px) scale(.98)} to{opacity:1; transform:none} }
@keyframes kv-fade-in{ from{opacity:0} to{opacity:1} }
@keyframes kv-pop{ from{opacity:0; transform:scale(.96)} to{opacity:1; transform:scale(1)} }
@keyframes kv-ribbon-drop{ from{opacity:0; transform:translate(-50%,-8px)} to{opacity:1; transform:translate(-50%,0)} }
@keyframes kv-bg-float{ 0%{transform:translate3d(0,0,0) scale(1)} 50%{transform:translate3d(2px,8px,0) scale(1.02)} 100%{transform:translate3d(0,0,0) scale(1)} }

/* ===== Hover/transition & micro-interactions (no-preference) ===== */
@media (prefers-reduced-motion: no-preference){
  /* Hero */
  .kv-hero__title{ animation: kv-fade-up var(--kv-dur) var(--kv-ease) both }
  .kv-hero__lead{ animation: kv-fade-up calc(var(--kv-dur) + .06s) var(--kv-ease) .06s both }
  .kv-hero__cta .kv-btn{ animation: kv-fade-up calc(var(--kv-dur) + .1s) var(--kv-ease) .12s both }
  .kv-hero__bg{ animation: kv-bg-float 16s ease-in-out infinite; will-change: transform }
  .kv-ribbon{ animation: kv-ribbon-drop .5s var(--kv-ease) .1s both }

  /* Cards */
  .kv-card{
    transition: transform .28s var(--kv-ease), box-shadow .28s var(--kv-ease), border-color .28s var(--kv-ease);
    will-change: transform
  }
  .kv-card:hover{
    transform: translateY(-2px);
    box-shadow: 0 22px 60px rgba(0,0,0,.5);
    border-color: rgba(255,255,255,.22)
  }

  /* Steps number micro-pop */
  .kv-step__num{ transition: transform .25s var(--kv-ease), box-shadow .25s var(--kv-ease); will-change: transform }
  .kv-step:hover .kv-step__num{ transform: scale(1.06); box-shadow:0 8px 24px rgba(109,93,255,.45) }

  /* Logos */
  .kv-logo img{
    transition: transform .25s var(--kv-ease), filter .25s var(--kv-ease), opacity .25s var(--kv-ease);
    opacity:.9; will-change: transform
  }
  .kv-logo:hover img{ transform: translateY(-1px) scale(1.02); filter:none; opacity:1 }

  /* Buttons */
  .kv-btn{
    transition: transform .18s var(--kv-ease), box-shadow .18s var(--kv-ease), background-position .25s var(--kv-ease), border-color .18s var(--kv-ease);
    will-change: transform
  }
  .kv-btn--primary{
    background-image: linear-gradient(90deg, var(--kv-accent), #8a7bff 50%, var(--kv-accent) 100%);
    background-size: 200% 100%
  }
  .kv-btn--primary:hover{ transform: translateY(-1px); background-position: 100% 0; box-shadow:0 14px 36px rgba(109,93,255,.45) }
  .kv-btn:active{ transform: translateY(0); box-shadow:0 6px 18px rgba(0,0,0,.4) }

  /* Fields */
  .kv-field input,.kv-field textarea{
    transition: border-color .18s var(--kv-ease), box-shadow .18s var(--kv-ease), background-color .18s var(--kv-ease)
  }
  .kv-field input:hover,.kv-field textarea:hover{ background-color: rgba(255,255,255,0.08) }

  /* Accordion smooth content */
  .kv-acc__content{ max-height:0; opacity:0; overflow:hidden; transition:max-height .35s var(--kv-ease), opacity .25s ease }
  .kv-acc[open] .kv-acc__content{ max-height:680px; opacity:1 }

  /* Upload pop-in */
  .kv-upload__item{ animation: kv-pop var(--kv-dur-fast) var(--kv-ease) both }
  .kv-upload__remove{ transition: transform .18s var(--kv-ease), color .18s var(--kv-ease) }
  .kv-upload__remove:hover{ transform: scale(1.1) }
}

/* ===== AOS (Animate on Scroll) ===== */
@media (prefers-reduced-motion: no-preference){
  .aos{ opacity:0; transform:translateY(12px) scale(.98); will-change:transform,opacity }
  .aos.aos--in{ opacity:1; transform:none }
  .aos[data-aos="fade-up"].aos--in{ animation: kv-fade-up var(--kv-dur) var(--kv-ease) both }
  .aos[data-aos="fade-in"].aos--in{ animation: kv-fade-in var(--kv-dur) linear both }
  .aos[data-aos="pop"].aos--in{ animation: kv-pop var(--kv-dur) var(--kv-ease) both }
}
@media (prefers-reduced-motion: reduce){
  .aos{ opacity:1 !important; transform:none !important }
}

/* ===== Teema/üld override (vajadusel) ===== */
button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .ast-custom-button:hover .button:hover, .ast-custom-button:hover,
input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus,
input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus,
form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:hover,
form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:focus,
body .wp-block-file .wp-block-file__button:hover, body .wp-block-file .wp-block-file__button:focus{
  border-color: purple;
}
