/* Ilveste Rakennus Oy — sivuston tyylit (puhdas Elementor + hello-elementor) */
:root{
  --il-ink:#161616;
  --il-ink2:#1F1F1F;
  --il-amber:#FAB501;
  --il-amber-d:#E3A400;
  --il-text:#3A3A38;
  --il-muted:#6B6B66;
  --il-line:#E4E4E0;
  --il-surface:#F4F3EF;
}

html{ scroll-padding-top:96px; }
body{ -webkit-font-smoothing:antialiased; color:var(--il-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(--il-ink); }

/* ---------- otsikot ---------- */
body .elementor-widget-heading .elementor-heading-title{ color:var(--il-ink); }
body .elementor-widget-heading:not(.il-card-title):not(.il-point-title) h1.elementor-heading-title,
body .elementor-widget-heading:not(.il-card-title):not(.il-point-title) h2.elementor-heading-title{
  text-transform:uppercase; letter-spacing:.01em; }
body .elementor-widget-heading h1.elementor-heading-title{ font-size:54px; 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:23px; line-height:1.3; font-weight:500; }
@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 .il-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 ---------- */
.il-eyebrow p{
  font-family:'Inter',sans-serif; font-size:16px; font-weight:600; text-transform:uppercase;
  letter-spacing:1.2px; color:var(--il-ink); margin:0; display:flex; align-items:center; gap:12px; }
.il-eyebrow p::before{ content:""; width:28px; height:3px; background:var(--il-amber); flex:0 0 auto; }
.il-dark .il-eyebrow p{ color:var(--il-amber); }
.il-head-center .il-eyebrow p{ justify-content:center; }

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

/* ---------- napit ---------- */
body .il-btn .elementor-button{
  background:var(--il-amber); color:var(--il-ink); border:2px solid var(--il-amber); border-radius:40px;
  font-family:'Oswald',sans-serif; font-weight:500; font-size:17px; text-transform:uppercase;
  letter-spacing:.04em; padding:14px 30px; line-height:1.2;
  transition:background .18s ease,border-color .18s ease,color .18s ease; }
body .il-btn .elementor-button:hover, body .il-btn .elementor-button:focus-visible{
  background:var(--il-amber-d); border-color:var(--il-amber-d); color:var(--il-ink); }
body .il-btn-ghost .elementor-button{ background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
body .il-btn-ghost .elementor-button:hover, body .il-btn-ghost .elementor-button:focus-visible{
  background:#fff; border-color:#fff; color:var(--il-ink); }
body .il-btn-line .elementor-button{ background:transparent; color:var(--il-ink); border-color:var(--il-ink); }
body .il-btn-line .elementor-button:hover, body .il-btn-line .elementor-button:focus-visible{
  background:var(--il-ink); border-color:var(--il-ink); color:#fff; }
body .il-btn-sm .elementor-button{ padding:10px 20px; font-size:16px; }

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

.e-con.il-btns{ --flex-direction:row !important; --flex-wrap:wrap !important; flex-direction:row; flex-wrap:wrap; }
.e-con.il-btns > .elementor-widget{ width:auto; }
.e-con.il-btns-center{ justify-content:center; }
.e-con.il-btns-end{ justify-content:flex-end; }
@media (max-width:767px){ .e-con.il-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.il-header{ border-bottom:1px solid rgba(255,255,255,.08); }
.e-con.il-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.il-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; }
.il-logo img, .il-footer-logo img{ width:56px !important; height:56px !important; object-fit:contain; display:block; }
.il-logo, .il-footer-logo{ width:auto !important; }
.il-brand, .il-brand:hover{ font-family:'Oswald',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; }
.il-brand span{ display:block; font-size:12px; font-weight:500; letter-spacing:.28em; color:var(--il-amber);
  margin-top:5px; }
.il-brand-wrap p{ margin:0; }
.il-nav{ flex:1 1 auto; }
body .il-nav .elementor-nav-menu--main .elementor-item{
  font-family:'Oswald',sans-serif; font-weight:500; font-size:17px; text-transform:uppercase; letter-spacing:.05em;
  color:#fff; padding:10px 16px; }
body .il-nav .elementor-nav-menu--main .elementor-item:hover,
body .il-nav .elementor-nav-menu--main .elementor-item.elementor-item-active{ color:var(--il-amber); }
body .il-nav .elementor-nav-menu--main .elementor-item::after{ background-color:var(--il-amber); height:2px; }
.il-header-cta{ flex:0 0 auto; width:auto !important; }
.il-header-cta .elementor-button{ white-space:nowrap; }

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

/* ---------- hero ---------- */
.e-con.il-hero{ position:relative; }
.e-con.il-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.il-hero-plain::before{ display:none; }
.e-con.il-hero > .e-con-inner{ position:relative; z-index:1; gap:22px; }
.il-hero-h1 .elementor-heading-title{ max-width:920px; }
.il-hero-sub{ max-width:700px !important; }
.il-hero-sub p{ color:rgba(255,255,255,.9); }
.e-con.il-hero-btns{ margin-top:8px; }

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

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

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

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

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

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

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

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

/* ---------- listat ---------- */
.il-list-title{ font-weight:600; color:var(--il-ink); margin:4px 0 8px !important; }
.il-check{ list-style:none; margin:0; padding:0; }
.il-check li{ position:relative; padding-left:30px; margin:0 0 8px; }
.il-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='%23FAB501'/%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 ---------- */
.il-cta .elementor-widget-text-editor{ color:rgba(255,255,255,.85); }
.e-con.il-cta .il-col-a{ gap:14px; }

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

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

/* ---------- galleria ---------- */
.il-gallery .gallery{ display:grid !important; grid-template-columns:repeat(3,1fr); gap:14px; margin:0 !important; }
.il-gallery .gallery-item{ width:100% !important; max-width:100% !important; padding:0 !important; margin:0 !important; }
.il-gallery .gallery-item a, .il-gallery .gallery-icon{ display:block; }
.il-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; }
.il-gallery br{ display:none; }
@media (max-width:1024px){ .il-gallery .gallery{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .il-gallery .gallery{ gap:8px; } }

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

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

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

/* ---------- yhteyspainikkeen nostokortti (asiakas 27.9.2026: neliömäisempi ja kapeampi) ---------- */
body .dsyp .dsyp-dock{ width:290px; max-width:100%; }
body .dsyp .dsyp-card{ min-height:290px; align-items:flex-start; border-radius:14px; background:#161616; color:#fff; }
body .dsyp .dsyp-card.has-img::before{ background-position:center bottom; }
body .dsyp .dsyp-card.has-img::after{
  background:linear-gradient(180deg,rgba(22,22,22,.95) 0%,rgba(22,22,22,.82) 38%,rgba(22,22,22,.25) 62%,rgba(22,22,22,0) 78%); }
body .dsyp .dsyp-card__txt{ max-width:100%; padding:18px 20px; gap:4px; }
body .dsyp .dsyp-card__txt b{ color:#fff; font-family:'Oswald',sans-serif; font-weight:600; font-size:20px;
  text-transform:uppercase; letter-spacing:.01em; }
body .dsyp .dsyp-card__txt>span:not(.dsyp-card__btn){ color:rgba(255,255,255,.88); font-size:14px; }
body .dsyp .dsyp-card__btn{ margin-top:6px; padding:8px 16px; font-size:14px;
  background:var(--dsyp-accent); color:var(--dsyp-accent-ink); }
body .dsyp .dsyp-card:hover .dsyp-card__btn{ background:#fff; color:#161616; }

/* ---------- tunnukset etusivun alareunassa ---------- */
.e-con.il-badges{ justify-content:center; }
.e-con.il-badges .il-badge img{ width:auto !important; max-width:190px; max-height:110px; }
