/*
Theme Name: Kacet
Theme URI: https://www.kacet.cz/
Author: ARBOEU spol. s r.o.
Description: Jednostránková šablona pro rizikové kácení stromů a péči o zeleň.
Version: 1.3.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: kacet
*/
:root{
  --green:#6cb52d; --green-d:#4f8f1c; --ink:#1d2421; --muted:#55605a;
  --dark:#1f2b27; --bg:#fff; --soft:#f3f6f0;
  --bark1:#5a2f18; --bark2:#8a4a26; --bark3:#b0683a;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{font-family:Manrope,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
img{display:block;max-width:100%;height:auto}
.entry{padding:40px 0 60px}.entry h1{font-size:clamp(28px,4vw,40px);font-weight:800;margin-bottom:20px}.entry p,.entry ul{margin-bottom:14px}
a{color:inherit}
.page{position:relative;max-width:1240px;margin:0 auto}
.col{margin-left:300px;margin-right:40px;max-width:860px;position:relative;z-index:2}
.green{color:var(--green)}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--green);color:#fff;text-decoration:none;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.02em;padding:12px 20px;border-radius:4px;border:0;cursor:pointer;box-shadow:0 3px 0 var(--green-d);transition:transform .15s,background .15s}
.btn:hover{background:var(--green-d);transform:translateY(-1px)}
.btn svg{width:18px;height:18px}

/* ---------- TREE ---------- */
.tree{position:absolute;left:0;top:0;bottom:0;width:300px;z-index:1;pointer-events:none}
.trunk{position:absolute;left:150px;top:20px;bottom:0;width:74px;transform:translateX(-50%);
  clip-path:polygon(30% 0,70% 0,82% 70%,92% 96%,104% 100%,-4% 100%,8% 96%,18% 70%);
  background:
    repeating-linear-gradient(90deg,rgba(0,0,0,.28) 0 2px,transparent 2px 7px,rgba(255,200,150,.12) 7px 9px,transparent 9px 13px),
    repeating-linear-gradient(180deg,rgba(0,0,0,.18) 0 3px,transparent 3px 41px),
    linear-gradient(90deg,var(--bark1),var(--bark2) 25%,var(--bark3) 45%,var(--bark2) 70%,var(--bark1));}
.cluster{position:absolute}
.cluster svg{width:100%;height:100%;overflow:visible}

