/* ==========================================================================
   Kept Fix — theme.css
   Design system + document chrome (header, footer, blog, forms).
   Section/widget styles live in the Kept Fix Core plugin (widgets.css).
   ========================================================================== */

:root{
  --kf-orange:#F97316;
  --kf-orange-lo:#FDBA74;
  --kf-orange-dim:rgba(249,115,22,.14);
  --kf-ink:#111111;
  --kf-ink-2:#17171A;
  --kf-ink-3:#1F1F23;
  --kf-white:#FFFFFF;
  --kf-gray:#F5F5F5;
  --kf-body:#444444;
  --kf-success:#16A34A;

  --kf-bg:var(--kf-ink);
  --kf-surface:var(--kf-ink-2);
  --kf-surface-2:var(--kf-ink-3);
  --kf-line:rgba(255,255,255,.10);
  --kf-line-soft:rgba(255,255,255,.055);
  --kf-head:#FFFFFF;
  --kf-text:rgba(255,255,255,.66);
  --kf-mute:rgba(255,255,255,.40);
  --kf-glass:rgba(255,255,255,.045);

  --kf-f-display:"Archivo","Archivo Fallback","Helvetica Neue",Arial,sans-serif;
  --kf-f-body:"Manrope","Manrope Fallback","Segoe UI",system-ui,sans-serif;
  --kf-f-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;

  --kf-r-s:10px; --kf-r-m:18px; --kf-r-l:28px; --kf-r-xl:40px;
  --kf-shadow:0 30px 80px -30px rgba(0,0,0,.75);
  --kf-shadow-orange:0 24px 60px -22px rgba(249,115,22,.55);
  --kf-pad:clamp(20px,5vw,72px);
  --kf-ease:cubic-bezier(.19,1,.22,1);
  --kf-container:1280px;
}

html[data-kf-theme="light"]{
  --kf-bg:var(--kf-white);
  --kf-surface:var(--kf-gray);
  --kf-surface-2:#EDEDED;
  --kf-line:rgba(17,17,17,.12);
  --kf-line-soft:rgba(17,17,17,.07);
  --kf-head:#111111;
  --kf-text:var(--kf-body);
  --kf-mute:rgba(68,68,68,.62);
  --kf-glass:rgba(17,17,17,.03);
  --kf-shadow:0 30px 70px -34px rgba(17,17,17,.28);
}

/* --------------------------------------------------------------- base -- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--kf-bg);color:var(--kf-text);
  font-family:var(--kf-f-body);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  transition:background .5s var(--kf-ease),color .5s var(--kf-ease);
}
body.kf-locked{overflow:hidden}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--kf-orange);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4,h5,h6{font-family:var(--kf-f-display);color:var(--kf-head);margin:0 0 .5em;
  letter-spacing:-.03em;line-height:1.04;font-weight:800}
h1{font-size:clamp(38px,6vw,84px);letter-spacing:-.045em;font-weight:900}
h2{font-size:clamp(30px,4.4vw,58px)}
h3{font-size:clamp(21px,2.4vw,28px)}
h4{font-size:19px}
p,ul,ol{margin:0 0 1.1em}
blockquote{margin:2em 0;padding-left:24px;border-left:3px solid var(--kf-orange);
  font-family:var(--kf-f-display);font-weight:500;font-size:1.3em;line-height:1.4;color:var(--kf-head)}
code,pre{font-family:var(--kf-f-mono);font-size:.9em}
pre{background:var(--kf-surface);padding:20px;border-radius:var(--kf-r-m);overflow:auto;border:1px solid var(--kf-line)}
hr{border:0;border-top:1px solid var(--kf-line);margin:2.5em 0}
table{width:100%;border-collapse:collapse}
th,td{padding:12px 14px;border-bottom:1px solid var(--kf-line);text-align:left}
:focus-visible{outline:2px solid var(--kf-orange);outline-offset:3px;border-radius:4px}

.kf-skip{position:absolute;left:-9999px;top:0;z-index:9999;padding:14px 22px;background:var(--kf-orange);
  color:#111;font-weight:700;border-radius:0 0 var(--kf-r-s) 0}
.kf-skip:focus{left:0;text-decoration:none}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);
  clip-path:inset(50%);white-space:nowrap}

.kf-container{width:min(var(--kf-container),100% - var(--kf-pad)*2);margin-inline:auto}
.kf-section{padding:clamp(72px,9vw,140px) 0}

/* ---------------------------------------------- signature: dimension -- */
.kf-measure{display:inline-flex;align-items:center;gap:14px;font-family:var(--kf-f-mono);
  font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--kf-orange);margin-bottom:18px}
