/* Rakennuspalvelu Pasi Ylennysmäki Ky — sivuston tyylit (puhdas Elementor + hello-elementor) */
:root{
  --yl-ink:#161616;
  --yl-ink2:#232323;
  --yl-amber:#FFCC33;
  --yl-amber-d:#F2B705;
  --yl-text:#3A3A38;
  --yl-muted:#6B6B66;
  --yl-line:#E4E4E0;
  --yl-surface:#F3F2EE;
}

html{ scroll-padding-top:96px; }
body{ -webkit-font-smoothing:antialiased; color:var(--yl-text); overflow-x:clip; }

/* hello-elementorin reset.css värjää napit ja linkit pinkeiksi (#c36) */
[type=button]:focus,[type=button]:hover,[type=submit]:focus,[type=submit]:hover,button:focus,button:hover{
  background-color:transparent; color:inherit; }
a{ color:var(--yl-ink); }

/* ---------- otsikot ---------- */
body .elementor-widget-heading .elementor-heading-title{ color:var(--yl-ink); }
body .elementor-widget-heading .elementor-heading-title{ font-family:'Archivo',sans-serif; letter-spacing:-.01em; }
body .elementor-widget-heading h1.elementor-heading-title, body .elementor-widget-heading h2.elementor-heading-title{ font-weight:700; }
body .elementor-widget-heading h1.elementor-heading-title{ font-size:52px; line-height:1.1; }
body .elementor-widget-heading h2.elementor-heading-title{ font-size:38px; line-height:1.18; }
body .elementor-widget-heading h3.elementor-heading-title{ font-size:22px; line-height:1.3; font-weight:600; }
@media (max-width:1024px){
  body .elementor-widget-heading h1.elementor-heading-title{ font-size:42px; }
  body .elementor-widget-heading h2.elementor-heading-title{ font-size:32px; }
}
@media (max-width:767px){
  body .elementor-widget-heading h1.elementor-heading-title{ font-size:32px; line-height:1.14; overflow-wrap:break-word; }
  body .elementor-widget-heading h2.elementor-heading-title{ font-size:26px; overflow-wrap:break-word; }
  body .elementor-widget-heading h3.elementor-heading-title{ font-size:21px; }
}
body .yl-dark .elementor-widget-heading .elementor-heading-title{ color:#fff; }

.elementor-widget-text-editor p{ margin:0 0 1em; }
.elementor-widget-text-editor p:last-child{ margin-bottom:0; }

/* ---------- yläotsikko ---------- */
.yl-eyebrow p{
  font-family:'Inter',sans-serif; font-size:16px; font-weight:600; text-transform:uppercase;
  letter-spacing:1.2px; color:var(--yl-ink); margin:0; display:flex; align-items:center; gap:12px; }
.yl-eyebrow p::before{ content:""; width:28px; height:3px; background:var(--yl-amber); flex:0 0 auto; }
.yl-dark .yl-eyebrow p{ color:var(--yl-amber); }
.yl-head-center .yl-eyebrow p{ justify-content:center; }

.yl-lead p{ font-size:19px; line-height:1.65; }

/* ---------- napit ---------- */
body .yl-btn .elementor-button{
  background:var(--yl-amber); color:var(--yl-ink); border:2px solid var(--yl-amber); border-radius:4px;
  font-family:'Archivo',sans-serif; font-weight:600; font-size:16px; text-transform:none;
  letter-spacing:0; padding:14px 28px; line-height:1.2;
  transition:background .18s ease,border-color .18s ease,color .18s ease; }
body .yl-btn .elementor-button:hover, body .yl-btn .elementor-button:focus-visible{
  background:var(--yl-amber-d); border-color:var(--yl-amber-d); color:var(--yl-ink); }
body .yl-btn-ghost .elementor-button{ background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
body .yl-btn-ghost .elementor-button:hover, body .yl-btn-ghost .elementor-button:focus-visible{
  background:#fff; border-color:#fff; color:var(--yl-ink); }
body .yl-btn-line .elementor-button{ background:transparent; color:var(--yl-ink); border-color:var(--yl-ink); }
body .yl-btn-line .elementor-button:hover, body .yl-btn-line .elementor-button:focus-visible{
  background:var(--yl-ink); border-color:var(--yl-ink); color:#fff; }
body .yl-btn-sm .elementor-button{ padding:10px 20px; font-size:16px; }

body .yl-link .elementor-button{
  background:transparent; color:var(--yl-ink); padding:0; border-radius:0; font-family:'Inter',sans-serif;
  font-weight:600; font-size:16px; text-decoration:underline; text-decoration-color:var(--yl-amber);
  text-decoration-thickness:2px; text-underline-offset:5px; }
body .yl-link .elementor-button:hover{ text-decoration-color:var(--yl-ink); background:transparent; color:var(--yl-ink); }

.e-con.yl-btns{ --flex-direction:row !important; --flex-wrap:wrap !important; flex-direction:row; flex-wrap:wrap; }
.e-con.yl-btns > .elementor-widget{ width:auto; }
.e-con.yl-btns-center{ justify-content:center; }
.e-con.yl-btns-end{ justify-content:flex-end; }
@media (max-width:767px){ .e-con.yl-btns-end{ justify-content:flex-start; } }

/* ---------- ylätunniste ---------- */
header.elementor-location-header{ position:sticky; top:0; z-index:99; }
.admin-bar header.elementor-location-header{ top:32px; }
.e-con.yl-header{ border-bottom:1px solid rgba(255,255,255,.08); }
.e-con.yl-header-row{ --flex-direction:row !important; --flex-wrap:nowrap !important; flex-direction:row;
  flex-wrap:nowrap; justify-content:space-between; align-items:center; }
.e-con.yl-brand-row{ --flex-direction:row !important; --flex-wrap:nowrap !important; flex-direction:row;
  flex-wrap:nowrap; align-items:center; width:auto; flex:0 0 auto; }
.yl-logo img, .yl-footer-logo img{ width:56px !important; height:56px !important; object-fit:contain; display:block; }
.yl-logo, .yl-footer-logo{ width:auto !important; }
.yl-brand, .yl-brand:hover{ font-family:'Archivo',sans-serif; font-weight:600; font-size:24px; line-height:1;
  text-transform:uppercase; letter-spacing:.04em; color:#fff !important; text-decoration:none; display:block; }
.yl-brand span{ display:block; font-size:12px; font-weight:500; letter-spacing:.28em; color:var(--yl-amber);
  margin-top:5px; }
.yl-brand-wrap p{ margin:0; }
.yl-nav{ flex:1 1 auto; }
body .yl-nav .elementor-nav-menu--main .elementor-item{
  font-family:'Archivo',sans-serif; font-weight:600; font-size:16px; text-transform:none; letter-spacing:0;
  color:#fff; padding:10px 14px; }
body .yl-nav .elementor-nav-menu--main .elementor-item:hover,
body .yl-nav .elementor-nav-menu--main .elementor-item.elementor-item-active{ color:var(--yl-amber); }
body .yl-nav .elementor-nav-menu--main .elementor-item::after{ background-color:var(--yl-amber); height:2px; }
.yl-header-cta{ flex:0 0 auto; width:auto !important; }
.yl-header-cta .elementor-button{ white-space:nowrap; }

@media (max-width:1024px){
  .e-con.yl-header, .e-con.yl-header > .e-con-inner, .e-con.yl-header-row{ position:static !important; }
  header.elementor-location-header .e-con.yl-header{ position:relative !important; }
  .yl-nav, .yl-nav .elementor-widget-container{ position:static !important; }
  .e-con.yl-header-row{ gap:14px; }
  .yl-nav{ order:3; flex:0 0 auto; }
  .yl-header-cta{ order:2; margin-left:auto; }
  body .yl-nav .elementor-menu-toggle{ background:transparent; color:#fff; min-width:46px; min-height:46px; }
  body .yl-nav .elementor-menu-toggle svg{ fill:#fff; }
  body .yl-nav nav.elementor-nav-menu--dropdown{
    position:absolute !important; top:100% !important; left:0 !important; right:0 !important;
    width:100% !important; max-width:100% !important; margin-top:0 !important; background:var(--yl-ink2); }
  body .yl-nav nav.elementor-nav-menu--dropdown .elementor-item{
    color:#fff !important; background:var(--yl-ink2) !important; font-family:'Archivo',sans-serif;
    font-size:18px; text-transform:none; letter-spacing:0; padding:16px 24px;
    border-top:1px solid rgba(255,255,255,.08); }
  body .yl-nav nav.elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
  body .yl-nav nav.elementor-nav-menu--dropdown .elementor-item:hover{ color:var(--yl-amber) !important; }
}
@media (max-width:767px){
  .yl-logo img{ width:46px !important; height:46px !important; }
  .yl-brand{ font-size:20px; }
  .yl-brand span{ font-size:10px; letter-spacing:.22em; }
  body .yl-header-cta .elementor-button{ padding:9px 14px; font-size:15px; }
}
@media (max-width:359px){
  .yl-brand-wrap{ display:none; }
}

/* ---------- hero ---------- */
.e-con.yl-hero{ position:relative; }
.e-con.yl-hero::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(90deg,rgba(14,14,14,.9) 0%,rgba(14,14,14,.72) 55%,rgba(14,14,14,.45) 100%); }
.e-con.yl-hero-plain::before{ display:none; }
.e-con.yl-hero > .e-con-inner{ position:relative; z-index:1; gap:22px; }
.yl-hero-h1 .elementor-heading-title{ max-width:920px; }
.yl-hero-sub{ max-width:700px !important; }
.yl-hero-sub p{ color:rgba(255,255,255,.9); }
.e-con.yl-hero-btns{ margin-top:8px; }

/* ---------- vahvuusnauha ---------- */
.yl-strip-list{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 28px; }
.yl-strip-list li{ font-family:'Archivo',sans-serif; font-size:16px; font-weight:600; text-transform:uppercase;
  letter-spacing:.06em; color:#fff; display:flex; align-items:center; gap:12px; }
.yl-strip-list li::before{ content:""; width:10px; height:10px; background:var(--yl-amber); transform:rotate(45deg); }
@media (max-width:767px){
  .yl-strip-list{ display:grid; grid-template-columns:1fr 1fr; }
  .yl-strip-list li{ font-size:15px; }
}

/* ---------- osiot ---------- */
.e-con.yl-head{ max-width:780px; gap:14px; }
.e-con.yl-head-center{ margin:0 auto; text-align:center; align-items:center; }
.yl-head-center .elementor-widget{ width:100%; }
@media (max-width:767px){
  body .e-con.yl-sec{ padding-top:64px !important; padding-bottom:64px !important; padding-left:20px !important; padding-right:20px !important; }
  body .e-con.yl-cta, body .e-con.yl-stats{ padding-left:20px !important; padding-right:20px !important; }
}

/* ---------- rivit ja ruudukot ---------- */
.e-con.yl-row{ --flex-direction:row !important; --flex-wrap:wrap !important; flex-direction:row; flex-wrap:wrap; }
.e-con.yl-grid-4{ align-items:stretch; }
.yl-grid-4 > .e-con{ flex:1 1 calc(25% - 21px); min-width:0; }
.yl-grid-3 > .e-con{ flex:1 1 calc(33.333% - 19px); min-width:0; }
.yl-split > .e-con{ flex:1 1 calc(50% - 40px); min-width:0; }
.yl-split-form > .e-con.yl-contact-col{ flex:1 1 calc(40% - 28px); }
.yl-split-form > .e-con.yl-form-col{ flex:1 1 calc(60% - 28px); }
@media (max-width:1024px){
  .yl-grid-4 > .e-con{ flex:1 1 calc(50% - 14px); }
  .yl-split > .e-con, .yl-split-form > .e-con.yl-contact-col, .yl-split-form > .e-con.yl-form-col{ flex:1 1 100%; }
  .yl-grid-3 > .e-con{ flex:1 1 calc(33.333% - 19px); }
}
@media (max-width:767px){
  .yl-grid-4 > .e-con, .yl-grid-3 > .e-con{ flex:1 1 100%; }
  .e-con.yl-split-media{ gap:32px !important; }
}

/* ---------- kuvat ---------- */
.yl-photo, .yl-photo a, .yl-photo figure{ display:block; width:100% !important; max-width:100% !important; }
.yl-photo img{ width:100% !important; height:auto !important; aspect-ratio:4/3; object-fit:cover; border-radius:4px; display:block; }
.yl-badge{ width:auto !important; }
.yl-badge img{ width:170px !important; height:auto !important; display:block; border-radius:3px; }

/* ---------- palvelukortit ---------- */
.e-con.yl-card{ background:#fff; border:1px solid var(--yl-line); border-radius:4px; overflow:hidden; gap:0; }
.yl-card .yl-card-img, .yl-card .yl-card-img a, .yl-card .yl-card-img figure{ display:block; width:100% !important; }
.yl-card .yl-card-img img{ width:100% !important; height:auto !important; aspect-ratio:4/3; object-fit:cover; display:block; }
.e-con.yl-card-body{ padding:24px 24px 26px !important; gap:12px; flex:1 1 auto; }
.yl-card-body .yl-link{ margin-top:auto; padding-top:6px; }
.yl-card-text p{ font-size:16px; line-height:1.65; }

/* ---------- meistä-pisteet ---------- */
.e-con.yl-copy{ gap:18px; }
.e-con.yl-points{ gap:18px; margin:6px 0 8px; }
.e-con.yl-point{ border-left:3px solid var(--yl-amber); padding-left:18px !important; gap:4px; }
.yl-point p{ font-size:16px; }

/* ---------- luvut ---------- */
.yl-stat{ text-align:center; }
.yl-num{ font-family:'Archivo',sans-serif; font-weight:600; font-size:68px; line-height:1; color:var(--yl-amber); margin:0 0 10px !important; }
.yl-num-label{ color:rgba(255,255,255,.82); font-size:17px; text-transform:uppercase; letter-spacing:.08em; font-weight:500; }
@media (max-width:767px){ .yl-grid-3 > .e-con.yl-stat{ flex:1 1 100%; } .yl-num{ font-size:56px; } }

/* ---------- ukk ---------- */
.yl-faq .elementor-accordion-item{ border:0 !important; border-bottom:1px solid var(--yl-line) !important; }
.yl-faq .elementor-accordion-item:first-child{ border-top:1px solid var(--yl-line) !important; }
body .yl-faq .elementor-tab-title{ padding:22px 4px !important; border:0 !important; }
body .yl-faq .elementor-tab-title .elementor-accordion-title{ font-family:'Archivo',sans-serif; font-weight:500;
  font-size:21px; line-height:1.35; color:var(--yl-ink); }
body .yl-faq .elementor-tab-title .elementor-accordion-icon svg{ fill:var(--yl-amber-d); width:16px; }
body .yl-faq .elementor-tab-title .elementor-accordion-icon i{ color:var(--yl-amber-d); }
body .yl-faq .elementor-tab-content{ padding:0 4px 24px !important; border:0 !important; color:var(--yl-text); }
body .yl-faq .elementor-tab-content a{ text-decoration:underline; text-decoration-color:var(--yl-amber); text-underline-offset:3px; }

/* ---------- listat ---------- */
.yl-list-title{ font-weight:600; color:var(--yl-ink); margin:4px 0 8px !important; }
.yl-check{ list-style:none; margin:0; padding:0; }
.yl-check li{ position:relative; padding-left:30px; margin:0 0 8px; }
.yl-check li::before{ content:""; position:absolute; left:0; top:.42em; width:18px; height:18px;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect width='20' height='20' rx='3' fill='%23FFCC33'/%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23161616' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

/* ---------- cta ---------- */
.yl-cta .elementor-widget-text-editor{ color:rgba(255,255,255,.85); }
.e-con.yl-cta .yl-col-a{ gap:14px; }

/* ---------- yhteystiedot ---------- */
.yl-contact{ display:grid; grid-template-columns:max-content 1fr; gap:10px 22px; margin:0; }
.yl-contact dt{ font-weight:600; color:var(--yl-ink); }
.yl-contact dd{ margin:0; }
.yl-contact a{ color:var(--yl-ink); text-decoration:underline; text-decoration-color:var(--yl-amber); text-underline-offset:3px; }
@media (max-width:420px){ .yl-contact{ grid-template-columns:1fr; gap:2px; } .yl-contact dd{ margin-bottom:10px; } }
.e-con.yl-form-col{ background:var(--yl-surface); border-radius:6px; padding:36px 34px 38px !important; gap:14px; }
@media (max-width:767px){ .e-con.yl-form-col{ padding:26px 18px 28px !important; } }

/* ---------- lomake ---------- */
.yl-form .elementor-field-label{ font-weight:600; font-size:15px; color:var(--yl-ink); margin-bottom:6px; }
body .yl-form .elementor-field-textual, body .yl-form select.elementor-field{
  background:#fff; border:1px solid #CFCFC9; border-radius:4px; font-size:16px; padding:12px 14px; min-height:48px; color:var(--yl-ink); }
body .yl-form .elementor-field-textual:focus, body .yl-form select.elementor-field:focus{
  border-color:var(--yl-ink); box-shadow:0 0 0 3px rgba(255,204,51,.45); outline:none; }
body .yl-form .elementor-upload-field{ background:#fff; border:1px dashed #BDBDB6; border-radius:4px; padding:12px; width:100%; font-size:15px; }
body .yl-form .elementor-field-type-submit .elementor-button{
  background:var(--yl-amber); color:var(--yl-ink); border-radius:4px; font-family:'Archivo',sans-serif; font-weight:500;
  font-size:17px; text-transform:none; letter-spacing:0; font-weight:600; padding:16px 28px; min-height:54px; }
body .yl-form .elementor-field-type-submit .elementor-button:hover,
body .yl-form .elementor-field-type-submit .elementor-button:focus{ background:var(--yl-amber-d); color:var(--yl-ink); }
.yl-form .elementor-message{ font-weight:600; }
.yl-form .elementor-message.elementor-message-success{ color:#1D6B2F; }
.yl-form .elementor-field-group{ margin-bottom:14px; }

/* ---------- galleria ---------- */
.yl-gallery .gallery{ display:grid !important; grid-template-columns:repeat(3,1fr); gap:14px; margin:0 !important; }
.yl-gallery .gallery-item{ width:100% !important; max-width:100% !important; padding:0 !important; margin:0 !important; }
.yl-gallery .gallery-item a, .yl-gallery .gallery-icon{ display:block; }
.yl-gallery .gallery-item img{ width:100% !important; height:auto !important; aspect-ratio:4/3; object-fit:cover; border-radius:4px; display:block; border:0 !important; }
.yl-gallery br{ display:none; }
@media (max-width:1024px){ .yl-gallery .gallery{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .yl-gallery .gallery{ gap:8px; } }

/* ---------- alatunniste ---------- */
.yl-footer, .yl-footer .elementor-widget-text-editor{ color:rgba(255,255,255,.74); font-size:16px; }
body .yl-footer .elementor-widget-heading .elementor-heading-title.elementor-heading-title{
  font-size:15px; text-transform:uppercase; letter-spacing:.1em; color:#fff; font-weight:600; }
.yl-footer a{ color:#fff; text-decoration:none; }
.yl-footer a:hover{ color:var(--yl-amber); }
.yl-footer-links{ list-style:none; margin:0; padding:0; }
.yl-footer-links li{ margin:0 0 8px; }
.e-con.yl-footer-grid{ flex-wrap:nowrap; --flex-wrap:nowrap !important; }
.yl-footer-grid > .e-con{ flex:1 1 0; min-width:0; gap:16px; }
.yl-footer-grid > .e-con:first-child{ flex:1.35 1 0; }
.e-con.yl-footer:not(.yl-footer-bottom){ border-top:1px solid rgba(255,255,255,.1); }
.yl-footer .yl-brand, .yl-footer .yl-brand:hover{ color:#fff !important; }
.yl-footer-bottom, .yl-footer-bottom .elementor-widget-text-editor{ font-size:14px; color:rgba(255,255,255,.6); }
.yl-footer-buttons{ justify-content:flex-end; }
.yl-footer-buttons .elementor-widget-shortcode{ width:auto; }
.yl-footer-buttons button, .yl-footer-buttons a{ background:transparent !important; color:rgba(255,255,255,.8) !important;
  border:1px solid rgba(255,255,255,.3) !important; border-radius:4px !important; padding:6px 14px !important;
  font-size:14px !important; cursor:pointer; }
.yl-footer-buttons button:hover, .yl-footer-buttons a:hover{ color:var(--yl-ink) !important; background:var(--yl-amber) !important; border-color:var(--yl-amber) !important; }
@media (max-width:1024px){ .e-con.yl-footer-grid{ flex-wrap:wrap; --flex-wrap:wrap !important; } .yl-footer-grid > .e-con, .yl-footer-grid > .e-con:first-child{ flex:1 1 calc(50% - 20px); } }
@media (max-width:767px){
  .yl-footer-grid > .e-con, .yl-footer-grid > .e-con:first-child{ flex:1 1 100%; }
  .yl-footer-buttons{ justify-content:flex-start; }
}

/* ---------- tietosuojaseloste ---------- */
.yl-legal h2{ font-family:'Archivo',sans-serif; font-size:24px; font-weight:500; color:var(--yl-ink); margin:34px 0 10px; text-transform:none; }
.yl-legal ul{ margin:0 0 1em; padding-left:1.2em; }
.yl-legal table{ width:100%; border-collapse:collapse; font-size:15px; }
.yl-legal th, .yl-legal td{ border:0; border-bottom:1px solid var(--yl-line); padding:10px 8px; text-align:left; background:transparent !important; }

/* ---------- tarjouspyynnön vaiheet ---------- */
.yl-steps{ list-style:none; counter-reset:ylstep; margin:0; padding:0; }
.yl-steps li{ counter-increment:ylstep; position:relative; padding-left:44px; margin:0 0 12px; min-height:30px; }
.yl-steps li::before{ content:counter(ylstep); position:absolute; left:0; top:0; width:30px; height:30px; border-radius:50%;
  background:var(--yl-amber); color:var(--yl-ink); font-family:'Archivo',sans-serif; font-weight:600; font-size:16px;
  display:flex; align-items:center; justify-content:center; }

/* ================= Ylennysmäki: omat lisäykset ================= */
.yl-eyebrow p{ font-size:14px; letter-spacing:1.4px; }

/* brändi: logo + kaksirivinen nimi */
.yl-brand, .yl-brand:hover{ text-transform:none; letter-spacing:0; font-size:inherit; line-height:1.1; }
.yl-brand .yl-brand-top{ display:block; font-family:'Inter',sans-serif; font-size:11px; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--yl-amber); margin:0 0 4px; }
.yl-brand .yl-brand-name{ display:block; font-family:'Archivo',sans-serif; font-size:21px; font-weight:700; color:#fff;
  letter-spacing:0; margin:0; }
.yl-logo img, .yl-footer-logo img{ width:58px !important; height:58px !important; }
@media (max-width:767px){
  .yl-logo img{ width:46px !important; height:46px !important; }
  .yl-brand .yl-brand-name{ font-size:17px; }
  .yl-brand .yl-brand-top{ font-size:9.5px; letter-spacing:.18em; }
}
@media (max-width:400px){ .yl-header-cta .elementor-button-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .yl-header-cta .elementor-button-icon{ margin:0 !important; } }
.yl-header-cta .elementor-button-icon svg{ width:15px; height:15px; fill:currentColor; }

/* yhteyshenkilöt ja lainaus */
.yl-quote p{ font-family:'Archivo',sans-serif; font-size:21px; line-height:1.45; font-weight:600; color:var(--yl-ink);
  border-left:4px solid var(--yl-amber); padding:4px 0 4px 20px; margin:0; }
.e-con.yl-people-box{ background:#fff; border:1px solid var(--yl-line); border-radius:4px; padding:18px 22px !important; }
.yl-people p{ margin:0 0 6px !important; display:flex; flex-wrap:wrap; gap:4px 14px; justify-content:space-between; }
.yl-people p:last-child{ margin-bottom:0 !important; }
.yl-person{ font-weight:600; color:var(--yl-ink); }
.yl-people a{ color:var(--yl-ink); font-weight:600; text-decoration:underline; text-decoration-color:var(--yl-amber);
  text-decoration-thickness:2px; text-underline-offset:4px; white-space:nowrap; }

/* korkea kuva (pystykuvat) */
.yl-photo-tall img{ aspect-ratio:4/5 !important; }
@media (max-width:767px){ .yl-photo-tall img{ aspect-ratio:4/3 !important; } }

/* vaiheet */
.e-con.yl-step{ background:#fff; border:1px solid var(--yl-line); border-top:4px solid var(--yl-amber); border-radius:4px;
  padding:28px 26px 30px !important; gap:10px; }
.yl-surface .e-con.yl-step{ background:#fff; }
.yl-step-num{ font-family:'Archivo',sans-serif; font-weight:700; font-size:44px; line-height:1; color:var(--yl-ink);
  margin:0 0 4px !important; }
.yl-step p{ font-size:16px; }
.yl-card-title .elementor-heading-title, .yl-step-title .elementor-heading-title{ font-size:22px !important; }

/* palvelulista tageina */
.yl-tags-wrap{ max-width:100% !important; }
.yl-tags{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.yl-tags li{ background:var(--yl-surface); border:1px solid var(--yl-line); border-radius:4px; padding:8px 16px;
  font-weight:600; font-size:16px; color:var(--yl-ink); }

/* tumma nauha (konetyöt) */
.yl-band .elementor-widget-text-editor{ color:rgba(255,255,255,.85); }
.yl-band .elementor-widget-text-editor p{ font-size:18px; }

.yl-small{ font-size:14px; color:var(--yl-muted); }
.yl-small a{ color:var(--yl-ink); text-decoration:underline; }
.yl-footer .yl-brand .yl-brand-name{ color:#fff; }

/* ---- korjauskierros 1 ---- */
.yl-step p.yl-step-num{ font-size:44px; line-height:1; font-weight:700; }
body .elementor-widget-heading .elementor-heading-title{ text-wrap:balance; }
.yl-footer-links a, .yl-contact a{ white-space:nowrap; }
body .yl-form .elementor-field-type-submit .elementor-button,
body .yl-form .elementor-field-type-submit .elementor-button:hover,
body .yl-form .elementor-field-type-submit .elementor-button:focus{ color:var(--yl-ink) !important; }
body .yl-form .elementor-field-type-submit .elementor-button .elementor-button-text{ color:var(--yl-ink) !important; }
@media (min-width:1200px){
  .yl-strip-list{ flex-wrap:nowrap; gap:12px 20px; }
  .yl-strip-list li{ white-space:nowrap; font-size:15px; }
}
@media (max-width:1199px){ .yl-strip-list{ display:grid; grid-template-columns:1fr 1fr; } }
@media (max-width:560px){
  .yl-strip-list{ grid-template-columns:1fr; gap:10px; }
  .yl-strip-list li{ font-size:14px; }
}
@media (max-width:1024px){ .yl-split-form > .e-con.yl-form-col{ order:-1; } }
/* header 1025–1199 px: valikko ja nappi eivät mahdu täysinä */
@media (min-width:1025px) and (max-width:1199px){
  body .yl-nav .elementor-nav-menu--main .elementor-item{ padding:10px 10px; font-size:15px; }
  .yl-header-cta .elementor-button-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .yl-header-cta .elementor-button-icon{ margin:0 !important; }
  body .yl-header-cta .elementor-button{ padding:12px 14px; }
}
.e-con.yl-header-row{ min-width:0; }
/* hero-taustakuva mobiilissa kevyempänä (containerin taustalla ei ole srcsetiä) */
@media (max-width:767px){
  .elementor-element-e226f86.yl-hero{ background-image:url(/wp-content/uploads/2026/09/rakentajan-tyokalut-1024x579.jpg) !important; }
  .elementor-element-da984e4.yl-hero{ background-image:url(/wp-content/uploads/2026/09/tyokalut-puulattialla-1024x578.jpg) !important; }
}
