/*
Theme Name: Mia Lääti – oma
Theme URI: https://www.mialaati.fi/
Author: Mia Lääti + ChatGPT
Description: Mialaati.fi:n oma vaakasuunnassa etenevä WordPress/WooCommerce-ulkoasu.
Version: 0.59
Text Domain: mialaati-oma
*/

:root {
  --ml-black: #0c0c0f;
  --ml-black-2: #15131a;
  --ml-white: #f8f7fa;
  --ml-paper: #eee7f5;
  --ml-ink: #18151d;
  --ml-purple: #a77ad8;
  --ml-purple-soft: #d9c7ee;
  --ml-line: rgba(255,255,255,.14);
  --ml-max-text: 760px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ml-black);
  color: var(--ml-white);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { max-width: 100%; height: auto; }

.ml-site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 0 34px;
  background: linear-gradient(to bottom, rgba(12,12,15,.94), rgba(12,12,15,.72), transparent);
  pointer-events: none;
}
.ml-site-header > * { pointer-events: auto; }
.ml-brand {
  text-decoration: none;
  font-weight: 800;
  letter-spacing: .08em;
  font-size: 14px;
  text-transform: uppercase;
}
.ml-brand span { color: var(--ml-purple); }
.ml-menu { display:flex; align-items:center; gap:18px; list-style:none; padding:0; margin:0; }
.ml-menu a { text-decoration:none; font-size:14px; opacity:.78; }
.ml-menu a:hover, .ml-menu a:focus-visible { opacity:1; color:var(--ml-purple-soft); }

/* FRONT PAGE */
body.home { overflow: hidden; }
.ml-home-track {
  height: 100svh;
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--ml-purple) var(--ml-black);
}
.ml-home-track::-webkit-scrollbar { height: 8px; }
.ml-home-track::-webkit-scrollbar-track { background: var(--ml-black); }
.ml-home-track::-webkit-scrollbar-thumb { background: var(--ml-purple); border-radius: 20px; }

.ml-intro-panel,
.ml-book-panel,
.ml-empty-panel {
  flex: 0 0 auto;
  width: min(74vw, 980px);
  min-width: 690px;
  height: 100svh;
  padding: 108px 54px 44px;
  scroll-snap-align: start;
  position: relative;
  display: flex;
  align-items: center;
}
.ml-intro-panel {
  width: min(58vw, 760px);
  min-width: 600px;
  padding-left: clamp(44px, 7vw, 110px);
  overflow: hidden;
}
.ml-intro-panel::before {
  content:"";
  position:absolute;
  width: 340px;
  height: 340px;
  border: 1px solid rgba(167,122,216,.45);
  border-radius: 50%;
  right: -110px;
  top: 13vh;
  box-shadow: 0 0 0 44px rgba(167,122,216,.04), 0 0 0 88px rgba(167,122,216,.025);
}
.ml-intro-panel::after {
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height: 5px;
  background: linear-gradient(90deg, var(--ml-purple), transparent 75%);
}
.ml-intro-inner { position: relative; z-index: 2; max-width: 620px; }
.ml-kicker { margin:0 0 18px; color:var(--ml-purple-soft); text-transform:uppercase; letter-spacing:.18em; font-size:12px; font-weight:700; }
.ml-home-title {
  margin:0;
  font-size: clamp(62px, 8.2vw, 126px);
  line-height:.84;
  letter-spacing:-.065em;
  font-weight:900;
}
.ml-home-title span { color:var(--ml-purple); }
.ml-home-subtitle { margin:30px 0 0; max-width:510px; font-size:clamp(17px,1.5vw,22px); line-height:1.5; color:rgba(255,255,255,.76); }
.ml-scroll-hint { margin-top:40px; display:inline-flex; gap:12px; align-items:center; font-size:13px; letter-spacing:.08em; text-transform:uppercase; opacity:.55; }
.ml-scroll-hint b { font-size:24px; font-weight:400; color:var(--ml-purple); }

