/* ==========================================================
   Doučímse – formuláře (přihlášky + dárkový poukaz)
   Barvy lze změnit přes proměnné na .dmf
   ========================================================== */
.dmf{
  --dmf-zelena:#2e7d32;
  --dmf-zelena-tmava:#17432a;
  --dmf-zelena-svetla:#eef6e8;
  --dmf-akcent:#6fb536;
  --dmf-text:#1f2d24;
  --dmf-sedy:#5b665e;
  --dmf-linka:#dfe6da;
  --dmf-pozadi:#ffffff;
  --dmf-chyba:#b3261e;
  --dmf-radius:12px;
  max-width:760px; margin:0 auto;
  color:var(--dmf-text);
  font-size:15px; line-height:1.5;
}
.dmf *,.dmf *::before,.dmf *::after{box-sizing:border-box}
.dmf [hidden]{display:none !important}

.dmf__form,.dmf__uspech{
  background:var(--dmf-pozadi);
  border-radius:20px;
  padding:clamp(22px,4vw,40px);
  box-shadow:0 18px 50px rgba(23,67,42,.10), 0 2px 6px rgba(23,67,42,.05);
}
.dmf .dmf__nadpis{margin:0 0 18px; font-size:1.5rem; line-height:1.2; color:var(--dmf-zelena-tmava)}

/* informační pruh */
.dmf .dmf__info{
  list-style:none; margin:0 0 26px; padding:14px 16px;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px 18px;
  background:var(--dmf-zelena-svetla); border-radius:var(--dmf-radius);
}
.dmf .dmf__info li{display:flex; gap:10px; align-items:flex-start; margin:0; padding:0}
.dmf .dmf__info li::before{content:none}
.dmf__info-ico{flex:none; display:inline-flex; color:var(--dmf-zelena); margin-top:2px}
.dmf__info-ico svg{width:22px; height:22px}
.dmf__info strong{display:block; font-size:.95rem; color:var(--dmf-zelena-tmava); line-height:1.25}
.dmf__info small{display:block; font-size:.8rem; color:var(--dmf-sedy)}

/* mřížka polí */
.dmf__grid{display:grid; grid-template-columns:1fr 1fr; gap:18px 18px}
.dmf__pole{grid-column:1 / -1; min-width:0; margin:0; padding:0; border:0}
.dmf__pole--pul{grid-column:span 1}
.dmf .dmf__label{display:block; margin:0 0 7px; padding:0; font-size:.9rem; font-weight:700; color:var(--dmf-zelena-tmava)}
.dmf__req{color:var(--dmf-akcent)}
.dmf__napoveda{margin:-3px 0 8px; font-size:.8rem; color:var(--dmf-sedy)}

