/* Katuseplekksepp — kujundus (Bootstrap 5.3 peal)
   Värvid ja kiri tulenevad logost: Helvetica Neue Bold, sinine #079AE1, hall #7B7979, must #231F20 */

:root {
  --kp-blue: #079ae1;
  --kp-blue-dark: #0679b3;
  --kp-ink: #231f20;
  --kp-grey: #7b7979;
  --kp-steel: #f2f4f6;
  --kp-line: #dfe3e7;
  --kp-font: "Helvetica Neue", Helvetica, Arial, "Liberation Sans", sans-serif;

  --bs-body-font-family: var(--kp-font);
  --bs-body-color: #3a3637;
  --bs-body-line-height: 1.65;
  --bs-link-color-rgb: 6, 121, 179;
  --bs-link-hover-color-rgb: 35, 31, 32;
  --bs-border-radius: 2px;
}

html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { font-family: var(--kp-font); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; }
.ic { width: 1em; height: 1em; flex: none; vertical-align: -0.125em; }
.skip { position: absolute; z-index: 2000; left: 1rem; top: 1rem; padding: .5rem 1rem; background: #fff; }

h1, h2, h3, .h-sub {
  font-family: var(--kp-font); font-weight: 700; color: var(--kp-ink);
  letter-spacing: -0.035em; line-height: 1.05; text-wrap: balance;
}
h2 { font-size: clamp(1.75rem, 1.1rem + 2.4vw, 2.9rem); }
h3 { font-size: 1.35rem; letter-spacing: -0.02em; line-height: 1.2; }
.h-sub { font-size: 1.6rem; margin: 3rem 0 1rem; }
.lead { font-size: 1.2rem; font-weight: 400; color: var(--kp-ink); }

.eyebrow {
  display: flex; align-items: center; gap: .75rem; margin: 0 0 1rem;
  font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--kp-blue-dark); line-height: 1.2;
}
/* logo katuseviilust laenatud kaldjoon */
.eyebrow::before { content: ""; width: 22px; height: 12px; background: var(--kp-blue); transform: skewX(-36deg); flex: none; }

