/* Yhteystiedot ja henkilökunta (/yhteystiedot, src/staff-contacts.mjs). Kaikki luokat alkavat yt-.
   Värit: public/klik-tokens.css (sivu on yhteinen, joten se käyttää vuokralaisteemaa, suunta A).
   --yt-*-muuttujat ovat tokenien aliaksia; hero käyttää heron roolitokeneita. */
.yt-page {
  --yt-navy: var(--klik-ink);
  --yt-blue: var(--klik-primary);
  --yt-logo-blue: var(--klik-brand);
  --yt-yellow: var(--klik-accent);
  --yt-text: var(--klik-text);
  --yt-muted: var(--klik-muted);
  --yt-bg: var(--klik-tint-1);
  --yt-line: var(--klik-line);
  --yt-card: var(--klik-surface);
  --yt-on-dark: var(--klik-on-hero);
  --yt-shadow: rgb(var(--klik-shadow-rgb) / .07);
  --yt-hero-link: var(--klik-hero-chip-bg);
}

.yt-page { display: block; background: var(--yt-card); color: var(--yt-text); font-family: Lato, Arial, sans-serif; font-size: 16px; line-height: 1.55; overflow-wrap: break-word; }
.yt-page *, .yt-page *::before, .yt-page *::after { box-sizing: border-box; }
.yt-page .kc-ico { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.yt-wrap { width: 100%; max-width: 1140px; margin: 0 auto; padding: 0 24px; }
.yt-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.yt-page a:focus-visible { outline: 3px solid var(--yt-blue); outline-offset: 3px; border-radius: 6px; }

/* Hero */
.yt-hero { background: var(--klik-hero-solid); color: var(--klik-on-hero-text); padding: var(--klik-section-y-tight) 0 var(--klik-hero-y); text-align: center; border-bottom: 1px solid var(--klik-hero-line); }
.yt-eyebrow { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 6px 14px 6px 10px; border-radius: 999px; background: var(--yt-yellow); color: var(--klik-on-accent); font-size: 14px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; line-height: 1.2; }
.yt-eyebrow .kc-ico { width: 18px; height: 18px; }
.yt-hero h1 { margin: 0 0 14px; color: var(--yt-on-dark); font-size: clamp(38px, 6vw, 60px); line-height: 1.05; }
.yt-lead { max-width: 680px; margin: 0 auto 28px; color: var(--klik-on-hero-text); font-size: 18px; line-height: 1.55; }
.yt-jump { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.yt-jump a { display: inline-block; padding: 8px 16px; border: 1px solid var(--klik-hero-chip-line); border-radius: 999px; background: var(--yt-hero-link); color: var(--klik-hero-chip-text); font-size: 15px; font-weight: 700; line-height: 1.2; text-decoration: none; }
.yt-jump a:hover { background: var(--klik-hero-btn-bg); border-color: var(--klik-hero-btn-bg); color: var(--klik-hero-btn-text); }
.yt-hero .yt-jump a:focus-visible { outline-color: var(--klik-hero-focus); }

/* Osiot */
.yt-section { padding: var(--klik-section-y-tight) 0 0; scroll-margin-top: 110px; }
.yt-section:last-child { padding-bottom: var(--klik-section-y); }
.yt-h2 { margin: 0 0 12px; color: var(--yt-navy); font-size: clamp(28px, 4vw, 38px); line-height: 1.15; }
.yt-h3 { margin: 0; color: var(--yt-navy); font-size: 22px; line-height: 1.25; }
.yt-intro { max-width: 760px; margin: 0 0 var(--klik-stack); color: var(--yt-text); font-size: 17px; }

/* Asiakaspalvelun kortit */
.yt-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--klik-gap); margin: 0; padding: 0; list-style: none; }
.yt-card { display: flex; flex-direction: column; gap: 14px; height: 100%; padding: var(--klik-card-pad); border: 1px solid var(--yt-line); border-radius: 16px; background: var(--yt-card); color: var(--yt-text); text-decoration: none; box-shadow: 0 6px 20px var(--yt-shadow); transition: border-color .15s, box-shadow .15s; }
a.yt-card:hover { border-color: var(--yt-blue); box-shadow: 0 8px 24px var(--yt-shadow); }
.yt-badge { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid var(--yt-line); border-radius: 12px; background: var(--yt-bg); color: var(--yt-blue); }
.yt-card-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.yt-card-label { color: var(--yt-navy); font-size: 15px; font-weight: 800; line-height: 1.35; }
.yt-card strong { color: var(--yt-blue); font-size: 22px; font-weight: 800; line-height: 1.25; }
.yt-card a strong, a.yt-card[href^="mailto:"] strong { font-size: 17px; }
.yt-card-sub { color: var(--yt-muted); font-size: 14.5px; line-height: 1.45; }
.yt-more { display: grid; gap: 12px; margin: 26px 0 0; padding: 0; list-style: none; }
.yt-more li { display: flex; align-items: flex-start; gap: 10px; color: var(--yt-text); font-size: 15.5px; }
.yt-more .kc-ico { margin-top: 1px; color: var(--yt-blue); }