.kf-measure::before{content:"";height:9px;width:1px;background:currentColor;flex:none;opacity:.9}
.kf-measure .kf-rule{height:1px;background:currentColor;width:0;opacity:.55;
  transition:width 1.1s var(--kf-ease) .1s;max-width:58px}
.kf-in .kf-measure .kf-rule,.kf-measure.kf-in .kf-rule{width:58px}

/* -------------------------------------------------------- reveal fx -- */
.kf-reveal{opacity:0;transform:translate3d(0,26px,0);
  transition:opacity .9s var(--kf-ease),transform 1s var(--kf-ease)}
.kf-reveal.kf-in{opacity:1;transform:none}
.kf-reveal[data-kf-delay="1"]{transition-delay:.09s}
.kf-reveal[data-kf-delay="2"]{transition-delay:.18s}
.kf-reveal[data-kf-delay="3"]{transition-delay:.27s}
.kf-reveal[data-kf-delay="4"]{transition-delay:.36s}
.kf-reveal[data-kf-delay="5"]{transition-delay:.45s}
/* Never hide content for crawlers, no-JS visitors, or the Elementor editor */
.no-js .kf-reveal,body.elementor-editor-active .kf-reveal{opacity:1;transform:none}

/* ---------------------------------------------------------- buttons -- */
.kf-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:999px;
  font-family:var(--kf-f-body);font-weight:700;font-size:14.5px;letter-spacing:-.01em;
  border:1px solid transparent;cursor:pointer;text-decoration:none;
  background:var(--kf-orange);color:#111;box-shadow:var(--kf-shadow-orange);
  transition:transform .4s var(--kf-ease),box-shadow .4s var(--kf-ease),background .3s,color .3s,border-color .3s}
.kf-btn:hover{transform:translateY(-3px);text-decoration:none;color:#111}
.kf-btn svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.2;fill:none;
  stroke-linecap:round;stroke-linejoin:round;flex:none}
.kf-btn--ghost{background:transparent;color:var(--kf-head);border-color:var(--kf-line);box-shadow:none}
.kf-btn--ghost:hover{border-color:var(--kf-orange);color:var(--kf-orange)}
.kf-btn--lg{padding:17px 30px;font-size:15.5px}
.kf-icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--kf-line);
  background:var(--kf-glass);color:var(--kf-head);display:grid;place-items:center;cursor:pointer;
  transition:.35s var(--kf-ease)}
.kf-icon-btn:hover{border-color:var(--kf-orange);color:var(--kf-orange);transform:translateY(-2px)}
.kf-icon-btn svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.9;fill:none;
  stroke-linecap:round;stroke-linejoin:round}

/* ---------------------------------------------------------- cursor -- */
.kf-cursor,.kf-cursor-dot{position:fixed;top:0;left:0;z-index:9000;pointer-events:none;border-radius:50%;
  mix-blend-mode:difference;will-change:transform}
.kf-cursor{width:38px;height:38px;border:1px solid rgba(255,255,255,.65);
  transition:width .3s var(--kf-ease),height .3s var(--kf-ease),background .3s}
.kf-cursor.kf-hot{width:70px;height:70px;background:rgba(255,255,255,.14);border-color:transparent}
.kf-cursor-dot{width:5px;height:5px;background:#fff}
@media (hover:none),(pointer:coarse){.kf-cursor,.kf-cursor-dot{display:none}}

/* ---------------------------------------------------------- header -- */
.kf-progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--kf-orange);z-index:1200}
.kf-header{position:fixed;top:0;left:0;right:0;z-index:1100;padding:20px 0;
  transition:padding .45s var(--kf-ease),background .45s var(--kf-ease),border-color .45s;
  border-bottom:1px solid transparent}