/* ---------- HEADER ---------- */
header{display:flex;align-items:center;gap:24px;padding:18px 0;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{width:58px;height:58px}
.brand b{font-weight:800;font-size:15px;text-transform:uppercase;line-height:1.15}
.brand small{display:block;font-weight:500;font-size:11px;color:var(--muted);text-transform:none}
.hmid{display:flex;flex-direction:column;gap:6px;flex:1}
.phone{display:inline-flex;white-space:nowrap;align-items:center;gap:6px;font-weight:800;text-decoration:none;font-size:15px}
.phone svg{width:16px;height:16px;fill:var(--green)}
nav{display:flex;gap:20px;flex-wrap:wrap}
nav a{text-decoration:none;font-size:13px;font-weight:500}
nav a:hover{color:var(--green)}

/* ---------- HERO ---------- */
.hero{position:relative;padding:40px 0 10px}
.hero h1{font-weight:800;text-transform:uppercase;line-height:.95;letter-spacing:-.02em}
.hero h1 .l1{display:block;color:var(--green);font-size:clamp(44px,7vw,78px)}
.hero h1 .l2{display:block;font-size:clamp(44px,7vw,78px);padding-left:12%}
.badge{display:inline-block;background:var(--green);color:#fff;font-weight:800;text-transform:uppercase;font-size:clamp(14px,1.8vw,20px);padding:10px 22px;margin:18px 0 0 8%;box-shadow:0 3px 0 var(--green-d)}
.hero p.lead{margin:18px 0 0 8%;max-width:400px;font-size:14px}
.hero-img{margin:28px 0 0 auto;width:min(560px,100%);aspect-ratio:16/10;object-fit:cover;border-radius:58% 42% 48% 52%/55% 45% 55% 45%;box-shadow:0 18px 40px rgba(0,0,0,.18)}
.leaf{position:absolute;width:44px;height:44px;z-index:3;pointer-events:none;filter:drop-shadow(0 4px 4px rgba(0,0,0,.15))}

/* ---------- SERVICES ---------- */
.tab{display:inline-block;background:var(--green);color:#fff;font-weight:800;text-transform:uppercase;font-size:17px;padding:12px 26px 12px 60px;margin:40px 0 24px -60px}
details.svc{margin:0 0 22px}
details.svc>summary{list-style:none;cursor:pointer;position:relative;min-height:150px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 80px 26px 60px;color:#fff;background-size:cover;background-position:center;overflow:hidden}
details.svc>summary::-webkit-details-marker{display:none}
details.svc>summary::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,38,32,.95) 0,rgba(24,38,32,.75) 45%,rgba(24,38,32,.15))}
details.svc>summary>*{position:relative}
.svc h2{font-size:22px;font-weight:800;display:flex;align-items:center;gap:12px}
.svc h2::before{content:"";border:8px solid transparent;border-top:10px solid #fff;margin-top:8px;transition:transform .2s}
details.svc[open] h2::before{transform:rotate(180deg);margin-top:-8px}
.svc .price{font-size:13px;margin:4px 0 0 28px}
.svc .price mark{background:var(--green);color:#fff;font-weight:800;padding:1px 5px}
.svc .more{pointer-events:none}
.svc-body{padding:28px 60px 10px;font-size:13.5px}
.svc-body p+p{margin-top:10px}
.svc-body ul{margin:10px 0 0 18px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:26px 0;align-items:center}
.split h3{font-size:19px;font-weight:800;margin-bottom:10px}
.photo-card{position:relative;border-radius:2px;overflow:hidden;aspect-ratio:16/10}
.photo-card img{width:100%;height:100%;object-fit:cover}
.photo-card .tag{position:absolute;background:var(--green);color:#fff;font-weight:800;font-size:12px;text-transform:uppercase;padding:6px 10px;line-height:1.2}
.cta-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:18px 0}
.cta-row p{font-size:12px;max-width:440px}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:center;margin:36px 0 20px}
.tiers svg{height:72px;margin:0 auto 14px;fill:var(--dark)}
.tiers b{display:block;color:var(--green);font-weight:800;font-size:19px}
.tiers span{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.big-price{font-size:30px;color:var(--green);font-weight:800}

/* ---------- SAFETY ---------- */
.safety{display:grid;grid-template-columns:1fr 1.1fr;gap:20px;align-items:center;margin:50px 0}
.safety .pic{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;border:8px solid #fff;box-shadow:0 14px 40px rgba(0,0,0,.18)}
.safety h2{font-size:20px;font-weight:800;line-height:1.2}
.safety h2 strong{display:block;color:var(--green);font-size:clamp(30px,4vw,40px);margin-top:4px}
.safety p{font-size:13px;margin:10px 0 18px;max-width:340px}

/* ---------- WHY ---------- */
.h-sec{font-size:20px;font-weight:800;text-transform:uppercase;line-height:1.2;margin:40px 0 28px}
.why{display:grid;grid-template-columns:1fr 1fr;gap:28px 36px}
.why article{display:grid;grid-template-columns:130px 1fr;gap:16px;align-items:start}
.why img{width:130px;height:130px;object-fit:cover}
.why h3{font-size:17px;font-weight:800;line-height:1.15}
.why h3 span{color:var(--green)}
.why p{font-size:12px;margin-top:8px;color:var(--muted)}
.why p b{color:var(--ink)}

/* ---------- WORKS ---------- */
.works{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.work{position:relative;aspect-ratio:16/10;overflow:hidden;display:block}
.work img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.work:hover img{transform:scale(1.05)}
.work .t{position:absolute;left:0;right:0;bottom:14px;text-align:center}
.work .t em{font-style:normal;display:inline-block;background:var(--green);color:#fff;font-weight:800;text-transform:uppercase;padding:4px 14px;font-size:clamp(16px,2.2vw,24px);line-height:1.1}
.work .t small{display:block;margin:0 auto 4px;width:max-content;background:var(--green);color:#fff;font-weight:800;font-size:11px;text-transform:uppercase;padding:3px 8px}
.works-more{margin-top:18px;text-align:right}
.works-more a{font-weight:800;font-size:13px;color:var(--green)}

/* ---------- CONTACT ---------- */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:30px;align-items:end;margin:50px 0 0;padding-bottom:40px}
.cinfo{display:grid;grid-template-columns:1fr 1fr;gap:14px;font-size:12px;margin-bottom:22px}
.cinfo div{display:flex;gap:8px}
.cinfo svg{width:16px;height:16px;fill:var(--green);flex:none;margin-top:2px}
.cinfo b{font-size:15px}
form label{display:block;font-size:12px;margin:12px 0 4px}
form input,form textarea{width:100%;max-width:320px;border:0;border-bottom:1px solid #d6dbd4;background:var(--soft);padding:9px 10px;font:inherit;font-size:13px}
form textarea{min-height:70px;resize:vertical}
form input:focus,form textarea:focus{outline:2px solid var(--green);outline-offset:1px}
form .btn{margin-top:18px}
.truck{width:100%;border-radius:4px;object-fit:cover;aspect-ratio:4/3}

/* whole photo, never cropped (e.g. climber at the top of the tree) */
.photo-card.photo-full{aspect-ratio:auto}
.photo-card.photo-full img{height:auto}
/* Contact Form 7 in the theme look */
.kacet-cf7 form input:not([type=submit]):not([type=checkbox]),.kacet-cf7 form textarea{width:100%;max-width:320px}
.kacet-cf7 .wpcf7-form-control-wrap{display:block}
.kacet-cf7 .wpcf7-acceptance{display:block;font-size:12px;margin-top:12px;max-width:340px}
.kacet-cf7 textarea{height:90px}
.kacet-cf7 .wpcf7-list-item{margin:0}
.kacet-cf7 .wpcf7-list-item label{display:flex;gap:8px;align-items:flex-start;margin:0;cursor:pointer}
.kacet-cf7 input[type=checkbox]{width:16px;height:16px;flex:none;margin-top:2px;accent-color:var(--green)}
.kacet-cf7 .wpcf7-submit{width:auto;max-width:none;margin-top:18px;background:var(--green);color:#fff;border:0;padding:12px 20px}
.kacet-cf7 .wpcf7-not-valid-tip{font-size:12px;color:#c0262b;margin-top:2px}
.kacet-cf7 .wpcf7-response-output{margin:14px 0 0!important;padding:10px 12px!important;font-size:13px;border-radius:4px;max-width:340px}
.kacet-cf7 .wpcf7-spinner{margin:0 0 0 10px;vertical-align:middle}

/* ---------- FOOTER ---------- */
footer{background:var(--dark);color:#fff;position:relative;z-index:2}
footer .in{max-width:1240px;margin:0 auto;padding:30px 40px 18px 300px}
.frow{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
footer .brand small{color:#b9c4bd}
.fcontact{text-align:right;font-size:14px}
.fcontact a{text-decoration:none;font-weight:800;display:block}
.fbot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:22px;font-size:11px;color:#8d9a92}
.fbot a{color:#8d9a92}

/* ---------- ILLUSTRATIONS & MOTION ---------- */
.hero-saw{display:block;width:min(600px,100%);margin:30px 0 0 auto;overflow:visible;filter:drop-shadow(0 16px 18px rgba(0,0,0,.22))}
.hero-saw.on{animation:buzz .09s linear infinite}
@keyframes buzz{50%{transform:translate(.6px,-.6px)}}
.chain{animation:chain .3s linear infinite;animation-play-state:var(--saw,paused)}
.on{--saw:running}
@keyframes chain{to{stroke-dashoffset:-18}}
.safety{position:relative;min-height:420px}
.safety>div{grid-column:2}
.climber{position:absolute;left:-160px;top:-250px;width:450px;height:1069px;overflow:visible;pointer-events:none;--saw:running}
.contact{position:relative}
.man{position:absolute;left:-330px;bottom:0;width:340px;height:400px;overflow:visible;pointer-events:none;z-index:3}
.truck-svg{width:100%;height:auto;overflow:visible}
.b1,.b2,.bk{transform-origin:0 0}
.b2{transform:rotate(-180deg)}.bk{transform:rotate(180deg)}
/* platform lever */
.truck-wrap{position:relative}
.lift-ctl{position:absolute;left:0;top:4%;display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff;border:2px solid var(--green);border-radius:10px;padding:10px 12px;box-shadow:0 8px 20px rgba(0,0,0,.12);user-select:none;-webkit-user-select:none;z-index:4}
.lift-label{font-weight:800;font-size:12px;text-transform:uppercase;color:var(--green-d);text-align:center;max-width:120px;line-height:1.2}
.lift-row{display:flex;align-items:center;gap:12px}
.lever{display:flex;flex-direction:column;align-items:center;gap:4px}
.lever button{width:30px;height:22px;border:0;border-radius:6px;background:var(--soft);color:var(--dark);font-size:11px;cursor:pointer;touch-action:none}
.lever button:hover,.lever button:active{background:var(--green);color:#fff}
.slot{position:relative;width:14px;height:76px;border-radius:7px;background:linear-gradient(90deg,#2f3337,#4a5056,#2f3337)}
.knob{position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff6b6b,#c0262b 70%);box-shadow:0 3px 6px rgba(0,0,0,.35);cursor:grab;touch-action:none;transition:translate .25s cubic-bezier(.3,1.6,.5,1)}
.knob.drag{cursor:grabbing;transition:none}
.knob:focus-visible,.lever button:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.lift-ctl:not(.used) .knob{animation:hint 1.8s ease-in-out infinite}
@keyframes hint{0%,60%,100%{transform:none}20%{transform:translateY(-14px)}40%{transform:translateY(10px)}}
.lift-h{font-weight:800;font-size:18px;min-width:48px;text-align:center;font-variant-numeric:tabular-nums}
.lift-h small{display:block;font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase}
.cluster{animation:sway 7s ease-in-out infinite alternate;will-change:transform}
@keyframes sway{from{transform:rotate(-1.2deg)}to{transform:rotate(1.2deg)}}
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.js [data-reveal].seen{opacity:1;transform:none}
@media (max-width:960px){.climber,.man{display:none}.safety{min-height:0}}
@media (prefers-reduced-motion:reduce){
  .chain,.hero-saw.on,.cluster,.knob{animation:none!important}
  .js [data-reveal]{opacity:1;transform:none}
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:960px){
  .tree{display:none}
  .col{margin:0 16px}
  footer .in{padding:30px 16px 18px}
  .tab{margin-left:-16px;padding-left:16px}
  details.svc>summary{padding:22px 20px;flex-direction:column;align-items:flex-start}
  .svc-body{padding:22px 4px 6px}
}
@media (max-width:640px){
  .split,.safety,.why,.works,.contact,.cinfo{grid-template-columns:1fr}
  .tiers{grid-template-columns:1fr}
  .why article{grid-template-columns:100px 1fr}
  .why img{width:100px;height:100px}
  .hero h1 .l2,.hero p.lead{padding-left:0;margin-left:0}
  .badge{display:block;margin:18px 0 0;padding:12px 16px;text-align:center;font-size:15px}
  .leaf{width:30px;height:30px}
  nav{display:none}
  .lift-ctl{position:static;flex-direction:row;justify-content:center;gap:16px;margin:0 auto 10px;width:max-content}
  .lift-label{max-width:110px}
  header{gap:12px}
  header>.btn{width:100%;justify-content:center}
  .safety .pic{max-width:260px;margin:0 auto}
  .fcontact{text-align:left}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