.ml-book-panel {
  width: min(54vw, 790px);
  min-width: 620px;
  gap: clamp(28px, 4vw, 64px);
  border-left: 1px solid var(--ml-line);
  background:
    radial-gradient(circle at 18% 26%, rgba(167,122,216,.09), transparent 36%),
    var(--ml-black);
}
.ml-book-cover-wrap {
  flex: 0 0 43%;
  height: min(68vh, 720px);
  display:flex;
  align-items:center;
  justify-content:center;
}
.ml-book-cover {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  filter: drop-shadow(0 24px 26px rgba(0,0,0,.38));
  transition: transform .25s ease;
}
a.ml-book-cover-link:hover .ml-book-cover { transform: translateY(-5px); }
.ml-book-info { flex:1; min-width:0; }
.ml-book-number { color:var(--ml-purple); font-size:12px; letter-spacing:.16em; font-weight:800; text-transform:uppercase; }
.ml-book-title { margin:10px 0 16px; font-size:clamp(30px,3.4vw,54px); line-height:1.02; letter-spacing:-.04em; }
.ml-book-title a { text-decoration:none; }
.ml-book-title a:hover { color:var(--ml-purple-soft); }
.ml-book-excerpt { margin:0; color:rgba(255,255,255,.66); font-size:15px; line-height:1.65; max-width:36ch; }
.ml-book-more { display:inline-block; margin-top:24px; color:var(--ml-purple-soft); text-decoration:none; font-weight:700; font-size:14px; }
.ml-book-more::after { content:"  →"; }
.ml-book-more:hover { color:#fff; }

.ml-empty-panel { border-left:1px solid var(--ml-line); color:rgba(255,255,255,.65); }

/* GENERAL CONTENT */
.ml-content-shell {
  min-height:100vh;
  background:var(--ml-paper);
  color:var(--ml-ink);
  padding: 126px 24px 80px;
}
.ml-content {
  max-width: var(--ml-max-text);
  margin: 0 auto;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px;
  line-height: 1.75;
}
.ml-content h1,.ml-content h2,.ml-content h3,.ml-content .entry-title {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--ml-ink);
  line-height:1.08;
  letter-spacing:-.035em;
}
.ml-content h1,.ml-content .entry-title { font-size:clamp(40px,6vw,74px); margin:0 0 34px; }
.ml-content h2 { font-size:34px; margin-top:2em; }
.ml-content h3 { font-size:26px; }
.ml-content a { color:#6e3aa7; text-decoration-thickness:1px; text-underline-offset:3px; }
.ml-content img { border-radius:4px; }
.ml-content blockquote { border-left:4px solid var(--ml-purple); margin-left:0; padding-left:24px; color:#514958; }
.ml-content .wp-block-separator { border-color:#d7cfe0; }

.ml-dark-footer {
  background:var(--ml-black);
  color:rgba(255,255,255,.58);
  padding:30px 24px;
  text-align:center;
  font-size:13px;
}

/* WooCommerce single/product pages inherit the readable light shell */
.woocommerce .ml-content { max-width:1100px; font-family:Inter, ui-sans-serif, system-ui, sans-serif; }
.woocommerce div.product .product_title { font-size:clamp(36px,5vw,64px); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit {
  background:var(--ml-black); color:#fff; border-radius:0; padding:.9em 1.2em;
}
.woocommerce a.button:hover, .woocommerce button.button:hover { background:#6e3aa7; color:#fff; }

@media (max-width: 760px) {
  body.home { overflow:auto; }
  .ml-site-header { height:62px; padding:0 18px; }
  .ml-menu { gap:12px; }
  .ml-menu li:nth-child(n+4) { display:none; }
  .ml-home-track { height:100svh; scroll-snap-type:x mandatory; }
  .ml-intro-panel,.ml-book-panel,.ml-empty-panel {
    width: 88vw;
    min-width: 88vw;
    height:100svh;
    padding:88px 24px 28px;
  }
  .ml-intro-panel { width:94vw; min-width:94vw; }
  .ml-home-title { font-size:clamp(58px,18vw,92px); }
  .ml-home-subtitle { font-size:17px; }
  .ml-book-panel { flex-direction:column; justify-content:center; gap:20px; }
  .ml-book-cover-wrap { flex:0 0 auto; width:100%; height:55vh; max-height:560px; }
  .ml-book-info { flex:0 0 auto; width:100%; }
  .ml-book-title { font-size:30px; margin:6px 0 10px; }
  .ml-book-excerpt { display:none; }
  .ml-book-more { margin-top:8px; }
  .ml-content-shell { padding:94px 18px 60px; }
  .ml-content { font-size:18px; line-height:1.7; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .ml-book-cover { transition:none; }
}

/* ===== v0.5 navigation + reliable homepage browsing ===== */
.ml-site-header {
  height: 94px;
  padding: 0 42px;
  background: rgba(12,12,15,.96);
  border-bottom: 3px solid var(--ml-purple);
  box-shadow: 0 10px 28px rgba(0,0,0,.22);
  overflow: visible;
}
.ml-brand {
  font-size: 19px;
  letter-spacing: .095em;
  white-space: nowrap;
}
.ml-site-header nav { height: 100%; display:flex; align-items:center; }
.ml-menu,
.ml-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ml-menu {
  display: flex;
  align-items: stretch;
  gap: 5px;
  height: 100%;
}
.ml-menu > li {
  position: relative;
  display: flex;
  align-items: stretch;
}
.ml-menu > li > a {
  display: flex;
  align-items: center;
  padding: 0 17px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .015em;
  opacity: .92;
  border-bottom: 3px solid transparent;
  transition: color .18s ease, background .18s ease, border-color .18s ease;
}
.ml-menu > li:hover > a,
.ml-menu > li:focus-within > a,
.ml-menu > .current-menu-item > a,
.ml-menu > .current-menu-ancestor > a,
.ml-menu > .current_page_item > a,
.ml-menu > .current_page_ancestor > a {
  color: #fff;
  background: rgba(167,122,216,.13);
  border-bottom-color: var(--ml-purple-soft);
}
.ml-menu .menu-item-has-children > a::after,
.ml-menu .page_item_has_children > a::after {
  content: "▾";
  font-size: 11px;
  margin-left: 8px;
  color: var(--ml-purple-soft);
}
.ml-menu .sub-menu,
.ml-menu .children {
  position: absolute;
  z-index: 200;
  top: calc(100% - 1px);
  left: 0;
  min-width: 230px;
  padding: 9px;
  background: #17131d;
  border: 1px solid rgba(217,199,238,.2);
  border-top: 3px solid var(--ml-purple);
  box-shadow: 0 18px 38px rgba(0,0,0,.42);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.ml-menu li:hover > .sub-menu,
.ml-menu li:focus-within > .sub-menu,
.ml-menu li:hover > .children,
.ml-menu li:focus-within > .children {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.ml-menu .sub-menu li,
.ml-menu .children li { position:relative; }
.ml-menu .sub-menu a,
.ml-menu .children a {
  display: block;
  padding: 11px 13px;
  text-decoration: none;
  font-size: 15px;
  font-weight: 650;
  color: rgba(255,255,255,.88);
  border-radius: 5px;
}
.ml-menu .sub-menu a:hover,
.ml-menu .sub-menu a:focus-visible,
.ml-menu .children a:hover,
.ml-menu .children a:focus-visible {
  color: #fff;
  background: rgba(167,122,216,.2);
}
.ml-menu .sub-menu .sub-menu,
.ml-menu .children .children {
  top: -12px;
  left: calc(100% + 8px);
}

body.home { overflow: hidden !important; }
.ml-home-track {
  padding-top: 0;
  cursor: grab;
  touch-action: pan-x;
  -webkit-overflow-scrolling: touch;
}
.ml-home-track.is-dragging {
  cursor: grabbing;
  user-select: none;
  scroll-snap-type: none;
}
.ml-intro-panel,
.ml-book-panel,
.ml-empty-panel { padding-top: 126px; }

.ml-scroll-controls {
  position: fixed;
  z-index: 120;
  right: 28px;
  bottom: 24px;
  display: flex;
  gap: 9px;
}
.ml-scroll-control {
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  background: rgba(20,17,25,.92);
  color: #fff;
  font: inherit;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 25px rgba(0,0,0,.3);
  transition: background .18s ease, transform .18s ease, opacity .18s ease;
}
.ml-scroll-control:hover,
.ml-scroll-control:focus-visible {
  background: var(--ml-purple);
  transform: translateY(-2px);
  outline: none;
}
.ml-scroll-control:disabled {
  opacity: .25;
  cursor: default;
  transform: none;
}

@media (max-width: 900px) {
  .ml-site-header { height: 78px; padding: 0 20px; }
  .ml-brand { font-size: 16px; }
  .ml-menu > li > a { font-size: 14px; padding: 0 10px; }
  .ml-intro-panel,.ml-book-panel,.ml-empty-panel { padding-top: 102px; }
}

@media (max-width: 760px) {
  .ml-site-header {
    position: fixed;
    height: auto;
    min-height: 68px;
    padding: 12px 16px;
    align-items: flex-start;
    gap: 12px;
  }
  .ml-site-header nav { height:auto; }
  .ml-menu { height:auto; gap:2px; flex-wrap:wrap; justify-content:flex-end; }
  .ml-menu > li > a { min-height:42px; padding:0 9px; }
  .ml-menu li:nth-child(n+4) { display:flex; }
  .ml-menu .sub-menu,
  .ml-menu .children { min-width:190px; }
  .ml-scroll-controls { right: 14px; bottom: 14px; }
  .ml-scroll-control { width:46px; height:46px; }
}

/* ===== v0.6 softer lavender content + stronger brand ===== */
.ml-site-header {
  align-items: flex-end;
  padding-bottom: 16px;
}
.ml-brand {
  font-size: 28px;
  line-height: 1;
  letter-spacing: .085em;
  transform: translateY(3px);
}
.ml-site-header nav {
  align-self: stretch;
  margin-bottom: -16px;
}

/* Vaalea lila lukupohja tekstisivuille */
.ml-content-shell {
  background:
    radial-gradient(circle at 14% 18%, rgba(167,122,216,.10), transparent 24rem),
    radial-gradient(circle at 88% 72%, rgba(217,199,238,.20), transparent 30rem),
    var(--ml-paper);
}

/* Omat lilat pallurat listoihin */
.ml-content ul:not(.wp-block-gallery):not(.blocks-gallery-grid) {
  list-style: none;
  padding-left: 1.55em;
}
.ml-content ul:not(.wp-block-gallery):not(.blocks-gallery-grid) > li {
  position: relative;
  margin: .32em 0;
}
.ml-content ul:not(.wp-block-gallery):not(.blocks-gallery-grid) > li::before {
  content: "";
  position: absolute;
  left: -1.25em;
  top: .78em;
  width: .48em;
  height: .48em;
  border-radius: 999px;
  background: var(--ml-purple);
  box-shadow: 0 0 0 4px rgba(167,122,216,.12);
  transform: translateY(-50%);
}
.ml-content ul:not(.wp-block-gallery):not(.blocks-gallery-grid) ul > li::before {
  background: transparent;
  border: 2px solid var(--ml-purple);
  box-shadow: none;
}

@media (max-width: 900px) {
  .ml-site-header { padding-bottom: 12px; }
  .ml-brand { font-size: 22px; transform: translateY(2px); }
  .ml-site-header nav { margin-bottom: -12px; }
}

@media (max-width: 760px) {
  .ml-site-header { align-items: flex-start; padding-bottom: 12px; }
  .ml-brand { font-size: 20px; transform: none; padding-top: 8px; }
  .ml-site-header nav { margin-bottom: 0; align-self: auto; }
}

/* ===== v0.8 personality pass: bolder headings, framed portrait, cleaner cards ===== */

/* Kirjailijasivun oma tunnistettava ilme */
.ml-page-kirjailija-mia-laati .ml-content {
  max-width: 820px;
}

.ml-page-kirjailija-mia-laati .entry-title {
  position: relative;
  display: inline-block;
  margin-bottom: 42px;
}
.ml-page-kirjailija-mia-laati .entry-title::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: -12px;
  width: 42%;
  height: 8px;
  border-radius: 999px;
  background: var(--ml-purple);
  transform: rotate(-1.5deg);
}

/* Ensimmäinen sisältökuva: pienempi, vähän vino ja tarkoituksella kehystetty */
.ml-page-kirjailija-mia-laati .ml-author-portrait {
  display: block;
  width: min(68%, 510px) !important;
  margin: 20px auto 64px !important;
  border: 9px solid #fff;
  outline: 3px solid var(--ml-black);
  border-radius: 8px !important;
  transform: rotate(-2.2deg);
  box-shadow: 15px 16px 0 var(--ml-purple), 0 26px 44px rgba(34,18,48,.16);
}

/* Räväkämmät osio-otsikot */
.ml-page-kirjailija-mia-laati .ml-section-heading {
  display: inline-block;
  margin: 32px 0 24px;
  padding: 10px 16px 11px;
  background: var(--ml-black);
  color: #fff;
  border-radius: 7px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 20px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
  transform: rotate(-1deg);
  box-shadow: 7px 7px 0 var(--ml-purple);
}
.ml-page-kirjailija-mia-laati .ml-section-heading:nth-of-type(even) {
  transform: rotate(.8deg);
}

/* Listat: modernit kortit ilman erillisiä palluroita */
.ml-page-kirjailija-mia-laati .ml-content ul:not(.wp-block-gallery):not(.blocks-gallery-grid) {
  list-style: none;
  margin: 0 0 34px;
  padding: 8px 18px;
  background: rgba(255,255,255,.68);
  border: 1px solid rgba(110,58,167,.16);
  border-left: 5px solid var(--ml-purple);
  border-radius: 14px;
  box-shadow: 9px 10px 0 rgba(167,122,216,.12);
  backdrop-filter: blur(3px);
}
.ml-page-kirjailija-mia-laati .ml-content ul:not(.wp-block-gallery):not(.blocks-gallery-grid) > li {
  position: relative;
  margin: 0;
  padding: 13px 2px 13px 14px;
  border-bottom: 1px solid rgba(24,21,29,.08);
}
.ml-page-kirjailija-mia-laati .ml-content ul:not(.wp-block-gallery):not(.blocks-gallery-grid) > li:last-child {
  border-bottom: 0;
}
.ml-page-kirjailija-mia-laati .ml-content ul:not(.wp-block-gallery):not(.blocks-gallery-grid) > li::before {
  content: "";
  position: absolute;
  left: -2px;
  top: 1.55em;
  width: 6px;
  height: 6px;
  border: 0;
  border-radius: 1px;
  background: var(--ml-purple);
  box-shadow: none;
  transform: rotate(45deg);
}

/* Yhteystiedot saman korttikielen sisään */
.ml-page-kirjailija-mia-laati .ml-contact-card {
  margin: 0 0 42px;
  padding: 22px 24px;
  background: var(--ml-black);
  color: #fff;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 9px 10px 0 var(--ml-purple);
}
.ml-page-kirjailija-mia-laati .ml-contact-card p {
  margin: 0 0 7px;
}
.ml-page-kirjailija-mia-laati .ml-contact-card p:last-child {
  margin-bottom: 0;
}
.ml-page-kirjailija-mia-laati .ml-contact-card a {
  color: var(--ml-purple-soft);
}

@media (max-width: 760px) {
  .ml-page-kirjailija-mia-laati .ml-author-portrait {
    width: 82% !important;
    border-width: 6px;
    box-shadow: 10px 11px 0 var(--ml-purple), 0 20px 34px rgba(34,18,48,.14);
  }
  .ml-page-kirjailija-mia-laati .ml-section-heading {
    font-size: 17px;
    box-shadow: 5px 5px 0 var(--ml-purple);
  }
}

/* ===== v0.9 stronger navigation + books + events ===== */
.ml-site-header {
  height: 94px;
  align-items: center;
  padding: 0 34px;
  padding-bottom: 0;
}
.ml-brand {
  position: relative;
  display: inline-block;
  font-size: 32px;
  line-height: 1;
  transform: translateY(4px);
  padding-bottom: 10px;
}
.ml-brand::after {
  content: "";
  position: absolute;
  left: 1px;
  bottom: 0;
  width: 72%;
  height: 6px;
  border-radius: 999px;
  background: var(--ml-purple);
  transform: rotate(-2deg);
}
.ml-site-header nav {
  align-self: stretch;
  margin-bottom: 0;
  display: flex;
  align-items: stretch;
}
.ml-menu > li > a {
  align-items: center;
  padding-top: 12px;
  padding-bottom: 0;
}

/* Books page */
.ml-page-kirjat .ml-content {
  max-width: 1180px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.ml-page-kirjat .entry-title,
.ml-page-tapahtumat .entry-title {
  position: relative;
  display: inline-block;
  margin-bottom: 54px;
}
.ml-page-kirjat .entry-title::after,
.ml-page-tapahtumat .entry-title::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: -12px;
  width: 46%;
  height: 8px;
  background: var(--ml-purple);
  border-radius: 999px;
  transform: rotate(-1.6deg);
}
.ml-books-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 34px;
  margin-top: 8px;
}
.ml-book-card {
  position: relative;
  min-width: 0;
  padding: 22px 22px 24px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(110,58,167,.16);
  border-radius: 18px;
  box-shadow: 10px 11px 0 rgba(167,122,216,.18);
  transition: transform .18s ease, box-shadow .18s ease;
}
.ml-book-card:nth-child(3n+2) { transform: rotate(.5deg); }
.ml-book-card:nth-child(3n+3) { transform: rotate(-.45deg); }
.ml-book-card:hover {
  transform: translateY(-5px) rotate(0);
  box-shadow: 13px 15px 0 rgba(167,122,216,.24);
}
.ml-book-card-cover {
  height: 360px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  padding: 8px;
}
.ml-book-card-cover img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 3px;
  filter: drop-shadow(0 16px 15px rgba(28,20,35,.18));
}
.ml-book-card h2 {
  margin: 0 0 10px;
  font-size: 25px;
  line-height: 1.05;
  letter-spacing: -.035em;
}
.ml-book-card h2 a { text-decoration: none; color: var(--ml-ink); }
.ml-book-card h2 a:hover { color: #6e3aa7; }
.ml-book-card-excerpt {
  margin: 0;
  color: #655c6b;
  font-size: 15px;
  line-height: 1.55;
}
.ml-book-card-link {
  display: inline-block;
  margin-top: 16px;
  font-weight: 850;
  font-size: 14px;
  text-decoration: none;
  color: #6e3aa7 !important;
}
.ml-book-card-link::after { content: "  →"; }
.ml-books-empty {
  padding: 28px;
  background: rgba(255,255,255,.7);
  border-radius: 16px;
  border-left: 6px solid var(--ml-purple);
}

/* Events page: calendar-like list */
.ml-page-tapahtumat .ml-content { max-width: 980px; }
.ml-events-intro { margin-bottom: 34px; }
.ml-calendar-list {
  display: grid;
  gap: 18px;
  margin: 16px 0 40px !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}
.ml-calendar-list > li,
.ml-page-tapahtumat .ml-content ul > li {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 20px;
  align-items: center;
  min-height: 94px;
  margin: 0 !important;
  padding: 16px 20px !important;
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(110,58,167,.15) !important;
  border-radius: 16px;
  box-shadow: 8px 9px 0 rgba(167,122,216,.15);
}
.ml-page-tapahtumat .ml-content ul > li::before { display:none !important; }
.ml-event-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 62px;
  padding: 9px 8px;
  background: var(--ml-black);
  color: #fff;
  border-radius: 12px;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-weight: 900;
  line-height: 1;
  box-shadow: 5px 5px 0 var(--ml-purple);
  transform: rotate(-1deg);
}
.ml-event-date strong { font-size: 22px; }
.ml-event-date span { margin-top: 5px; color: var(--ml-purple-soft); font-size: 11px; letter-spacing:.08em; text-transform:uppercase; }
.ml-event-text { min-width:0; }
.ml-event-text p { margin:0; }
.ml-page-tapahtumat .ml-content h2,
.ml-page-tapahtumat .ml-content h3 {
  display: inline-block;
  margin: 36px 0 20px;
  padding: 9px 14px 10px;
  background: var(--ml-black);
  color: #fff;
  border-radius: 7px;
  box-shadow: 6px 6px 0 var(--ml-purple);
  transform: rotate(-.7deg);
  font-size: 20px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

@media (max-width: 900px) {
  .ml-brand { font-size: 27px; }
  .ml-menu > li > a { padding-top: 9px; }
  .ml-books-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 650px) {
  .ml-brand { font-size: 22px; padding-bottom: 8px; transform:none; }
  .ml-brand::after { height:4px; }
  .ml-menu > li > a { padding-top: 0; }
  .ml-books-grid { grid-template-columns: 1fr; gap:26px; }
  .ml-book-card-cover { height: 330px; }
  .ml-calendar-list > li,
  .ml-page-tapahtumat .ml-content ul > li {
    grid-template-columns: 72px 1fr;
    gap: 14px;
    padding: 14px !important;
  }
}

/* ===== v0.10 book-first WooCommerce + reviews ===== */

/* Logo alemmas: sekä teksti että vino lila viiva liikkuvat yhdessä. */
.ml-site-header { align-items: center; }
.ml-brand {
  transform: translateY(10px);
}
.ml-site-header nav {
  padding-top: 10px;
}
.ml-menu > li > a {
  padding-top: 16px;
}

/* WooCommerce: kirjan esittely ensin, kauppa vasta toisena. */
.single-product .ml-content-shell {
  padding-top: 150px;
}
.single-product .ml-content.woocommerce {
  max-width: 1120px;
}
.single-product div.product {
  display: grid;
  grid-template-columns: minmax(300px, 46%) minmax(320px, 1fr);
  gap: clamp(42px, 6vw, 84px);
  align-items: start;
}
.single-product div.product div.images,
.single-product div.product div.summary {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}
.single-product div.product div.images {
  position: relative;
  padding: 16px;
  background: rgba(255,255,255,.72);
  border: 2px solid var(--ml-black);
  border-radius: 14px;
  box-shadow: 13px 14px 0 var(--ml-purple);
  transform: rotate(-.8deg);
}
.single-product div.product div.images img {
  width: 100% !important;
  height: auto !important;
  max-height: 760px;
  object-fit: contain !important;
  border-radius: 6px;
}
.single-product div.product .summary {
  padding-top: 8px;
}
.single-product div.product .product_title {
  position: relative;
  display: inline-block;
  margin: 0 0 36px !important;
  font-size: clamp(44px,5.2vw,72px) !important;
  line-height: .98;
  letter-spacing: -.055em;
}
.single-product div.product .product_title::after {
  content:"";
  position:absolute;
  left:2px;
  bottom:-14px;
  width:46%;
  height:8px;
  border-radius:999px;
  background:var(--ml-purple);
  transform:rotate(-1.8deg);
}
.single-product div.product p.price {
  display:inline-block;
  margin: 8px 0 24px !important;
  padding: 7px 12px;
  background: var(--ml-black);
  color: #fff !important;
  border-radius: 7px;
  font-size: 19px !important;
  font-weight: 850;
  box-shadow: 5px 5px 0 var(--ml-purple);
  transform: rotate(.5deg);
}
.single-product div.product .woocommerce-product-details__short-description {
  margin: 16px 0 28px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px;
  line-height: 1.72;
  color: #39313e;
}
.single-product div.product form.cart {
  display: inline-flex;
  align-items: stretch;
  gap: 10px;
  margin: 4px 0 26px !important;
  padding: 10px;
  background: rgba(255,255,255,.66);
  border: 1px solid rgba(110,58,167,.15);
  border-radius: 12px;
}
.single-product div.product form.cart .quantity {
  margin:0 !important;
}
.single-product div.product form.cart .qty {
  width: 58px;
  height: 48px;
  border: 2px solid var(--ml-black);
  border-radius: 8px;
  background:#fff;
  color:var(--ml-ink);
  font: 800 16px/1 Inter, ui-sans-serif, system-ui, sans-serif;
  text-align:center;
}
.single-product div.product form.cart .single_add_to_cart_button {
  min-height:48px;
  margin:0 !important;
  padding: 0 20px !important;
  border-radius: 8px !important;
  background: var(--ml-black) !important;
  font-weight: 850 !important;
  box-shadow: 5px 5px 0 var(--ml-purple);
}
.single-product div.product form.cart .single_add_to_cart_button:hover {
  transform: translate(-1px,-1px);
  box-shadow: 7px 7px 0 var(--ml-purple);
}
.single-product div.product .stock {
  color:#6e3aa7 !important;
  font-weight:750;
}
.single-product div.product .product_meta {
  display:none;
}
.single-product div.product .woocommerce-tabs,
.single-product div.product .related,
.single-product div.product .upsells {
  grid-column: 1 / -1;
  width:100%;
  margin-top:58px;
}
.single-product div.product .woocommerce-tabs ul.tabs {
  display:none;
}
.single-product div.product .woocommerce-Tabs-panel {
  margin:0 !important;
  padding: 28px 30px !important;
  background:rgba(255,255,255,.65);
  border:1px solid rgba(110,58,167,.15);
  border-radius:16px;
}
.single-product div.product .related > h2,
.single-product div.product .upsells > h2,
.single-product div.product .woocommerce-Tabs-panel > h2 {
  display:inline-block;
  margin:0 0 30px;
  padding:9px 14px 10px;
  background:var(--ml-black);
  color:#fff;
  border-radius:7px;
  box-shadow:6px 6px 0 var(--ml-purple);
  transform:rotate(-.7deg);
  font-size:20px;
  text-transform:uppercase;
  letter-spacing:.04em;
}

/* Woo-tuotelistat näyttävät kirjoilta, eivät neliötuotteilta. */
.woocommerce ul.products {
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:28px;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display:none !important; }
.woocommerce ul.products li.product {
  float:none !important;
  width:auto !important;
  margin:0 !important;
  padding:18px 18px 20px !important;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(110,58,167,.14);
  border-radius:16px;
  box-shadow:8px 9px 0 rgba(167,122,216,.16);
}
.woocommerce ul.products li.product a img {
  width:100% !important;
  height:330px !important;
  margin:0 0 18px !important;
  object-fit:contain !important;
  object-position:center !important;
  background:transparent !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  padding:0 !important;
  font-size:20px !important;
  line-height:1.08;
  color:var(--ml-ink);
}
.woocommerce ul.products li.product .price {
  color:#6e3aa7 !important;
  font-weight:800;
}
.woocommerce ul.products li.product .button {
  display:none !important;
}

/* Kirja-arvioiden laskeutumissivu */
.ml-reviews-page {
  max-width:1180px;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.ml-reviews-page .entry-title {
  position:relative;
  display:inline-block;
  margin-bottom:52px;
}
.ml-reviews-page .entry-title::after {
  content:"";
  position:absolute;
  left:2px;
  bottom:-12px;
  width:46%;
  height:8px;
  border-radius:999px;
  background:var(--ml-purple);
  transform:rotate(-1.6deg);
}
.ml-reviews-intro {
  max-width:760px;
  margin:-16px 0 42px;
  font-family:Georgia, "Times New Roman", serif;
  font-size:19px;
  line-height:1.7;
}
.ml-reviews-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:34px;
}
.ml-review-card {
  overflow:hidden;
  min-width:0;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(110,58,167,.15);
  border-radius:18px;
  box-shadow:10px 11px 0 rgba(167,122,216,.18);
  transition:transform .18s ease,box-shadow .18s ease;
}
.ml-review-card:nth-child(3n+2){ transform:rotate(.45deg); }
.ml-review-card:nth-child(3n+3){ transform:rotate(-.4deg); }
.ml-review-card:hover {
  transform:translateY(-5px) rotate(0);
  box-shadow:13px 15px 0 rgba(167,122,216,.24);
}
.ml-review-card-image {
  display:flex;
  align-items:center;
  justify-content:center;
  height:330px;
  padding:18px;
  background:rgba(255,255,255,.42);
  text-decoration:none;
}
.ml-review-card-image img {
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:4px;
  filter:drop-shadow(0 14px 14px rgba(31,18,42,.15));
}
.ml-review-placeholder {
  display:flex;
  align-items:center;
  justify-content:center;
  width:76%;
  height:76%;
  border:3px solid var(--ml-black);
  color:var(--ml-black);
  font-weight:950;
  letter-spacing:.14em;
  box-shadow:9px 9px 0 var(--ml-purple);
  transform:rotate(-2deg);
}
.ml-review-card-body { padding:20px 22px 24px; }
.ml-review-date {
  margin-bottom:8px;
  color:#7f6e88;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ml-review-card h2 {
  margin:0 0 12px;
  font-size:25px;
  line-height:1.06;
  letter-spacing:-.035em;
}
.ml-review-card h2 a { color:var(--ml-ink); text-decoration:none; }
.ml-review-card h2 a:hover { color:#6e3aa7; }
.ml-review-card p {
  margin:0;
  color:#655c6b;
  font-size:15px;
  line-height:1.55;
}
.ml-review-link {
  display:inline-block;
  margin-top:16px;
  color:#6e3aa7 !important;
  font-size:14px;
  font-weight:850;
  text-decoration:none !important;
}
.ml-review-link::after { content:"  →"; }

/* Yksittäinen kirja-arvio / artikkeli: nosta artikkelikuva näkyviin. */
.ml-single-post .entry-title {
  position:relative;
  display:inline-block;
}
.ml-single-post .entry-title::after {
  content:"";
  position:absolute;
  left:2px;
  bottom:-12px;
  width:42%;
  height:8px;
  border-radius:999px;
  background:var(--ml-purple);
  transform:rotate(-1.5deg);
}
.ml-single-featured {
  width:min(76%,580px);
  margin:18px auto 58px;
  padding:10px;
  background:#fff;
  border:3px solid var(--ml-black);
  border-radius:10px;
  box-shadow:12px 13px 0 var(--ml-purple);
  transform:rotate(-1.2deg);
}
.ml-single-featured img {
  display:block;
  width:100%;
  max-height:700px;
  object-fit:contain;
  border-radius:4px;
}

@media (max-width: 900px) {
  .ml-brand { transform:translateY(8px); }
  .ml-site-header nav { padding-top:8px; }
  .single-product div.product { grid-template-columns:1fr; }
  .single-product div.product div.images { max-width:560px; margin:0 auto !important; }
  .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ml-reviews-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 650px) {
  .ml-brand { transform:none; margin-top:6px; }
  .ml-site-header nav { padding-top:0; }
  .single-product .ml-content-shell { padding-top:116px; }
  .single-product div.product { gap:38px; }
  .single-product div.product div.images { box-shadow:9px 10px 0 var(--ml-purple); }
  .woocommerce ul.products { grid-template-columns:1fr; }
  .woocommerce ul.products li.product a img { height:360px !important; }
  .ml-reviews-grid { grid-template-columns:1fr; gap:28px; }
  .ml-review-card-image { height:360px; }
  .ml-single-featured { width:88%; box-shadow:9px 10px 0 var(--ml-purple); }
}


/* ===== v0.11 status badges + cleaner review landing page ===== */
.ml-book-card,
.woocommerce ul.products li.product,
.single-product div.product .summary { position:relative; }

.ml-book-status {
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin:0 0 14px;
  padding:8px 13px 9px;
  border:2px solid var(--ml-black);
  border-radius:999px;
  background:#fff;
  color:var(--ml-black);
  font:900 12px/1 Inter,ui-sans-serif,system-ui,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:4px 4px 0 var(--ml-purple);
  transform:rotate(-1.5deg);
}
.ml-book-status--loppuunmyyty {
  background:var(--ml-black);
  color:#fff;
  box-shadow:4px 4px 0 #d7b8f2;
}
.ml-book-card .ml-book-status {
  position:absolute;
  z-index:3;
  top:14px;
  left:14px;
  margin:0;
}
.woocommerce ul.products li.product .ml-book-status {
  position:absolute;
  z-index:4;
  top:12px;
  left:12px;
  margin:0;
}
.single-product div.product .summary > .ml-book-status {
  margin:0 0 22px;
}
.single-product div.product .summary > .ml-book-status + .product_title {
  display:block;
}

/* Kirja-arviot: vanha Post Grid saa jäädä sivun sisällössä piiloon; oma korttinäkymä korvaa sen. */
.ml-reviews-intro .rt-tpg-container,
.ml-reviews-intro [id^="rt-tpg-container"],
.ml-reviews-intro .the-post-grid,
.ml-reviews-intro .tpg-widget,
.ml-reviews-intro .post-grid,
.ml-reviews-intro [class*="post-grid"] {
  display:none !important;
}
.ml-reviews-intro {
  margin-bottom:54px;
  padding:26px 30px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(110,58,167,.13);
  border-radius:18px;
  box-shadow:8px 9px 0 rgba(167,122,216,.16);
}
.ml-reviews-intro > :first-child { margin-top:0; }
.ml-reviews-intro > :last-child { margin-bottom:0; }
.ml-reviews-page::before {
  content:"";
  position:fixed;
  width:280px;
  height:280px;
  right:-120px;
  top:170px;
  border:28px solid rgba(167,122,216,.08);
  border-radius:50%;
  pointer-events:none;
}

/* Yksittäisen arvion kuvasta tehdään oikea katseenvangitsija. */
.ml-single-featured--from-content {
  width:min(82%,620px);
}


/* ===== v0.12 luettavampi teksti + satukirjamainen alkukirjain ===== */
.ml-content,
.ml-content p,
.ml-content li,
.ml-single-post,
.ml-single-post p,
.ml-single-post li {
  color:#2a2430;
}
.ml-single-post p {
  font-size:17px;
  line-height:1.72;
}
.ml-single-post .entry-content,
.ml-single-post article > p,
.ml-single-post article > ul,
.ml-single-post article > ol {
  color:#2a2430;
}

/* Ensimmäinen varsinainen tekstikappale saa satukirjamaisen alkukirjaimen. */
.ml-single-post article > p:first-of-type::first-letter {
  float:left;
  margin:.03em .12em 0 0;
  color:#8f54c8;
  font-family:Georgia, "Times New Roman", serif;
  font-size:4.25em;
  font-style:italic;
  font-weight:700;
  line-height:.72;
  text-shadow:3px 3px 0 rgba(167,122,216,.22);
}

@media (max-width:650px) {
  .ml-single-post p { font-size:16px; }
  .ml-single-post article > p:first-of-type::first-letter { font-size:3.7em; }
}


/* ===== v0.13 viimeistelyt ===== */
/* Logo selvästi alemmas yläpalkissa. */
.ml-brand { transform: translateY(16px); }
@media (max-width:900px) { .ml-brand { transform:translateY(12px); } }
@media (max-width:650px) { .ml-brand { transform:translateY(7px); margin-top:0; } }

/* Artikkelit-sivun intro yhtä leveäksi kuin korttirivi. */
.ml-reviews-intro {
  width:100%;
  max-width:none;
  box-sizing:border-box;
}

/* Tutustu myös / muut kirjat: ei hintoja näkyviin. */
.single-product div.product .related ul.products li.product .price,
.single-product div.product .upsells ul.products li.product .price {
  display:none !important;
}

/* PHP merkitsee ensimmäisen oikean tekstikappaleen, jotta alkukirjain toimii
   riippumatta Gutenbergin/divien rakenteesta. */
.ml-single-post .ml-story-first-paragraph::first-letter {
  float:left;
  margin:.03em .12em 0 0;
  color:#8f54c8;
  font-family:Georgia, "Times New Roman", serif;
  font-size:4.25em;
  font-style:italic;
  font-weight:700;
  line-height:.72;
  text-shadow:3px 3px 0 rgba(167,122,216,.22);
  transform:rotate(-5deg);
}
@media (max-width:650px) {
  .ml-single-post .ml-story-first-paragraph::first-letter { font-size:3.7em; }
}

/* ===== v0.14 lainaukset, artikkelikategoriat, suositukset ja karttasivu ===== */

/* Lainaus: selkeästi oma, sisennetty nosto isoilla lainausmerkeillä. */
.ml-single-post blockquote,
.ml-content blockquote {
  position:relative;
  margin:42px 32px 44px 42px;
  padding:30px 34px 28px 52px;
  border:0;
  border-left:6px solid var(--ml-purple);
  border-radius:0 18px 18px 0;
  background:rgba(255,255,255,.72);
  box-shadow:9px 10px 0 rgba(167,122,216,.16);
  color:#241c2b;
  font-size:1.06em;
  font-weight:600;
}
.ml-single-post blockquote::before,
.ml-content blockquote::before {
  content:"“";
  position:absolute;
  left:12px;
  top:-12px;
  color:#9d62d5;
  font-family:Georgia,"Times New Roman",serif;
  font-size:84px;
  font-weight:700;
  line-height:1;
  transform:rotate(-8deg);
}
.ml-single-post blockquote::after,
.ml-content blockquote::after {
  content:"”";
  position:absolute;
  right:18px;
  bottom:-44px;
  color:#d2b5eb;
  font-family:Georgia,"Times New Roman",serif;
  font-size:72px;
  line-height:1;
}
.ml-single-post blockquote p:first-child { margin-top:0; }
.ml-single-post blockquote p:last-child { margin-bottom:0; }

/* Artikkelikorttien kategoria näkyviin heti kuvasta. */
.ml-review-meta {
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.ml-category-chip {
  display:inline-flex;
  align-items:center;
  padding:5px 10px 4px;
  border:1px solid rgba(110,58,167,.22);
  border-radius:999px;
  background:#efe2fb;
  color:#60308f;
  font-size:12px;
  font-weight:850;
  line-height:1;
  letter-spacing:.02em;
}
.ml-review-date { color:#665d6c; font-size:13px; }

/* Yksittäisen artikkelin saman alakategorian suositukset. */
.ml-related-posts {
  margin:76px 0 20px;
  padding-top:34px;
  border-top:2px solid rgba(110,58,167,.14);
}
.ml-related-posts > h2 {
  margin:0 0 28px;
  font-size:clamp(26px,3vw,40px);
  line-height:1.05;
}
.ml-related-posts > h2 span {
  display:inline-block;
  margin-right:9px;
  padding:7px 11px 6px;
  background:#17131b;
  color:#fff;
  transform:rotate(-1.5deg);
  box-shadow:5px 6px 0 #b681e4;
}
.ml-related-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
.ml-related-card {
  overflow:hidden;
  border:1px solid rgba(110,58,167,.13);
  border-radius:18px;
  background:rgba(255,255,255,.74);
  box-shadow:8px 9px 0 rgba(167,122,216,.16);
}
.ml-related-image {
  display:block;
  aspect-ratio:4/3;
  background:#eee5f5;
  overflow:hidden;
}
.ml-related-image img { width:100%; height:100%; object-fit:cover; border-radius:0; }
.ml-related-body { padding:18px 18px 20px; }
.ml-related-body h3 { margin:11px 0 0; font-size:20px; line-height:1.12; }
.ml-related-body h3 a { color:#1c1720; text-decoration:none; }

/* Kartalla-sivu saa hengittää koko näytön leveydellä. */
.ml-page-kartalla .ml-content-shell { padding-left:24px; padding-right:24px; }
.ml-page-kartalla .ml-content {
  width:min(1460px, calc(100vw - 48px));
  max-width:none;
}
.ml-page-kartalla .entry-title { margin-bottom:24px; }
.ml-page-kartalla .ml-content article > h2,
.ml-page-kartalla .ml-content article > p {
  max-width:820px;
}
.ml-page-kartalla .leaflet-container,
.ml-page-kartalla [class*="open-user-map"],
.ml-page-kartalla [class*="oum-map"],
.ml-page-kartalla .oum-map,
.ml-page-kartalla iframe {
  width:100% !important;
  max-width:none !important;
}
.ml-page-kartalla .leaflet-container {
  min-height:clamp(520px,68vh,820px) !important;
  border:3px solid #17131b;
  border-radius:22px;
  box-shadow:12px 13px 0 #b681e4;
  overflow:hidden;
}

/* Alkukirjain: koska sisältö on nyt oman rungon sisällä, kohdistetaan myös siihen varmasti. */
.ml-single-post .ml-single-body > p:first-of-type::first-letter,
.ml-single-post .ml-story-first-paragraph::first-letter {
  float:left;
  margin:.03em .12em 0 0;
  color:#8f54c8;
  font-family:Georgia,"Times New Roman",serif;
  font-size:4.25em;
  font-style:italic;
  font-weight:700;
  line-height:.72;
  text-shadow:3px 3px 0 rgba(167,122,216,.22);
}

@media (max-width:820px) {
  .ml-related-grid { grid-template-columns:1fr; }
  .ml-single-post blockquote,.ml-content blockquote { margin-left:12px; margin-right:8px; padding-left:46px; }
  .ml-page-kartalla .ml-content { width:100%; }
  .ml-page-kartalla .leaflet-container { min-height:58vh !important; border-radius:14px; }
}


/* ===== v0.15 tapahtumakalenteri + sisällöntuotanto ===== */

/* TAPAHTUMAT: otsikko kunnolla näkyviin ja tapahtumat oikeiksi kortiksi. */
.ml-page-tapahtumat .ml-content-shell {
  padding-top: 164px;
  background:
    radial-gradient(circle at 92% 18%, rgba(167,122,216,.16), transparent 24%),
    radial-gradient(circle at 9% 76%, rgba(167,122,216,.10), transparent 22%),
    var(--ml-paper);
}
.ml-page-tapahtumat .ml-content {
  max-width: 1160px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.ml-page-tapahtumat .entry-title {
  position:relative;
  z-index:2;
  display:inline-block;
  margin:0 0 62px;
  padding:12px 18px 14px;
  background:#17131b;
  color:#fff;
  font-size:clamp(48px,7vw,82px);
  line-height:.92;
  letter-spacing:-.055em;
  transform:rotate(-1deg);
  box-shadow:10px 11px 0 #b681e4;
}
.ml-page-tapahtumat .entry-title::after {
  content:"";
  position:absolute;
  left:18px;
  bottom:-17px;
  width:38%;
  height:7px;
  border-radius:999px;
  background:#b681e4;
  transform:rotate(-2deg);
}
.ml-page-tapahtumat .ml-events-content > p:first-child {
  max-width:760px;
  margin:-18px 0 42px;
  color:#3b3341;
  font-family:Georgia,"Times New Roman",serif;
  font-size:20px;
  line-height:1.65;
}
.ml-page-tapahtumat .ml-calendar-list {
  gap:24px;
  margin-top:22px !important;
}
.ml-page-tapahtumat .ml-calendar-list > li,
.ml-page-tapahtumat .ml-content ul > li {
  position:relative;
  grid-template-columns:118px minmax(0,1fr);
  gap:28px;
  min-height:126px;
  padding:22px 28px !important;
  overflow:visible;
  background:rgba(255,255,255,.80);
  border:1px solid rgba(110,58,167,.13) !important;
  border-radius:22px;
  box-shadow:10px 11px 0 rgba(167,122,216,.19);
  transition:transform .18s ease, box-shadow .18s ease;
}
.ml-page-tapahtumat .ml-calendar-list > li:nth-child(even) { transform:rotate(.25deg); }
.ml-page-tapahtumat .ml-calendar-list > li:nth-child(odd) { transform:rotate(-.2deg); }
.ml-page-tapahtumat .ml-calendar-list > li:hover {
  transform:translateY(-4px) rotate(0);
  box-shadow:14px 15px 0 rgba(167,122,216,.24);
}
.ml-page-tapahtumat .ml-event-date {
  min-height:82px;
  padding:14px 10px 12px;
  border-radius:16px;
  box-shadow:7px 7px 0 #b681e4;
  transform:rotate(-2deg);
}
.ml-page-tapahtumat .ml-event-date strong { font-size:30px; letter-spacing:-.04em; }
.ml-page-tapahtumat .ml-event-date span { margin-top:8px; font-size:12px; font-weight:800; }
.ml-page-tapahtumat .ml-event-text {
  color:#28222d;
  font-size:17px;
  line-height:1.55;
}
.ml-page-tapahtumat .ml-event-text strong,
.ml-page-tapahtumat .ml-event-text b {
  display:block;
  margin-bottom:5px;
  color:#17131b;
  font-size:21px;
  line-height:1.15;
}
.ml-page-tapahtumat .ml-content h2,
.ml-page-tapahtumat .ml-content h3 {
  margin:46px 0 26px;
  padding:10px 16px 11px;
  font-size:22px;
  border-radius:8px;
  box-shadow:7px 7px 0 #b681e4;
}

/* SISÄLLÖNTUOTANTO: vähemmän tavallista tekstisivua, enemmän portfolio-/palvelusivua. */
.ml-page-sisallontuotanto .ml-content-shell,
.ml-page-sisallontuotantoa .ml-content-shell {
  padding-top:164px;
  background:
    radial-gradient(circle at 88% 12%, rgba(167,122,216,.18), transparent 25%),
    radial-gradient(circle at 8% 62%, rgba(167,122,216,.09), transparent 24%),
    var(--ml-paper);
}
.ml-page-sisallontuotanto .ml-content,
.ml-page-sisallontuotantoa .ml-content {
  max-width:1160px;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.ml-page-sisallontuotanto .entry-title,
.ml-page-sisallontuotantoa .entry-title {
  position:relative;
  display:inline-block;
  margin:0 0 54px;
  color:#17131b;
  font-size:clamp(48px,7vw,82px);
  line-height:.92;
  letter-spacing:-.055em;
}
.ml-page-sisallontuotanto .entry-title::after,
.ml-page-sisallontuotantoa .entry-title::after {
  content:"";
  display:block;
  width:43%;
  height:8px;
  margin-top:13px;
  border-radius:999px;
  background:#a77ad8;
  transform:rotate(-2deg);
}
.ml-creator-intro {
  position:relative;
  max-width:900px;
  margin:0 0 62px;
  padding:30px 34px;
  background:rgba(255,255,255,.80);
  border:1px solid rgba(110,58,167,.13);
  border-radius:22px;
  box-shadow:11px 12px 0 rgba(167,122,216,.18);
  font-family:Georgia,"Times New Roman",serif;
  font-size:20px;
  line-height:1.7;
}
.ml-creator-intro::before {
  content:"✦";
  position:absolute;
  right:24px;
  top:-26px;
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#17131b;
  color:#d7b5f2;
  font-family:Inter,sans-serif;
  font-size:25px;
  box-shadow:6px 6px 0 #b681e4;
  transform:rotate(8deg);
}
.ml-creator-sections {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px;
  align-items:start;
}
.ml-creator-section {
  position:relative;
  min-width:0;
  padding:30px 30px 32px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(110,58,167,.13);
  border-radius:22px;
  box-shadow:9px 10px 0 rgba(167,122,216,.16);
}
.ml-creator-section:nth-child(3n+2) { transform:rotate(.25deg); }
.ml-creator-section:nth-child(3n+3) { transform:rotate(-.25deg); }
.ml-creator-section > h2,
.ml-creator-section > h3 {
  display:inline-block;
  margin:-46px 0 24px !important;
  padding:9px 14px 10px;
  background:#17131b;
  color:#fff !important;
  border-radius:8px;
  box-shadow:6px 6px 0 #b681e4;
  transform:rotate(-1deg);
  font-size:22px !important;
  line-height:1.05;
  letter-spacing:-.025em !important;
}
.ml-creator-section p,
.ml-creator-section li { color:#39313f; font-size:16px; line-height:1.65; }
.ml-creator-section img {
  width:100%;
  border:3px solid #17131b;
  border-radius:14px;
  box-shadow:7px 8px 0 #b681e4;
}
.ml-creator-section a:not(.wp-block-button__link) {
  color:#6e3aa7;
  font-weight:750;
}
.ml-page-sisallontuotanto .wp-block-button__link,
.ml-page-sisallontuotantoa .wp-block-button__link {
  background:#17131b;
  color:#fff;
  border-radius:8px;
  box-shadow:5px 6px 0 #b681e4;
  font-weight:850;
  transition:transform .15s ease;
}
.ml-page-sisallontuotanto .wp-block-button__link:hover,
.ml-page-sisallontuotantoa .wp-block-button__link:hover { transform:translateY(-2px); }

@media (max-width:820px) {
  .ml-page-tapahtumat .ml-content-shell,
  .ml-page-sisallontuotanto .ml-content-shell,
  .ml-page-sisallontuotantoa .ml-content-shell { padding-top:126px; }
  .ml-page-tapahtumat .ml-calendar-list > li,
  .ml-page-tapahtumat .ml-content ul > li { grid-template-columns:88px 1fr; gap:18px; padding:17px !important; }
  .ml-page-tapahtumat .ml-event-date strong { font-size:24px; }
  .ml-creator-sections { grid-template-columns:1fr; gap:44px; }
  .ml-creator-intro { padding:24px; font-size:18px; }
}

/* ===== v0.16 Ajankohtaista / tapahtumat ===== */
.ml-events-page,.ml-some-page{padding-top:150px;background:radial-gradient(circle at 92% 10%,rgba(167,122,216,.18),transparent 25%),var(--ml-paper)}
.ml-wide-content{max-width:1120px!important}
.ml-events-page .entry-title,.ml-some-page .entry-title{font-size:clamp(52px,7vw,84px);line-height:.92;letter-spacing:-.055em;margin:0 0 56px;position:relative;display:inline-block;color:#151219}
.ml-events-page .entry-title:after,.ml-some-page .entry-title:after{content:"";display:block;width:44%;height:8px;background:#a77ad8;border-radius:99px;transform:rotate(-2deg);margin-top:12px}
.ml-events-section-title{display:inline-block!important;margin:0 0 34px!important;padding:11px 18px 12px!important;background:#151219!important;color:#fff!important;border-radius:9px;box-shadow:7px 7px 0 #b681e4;transform:rotate(-1deg);font-size:30px!important}
.ml-event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-bottom:70px}
.ml-event-card{position:relative;background:rgba(255,255,255,.86);border:1px solid rgba(80,45,110,.13);border-radius:22px;padding:30px 30px 28px;box-shadow:10px 11px 0 rgba(167,122,216,.2);min-height:210px;overflow:hidden}
.ml-event-card:nth-child(even){transform:rotate(.25deg)}.ml-event-card:nth-child(odd){transform:rotate(-.2deg)}
.ml-event-card:before{content:"";position:absolute;width:72px;height:72px;border:14px solid rgba(167,122,216,.13);border-radius:50%;right:-24px;top:-25px}
.ml-event-card h3,.ml-event-card h4{font-size:25px!important;line-height:1.05!important;margin:0 0 18px!important;color:#151219!important;letter-spacing:-.025em}
.ml-event-card p{font-size:17px;line-height:1.6;color:#302936;margin:0 0 12px}.ml-event-card p:first-of-type{font-weight:800;color:#7240a8}

/* ===== v0.16 Sisällöntuotanto / some ===== */
.ml-some-intro{position:relative;margin-bottom:54px;padding:34px 38px;background:#151219;color:#fff;border-radius:22px;box-shadow:11px 12px 0 #b681e4;font-size:19px;line-height:1.65}
.ml-some-intro p{color:#fff!important}.ml-some-intro a{color:#d9b9f3!important;font-weight:800}
.ml-some-intro img{background:#fff;border-radius:14px;padding:10px;max-width:150px;height:150px;object-fit:contain;margin:12px 10px 0 0;box-shadow:5px 6px 0 rgba(183,129,228,.75)}
.ml-some-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;align-items:start}
.ml-some-card{background:rgba(255,255,255,.84);border:1px solid rgba(80,45,110,.13);border-radius:22px;padding:32px;box-shadow:10px 11px 0 rgba(167,122,216,.19);min-width:0}
.ml-some-card:nth-child(odd){transform:rotate(-.18deg)}.ml-some-card:nth-child(even){transform:rotate(.18deg)}
.ml-some-card h2,.ml-some-card h3{display:inline-block;margin:-49px 0 24px!important;padding:10px 16px 11px!important;background:#151219!important;color:#fff!important;border-radius:8px;box-shadow:6px 6px 0 #b681e4;transform:rotate(-1deg);font-size:24px!important;line-height:1.05!important}
.ml-some-card p,.ml-some-card li{font-size:16.5px;line-height:1.65;color:#302936}.ml-some-card img{max-width:100%;height:auto;border-radius:14px}.ml-some-card a{color:#6e3aa7;font-weight:800}
@media(max-width:820px){.ml-event-grid,.ml-some-grid{grid-template-columns:1fr}.ml-events-page,.ml-some-page{padding-top:125px}.ml-event-card,.ml-some-card{transform:none!important}.ml-some-intro{padding:26px}}


/* ===== v0.17 Ajankohtaista: varma korttinäkymä ===== */
.ml-events-page .ml-events-article > .entry-title{
  margin-bottom: 42px !important;
}
.ml-events-page .ml-event-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px;
  align-items:start;
}
.ml-events-page .ml-event-card{
  position:relative;
  background:rgba(255,255,255,.80);
  border:1px solid rgba(22,18,28,.08);
  border-radius:20px;
  padding:0 28px 26px;
  box-shadow:9px 10px 0 rgba(166,108,220,.16);
  overflow:hidden;
}
.ml-events-page .ml-event-card::before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:5px;
  background:#a66cdc;
}
.ml-events-page .ml-event-card-head{
  margin:0 -28px 22px;
  padding:22px 28px 18px 33px;
  background:#151319;
  border-bottom:4px solid #a66cdc;
}
.ml-events-page .ml-event-card-head h2{
  margin:0 !important;
  color:#fff !important;
  font-size:clamp(1.25rem,2vw,1.75rem) !important;
  line-height:1.08 !important;
  font-weight:850 !important;
}
.ml-events-page .ml-event-card p{
  margin:0 0 14px;
  color:#2a2530;
  line-height:1.65;
}
.ml-events-page .ml-event-card p:first-of-type{
  font-weight:750;
  color:#6f3ca1;
}
.ml-events-page .ml-events-fallback{
  display:block;
  background:rgba(255,255,255,.78);
  border-radius:20px;
  padding:30px;
  box-shadow:9px 10px 0 rgba(166,108,220,.15);
}
@media (max-width:820px){
  .ml-events-page .ml-event-grid{grid-template-columns:1fr;}
}

/* ===== v0.18 crooked / spooky personality test ===== */
:root{ --ml-acid:#d8ff57; }

/* Header: same palette, more deliberate crookedness */
.ml-site-header{ border-bottom:1px solid rgba(167,122,216,.28); }
.ml-brand::after{
  width:82%; height:7px; border-radius:2px;
  transform:rotate(-3.2deg) skewX(-12deg);
  box-shadow:8px 2px 0 rgba(167,122,216,.20);
}
.ml-menu > li > a{ position:relative; }
.ml-menu > li > a::after{
  content:""; position:absolute; left:18%; right:18%; bottom:14px; height:3px;
  background:var(--ml-purple); transform:scaleX(0) rotate(-2deg); transform-origin:left;
  transition:transform .16s ease;
}
.ml-menu > li:hover > a::after,.ml-menu > li.current-menu-item > a::after{transform:scaleX(1) rotate(-2deg);}

/* Less SaaS: sharper paper/card shapes */
.ml-book-card,.ml-review-card,
.ml-page-kirjailija-mia-laati .ml-info-card,
.ml-page-kirjailija-mia-laati .ml-contact-card{
  border-radius:5px;
  border:2px solid rgba(24,21,29,.82);
  box-shadow:9px 10px 0 var(--ml-purple);
}
.ml-book-card:nth-child(4n+1),.ml-review-card:nth-child(4n+1){transform:rotate(-.65deg);}
.ml-book-card:nth-child(4n+2),.ml-review-card:nth-child(4n+2){transform:rotate(.75deg);}
.ml-book-card:nth-child(4n+3),.ml-review-card:nth-child(4n+3){transform:rotate(-.25deg);}
.ml-book-card:nth-child(4n),.ml-review-card:nth-child(4n){transform:rotate(.35deg);}
.ml-book-card:hover,.ml-review-card:hover{
  transform:translate(-3px,-6px) rotate(-.45deg);
  box-shadow:14px 16px 0 var(--ml-purple);
}

/* Crooked tape-like section headings */
.ml-page-kirjailija-mia-laati .ml-section-heading,
.ml-page-kirjat .entry-title,
.ml-reviews-page .entry-title,
.ml-page-ajankohtaista .entry-title,
.ml-page-some .entry-title{
  transform:rotate(-1.15deg);
}
.ml-page-kirjat .entry-title::after,.ml-reviews-page .entry-title::after,
.ml-page-tapahtumat .entry-title::after{
  border-radius:2px; transform:rotate(-3deg) skewX(-10deg);
}

/* Book/review images feel pinned onto the page */
.ml-book-card-cover img,.ml-review-card-image img{
  border:2px solid rgba(12,12,15,.78);
  box-shadow:7px 8px 0 rgba(12,12,15,.10);
}
.ml-book-card:nth-child(even) .ml-book-card-cover img,
.ml-review-card:nth-child(even) .ml-review-card-image img{transform:rotate(.7deg);}
.ml-book-card:nth-child(odd) .ml-book-card-cover img,
.ml-review-card:nth-child(odd) .ml-review-card-image img{transform:rotate(-.55deg);}

/* Tiny unsettling mark in card corners */
.ml-book-card::before,.ml-review-card::before{
  content:"✦"; position:absolute; z-index:3; top:-13px; right:14px;
  color:var(--ml-black); font-size:23px; line-height:1; transform:rotate(17deg);
  text-shadow:3px 3px 0 var(--ml-purple);
}
.ml-book-card:nth-child(3n)::before,.ml-review-card:nth-child(3n)::before{content:"×";font-size:28px;}

/* Quotes: theatrical rather than corporate */
.ml-single-post blockquote,.ml-content blockquote{
  position:relative; margin:38px 7% 38px 10%; padding:30px 34px 25px 52px;
  background:rgba(255,255,255,.66); border:0; border-left:7px solid var(--ml-black);
  border-radius:2px; box-shadow:8px 9px 0 var(--ml-purple); transform:rotate(-.35deg);
  color:#2b2530;
}
.ml-single-post blockquote::before,.ml-content blockquote::before{
  content:"“"; position:absolute; left:12px; top:-18px; font-family:Georgia,serif;
  font-size:78px; font-weight:900; color:var(--ml-purple); line-height:1;
  transform:rotate(-8deg);
}

/* Portrait: more zine / horror-comedy */
.ml-page-kirjailija-mia-laati .ml-author-portrait{
  border-radius:2px !important; transform:rotate(-2.2deg) !important;
  box-shadow:12px 13px 0 var(--ml-black),20px 21px 0 var(--ml-purple) !important;
}

/* Small surprise only on hover/focus: acid accent, not a new main colour */
a:not(.ml-brand):focus-visible{outline:4px solid var(--ml-acid);outline-offset:4px;}
.ml-book-card-link:hover,.ml-review-link:hover{background:var(--ml-acid);color:var(--ml-black)!important;box-shadow:4px 4px 0 var(--ml-black);transform:rotate(-1deg);}

@media(max-width:760px){
  .ml-book-card,.ml-review-card{transform:none!important;box-shadow:6px 7px 0 var(--ml-purple);}
  .ml-single-post blockquote,.ml-content blockquote{margin:30px 0;padding:28px 22px 22px 42px;transform:none;}
}

/* ===== v0.20 KIRJAHYLLY: oikea yhtenäinen hylly ===== */
.ml-bookshelf-page .ml-content{max-width:1240px!important;}
.ml-bookshelf-page .ml-books-intro{max-width:900px;margin-bottom:34px;}
.ml-bookshelf{margin:30px 0 80px;}
.ml-shelf-row{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:34px;
  padding:18px 28px 70px;
  margin:0 0 48px;
}
/* yksi oikea hyllylauta koko rivin alla */
.ml-shelf-row::before{
  content:"";position:absolute;left:0;right:0;top:376px;height:22px;
  background:#17141b;
  box-shadow:0 8px 0 #9b6bca,0 15px 18px rgba(31,18,39,.25);
  transform:skewX(-1deg);
  z-index:0;
}
.ml-shelf-row::after{
  content:"";position:absolute;left:18px;right:-10px;top:398px;height:7px;
  background:#302936;opacity:.75;z-index:0;
}
.ml-shelf-book{position:relative;min-width:0;z-index:1;}
.ml-shelf-book-stage{
  position:relative;height:358px;display:flex;align-items:flex-end;justify-content:center;
  padding:0 8px 0;
}
.ml-shelf-cover{
  display:flex;align-items:flex-end;justify-content:center;width:100%;height:100%;
  text-decoration:none;transition:transform .18s ease,filter .18s ease;transform-origin:50% 100%;
}
.ml-shelf-cover img{
  display:block!important;width:auto!important;height:auto!important;
  max-width:220px!important;max-height:330px!important;object-fit:contain!important;
  border-radius:1px!important;
  box-shadow:5px 6px 0 rgba(18,15,21,.9),9px 10px 0 rgba(167,122,216,.72)!important;
}
.ml-shelf-book-1 .ml-shelf-cover{transform:rotate(-.45deg)}
.ml-shelf-book-2 .ml-shelf-cover{transform:rotate(.8deg)}
.ml-shelf-book-3 .ml-shelf-cover{transform:rotate(-.7deg)}
.ml-shelf-book-4 .ml-shelf-cover{transform:rotate(.35deg)}
.ml-shelf-book-5 .ml-shelf-cover{transform:rotate(-.25deg)}
.ml-shelf-book:hover .ml-shelf-cover{transform:translateY(-10px) rotate(-1deg);filter:drop-shadow(0 12px 9px rgba(35,20,45,.18));}
.ml-shelf-caption{padding:46px 5px 0;text-align:center;}
.ml-shelf-caption h2{margin:0 0 8px;font-size:20px;line-height:1.08;letter-spacing:-.035em;}
.ml-shelf-caption h2 a{color:var(--ml-ink);text-decoration:none;}
.ml-shelf-caption h2 a:hover{color:#6e3aa7;}
.ml-shelf-caption p{margin:0 auto;max-width:230px;color:#514957;font-size:13px;line-height:1.45;}
.ml-shelf-book .ml-book-status{position:absolute;z-index:5;top:18px;left:8px;margin:0;transform:rotate(-4deg);}
@media(max-width:980px){
 .ml-shelf-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;padding-left:18px;padding-right:18px;}
 .ml-shelf-row::before{top:346px}.ml-shelf-row::after{top:368px}
 .ml-shelf-book-stage{height:328px}.ml-shelf-cover img{max-width:195px!important;max-height:300px!important}
 .ml-shelf-caption{padding-top:46px}
}
@media(max-width:720px){
 .ml-shelf-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:10px 8px 56px;margin-bottom:35px;}
 .ml-shelf-row::before{top:278px;height:16px;box-shadow:0 6px 0 #9b6bca,0 11px 13px rgba(31,18,39,.22)}
 .ml-shelf-row::after{top:294px;height:5px}
 .ml-shelf-book-stage{height:264px;padding:0 3px}.ml-shelf-cover img{max-width:145px!important;max-height:238px!important;box-shadow:4px 4px 0 rgba(18,15,21,.9),7px 7px 0 rgba(167,122,216,.72)!important}
 .ml-shelf-caption{padding-top:35px}.ml-shelf-caption h2{font-size:16px}.ml-shelf-caption p{font-size:12px}
}

/* ===== v0.21 KIRJAHYLLY: kaappi + hyllynreuna ===== */
.ml-bookshelf{padding:12px 0 30px;}
.ml-shelf-row{
  gap:30px;
  padding:38px 38px 112px;
  margin:0 0 58px;
  background:
    radial-gradient(circle at 22% 20%,rgba(167,122,216,.10),transparent 28%),
    linear-gradient(180deg,#201b24 0%,#151218 100%);
  border-left:13px solid #100e12;
  border-right:13px solid #100e12;
  border-top:10px solid #100e12;
  box-shadow:12px 14px 0 rgba(167,122,216,.20), inset 0 0 0 1px rgba(255,255,255,.035);
}
/* varsinainen hylly: syvä, etureunallinen lauta */
.ml-shelf-row::before{
  left:-20px;right:-20px;top:396px;height:31px;
  background:linear-gradient(180deg,#302936 0 7px,#17141b 7px 100%);
  border-top:2px solid #4b4053;
  border-bottom:7px solid #09080a;
  box-shadow:0 9px 0 #8f5fc0,0 15px 20px rgba(0,0,0,.38);
  transform:none;
  z-index:3;
}
.ml-shelf-row::after{
  left:-7px;right:-7px;top:427px;height:12px;
  background:linear-gradient(90deg,#0b090d,#29222e 15%,#17131b 70%,#09080b);
  opacity:1;z-index:2;
  clip-path:polygon(1% 0,99% 0,100% 100%,0 78%);
}
.ml-shelf-book-stage{height:358px;z-index:2;}
.ml-shelf-cover img{
  max-width:218px!important;max-height:336px!important;
  box-shadow:4px 5px 0 rgba(0,0,0,.82),8px 8px 0 rgba(167,122,216,.46)!important;
}
/* nimilappu hyllyn etureunan alla – ei enää irrallista verkkokauppakorttia */
.ml-shelf-caption{
  position:relative;z-index:5;
  margin:44px -3px 0;
  padding:13px 10px 11px;
  min-height:76px;
  text-align:left;
  background:#f8f5fa;
  border:1px solid rgba(20,16,24,.20);
  border-radius:2px;
  box-shadow:4px 5px 0 rgba(167,122,216,.35);
  transform:rotate(-.35deg);
}
.ml-shelf-book:nth-child(even) .ml-shelf-caption{transform:rotate(.3deg)}
.ml-shelf-caption h2{font-size:17px;margin:0 0 5px;line-height:1.08;}
.ml-shelf-caption p{font-size:11.5px;line-height:1.32;max-width:none;margin:0;color:#574f5b;}
.ml-shelf-book .ml-book-status{top:7px;left:-3px;}

@media(max-width:980px){
 .ml-shelf-row::before{top:366px}.ml-shelf-row::after{top:397px}
 .ml-shelf-row{padding:38px 24px 105px}
 .ml-shelf-caption{margin-top:44px}
}
@media(max-width:720px){
 .ml-shelf-row{padding:24px 13px 92px;border-left-width:8px;border-right-width:8px;border-top-width:7px}
 .ml-shelf-row::before{top:298px;height:24px;left:-13px;right:-13px;border-bottom-width:5px}
 .ml-shelf-row::after{top:322px;height:9px}
 .ml-shelf-caption{margin-top:34px;padding:10px 8px;min-height:70px}
 .ml-shelf-caption h2{font-size:14px}.ml-shelf-caption p{font-size:10.5px}
}

/* ===== v0.23 KIRJASEINÄ: ilmava, vino, ei verkkokaupparuudukko ===== */
.ml-books-collage-page .ml-content{max-width:1180px!important;}
.ml-books-collage{grid-template-columns:repeat(3,minmax(0,1fr));gap:58px 42px;align-items:start;margin-top:28px;padding:8px 8px 70px;}
.ml-books-collage .ml-collage-card{
  border:0!important;border-radius:3px!important;
  background:rgba(255,255,255,.56)!important;
  padding:20px 20px 22px!important;
  box-shadow:9px 10px 0 rgba(167,122,216,.42)!important;
  transform-origin:50% 35%;
}
.ml-books-collage .ml-collage-card::after{
  content:"";position:absolute;z-index:-1;left:-8px;top:28px;width:38px;height:7px;
  background:#17141b;transform:rotate(-8deg);box-shadow:4px 4px 0 var(--ml-purple);
}
.ml-books-collage .ml-collage-card::before{top:-11px;right:12px;font-size:19px;}
.ml-books-collage .ml-collage-1{transform:translateY(8px) rotate(-1.15deg)!important;}
.ml-books-collage .ml-collage-2{transform:translateY(-8px) rotate(.65deg)!important;}
.ml-books-collage .ml-collage-3{transform:translateY(18px) rotate(-.35deg)!important;}
.ml-books-collage .ml-collage-4{transform:translateY(-4px) rotate(.9deg)!important;}
.ml-books-collage .ml-collage-5{transform:translateY(14px) rotate(-.7deg)!important;}
.ml-books-collage .ml-collage-6{transform:translateY(-10px) rotate(.35deg)!important;}
.ml-books-collage .ml-collage-card:hover{transform:translateY(-7px) rotate(0)!important;box-shadow:13px 15px 0 rgba(167,122,216,.58)!important;}
.ml-books-collage .ml-book-card-cover{height:350px;margin:0 0 18px;padding:2px 5px;}
.ml-books-collage .ml-book-card-cover img{width:auto!important;height:auto!important;max-width:100%!important;max-height:340px!important;object-fit:contain!important;border:0!important;border-radius:1px!important;box-shadow:6px 7px 0 rgba(20,17,23,.92)!important;filter:none!important;}
.ml-books-collage .ml-collage-card:nth-child(even) .ml-book-card-cover img{transform:rotate(.45deg);}
.ml-books-collage .ml-collage-card:nth-child(odd) .ml-book-card-cover img{transform:rotate(-.35deg);}
.ml-books-collage .ml-collage-copy{border-top:5px solid #17141b;padding:15px 3px 1px;position:relative;}
.ml-books-collage .ml-collage-copy::before{content:"";position:absolute;left:18px;top:-8px;width:74px;height:4px;background:var(--ml-purple);transform:rotate(-3deg);}
.ml-books-collage .ml-book-card h2{font-size:22px;margin:0 0 8px;}
.ml-books-collage .ml-book-card-excerpt{font-size:13.5px;line-height:1.45;color:#514957;}
.ml-books-collage .ml-book-card-link{margin-top:13px;font-size:13px;color:#17141b!important;border-bottom:3px solid var(--ml-purple);padding-bottom:2px;}
.ml-books-collage .ml-book-status{top:10px!important;left:8px!important;}
@media(max-width:900px){.ml-books-collage{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 28px}.ml-books-collage .ml-collage-card{transform:none!important}.ml-books-collage .ml-book-card-cover{height:330px}}
@media(max-width:600px){.ml-books-collage{grid-template-columns:1fr;gap:32px;padding-left:3px;padding-right:3px}.ml-books-collage .ml-book-card-cover{height:360px}.ml-books-collage .ml-collage-card{max-width:390px;margin:0 auto;width:100%;}}

/* ===== v0.24 PUOTI ===== */
.ml-shop-page-shell{padding-top:142px;}
.ml-shop-page{max-width:1220px!important;}
.ml-shop-hero{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin:0 0 34px;padding:0 0 26px;border-bottom:7px solid var(--ml-black);}
.ml-shop-hero::after{content:"";position:absolute;left:34px;bottom:-12px;width:150px;height:7px;background:var(--ml-purple);transform:rotate(-2.2deg);}
.ml-shop-kicker{display:inline-block;margin-bottom:8px;font-size:12px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:#6e3aa7;}
.ml-shop-page .entry-title{margin:0!important;font-size:clamp(52px,8vw,92px)!important;line-height:.86;letter-spacing:-.07em;}
.ml-shop-lead{margin:18px 0 0;font-family:Georgia,"Times New Roman",serif;font-size:20px;color:#514957;}
.ml-shop-scribble{font:900 72px/1 Georgia,serif;color:var(--ml-purple);transform:rotate(12deg);padding-right:16px;}
.ml-shop-intro{max-width:820px;margin:0 0 34px;font-size:17px;line-height:1.65;}
.ml-shop-cats{display:flex;flex-wrap:wrap;gap:10px;margin:34px 0 38px;}
.ml-shop-cats a{display:inline-block;padding:9px 14px;background:rgba(255,255,255,.58);border:2px solid var(--ml-black);color:var(--ml-black)!important;text-decoration:none!important;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;box-shadow:4px 4px 0 var(--ml-purple);transform:rotate(-.3deg);}
.ml-shop-cats a:nth-child(even){transform:rotate(.35deg)}
.ml-shop-cats a:hover,.ml-shop-cats a.is-active{background:var(--ml-black);color:#fff!important;transform:translateY(-2px) rotate(-.5deg);}
.ml-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 30px;margin:0 0 70px;}
.ml-shop-card{position:relative;display:flex;flex-direction:column;min-width:0;background:rgba(255,255,255,.72);border:2px solid var(--ml-black);box-shadow:9px 10px 0 rgba(167,122,216,.52);transition:transform .16s ease,box-shadow .16s ease;}
.ml-shop-card:nth-child(3n+1){transform:rotate(-.35deg)}
.ml-shop-card:nth-child(3n+2){transform:translateY(7px) rotate(.25deg)}
.ml-shop-card:nth-child(3n){transform:translateY(-4px) rotate(-.15deg)}
.ml-shop-card:hover{transform:translateY(-6px) rotate(0);box-shadow:13px 14px 0 rgba(167,122,216,.68);}
.ml-shop-image{position:relative;display:flex;align-items:center;justify-content:center;height:390px;padding:22px 20px 16px;background:linear-gradient(145deg,rgba(217,199,238,.28),rgba(255,255,255,.34));overflow:hidden;}
.ml-shop-image img{display:block!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:350px!important;object-fit:contain!important;border-radius:1px!important;box-shadow:5px 6px 0 rgba(18,15,21,.88)!important;}
.ml-shop-card-body{position:relative;display:flex;flex-direction:column;flex:1;padding:20px 20px 22px;border-top:6px solid var(--ml-black);}
.ml-shop-card-body::before{content:"";position:absolute;left:24px;top:-10px;width:82px;height:5px;background:var(--ml-purple);transform:rotate(-3deg);}
.ml-shop-card-cat{margin:0 0 7px;font-size:10px;font-weight:950;letter-spacing:.12em;text-transform:uppercase;color:#7445a4;}
.ml-shop-card h2{margin:0 0 9px!important;font-size:24px!important;line-height:1.02;letter-spacing:-.04em;}
.ml-shop-card h2 a{color:var(--ml-black)!important;text-decoration:none!important;}
.ml-shop-short{margin:0 0 18px;color:#554c59;font-family:Georgia,"Times New Roman",serif;font-size:14px;line-height:1.5;}
.ml-shop-buyrow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px;border-top:1px solid rgba(24,21,29,.13);}
.ml-shop-price{font-size:19px;font-weight:950;color:var(--ml-black);}
.ml-shop-price del{font-size:12px;opacity:.5}.ml-shop-price ins{text-decoration:none;}
.ml-shop-buy,.ml-shop-more{display:inline-block;padding:10px 13px;background:var(--ml-black);color:#fff!important;text-decoration:none!important;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.035em;box-shadow:4px 4px 0 var(--ml-purple);}
.ml-shop-buy:hover,.ml-shop-more:hover{background:#6e3aa7;color:#fff!important;transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--ml-black);}
.ml-shop-more{background:transparent;color:var(--ml-black)!important;border-bottom:3px solid var(--ml-purple);box-shadow:none;padding:7px 0 3px;}
.ml-shop-card .ml-book-status{position:absolute;z-index:4;top:14px;left:12px;margin:0;transform:rotate(-4deg);}
@media(max-width:900px){.ml-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.ml-shop-card{transform:none!important}.ml-shop-image{height:350px}.ml-shop-image img{max-height:310px!important}}
@media(max-width:600px){.ml-shop-page-shell{padding-top:112px}.ml-shop-hero{align-items:flex-start}.ml-shop-scribble{font-size:46px}.ml-shop-grid{grid-template-columns:1fr;gap:28px}.ml-shop-image{height:370px}.ml-shop-image img{max-height:330px!important}.ml-shop-cats{gap:8px}.ml-shop-cats a{font-size:11px;padding:8px 10px}}


/* ===== v0.27 MINI CART ===== */
.ml-site-header nav{margin-left:auto;}
.ml-cart-wrap{position:relative;flex:0 0 auto;}
.ml-header-cart{position:relative;}
.ml-cart-toggle{display:flex;align-items:center;gap:8px;text-decoration:none;background:var(--ml-purple);color:#111;padding:10px 13px 10px 12px;border:2px solid #111;box-shadow:4px 4px 0 #fff;font-weight:900;line-height:1;transform:rotate(-1deg);}
.ml-cart-icon{font-size:18px;filter:grayscale(1);}
.ml-cart-label{font-size:13px;text-transform:uppercase;letter-spacing:.05em;}
.ml-cart-count{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:50%;background:#111;color:#fff;font-size:12px;}
.ml-mini-cart-panel{position:absolute;right:0;top:calc(100% + 12px);width:min(360px,calc(100vw - 28px));padding:16px;background:#f7f2fb;color:#17131c;border:2px solid #111;box-shadow:8px 8px 0 var(--ml-purple);opacity:0;visibility:hidden;transform:translateY(-5px);transition:.16s ease;z-index:100;}
.ml-header-cart:hover .ml-mini-cart-panel,.ml-header-cart:focus-within .ml-mini-cart-panel{opacity:1;visibility:visible;transform:translateY(0);}
.ml-mini-cart-items{display:grid;gap:12px;max-height:320px;overflow:auto;}
.ml-mini-cart-item{display:grid;grid-template-columns:52px 1fr 26px;gap:10px;align-items:center;padding-bottom:11px;border-bottom:1px solid rgba(24,21,29,.14);}
.ml-mini-cart-thumb img{display:block;width:46px;height:64px;object-fit:contain;background:#fff;}
.ml-mini-cart-copy{display:grid;gap:4px;font-size:13px;}
.ml-mini-cart-copy strong{font-size:14px;line-height:1.2;}
.ml-mini-cart-copy span{opacity:.72;}
.ml-mini-cart-remove{text-decoration:none;font-size:25px;font-weight:700;text-align:center;color:#111;}
.ml-mini-cart-total{display:flex;justify-content:space-between;gap:15px;padding:14px 0 10px;font-size:14px;}
.ml-mini-cart-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.ml-mini-cart-actions a{display:block;padding:11px 10px;text-align:center;text-decoration:none;border:2px solid #111;font-weight:900;font-size:13px;text-transform:uppercase;letter-spacing:.03em;}
.ml-mini-cart-actions .ml-checkout-link{background:#111;color:#fff;box-shadow:3px 3px 0 var(--ml-purple);}
.ml-mini-cart-empty{padding:8px 2px;font-weight:700;}
@media(max-width:900px){.ml-cart-label{display:none}.ml-cart-toggle{padding:8px}.ml-site-header{gap:10px}.ml-cart-icon{font-size:17px}.ml-mini-cart-panel{position:fixed;right:14px;top:70px}}
\n\n/* ===== v0.28 HEADER / CART / PRODUCT GALLERY ===== */
@media (min-width:901px){
  .ml-site-header{height:108px;padding:12px 44px 0;box-sizing:border-box;}
  .ml-brand{transform:translateY(1px);}
}
.ml-cart-wrap{margin-left:8px;}
.ml-cart-toggle{
  position:relative;display:flex;align-items:center;gap:9px;
  min-height:42px;padding:8px 11px 8px 10px;
  background:#f7f2fb;color:#17131c;border:2px solid #a77ad8;
  border-radius:3px;box-shadow:4px 4px 0 #17131c;
  transform:rotate(-.5deg);transition:.15s ease;
}
.ml-cart-toggle:hover,.ml-cart-toggle:focus{transform:translate(-1px,-1px) rotate(-.5deg);box-shadow:6px 6px 0 #a77ad8;}
.ml-cart-toggle::after{content:"";position:absolute;left:9px;right:9px;bottom:4px;height:2px;background:#a77ad8;transform:rotate(-1deg);opacity:.75;}
.ml-cart-icon{position:relative;display:block;width:19px;height:17px;border:2px solid #17131c;border-top-width:1px;border-radius:2px;filter:none;font-size:0;box-sizing:border-box;}
.ml-cart-icon .ml-bag-handle{position:absolute;left:4px;top:-7px;width:7px;height:7px;border:2px solid #17131c;border-bottom:0;border-radius:6px 6px 0 0;box-sizing:border-box;}
.ml-cart-label{font-size:12px;letter-spacing:.08em;color:#17131c;}
.ml-cart-count{min-width:21px;height:21px;background:#a77ad8;color:#17131c;border:1px solid #17131c;font-size:11px;font-weight:950;}
.ml-mini-cart-panel{top:calc(100% + 14px);border-radius:3px;box-shadow:8px 8px 0 #a77ad8;}
.ml-mini-cart-empty{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-style:italic;}

/* WooCommerce gallery: thumbnail strip + proper previous/next arrows, no popup. */
.single-product .woocommerce-product-gallery{position:relative;}
.single-product .woocommerce-product-gallery .flex-control-thumbs{display:flex!important;gap:10px;margin:10px 0 0!important;padding:0!important;list-style:none!important;}
.single-product .woocommerce-product-gallery .flex-control-thumbs li{float:none!important;width:72px!important;margin:0!important;}
.single-product .woocommerce-product-gallery .flex-control-thumbs img{width:72px!important;height:72px!important;object-fit:cover!important;border:2px solid transparent!important;box-shadow:none!important;cursor:pointer;opacity:.68;}
.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active{opacity:1;border-color:#a77ad8!important;}
.single-product .woocommerce-product-gallery .flex-direction-nav{display:block!important;margin:0!important;padding:0!important;list-style:none!important;}
.single-product .woocommerce-product-gallery .flex-direction-nav li{list-style:none!important;}
.single-product .woocommerce-product-gallery .flex-direction-nav a{position:absolute;top:43%;z-index:8;display:grid!important;place-items:center;width:42px;height:42px;background:#17131c;color:#fff!important;border:2px solid #fff;border-radius:50%;box-shadow:3px 3px 0 #a77ad8;text-decoration:none!important;font-size:0;opacity:.94;}
.single-product .woocommerce-product-gallery .flex-direction-nav a::before{font-family:Arial,sans-serif;font-size:27px;font-weight:700;line-height:1;}
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-prev{left:12px;}
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-next{right:12px;}
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-prev::before{content:"‹";}
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-next::before{content:"›";}
.single-product .woocommerce-product-gallery__image a{cursor:default;}
@media(max-width:900px){
  .ml-site-header{padding-left:22px;padding-right:22px;padding-top:8px;}
  .ml-cart-wrap{margin-left:0;}
  .ml-cart-toggle{box-shadow:3px 3px 0 #17131c;}
}

/* ===== v0.29 CART NOTICE + ROOMIER CART ===== */
.woocommerce-notices-wrapper{max-width:1100px;margin:0 auto 28px;}
.woocommerce-message,
.woocommerce-info,
.wc-block-components-notice-banner{
  position:relative!important;
  padding:20px 190px 20px 62px!important;
  background:#fff8ff!important;
  color:#17131c!important;
  border:2px solid #17131c!important;
  border-radius:12px!important;
  box-shadow:7px 7px 0 #a77ad8!important;
  font-family:Inter,ui-sans-serif,system-ui,sans-serif!important;
  font-size:17px!important;
  line-height:1.45!important;
  font-weight:700!important;
}
.woocommerce-message::before,
.woocommerce-info::before{color:#a77ad8!important;font-size:25px!important;top:16px!important;left:20px!important;}
.woocommerce-message .button,
.woocommerce-info .button{position:absolute!important;right:18px!important;top:50%!important;transform:translateY(-50%) rotate(-.5deg)!important;background:#17131c!important;color:#fff!important;border:0!important;box-shadow:4px 4px 0 #a77ad8!important;padding:12px 16px!important;font-size:13px!important;font-weight:900!important;text-transform:uppercase!important;}
.ml-happy-cart-message{font-size:18px;font-weight:900;letter-spacing:-.01em;}

/* WooCommerce Cart Block – pois piperrys, enemmän tilaa ja isompi teksti */
.woocommerce-cart .wp-block-woocommerce-cart{max-width:1100px!important;margin:0 auto!important;}
.woocommerce-cart .wc-block-cart{font-family:Inter,ui-sans-serif,system-ui,sans-serif!important;font-size:16px!important;}
.woocommerce-cart .wc-block-cart__main{padding-right:42px!important;}
.woocommerce-cart .wc-block-cart-items{font-size:16px!important;}
.woocommerce-cart .wc-block-cart-items__header span,
.woocommerce-cart .wc-block-cart__totals-title{font-size:13px!important;font-weight:900!important;letter-spacing:.06em!important;text-transform:uppercase!important;}
.woocommerce-cart .wc-block-components-product-name{font-size:18px!important;line-height:1.25!important;font-weight:900!important;color:#17131c!important;text-decoration-thickness:2px!important;text-decoration-color:#a77ad8!important;}
.woocommerce-cart .wc-block-components-product-metadata,
.woocommerce-cart .wc-block-components-product-details,
.woocommerce-cart .wc-block-components-product-price,
.woocommerce-cart .wc-block-formatted-money-amount{font-size:15px!important;line-height:1.45!important;}
.woocommerce-cart .wc-block-cart-item__image img{width:86px!important;max-width:86px!important;height:auto!important;}
.woocommerce-cart .wc-block-components-quantity-selector{min-height:42px!important;font-size:16px!important;border:2px solid #17131c!important;border-radius:7px!important;}
.woocommerce-cart .wc-block-components-quantity-selector input{font-size:16px!important;font-weight:800!important;}
.woocommerce-cart .wc-block-cart-item__remove-link{font-size:14px!important;font-weight:800!important;color:#7445a4!important;}
.woocommerce-cart .wc-block-cart__sidebar{font-size:16px!important;}
.woocommerce-cart .wc-block-components-totals-item{padding:16px 0!important;font-size:16px!important;}
.woocommerce-cart .wc-block-components-totals-item__label{font-weight:700!important;}
.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{font-size:21px!important;font-weight:950!important;}
.woocommerce-cart .wc-block-cart__submit-button{min-height:58px!important;background:#17131c!important;color:#fff!important;border:2px solid #17131c!important;box-shadow:6px 6px 0 #a77ad8!important;font-size:17px!important;font-weight:950!important;text-decoration:none!important;}
.woocommerce-cart .wc-block-cart__submit-button:hover{background:#7445a4!important;box-shadow:8px 8px 0 #17131c!important;}
@media(max-width:780px){
 .woocommerce-message,.woocommerce-info,.wc-block-components-notice-banner{padding:18px 18px 18px 54px!important;}
 .woocommerce-message .button,.woocommerce-info .button{position:static!important;display:inline-block!important;transform:none!important;margin:14px 0 0!important;float:none!important;}
 .woocommerce-cart .wc-block-cart__main{padding-right:0!important;}
}

/* ===== v0.30 selkeämpi ostoskori ===== */
.woocommerce-cart .wc-block-components-product-metadata,
.woocommerce-cart .wc-block-components-product-details{
  display:none!important;
}
.woocommerce-cart .wc-block-cart-item__product{
  padding-left:16px!important;
}
.woocommerce-cart .wc-block-components-product-name{
  font-size:20px!important;
  line-height:1.22!important;
  margin-bottom:8px!important;
}
.woocommerce-cart .wc-block-components-product-price{
  font-size:17px!important;
  font-weight:800!important;
  margin-bottom:10px!important;
}
.woocommerce-cart .wc-block-cart-item__image img{
  width:105px!important;
  max-width:105px!important;
}
.woocommerce-cart .wc-block-cart-items td{
  padding-top:22px!important;
  padding-bottom:22px!important;
}
.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label::after{content:"";}

.ml-happy-cart-message{display:inline-block!important;font-size:18px!important;font-weight:900!important;}



/* ===== v0.37 PUODIN AJAX-ILMOITUS ===== */
.ml-shop-notices:empty{display:none;}
.ml-shop-notices{max-width:1100px;margin:0 auto 24px;}
.ml-shop-toast{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px 17px 22px;background:#fff8ff;color:#17131c;border:2px solid #17131c;border-radius:12px;box-shadow:7px 7px 0 #a77ad8;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:17px;line-height:1.4;font-weight:800;}
.ml-shop-toast-close{flex:0 0 auto;width:34px;height:34px;border:2px solid #17131c;border-radius:50%;background:#fff;color:#17131c;font:900 22px/1 Inter,ui-sans-serif,system-ui,sans-serif;cursor:pointer;}
.ml-shop-toast-close:hover{background:#17131c;color:#fff;}
.ml-shop-buy.is-loading{pointer-events:none;opacity:.65;}

/* v0.39: kategoriansuodatus – author CSS:n display:flex ohitti hidden-attribuutin. */
.ml-shop-card.ml-shop-card--filtered-out{display:none!important;}
\n\n/* ===== v0.40 KASSA + KIRJAN TILA ===== */\n/* Kustom Checkoutin ympäristö: sama laventeli/musta ilme kuin muualla kaupassa.\n   Itse Kustom-iframea tyylitetään Kustomin omista Color Settings -asetuksista. */\n.woocommerce-checkout .ml-content-shell,\n.woocommerce-checkout main{\n  background:var(--ml-paper)!important;\n  color:var(--ml-ink)!important;\n}\n.woocommerce-checkout .ml-content,\n.woocommerce-checkout .woocommerce{\n  max-width:1120px!important;\n  margin-left:auto!important;\n  margin-right:auto!important;\n}\n.woocommerce-checkout h1,\n.woocommerce-checkout .entry-title{\n  font-size:clamp(42px,5vw,64px)!important;\n  line-height:1!important;\n  letter-spacing:-.045em!important;\n  margin-bottom:34px!important;\n}\n/* Kustom/Klarna Checkout -integraatioiden tavallisimmat ulkokuoret */\n.woocommerce-checkout #kco-wrapper,\n.woocommerce-checkout #kco-checkout,\n.woocommerce-checkout .kco-checkout,\n.woocommerce-checkout .kustom-checkout{\n  gap:30px!important;\n}\n.woocommerce-checkout #kco-iframe,\n.woocommerce-checkout .kco-iframe,\n.woocommerce-checkout [class*="kustom"][class*="iframe"],\n.woocommerce-checkout iframe[src*="kustom"],\n.woocommerce-checkout iframe[src*="klarna"]{\n  border-radius:14px!important;\n}\n.woocommerce-checkout #kco-order-review,\n.woocommerce-checkout .kco-order-review,\n.woocommerce-checkout .woocommerce-checkout-review-order,\n.woocommerce-checkout #order_review{\n  background:#f8f2fc!important;\n  border:2px solid var(--ml-ink)!important;\n  border-radius:14px!important;\n  box-shadow:7px 7px 0 var(--ml-purple)!important;\n  padding:22px!important;\n}\n.woocommerce-checkout #kco-order-review h2,\n.woocommerce-checkout #kco-order-review h3,\n.woocommerce-checkout .kco-order-review h2,\n.woocommerce-checkout .kco-order-review h3,\n.woocommerce-checkout #order_review_heading{\n  font-size:22px!important;\n  font-weight:950!important;\n  letter-spacing:-.02em!important;\n}\n.woocommerce-checkout table.shop_table{\n  border:0!important;\n  border-collapse:collapse!important;\n  font-size:15px!important;\n}\n.woocommerce-checkout table.shop_table th,\n.woocommerce-checkout table.shop_table td{\n  padding:13px 8px!important;\n  border-color:rgba(24,21,29,.16)!important;\n}\n.woocommerce-checkout table.shop_table .order-total th,\n.woocommerce-checkout table.shop_table .order-total td{\n  font-size:19px!important;\n  font-weight:950!important;\n}\n.woocommerce-checkout input[type="text"],\n.woocommerce-checkout input[type="email"],\n.woocommerce-checkout input[type="tel"],\n.woocommerce-checkout select,\n.woocommerce-checkout textarea{\n  border:2px solid rgba(24,21,29,.72)!important;\n  border-radius:8px!important;\n  min-height:46px!important;\n}\n.woocommerce-checkout button,\n.woocommerce-checkout .button,\n.woocommerce-checkout input[type="submit"]{\n  border-radius:8px!important;\n}\n@media(max-width:900px){\n  .woocommerce-checkout #kco-order-review,\n  .woocommerce-checkout .kco-order-review,\n  .woocommerce-checkout .woocommerce-checkout-review-order,\n  .woocommerce-checkout #order_review{box-shadow:4px 4px 0 var(--ml-purple)!important;padding:16px!important;}\n}\n
/* ===== v0.42 KIRJAN TIEDOT + SIGNEERAUS + TOIMITUS ===== */
.single-product .ml-book-details{
  margin:4px 0 22px;
  padding:16px 18px;
  max-width:520px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(110,58,167,.18);
  border-radius:12px;
}
.single-product .ml-book-details h3{
  margin:0 0 10px;
  font-size:15px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.single-product .ml-book-details dl{margin:0;display:grid;gap:5px;}
.single-product .ml-book-details dl>div{display:grid;grid-template-columns:130px 1fr;gap:12px;}
.single-product .ml-book-details dt{font-weight:850;color:#6e3aa7;}
.single-product .ml-book-details dd{margin:0;color:#39313e;}

.single-product div.product form.cart{flex-wrap:wrap;max-width:560px;}
.single-product .ml-signature-choice{
  order:-2;
  flex:0 0 100%;
  display:grid;
  gap:8px;
  padding:4px 2px 8px;
}
.single-product .ml-signature-choice>label:first-child{font-size:15px;}
.single-product .ml-signature-choice select,
.single-product .ml-signature-choice input{
  width:100%;
  min-height:44px;
  padding:8px 11px;
  border:2px solid var(--ml-black);
  border-radius:8px;
  background:#fff;
  color:var(--ml-ink);
  font:700 15px/1.2 Inter,ui-sans-serif,system-ui,sans-serif;
}
.single-product .ml-dedication-name{display:grid;gap:6px;}
.single-product .ml-dedication-name[hidden]{display:none!important;}
.single-product .ml-dedication-name span{font-size:14px;font-weight:800;}

.single-product .ml-shipping-note{
  display:flex;
  flex-direction:column;
  gap:3px;
  width:max-content;
  max-width:100%;
  margin:0 0 24px;
  padding:11px 14px;
  background:#f8f2fc;
  border-left:5px solid var(--ml-purple);
  border-radius:7px;
  color:var(--ml-ink);
  font-size:14px;
  line-height:1.35;
}
.single-product .ml-shipping-note strong{font-size:15px;}

/* Signeeraustiedot saavat näkyä ostoskorissa, vaikka muu tuotemetadata on piilotettu. */
.woocommerce-cart .wc-block-components-product-details:has(.wc-block-components-product-details__signeeraus),
.woocommerce-cart .wc-block-components-product-details:has(.wc-block-components-product-details__nimi-omistukseen){display:block!important;}

@media(max-width:600px){
  .single-product .ml-book-details dl>div{grid-template-columns:1fr;gap:1px;}
}

/* ===== v0.43 KOMPAKTIMMAT KIRJAN TIEDOT ===== */
.single-product .ml-book-details{
  margin:2px 0 14px;
  padding:10px 12px;
  max-width:460px;
  border-radius:9px;
}
.single-product .ml-book-details h3{
  margin:0 0 5px;
  font-size:12px;
  line-height:1.15;
  letter-spacing:.04em;
}
.single-product .ml-book-details dl{
  gap:1px;
  font-size:13px;
  line-height:1.22;
}
.single-product .ml-book-details dl>div{
  grid-template-columns:100px 1fr;
  gap:8px;
  min-height:17px;
}
.single-product .ml-book-details dt,
.single-product .ml-book-details dd{
  line-height:1.22;
}
@media(max-width:600px){
  .single-product .ml-book-details{padding:9px 10px;max-width:100%;}
  .single-product .ml-book-details dl>div{grid-template-columns:94px 1fr;gap:7px;}
}
\n\n/* ===== v0.44 KIRJAN TIEDOT KOKO LEVEYDELLE ===== */
/* Sijoitus: kuva + ostotiedot ensin, sitten kirjan tiedot, sitten varsinainen esittely. */
.single-product div.product > .ml-book-details{
  grid-column:1 / -1;
  width:100%;
  max-width:none;
  margin:34px 0 0;
  padding:16px 20px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(110,58,167,.18);
  border-radius:12px;
}
.single-product div.product > .ml-book-details h3{
  margin:0 0 9px;
  font-size:13px;
  line-height:1.15;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.single-product div.product > .ml-book-details dl{
  display:flex;
  flex-wrap:wrap;
  gap:6px 26px;
  margin:0;
  font-size:13px;
  line-height:1.3;
}
.single-product div.product > .ml-book-details dl>div{
  display:flex;
  grid-template-columns:none;
  gap:7px;
  min-height:0;
  white-space:nowrap;
}
.single-product div.product > .ml-book-details dt{
  font-weight:850;
  color:#6e3aa7;
}
.single-product div.product > .ml-book-details dd{
  margin:0;
  color:#39313e;
}
/* Kirjan tiedot ovat nyt oma välirivinsä, joten esittelyn ei tarvitse jättää yhtä isoa yläväliä. */
.single-product div.product > .ml-book-details + .woocommerce-tabs{
  margin-top:22px;
}
@media(max-width:600px){
  .single-product div.product > .ml-book-details{margin-top:20px;padding:13px 14px;}
  .single-product div.product > .ml-book-details dl{gap:5px 16px;}
  .single-product div.product > .ml-book-details dl>div{display:flex;gap:6px;}
}

/* ===== v0.45 KIRJAN TIEDOT – ISO TYYLITELTY KORTTI ===== */
.single-product div.product .ml-book-details{
  grid-column:1 / -1;
  width:100%;
  max-width:none;
  margin:36px 0 8px;
  padding:24px 28px 25px;
  background:#f8f7fa;
  border:2px solid #18151d;
  border-radius:16px;
  box-shadow:8px 8px 0 #a77ad8;
}
.single-product div.product .ml-book-details h3{
  margin:0 0 18px;
  font-size:20px;
  line-height:1.1;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.035em;
  color:#18151d;
}
.single-product div.product .ml-book-details dl{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px 30px;
  width:100%;
  margin:0;
  font-size:15px;
  line-height:1.3;
}
.single-product div.product .ml-book-details dl>div{
  display:block;
  min-width:0;
  white-space:normal;
}
.single-product div.product .ml-book-details dt{
  display:block;
  margin:0 0 3px;
  font-size:13px;
  line-height:1.2;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.025em;
  color:#6e3aa7;
}
.single-product div.product .ml-book-details dd{
  display:block;
  margin:0;
  font-size:16px;
  line-height:1.25;
  font-weight:650;
  color:#18151d;
}
@media(max-width:800px){
  .single-product div.product .ml-book-details{padding:20px;box-shadow:6px 6px 0 #a77ad8;}
  .single-product div.product .ml-book-details dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 20px;}
}
@media(max-width:520px){
  .single-product div.product .ml-book-details{margin-top:24px;padding:18px 16px;}
  .single-product div.product .ml-book-details h3{font-size:18px;margin-bottom:15px;}
  .single-product div.product .ml-book-details dl{grid-template-columns:1fr 1fr;gap:12px 14px;}
  .single-product div.product .ml-book-details dd{font-size:14px;}
}

/* ===== v0.46 AJANKOHTAISTA / TAPAHTUMAT ===== */
.ml-events-page .ml-events-article{max-width:1120px;margin:0 auto}
.ml-event-list{display:flex;flex-direction:column;gap:24px;margin:0 0 58px}
.ml-event-new-card{display:grid;grid-template-columns:170px minmax(0,1fr);gap:28px;position:relative;background:rgba(255,255,255,.9);border:2px solid #18151d;border-radius:20px;padding:26px 28px;box-shadow:9px 9px 0 #c8a8e7;color:#18151d;overflow:hidden}
.ml-event-new-card:before{content:"";position:absolute;width:80px;height:80px;border:14px solid rgba(167,122,216,.12);border-radius:50%;right:-30px;top:-30px;pointer-events:none}
.ml-event-new-date{align-self:start;background:#18151d;color:#fff;border-radius:12px;padding:15px 16px;box-shadow:5px 5px 0 #a77ad8;text-align:center}
.ml-event-new-date strong{display:block;font-size:22px;line-height:1;font-weight:950;letter-spacing:-.025em}
.ml-event-new-date span{display:block;margin-top:7px;font-size:13px;font-weight:800;color:#e4d5f2;text-transform:uppercase;letter-spacing:.04em}
.ml-event-new-main h2{margin:0 0 5px;font-size:30px;line-height:1.05;letter-spacing:-.035em;color:#18151d}
.ml-event-new-place{font-size:14px;font-weight:900;text-transform:uppercase;letter-spacing:.045em;color:#7140a4;margin-bottom:14px}
.ml-event-new-description{font-size:16px;line-height:1.58;color:#302936}
.ml-event-new-description p{margin:0 0 10px}.ml-event-new-description p:last-child{margin-bottom:0}
.ml-event-new-image{grid-column:1/-1;margin-top:2px}.ml-event-new-image img{display:block;width:100%;max-height:360px;object-fit:cover;border-radius:14px;border:1px solid rgba(24,21,29,.18)}
.ml-events-empty{background:#fff;border:2px solid #18151d;border-radius:18px;padding:24px 26px;box-shadow:8px 8px 0 #c8a8e7;margin-bottom:50px;color:#18151d}.ml-events-empty strong,.ml-events-empty span{display:block}.ml-events-empty span{margin-top:5px}
.ml-past-events{margin:12px 0 70px}.ml-past-events>summary{cursor:pointer;display:inline-flex;align-items:center;gap:10px;background:#18151d;color:#fff;border-radius:10px;padding:12px 16px;font-size:18px;font-weight:900;box-shadow:5px 5px 0 #a77ad8;list-style:none}.ml-past-events>summary::-webkit-details-marker{display:none}.ml-past-events>summary span{display:inline-grid;place-items:center;min-width:25px;height:25px;padding:0 6px;border-radius:99px;background:#a77ad8;color:#18151d;font-size:13px}.ml-past-events[open]>summary{margin-bottom:28px}.ml-past-events .ml-event-new-card{opacity:.84;box-shadow:7px 7px 0 rgba(167,122,216,.45)}
.ml-events-old-content{background:#fff;border-radius:20px;padding:28px;color:#18151d}
@media(max-width:700px){.ml-event-new-card{grid-template-columns:1fr;gap:18px;padding:20px}.ml-event-new-date{width:max-content;min-width:140px}.ml-event-new-main h2{font-size:25px}.ml-event-new-description{font-size:15px}}

/* ===== v0.48 MENNEET TAPAHTUMAT AINA NAKYVISSA ===== */
.ml-past-events{margin:12px 0 70px}
.ml-past-events-title{display:inline-flex!important;align-items:center;gap:10px;margin-bottom:28px!important}
.ml-past-events-title span{display:inline-grid;place-items:center;min-width:25px;height:25px;padding:0 6px;border-radius:99px;background:#a77ad8;color:#18151d;font-size:13px}
.ml-past-events .ml-event-new-card{opacity:.84;box-shadow:7px 7px 0 rgba(167,122,216,.45)}

/* ===== v0.49 tapahtumakuvat kokonaisina ===== */
.ml-events-page .ml-event-new-image{
  display:flex;
  justify-content:center;
  align-items:center;
  padding:12px;
  background:rgba(255,255,255,.72);
  border-radius:14px;
  border:1px solid rgba(24,21,29,.12);
}
.ml-events-page .ml-event-new-image img{
  display:block;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:520px!important;
  object-fit:contain!important;
  object-position:center!important;
  border:0!important;
  border-radius:8px!important;
}

/* ===== v0.50 tapahtumien typografia yhtenäiseksi ===== */
.ml-events-page .ml-event-new-card,
.ml-events-page .ml-event-new-main,
.ml-events-page .ml-event-new-description,
.ml-events-page .ml-event-new-description p,
.ml-events-page .ml-event-new-place,
.ml-events-page .ml-event-new-date,
.ml-events-page .ml-event-new-main h2 {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

/* ===== v0.51 SISÄLLÖNTUOTANTO – siistitty portfolio ===== */
.ml-some-page{padding-top:150px;background:radial-gradient(circle at 92% 10%,rgba(167,122,216,.18),transparent 25%),var(--ml-paper)}
.ml-some-page .ml-some-article>.entry-title{font-size:clamp(52px,7vw,84px);line-height:.92;letter-spacing:-.055em;margin:0 0 56px;position:relative;display:inline-block;color:#151219}
.ml-some-page .ml-some-article>.entry-title:after{content:"";display:block;width:44%;height:8px;background:#a77ad8;border-radius:99px;transform:rotate(-2deg);margin-top:12px}
.ml-some-clean{display:grid;gap:34px}
.ml-some-hero-card{position:relative;background:#151219;color:#fff;border:2px solid #151219;border-radius:22px;padding:38px 42px;box-shadow:10px 11px 0 #a77ad8;overflow:hidden}
.ml-some-hero-card:after{content:"";position:absolute;width:120px;height:120px;border:18px solid rgba(167,122,216,.16);border-radius:50%;right:-38px;top:-45px}
.ml-some-hero-card h2,.ml-some-hero-card h3{color:#fff!important;font-size:30px!important;margin:0 0 18px!important}
.ml-some-hero-card p,.ml-some-hero-card li{color:#fff!important;font-size:17px;line-height:1.65;max-width:880px}
.ml-some-hero-card a{color:#d9b9f3;font-weight:800}
.ml-some-contact{display:inline-block!important;margin-top:10px;padding:12px 17px;background:#fff!important;color:#151219!important;border-radius:8px;text-decoration:none!important;box-shadow:5px 5px 0 #a77ad8;font:900 14px/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.03em}
.ml-some-clean-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
.ml-some-clean-card{position:relative;min-width:0;background:rgba(255,255,255,.88);border:2px solid #201b25;border-radius:20px;padding:30px 32px;box-shadow:8px 9px 0 rgba(167,122,216,.48);overflow:hidden}
.ml-some-clean-card:after{content:"";position:absolute;width:70px;height:70px;border:12px solid rgba(167,122,216,.10);border-radius:50%;right:-25px;top:-25px}
.ml-some-clean-card h2{margin:0 0 22px!important;color:#151219!important;font-size:clamp(25px,3vw,34px)!important;line-height:1!important;letter-spacing:-.035em!important;position:relative;display:inline-block}
.ml-some-clean-card h2:after{content:"";display:block;width:55%;height:5px;background:#a77ad8;border-radius:99px;transform:rotate(-2deg);margin-top:7px}
.ml-some-clean-card p,.ml-some-clean-card li{font-size:16px;line-height:1.62;color:#302936}
.ml-some-clean-card ul{padding-left:20px}
.ml-some-clean-card a{color:#6e3aa7;font-weight:800;text-underline-offset:3px}
.ml-some-clean-card img{max-width:100%;height:auto!important;object-fit:contain!important;border-radius:10px}
.ml-some-clean-card p:has(> img),.ml-some-clean-card figure{background:#fff;border:1px solid rgba(24,21,29,.10);border-radius:14px;padding:12px}
.ml-some-clean-card .wp-block-image img{max-height:240px;width:auto}
.ml-some-clean-card iframe{max-width:100%}
.ml-some-clean-card:nth-child(3n){grid-column:1/-1}
@media(max-width:820px){.ml-some-page{padding-top:125px}.ml-some-clean-grid{grid-template-columns:1fr}.ml-some-clean-card:nth-child(3n){grid-column:auto}.ml-some-hero-card,.ml-some-clean-card{padding:25px 23px}.ml-some-page .ml-some-article>.entry-title{margin-bottom:40px}}


/* ===== v0.52 SISÄLLÖNTUOTANTO – oikea rakenteellinen portfolio ===== */
.ml-some-source{background:transparent!important;color:inherit!important;padding:0!important;box-shadow:none!important;border:0!important}
.ml-some-portfolio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;align-items:start}
.ml-portfolio-intro{grid-column:1/-1;position:relative;background:#151219;color:#fff;border:2px solid #151219;border-radius:22px;padding:34px 38px;box-shadow:9px 10px 0 #a77ad8;overflow:hidden}
.ml-portfolio-intro:after{content:"";position:absolute;width:105px;height:105px;border:16px solid rgba(167,122,216,.17);border-radius:50%;right:-30px;top:-36px;pointer-events:none}
.ml-portfolio-intro h2{margin:0 0 18px!important;color:#fff!important;font-size:30px!important;letter-spacing:-.03em!important}
.ml-portfolio-intro p,.ml-portfolio-intro li{color:#fff!important;font-size:16px!important;line-height:1.6!important}
.ml-portfolio-intro a{color:#d8b6f4!important;font-weight:800}
.ml-portfolio-intro img{width:auto!important;max-width:145px!important;max-height:115px!important;object-fit:contain!important;background:#fff;border-radius:10px;padding:8px;margin:10px 12px 5px 0}
.ml-portfolio-card{position:relative;background:rgba(255,255,255,.9);border:2px solid #201b25;border-radius:20px;padding:29px 31px;box-shadow:8px 9px 0 rgba(167,122,216,.43);overflow:hidden;min-width:0}
.ml-portfolio-card:after{content:"";position:absolute;width:66px;height:66px;border:11px solid rgba(167,122,216,.10);border-radius:50%;right:-24px;top:-24px;pointer-events:none}
.ml-portfolio-card h2{position:relative;display:inline-block;margin:0 0 22px!important;color:#151219!important;font-size:30px!important;line-height:1!important;letter-spacing:-.035em!important}
.ml-portfolio-card h2:after{content:"";display:block;width:58%;height:5px;background:#a77ad8;border-radius:99px;transform:rotate(-2deg);margin-top:7px}
.ml-portfolio-card p,.ml-portfolio-card li{color:#302936!important;font-size:16px!important;line-height:1.62!important}
.ml-portfolio-card a{color:#6e3aa7!important;font-weight:800!important;text-underline-offset:3px}
.ml-portfolio-card img{max-width:100%!important;height:auto!important;object-fit:contain!important;border-radius:10px}
.ml-portfolio-card figure,.ml-portfolio-card p:has(>img){background:#fff;border:1px solid rgba(24,21,29,.1);border-radius:13px;padding:10px}
.ml-portfolio-card iframe{max-width:100%}
.ml-portfolio-card.is-social,.ml-portfolio-card.is-collab{background:#151219;color:#fff;border-color:#151219}
.ml-portfolio-card.is-social h2,.ml-portfolio-card.is-collab h2,.ml-portfolio-card.is-social p,.ml-portfolio-card.is-collab p,.ml-portfolio-card.is-social li,.ml-portfolio-card.is-collab li{color:#fff!important}
.ml-portfolio-card.is-social a,.ml-portfolio-card.is-collab a{color:#d8b6f4!important}
@media(max-width:820px){.ml-some-portfolio{grid-template-columns:1fr}.ml-portfolio-intro,.ml-portfolio-card{grid-column:auto;padding:24px 22px}.ml-portfolio-card h2{font-size:26px!important}}


/* ===== v0.53 Sisällöntuotanto: logot vaakaan ===== */
.ml-portfolio-intro .ml-logo-row{display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;gap:28px;flex-wrap:nowrap;margin-top:28px;width:100%}
.ml-portfolio-intro .ml-logo-row>a,.ml-portfolio-intro .ml-logo-row>img{display:flex!important;align-items:center;justify-content:center;flex:1 1 0;min-width:0;margin:0!important;background:transparent!important}
.ml-portfolio-intro .ml-logo-row img{display:block!important;width:auto!important;max-width:145px!important;height:115px!important;max-height:115px!important;object-fit:contain!important;margin:0 auto!important;background:#fff!important;border-radius:8px!important;padding:8px!important;box-sizing:border-box}
@media(max-width:700px){.ml-portfolio-intro .ml-logo-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ml-portfolio-intro .ml-logo-row img{height:100px!important;max-width:130px!important}}

/* ===== v0.54 Sisällöntuotanto: tiiviimpi intro + TikTok-tilastot ===== */
.ml-portfolio-intro .ml-logo-row{margin-top:12px!important}
.ml-portfolio-card.is-social .tiktok-embed,
.ml-portfolio-card.is-social .tiktok-embed *,
.ml-portfolio-card.is-social blockquote.tiktok-embed,
.ml-portfolio-card.is-social blockquote.tiktok-embed *{color:#fff!important}
.ml-portfolio-card.is-social .tiktok-embed a,
.ml-portfolio-card.is-social blockquote.tiktok-embed a{color:#d8b6f4!important}

/* ===== v0.55 viimeistely: yhteystiedot, somekortit ja oma kartta ===== */
.ml-page-kirjailija-mia-laati .ml-contact-card ul,
.ml-page-kirjailija-mia-laati .ml-contact-card li{background:transparent!important;box-shadow:none!important;border:0!important;color:#fff!important}
.ml-page-kirjailija-mia-laati .ml-contact-card ul{padding:0!important;margin:0!important}
.ml-page-kirjailija-mia-laati .ml-contact-card li{padding:7px 0 7px 18px!important}

/* TikTok vaaleaksi, Instagram tummaksi. */
.ml-portfolio-card.is-social{background:rgba(255,255,255,.92)!important;color:#302936!important;border-color:#201b25!important}
.ml-portfolio-card.is-social h2,.ml-portfolio-card.is-social p,.ml-portfolio-card.is-social li,.ml-portfolio-card.is-social a{color:#302936!important}
.ml-portfolio-card.is-social a{color:#6e3aa7!important}
.ml-portfolio-card.is-social:nth-of-type(even){background:#151219!important;color:#fff!important;border-color:#151219!important}
.ml-portfolio-card.is-social:nth-of-type(even) h2,.ml-portfolio-card.is-social:nth-of-type(even) p,.ml-portfolio-card.is-social:nth-of-type(even) li{color:#fff!important}
.ml-portfolio-card.is-social:nth-of-type(even) a{color:#d8b6f4!important}

.ml-map-page{padding:150px 24px 80px;background:radial-gradient(circle at 88% 8%,rgba(167,122,216,.18),transparent 26%),#f3ecfa;min-height:100vh;color:#151219}
.ml-map-shell{width:min(1180px,100%);margin:0 auto}.ml-map-page .entry-title{font-size:clamp(54px,7vw,82px);line-height:.95;letter-spacing:-.055em;margin:0 0 42px;display:inline-block}.ml-map-page .entry-title:after{content:"";display:block;width:46%;height:7px;background:#a77ad8;border-radius:99px;transform:rotate(-2deg);margin-top:10px}
.ml-map-intro{max-width:850px;margin:0 0 24px}.ml-map-intro h2{font-size:25px;margin:0 0 10px}.ml-map-intro p{font-size:17px;line-height:1.6;margin:0}
.ml-map-filters{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 20px}.ml-map-filters button{appearance:none;border:2px solid #151219;background:#fff;color:#151219;border-radius:999px;padding:10px 15px;font:900 14px/1 Inter,ui-sans-serif,system-ui,sans-serif;cursor:pointer;box-shadow:4px 4px 0 rgba(167,122,216,.45);display:flex;align-items:center;gap:8px}.ml-map-filters button:hover,.ml-map-filters button.is-active{background:#151219;color:#fff;transform:translateY(-1px)}.ml-map-filters i{width:12px;height:12px;border-radius:50% 50% 50% 0;background:var(--pin);transform:rotate(-45deg);display:inline-block}
#ml-own-map{height:min(70vh,720px);min-height:520px;border:2px solid #151219;border-radius:22px;overflow:hidden;box-shadow:11px 12px 0 #a77ad8;background:#ddd;z-index:1}.ml-pin-wrap{background:transparent!important;border:0!important}.ml-pin{position:relative;display:grid;place-items:center;width:32px;height:32px;background:var(--pin);border:3px solid #151219;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:3px 3px 0 rgba(21,18,25,.22)}.ml-pin b{transform:rotate(45deg);color:#fff;font-size:13px;text-shadow:0 1px 1px rgba(0,0,0,.3)}.leaflet-tooltip{font:800 13px/1.2 Inter,ui-sans-serif,system-ui,sans-serif!important;border:2px solid #151219!important;border-radius:7px!important;box-shadow:4px 4px 0 #a77ad8!important}
.ml-map-empty{margin-top:20px;padding:18px 20px;background:#fff;border:2px solid #151219;border-radius:14px;box-shadow:6px 7px 0 #a77ad8}
.ml-video-modal{position:fixed;inset:0;background:rgba(15,12,18,.78);display:none;align-items:center;justify-content:center;padding:24px;z-index:99999}.ml-video-modal.is-open{display:flex}.ml-video-dialog{position:relative;width:min(920px,96vw);background:#151219;border:2px solid #fff;border-radius:20px;padding:24px;box-shadow:12px 13px 0 #a77ad8}.ml-video-dialog h2{color:#fff;margin:0 50px 18px 0;font-size:28px}.ml-video-close{position:absolute;right:17px;top:14px;width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:#151219;font-size:30px;line-height:1;cursor:pointer}.ml-video-frame{aspect-ratio:16/9;background:#08070a;border-radius:12px;overflow:hidden;display:grid;place-items:center;color:#fff}.ml-video-frame iframe{width:100%;height:100%;border:0}
@media(max-width:700px){.ml-map-page{padding:125px 14px 55px}.ml-map-page .entry-title{margin-bottom:32px}#ml-own-map{min-height:460px;height:62vh;border-radius:16px}.ml-map-filters{gap:8px}.ml-map-filters button{font-size:12px;padding:9px 12px}.ml-video-dialog{padding:18px}.ml-video-dialog h2{font-size:21px}}


/* ===== v0.56 korjaukset: somekorttien oikea väritys ===== */
/* Peruskortit palautetaan v0.54:n logiikkaan: vaaleat sisältökortit, yhteistyö tumma. */
.ml-portfolio-card{background:rgba(255,255,255,.9)!important;color:#302936!important;border-color:#201b25!important}
.ml-portfolio-card h2,.ml-portfolio-card p,.ml-portfolio-card li{color:#302936!important}
.ml-portfolio-card a{color:#6e3aa7!important}
.ml-portfolio-card.is-collab{background:#151219!important;color:#fff!important;border-color:#151219!important}
.ml-portfolio-card.is-collab h2,.ml-portfolio-card.is-collab p,.ml-portfolio-card.is-collab li{color:#fff!important}
.ml-portfolio-card.is-collab a{color:#d8b6f4!important}
/* TikTok nimenomaan vaaleaksi, jotta upotuksen omat tummat tilastot näkyvät. */
.ml-portfolio-card.is-social.is-tiktok{background:#fff!important;color:#302936!important;border-color:#201b25!important}
.ml-portfolio-card.is-social.is-tiktok h2,.ml-portfolio-card.is-social.is-tiktok p,.ml-portfolio-card.is-social.is-tiktok li,
.ml-portfolio-card.is-social.is-tiktok .tiktok-embed,.ml-portfolio-card.is-social.is-tiktok .tiktok-embed *{color:#302936!important}
.ml-portfolio-card.is-social.is-tiktok a,.ml-portfolio-card.is-social.is-tiktok .tiktok-embed a{color:#6e3aa7!important}
/* Instagram tumma vastapariksi. */
.ml-portfolio-card.is-social.is-instagram{background:#151219!important;color:#fff!important;border-color:#151219!important}
.ml-portfolio-card.is-social.is-instagram h2,.ml-portfolio-card.is-social.is-instagram p,.ml-portfolio-card.is-social.is-instagram li{color:#fff!important}
.ml-portfolio-card.is-social.is-instagram a{color:#d8b6f4!important}

/* ===== v0.58 kartan monikategoriat + mobiilivalikko ===== */
.ml-menu-toggle{display:none}
@media(max-width:760px){
  .ml-site-header{height:68px!important;min-height:68px!important;padding:10px 14px!important;align-items:center!important;flex-wrap:nowrap!important;overflow:visible!important}
  .ml-brand{font-size:17px!important;transform:none!important;align-self:center!important;white-space:nowrap}
  .ml-menu-toggle{display:flex;order:2;width:44px;height:42px;margin-left:auto;padding:9px 8px;border:2px solid #fff;border-radius:7px;background:#17131c;box-shadow:3px 3px 0 #a77ad8;flex-direction:column;justify-content:center;gap:7px;cursor:pointer;z-index:10003}
  .ml-menu-toggle span{display:block;width:24px;height:3px;margin:0 auto;background:#fff;border-radius:99px;transition:transform .18s ease,opacity .18s ease}
  .ml-menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(5px) rotate(45deg)}
  .ml-menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-5px) rotate(-45deg)}
  .ml-site-header nav#ml-primary-nav{display:none!important;position:absolute!important;left:12px!important;right:12px!important;top:66px!important;height:auto!important;margin:0!important;padding:10px!important;background:#17131c!important;border:2px solid #fff!important;border-radius:10px!important;box-shadow:6px 7px 0 #a77ad8!important;z-index:10002!important}
  .ml-site-header.is-menu-open nav#ml-primary-nav{display:block!important}
  .ml-site-header nav#ml-primary-nav .ml-menu{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:2px!important;height:auto!important;margin:0!important;padding:0!important}
  .ml-site-header nav#ml-primary-nav .ml-menu>li{display:block!important;width:100%!important;margin:0!important}
  .ml-site-header nav#ml-primary-nav .ml-menu>li>a{display:flex!important;width:100%!important;min-height:44px!important;padding:10px 12px!important;align-items:center!important;box-sizing:border-box!important;font-size:15px!important}
  .ml-site-header nav#ml-primary-nav .sub-menu,.ml-site-header nav#ml-primary-nav .children{position:static!important;display:block!important;visibility:visible!important;opacity:1!important;transform:none!important;min-width:0!important;width:100%!important;margin:0!important;padding:0 0 4px 14px!important;background:transparent!important;border:0!important;box-shadow:none!important}
  .ml-cart-wrap{order:3!important;margin-left:3px!important}
}

/* ===== v0.59 kaksi karttaa: Suomi-videokartta + oma Euroopan reissukartta ===== */
.ml-travel-section{margin-top:78px;padding:38px 0 12px;border-top:3px solid #151219}
.ml-travel-heading{max-width:760px;margin:0 0 24px}.ml-travel-heading>span{display:inline-block;margin-bottom:10px;padding:7px 11px;background:#151219;color:#fff;border-radius:999px;font:900 11px/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.12em;box-shadow:4px 4px 0 #a77ad8}.ml-travel-heading h2{font-size:clamp(34px,5vw,55px);line-height:1;letter-spacing:-.045em;margin:0 0 12px}.ml-travel-heading p{font-size:16px;line-height:1.55;margin:0;max-width:650px}
#ml-travel-map{height:min(56vh,560px);min-height:420px;border:3px solid #151219;border-radius:26px;overflow:hidden;box-shadow:12px 13px 0 #a77ad8;background:#eee9f1;z-index:1}
#ml-travel-map .leaflet-tile-pane{filter:grayscale(.32) saturate(.62) brightness(1.08) contrast(.92)}
#ml-travel-map .leaflet-control-zoom{border:2px solid #151219!important;box-shadow:4px 4px 0 rgba(167,122,216,.65)!important}#ml-travel-map .leaflet-control-zoom a{background:#fff!important;color:#151219!important;border-color:#151219!important;font-weight:900!important}
.ml-travel-pin-wrap{background:transparent!important;border:0!important}.ml-travel-pin{position:relative;display:grid;place-items:center;width:46px;height:46px;background:#a77ad8;border:4px solid #151219;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:5px 6px 0 rgba(21,18,25,.27)}.ml-travel-pin:after{content:"";position:absolute;inset:6px;border:2px solid rgba(255,255,255,.75);border-radius:50% 50% 50% 0}.ml-travel-pin b{position:relative;z-index:2;transform:rotate(45deg);color:#fff;font-size:20px;line-height:1;text-shadow:1px 2px 0 rgba(21,18,25,.25)}
#ml-travel-map .leaflet-popup-content-wrapper{border:2px solid #151219;border-radius:13px;box-shadow:6px 7px 0 #a77ad8;padding:0}#ml-travel-map .leaflet-popup-content{margin:12px 15px;font-family:Inter,ui-sans-serif,system-ui,sans-serif}#ml-travel-map .leaflet-popup-content strong{display:block;font-size:16px;color:#151219}#ml-travel-map .leaflet-popup-content span{display:block;margin-top:3px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#6e3aa7}#ml-travel-map .leaflet-popup-tip{border:1px solid #151219}
.ml-travel-empty{margin-top:18px;padding:15px 18px;background:#fff;border:2px dashed #151219;border-radius:13px;font-size:14px}
@media(max-width:700px){.ml-travel-section{margin-top:58px;padding-top:30px}.ml-travel-heading h2{font-size:38px}#ml-travel-map{height:54vh;min-height:390px;border-radius:18px;box-shadow:8px 9px 0 #a77ad8}.ml-travel-pin{width:40px;height:40px;border-width:3px}.ml-travel-pin b{font-size:17px}}


/* ===== v0.60 reissukartta: käydyt maat + suomalaiset maanimet ===== */
#ml-travel-map .leaflet-overlay-pane{z-index:350}
#ml-travel-map .leaflet-marker-pane{z-index:600}
.ml-country-label-wrap{background:transparent!important;border:0!important;pointer-events:none!important}
.ml-country-label{display:block;transform:translate(-50%,-50%);white-space:nowrap;font:900 clamp(10px,1vw,15px)/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em;color:#151219;text-shadow:0 1px 0 rgba(255,255,255,.95),1px 0 0 rgba(255,255,255,.95),0 -1px 0 rgba(255,255,255,.95),-1px 0 0 rgba(255,255,255,.95);opacity:.9}
@media(max-width:700px){.ml-country-label{font-size:9px;letter-spacing:.04em}}

/* ===== v0.61 reissukartan viimeistely ===== */
.ml-travel-pin{width:36px;height:36px;border-width:3px;box-shadow:4px 5px 0 rgba(21,18,25,.24)}
.ml-travel-pin:after{inset:5px;border-width:1.5px}
.ml-travel-pin b{font-size:16px}
.ml-country-label{font-size:clamp(9px,.85vw,13px);letter-spacing:.065em}
@media(max-width:700px){.ml-travel-pin{width:32px;height:32px}.ml-travel-pin b{font-size:14px}.ml-country-label{font-size:8px}}