.admin-bar .kf-header{top:32px}
@media(max-width:782px){.admin-bar .kf-header{top:46px}}
.kf-header.kf-stuck{padding:11px 0;background:var(--kf-bg);border-bottom-color:var(--kf-line)}
@supports (backdrop-filter:blur(1px)){
  .kf-header.kf-stuck{background:color-mix(in srgb,var(--kf-bg) 78%,transparent);
    backdrop-filter:blur(18px) saturate(140%)}
}
.kf-header__in{display:flex;align-items:center;justify-content:space-between;gap:24px}
.kf-brand{display:flex;align-items:center;gap:11px;font-family:var(--kf-f-display);font-weight:900;
  font-size:21px;letter-spacing:-.045em;color:var(--kf-head);text-decoration:none}
.kf-brand:hover{text-decoration:none;color:var(--kf-head)}
.kf-brand__mark{width:30px;height:30px;border-radius:9px;background:var(--kf-orange);display:grid;
  place-items:center;box-shadow:var(--kf-shadow-orange);flex:none}
.kf-brand__mark svg{width:17px;height:17px;stroke:#111;stroke-width:2.4;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
.kf-brand em{font-style:normal;color:var(--kf-orange)}
.kf-brand img{max-height:42px;width:auto}

.kf-nav ul{list-style:none;display:flex;align-items:center;gap:30px;margin:0;padding:0;
  font-size:14.5px;font-weight:600}
.kf-nav li{position:relative}
.kf-nav a{color:var(--kf-text);position:relative;padding:4px 0;text-decoration:none;transition:color .3s}
.kf-nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--kf-orange);
  transition:width .4s var(--kf-ease)}
.kf-nav a:hover,.kf-nav .current-menu-item > a{color:var(--kf-head)}
.kf-nav a:hover::after,.kf-nav .current-menu-item > a::after{width:100%}
.kf-nav .sub-menu{position:absolute;top:calc(100% + 14px);left:-18px;min-width:230px;flex-direction:column;
  align-items:stretch;gap:2px;padding:12px;background:var(--kf-surface);border:1px solid var(--kf-line);
  border-radius:var(--kf-r-m);box-shadow:var(--kf-shadow);opacity:0;visibility:hidden;transform:translateY(8px);
  transition:.35s var(--kf-ease);z-index:20}
.kf-nav li:hover > .sub-menu,.kf-nav li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:none}
.kf-nav .sub-menu a{display:block;padding:10px 12px;border-radius:var(--kf-r-s);font-weight:500}
.kf-nav .sub-menu a::after{display:none}
.kf-nav .sub-menu a:hover{background:var(--kf-glass);color:var(--kf-orange)}
.kf-header__actions{display:flex;align-items:center;gap:12px}
.kf-burger{display:none}

@media(max-width:1080px){
  .kf-nav{position:fixed;inset:0;background:var(--kf-bg);z-index:1090;opacity:0;visibility:hidden;
    transition:.5s var(--kf-ease);overflow-y:auto;padding:110px var(--kf-pad) 60px}
  .kf-nav.kf-open{opacity:1;visibility:visible}
  .kf-nav ul{flex-direction:column;align-items:flex-start;gap:6px;
    font-family:var(--kf-f-display);font-size:26px;font-weight:800}
  .kf-nav a{color:var(--kf-head)}
  .kf-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;background:none;border:0;
    box-shadow:none;padding:4px 0 10px 16px;font-size:16px;font-family:var(--kf-f-body)}
  .kf-burger{display:grid}
  .kf-header__actions .kf-btn{display:none}
}

