/* Aurinkopaistaa – aurinkoinen ilme 1.1.1. Scoped, reversible presentation only. */
body.ap-sunny-theme {
  --ap-sun-ink: #063b38;
  --ap-sun-muted: #506965;
  --ap-sun-gold: #ffb52c;
  --ap-sun-cream: #fff9ed;
  --ap-sun-line: #e9e6dd;
  --COLOR--PRIMARY: #0b4844;
  --COLOR--PRIMARY--SHADE: #14655d;
  --COLOR--PRIMARY--DARK: #042e2b;
  --COLOR--PRIMARY--LIGHT: #e2f1e9;
  --COLOR--PRIMARY--ULTRALIGHT: #f0f7f3;
  --COLOR--APP--GRAY: #f8f7f3;
  --COLOR--APP--LIGHTGRAY: #fcfbf8;
  --COLOR--APP--DARKGRAY: #efece4;
  --COLOR--TEXT: #294b47;
  --COLOR--TEXT--LIGHT: #637873;
  --COLOR--HEADING: #063b38;
  --COLOR--LINK: #0c514c;
  --COLOR--LINK-HOVER: #083b37;
  --COLOR--LINK-FOCUS: #083b37;
  --BORDER-RADIUS: 12px;
  --c-gc-body-bg: #faf9f6;
  --c-gc-header-bg: #fff9ed;
  --c-gc-header-text-color: #063b38;
  --c-gc-header-link-color: #063b38;
  --c-gc-header-link-color-hover: #063b38;
  --c-gc-header-link-active-indicator: transparent;
  --c-gc-header-logo-color: #063b38;
  --c-gc-header-tagline-color: #063b38;
  --c-gc-header-sidebar-logo-bg: #fff9ed;
  --c-gc-header-sidebar-logo-text-color: #063b38;
  --c-gc-header-sidebar-menu-links-color: #063b38;
  --c-gc-header-sidebar-menu-active-link-color: #063b38;
  --c-gc-header-sidebar-menu-active-indicator-color: #ffb52c;
  --c-ps-post-text-color: #294b47;
  --c-ps-post-text-color-light: #637873;
  --c-ps-postbox-text-color: #506965;
  --c-ps-postbox-text-color-light: #294b47;
  --c-ps-postbox-icons-color: #294b47;
  --c-ps-postbox-icons-active-color: #0b4844;
  --c-ps-postbox-type-bg: #f7f6f1;
  --c-ps-postbox-type-bg-hover: #fff0cf;
  background: #faf9f6;
}
body.ap-sunny-theme .gc-header {
  background-color: var(--ap-sun-cream);
  background-image: url('header.png');
  background-size: cover;
  background-position: right center;
  background-repeat: no-repeat;
  border-bottom: 1px solid #efd7a3;
  box-shadow: 0 2px 15px #46330806;
}
body.ap-sunny-theme .gc-header__logo { margin-right: 0; }
body.ap-sunny-theme .gc-header__logo img {
  content: url('logo.png');
  object-fit: contain;
  width: 100%; height: auto; max-height: 74px;
}
body.ap-sunny-theme .gc-header__logo .gc-logo__image { width: 100%; height: auto; }
body.ap-sunny-theme .gc-header__logo a { display: block; width: 100%; }
body.ap-sunny-theme .gc-header__sidebar-logo .gc-header__logo { width: 100%; max-width: 330px; }
body.ap-sunny-theme .gc-header__sidebar-logo { background: #fff9ed; padding: 22px 18px; }
body.ap-sunny-theme .gc-header__sidebar { background: #fffdf8; }
body.ap-sunny-theme .gc-header .ap-site-live-link,
body.ap-sunny-theme .gc-header .pso-notif__toggle,
body.ap-sunny-theme .gc-header .pso-w-userbar-user__toggle {
  color: var(--ap-sun-ink) !important;
}
body.ap-sunny-theme .gc-header .ap-site-live-link:hover { background: #fff0cf; border-radius: 12px; }
body.ap-sunny-theme .gc-header.ap-site-header .ap-site-main-toggle {
  color: var(--ap-sun-ink); border-color: #cbbd99 !important; background: #fffdf5;
  border-radius: 12px !important;
}
body.ap-sunny-theme .gc-header.ap-site-header .ap-site-primary-list { gap: 8px; }
body.ap-sunny-theme .gc-header.ap-site-header .ap-site-primary-list > li > a {
  color: var(--ap-sun-ink); padding: 11px 22px; border-radius: 22px; min-height: 44px;
  font-size: 15px; line-height: 22px; font-weight: 600;
}
body.ap-sunny-theme .gc-header.ap-site-header .ap-site-primary-list > li > a::after { display: none; }
body.ap-sunny-theme .gc-header.ap-site-header .ap-site-primary-list > li > a:hover { background: #fff0cf; }
body.ap-sunny-theme .gc-header.ap-site-header .ap-site-primary-list > li.current-menu-item > a {
  background: #ffb52c; color: #063b38;
}
.ap-sunny-search { display: none; }
.ap-sunny-guest { display: flex; align-items: center; gap: 12px; }
.ap-sunny-guest a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 14px; color: #063b38; font-size: 14px; font-weight: 700; white-space: nowrap; }
.ap-sunny-guest a.ap-sunny-join { color: #fff; background: #063b38; border-radius: 14px; padding-inline: 22px; }
.ap-sunny-guest a.ap-sunny-join:hover { background: #145d55; }
body.ap-sunny-theme :is(.ap-sunny-search,.ap-sunny-guest,.gc-header__logo,.ap-site-primary,.ap-site-live-link) :focus-visible,
body.ap-sunny-theme .ap-site-live-link:focus-visible { outline: 3px solid #775408; outline-offset: 3px; }
/* Opt-in to the navigation adapter's two-row width calculation. */
@media (min-width: 1100px) {
  body.ap-sunny-theme .gc-header {
    --ap-site-header-two-rows: 1;
    height: auto !important;
    background-image: linear-gradient(to bottom, transparent calc(100% - 55px), #fffaf0e8 calc(100% - 55px)), url('header.png');
  }
  body.ap-sunny-theme .gc-header.ap-site-header .gc-header__inner {
    display: grid; grid-template-columns: minmax(280px, 380px) minmax(220px, 1fr) auto;
    grid-template-rows: 96px 56px; gap: 0 30px; height: auto !important; padding: 0 20px;
    align-items: center;
  }
  body.ap-sunny-theme .gc-header.ap-site-header .gc-header__logo:not(.gc-header__logo--mobile) {
    display: flex; grid-column: 1; grid-row: 1; width: 100%; max-width: 380px;
  }
  body.ap-sunny-theme .gc-header.ap-site-header .gc-header__logo--mobile { display: none; }
  body.ap-sunny-theme .gc-header.ap-site-header .ap-site-primary {
    grid-column: 1 / 3; grid-row: 2; align-self: stretch; width: auto;
  }
  body.ap-sunny-theme .gc-header.ap-site-header .ap-site-primary-list { align-items: center; }
  body.ap-sunny-theme .gc-header.ap-site-header .ap-site-live-link {
    grid-column: 3; grid-row: 2; justify-self: end; flex-direction: row; gap: 12px;
    font-size: 15px; padding: 0 16px; margin: 0;
  }
  body.ap-sunny-theme .gc-header.ap-site-header :is(.gc-header__addons,.ap-sunny-guest) {
    grid-column: 3; grid-row: 1; margin: 0; padding: 0; width: auto; border: 0;
    justify-self: end;
  }
  body.ap-sunny-theme:not(.logged-in) .gc-header .gc-header__addons { display: none; }
  body.ap-sunny-theme .gc-header.ap-site-header .ap-sunny-search {
    display: flex; align-items: center; grid-column: 2; grid-row: 1; width: 100%; min-width: 0;
    border: 1px solid #dedbd1; border-radius: 18px; background: #ffffffdf; overflow: hidden;
  }
  .ap-sunny-search input { width: 100%; min-width: 0; height: 44px; padding: 10px 4px 10px 16px; border: 0 !important; background: transparent; box-shadow: none !important; font: inherit; font-size: 13px; color: #294b47; }
  .ap-sunny-search input::placeholder { color: #62726c; opacity: 1; }
  .ap-sunny-search button { display: flex; align-items: center; justify-content: center; width: 44px; min-width: 44px; min-height: 44px; padding: 10px; border: 0; background: transparent; color: #294b47; }
  .ap-sunny-search button:hover { background: #fff0cf; }
  .ap-sunny-search svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
  /* When an exceptionally wide menu needs the drawer, keep its button on row 2. */
  body.ap-sunny-theme .gc-header.ap-site-header.ap-site-header--compact .ap-site-main-toggle { grid-row: 2; grid-column: 1; justify-self: start; }
  body.ap-sunny-theme .gc-header.ap-site-header.ap-site-header--compact .gc-header__addons { position: relative; flex: none; min-height: 0; }
}
@media (max-width: 1099px) {
  body.ap-sunny-theme .gc-header.ap-site-header .gc-header__inner { gap: 8px; padding-top: 8px; padding-bottom: 8px; }
  body.ap-sunny-theme .gc-header.ap-site-header .gc-header__logo { max-width: 360px; }
  body.ap-sunny-theme .gc-header.ap-site-header .gc-header__logo img { max-height: 64px; }
  body.ap-sunny-theme .gc-header .ap-sunny-guest { order: 9; flex-basis: 100%; justify-content: flex-end; border-top: 1px solid #eadfc8; padding-top: 5px; }
  body.ap-sunny-theme .gc-header.ap-site-header.ap-site-header--compact.ap-site-has-userbar .gc-header__addons { border-color: #eadfc8; }
}
@media (max-width: 480px) {
  body.ap-sunny-theme .gc-header.ap-site-header .gc-header__inner { gap: 5px; }
  body.ap-sunny-theme .gc-header.ap-site-header .gc-header__logo { margin-inline-end: 0; }
  body.ap-sunny-theme .gc-header.ap-site-header .ap-site-main-toggle { min-width: 78px; }
  body.ap-sunny-theme .gc-header .ap-site-live-link { min-width: 44px; margin: 0; font-size: 9px; }
  .ap-sunny-guest a { min-height: 40px; padding: 8px 12px; font-size: 13px; }
}
/* White cards, warm borders. Do not clip dropdowns, media, or modal controls. */
body.ap-sunny-theme .ps-post,
body.ap-sunny-theme .ps-postbox,
body.ap-sunny-theme .pso-post,
body.ap-sunny-theme .pso-postbox { border-radius: 12px; border-color: var(--ap-sun-line); box-shadow: 0 5px 20px #513d1605; }
body.ap-sunny-theme #ap-tv-site-upcoming { border-color: var(--ap-sun-line); box-shadow: 0 5px 20px #513d1605; }
body.ap-sunny-theme #ap-tv-site-upcoming strong,
body.ap-sunny-theme #ap-tv-site-upcoming .ap-tv-site-upcoming__title { color: #063b38; }
body.ap-sunny-theme .ap-sidebar-discover { border-color: var(--ap-sun-line); border-top-color: var(--ap-sun-line); box-shadow: 0 5px 20px #513d1605; }
body.ap-sunny-theme #ap-sidebar-discover-title { color: #063b38; }
/* The dock is the same component: 4 destinations, safe areas and CMP preserved. */
body.ap-sunny-theme #ap-site-dock {
  background: #fffaf0f7; color: #063b38; border-top: 1px solid #e6d6ad;
  box-shadow: 0 -4px 22px #4633080d;
}
body.ap-sunny-theme #ap-site-dock .ap-site-dock__item { color: #31554d; border-radius: 12px; }
body.ap-sunny-theme #ap-site-dock .ap-site-dock__item:hover { color: #063b38; background: #fff0cf; }
body.ap-sunny-theme #ap-site-dock .ap-site-dock__item:is([aria-current="page"],[aria-expanded="true"]) { color: #063b38; background: #ffedbd; }
body.ap-sunny-theme #ap-site-dock .ap-site-dock__item[aria-current="page"]::before { background: #eda917; }
body.ap-sunny-theme #ap-site-dock :is(a,button):focus-visible { outline-color: #775408; }
body.ap-sunny-theme #ap-site-privacy-panel { color: #063b38; background: #fffdf8; border-color: #d8c69c; box-shadow: 0 8px 30px #26342626; }
body.ap-sunny-theme #ap-site-dock #ap-legal-links a,
body.ap-sunny-theme #ap-site-dock .cmplz-manage-consent { color: #063b38; }
body.ap-sunny-theme #ap-site-dock #ap-legal-links a:hover,
body.ap-sunny-theme #ap-site-dock .cmplz-manage-consent:hover { color: #063b38; background: #fff0cf; }
@media (prefers-reduced-motion: reduce) { body.ap-sunny-theme .gc-header * { scroll-behavior: auto; } }

/* Joining: preserve native form/layout/validation; align accents with the site. */
body.ap-sunny-theme .ap-onboarding { --ap-ui-ink: #063b38; --ap-ui-muted: #506965; }
body.ap-sunny-theme .ap-onboarding .ap-ui-page-header { color: #063b38; }
body.ap-sunny-theme .ap-onboarding .ap-account-panel { border-color: #e9e6dd; }
body.ap-sunny-theme .ap-onboarding .ap-onboarding-number { color: #063b38; background: #ffce6a; }
body.ap-sunny-theme .ap-onboarding .ap-onboarding-card > strong { color: #805400; }
body.ap-sunny-theme .ap-onboarding .ap-ui-page-icon { background: #fff0cf; }
body.ap-sunny-theme .ap-onboarding .ap-button { color: #fff !important; background: #063b38; border-color: #063b38; }
body.ap-sunny-theme .ap-onboarding .ap-button:hover { color: #fff; background: #145d55; border-color: #145d55; }
body.ap-sunny-theme .ap-onboarding .ap-button-light { color: #063b38 !important; background: #fff0cf; border-color: #e3c98f; }
body.ap-sunny-theme .ap-onboarding .ap-button-light:hover { color: #063b38 !important; background: #ffdf91; border-color: #d3b572; }
body.ap-sunny-theme .ap-onboarding :is(input,select,textarea):focus { border-color: #0b4844; outline-color: #0b4844; }
body.ap-sunny-theme .ap-onboarding .ap-button:focus-visible { outline: 3px solid #775408; outline-offset: 3px; }
body.ap-sunny-theme .ap-sunny-intro {
  margin: 0 0 20px; padding: clamp(20px,3vw,30px); border: 1px solid #ecd9af;
  border-radius: 16px; background: linear-gradient(125deg,#fffaf0,#fff3d7);
  color: #294b47;
}
body.ap-sunny-theme .ap-sunny-intro__eyebrow { display: block; margin-bottom: 10px; color: #71500b; font-size: 12px; line-height: 1.5; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
body.ap-sunny-theme .ap-sunny-intro h3 { margin: 0 0 12px; color: #063b38; font-size: clamp(23px,2.2vw,30px); line-height: 1.25; }
body.ap-sunny-theme .ap-sunny-intro p { margin: 0 0 12px; font-size: 16px; line-height: 1.6; }
body.ap-sunny-theme .ap-sunny-intro ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 18px 0 0; padding: 0; }
body.ap-sunny-theme .ap-sunny-intro li { list-style: none; margin: 0; padding: 7px 12px; border-radius: 20px; background: #ffffffc9; border: 1px solid #eadbb7; color: #063b38; font-size: 13px; line-height: 1.4; font-weight: 600; }