.dmf .dmf__input{
  display:block; width:100%; min-height:50px; margin:0;
  padding:12px 14px;
  font:inherit; color:var(--dmf-text);
  background:#fff; border:1.5px solid var(--dmf-linka); border-radius:var(--dmf-radius);
  box-shadow:none; outline:none;
  transition:border-color .15s, box-shadow .15s;
  -webkit-appearance:none; appearance:none;
}
.dmf .dmf__textarea{min-height:0; resize:vertical}
.dmf .dmf__input::placeholder{color:#9aa69d}
.dmf .dmf__input:hover{border-color:#c5d3bf}
.dmf .dmf__input:focus{border-color:var(--dmf-zelena); box-shadow:0 0 0 4px rgba(46,125,50,.14)}
.dmf__select{position:relative}
.dmf__select::after{
  content:""; position:absolute; right:16px; top:50%; width:8px; height:8px; margin-top:-6px;
  border-right:2px solid var(--dmf-sedy); border-bottom:2px solid var(--dmf-sedy); transform:rotate(45deg); pointer-events:none;
}
.dmf__select .dmf__input{padding-right:40px}

/* volby – štítky a dlaždice */
.dmf__volby{display:flex; flex-wrap:wrap; gap:10px}
.dmf__skupina--dlazdice .dmf__volby{display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.dmf__volba{position:relative; display:block; margin:0; cursor:pointer}
.dmf__volba input{position:absolute; opacity:0; width:1px; height:1px; pointer-events:none}
.dmf__volba-box{
  display:flex; align-items:center; gap:10px; height:100%;
  padding:11px 14px; border:1.5px solid var(--dmf-linka); border-radius:var(--dmf-radius);
  background:#fff; transition:border-color .15s, background-color .15s, box-shadow .15s;
}
.dmf__skupina--stitky .dmf__volba-box{border-radius:999px; padding:9px 16px 9px 12px}
.dmf__volba-text{display:flex; flex-direction:column; font-size:.92rem; font-weight:600; line-height:1.3}
.dmf__volba-text small{font-weight:500; font-size:.78rem; color:var(--dmf-sedy)}
.dmf__volba:hover .dmf__volba-box{border-color:#b9cdb0}
.dmf__volba input:checked + .dmf__volba-box{border-color:var(--dmf-zelena); background:var(--dmf-zelena-svetla); box-shadow:0 0 0 1px var(--dmf-zelena) inset}
.dmf__volba input:focus-visible + .dmf__volba-box{box-shadow:0 0 0 4px rgba(46,125,50,.2)}

/* znak volby (kolečko / čtvereček s fajfkou) */
.dmf__volba-znak{
  flex:none; position:relative; width:20px; height:20px;
  border:1.5px solid #b7c4b1; border-radius:6px; background:#fff;
  transition:background-color .15s, border-color .15s;
}
.dmf__volba input[type="radio"] + .dmf__volba-box .dmf__volba-znak{border-radius:50%}
.dmf__volba input:checked + .dmf__volba-box .dmf__volba-znak,
.dmf__check-radek input:checked + .dmf__volba-znak{background:var(--dmf-zelena); border-color:var(--dmf-zelena)}
.dmf__volba input:checked + .dmf__volba-box .dmf__volba-znak::after,
.dmf__check-radek input:checked + .dmf__volba-znak::after{
  content:""; position:absolute; left:6px; top:2px; width:5px; height:10px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg);
}
.dmf__volba input[type="radio"]:checked + .dmf__volba-box .dmf__volba-znak::after{
  left:4.5px; top:4.5px; width:8px; height:8px; border:0; border-radius:50%; background:#fff; transform:none;
}

/* samostatné zaškrtávátko (souhlas, individuální lekce) */
.dmf__check-radek{display:flex; gap:11px; align-items:flex-start; margin:0; cursor:pointer; font-size:.9rem; line-height:1.45}
.dmf__check-radek input{position:absolute; opacity:0; width:1px; height:1px}
.dmf__check-radek .dmf__volba-znak{margin-top:1px}
.dmf__check-radek input:focus-visible + .dmf__volba-znak{box-shadow:0 0 0 4px rgba(46,125,50,.2)}
.dmf__check-radek a{color:var(--dmf-zelena); text-decoration:underline}

/* orientační cena poukazu */
.dmf__cena{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:14px 18px; border-radius:var(--dmf-radius);
  background:var(--dmf-zelena-svetla); color:var(--dmf-zelena-tmava); font-weight:600;
}
.dmf__cena strong{font-size:1.25rem; font-weight:800}

/* chyby */
.dmf__err{margin:6px 0 0; font-size:.82rem; font-weight:600; color:var(--dmf-chyba)}
.dmf__pole.je-chyba .dmf__input,
.dmf__pole.je-chyba .dmf__volba-box,
.dmf__pole.je-chyba .dmf__volba-znak{border-color:var(--dmf-chyba)}
.dmf__chyba-obecna{margin:0 0 18px; padding:12px 16px; border-radius:var(--dmf-radius); background:#fdecea; color:#7b1d12; font-size:.9rem}

/* anti-spam */
.dmf__hp{position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden}

/* odeslat */
.dmf .dmf__odeslat{
  position:relative; display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; min-height:56px; margin:26px 0 0; padding:0 24px;
  font:inherit; font-size:1.02rem; font-weight:700; color:#fff;
  background:var(--dmf-zelena); border:0; border-radius:var(--dmf-radius); cursor:pointer;
  transition:background-color .2s, transform .2s, box-shadow .2s;
  box-shadow:0 8px 20px rgba(46,125,50,.25);
}
.dmf .dmf__odeslat:hover{background:var(--dmf-zelena-tmava); transform:translateY(-1px)}
.dmf .dmf__odeslat:focus-visible{outline:3px solid #f2b705; outline-offset:3px}
.dmf__odeslat-sipka{width:18px; height:18px; transition:transform .2s}
.dmf__odeslat:hover .dmf__odeslat-sipka{transform:translateX(3px)}
.dmf__spinner{display:none; width:20px; height:20px; border:2.5px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; animation:dmf-spin .7s linear infinite}
.dmf__odeslat.je-odesilani{pointer-events:none; opacity:.85}
.dmf__odeslat.je-odesilani .dmf__odeslat-sipka{display:none}
.dmf__odeslat.je-odesilani .dmf__spinner{display:inline-block}
.dmf__pozn{margin:10px 0 0; text-align:center; font-size:.78rem; color:var(--dmf-sedy)}

/* úspěch */
.dmf__uspech{text-align:center; padding-top:clamp(34px,5vw,54px); padding-bottom:clamp(34px,5vw,54px); outline:none}
.dmf__check{width:84px; height:84px; margin:0 auto 18px; display:block}
.dmf__check circle{fill:var(--dmf-zelena-svetla); stroke:var(--dmf-zelena); stroke-width:2.5; stroke-dasharray:151; stroke-dashoffset:151; animation:dmf-kruh .6s ease-out forwards}
.dmf__check path{fill:none; stroke:var(--dmf-zelena); stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:36; stroke-dashoffset:36; animation:dmf-fajfka .35s .5s ease-out forwards}
.dmf .dmf__uspech-nadpis{margin:0 0 10px; font-size:1.6rem; line-height:1.2; color:var(--dmf-zelena-tmava)}
.dmf__uspech-text{margin:0 auto; max-width:440px; color:var(--dmf-sedy)}
.dmf__uspech-email{font-weight:700; color:var(--dmf-text)}
.dmf__uspech-podpis{margin:16px 0 0; font-family:var(--dm-font-ruka, 'Caveat', 'Segoe Script', cursive); font-size:1.6rem; color:var(--dmf-zelena)}
.dmf__uspech.je-novy{animation:dmf-pop .35s ease-out}

@keyframes dmf-spin{to{transform:rotate(360deg)}}
@keyframes dmf-kruh{to{stroke-dashoffset:0}}
@keyframes dmf-fajfka{to{stroke-dashoffset:0}}
@keyframes dmf-pop{from{opacity:0; transform:scale(.97)} to{opacity:1; transform:none}}

@media (max-width: 600px){
  .dmf__grid{grid-template-columns:1fr}
  .dmf__pole--pul{grid-column:1 / -1}
  .dmf__skupina--dlazdice .dmf__volby{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion: reduce){
  .dmf *,.dmf *::before,.dmf *::after{animation:none !important; transition:none !important}
  .dmf__check circle,.dmf__check path{stroke-dashoffset:0}
}

/* ==========================================================
   VYSKAKOVACÍ OKNO S PŘIHLÁŠKOU
   ========================================================== */
html.dmo-otevreno{overflow:hidden}
dialog.dmo{
  width:min(820px, calc(100vw - 24px)); max-width:none;
  max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px);
  margin:auto; padding:0; border:0; background:transparent; color:inherit; overflow:visible;
}
dialog.dmo::backdrop{background:rgba(15,35,22,.58); backdrop-filter:blur(3px)}
dialog.dmo[open]{animation:dmo-in .28s cubic-bezier(.2,.8,.2,1)}
dialog.dmo[open]::backdrop{animation:dmo-fade .28s ease-out}
.dmo__panel{
  position:relative; max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); overflow:auto; overscroll-behavior:contain;
  background:#fff; border-radius:22px; padding:clamp(22px,4vw,40px);
  box-shadow:0 30px 80px rgba(0,0,0,.25);
}
.dmo .dmo__nadpis{margin:0 44px 20px 0; font-size:clamp(1.3rem,2.6vw,1.7rem); line-height:1.2; color:#17432a}
.dmo__zavrit{
  position:sticky; top:0; float:right; z-index:2; margin:-8px -8px 0 0;
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px; padding:0; border:0; border-radius:50%;
  background:#eef6e8; color:#17432a; cursor:pointer; transition:background-color .15s, transform .15s;
}
.dmo__zavrit svg{width:20px; height:20px}
.dmo__zavrit:hover{background:#d9ecc9; transform:rotate(90deg)}
.dmo__zavrit:focus-visible{outline:3px solid #f2b705; outline-offset:2px}
.dmo .dmf{max-width:none}
.dmo .dmf__form,.dmo .dmf__uspech{box-shadow:none; padding:0; border-radius:0}
.dmo .dmf__uspech{padding:10px 0 20px}
@keyframes dmo-in{from{opacity:0; transform:translateY(18px) scale(.98)} to{opacity:1; transform:none}}
@keyframes dmo-fade{from{opacity:0} to{opacity:1}}
@media (max-width: 600px){
  dialog.dmo{width:100vw; max-height:100dvh; height:100dvh; margin:0}
  .dmo__panel{max-height:100dvh; height:100%; border-radius:0; padding:20px 18px 28px}
}
@media (prefers-reduced-motion: reduce){
  dialog.dmo[open],dialog.dmo[open]::backdrop{animation:none}
}

/* záloha bez JavaScriptu: odkaz #prihlaska-… zobrazí okno přes :target */
dialog.dmo:target:not([open]){
  display:block; position:fixed; inset:0; z-index:100000;
  box-shadow:0 0 0 100vmax rgba(15,35,22,.58);
}

/* reCAPTCHA */
.dmf__captcha-pole{margin-top:18px}
.dmf__captcha{min-height:78px}
.dmf__captcha-info{margin:18px 0 0; font-size:.74rem; line-height:1.45; color:var(--dmf-sedy)}
.dmf__captcha-info a{color:inherit; text-decoration:underline}

/* stav reCAPTCHA – vidí jen správce */
.dmf__admin-stav{margin:14px 0 0; padding:10px 14px; border:1px dashed #b9cdb0; border-radius:10px; background:#fbfdf9; font-size:.8rem; line-height:1.45; color:#4a5a4f; text-align:center}
.dmf__admin-stav small{display:block; margin-top:3px; color:#8a968d}
.dmf__admin-ok{font-weight:700; color:#2e7d32}
.dmf__admin-ne{font-weight:700; color:#b3261e}
