/*
Theme Name: Twenty Twenty-Five – Niko yhtiöt
Theme URI:
Template: twentytwentyfive
Author: Niko yhtiöt Oy
Description: Kevennetty lapsiteema: ei ulkoisia latauksia, ei seurantaa, ei kommentteja. Sisältää palvelinpuolella tarkistettavan yhteydenottolomakkeen ilman JavaScriptiä.
Version: 1.0.0
Requires at least: 6.7
Tested up to: 7.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive-nikoy
*/

/* Hunajapurkkikenttä: piilotettu ihmiseltä, näkyvä botille.
   Ei `display:none` yksin — osa boteista ohittaa sen. */
.nikoy-hp {
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.nikoy-lomake { margin-block-start: 2rem; max-width: 34rem; }
.nikoy-lomake p { margin-block: 0 1rem; }
.nikoy-lomake label { display: block; font-weight: 600; margin-block-end: .25rem; }
.nikoy-lomake input[type="text"],
.nikoy-lomake input[type="email"],
.nikoy-lomake textarea {
  width: 100%; padding: .6rem .7rem; font: inherit;
  border: 1px solid currentColor; border-radius: 3px; background: transparent; color: inherit;
}
.nikoy-lomake textarea { min-height: 9rem; resize: vertical; }
.nikoy-lomake button {
  font: inherit; font-weight: 600; padding: .65rem 1.4rem; cursor: pointer;
  border: 1px solid currentColor; border-radius: 3px; background: transparent; color: inherit;
}
.nikoy-lomake button:hover { opacity: .75; }
.nikoy-ilmoitus { padding: .75rem 1rem; border: 1px solid currentColor; border-radius: 3px; margin-block-end: 1.5rem; }
.nikoy-tietosuoja { font-size: .85em; opacity: .8; }

/* ─────────────────────────────────────────────────────────────────────────────
   MODAALI ILMAN JAVASCRIPTIÄ

   Avaus tapahtuu `:target`-pseudoluokalla: linkki «Ota yhteyttä» osoittaa
   ankkuriin, ja modaali on näkyvissä vain kun ankkuri on osoitteessa. Näin
   sivu ei lataa yhtään skriptiä — vaatimus «ei kolmannen osapuolen skriptejä»
   pitää, ja sivu toimii myös JavaScript pois kytkettynä.

   `.nikoy-auki` on palvelinpuolen varmistus: kun lomake palauttaa virheen tai
   kiitoksen, PHP lisää luokan, jolloin modaali on auki vaikka ankkuri katoaisi.
   ────────────────────────────────────────────────────────────────────────── */

.nikoy-avaa {
  display: inline-block; font-weight: 600; text-decoration: none;
  padding: .7rem 1.6rem; border: 1px solid currentColor; border-radius: 3px;
  margin-block-start: .5rem;
}
.nikoy-avaa:hover, .nikoy-avaa:focus-visible { opacity: .75; }

.nikoy-modaali { display: none; }
.nikoy-modaali:target,
.nikoy-modaali.nikoy-auki {
  display: grid; position: fixed; inset: 0; z-index: 1000;
  place-items: center; padding: 1.5rem;
}

/* Taustan sumennus. `rgba` toimii myös selaimissa, joissa ei ole backdrop-filteriä. */
.nikoy-tausta {
  position: fixed; inset: 0; display: block;
  background: rgba(18, 18, 18, .38);
  -webkit-backdrop-filter: blur(9px) saturate(120%);
          backdrop-filter: blur(9px) saturate(120%);
}

.nikoy-paneeli {
  position: relative; z-index: 1; width: min(34rem, 100%);
  max-height: min(86vh, 48rem); overflow-y: auto;
  padding: 2rem clamp(1.25rem, 4vw, 2.25rem) 1.75rem;
  border-radius: 10px;
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #111);
  box-shadow: 0 24px 64px rgba(0, 0, 0, .28), 0 2px 8px rgba(0, 0, 0, .12);
}
.nikoy-paneeli h2 { margin-block: 0 1.25rem; font-size: 1.4rem; }

.nikoy-sulje {
  position: absolute; inset-block-start: .6rem; inset-inline-end: .85rem;
  width: 2.1rem; height: 2.1rem; display: grid; place-items: center;
  font-size: 1.5rem; line-height: 1; text-decoration: none; border-radius: 50%;
  color: inherit;
}
.nikoy-sulje:hover, .nikoy-sulje:focus-visible { background: rgba(0, 0, 0, .08); }

/* Liike pois niiltä, jotka ovat sen pyytäneet pois. */
@media (prefers-reduced-motion: no-preference) {
  .nikoy-modaali:target .nikoy-paneeli,
  .nikoy-modaali.nikoy-auki .nikoy-paneeli { animation: nikoy-nousu .18s ease-out; }
  @keyframes nikoy-nousu {
    from { transform: translateY(8px); opacity: 0; }
    to   { transform: none; opacity: 1; }
  }
}