/* ---------------------------------------------------- page + blog -- */
.kf-page-hero{position:relative;padding:clamp(150px,17vw,230px) 0 clamp(50px,6vw,90px);
  background:var(--kf-ink);color:#fff;overflow:hidden}
.kf-page-hero::before{content:"";position:absolute;inset:0;
  background:radial-gradient(120% 90% at 80% 0%,rgba(249,115,22,.26),transparent 58%),
             linear-gradient(180deg,#151517,#111)}
.kf-page-hero::after{content:"";position:absolute;inset:0;opacity:.45;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:78px 78px;
  -webkit-mask-image:radial-gradient(80% 70% at 60% 40%,#000,transparent 78%);
  mask-image:radial-gradient(80% 70% at 60% 40%,#000,transparent 78%)}
.kf-page-hero > *{position:relative;z-index:2}
.kf-page-hero h1{color:#fff;max-width:18ch}
.kf-page-hero p{color:rgba(255,255,255,.66);max-width:56ch;margin-top:18px}
.kf-crumbs{font-family:var(--kf-f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.45);margin-bottom:22px}
.kf-crumbs a{color:rgba(255,255,255,.72)}
.kf-crumbs span+span::before{content:"/";margin:0 10px;opacity:.4}

.kf-content{max-width:78ch}
.kf-content > *:last-child{margin-bottom:0}
.kf-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(30px,5vw,70px);align-items:start}
@media(max-width:1000px){.kf-layout{grid-template-columns:1fr}}
.kf-sidebar{position:sticky;top:120px}
.kf-widget{border:1px solid var(--kf-line);border-radius:var(--kf-r-l);background:var(--kf-surface);
  padding:26px;margin-bottom:18px}
.kf-widget .widget-title{font-size:13px;font-family:var(--kf-f-mono);letter-spacing:.2em;
  text-transform:uppercase;color:var(--kf-mute);font-weight:400;margin-bottom:16px}
.kf-widget ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:15px}
.kf-widget ul a{color:var(--kf-text)}
.kf-widget ul a:hover{color:var(--kf-orange)}

.kf-posts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:1000px){.kf-posts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.kf-posts{grid-template-columns:1fr}}
.kf-card{border:1px solid var(--kf-line);border-radius:var(--kf-r-l);background:var(--kf-surface);
  overflow:hidden;transition:transform .55s var(--kf-ease),border-color .4s,box-shadow .55s var(--kf-ease)}
.kf-card:hover{transform:translateY(-6px);border-color:rgba(249,115,22,.5);box-shadow:var(--kf-shadow)}
.kf-card__media{aspect-ratio:16/11;overflow:hidden;background:var(--kf-surface-2)}
.kf-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--kf-ease)}
.kf-card:hover .kf-card__media img{transform:scale(1.06)}
.kf-card__body{padding:22px 23px 26px}
.kf-card__meta{font-family:var(--kf-f-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--kf-mute);margin-bottom:10px;display:block}
.kf-card h2,.kf-card h3{font-size:20px;margin-bottom:10px}
.kf-card h2 a,.kf-card h3 a{color:var(--kf-head);text-decoration:none}
.kf-card h2 a:hover,.kf-card h3 a:hover{color:var(--kf-orange)}
.kf-card p{font-size:14.5px;margin:0}

.kf-pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:50px}
.kf-pagination .page-numbers{display:grid;place-items:center;min-width:44px;height:44px;padding:0 12px;
  border-radius:999px;border:1px solid var(--kf-line);color:var(--kf-text);font-size:14px;font-weight:600;
  text-decoration:none;transition:.3s}
.kf-pagination .page-numbers:hover{border-color:var(--kf-orange);color:var(--kf-orange)}
.kf-pagination .current{background:var(--kf-orange);border-color:var(--kf-orange);color:#111}

.kf-entry-media{border-radius:var(--kf-r-xl);overflow:hidden;border:1px solid var(--kf-line);margin-bottom:44px}
.kf-entry-media img{width:100%}

/* ------------------------------------------------------------ forms -- */
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=search],
input[type=number],input[type=date],select,textarea{
  width:100%;padding:14px 16px;border-radius:var(--kf-r-s);background:var(--kf-bg);color:var(--kf-head);
  border:1px solid var(--kf-line);font:inherit;font-size:15px;transition:.35s}
textarea{resize:vertical;min-height:118px}
input:focus,select:focus,textarea:focus{border-color:var(--kf-orange);outline:none;
  box-shadow:0 0 0 4px var(--kf-orange-dim)}
::placeholder{color:var(--kf-mute)}
label{display:block;font-family:var(--kf-f-mono);font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--kf-mute);margin-bottom:8px}

