/* Core service page: shared brand colours and type, quiet reading and real results. */
.service-page { font-family: 'Proxima Nova', Helvetica, Arial, sans-serif; }
.service-page p, .service-page li { font-size: 18px; line-height: 1.75; }
.service-page p { margin: 0 0 18px; }
.service-page h1, .service-page h2, .service-page h3 { font-weight: 400; }
.service-page h2 { font-size: clamp(30px, 3.3vw, 44px); line-height: 1.15; letter-spacing: -.035em; }
.service-page h3 { font-size: 25px; line-height: 1.3; margin: 34px 0 16px; letter-spacing: -.02em; }
.service-page a:not(.button) { text-decoration: underline; text-underline-offset: 5px; }
.service-page a:not(.button):hover { color: var(--accent); }
.service-hero { display: grid; grid-template-columns: 1.2fr 1fr; background: var(--beige); }
.service-hero-copy { padding: 30px clamp(26px, 5vw, 80px) 48px; }
.service-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; font-size: 14px; margin: 0 0 40px; }
.service-page h1 { font-size: clamp(42px, 5.2vw, 76px); line-height: 1.02; letter-spacing: -.045em; margin: 0 0 25px; max-width: 13ch; }
.service-hero-copy .service-lead { font-size: clamp(22px, 2vw, 28px); line-height: 1.35; margin-bottom: 25px; max-width: 30ch; }
.service-hero-copy p { max-width: 58ch; font-size: 17px; line-height: 1.65; }
.service-hero-photo { margin: 0; position: relative; min-width: 0; overflow: hidden; }
.service-hero-photo img { display: block; width: 100%; height: 100%; position: absolute; object-fit: cover; object-position: center 25%; }
.service-hero-photo figcaption { position: absolute; bottom: 24px; left: 24px; right: 24px; width: fit-content; padding: 10px 16px; background: var(--paper); color: var(--ink); font-size: 14px; }
.service-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.service-page .button { background: var(--accent); border-color: var(--accent); color: var(--brand-porcelain); justify-content: center; text-align: center; line-height: 1.4; white-space: normal; max-width: 100%; margin: 8px 0; min-height: 48px; }
.service-page .button:hover { background: var(--brand-rosewood-hover); border-color: var(--brand-rosewood-hover); }
.service-page .service-secondary { background: transparent; color: var(--ink); border-color: var(--ink); }
.service-page .service-secondary:hover { background: var(--brand-porcelain); color: var(--ink); }
.service-hero-copy .service-booking-help { font-size: 14px; margin: 14px 0 0; }
.service-hero-copy .service-opening-prices { font-size: 15px; }
.service-facts { display: grid; grid-template-columns: 1fr 1fr 1fr 1.5fr; gap: 24px; padding: 28px 6%; background: var(--sand); }
.service-facts a { display: block; text-decoration: none !important; font-size: 15px; padding: 4px 0; }
.service-facts strong { display: block; font-size: 24px; font-weight: 400; margin-top: 7px; }
.service-jumps { display: flex; flex-wrap: wrap; gap: 12px 30px; padding: 26px 6%; border-bottom: 1px solid var(--line); font-size: 15px; }
.service-jumps a { padding: 8px 0; }
.service-section { display: grid; grid-template-columns: minmax(200px, .8fr) minmax(0, 1.2fr); gap: clamp(30px, 7vw, 100px); padding: 65px max(6%, calc((100vw - 1260px) / 2)); scroll-margin-top: 30px; }
.service-section + .service-section { border-top: 1px solid var(--line); }
.service-section h2 { margin-bottom: 0; max-width: 17ch; }
.service-body { min-width: 0; max-width: 70ch; }
.service-body > :last-child { margin-bottom: 0; }
.service-body ul { padding-left: 23px; margin: 22px 0; }
.service-body li { padding-left: 5px; margin-bottom: 8px; }
.service-maara, .service-luonnollinen, .service-ensimmainen-kerta { background: var(--sand); }
.service-maara .service-price, .service-hinnasto .service-price { font-size: 38px; line-height: 1.15; color: var(--accent); }
.service-maara h3, .service-hinnasto h3 { border-top: 1px solid var(--line); padding-top: 24px; }
.service-hoidon-kulku h3 { margin-top: 35px; }
.service-hoidon-kulku h3:first-child { margin-top: 0; }
.service-tulokset { display: block; }
.service-tulokset h2 { max-width: none; margin-bottom: 28px; }
.service-tulokset .service-body { max-width: none; }
.service-tulokset p { max-width: 70ch; }
.service-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin: 32px 0; align-items: start; }
.service-gallery figure { margin: 0; }
.service-gallery img { display: block; width: 100%; height: auto; }
.service-gallery figcaption { font-size: 14px; color: var(--muted); line-height: 1.6; margin-top: 12px; }
.service-tiina-photo { display: block; width: 100%; max-width: 400px; height: auto; margin: 36px 0 24px; }
.service-ukk details { border-bottom: 1px solid var(--line); padding: 20px 0; }
.service-ukk details:first-child { padding-top: 0; }
.service-ukk summary { cursor: pointer; font-size: 21px; line-height: 1.45; padding: 5px 20px 5px 0; }
.service-ukk summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
.service-ukk details p { margin-top: 16px; }
.service-ajanvaraus { background: var(--beige); }
.service-ajanvaraus .button { margin-right: 10px; }
@media (max-width: 1000px) {
 .service-hero { grid-template-columns: 1.3fr 1fr; }
 .service-hero-copy { padding: 28px 6% 36px; }
 .service-section { gap: 32px; grid-template-columns: .85fr 1.15fr; }
}
@media (max-width: 760px) {
 .service-hero { display: flex; flex-direction: column; }
 .service-breadcrumb { margin-bottom: 28px; }
 .service-hero-copy { padding: 24px 6% 30px; }
 .service-hero-copy { display: flex; flex-direction: column; }
 .service-hero-copy > p { order: 6; }
 .service-hero-copy .service-breadcrumb { order: 0; }
 .service-hero-copy h1 { order: 1; }
 .service-hero-copy .service-lead { order: 2; }
 .service-hero-copy .service-opening-prices { order: 3; }
 .service-hero-copy .service-actions { order: 4; margin-top: 0; }
 .service-hero-copy .service-booking-help { order: 5; margin: 12px 0 28px; }
 .service-hero-photo { height: 380px; }
 .service-hero-photo img { object-position: center 30%; }
 .service-page h1 { font-size: clamp(43px, 11vw, 66px); }
 .service-page h2 { font-size: 32px; max-width: none; }
 .service-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 18px; padding: 26px 6%; }
 .service-facts strong { font-size: 21px; }
 .service-jumps { gap: 6px 22px; padding: 20px 6%; }
 .service-section { display: block; padding: 40px 6%; }
 .service-section h2 { margin-bottom: 24px; }
 .service-page p, .service-page li { font-size: 17px; }
 .service-gallery { grid-template-columns: 1fr; gap: 28px; }
 .service-hero-copy .service-booking-help { font-size: 14px; }
}
@media print {
 .service-jumps, .service-actions, .service-page .button { display: none; }
 .service-section { break-inside: avoid; }
}
