/* Self-hosted fonts (SIL Open Font License). Replaces the render-blocking Google Fonts @import. */
@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url('../fonts/manrope-variable.woff2') format('woff2')}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/caveat-600-pl.woff2') format('woff2');unicode-range:U+0020-007E,U+00A0,U+00D3,U+00F3,U+2013-2014,U+2018-201E,U+2026}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/caveat-600-pl-ext.woff2') format('woff2');unicode-range:U+0104-0107,U+0118-0119,U+0141-0144,U+015A-015B,U+0179-017C}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/space-mono-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/space-mono-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/space-mono-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/space-mono-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

:root { --tk-ink:#111311; --tk-paper:#f7f6f1; --tk-off:#eeece5; --tk-mint:#79d7c3; --tk-mint-deep:#2b8b78; --tk-mint-text:#1f6f60; --tk-muted:#626560; --tk-line:rgba(17,19,17,.15); --tk-card-cream:#fcfbf8; --tk-radius:28px; --tk-radius-sm:17px; --tk-radius-pill:999px; }

/* Icon shapes used by ::before/::after, as SVG masks tinted with the current
   colour — no icon fonts, no emoji. */
:root {
  --tk-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5l4 4 8-9' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --tk-icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10h12M11 5l5 5-5 5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --tk-icon-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 4v12M4 10h12' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
  --tk-icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10h12' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
}

.tk-icon-mask {
  content: '';
  display: inline-block;
  background-color: currentColor;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

/* Inline SVGs authored in our own templates. */
.tk-cart-empty a svg,
.tk-account-switch svg,
.tk-product-sticky-cart__button svg,
.tk-btn svg,
.tk-btn-ghost svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body#index, body#index #wrapper { background:var(--tk-paper); color:var(--tk-ink); font-family:Manrope,Arial,sans-serif; }
body#index #left-column, body#index #right-column, body#index .breadcrumb { display:none; }
body#index #wrapper { box-shadow:none; padding:0; }
body#index #content-wrapper { width:100%; max-width:none; padding:0; }
.teklano-home { background:var(--tk-paper); }
.tk-shell { width:min(1800px, calc(100% - 80px)); margin-inline:auto; }
.tk-site-header { width:100%; background:var(--tk-paper); border-bottom:1px solid var(--tk-line); box-shadow:none; }.tk-header-shell { width:min(1800px, calc(100% - 80px)); min-height:101px; margin:auto; display:flex; align-items:center; gap:32px; }.tk-logo { width:151px; display:block; line-height:0; flex:0 0 auto; }.tk-logo img,.tk-footer-meta img { width:100%; height:auto; }.tk-header-modules { margin-left:auto; display:flex; align-items:center; }.tk-header-modules #_desktop_logo,.tk-header-modules .logo,.tk-header-modules .language-selector-wrapper,.tk-header-modules .currency-selector { display:none; }.tk-mainmenu { display:flex; gap:36px; align-items:center; }.tk-mainmenu a,.tk-header-utility a { color:var(--tk-ink); font-size:13px; font-weight:700; text-decoration:none; }.tk-header-utility { display:flex; align-items:center; gap:20px; }.tk-header-utility .blockcart { margin:0; padding:0; background:none; }.tk-utility-icon { width:26px; height:26px; display:grid; place-items:center; }.tk-utility-icon svg,.tk-search svg,.tk-button-icon svg,.tk-category-icon svg,.tk-ticker-icon svg,.tk-accordion-icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.tk-utility-icon svg { width:21px; height:21px; }.tk-cart span { color:var(--tk-muted); }.tk-search { position:relative; width:190px; display:flex; align-items:center; border-bottom:1px solid var(--tk-line); }.tk-search input { width:100%; min-height:38px; border:0; background:transparent; padding:0 29px 0 0; font:500 12px Manrope; outline:0; }.tk-search button { position:absolute; right:0; top:8px; width:20px; height:20px; padding:0; border:0; background:transparent; color:var(--tk-ink); }

/* Homepage sections are owned entirely by the teklanohome module (views/css/home.css). */
/* Footer is owned entirely by footer.css — .tk-footer-shell/.tk-footer-brand/.tk-footer-links/.tk-footer-meta live there. */

@media (max-width:900px) { .tk-shell,.tk-header-shell { width:min(100% - 36px,680px); }.tk-header-shell { min-height:78px; }.tk-mainmenu,.tk-search { display:none; }.tk-header-utility { margin-left:auto; gap:12px; } }

/* Theme shell only. Home section styles are loaded by teklanohome. */
body#index #header,body#index #wrapper,body#index #footer{box-shadow:none}body#index #wrapper{width:100%;max-width:none;padding:0;background:transparent}body#index #wrapper>.container{width:min(1800px,calc(100% - clamp(32px,4vw,80px)));max-width:none;margin-inline:auto;padding:0}body#index #content-wrapper,body#index #content-wrapper>#content{width:100%;max-width:none;margin:0;padding:0;background:transparent}.tk-header-shell,.tk-footer-shell{width:min(1800px,calc(100% - clamp(32px,4vw,80px)))}.tk-header-shell{min-height:clamp(70px,6vw,101px);gap:clamp(16px,2vw,32px)}
body#index #wrapper>.container>.row{margin-inline:0}
.tk-header-modules .ps_mainmenu{display:none}
.tk-header-modules .tk-mainmenu,.tk-header-modules>.tk-megamenu,.tk-header-modules>a{display:none!important}
.tk-header-shell{flex-wrap:wrap}.tk-header-modules{flex:1 1 520px;justify-content:flex-end;flex-wrap:wrap;min-width:0}.tk-header-utility{margin-left:auto}

/* Global storefront shell */
body{background:var(--tk-paper);color:var(--tk-ink);font-family:Manrope,Arial,sans-serif}body #header,body #wrapper,body #footer{box-shadow:none}.tk-site-header{position:relative;z-index:90}.tk-header-shell{display:grid;grid-template-columns:auto minmax(0,1fr) auto;min-height:clamp(78px,6vw,96px);gap:clamp(18px,2.5vw,42px);align-items:center;flex-wrap:nowrap}.tk-header-modules{display:flex;min-width:0;align-items:center;justify-content:flex-end;flex-wrap:nowrap}.tk-header-utility{margin:0;white-space:nowrap}.tk-cart{display:flex;min-height:44px;align-items:center}.tk-utility-icon{min-width:44px;min-height:44px}
body:not(#index) #wrapper>.container>.breadcrumb{margin:0;padding:clamp(22px,3vw,42px) 0;background:transparent;color:var(--tk-muted);font:700 10px 'Space Mono';letter-spacing:.02em;text-transform:uppercase}body:not(#index) .breadcrumb a{color:var(--tk-muted);text-decoration:none}body:not(#index) .breadcrumb li:last-child{color:var(--tk-ink)}body:not(#index) .breadcrumb li:after{color:var(--tk-line)}
@media (max-width:900px){.tk-header-shell{grid-template-columns:auto 1fr auto;gap:10px;padding:10px 0}.tk-logo{grid-column:1;width:112px}.tk-header-utility{grid-column:3}.tk-header-modules{grid-column:1/-1;grid-row:2;justify-content:space-between}.tk-header-utility .tk-cart{font-size:12px}body:not(#index) #wrapper>.container>.breadcrumb{padding:20px 0}}

/* Narrow, consistent mobile gutters and hard containment for off-canvas UI. */
@media (max-width:600px){
  html,body{max-width:100%;overflow-x:clip}
  .tk-shell,.tk-header-shell,.tk-footer-shell,
  body#index #wrapper>.container,
  body#product #wrapper>.container,
  body#cart #wrapper>.container,
  body#category #wrapper>.container,
  body#checkout #wrapper>.container{width:calc(100% - 24px)}
}

/* Native ps_shoppingcart confirmation modal: restyled to match the theme
   design system (pill buttons, tk-* tokens) instead of default Bootstrap. */
body.modal-open{overflow:hidden!important}
#blockcart-modal .modal-backdrop,#blockcart-modal.modal{background:rgba(17,19,17,.5)}
#blockcart-modal .modal-dialog{width:min(680px,calc(100% - 40px));max-width:680px;margin:64px auto}
#blockcart-modal .modal-content{border:1px solid var(--tk-line);border-radius:var(--tk-radius);background:var(--tk-paper);box-shadow:0 24px 64px rgba(17,19,17,.16);overflow:hidden}
#blockcart-modal .modal-header{position:relative;padding:22px 60px 22px 26px;border:0;border-bottom:1px solid var(--tk-line)}
#blockcart-modal .modal-title{display:flex;align-items:center;gap:10px;margin:0;color:var(--tk-ink);font-size:14px;font-weight:800;letter-spacing:-.01em;text-align:left}
#blockcart-modal .modal-title .material-icons{display:grid;width:24px;height:24px;flex:0 0 auto;border-radius:50%;background:var(--tk-mint);color:var(--tk-ink);place-items:center;font-size:15px}
#blockcart-modal .close{position:absolute;top:14px;right:14px;width:36px;height:36px;margin:0;padding:0;border:1px solid var(--tk-line);border-radius:50%;background:transparent;color:var(--tk-ink);opacity:1}
#blockcart-modal .close:hover{background:var(--tk-off)}
#blockcart-modal .close .material-icons{font-size:18px;line-height:34px}
#blockcart-modal .modal-body{padding:26px}
#blockcart-modal .divide-right{border-right:0}
#blockcart-modal .product-image{width:100%;border-radius:14px;background:var(--tk-off);object-fit:contain}
#blockcart-modal .product-name{margin:0 0 6px;color:var(--tk-ink);font-size:13px;font-weight:800;line-height:1.35;letter-spacing:-.01em}
#blockcart-modal .product-price{margin:0 0 6px;color:var(--tk-ink);font-size:16px;font-weight:800}
#blockcart-modal .product-quantity{color:var(--tk-muted);font-size:11px}
#blockcart-modal .product-quantity strong{color:var(--tk-ink);font-weight:700}
#blockcart-modal .cart-content{padding-left:26px;border-left:1px solid var(--tk-line)}
#blockcart-modal .cart-content p{margin:0 0 10px;color:var(--tk-muted);font-size:12px}
#blockcart-modal .cart-content .label{color:var(--tk-muted)}
#blockcart-modal .cart-content .value{color:var(--tk-ink);font-weight:700}
#blockcart-modal .cart-products-count{padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--tk-line);color:var(--tk-ink);font:700 10px 'Space Mono',monospace;text-transform:uppercase;letter-spacing:.04em}
#blockcart-modal .product-total{margin:12px 0 20px!important;padding-top:12px;border-top:1px solid var(--tk-line)}
#blockcart-modal .product-total .label{color:var(--tk-ink);font-size:13px;font-weight:800}
#blockcart-modal .product-total .value{font-size:19px;font-weight:800;letter-spacing:-.02em}
#blockcart-modal .cart-content-btn{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
#blockcart-modal .cart-content-btn .btn{display:flex;min-height:50px;align-items:center;justify-content:center;gap:8px;margin:0;border-radius:var(--tk-radius-pill);font-size:12px;font-weight:800;letter-spacing:.01em;white-space:nowrap}
#blockcart-modal .cart-content-btn .btn-secondary{border:1px solid var(--tk-line);background:transparent;color:var(--tk-ink)}
#blockcart-modal .cart-content-btn .btn-secondary:hover{border-color:var(--tk-mint-deep);color:var(--tk-mint-text, #1f6f60)}
#blockcart-modal .cart-content-btn .btn-primary{border:0;background:var(--tk-ink);color:var(--tk-paper)}
#blockcart-modal .cart-content-btn .btn-primary:hover{background:var(--tk-mint-deep)}
#blockcart-modal .cart-content-btn .btn .material-icons{font-size:17px}
#blockcart-modal .modal-footer{margin:0;padding:18px 26px;border:0;border-top:1px solid var(--tk-line);background:var(--tk-card-cream)}
#blockcart-modal .modal-footer p{margin:0 0 10px;color:var(--tk-muted);font:700 10px 'Space Mono',monospace;text-transform:uppercase;letter-spacing:.04em}
#blockcart-modal .modal-footer .value,#blockcart-modal .modal-footer .dark{color:var(--tk-ink);font-weight:800}

@media (max-width:768px){
  #blockcart-modal .modal-body .row>[class*=col-]{width:100%;max-width:none}
  #blockcart-modal .cart-content{padding-left:0;border-left:0;margin-top:20px;padding-top:20px;border-top:1px solid var(--tk-line)}
  #blockcart-modal .col-md-5>.row{align-items:center}
}

/* Native ps_shoppingcart confirmation: full screen on phones. The modal itself
   never scrolls; only its content can scroll if a long cart requires it. */
@media (max-width:600px){
  #blockcart-modal{padding:0!important}
  #blockcart-modal .modal-dialog{width:100vw;max-width:none;height:100dvh;margin:0}
  #blockcart-modal .modal-content{height:100dvh;max-height:none;border:0;border-radius:0;box-shadow:none;overflow:hidden}
  #blockcart-modal .modal-body{display:flex;min-height:0;max-height:none;flex:1;flex-direction:column;padding:20px 16px;overflow-y:auto;overscroll-behavior:contain}
  #blockcart-modal .modal-header{padding:16px 50px 16px 16px;border:0}
  #blockcart-modal .cart-content-btn{display:grid;grid-template-columns:1fr;gap:10px;margin-top:auto}
  #blockcart-modal .cart-content-btn .btn{width:100%;min-height:52px;margin:0;border-radius:12px}
}

/* ---------- Form controls shared by every form in the shop ----------
   Checkbox and radio markup comes from our _partials/form-fields.tpl
   (.tk-check); .custom-checkbox below covers markup still rendered by
   modules (GDPR consent, newsletter) or core partials. */

.tk-required {
  margin-left: 3px;
  color: #c0392b;
  font-weight: 700;
  text-transform: none;
}

.tk-optional {
  margin-left: 6px;
  color: var(--tk-muted);
  font: 500 10px/1 Manrope, Arial, sans-serif;
  letter-spacing: 0;
  text-transform: none;
}

.tk-field.-checkbox {
  margin-bottom: 12px !important;
}

.tk-choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
}

.tk-check {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  padding: 0;
  color: var(--tk-ink);
  font: 500 13px/1.5 Manrope, Arial, sans-serif;
  letter-spacing: normal;
  text-align: left;
  text-transform: none;
  cursor: pointer;
}

.tk-check__input {
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.tk-check__box {
  position: relative;
  display: grid;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  place-items: center;
  border: 1px solid rgba(17, 19, 17, .35);
  border-radius: 6px;
  background: #fff;
  transition: background-color .15s ease, border-color .15s ease;
}

.tk-check__box svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: var(--tk-ink);
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0;
}

.tk-check:hover .tk-check__box {
  border-color: var(--tk-ink);
}

.tk-check__input:checked + .tk-check__box {
  border-color: var(--tk-ink);
  background: var(--tk-mint);
}

.tk-check__input:checked + .tk-check__box svg {
  opacity: 1;
}

.tk-check__input:focus-visible + .tk-check__box {
  outline: 2px solid var(--tk-mint-deep);
  outline-offset: 2px;
}

.tk-check__text {
  min-width: 0;
}

.tk-check__text br {
  display: none;
}

.tk-check__text em {
  display: block;
  margin-top: 3px;
  color: var(--tk-muted);
  font-size: 12px;
  font-style: normal;
  line-height: 1.5;
}

.tk-check__text a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.tk-check.-radio .tk-check__box {
  border-radius: 50%;
}

.tk-check.-radio .tk-check__input:checked + .tk-check__box {
  background: #fff;
  box-shadow: inset 0 0 0 5px var(--tk-ink);
}

.has-error .tk-check__box,
.tk-touched .tk-check__input:invalid + .tk-check__box {
  border-color: #c0392b;
}

form .custom-checkbox {
  position: relative;
  display: block;
}

form .custom-checkbox > label {
  position: relative;
  display: block;
  margin: 0;
  padding-left: 30px;
  color: var(--tk-ink);
  font: 500 13px/1.5 Manrope, Arial, sans-serif;
  text-align: left;
  text-transform: none;
  cursor: pointer;
}

form .custom-checkbox input[type="checkbox"] {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 20px;
  height: 20px;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

form .custom-checkbox input[type="checkbox"] + span {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 20px;
  height: 20px;
  margin: 0;
  border: 1px solid rgba(17, 19, 17, .35);
  border-radius: 6px;
  background: #fff;
}

form .custom-checkbox input[type="checkbox"] + span .material-icons {
  display: none;
}

form .custom-checkbox input[type="checkbox"]:checked + span {
  border-color: var(--tk-ink);
  background: var(--tk-mint);
}

form .custom-checkbox input[type="checkbox"]:checked + span::after {
  content: '';
  position: absolute;
  inset: 2px;
  background-color: var(--tk-ink);
  -webkit-mask: var(--tk-icon-check) center / contain no-repeat;
  mask: var(--tk-icon-check) center / contain no-repeat;
}

form .custom-checkbox input[type="checkbox"]:focus-visible + span {
  outline: 2px solid var(--tk-mint-deep);
  outline-offset: 2px;
}

/* One page ground everywhere: classic paints #wrapper light grey on pages without their own stylesheet. */
html body,html body #wrapper{background:var(--tk-paper)}