/* ----------------------------------------------------------- footer -- */
.kf-footer{background:var(--kf-surface);border-top:1px solid var(--kf-line);padding-top:clamp(56px,7vw,88px)}
.kf-footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.4fr;gap:40px;padding-bottom:56px}
@media(max-width:940px){.kf-footer__grid{grid-template-columns:1fr 1fr;gap:36px}}
@media(max-width:560px){.kf-footer__grid{grid-template-columns:1fr}}
.kf-footer h2,.kf-footer .widget-title{font-family:var(--kf-f-mono);font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--kf-mute);font-weight:400;margin:0 0 18px}
.kf-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;font-size:14.5px}
.kf-footer ul a{color:var(--kf-text);width:fit-content;display:inline-block;transition:.3s}
.kf-footer ul a:hover{color:var(--kf-orange);transform:translateX(4px);text-decoration:none}
.kf-footer p{font-size:14.5px}
.kf-socials{display:flex;gap:9px;margin-top:22px}
.kf-footer__bottom{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;
  padding:24px 0 30px;border-top:1px solid var(--kf-line);font-size:13px;color:var(--kf-mute)}
.kf-footer__bottom ul{flex-direction:row;gap:22px;flex-wrap:wrap}

/* --------------------------------------------------------- floating -- */
.kf-float{position:fixed;right:20px;bottom:20px;z-index:1050;display:flex;flex-direction:column;
  gap:11px;align-items:flex-end}
.kf-fab{width:52px;height:52px;border-radius:50%;border:1px solid var(--kf-line);background:var(--kf-surface);
  color:var(--kf-head);display:grid;place-items:center;cursor:pointer;box-shadow:var(--kf-shadow);
  position:relative;transition:.45s var(--kf-ease)}
.kf-fab:hover{transform:scale(1.09) translateY(-2px);border-color:var(--kf-orange);color:var(--kf-orange);
  text-decoration:none}
.kf-fab svg{width:21px;height:21px;stroke:currentColor;stroke-width:1.9;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
.kf-fab--wa{background:#25D366;border-color:#25D366;color:#0B3D22}
.kf-fab--call{background:var(--kf-orange);border-color:var(--kf-orange);color:#111}
.kf-fab--quote{width:auto;border-radius:999px;padding:0 22px;gap:9px;background:var(--kf-orange);
  border-color:var(--kf-orange);color:#111;font-weight:700;font-size:14px;display:flex;align-items:center}
.kf-fab__tip{position:absolute;right:64px;top:50%;transform:translateY(-50%) translateX(8px);white-space:nowrap;
  background:var(--kf-head);color:var(--kf-bg);padding:7px 12px;border-radius:8px;font-size:12.5px;
  font-weight:600;opacity:0;pointer-events:none;transition:.35s var(--kf-ease)}
.kf-fab:hover .kf-fab__tip{opacity:1;transform:translateY(-50%)}
#kf-top{opacity:0;pointer-events:none;transform:translateY(10px)}
#kf-top.kf-on{opacity:1;pointer-events:auto;transform:none}
@media(max-width:600px){.kf-fab--quote span{display:none}.kf-fab--quote{width:52px;padding:0}}

/* ------------------------------------------------------------- 404 -- */
.kf-404{min-height:70vh;display:grid;place-items:center;text-align:center;padding:160px 0 100px}
.kf-404 .kf-code{font-family:var(--kf-f-display);font-weight:900;font-size:clamp(90px,20vw,240px);
  line-height:.8;color:var(--kf-head);letter-spacing:-.06em}
.kf-404 .kf-code em{font-style:normal;color:var(--kf-orange)}

/* ------------------------------------------- Elementor cooperation -- */
.elementor-section.elementor-section-boxed > .elementor-container{max-width:var(--kf-container)}
.elementor-widget-heading .elementor-heading-title{font-family:var(--kf-f-display)}
.elementor-button{border-radius:999px;font-weight:700}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .kf-reveal{opacity:1;transform:none}
}

/* ------------------------------------------------- project fact strip -- */
.kf-project-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:0 0 44px;
  border-top:1px solid var(--kf-line);border-bottom:1px solid var(--kf-line);padding:26px 0}
@media(max-width:760px){.kf-project-facts{grid-template-columns:repeat(2,1fr);gap:24px}}
.kf-fact span{display:block;font-family:var(--kf-f-mono);font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--kf-mute)}
.kf-fact b{display:block;margin-top:7px;font-family:var(--kf-f-display);font-size:18px;
  letter-spacing:-.02em;color:var(--kf-head)}

/* --------------------------------------------------------- comments -- */
.kf-comments{margin-top:70px;padding-top:44px;border-top:1px solid var(--kf-line)}
.kf-comments__title{font-size:clamp(21px,2.4vw,28px);margin-bottom:28px}
.kf-comments__list{list-style:none;margin:0 0 40px;padding:0}
.kf-comments__list ol.children{list-style:none;padding-left:28px}
.kf-comments__list li{padding:22px 0;border-bottom:1px solid var(--kf-line-soft)}
.kf-comments__list .comment-author{display:flex;align-items:center;gap:12px;font-weight:700;color:var(--kf-head)}
.kf-comments__list .comment-author img{border-radius:50%}
.kf-comments__list .comment-metadata{font-family:var(--kf-f-mono);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--kf-mute);margin:6px 0 10px}
.kf-comments__list .comment-metadata a{color:inherit}
.kf-comments__closed{color:var(--kf-mute);font-size:14px}
.comment-respond{border:1px solid var(--kf-line);border-radius:var(--kf-r-l);background:var(--kf-surface);
  padding:clamp(22px,3.5vw,34px)}