/* ---------- nupud ---------- */
.btn { border-radius: 2px; font-weight: 700; letter-spacing: -0.01em; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: .7rem 1.25rem; }
.btn-lg { padding: .95rem 1.6rem; font-size: 1.05rem; }
.btn-brand { background: var(--kp-blue); border-color: var(--kp-blue); color: #fff; }
.btn-brand:hover, .btn-brand:focus-visible { background: var(--kp-ink); border-color: var(--kp-ink); color: #fff; }
.sec-dark .btn-brand:hover, .hero .btn-brand:hover, .sec-dark .btn-brand:focus-visible { background: #fff; border-color: #fff; color: var(--kp-ink); }
.btn-ghost { border: 1px solid rgba(255,255,255,.45); color: #fff; }
.btn-ghost:hover { background: #fff; color: var(--kp-ink); }
.btn .ic { transition: transform .2s; }
.btn:hover .ic { transform: translateX(3px); }
:focus-visible { outline: 3px solid var(--kp-blue); outline-offset: 3px; }

.more { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; color: var(--kp-blue-dark); text-decoration: none; }
a.more:hover { color: var(--kp-ink); }

/* ---------- päis ---------- */
.site-header { background: rgba(255,255,255,.96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--kp-line); transition: box-shadow .2s; }
.site-header.scrolled { box-shadow: 0 6px 24px rgba(35,31,32,.08); }
.navbar { padding: .7rem 0; }
.navbar-brand img { height: 40px; width: auto; display: block; }
.nav-link { font-weight: 700; font-size: .95rem; color: var(--kp-ink); letter-spacing: -0.01em; padding: .5rem .7rem !important; position: relative; }
.nav-link:hover, .nav-link.active { color: var(--kp-blue-dark); }
.navbar-toggler { border: 0; padding: .5rem; display: grid; gap: 5px; box-shadow: none !important; }
.navbar-toggler span { width: 26px; height: 3px; background: var(--kp-ink); display: block; }
@media (max-width: 1199.98px) {
  .navbar-collapse { padding: 1rem 0 .5rem; }
  .nav-link { padding: .7rem 0 !important; border-bottom: 1px solid var(--kp-line); font-size: 1.05rem; }
  .navbar-collapse .btn { margin-top: 1rem; width: 100%; }
}

/* ---------- valtsplekk-triibud (logo motiiv) ---------- */
.seams { position: absolute; top: 0; right: -6vw; height: 100%; width: 46vw; max-width: 720px; display: flex; gap: 14px; transform: skewX(-36deg); transform-origin: top right; pointer-events: none; opacity: .92; }
.seams i { flex: 1; background: var(--kp-blue); }
.seams i:nth-child(1) { opacity: .16; }
.seams i:nth-child(2) { opacity: .3; }
.seams i:nth-child(3) { opacity: .55; }
.seams i:nth-child(4) { opacity: .9; }

/* ---------- hero ---------- */
.hero, .page-hero { position: relative; background: var(--kp-ink); color: #fff; overflow: hidden; isolation: isolate; }
.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; opacity: .5; }
.hero::after, .page-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(35,31,32,.94) 0%, rgba(35,31,32,.7) 55%, rgba(35,31,32,.25) 100%); }
.hero .seams, .page-hero .seams { z-index: -1; mix-blend-mode: screen; opacity: .55; }
.hero-inner { padding-top: clamp(5rem, 13vh, 9rem); padding-bottom: clamp(3.5rem, 9vh, 6rem); }
.hero .eyebrow, .page-hero .eyebrow, .sec-dark .eyebrow { color: #fff; }
.hero h1, .page-hero h1 { color: #fff; font-size: clamp(2.7rem, 1rem + 7.4vw, 6.75rem); letter-spacing: -0.05em; line-height: .93; max-width: 12ch; margin: 0; }
.hero h1 span { display: block; margin-top: 1.4rem; max-width: 22ch; font-size: clamp(1.2rem, .9rem + 1.3vw, 1.9rem); font-weight: 400; letter-spacing: -0.02em; line-height: 1.2; color: #d9dde1; }
.hero-cta { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.5rem; }
.hero-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.22); }
.hero-facts li { padding: 1.5rem 1.5rem 1.75rem 0; }
.hero-facts li + li { padding-left: 1.5rem; border-left: 1px solid rgba(255,255,255,.22); }
.hero-facts strong { display: block; font-size: clamp(1.3rem, 1rem + 1.2vw, 1.9rem); letter-spacing: -0.035em; line-height: 1.1; }
.hero-facts span { display: block; margin-top: .35rem; font-size: .92rem; color: #c8cdd2; line-height: 1.4; }
@media (max-width: 767.98px) {
  .hero-facts { grid-template-columns: 1fr; }
  .hero-facts li, .hero-facts li + li { padding: 1rem 0; border-left: 0; }
  .hero-facts li + li { border-top: 1px solid rgba(255,255,255,.22); }
  .seams { width: 70vw; }
}

.page-hero h1 { max-width: 16ch; font-size: clamp(2.4rem, 1rem + 5.4vw, 5rem); }
.page-hero .hero-inner { padding-top: clamp(4rem, 10vh, 7rem); padding-bottom: clamp(3rem, 8vh, 5rem); }
.page-hero-plain::after { display: none; }
.page-hero-plain .seams { mix-blend-mode: normal; opacity: .9; }
.hero-sub { margin: 1.25rem 0 0; font-size: 1.15rem; color: #d9dde1; }

/* ---------- sektsioonid ---------- */
.sec { padding: clamp(4rem, 9vw, 7.5rem) 0; position: relative; }
.sec-tint { background: var(--kp-steel); }
.sec-dark { background: var(--kp-ink); color: #d9dde1; overflow: hidden; }
.sec-dark h2 { color: #fff; }
.sec-dark .seams { opacity: .14; width: 34vw; }
.sec-dark .container { position: relative; }
.sec-head { max-width: 760px; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.sec-head h2 { margin: 0; }
.sec-head h2 + p { margin: 1rem 0 0; color: var(--kp-grey); font-size: 1.05rem; }

/* ---------- teenused ---------- */
.svc { position: relative; height: 100%; background: #fff; border: 1px solid var(--kp-line); display: flex; flex-direction: column; transition: border-color .2s, transform .2s, box-shadow .2s; }
.svc:has(a):hover { border-color: var(--kp-blue); transform: translateY(-4px); box-shadow: 0 18px 40px rgba(35,31,32,.1); }
.svc-img { aspect-ratio: 4 / 3; background: var(--kp-steel); overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 28px)); }
.svc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.svc:hover .svc-img img { transform: scale(1.04); }
.svc-body { padding: 1.25rem 1.6rem 1.75rem; display: flex; flex-direction: column; flex: 1; }
.svc h3 { margin-bottom: .8rem; font-size: 1.5rem; }
.svc h3 a { color: inherit; text-decoration: none; }
.svc p { font-size: .98rem; }
.svc .more { margin-top: auto; }

/* ---------- tehtud tööd ---------- */
.works { display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(170px, 19vw, 260px); }
.work { position: relative; border: 0; padding: 0; background: var(--kp-ink); overflow: hidden; cursor: zoom-in; text-align: left; color: #fff; }
.work img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s, opacity .3s; }
.work:hover img, .work:focus-visible img { transform: scale(1.05); opacity: .75; }
.work-cap { position: absolute; inset: auto 0 0 0; padding: 2.5rem 1.2rem 1rem; background: linear-gradient(transparent, rgba(35,31,32,.9)); display: flex; flex-direction: column; }
.work-cap strong { font-size: 1.2rem; letter-spacing: -0.025em; line-height: 1.15; display: inline-flex; align-items: center; gap: .5rem; }
.work-cap small { font-size: .82rem; color: #c8cdd2; }
.w1 { grid-column: span 2; grid-row: span 2; }
.w1 .work-cap strong { font-size: 1.7rem; }
.w6 { grid-column: span 2; }
.work-gallery { cursor: pointer; }
.work-gallery img { opacity: .45; }
.work-gallery .work-cap { inset: 0; justify-content: flex-end; background: linear-gradient(135deg, rgba(7,154,225,.75), rgba(35,31,32,.6)); }
@media (max-width: 991.98px) { .works { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 42vw; } .w6 { grid-column: span 2; grid-row: auto; } }
@media (max-width: 575.98px) { .works { grid-auto-rows: 44vw; } }

/* ---------- ettevõttest ---------- */
.values { list-style: none; padding: 0; margin: 2rem 0 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.values li { padding: .55rem 1.1rem; border: 1px solid var(--kp-ink); font-weight: 700; color: var(--kp-ink); letter-spacing: -0.01em; }
.about-imgs { position: relative; padding: 0 0 4.5rem 3rem; }
.about-imgs::before { content: ""; position: absolute; left: 0; top: 2rem; width: 55%; height: 60%; z-index: -1; background: repeating-linear-gradient(90deg, var(--kp-blue) 0 26px, transparent 26px 36px); transform: skewX(-36deg); opacity: .22; }
.about-imgs img { display: block; background: var(--kp-steel); object-fit: cover; }
.about-imgs .a1 { width: 100%; aspect-ratio: 4 / 3; }
.about-imgs .a2 { position: absolute; left: 0; bottom: 0; width: 46%; aspect-ratio: 4 / 3; border: 8px solid #fff; }

/* ---------- meedia ---------- */
.press-list { border-top: 2px solid var(--kp-ink); }
.press { display: grid; grid-template-columns: 220px 1fr; gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--kp-line); }
.press-img { display: block; aspect-ratio: 4 / 3; background: #e4e7ea; overflow: hidden; align-self: start; }
.press-img img { width: 100%; height: 100%; object-fit: cover; }
.press-meta { margin: 0 0 .5rem; font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--kp-grey); }
.press h3 { font-size: 1.5rem; margin-bottom: .7rem; }
.press h3 a { color: inherit; text-decoration: none; }
.press h3 a:hover { color: var(--kp-blue-dark); }
.press-body > p { max-width: 75ch; }
.press-foot { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; margin: 0; }
.press-foot span { font-size: .82rem; color: var(--kp-grey); }
@media (max-width: 767.98px) { .press { grid-template-columns: 1fr; gap: 1.1rem; } .press-img { max-width: 320px; } }

/* ---------- partnerid ---------- */
.sec-partners { padding: clamp(2.5rem, 5vw, 4rem) 0; }
.partners { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; grid-template-columns: repeat(6, 1fr); border-top: 1px solid var(--kp-line); border-left: 1px solid var(--kp-line); }
.partners li { border-right: 1px solid var(--kp-line); border-bottom: 1px solid var(--kp-line); display: grid; place-items: center; min-height: 110px; }
.partners a { display: grid; place-items: center; width: 100%; height: 100%; }
.partners img { max-width: 70%; max-height: 56px; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .2s, opacity .2s; margin: 1.25rem; }
.partners li:hover img { filter: none; opacity: 1; }
@media (max-width: 991.98px) { .partners { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 575.98px) { .partners { grid-template-columns: repeat(2, 1fr); } }

/* ---------- meeskond ---------- */
.team { display: grid; grid-template-columns: 260px 1fr; gap: 2.5rem; align-items: center; background: #fff; border: 1px solid var(--kp-line); padding: 2rem; max-width: 900px; }
.team img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--kp-steel); }
.team h3 { font-size: 2rem; margin: 0; }
.role { font-weight: 700; color: var(--kp-blue-dark); margin: .2rem 0 1rem; }
.team-links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.team-links a { color: var(--kp-ink); font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: .5rem; }
.team-links a:hover { color: var(--kp-blue-dark); }
.team-links .ic { color: var(--kp-blue); }
@media (max-width: 767.98px) { .team { grid-template-columns: 1fr; padding: 1.25rem; } .team img { max-width: 240px; } }

/* ---------- kontakt / vorm ---------- */
.contact-big { display: flex; flex-direction: column; gap: .3rem; margin-bottom: 2rem; }
.contact-big a { color: #fff; font-weight: 700; font-size: clamp(1.25rem, 1rem + 1.1vw, 1.75rem); letter-spacing: -0.03em; text-decoration: none; overflow-wrap: anywhere; }
.contact-big a:hover { color: var(--kp-blue); }
.lead-sm { font-size: 1.05rem; max-width: 40ch; }
.contact-form .form-label { font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #c8cdd2; margin-bottom: .35rem; }
.contact-form .form-control { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.28); border-radius: 2px; color: #fff; padding: .85rem 1rem; }
.contact-form .form-control:focus { background: rgba(255,255,255,.1); border-color: var(--kp-blue); box-shadow: 0 0 0 3px rgba(7,154,225,.35); color: #fff; }
.contact-form .form-control.is-invalid { border-color: #ff8a80; background-image: none; }
.form-status { font-size: .95rem; color: #c8cdd2; }

/* ---------- plekksepa leht ---------- */
.callout { background: var(--kp-steel); border-left: 6px solid var(--kp-blue); padding: 1.75rem; }
.callout strong { color: var(--kp-ink); }
.part { width: 100%; height: 100%; background: #fff; border: 1px solid var(--kp-line); padding: 0; display: flex; flex-direction: column; text-align: left; cursor: zoom-in; transition: border-color .2s, box-shadow .2s; }
.part:hover, .part:focus-visible { border-color: var(--kp-blue); box-shadow: 0 12px 28px rgba(35,31,32,.1); }
.part-img { display: block; aspect-ratio: 1; background: #fff; overflow: hidden; }
.part-img img { width: 100%; height: 100%; object-fit: contain; padding: .5rem; }
.part-name { padding: .9rem 1rem 0; font-weight: 700; color: var(--kp-ink); letter-spacing: -0.02em; font-size: 1.05rem; line-height: 1.2; }
.part-hint { padding: .2rem 1rem 1rem; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--kp-blue-dark); }
.special { margin: 0; }
.special img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--kp-steel); display: block; }
.special figcaption { padding-top: .8rem; font-weight: 700; font-size: 1.15rem; letter-spacing: -0.02em; color: var(--kp-ink); border-top: 3px solid var(--kp-blue); margin-top: .8rem; }

/* ---------- tööpakkumine ---------- */
.job-box { height: 100%; background: var(--kp-steel); padding: 1.75rem; }
.job-box h2, .apply h2 { font-size: 1.35rem; letter-spacing: -0.025em; margin-bottom: 1rem; }
.job-box-blue { background: var(--kp-ink); color: #e6e9ec; }
.job-box-blue h2 { color: #fff; }
.ticks { list-style: none; padding: 0; margin: 0; }
.ticks li { position: relative; padding: .4rem 0 .4rem 1.9rem; line-height: 1.4; }
.ticks li::before { content: ""; position: absolute; left: 0; top: .78em; width: 16px; height: 9px; background: var(--kp-blue); transform: skewX(-36deg); }
.apply { position: sticky; top: 100px; border: 2px solid var(--kp-ink); padding: 1.75rem; }
.apply hr { margin: 1.75rem 0; opacity: 1; border-color: var(--kp-line); }

/* ---------- galerii / modaalid ---------- */
.gallery-grid { columns: 4 260px; column-gap: 12px; }
.gallery-grid img { width: 100%; display: block; margin-bottom: 12px; background: #e4e7ea; min-height: 120px; break-inside: avoid; }
.modal-content { border: 0; border-radius: 2px; }
.modal-title { font-size: 1.4rem; margin: 0; }
#lightbox .modal-body { padding: 0; background: var(--kp-ink); text-align: center; }
#lightbox img { max-height: 80vh; width: auto; max-width: 100%; display: inline-block; }

/* ---------- jalus ---------- */
.site-footer { background: #1a1718; color: #b9bec3; padding: 4.5rem 0 1.5rem; font-size: .95rem; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--kp-blue); }
.site-footer p { max-width: 44ch; }
.foot-h { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: #fff; margin-bottom: 1rem; line-height: 1.2; }
.site-footer address { font-style: normal; margin: 0; }
.social { display: flex; gap: .6rem; margin-top: 1.25rem; }
.social a { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.25); font-size: 1.1rem; }
.social a:hover { background: var(--kp-blue); border-color: var(--kp-blue); color: #fff; }
.foot-bottom { margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.14); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; font-size: .85rem; }

/* ---------- ilmumine kerimisel ---------- */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; }
  *, *::before, *::after { transition: none !important; }
}

/* kitsastel ekraanidel väiksem veeruvahe, et rida ei ulatuks konteinerist välja */
html { overflow-x: clip; }
@media (max-width: 991.98px) { .row.g-5 { --bs-gutter-x: 1.5rem; } }

/* ---------- avalehe hero majafotoga ---------- */
.hero-photo { display: flex; flex-direction: column; justify-content: flex-end; min-height: min(86vh, 860px); }
.hero-photo .hero-bg { opacity: 1; object-position: 62% 58%; }
.hero-photo::after { background:
  linear-gradient(90deg, rgba(35,31,32,.88) 0%, rgba(35,31,32,.62) 34%, rgba(35,31,32,.12) 62%, rgba(35,31,32,0) 100%),
  linear-gradient(0deg, rgba(35,31,32,.85) 0%, rgba(35,31,32,0) 34%); }
.hero-photo h1 { text-shadow: 0 2px 30px rgba(35,31,32,.45); }
.hero-photo .hero-facts { border-top-color: rgba(255,255,255,.35); }
.hero-photo .hero-facts span { color: #e3e6e9; }
@media (max-width: 767.98px) {
  .hero-photo { min-height: 0; }
  .hero-photo .hero-bg { object-position: 58% 50%; }
  .hero-photo::after { background: linear-gradient(0deg, rgba(35,31,32,.94) 0%, rgba(35,31,32,.8) 55%, rgba(35,31,32,.45) 100%); }
}
@media (min-width: 768px) { .hero-photo h1 { font-size: clamp(2.7rem, 1rem + 4.6vw, 4.9rem); } }

/* ---------- ümarad nupud ja pildinurgad ---------- */
:root { --kp-radius: 18px; --kp-radius-sm: 12px; }
.btn { border-radius: 50rem; padding-left: 1.5rem; padding-right: 1.5rem; }
.btn-lg { padding-left: 1.9rem; padding-right: 1.9rem; }
.values li { border-radius: 50rem; }

.svc, .work, .press-img, .special img, .gallery-grid img, .about-imgs img, .part, .callout, .job-box, .apply, .modal-content { border-radius: var(--kp-radius); }
.svc, .work, .press-img, .part, .modal-content { overflow: hidden; }
.svc-img { clip-path: none; border-radius: 0; }
.part-img { border-radius: 0; }
.about-imgs .a2 { border-width: 6px; }
.callout { border-left-width: 6px; }
.contact-form .form-control { border-radius: var(--kp-radius-sm); }
.partners { border: 1px solid var(--kp-line); border-radius: var(--kp-radius); overflow: hidden; }
#lightbox .modal-body img { border-radius: 0; }

/* Priit Soonets kontakti sektsioonis */
.person { display: flex; align-items: center; gap: 1.25rem; margin-bottom: 1.5rem; scroll-margin-top: 110px; }
.person img { width: 120px; height: 120px; object-fit: cover; border-radius: var(--kp-radius); background: rgba(255,255,255,.08); flex: none; }
.person h3 { color: #fff; font-size: 1.75rem; margin: 0; }
.person .role { color: var(--kp-blue); margin: .2rem 0 0; }

/* ---------- rippmenüü ---------- */
.dropdown-toggle::after { border: 0; width: .5em; height: .5em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); vertical-align: .22em; margin-left: .5em; transition: transform .2s; }
.dropdown-toggle.show::after { transform: rotate(-135deg); vertical-align: -.05em; }
.dropdown-menu { border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); padding: .5rem; margin-top: .6rem !important; box-shadow: 0 18px 40px rgba(35,31,32,.12); min-width: 13rem; }
.dropdown-item { border-radius: 8px; padding: .6rem .85rem; font-weight: 700; color: var(--kp-ink); letter-spacing: -0.01em; }
.dropdown-item:hover, .dropdown-item:focus { background: var(--kp-steel); color: var(--kp-blue-dark); }
.dropdown-item.active, .dropdown-item:active { background: var(--kp-blue); color: #fff; }
@media (max-width: 1199.98px) {
  .dropdown-menu { border: 0; box-shadow: none; padding: 0 0 .5rem 1rem; margin: 0 !important; }
  .dropdown-item { padding: .6rem .5rem; }
}

/* ---------- lisanupud ---------- */
.btn-outline-ink { border: 1.5px solid var(--kp-ink); color: var(--kp-ink); background: transparent; }
.btn-outline-ink:hover, .btn-outline-ink:focus-visible { background: var(--kp-ink); color: #fff; }
.sec-more { margin: 2.5rem 0 0; }
a.work { display: block; cursor: pointer; text-decoration: none; }

/* ---------- kõik teenused ---------- */
.svc-rows { display: grid; gap: clamp(2.5rem, 6vw, 5rem); }
.svc-row { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 5vw, 4.5rem); align-items: center; scroll-margin-top: 110px; }
.svc-row:nth-child(even) .svc-row-img { order: 2; }
.svc-row-img { aspect-ratio: 4 / 3; border-radius: var(--kp-radius); overflow: hidden; background: var(--kp-steel); }
.svc-row-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svc-ph { position: relative; width: 100%; height: 100%; background: var(--kp-ink); overflow: hidden; }
.svc-ph .seams { width: 120%; max-width: none; right: -30%; opacity: .85; }
.svc-num { display: block; font-weight: 700; font-size: .9rem; letter-spacing: .14em; color: var(--kp-blue-dark); margin-bottom: .75rem; }
.svc-row h2 { font-size: clamp(1.7rem, 1.1rem + 2vw, 2.6rem); margin-bottom: 1rem; }
.svc-row p { font-size: 1.08rem; max-width: 52ch; margin-bottom: 1.5rem; }
@media (max-width: 767.98px) { .svc-row { grid-template-columns: 1fr; } .svc-row:nth-child(even) .svc-row-img { order: 0; } }

/* ---------- kontaktiriba alamlehtedel ---------- */
.cta-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2rem; }
.cta h2 { margin-bottom: 1rem; }

/* ---------- tehtud tööde galerii ---------- */
.gal { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 14px; }
.gal-item { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: var(--kp-radius); overflow: hidden; background: #e4e7ea; cursor: zoom-in; }
.gal-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.gal-item:hover img, .gal-item:focus-visible img { transform: scale(1.05); }
.gal-cap { position: absolute; left: .75rem; bottom: .75rem; padding: .35rem .85rem; border-radius: 50rem; background: rgba(35,31,32,.82); color: #fff; font-weight: 700; font-size: .85rem; letter-spacing: -0.01em; }

/* ---------- tume lightbox ---------- */
.lb { position: fixed; inset: 0; z-index: 2000; display: none; align-items: center; justify-content: center; background: rgba(18,16,17,.96); padding: 4.5rem 5.5rem 1.5rem; outline: 0; }
.lb.open { display: flex; }
.lb-fig { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 1rem; min-height: 0; }
.lb-fig img { max-width: 100%; max-height: calc(100vh - 10.5rem); max-height: calc(100dvh - 10.5rem); width: auto; height: auto; border-radius: var(--kp-radius-sm); background: #2b2728; object-fit: contain; }
.lb-fig figcaption { display: flex; gap: 1rem; align-items: baseline; justify-content: center; flex-wrap: wrap; color: #fff; font-weight: 700; letter-spacing: -0.01em; min-height: 1.6em; }
#lightboxCount { color: #a9aeb3; font-weight: 400; font-size: .9rem; font-variant-numeric: tabular-nums; }
.lb-btn { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.08); color: #fff; display: grid; place-items: center; transition: background .2s, border-color .2s; }
.lb-btn svg { width: 20px; height: 20px; }
.lb-btn:hover, .lb-btn:focus-visible { background: var(--kp-blue); border-color: var(--kp-blue); }
.lb-close { top: 1rem; right: 1rem; }
.lb-prev { left: 1.25rem; top: 50%; transform: translateY(-50%); }
.lb-next { right: 1.25rem; top: 50%; transform: translateY(-50%); }
.lb.single .lb-prev, .lb.single .lb-next, .lb.single #lightboxCount { display: none; }
body.lb-lock { overflow: hidden; }
@media (max-width: 767.98px) {
  .lb { padding: 4.5rem .75rem 5.5rem; }
  .lb-prev, .lb-next { top: auto; bottom: 1rem; transform: none; }
  .lb-prev { left: calc(50% - 62px); } .lb-next { right: calc(50% - 62px); }
  .lb-fig img { max-height: calc(100dvh - 13rem); }
}

/* ---------- ettevõttest: üks pilt ---------- */
.about-img { position: relative; margin: 0; padding: 0 0 1.75rem 1.75rem; }
.about-img::before { content: ""; position: absolute; left: 0; bottom: 0; width: 62%; height: 70%; z-index: -1; border-radius: var(--kp-radius); background: repeating-linear-gradient(90deg, var(--kp-blue) 0 26px, transparent 26px 36px); opacity: .22; }
.about-img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--kp-radius); background: var(--kp-steel); }
@media (max-width: 575.98px) { .about-img { padding: 0 0 1rem 1rem; } }

/* ---------- ettevõttest: pilt ilma motiivita ---------- */
.about-img { padding: 0; }
.about-img::before { content: none; }

/* ---------- alamlehe päis: helehall taust, tume tekst, leivapuru ---------- */
.page-hero { background: var(--kp-steel); color: var(--kp-ink); border-bottom: 1px solid var(--kp-line); }
.page-hero::after { content: none; }
.page-hero .hero-inner { padding-top: clamp(2rem, 5vw, 3.25rem); padding-bottom: clamp(2rem, 5vw, 3.25rem); }
.page-hero h1 { color: var(--kp-ink); font-size: clamp(2rem, 1.2rem + 3vw, 3.5rem); line-height: 1; max-width: 22ch; }
.page-hero .hero-sub { color: #55504f; margin-top: .9rem; font-size: 1.05rem; max-width: 60ch; }
.breadcrumb { --bs-breadcrumb-divider: "/"; --bs-breadcrumb-divider-color: #9a9697; --bs-breadcrumb-item-active-color: var(--kp-ink); margin: 0 0 1rem; font-size: .9rem; font-weight: 700; letter-spacing: -0.01em; color: #5f5a5b; }
.breadcrumb a { color: #5f5a5b; text-decoration: none; }
.breadcrumb a:hover { color: var(--kp-blue-dark); text-decoration: underline; }

/* ---------- avalehe hero: tume kiht üle kogu pildi + lisagradient teksti all ---------- */
.hero-photo .hero-bg { object-position: 68% 55%; }
.hero-photo::after { background:
  linear-gradient(90deg, rgba(20,17,18,.86) 0%, rgba(20,17,18,.66) 30%, rgba(20,17,18,.2) 58%, rgba(20,17,18,0) 78%),
  linear-gradient(0deg, rgba(20,17,18,.7) 0%, rgba(20,17,18,0) 32%),
  rgba(20,17,18,.42); }
@media (max-width: 767.98px) {
  .hero-photo .hero-bg { object-position: 62% 50%; }
  .hero-photo::after { background: linear-gradient(0deg, rgba(20,17,18,.92) 0%, rgba(20,17,18,.74) 55%, rgba(20,17,18,.6) 100%); }
}

/* ---------- partnerid: värvilised logod ilma kastideta ---------- */
.partners { border: 0; border-radius: 0; overflow: visible; gap: 1.5rem 2rem; margin-top: 2rem; }
.partners li { border: 0; min-height: 0; }
.partners img { filter: none; opacity: 1; margin: 0; max-width: 100%; max-height: 60px; }
.partners a { transition: transform .2s; }
.partners a:hover { transform: translateY(-3px); }

/* ---------- avaleht: tehtud tööd ilma galeriiplaadita ---------- */
@media (max-width: 991.98px) { .works .w1 { grid-column: span 2; grid-row: span 1; } }

/* ---------- väärtused: kaardid ikooni ja järjekorranumbriga ---------- */
.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-top: 2.25rem; }
.values li { position: relative; display: flex; flex-direction: column; gap: .2rem; padding: 1.1rem 1.1rem 1.2rem; border: 0; border-radius: var(--kp-radius); background: var(--kp-steel); overflow: hidden; font-weight: 400; transition: transform .25s, background .25s, color .25s; }
.values li::after { content: ""; position: absolute; right: -14px; top: 0; width: 46px; height: 100%; background: var(--kp-blue); opacity: .12; transform: skewX(-36deg); transform-origin: top; transition: opacity .25s, width .25s; }
.val-ic { width: 46px; height: 46px; border-radius: 14px; background: var(--kp-blue); color: #fff; display: grid; place-items: center; margin-bottom: 1rem; }
.val-ic svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.val-n { font-size: .78rem; font-weight: 700; letter-spacing: .14em; color: var(--kp-blue-dark); }
.values strong { font-size: 1.12rem; letter-spacing: -0.025em; color: var(--kp-ink); line-height: 1.15; overflow-wrap: anywhere; }
.values li:hover { transform: translateY(-4px); background: var(--kp-ink); }
.values li:hover strong { color: #fff; }
.values li:hover .val-n { color: var(--kp-blue); }
.values li:hover::after { opacity: .5; width: 70px; }
@media (max-width: 575.98px) {
  .values { grid-template-columns: 1fr; }
  .values li { flex-direction: row; align-items: center; gap: .9rem; padding: .8rem 1rem; }
  .val-ic { margin: 0; flex: none; }
}

/* ---------- ligipääsetavus: menüünupp ja paneel ---------- */
.nav-a11y { background: none; border: 0; display: inline-flex; align-items: center; gap: .4rem; }
@media (max-width: 1199.98px) { .nav-a11y { width: 100%; text-align: left; } }
.a11y-panel { --bs-offcanvas-width: 380px; }
.a11y-panel .offcanvas-header { padding: 1.5rem 1.5rem 1rem; }
.a11y-panel .offcanvas-title { font-size: 1.6rem; }
.a11y-panel .offcanvas-body { padding: 0 1.5rem 1.5rem; }
.a11y-intro { color: #5f5a5b; }
.a11y-group { margin: 1.5rem 0 .5rem; }
.a11y-group legend { font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--kp-ink); margin-bottom: .6rem; }
.a11y-seg { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; background: var(--kp-steel); padding: .3rem; border-radius: 14px; }
.a11y-seg input { position: absolute; opacity: 0; pointer-events: none; }
.a11y-seg label { text-align: center; padding: .6rem .3rem; border-radius: 10px; font-weight: 700; font-size: .9rem; color: var(--kp-ink); cursor: pointer; line-height: 1.2; }
.a11y-seg label span { display: block; line-height: 1.3; }
.a11y-seg input:checked + label { background: var(--kp-ink); color: #fff; }
.a11y-seg input:focus-visible + label { outline: 3px solid var(--kp-blue); outline-offset: 2px; }
.a11y-opt, .consent-opts .form-check { display: flex; align-items: center; gap: .9rem; padding: 1rem 0; margin: 0; border-bottom: 1px solid var(--kp-line); }
.a11y-opt .form-check-input, .consent .form-check-input { width: 2.9em; height: 1.55em; margin: 0; flex: none; float: none; cursor: pointer; border-color: #8d8889; }
.form-check-input:checked { background-color: var(--kp-blue); border-color: var(--kp-blue); }
.form-check-label strong { display: block; color: var(--kp-ink); letter-spacing: -0.01em; }
.form-check-label span { display: block; font-size: .88rem; color: #5f5a5b; line-height: 1.35; }

/* ---------- ligipääsetavuse režiimid ---------- */
html.kp-fs-1 { font-size: 112.5%; }
html.kp-fs-2 { font-size: 125%; }
html.kp-underline a:not(.btn):not(.navbar-brand) { text-decoration: underline !important; text-underline-offset: .18em; }
html.kp-spacing body { line-height: 1.9; letter-spacing: .03em; word-spacing: .12em; }
html.kp-spacing h1, html.kp-spacing h2, html.kp-spacing h3 { letter-spacing: 0; line-height: 1.2; }
html.kp-spacing p { margin-bottom: 1.5em; }
html.kp-motion { scroll-behavior: auto; }
html.kp-motion *, html.kp-motion *::before, html.kp-motion *::after { transition: none !important; animation: none !important; }
html.kp-motion .reveal { opacity: 1; transform: none; }
html.kp-contrast { --kp-grey: #3d3a3b; --kp-blue-dark: #00527f; --kp-line: #6f6a6b; --kp-steel: #eceff2; --bs-body-color: #000; --bs-link-color-rgb: 0, 82, 127; }
html.kp-contrast body, html.kp-contrast .lead { color: #000; }
html.kp-contrast .btn-brand { background: #00527f; border-color: #00527f; }
html.kp-contrast .sec-dark, html.kp-contrast .site-footer { color: #fff; background: #000; }
html.kp-contrast .site-footer, html.kp-contrast .hero-facts span, html.kp-contrast .form-status, html.kp-contrast .contact-form .form-label { color: #fff; }
html.kp-contrast .hero-photo::after { background: rgba(0,0,0,.78); }
html.kp-contrast .seams { display: none; }
html.kp-contrast .press-meta, html.kp-contrast .press-foot span, html.kp-contrast .sec-head h2 + p, html.kp-contrast .breadcrumb, html.kp-contrast .breadcrumb a, html.kp-contrast .form-check-label span, html.kp-contrast .a11y-intro, html.kp-contrast .page-hero .hero-sub { color: #1a1a1a; }
html.kp-contrast .contact-form .form-control { border-color: #fff; }
html.kp-contrast .svc, html.kp-contrast .part, html.kp-contrast .values li { outline: 1px solid #6f6a6b; }
html.kp-contrast :focus-visible { outline: 3px solid #ffbf00; }

/* ---------- küpsiste nõusolek ---------- */
.consent { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1040; width: min(420px, calc(100vw - 2rem)); max-height: calc(100dvh - 2.5rem); overflow: auto; background: #fff; color: #3a3637; border: 1px solid var(--kp-line); border-radius: var(--kp-radius); box-shadow: 0 24px 60px rgba(35,31,32,.25); padding: 1.5rem; }
.consent[hidden], .consent-opts[hidden] { display: none; }
.consent h2 { font-size: 1.3rem; letter-spacing: -0.025em; margin-bottom: .6rem; }
.consent p { font-size: .93rem; line-height: 1.5; margin-bottom: 1rem; }
.consent-opts { margin-bottom: 1rem; border-top: 1px solid var(--kp-line); }
.consent-opts .form-check { padding: .75rem 0; }
.consent-btns { display: flex; flex-wrap: wrap; gap: .5rem; }
.consent-btns .btn { padding: .6rem 1.15rem; font-size: .93rem; }
.btn-link-ink { color: var(--kp-ink); text-decoration: underline; text-underline-offset: .2em; padding-left: .6rem !important; padding-right: .6rem !important; }
.btn-link-ink:hover { color: var(--kp-blue-dark); }
@media (max-width: 575.98px) { .consent { right: .75rem; bottom: .75rem; width: calc(100vw - 1.5rem); padding: 1.15rem; } }

/* ---------- jaluse lingid ---------- */
.foot-bottom { align-items: center; justify-content: flex-start; gap: .75rem 1.75rem; }
.foot-bottom > a:last-child { margin-left: auto; }
.foot-link { background: none; border: 0; padding: 0; color: #fff; font: inherit; text-decoration: underline; text-underline-offset: .2em; }
.foot-link:hover { color: var(--kp-blue); }

/* suurendatud teksti korral jääb menüüriba ühele reale */
.navbar-nav .nav-link { white-space: nowrap; }
@media (min-width: 1200px) {
  html.kp-fs-1 .navbar-nav .nav-link, html.kp-fs-2 .navbar-nav .nav-link { font-size: 16px; padding: 8px 10px !important; }
  html.kp-fs-1 .navbar .btn, html.kp-fs-2 .navbar .btn { font-size: 16px; padding: 10px 20px; }
  html.kp-fs-1 .dropdown-item, html.kp-fs-2 .dropdown-item { font-size: 17px; }
}
.consent .form-check-input:disabled ~ .form-check-label { opacity: 1; }
/* overflow-x: hidden kehal lõhkus kleepuva päise — clip ei tee kehast kerimiskonteinerit */
body { overflow-x: clip; }

/* ---------- alamlehe päis: ilma piirjoonteta, paremal sinine katusemotiiv ---------- */
.site-header { border-bottom: 0; }
.page-hero { border-bottom: 0; }
.page-hero .seams { z-index: 0; mix-blend-mode: normal; opacity: 1; width: 34vw; max-width: 520px; right: -4vw; gap: 12px; }
.page-hero .hero-inner { position: relative; z-index: 1; }
@media (max-width: 767.98px) { .page-hero .seams { width: 44vw; right: -22vw; } }

/* ---------- väärtused: sinised sildid linnukesega ---------- */
.values { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 2rem; }
.values li, .values li:hover { display: inline-flex; flex-direction: row; align-items: center; gap: .5rem; padding: .55rem 1.15rem .55rem .85rem; border-radius: 50rem; background: var(--kp-blue); color: #fff; font-weight: 700; letter-spacing: -0.01em; transform: none; overflow: visible; }
.values li::after { content: none; }
.values svg { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
html.kp-contrast .values li { background: #00527f; outline: 0; }

/* ---------- teenusekaardid: piirjoone asemel vari ---------- */
.svc { border: 0; box-shadow: 0 1px 2px rgba(35,31,32,.05), 0 10px 30px rgba(35,31,32,.09); }
.svc:has(a):hover { box-shadow: 0 2px 4px rgba(35,31,32,.06), 0 22px 48px rgba(35,31,32,.16); }
html.kp-contrast .svc { outline: 1px solid #6f6a6b; }

/* ---------- väärtused: väikesed sildid ---------- */
.values { gap: .4rem; margin-top: 1.5rem; }
.values li, .values li:hover { padding: .22rem .7rem .22rem .5rem; gap: .3rem; font-size: .8rem; font-weight: 700; letter-spacing: 0; line-height: 1.5; background: rgba(7,154,225,.12); color: var(--kp-blue-dark); cursor: default; }
.values svg { width: 1em; height: 1em; stroke-width: 2.4; }
html.kp-contrast .values li { background: #e3eef5; color: #00405f; }

/* ---------- jalus: lisainfo tulp ---------- */
.foot-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.foot-list a, .foot-list .foot-link { color: #fff; text-decoration: none; text-align: left; }
.foot-list a:hover, .foot-list .foot-link:hover { color: var(--kp-blue); text-decoration: underline; text-underline-offset: .2em; }
.foot-bottom { justify-content: space-between; }
.navbar-brand img { height: 40px; width: auto; }

/* ---------- juriidiline tekst ---------- */
.legal { max-width: 76ch; }
.legal h2 { font-size: 1.5rem; letter-spacing: -0.025em; margin: 2.75rem 0 1rem; }
.legal h2:first-child { margin-top: 0; }
.legal ul { padding-left: 1.2rem; margin-bottom: 1.25rem; }
.legal li { margin-bottom: .35rem; }
.legal li::marker { color: var(--kp-blue); }
.consent p a { color: var(--kp-blue-dark); font-weight: 700; }

/* menüüriba logo veidi väiksem */
.navbar-brand img { height: 34px; width: auto; }
@media (max-width: 575.98px) { .navbar-brand img { height: 30px; } }

/* ---------- avalehe hero: pealkiri kahel real, lead ühel real (desktop) ---------- */
@media (min-width: 992px) {
  .hero-photo h1 { max-width: none; white-space: nowrap; font-size: clamp(3.4rem, 1rem + 4.2vw, 5.4rem); }
  .hero-photo h1 span { max-width: none; white-space: nowrap; }
}

/* ---------- partnerid: pealkiri ja õhk logode all ---------- */
.sec-partners { padding: clamp(3.5rem, 7vw, 6rem) 0 clamp(4rem, 8vw, 6.5rem); }
.sec-partners .sec-head { margin-bottom: 1rem; }
.partners { margin-bottom: 1.5rem; row-gap: 2.25rem; }
