/*
Theme Name: Pitkäsen Sähköasennus
Author: DataVest Oy
Description: Muokattava lohkoteema Pitkäsen Sähköasennus Oy:lle.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: psasennus
License: GNU General Public License v2 or later
*/
:root { --ps-blue:#175296; --ps-ink:#14283f; --ps-paper:#f1f4f7; --ps-slate:#526173; --ps-yellow:#f4cd43; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:28px; }
body { margin:0; -webkit-font-smoothing:antialiased; }
img { max-width:100%; height:auto; }
a { text-underline-offset:4px; text-decoration-thickness:1px; }
a:hover { text-decoration-thickness:2px; }
a,button,input,select,textarea { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #175296; outline-offset:5px; }
.site-footer :focus-visible,.contact-section :focus-visible { outline-color:#f4cd43; }
.wp-site-blocks { padding-top:0; padding-bottom:0; }
.wp-site-blocks > *,main,.wp-block-post-content > * { margin-block-start:0; }
.wp-block-template-part { margin:0; }
h1,h2,h3,p,ul { overflow-wrap:break-word; }
h1,h2,h3 { text-wrap:balance; }
p { max-width:70ch; }
.wp-block-columns { margin-bottom:0; }
.wp-block-image { margin:0; }
.wp-block-image img { display:block; width:100%; border-radius:5px; }
.wp-block-image figcaption { color:var(--ps-slate); text-align:left; font-size:14px; margin:13px 0 0; line-height:1.45; }
.wp-block-column { min-width:0; }
.wp-block-buttons { gap:12px; }
.wp-block-button__link { min-height:50px; display:inline-flex; align-items:center; justify-content:center; transition:background-color .15s ease, color .15s ease; }
.wp-block-button__link:hover { background:#103f77; color:white; }
.wp-block-button.is-style-outline>.wp-block-button__link { border:1px solid #b1bdca; color:var(--ps-ink); background:transparent; padding:calc(.85rem - 1px) calc(1.4rem - 1px); }
.wp-block-button.is-style-outline>.wp-block-button__link:hover { background:#e6edf5; border-color:var(--ps-blue); }
.section { padding-block:clamp(58px,7vw,104px); }
.section-inner>:first-child { margin-top:0; }
.section-inner>:last-child { margin-bottom:0; }
.site-header-shell,.site-header-shell>* { margin-block-start:0!important; }
.masthead { padding-block:23px; }
.masthead-row { gap:30px; }
.masthead .brand { font-size:25px; font-weight:700; line-height:1.13; max-width:340px; letter-spacing:-.05em; margin:0; }
.masthead-contact { text-align:right; margin:0; }
.masthead-contact p { margin:0; color:var(--ps-slate); font-size:14px; }
.masthead-contact p:last-child { font-family:var(--wp--preset--font-family--display); font-size:25px; font-weight:600; margin-top:5px; }
.masthead-contact a { color:var(--ps-blue); text-decoration:none; }
.navigation-bar { background:var(--ps-blue); }
.navigation-row { gap:30px; min-height:64px; }
.navigation-row>.wp-block-buttons { margin:0; align-self:stretch; }
.navigation-row .wp-block-button { display:flex; }
.navigation-row .wp-block-button__link { border-radius:0; background:var(--ps-yellow); color:var(--ps-ink); padding-inline:30px; }
.navigation-row .wp-block-button__link:hover { background:#ffe27d; }
.navigation-row .wp-block-navigation__container { gap:42px; }
.site-header-shell .navigation-bar .wp-block-navigation .wp-block-navigation-item__content { color:#fff; padding:18px 0; font-size:17px; }
.navigation-row .wp-block-navigation__responsive-container-open { color:#fff; }
.navigation-row :focus-visible { outline-color:var(--ps-yellow); }
.electrical-hero { min-height:610px!important; padding:78px clamp(22px,4vw,60px) 40px; }
.electrical-hero .wp-block-cover__inner-container { max-width:1200px; width:100%; margin:auto; }
.electrical-hero .wp-block-cover__background { opacity:1!important; background:linear-gradient(90deg,rgba(13,40,72,.96) 0%,rgba(13,40,72,.83) 39%,rgba(13,40,72,.35) 78%,rgba(13,40,72,.16) 100%)!important; }
.electrical-hero .wp-block-cover__image-background { object-position:50% 57%; }
.electrical-hero h1 { color:#fff; font-size:clamp(2.15rem,5.6vw,5.25rem); line-height:1.08; font-weight:600; letter-spacing:-.065em; margin:0; max-width:1000px; text-wrap:initial; }
.hero-lead { color:#eaf0f7; font-size:21px; line-height:1.6; max-width:44ch; margin:25px 0 0; }
.hero-content>.wp-block-buttons { margin-top:30px; }
.hero-content .wp-block-button__link { color:var(--ps-ink); background:var(--ps-yellow); border-radius:0; font-size:17px; }
.hero-content .wp-block-button__link:hover { background:#ffe27d; }
.hero-caption { color:#d0dce9; font-size:13px; margin-top:54px; }
.hero-content :focus-visible { outline-color:var(--ps-yellow); }
.service-index { gap:65px; }
.service-index h2 { font-size:clamp(2.3rem,4vw,3.5rem); margin:0 0 22px; }
.service-index>.wp-block-column:first-child>p { color:var(--ps-slate); max-width:23ch; font-size:18px; }
.service-row { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:28px; padding:28px 0; border-bottom:1px solid #cbd5e0; margin:0; align-items:start; }
.service-row:first-child { border-top:1px solid #cbd5e0; }
.service-row h3 { margin:0; font-size:clamp(1.3rem,2.1vw,1.85rem); line-height:1.25; letter-spacing:-.05em; }
.service-row h3 a { color:var(--ps-ink); text-decoration:none; }
.service-row h3 a:hover { color:var(--ps-blue); text-decoration:underline; }
.service-row p { margin:0; color:var(--ps-slate); font-size:17px; line-height:1.55; }
.work-section { background:var(--ps-paper); }
.work-heading { max-width:760px; margin-bottom:36px; }
.work-heading h2 { max-width:26ch; margin:0; }
.work-heading p { max-width:62ch; color:var(--ps-slate); margin:18px 0 0; font-size:18px; }
.work-mosaic { gap:28px; align-items:flex-start; }
.work-wide img,.work-tall img { height:clamp(320px,34vw,440px); object-fit:cover; border-radius:0; }
.work-mosaic figcaption { font-size:15px; margin-top:15px; }
.work-link { margin-top:28px; }
.text-link { color:var(--ps-blue); font-weight:600; text-decoration:underline; }
.project-index { gap:85px; }
.project-index h2 { margin:0 0 20px; }
.project-index>.wp-block-column:first-child>p { color:var(--ps-slate); }
.project-index .wp-block-buttons { margin-top:28px; }
.project-item { display:grid; grid-template-columns:65px minmax(0,1fr); column-gap:25px; border-top:1px solid #cbd5e0; padding:25px 0; margin:0; }
.project-item:last-child { border-bottom:1px solid #cbd5e0; }
.project-item .project-year { grid-row:1/3; margin:2px 0 0; color:var(--ps-blue); font-size:17px; }
.project-item h3 { font-size:23px; margin:0; letter-spacing:-.045em; }
.project-item p:last-child { margin:8px 0 0; font-size:17px; color:var(--ps-slate); }
.company-section { background:var(--ps-ink); color:#fff; }
.company-introduction { gap:70px; align-items:center; }
.company-introduction h2 { color:#fff; font-size:clamp(1.9rem,3.6vw,3.25rem); margin:0; letter-spacing:-.055em; }
.company-introduction .lead { color:#e2eaf3; font-size:21px; margin:0; }
.company-introduction .text-link { color:var(--ps-yellow); }
.company-section :focus-visible { outline-color:var(--ps-yellow); }
.contact-section { background:var(--ps-yellow); color:var(--ps-ink); padding-block:62px; }
.contact-strip { gap:70px; align-items:center; }
.contact-section h2 { font-size:clamp(1.9rem,3vw,2.7rem); margin:0; max-width:14ch; }
.contact-section p { font-size:18px; max-width:39ch; }
.contact-phone { font-family:var(--wp--preset--font-family--display); font-weight:600; line-height:1.15; letter-spacing:-.055em; }
.contact-section .contact-phone { font-size:clamp(1.9rem,3.8vw,3.3rem); margin:0 0 24px; }
.contact-phone a { color:var(--ps-ink); text-decoration:none; }
.contact-section .wp-block-button__link { border-radius:0; background:var(--ps-ink); color:#fff; }
.contact-section .wp-block-button__link:hover { background:var(--ps-blue); }
.contact-section :focus-visible { outline-color:var(--ps-ink); }
.page-intro { padding-block:64px 70px; background:var(--ps-ink); color:#fff; }
.page-intro h1 { margin:0; font-size:clamp(2.1rem,4.5vw,4.25rem); line-height:1.1; letter-spacing:-.06em; max-width:1050px; }
.page-intro .lead { color:#dce7f3; max-width:62ch; margin-top:25px; margin-bottom:0; font-size:21px; }
.content-split { gap:clamp(35px,6vw,90px); }
.content-split h2 { margin-top:0; }
.content-split ul { padding-left:1.25em; }
.content-split li { margin-top:.7em; }
.service-photo img { height:420px; object-fit:cover; border-radius:0; }
.pale-section { background:var(--ps-paper); }
.text-columns { gap:90px; }
.text-columns h2 { font-size:2rem; margin-top:0; }
.wide-photo img { height:440px; object-fit:cover; object-position:center 47%; border-radius:0; }
.reference-list { margin-top:65px; }
.reference-list:first-child { margin-top:0; }
.reference-list h2 { margin-top:0; margin-bottom:28px; }
.reference-row { display:flex; gap:30px; border-top:1px solid #cbd5e0; padding-block:25px; margin:0; }
.reference-year { width:55px; flex-shrink:0; color:var(--ps-blue); font-weight:600; margin:0; }
.reference-description { margin:0; }
.reference-description h3 { font-size:22px; margin:0; }
.reference-description p { margin:8px 0 0; font-size:17px; color:var(--ps-slate); }
.photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:45px 32px; }
.photo-grid>.wp-block-image { margin:0; }
.photo-grid img { width:100%; aspect-ratio:1.4; object-fit:cover; border-radius:0; }
.photo-grid figcaption { font-size:16px; }
.contact-columns { gap:80px; }
.contact-columns h2 { font-size:30px; margin-top:0; }
.contact-panel { padding:0 35px 0 0; }
.contact-panel h2 { font-size:26px; line-height:1.25; }
.contact-panel h3 { font-size:20px; margin-top:40px; line-height:1.3; }
.contact-panel ul { padding-left:20px; font-size:17px; }
.contact-panel p { font-size:17px; }
.contact-panel .contact-phone { font-size:32px; margin-top:30px; margin-bottom:13px; }
.contact-panel .contact-phone a { color:var(--ps-blue); }
.contact-panel .contact-email { font-size:20px; margin-top:0; }
.contact-panel a { overflow-wrap:anywhere; }
.privacy-copy { max-width:780px; margin-left:auto; margin-right:auto; }
.privacy-copy h2 { font-size:27px; margin-top:42px; }
.privacy-copy h2:first-child { margin-top:0; }
.site-footer { background:var(--ps-blue); color:#fff; padding-block:48px 36px; }
.footer-brand-row { gap:30px; border-bottom:1px solid #5a83b2; padding-bottom:30px; margin-bottom:28px; }
.footer-brand-row .wp-block-site-title { color:#fff; font-size:26px; font-weight:600; max-width:460px; line-height:1.2; letter-spacing:-.05em; }
.site-footer a,.site-footer .wp-block-site-title a { color:#fff; }
.site-footer p { font-size:16px; margin:0; color:#e1ebf7; }
.site-footer .wp-block-columns { gap:30px; }
.footer-details p { line-height:1.8; }
.wp-block-form-block-form { margin-top:28px; }
.wp-block-form-block-form label { display:block; font-size:17px; font-weight:600; margin-bottom:7px; }
.wp-block-form-block-form input:not([type=checkbox]):not([type=radio]):not([type=submit]),.wp-block-form-block-form textarea,.wp-block-form-block-form select { width:100%; min-height:49px; padding:10px 13px; background:#f7f9fb; color:var(--ps-ink); border:1px solid #8c9cac; border-radius:0; box-shadow:none; font:inherit; }
.wp-block-form-block-form textarea { min-height:150px; resize:vertical; }
.wp-block-form-block-form .wp-block-form-block-input,.wp-block-form-block-form .wp-block-form-block-select,.wp-block-form-block-form .wp-block-form-block-textarea { margin-bottom:20px; }
.wp-block-form-block-form input[type=submit],.wp-block-form-block-form button[type=submit] { background:var(--ps-blue); color:#fff; font:inherit; font-weight:600; border:0; border-radius:0; padding:14px 26px; min-height:50px; cursor:pointer; }
.wp-block-form-block-form input[type=submit]:hover { background:#103f77; }
.wp-block-form-block-form .form-block-errors { color:#9b251f; }
.wp-block-navigation__responsive-container-open,.wp-block-navigation__responsive-container-close { padding:10px; }
.wp-block-navigation__responsive-container.is-menu-open { background:var(--ps-ink); color:#fff; padding:30px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items:flex-start; gap:14px; width:100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size:24px; align-items:flex-start; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a { color:#fff; font-size:24px; padding:8px 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { color:#fff; }
@media(max-width:1050px) {
 .navigation-row .wp-block-navigation__container { gap:27px; }
 .service-index,.project-index { gap:40px; }
 .service-row { grid-template-columns:1fr; gap:12px; }
 .contact-columns { gap:40px; }
 .contact-panel { padding-right:0; }
}
@media(max-width:781px) {
 .masthead { padding-block:20px; }
 .masthead-row { gap:22px; }
 .masthead .brand { font-size:20px; max-width:250px; }
 .masthead-contact p:first-child { display:none; }
 .masthead-contact p:last-child { font-size:20px; white-space:nowrap; margin:0; }
 .navigation-row { min-height:58px; gap:20px; }
 .navigation-row .wp-block-button__link { padding-inline:22px; font-size:16px; }
 .electrical-hero { min-height:540px!important; padding-top:62px; padding-bottom:30px; }
 .electrical-hero .wp-block-cover__background { background:linear-gradient(90deg,rgba(13,40,72,.95),rgba(13,40,72,.75))!important; }
 .hero-lead { font-size:19px; }
 .hero-caption { margin-top:46px; font-size:12px; }
 .service-index,.project-index,.company-introduction,.content-split,.text-columns,.contact-columns { gap:32px; }
 .service-index h2 { margin-bottom:15px; }
 .service-index>.wp-block-column:first-child>p { max-width:40ch; }
 .service-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; padding-block:26px; }
 .service-row h3 { font-size:22px; }
 .work-heading { margin-bottom:30px; }
 .work-heading p { margin-top:20px; }
 .work-mosaic { gap:22px; }
 .work-wide img { height:auto; aspect-ratio:1.4; }
 .work-tall img { height:auto; max-height:480px; object-position:center 55%; }
 .company-introduction h2 { font-size:32px; }
 .company-introduction .lead { font-size:19px; }
 .contact-strip { gap:28px; }
 .contact-section { padding-block:48px; }
 .contact-section h2 { max-width:none; }
 .contact-section .contact-phone { font-size:36px; }
 .page-intro { padding-block:45px 48px; }
 .page-intro .lead { font-size:19px; }
 .service-photo img { height:auto; max-height:420px; aspect-ratio:1.3; }
 .wide-photo img { height:auto; aspect-ratio:1.3; }
 .reference-list { margin-top:40px; }
 .photo-grid { gap:28px 20px; }
 .photo-grid img { aspect-ratio:1; }
 .contact-panel { border-bottom:1px solid #cbd5e0; padding-bottom:30px; }
 .contact-panel .contact-phone { font-size:32px; }
 .footer-brand-row { gap:20px; }
 .footer-brand-row .wp-block-site-title { font-size:24px; }
 .footer-details { gap:24px; }
}
@media(min-width:600px) and (max-width:760px) {
 .navigation-row .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none!important; }
 .navigation-row .wp-block-navigation__responsive-container-open { display:flex!important; }
}
@media(max-width:760px) {
 .wp-block-navigation__responsive-container-open::after { content:'Valikko'; font-family:var(--wp--preset--font-family--body); font-size:17px; font-weight:600; margin-left:8px; }
}
@media(max-width:480px) {
 .masthead-row { flex-wrap:wrap!important; gap:12px; }
 .masthead .brand { max-width:260px; }
 .masthead-contact p:last-child { font-size:17px; }
 .masthead-row .masthead-contact { width:100%; text-align:left; }
 .navigation-row .wp-block-button__link { padding-inline:18px; }
 .electrical-hero { min-height:520px!important; }
 .service-row { grid-template-columns:1fr; gap:11px; }
 .photo-grid { grid-template-columns:1fr; }
 .reference-row { gap:19px; }
 .reference-description h3 { font-size:20px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none!important; transition:none!important; }
}
.people-section { padding-bottom:0; }
.people-section h2 { margin:0 0 32px; }
.people-list { margin:0; }
.person-row { display:grid; grid-template-columns:1fr .8fr 1.3fr; align-items:center; gap:30px; padding:28px 0; border-top:1px solid #cbd5e0; margin:0; }
.person-row:last-child { border-bottom:1px solid #cbd5e0; }
.person-row h3 { margin:0; font-size:24px; letter-spacing:-.045em; }
.person-row p { margin:0; }
.person-row .person-role { font-size:16px; color:var(--ps-slate); margin-top:8px; }
.person-phone { font-size:23px; font-weight:600; }
.person-phone a { text-decoration:none; }
.person-email { font-size:19px; overflow-wrap:anywhere; }
@media(max-width:900px) { .person-row { grid-template-columns:1fr 1.5fr; gap:12px 25px; } .person-name { grid-row:1/3; } }
@media(max-width:599px) { .person-row { grid-template-columns:1fr; gap:12px; padding-block:27px; } .person-name { grid-row:auto; margin-bottom:3px; } .person-row h3 { font-size:22px; } .person-email { font-size:18px; } }
/* Beat the core navigation block's :not(.has-background) modal defaults. */
.site-header-shell .navigation-bar .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open { background-color:var(--ps-ink); color:#fff; padding:28px; }
.site-header-shell .navigation-bar .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content { align-items:flex-start; padding-top:70px; }
.site-header-shell .navigation-bar .wp-block-navigation .is-menu-open .wp-block-navigation__container { align-items:stretch; gap:0; width:100%; }
.site-header-shell .navigation-bar .wp-block-navigation .is-menu-open .wp-block-navigation-item { width:100%; align-items:flex-start; }
.site-header-shell .navigation-bar .wp-block-navigation .is-menu-open .wp-block-navigation-item__content { color:#fff; font-family:var(--wp--preset--font-family--display); font-size:26px; font-weight:500; line-height:1.3; padding:20px 0; width:100%; border-bottom:1px solid #526780; text-align:left; }
.site-header-shell .navigation-bar .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-close { color:var(--ps-ink); background:var(--ps-yellow); border-radius:0; padding:12px; }