.comment-respond .comment-reply-title{font-size:22px;margin-bottom:18px}
.comment-form p{margin-bottom:16px}
.comment-form .form-submit{margin:0}

/* ----------------------------------------------------- WooCommerce -- */
.kf-woo .woocommerce-message,.kf-woo .woocommerce-info,.kf-woo .woocommerce-error{
  border:1px solid var(--kf-line);border-left:3px solid var(--kf-orange);background:var(--kf-surface);
  border-radius:var(--kf-r-m);padding:16px 20px;list-style:none;margin-bottom:26px}
.kf-woo ul.products{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;list-style:none;margin:0;padding:0}
@media(max-width:1000px){.kf-woo ul.products{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.kf-woo ul.products{grid-template-columns:1fr}}
.kf-woo ul.products li.product{border:1px solid var(--kf-line);border-radius:var(--kf-r-l);
  background:var(--kf-surface);overflow:hidden;padding:0 0 22px;text-align:left;
  transition:transform .5s var(--kf-ease),border-color .4s,box-shadow .5s var(--kf-ease)}
.kf-woo ul.products li.product:hover{transform:translateY(-6px);border-color:rgba(249,115,22,.5);
  box-shadow:var(--kf-shadow)}
.kf-woo ul.products li.product img{margin-bottom:18px}
.kf-woo ul.products li.product .woocommerce-loop-product__title{font-family:var(--kf-f-display);font-size:19px;
  font-weight:800;padding:0 22px;color:var(--kf-head)}
.kf-woo ul.products li.product .price{display:block;padding:0 22px;color:var(--kf-orange);font-weight:700}
.kf-woo .button,.kf-woo a.button,.kf-woo button.button,.kf-woo input.button,
.kf-woo .woocommerce-button{background:var(--kf-orange);color:#111;border-radius:999px;font-weight:700;
  padding:13px 24px;border:0}
.kf-woo .button:hover,.kf-woo a.button:hover{background:var(--kf-orange-lo);color:#111}
.kf-woo ul.products li.product .button{margin:16px 22px 0}
.kf-woo .star-rating span::before{color:var(--kf-orange)}
.kf-woo .price del{opacity:.5}
.kf-woo table.shop_table{border:1px solid var(--kf-line);border-radius:var(--kf-r-m);overflow:hidden}

/* ------------------------------------------------- typographic polish -- */
/*
 * Optical refinements that separate a template from a designed site: tighter
 * tracking as type gets larger, a hanging-punctuation-safe measure, and
 * consistent vertical rhythm between stacked sections.
 */
h1,h2{text-wrap:balance}
p,li{text-wrap:pretty}
.kf-content p,.kf-content li{max-width:70ch}
.kf-content h2{margin-top:2em}
.kf-content h3{margin-top:1.6em}
.kf-content img,.kf-content figure{border-radius:var(--kf-r-l);overflow:hidden}
.kf-content ul{padding-left:1.1em}
.kf-content li{margin-bottom:.5em}
.kf-content li::marker{color:var(--kf-orange)}

/* Two adjacent sections with the same background read as one — halve the gap. */
.kf-section + .kf-section{padding-top:0}

/* Selection and focus, small details people feel rather than notice. */
::selection{background:var(--kf-orange);color:#111}
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible{outline:2px solid var(--kf-orange);outline-offset:3px}

/* Images never jump: reserve space before they load. */
img[width][height]{height:auto}