/* Linkit tekstissä */
.yt-more a, .yt-text-link, .yt-links a { color: var(--yt-blue); font-weight: 700; text-decoration: underline; text-decoration-color: rgb(var(--klik-primary-rgb) / .4); text-underline-offset: 3px; }
.yt-more a:hover, .yt-text-link:hover, .yt-links a:hover { color: var(--klik-primary-hover); text-decoration-color: currentColor; }
.yt-more a .kc-ico, .yt-text-link .kc-ico { width: 15px; height: 15px; margin-left: 4px; vertical-align: -2px; }

/* Toimistot */
.yt-offices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--klik-gap); margin: 0 0 22px; padding: 0; list-style: none; }
.yt-office { display: flex; gap: 14px; height: 100%; padding: var(--klik-card-pad); border: 1px solid var(--yt-line); border-radius: 16px; background: var(--yt-bg); }
.yt-office > .kc-ico { width: 26px; height: 26px; margin-top: 2px; color: var(--yt-blue); }
.yt-office p { margin: 6px 0 8px; font-size: 16.5px; }
.yt-booking { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: var(--klik-card-pad-sm) var(--klik-card-pad); border: 1px solid var(--yt-line); border-left: 4px solid var(--yt-blue); border-radius: 12px; background: var(--yt-card); }
.yt-booking p { display: flex; align-items: flex-start; gap: 10px; margin: 0; flex: 1 1 320px; font-size: 16px; }
.yt-booking p .kc-ico { margin-top: 2px; color: var(--yt-blue); }
.yt-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 13px 24px; border-radius: 999px; background: var(--klik-footer-btn-bg); color: var(--klik-footer-btn-text); font-size: 16px; font-weight: 800; line-height: 1.2; text-decoration: none; transition: background-color .15s, color .15s; }
.yt-btn:hover { background: var(--klik-primary-hover); color: var(--klik-on-primary); }

/* Henkilökunta */
.yt-group { margin: 0 0 var(--klik-stack-lg); scroll-margin-top: 110px; }
.yt-group-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin: 0 0 18px; padding-bottom: 10px; border-bottom: 3px solid var(--yt-yellow); }
.yt-group-head p { margin: 0; color: var(--yt-muted); font-size: 15.5px; }
.yt-people { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--klik-gap); margin: 0; padding: 0; list-style: none; }
.yt-person { display: flex; gap: 16px; height: 100%; padding: 20px; border: 1px solid var(--yt-line); border-radius: 16px; background: var(--yt-card); box-shadow: 0 6px 20px var(--yt-shadow); }
.yt-photo { flex: none; width: 88px; height: 88px; border: 3px solid var(--yt-bg); border-radius: 50%; background: var(--yt-bg); object-fit: cover; object-position: 50% 25%; }
.yt-avatar { display: flex; align-items: center; justify-content: center; border: 1px solid var(--yt-line); color: var(--yt-blue); }
.yt-avatar .kc-ico { width: 40px; height: 40px; stroke-width: 1.6; }
.yt-person-body { min-width: 0; }
.yt-name { margin: 2px 0 4px; color: var(--yt-navy); font-size: 19px; line-height: 1.25; }
.yt-task { margin: 0; color: var(--yt-blue); font-size: 14.5px; font-weight: 800; line-height: 1.4; }
.yt-title { margin: 2px 0 0; color: var(--yt-muted); font-size: 14px; line-height: 1.4; }
.yt-links { display: grid; gap: 4px; margin: 10px 0 0; padding: 0; list-style: none; }
.yt-links a { display: inline-flex; align-items: flex-start; gap: 8px; min-height: 28px; padding: 2px 0; font-size: 15px; line-height: 1.4; }
.yt-links a .kc-ico { width: 17px; height: 17px; margin-top: 2px; }
.yt-links a > span { min-width: 0; overflow-wrap: anywhere; }
.yt-note { margin: 6px 0 0; color: var(--yt-muted); font-size: 13.5px; line-height: 1.4; }
.yt-lang { display: inline-flex; align-items: center; gap: 6px; margin: 10px 0 0; padding: 3px 10px; border-radius: 999px; background: var(--yt-bg); color: var(--yt-navy); font-size: 13px; font-weight: 700; line-height: 1.3; }
.yt-lang .kc-ico { width: 15px; height: 15px; color: var(--yt-blue); }

@media (max-width: 991px) {
  .yt-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .yt-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .yt-wrap { padding: 0 16px; }
  .yt-hero { padding: 40px 0 32px; }
  .yt-lead { font-size: 17px; }
  .yt-section { padding-top: 44px; }
  .yt-cards, .yt-offices, .yt-people { grid-template-columns: minmax(0, 1fr); }
  .yt-card { flex-direction: row; align-items: flex-start; padding: 16px; }
  .yt-person { padding: 16px; gap: 14px; }
  .yt-photo { width: 72px; height: 72px; }
  .yt-btn { width: 100%; }
}
