/*
Theme Name: Kutsenko Kvalitet
Theme URI: https://kutsenko.me
Author: Kutsenko Kvalitet
Description: Тема сайта строительной компании Kutsenko Kvalitet: четыре языка (RU, SR, EN, DE), услуги, объекты, новости, заявки с сайта. Всё редактируется в админке.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: kutsenko-kvalitet
*/

:root{--navy:#0a2f6e;--blue:#0b4aa8;--gold:#c8903a;--gold2:#e0ad55;--ice:#eef6ff;--ink:#12305f}
*,*::before,*::after{box-sizing:border-box}
:root{color-scheme:light}
body{margin:0}
h1,h2,h3,p,ul,ol,figure,dl,dd{margin:0}
ul,ol{padding:0}
button{padding:0}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth}
body{font-family:Roboto,system-ui,sans-serif;color:var(--ink);background:#fff;line-height:1.4;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.wrap{max-width:980px;margin:0 auto}
/* HERO */
.hero{position:relative;overflow:hidden;background:#fff;padding-bottom:12px}
.hero-img{position:absolute;top:0;right:0;width:100%;height:66.6vw;background:var(--kk-hero) right top/100% 100% no-repeat}
.top{position:relative;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;padding:14px 16px 0}
.logo{width:clamp(130px,30vw,190px);filter:drop-shadow(0 4px 10px rgba(10,47,110,.25))}
.nav{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.92);border-radius:0 0 0 14px;padding:8px 10px;margin-top:0;box-shadow:0 4px 14px rgba(10,47,110,.12)}
.nav a.nl{display:none;text-transform:uppercase;font-weight:700;font-size:14px;padding:8px 12px;border-bottom:3px solid transparent}
.nav a.nl.is-active{border-color:var(--gold)}
.lang{position:relative}
.lang>button{display:flex;align-items:center;gap:6px;font-weight:700;font-size:14px;padding:8px}
.lang ul{display:none;position:absolute;right:0;top:calc(100% + 8px);list-style:none;background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(10,47,110,.22);padding:6px;min-width:190px;z-index:10}
.lang.open ul{display:block}
.lang li button{display:flex;width:100%;align-items:center;gap:10px;padding:10px;border-radius:8px;font-size:15px;min-height:44px}
.lang li button span.c{margin-left:auto;color:#8a9bb8;font-size:13px}
.lang li button[aria-current=true],.lang li button:hover{background:var(--ice)}
.flag{width:28px;height:28px;border-radius:50%;object-fit:cover;display:block;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.1)}
.hero-txt{position:relative;z-index:2;padding:1vw 16px 0 5vw;max-width:560px}
h1{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:clamp(19px,5.7vw,52px);line-height:1.12;color:var(--navy);text-transform:uppercase;letter-spacing:.2px}
h1 em{display:block;font-style:normal;color:var(--gold)}
h1{max-width:min(66vw,560px);text-shadow:0 0 10px rgba(255,255,255,.95),0 0 4px rgba(255,255,255,.9)}
.bar{width:clamp(30px,6vw,54px);height:3px;background:var(--gold);margin:2.4vw 0 1.6vw}
.sub{font-size:clamp(13px,3.7vw,22px);color:var(--ink);max-width:min(58vw,300px);text-shadow:0 0 8px rgba(255,255,255,.9)}
.slogan{position:relative;z-index:2;width:min(48vw,380px);margin:2vw 0 0 5.5vw;padding-bottom:clamp(14px,4.4vw,30px);transform:rotate(-7deg);transform-origin:left bottom}
.slogan .s1{display:block;font-family:'Marck Script','Lobster',cursive;font-size:clamp(32px,10.4vw,76px);line-height:1;padding:0 6px 4px 0;background:linear-gradient(180deg,#f6d98c 0%,#d9a548 55%,#a9741f 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;-webkit-text-stroke:.7px #b98428;filter:drop-shadow(0 2px 5px rgba(255,255,255,.85))}
.slogan .s2{display:block;font-family:'Marck Script','Lobster',cursive;font-size:clamp(18px,5.4vw,42px);line-height:1;color:var(--navy);margin:-2px 0 0 14%;-webkit-text-stroke:.6px var(--navy);text-shadow:0 1px 6px rgba(255,255,255,.9)}
.slogan .sw{position:absolute;left:-2%;bottom:0;width:104%;height:clamp(18px,5vw,34px);overflow:visible;filter:drop-shadow(0 2px 4px rgba(120,80,10,.25))}
.feats{position:relative;z-index:2;padding:4px 0;display:grid;grid-template-columns:repeat(3,1fr);margin:2vw 6px 0;text-align:center}
.feat{padding:0 6px;font-size:13px;color:#2f4f86}
.feat+.feat{border-left:1px solid #e3c590}
.feat svg{width:46px;height:46px;stroke:var(--blue);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.feat b{display:block;color:var(--navy);font-size:clamp(14px,3.6vw,18px);margin:4px 0 2px;line-height:1.15}
/* CTA */
.cta-wrap{padding:16px;text-align:center}
.cta{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;max-width:640px;margin:0 auto;min-height:64px;border-radius:16px;background:linear-gradient(180deg,#1257b8,#0a2f6e);color:#fff;font-weight:700;font-size:clamp(18px,5vw,24px);letter-spacing:.5px;text-transform:uppercase;box-shadow:0 8px 20px rgba(10,47,110,.35);transition:transform .15s}
.cta:active{transform:scale(.98)}
.cta svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cta-note{margin-top:10px;color:#3b5a92;font-size:15px}
/* SERVICES */
.sec-h{display:flex;align-items:center;gap:14px;padding:18px 16px 10px;font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:clamp(26px,7vw,36px);text-transform:uppercase;color:var(--navy)}
.sec-h .gold,.sec-h .gold span{color:var(--gold)}
.sec-h::after{content:"";flex:1;height:2px;background:var(--gold2)}
.sec-h.c{justify-content:center;font-size:clamp(22px,6vw,30px)}
.sec-h.c::before{content:"";flex:1;height:2px;background:var(--gold2)}
.list{list-style:none;padding:0 12px;display:grid;gap:10px}
.svc{display:flex;align-items:center;gap:0;width:100%;text-align:left;border-radius:16px;background:var(--ice);min-height:68px;padding:0 14px 0 0;overflow:hidden}
.svc .ic{flex:none;width:64px;height:64px;border-radius:50%;background:#dcecfb;display:grid;place-items:center;margin:2px 10px 2px 4px}
.svc .ic svg{width:34px;height:34px;stroke:var(--blue);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.svc .t{flex:1;padding:10px 0}
.svc b{display:block;color:var(--navy);font-size:clamp(16px,4.2vw,19px);line-height:1.2}
.svc span.d{display:block;color:#4a6694;font-size:clamp(13px,3.6vw,15.5px);margin-top:2px}
.svc .ch{width:12px;height:12px;border-right:2px solid #5873a3;border-top:2px solid #5873a3;transform:rotate(45deg);flex:none;margin-left:8px}
.svc:hover{background:#e1effd}
/* CONTACT */
.contact{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:6px;padding:6px 10px 22px;text-align:center}
.contact a{overflow-wrap:normal;hyphens:none;display:flex;flex-direction:column;align-items:center;gap:6px;font-weight:700;color:var(--navy);font-size:clamp(11.5px,3.3vw,17px);line-height:1.15;padding:4px 0}
.contact .b{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;box-shadow:0 6px 14px rgba(10,47,110,.25);border:3px solid #fff}
.contact .b svg{width:34px;height:34px;fill:#fff}
/* FOOTER */
footer{background:var(--navy);color:#fff;padding:20px 16px;display:grid;gap:16px}
.fi{display:flex;align-items:center;gap:14px}
.fi svg{width:38px;height:38px;fill:var(--gold2);flex:none}
.fi b{display:block;font-size:19px;font-weight:500}
.fi small{display:block;color:#b9c9e8;font-size:14px}
/* MODAL */
dialog{background:#fff;color:var(--ink);border:0;border-radius:20px;padding:24px 20px;width:min(92vw,420px);margin:auto;box-shadow:0 20px 60px rgba(10,47,110,.4)}
dialog::backdrop{background:rgba(10,47,110,.55)}
dialog h2{font-family:'Playfair Display',Georgia,serif;color:var(--navy);font-size:26px;margin-bottom:4px}
dialog p{color:#4a6694;margin-bottom:16px}
dialog label{display:block;font-weight:700;font-size:14px;color:var(--navy);margin:12px 0 4px}
dialog input{width:100%;font:inherit;font-size:17px;padding:13px 14px;border:2px solid #cfe0f5;border-radius:12px;color:var(--ink)}
dialog input:focus{border-color:var(--blue);outline:0}
.row{display:flex;gap:10px;margin-top:20px}
.row button{flex:1;min-height:52px;border-radius:12px;font-weight:700;font-size:16px}
.row .ok{background:linear-gradient(180deg,#1257b8,#0a2f6e);color:#fff;flex:2}
.row .no{background:var(--ice);color:var(--navy)}

.nav{gap:0;padding:6px 6px 6px 8px}
.nav a.nl{display:block;white-space:nowrap;font-size:clamp(8.5px,2.4vw,14px);padding:8px clamp(4px,1.4vw,12px);letter-spacing:-.2px}
.lang>button{padding:8px clamp(3px,1vw,8px);gap:3px}
.lang .gl{width:clamp(18px,5vw,28px);height:clamp(18px,5vw,28px);fill:var(--blue)}
.lang .cv{width:14px;height:14px;margin-left:-2px;fill:var(--navy)}
.lang>button b{font-size:clamp(11px,3vw,14px)}
.feat svg{width:48px;height:48px;fill:var(--blue);stroke:none}
.svc .ic svg{fill:var(--blue);stroke:none;width:36px;height:36px}
.cta svg{fill:#fff;stroke:none;width:34px;height:34px}
.contact .b svg{width:36px;height:36px;fill:#fff;stroke:none}
.contact .b.fb{background:#fff;border:0;box-shadow:0 6px 14px rgba(24,119,242,.35)}
.contact .b.fb svg{width:66px;height:66px;fill:#1877f2}
.fi svg{width:36px;height:36px}
.logo{width:clamp(76px,22.4vw,200px);background:rgba(255,255,255,.92);border-radius:50%}
.top{padding-right:0;gap:6px}
.nav{min-width:0;padding-right:4px}
.nav a.nl{padding-left:clamp(3px,1.1vw,12px);padding-right:clamp(3px,1.1vw,12px)}
@media(max-width:380px){
 .nav a.nl{font-size:9px;padding-left:3px;padding-right:3px;letter-spacing:-.3px}
 .lang .cv{display:none}
 .lang>button b{font-size:11px}
 .nav{padding-left:4px}
}
@media(min-width:760px){
  .feats{background:none}
 .nav a.nl{display:block}
 .hero-img{width:70%;height:auto;aspect-ratio:1281/853;background-size:100% 100%;background-position:right top}
 .hero-txt{padding:60px 16px 0}
 h1{max-width:none}
 .slogan{margin:28px 0 0 24px}
 .hero-txt{padding-top:60px}
 .list{grid-template-columns:1fr 1fr}
 footer{grid-template-columns:repeat(3,1fr)}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ===== Языки: показываем только текст текущего языка ===== */
[data-l]{display:none}
html[lang="ru"] [data-l="ru"],html[lang="sr"] [data-l="sr"],html[lang="en"] [data-l="en"],html[lang="de"] [data-l="de"]{display:revert}
.logo-link{display:block;flex:none;border-radius:50%}
.kk-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.note{margin:14px 0 0;padding:12px 14px;border-radius:12px;font-weight:500}
.note.ok{background:#e8f6ec;color:#15622c}
.note.err{background:#fdecec;color:#8a1c1c}
dialog form[aria-busy=true]{opacity:.6;pointer-events:none}

/* ===== Внутренние страницы: объекты, новости ===== */
.page-head{background:#fff;border-bottom:1px solid #e3ecf8;padding-bottom:10px}
.page{padding:22px 16px 40px}
.page-h{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:clamp(28px,7vw,42px);text-transform:uppercase;color:var(--navy);display:flex;align-items:center;gap:14px;margin-bottom:22px}
.page-h::after{content:"";flex:1;height:2px;background:var(--gold2)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:18px}
.card{background:var(--ice);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.card a{display:flex;flex-direction:column;height:100%}
.card-img{aspect-ratio:4/3;background:#dcecfb;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;display:block}
.card-b{padding:14px 16px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.card-b h2{font-size:19px;line-height:1.2;color:var(--navy)}
.card-b p{color:#4a6694;font-size:15px}
.card-d{font-size:13px;color:#7a8fb3}
.card-m{margin-top:auto;padding-top:6px;font-weight:700;color:var(--blue)}
.empty{color:#4a6694;font-size:18px;padding:30px 0}
.pager{margin-top:26px}
.pager .nav-links{display:flex;gap:8px;flex-wrap:wrap}
.pager .page-numbers{padding:8px 14px;border-radius:10px;background:var(--ice);font-weight:700;color:var(--navy)}
.pager .page-numbers.current{background:var(--navy);color:#fff}
.single-h{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:clamp(26px,6.5vw,40px);line-height:1.15;color:var(--navy);margin-bottom:10px}
.single-img{border-radius:16px;overflow:hidden;margin:16px 0}
.single-img img{display:block;width:100%}
.single-text{max-width:720px;font-size:17px;line-height:1.6;color:var(--ink)}
.single-text p+p{margin-top:1em}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px;margin-top:22px}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;display:block}
.back{display:inline-block;margin-top:26px;font-weight:700;color:var(--blue)}
@media(min-width:760px){.page{padding-top:34px}}
