:root{
  --pf-bg:#ffffff;
  --pf-page:#ffffff;
  --pf-text:#171a20;
  --pf-text-soft:#2c4049;
  --pf-text-faint:#5d7383;
  --pf-hover:#f1f5f7;
  --pf-line:#dbe4e9;
  --pf-overlay:rgba(1,61,91,.30);
  --pf-brand:#00d1fb;
  --pf-success:#1a8f3c;
  --pf-ok:#00d1fb;
  --pf-warn:#c98a14;
  --pf-muted:#2c4049;
  --pf-success-tint:rgba(26,143,60,.10);
  --pf-warn-tint:rgba(201,138,20,.10);
  --pf-brand-tint:rgba(0,209,251,.12);
  --pf-radius:5px;
  --pf-shadow:0 2px 12px rgba(0,0,0,.10);
  --pf-header-h:56px;
  --pf-maxw:1400px;
  --pf-ease:cubic-bezier(.4,0,.2,1);
  --pf-h1:clamp(24px, 3.4vw, 32px);
  --pf-h2:26px; --pf-h3:21px; --pf-h4:17px; --pf-h5:14px;
  --pf-ui:14px; --pf-small:13px; --pf-tiny:12px;
  --pf-s1:4px;  --pf-s2:8px;   --pf-s3:12px;  --pf-s4:16px;
  --pf-s5:24px; --pf-s6:32px;  --pf-s7:48px;  --pf-s8:64px;  --pf-s9:80px;
  --pf-s10:96px; --pf-s11:128px;
  --pf-font:"Urbanist","Helvetica Neue",Helvetica,Arial,sans-serif;
  --pf-font-text:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{background:var(--pf-page);scrollbar-gutter:stable}
body{
  background:var(--pf-page);
  color:var(--pf-text);
  font-family:var(--pf-font);
  font-size:var(--pf-ui);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}

h1,h2,h3,h4,h5{margin:0 0 var(--pf-s3);line-height:1.25}
h1,h2,h3,h4{font-weight:600}
h1{font-size:var(--pf-h1);letter-spacing:-.01em}
h2{font-size:var(--pf-h2);letter-spacing:-.01em}
h3{font-size:var(--pf-h3)}
h4{font-size:var(--pf-h4)}
h5{font-size:var(--pf-h5);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--pf-text-soft)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img{max-width:100%}

/* ---------- header shell ---------- */
.pf-site-header{
  position:sticky;top:0;z-index:60;
  width:100%;
  background:var(--pf-bg);
  transition:background .2s var(--pf-ease);
}
.pf-site-header.pf-is-open{box-shadow:none}
.pf-header-bar{
  width:100%;height:var(--pf-header-h);
  position:relative;z-index:2;
  background:var(--pf-bg);
}
.pf-header-bar-inner{
  max-width:var(--pf-maxw);margin:0 auto;height:100%;
  display:flex;align-items:center;gap:var(--pf-s2);
  padding:0 var(--pf-s4);
  position:relative;
}

/* ---------- logo lockup ---------- */
.pf-header-logo{
  display:flex;align-items:center;height:100%;
  padding:0 var(--pf-s2);flex:0 0 auto;
  gap:0;
}
.pf-logo-link{
  display:flex;align-items:center;height:100%;
  width:auto !important;
}
.pf-logo-link a{display:flex;align-items:center;height:100%}
.pf-logo-link img{height:18px;width:auto;max-width:none;display:block}
.pf-logo-text{font-weight:600;font-size:var(--pf-ui);letter-spacing:.02em;white-space:nowrap}

.pf-logo-suffix{
  display:flex;align-items:center;height:100%;
  position:relative;
  margin:0 0 0 var(--pf-s3);padding-left:var(--pf-s3);
  font-size:var(--pf-ui);font-weight:600;color:var(--pf-text-soft);
  line-height:1;white-space:nowrap;
}
.pf-logo-suffix::before{
  content:"";position:absolute;left:0;top:50%;
  transform:translateY(-50%);
  width:1px;height:18px;background:var(--pf-line);
}

/* ---------- desktop nav ---------- */
.pf-primary-nav{flex:1 1 auto;display:flex;justify-content:center}
.pf-primary-nav ul{display:flex;gap:var(--pf-s1);list-style:none;margin:0;padding:0}
.pf-primary-nav-link{
  display:block;padding:var(--pf-s2) var(--pf-s3);border-radius:var(--pf-radius);
  font-weight:600;white-space:nowrap;
  transition:background .15s var(--pf-ease);
}
.pf-primary-nav-link:hover,.pf-primary-nav-link:focus-visible,
.pf-primary-nav-link[aria-expanded="true"]{background:var(--pf-hover)}
.pf-primary-nav-link:focus-visible{outline:2px solid currentColor;outline-offset:-2px}

.pf-header-actions{flex:0 0 auto;display:flex;align-items:center;gap:var(--pf-s1)}
.pf-icon-button{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;position:relative;
  transition:color .15s var(--pf-ease);
}
.pf-icon-button:hover{color:var(--pf-text-soft)}
.pf-icon-button svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.6}
.pf-cart-count{
  position:absolute;top:0;right:0;
  min-width:19px;height:19px;padding:0 5px;
  border-radius:999px;background:var(--pf-brand);color:var(--pf-text);
  font-size:var(--pf-tiny);font-weight:600;line-height:19px;text-align:center;
}
.pf-cart-count[hidden]{display:none}
.pf-menu-toggle{display:block;padding:var(--pf-s2) var(--pf-s3);border-radius:var(--pf-radius);font-weight:600}
.pf-menu-toggle:hover{background:var(--pf-hover)}

/* ---------- search ---------- */
.pf-header-search{
  position:absolute;top:9px;right:16px;z-index:3;
  width:0;max-width:calc(100% - 32px);
  overflow:hidden;
  border-radius:var(--pf-radius);background:var(--pf-hover);
  opacity:0;visibility:hidden;
  transition:width .28s var(--pf-ease),opacity .18s var(--pf-ease),
             border-radius .2s var(--pf-ease),box-shadow .2s var(--pf-ease),visibility .28s;
}
.pf-site-header.pf-is-search .pf-header-search{
  width:calc(100% - 32px);opacity:1;visibility:visible;
}
.pf-site-header.pf-is-search .pf-header-search.pf-has-results{
  border-radius:var(--pf-radius);
  box-shadow:var(--pf-shadow);
}
.pf-search-row{
  display:flex;align-items:center;gap:var(--pf-s2);
  height:38px;padding:0 var(--pf-s2) 0 var(--pf-s4);
}
.pf-search-icon{flex:0 0 auto;display:flex;color:var(--pf-text-soft)}
.pf-search-icon svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.6}
.pf-search-input{
  flex:1 1 auto;min-width:0;
  border:0;background:transparent;outline:none;
  font:inherit;font-size:var(--pf-ui);color:var(--pf-text);
  padding:var(--pf-s2) 0;
}
.pf-search-input::placeholder{color:var(--pf-text-soft)}
.pf-search-cancel{
  flex:0 0 auto;padding:var(--pf-s2) var(--pf-s2);border-radius:var(--pf-radius);
  color:var(--pf-text-soft);font-size:var(--pf-small);white-space:nowrap;
}
.pf-search-cancel:hover{background:var(--pf-bg);color:var(--pf-text)}

.pf-search-results{
  max-height:0;overflow:hidden;
  transition:max-height .28s var(--pf-ease);
}
.pf-search-results-list{
  list-style:none;margin:0;padding:var(--pf-s2);
  max-height:440px;overflow-y:auto;
}
.pf-search-results-list a{
  display:flex;align-items:center;gap:var(--pf-s2);
  padding:var(--pf-s2);border-radius:var(--pf-radius);
  color:var(--pf-text-soft);
  transition:background .15s var(--pf-ease),color .15s var(--pf-ease);
}
.pf-search-results-list a:hover{background:var(--pf-bg);color:var(--pf-text)}
.pf-search-results-list svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.6;flex:0 0 auto;opacity:.7}
.pf-search-results-list mark{background:none;color:var(--pf-text);font-weight:600}
.pf-search-results-empty{padding:var(--pf-s2);color:var(--pf-text-soft)}

.pf-search-group{list-style:none;margin:0;padding:0}
.pf-search-group + .pf-search-group{margin-top:var(--pf-s4)}
.pf-search-group__title{
  padding:0 var(--pf-s2) var(--pf-s2);
  margin:0 var(--pf-s2) var(--pf-s2);
  font-size:var(--pf-tiny);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;
  color:var(--pf-text-soft);
  border-bottom:1px solid var(--pf-line);
}
.pf-search-group__list{
  list-style:none;margin:0;padding:0;
  display:grid;gap:var(--pf-s1);
}
.pf-search-group__empty{
  padding:var(--pf-s3) var(--pf-s4);
  color:var(--pf-text-soft);
  font-size:var(--pf-tiny);
}

.pf-search-results-list .pf-search-thumb{
  width:40px !important;
  height:40px !important;
  flex:0 0 40px !important;
  max-width:40px;
  max-height:40px;
  border-radius:var(--pf-radius);
  overflow:hidden;
  background:var(--pf-bg);
  border:1px solid var(--pf-line);
  display:grid;
  place-items:center;
}
.pf-search-results-list .pf-search-thumb img{
  width:40px !important;
  height:40px !important;
  max-width:40px !important;
  max-height:40px !important;
  object-fit:cover;
  display:block;
}
.pf-search-results-list .pf-search-thumb--empty svg{
  width:18px;height:18px;
  stroke:var(--pf-text-soft);fill:none;stroke-width:1.5;
}
.pf-search-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}
.pf-search-name{
  display:block;color:var(--pf-text);font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pf-search-sku{display:block;font-size:11px;color:var(--pf-text-soft);letter-spacing:.02em}
.pf-search-price{flex:0 0 auto;font-weight:600;color:var(--pf-text);font-size:13px;white-space:nowrap}

/* ---------- mega panel ---------- */
.pf-mega-menu{
  position:absolute;left:0;right:0;top:100%;
  background:var(--pf-bg);
  overflow:hidden;
  height:0;
  transition:height .32s var(--pf-ease);
  box-shadow:var(--pf-shadow);
  z-index:1;
}
.pf-mega-menu.pf-is-instant{transition:none}
.pf-mega-panel{
  position:absolute;inset:0 auto auto 0;width:100%;
  opacity:0;visibility:hidden;
  transform:translateY(-8px);
  transition:opacity .2s var(--pf-ease),transform .25s var(--pf-ease),visibility .25s;
  pointer-events:none;
}
.pf-mega-panel.pf-is-active{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.pf-mega-panel-inner{
  max-width:var(--pf-maxw);margin:0 auto;flex-wrap:wrap;
  padding:var(--pf-s5) var(--pf-s5) var(--pf-s7);
  display:flex;gap:var(--pf-s7);align-items:flex-start;
}
.pf-menu-columns{
  flex:1 1 0;min-width:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--pf-s7);
  align-items:start;
}
.pf-menu-column{min-width:0}
.pf-menu-column-title{
  display:block;font-weight:600;font-size:var(--pf-ui);
  padding-bottom:var(--pf-s3);margin-bottom:var(--pf-s4);
  border-bottom:3px solid var(--pf-brand);
}
.pf-menu-column ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--pf-s1)}
.pf-menu-column li a{
  display:block;padding:var(--pf-s1) var(--pf-s2);margin-left:calc(var(--pf-s2) * -1);border-radius:var(--pf-radius);
  color:var(--pf-text-soft);
  transition:background .15s var(--pf-ease),color .15s var(--pf-ease);word-break:break-word;
}
.pf-menu-column li a:hover{background:var(--pf-hover);color:var(--pf-text)}

.pf-menu-support{
  order:1;width:260px;flex:0 0 auto;
  padding:var(--pf-s5);
  background:var(--pf-hover);
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
}
.pf-menu-support__icon{
  display:grid;place-items:center;
  width:36px;height:36px;border-radius:50%;
  background:var(--pf-bg);border:1px solid var(--pf-line);
  margin-bottom:var(--pf-s3);
}
.pf-menu-support__icon svg{width:18px;height:18px;stroke:var(--pf-brand);fill:none;stroke-width:1.6}
.pf-menu-support__title{font-weight:600;line-height:1.35;margin-bottom:var(--pf-s2)}
.pf-menu-support__text{font-size:var(--pf-small);color:var(--pf-text-soft);line-height:1.6;margin:0 0 var(--pf-s4)}
.pf-menu-support__link{
  display:inline-block;font-size:var(--pf-small);font-weight:600;
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;
}
.pf-menu-support__link:hover{text-decoration-thickness:2px}

.pf-menu-view-all{
  order:2;flex:0 0 100%;margin-top:var(--pf-s2);
  display:inline-block;
  font-size:var(--pf-small);font-weight:400;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:5px;
}
.pf-menu-view-all:hover{text-decoration-thickness:2px}

/* ---------- cart drawer ---------- */
.pf-cart-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:70;
  width:min(92vw,420px);
  background:var(--pf-bg);
  transform:translateX(100%);
  transition:transform .32s var(--pf-ease);
  display:flex;flex-direction:column;
}
.pf-cart-drawer.pf-is-open{
  transform:none;
  box-shadow:var(--pf-shadow);
}
.pf-cart-drawer__top{
  flex:0 0 auto;height:var(--pf-header-h);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--pf-s2) 0 var(--pf-s4);
  border-bottom:1px solid var(--pf-line);
}
.pf-cart-drawer__title{font-weight:600}
.pf-cart-drawer__count{margin-left:var(--pf-s2);font-size:var(--pf-tiny);color:var(--pf-text-faint);font-weight:400}
.pf-cart-drawer__body{flex:1 1 auto;overflow-y:auto;padding:var(--pf-s4)}
.pf-cart-drawer__foot{
  flex:0 0 auto;border-top:1px solid var(--pf-line);
  padding:var(--pf-s4);background:var(--pf-bg);
}
.pf-cart-drawer__foot .pf-cta-button + .pf-cta-button{
  margin-top:var(--pf-s2);
}

.pf-cart-drawer .pf-cta-button{text-align:center}

.pf-cart-lines{list-style:none;margin:0;padding:0}
.pf-cart-line{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:var(--pf-s3);align-items:stretch;
  padding:var(--pf-s4) 0;border-bottom:1px solid var(--pf-line);
}
.pf-cart-line:first-child{padding-top:0}
.pf-cart-line:last-child{border-bottom:0}
.pf-cart-line__media{
  align-self:stretch;
  width:auto;
  height:100%;
  max-width:88px;
  aspect-ratio:1/1;
  border-radius:var(--pf-radius);
  border:1px solid var(--pf-line);overflow:hidden;
  background:radial-gradient(circle at 50% 42%,var(--pf-hover),var(--pf-bg) 70%);
  display:grid;place-items:center;
  font-size:var(--pf-tiny);color:var(--pf-text-faint);text-transform:uppercase;letter-spacing:.06em;
}
.pf-cart-line__media img{width:100%;height:100%;object-fit:cover;display:block}
.pf-cart-line__head{display:flex;justify-content:space-between;gap:var(--pf-s3);align-items:baseline}
.pf-cart-line__name{font-weight:600;line-height:1.35}
.pf-cart-line__qty{font-weight:400;color:var(--pf-text-soft)}
.pf-cart-line__unit{
  margin-top:var(--pf-s1);
  font-size:var(--pf-tiny);
  color:var(--pf-text-soft);
  display:flex;
  align-items:baseline;
  gap:var(--pf-s2);
  flex-wrap:wrap;
}
.pf-cart-line__was{
  color:var(--pf-text-faint);
  text-decoration:line-through;
  text-decoration-thickness:1px;
}
.pf-cart-line__now{
  color:var(--pf-text);
  font-weight:500;
}
.pf-cart-line__price{font-weight:400;color:var(--pf-text-soft);white-space:nowrap}
.pf-cart-line__foot{display:flex;align-items:center;gap:var(--pf-s3);margin-top:var(--pf-s2)}

.pf-qty{
  display:inline-flex;align-items:center;
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
  background:var(--pf-bg);overflow:hidden;
}
.pf-qty button{
  width:32px;height:32px;display:grid;place-items:center;
  font-size:var(--pf-ui);line-height:1;color:var(--pf-text-soft);
}
.pf-qty button:hover{background:var(--pf-hover);color:var(--pf-text)}
.pf-qty button[disabled]{opacity:.35;cursor:default}
.pf-qty button[disabled]:hover{background:none}
.pf-qty output{min-width:26px;text-align:center;font-size:var(--pf-small);font-weight:600}

.pf-qty--lg button{width:40px;height:40px;font-size:var(--pf-h4)}
.pf-qty--lg output{min-width:36px;font-size:var(--pf-ui)}

.pf-cart-line__remove{
  font-size:var(--pf-tiny);color:var(--pf-text-soft);
  text-decoration:underline;text-underline-offset:3px;
  padding:var(--pf-s2) var(--pf-s1);margin:calc(var(--pf-s2) * -1) calc(var(--pf-s1) * -1);
}
.pf-cart-line__remove:hover{color:var(--pf-text)}

.pf-cart-empty{padding:var(--pf-s8) 0;text-align:center;color:var(--pf-text-soft)}

.pf-cart-totals{margin:0 0 var(--pf-s4);display:grid;gap:var(--pf-s2);font-size:var(--pf-small)}
.pf-cart-totals > div{display:flex;justify-content:space-between;gap:var(--pf-s4)}
.pf-cart-totals dt{color:var(--pf-text-soft)}
.pf-cart-totals dd{margin:0;font-weight:500}
.pf-cart-total{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-top:var(--pf-s3);margin-bottom:var(--pf-s4);
  border-top:1px solid var(--pf-line);font-weight:600;
}
.pf-cart-total span:last-child{font-size:var(--pf-h4)}
.pf-cart-note{margin:var(--pf-s3) 0 0;font-size:var(--pf-tiny);color:var(--pf-text-faint);line-height:1.6}

/* ---------- overlay ---------- */
.pf-page-overlay{
  position:fixed;inset:0;z-index:50;
  background:var(--pf-overlay);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;
  transition:opacity .3s var(--pf-ease),visibility .3s;
}
.pf-page-overlay.pf-is-visible{opacity:1;visibility:visible}
.pf-page-overlay.pf-is-above{z-index:65}

/* ---------- mobile drawer ---------- */
.pf-mobile-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:70;
  width:min(88vw,380px);
  background:var(--pf-bg);
  transform:translateX(100%);
  transition:transform .32s var(--pf-ease);
  display:flex;flex-direction:column;
}
.pf-mobile-drawer.pf-is-open{
  transform:none;
  box-shadow:var(--pf-shadow);
}
.pf-drawer-top{
  height:var(--pf-header-h);flex:0 0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--pf-s2) 0 var(--pf-s4);
}
.pf-drawer-back{
  display:none;align-items:center;gap:var(--pf-s2);
  padding:var(--pf-s2);border-radius:var(--pf-radius);font-weight:500;
}
.pf-mobile-drawer[data-level="2"] .pf-drawer-back{display:inline-flex}
.pf-drawer-back svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.pf-drawer-title{font-weight:600}
.pf-drawer-slider{flex:1 1 auto;position:relative;overflow:hidden}
.pf-drawer-level{
  position:absolute;inset:0;overflow-y:auto;
  padding:var(--pf-s2) var(--pf-s2) var(--pf-s6);
  transition:transform .32s var(--pf-ease),opacity .2s var(--pf-ease);
}
.pf-drawer-level-root{transform:translateX(0)}
.pf-mobile-drawer[data-level="2"] .pf-drawer-level-root{transform:translateX(-30%);opacity:0;pointer-events:none}
.pf-drawer-level-sub{transform:translateX(100%);opacity:0;pointer-events:none}
.pf-mobile-drawer[data-level="2"] .pf-drawer-level-sub{transform:translateX(0);opacity:1;pointer-events:auto}
.pf-drawer-level a,.pf-drawer-level button.pf-drawer-row{
  display:flex;width:100%;align-items:center;justify-content:space-between;
  padding:var(--pf-s3);border-radius:var(--pf-radius);text-align:left;font-weight:500;
}
.pf-drawer-level a:hover,.pf-drawer-level button.pf-drawer-row:hover{background:var(--pf-hover)}
.pf-drawer-level .pf-drawer-sublist a{font-weight:400;color:var(--pf-text-soft);padding:var(--pf-s3)}
.pf-drawer-subtitle{
  font-weight:600;color:var(--pf-text);
  margin:var(--pf-s4) var(--pf-s3) var(--pf-s2);padding-bottom:var(--pf-s3);
  border-bottom:3px solid var(--pf-brand);
}
.pf-drawer-subtitle:first-child{margin-top:var(--pf-s2)}
.pf-drawer-level a.pf-drawer-viewall{
  font-size:var(--pf-small);font-weight:500;color:var(--pf-text);
  padding:var(--pf-s3) var(--pf-s3) var(--pf-s4);
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;
}
.pf-drawer-level a.pf-drawer-viewall:hover{background:none;text-decoration-thickness:2px}

.pf-drawer-support{
  margin:var(--pf-s2) var(--pf-s3) var(--pf-s5);
  padding:var(--pf-s4);
  background:var(--pf-hover);
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
}
.pf-drawer-support__title{font-weight:600;line-height:1.35;margin-bottom:var(--pf-s2)}
.pf-drawer-support__text{margin:0 0 var(--pf-s3);font-size:var(--pf-small);color:var(--pf-text-soft);line-height:1.6}
.pf-drawer-level a.pf-drawer-support__link{
  display:inline-block;width:auto;padding:0;
  font-size:var(--pf-small);font-weight:600;
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;
}
.pf-drawer-level a.pf-drawer-support__link:hover{background:none;text-decoration-thickness:2px}
.pf-drawer-row svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;flex:0 0 auto}
.pf-drawer-divider{height:1px;background:var(--pf-line);margin:var(--pf-s2) var(--pf-s3)}
.pf-drawer-level-root .pf-drawer-links a{font-weight:400;color:var(--pf-text-soft);padding:var(--pf-s3)}
.pf-drawer-region{
  margin:0;padding:var(--pf-s2) var(--pf-s3) var(--pf-s1);
  font-size:var(--pf-tiny);color:var(--pf-text-faint);
}

/* ---------- product page ---------- */
.pf-product{
  max-width:var(--pf-maxw);margin:0 auto;
  padding:var(--pf-s8) var(--pf-s5) var(--pf-s10);
  display:grid;grid-template-columns:minmax(0,1.9fr) minmax(320px,.9fr);
  gap:var(--pf-s7);align-items:start;
}
.pf-product-gallery{
  display:flex;flex-direction:column;gap:var(--pf-s4);
  min-width:0;
  position:sticky;top:calc(var(--pf-header-h) + 24px);
}
.pf-gallery-thumbs{flex:0 0 auto;min-width:0}
.pf-thumb-track{
  cursor:grab;
  display:flex;gap:var(--pf-s3);
  overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;
  scrollbar-width:none;
}
.pf-thumb-track::-webkit-scrollbar{display:none}
.pf-gallery-thumb{
  position:relative;
  flex:0 0 calc((100% - 4 * var(--pf-s3)) / 5);
  min-width:56px;
  aspect-ratio:1/1;border-radius:var(--pf-radius);
  background:var(--pf-hover);
  overflow:hidden;
  display:grid;place-items:center;
  font-size:var(--pf-tiny);color:var(--pf-text-faint);
  opacity:.55;
  transition:opacity .15s var(--pf-ease);
}
.pf-gallery-thumb:hover,
.pf-gallery-thumb.pf-is-selected{opacity:1}
.pf-gallery-thumb img{
  position:absolute;top:0;left:0;
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}
.pf-gallery-stage{position:relative;min-width:0}

.pf-gallery-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;
  background:rgba(0,0,0,.45);
  border:0;
  color:#ffffff;
  box-shadow:0 1px 6px rgba(0,0,0,.15);
  opacity:0;
  transition:opacity .15s var(--pf-ease), background .15s var(--pf-ease);
  z-index:3;
}
.pf-gallery-nav:hover{background:rgba(0,0,0,.65)}
.pf-gallery-nav:focus-visible{opacity:1}
.pf-gallery-nav[disabled]{display:none}
.pf-gallery-nav svg{
  width:16px;height:16px;
  stroke:currentColor;fill:none;stroke-width:2;
}
.pf-gallery-nav--prev{left:14px}
.pf-gallery-nav--next{right:14px}

.pf-gallery-stage:hover .pf-gallery-nav{opacity:1}

@media (hover: none){
  .pf-gallery-nav{opacity:1}
}

.pf-gallery-track{
  display:flex;min-width:0;max-width:100%;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  border-radius:var(--pf-radius);
  cursor:default;
  -webkit-overflow-scrolling:touch;
}
.pf-gallery-track::-webkit-scrollbar{display:none}
.pf-gallery-track.pf-is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.pf-thumb-track.pf-is-dragging{cursor:grabbing;scroll-behavior:auto}
.pf-thumb-track.pf-is-dragging .pf-gallery-thumb{pointer-events:none}
.pf-gallery-slide{
  flex:0 0 100%;aspect-ratio:1/1;
  min-height:0;
  overflow:hidden;
  scroll-snap-align:center;
  border-radius:var(--pf-radius);
  background:radial-gradient(circle at 50% 42%,var(--pf-hover),var(--pf-bg) 70%);
  display:grid;place-items:center;
  color:var(--pf-text-faint);font-size:var(--pf-small);letter-spacing:.06em;text-transform:uppercase;
  user-select:none;
}
.pf-gallery-slide *{pointer-events:none}

.pf-gallery-slide img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}

.pf-gallery-dots{
  position:absolute;left:50%;bottom:14px;
  transform:translateX(-50%);
  display:flex;align-items:center;gap:var(--pf-s2);
  padding:var(--pf-s2) var(--pf-s3);
  border-radius:999px;
  background:rgba(255,255,255,.01);
  -webkit-backdrop-filter:blur(8px) saturate(150%);
  backdrop-filter:blur(8px) saturate(150%);
  box-shadow:0 2px 8px rgba(0,0,0,.06);
  z-index:2;
}
.pf-gallery-dot{
  width:8px;height:8px;border-radius:50%;
  padding:0;margin:0;
  background:rgba(23,26,32,.20);
  transition:background .15s var(--pf-ease);
}
.pf-gallery-dot:hover{background:rgba(23,26,32,.45)}
.pf-gallery-dot.pf-is-active{background:rgba(23,26,32,.85)}

.pf-product-info{min-width:0}
.pf-product-title{
  font-size:var(--pf-h1);font-weight:600;margin:0 0 var(--pf-s2);
  letter-spacing:-.01em;line-height:1.2;
}
.pf-product-identifiers{
  display:flex;flex-wrap:wrap;gap:var(--pf-s1) var(--pf-s5);
  margin:var(--pf-s5) 0 0;padding-top:var(--pf-s1);
  font-size:var(--pf-tiny);color:var(--pf-text-soft);
}
.pf-product-identifiers b{font-weight:400}
.pf-product-identifiers span{color:var(--pf-text)}
.pf-product-price{display:flex;align-items:baseline;gap:var(--pf-s2);font-size:var(--pf-h4);font-weight:500;margin:0}
.pf-product-price small{font-size:var(--pf-small);font-weight:400;color:var(--pf-text-soft)}
.pf-product-intro{
  font-family:var(--pf-font-text);
  font-size:var(--pf-ui);color:var(--pf-text-soft);
  line-height:1.65;margin:var(--pf-s4) 0 0;
}

.pf-product-pills{
  display:inline-flex;flex-wrap:wrap;gap:var(--pf-s2);
  align-items:center;
  margin:var(--pf-s5) 0 0;
}
.pf-pill{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 10px;
  border-radius:var(--pf-radius);
  font-size:var(--pf-tiny);
  font-weight:500;
  line-height:1.5;
  white-space:nowrap;
}
.pf-pill[hidden]{display:none !important}
.pf-pill--stock{background:var(--pf-success-tint);color:var(--pf-success)}
.pf-pill--stock[data-stock="low"]{background:var(--pf-warn-tint);color:var(--pf-warn)}
.pf-pill--stock[data-stock="out"]{background:var(--pf-hover);color:var(--pf-text-soft)}
.pf-pill--hint{background:var(--pf-brand-tint);color:var(--pf-text)}

.pf-buy-row{
  display:flex;align-items:center;gap:var(--pf-s4);
  margin-top:var(--pf-s5);
}
.pf-buy-row__label{font-size:var(--pf-small);color:var(--pf-text-soft);flex:0 0 auto}

.pf-buy-row .pf-qty--lg{flex:1 1 auto}
.pf-buy-row .pf-qty--lg output{flex:1 1 auto;text-align:center}

.pf-product-buy{margin-top:var(--pf-s4)}
.pf-product-buy .pf-buy-row{margin-top:0}
.pf-product-buy__actions{
  display:grid;gap:var(--pf-s2);
  margin-top:var(--pf-s4);
}

.pf-product-buy .added_to_cart.wc-forward{display:none !important}

.pf-product-cta-group{margin-top:var(--pf-s5);display:grid;gap:var(--pf-s2)}
.pf-cta-button{
  display:block;
  width:100%;padding:var(--pf-s3) var(--pf-s5);border-radius:var(--pf-radius);
  background:var(--pf-brand);color:var(--pf-text);
  border:1px solid transparent;
  font-size:var(--pf-ui);font-weight:600;line-height:20px;letter-spacing:.02em;
  text-align:center;
  transition:opacity .15s var(--pf-ease);
}
.pf-cta-button:hover{opacity:.85}
.pf-cta-button--secondary{background:var(--pf-hover);color:var(--pf-text)}

.pf-cta-button.pf-is-disabled{
  opacity:.5;
  pointer-events:none;
  cursor:not-allowed;
}

.pf-cta-button.pf-is-loading{
  opacity:.7;
  pointer-events:none;
  cursor:progress;
}

.pf-request-form{max-height:0;overflow:hidden;transition:max-height .35s var(--pf-ease)}
.pf-request-form-inner{padding:var(--pf-s5) 0 var(--pf-s1);display:grid;gap:var(--pf-s3)}
.pf-request-form h3{margin:0;font-size:var(--pf-ui);font-weight:600}
.pf-request-form p.pf-request-form-intro{margin:0;font-size:var(--pf-small);color:var(--pf-text-soft);line-height:1.6}
.pf-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--pf-s3)}
.pf-form-field{display:grid;gap:var(--pf-s2)}
.pf-form-field label{font-size:var(--pf-tiny);color:var(--pf-text-soft)}
.pf-form-field input,
.pf-form-field textarea{
  width:100%;font:inherit;font-size:var(--pf-ui);color:var(--pf-text);
  background:var(--pf-bg);
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
  padding:var(--pf-s2) var(--pf-s3);
  transition:border-color .15s var(--pf-ease);
}
.pf-form-field textarea{min-height:88px;resize:vertical}
.pf-form-field input:focus,
.pf-form-field textarea:focus{outline:none;border-color:var(--pf-text)}
.pf-request-form-actions{display:flex;align-items:center;gap:var(--pf-s3);margin-top:2px}
.pf-request-form-actions .pf-cta-button{width:auto;padding:var(--pf-s3) var(--pf-s5)}
.pf-form-cancel{font-size:var(--pf-small);color:var(--pf-text-soft);padding:var(--pf-s2) var(--pf-s1);border-radius:var(--pf-radius)}
.pf-form-cancel:hover{color:var(--pf-text)}
.pf-form-confirmation{margin:0;font-size:var(--pf-small);color:var(--pf-success);font-weight:500}

.pf-product-availability-note{margin:var(--pf-s4) 0 0;font-family:var(--pf-font-text);font-size:var(--pf-small);color:var(--pf-text-soft);line-height:1.65}

.pf-product-accordion{margin-top:var(--pf-s6);border-top:1px solid var(--pf-line)}
.pf-accordion-item{border-bottom:1px solid var(--pf-line)}
.pf-accordion-heading{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit}
.pf-accordion-trigger{
  width:100%;display:flex;justify-content:space-between;align-items:center;
  padding:var(--pf-s4) var(--pf-s1);font-weight:600;text-align:left;
}
.pf-accordion-trigger svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;transition:transform .25s var(--pf-ease)}
.pf-accordion-item.pf-is-open .pf-accordion-trigger svg{transform:rotate(45deg)}
.pf-accordion-panel{
  max-height:0;overflow:hidden;
  transition:max-height .3s var(--pf-ease);
  font-family:var(--pf-font-text);
  font-size:var(--pf-ui);color:var(--pf-text-soft);line-height:1.7;
}
.pf-accordion-panel > div{padding:0 var(--pf-s1) var(--pf-s5)}
.pf-accordion-panel h3{margin:0 0 var(--pf-s2);font-family:var(--pf-font);color:var(--pf-text);font-size:var(--pf-tiny);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.pf-accordion-panel ul{margin:0 0 var(--pf-s4);padding-left:var(--pf-s4)}
.pf-accordion-panel ul:last-child{margin-bottom:0}

.pf-accordion-panel iframe.pf-accordion-video,
.pf-accordion-panel video.pf-accordion-video{
  width:100%;
  aspect-ratio:16/9;
  max-height:100%;
  border:0;
  display:block;
  border-radius:var(--pf-radius);
}

.pf-site-footer{background:var(--pf-bg)}
.pf-site-footer ul{
  max-width:var(--pf-maxw);margin:0 auto;padding:var(--pf-s5);
  list-style:none;display:flex;flex-wrap:wrap;gap:var(--pf-s5);
  font-size:var(--pf-tiny);color:var(--pf-text-soft);
  justify-content:center;font-weight:500;
}
.pf-site-footer a:hover{text-decoration:underline}

/* ---------- specification table ---------- */
.pf-spec{margin:0}
.pf-spec__group{margin-bottom:var(--pf-s5)}
.pf-spec__group:last-child{margin-bottom:0}
.pf-spec__legend{
  display:block;width:100%;
  font-family:var(--pf-font);
  font-size:var(--pf-tiny);font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--pf-text-soft);
  padding-bottom:var(--pf-s2);margin-bottom:var(--pf-s2);
  border-bottom:1px solid var(--pf-line);
}
.pf-spec__table{width:100%;border-collapse:collapse}
.pf-spec__table th,.pf-spec__table td{
  text-align:left;vertical-align:top;
  padding:var(--pf-s2) 0;
  border-bottom:1px solid var(--pf-line);
  font-size:var(--pf-small);line-height:1.5;
}
.pf-spec__table tr:last-child th,
.pf-spec__table tr:last-child td{border-bottom:0}
.pf-spec__table th{font-family:var(--pf-font);font-weight:400;color:var(--pf-text-soft);width:52%;padding-right:var(--pf-s4)}
.pf-spec__table td{font-weight:500;color:var(--pf-text)}
.pf-spec__note{margin:var(--pf-s4) 0 0;font-size:var(--pf-tiny);color:var(--pf-text-faint);line-height:1.6}

/* ---------- related-products carousel ---------- */
.pf-related-products{
  max-width:var(--pf-maxw);margin:0 auto;
  padding:var(--pf-s2) var(--pf-s5) var(--pf-s11);
}
.pf-related-products-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--pf-s4);margin-bottom:var(--pf-s4);
}
.pf-related-products-title{font-size:var(--pf-h3);font-weight:600;margin:0;letter-spacing:-.01em}
.pf-carousel-nav{display:flex;gap:var(--pf-s2)}
.pf-carousel-nav button{
  width:36px;height:36px;border-radius:50%;
  border:1px solid var(--pf-line);
  display:grid;place-items:center;
  transition:background .15s var(--pf-ease),opacity .15s var(--pf-ease);
}
.pf-carousel-nav button:hover{background:var(--pf-hover)}
.pf-carousel-nav button[disabled]{opacity:.35;cursor:default}
.pf-carousel-nav svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.pf-carousel-track{
  cursor:grab;
  display:flex;gap:var(--pf-s5);min-width:0;max-width:100%;
  overflow-x:auto;scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  padding-bottom:var(--pf-s2);
  scrollbar-width:none;
}
.pf-carousel-track::-webkit-scrollbar{display:none}
.pf-carousel-track.pf-is-dragging{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none}
.pf-carousel-track.pf-is-dragging a{pointer-events:none}
.pf-product-card{flex:0 0 clamp(260px,30%,360px);scroll-snap-align:start;display:block}

.pf-product-card__img{
  position:relative;overflow:hidden;
  aspect-ratio:1/1;border-radius:var(--pf-radius);
  background:radial-gradient(circle at 50% 42%,var(--pf-hover),var(--pf-bg) 70%);
  display:grid;place-items:center;
  color:var(--pf-text-faint);font-size:var(--pf-tiny);letter-spacing:.06em;text-transform:uppercase;
}
.pf-product-card__img img{
  position:absolute;top:0;left:0;
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  transition:opacity .3s var(--pf-ease);
}
.pf-product-card__img .pf-product-card__img-primary{opacity:1}
.pf-product-card__img .pf-product-card__img-secondary{opacity:0}

.pf-product-card:hover .pf-product-card__img-primary{opacity:0}
.pf-product-card:hover .pf-product-card__img-secondary{opacity:1}
.pf-product-card__name{margin-top:var(--pf-s4);font-weight:500;font-size:var(--pf-ui)}
.pf-product-card__meta{margin-top:var(--pf-s1);font-size:var(--pf-small);color:var(--pf-text-soft)}

/* ---------- category archive — page wrapper ---------- */
.pf-category{
  max-width:var(--pf-maxw);margin:0 auto;
  padding:var(--pf-s8) var(--pf-s5) var(--pf-s11);
}
.pf-category__head{margin-bottom:var(--pf-s9)}

.pf-breadcrumb{
  display:flex;flex-wrap:wrap;gap:var(--pf-s2);
  font-size:var(--pf-tiny);color:var(--pf-text-faint);
  margin-bottom:var(--pf-s3);
}
.pf-breadcrumb a:hover{text-decoration:underline;text-underline-offset:3px}

.pf-category__title{
  font-size:var(--pf-h1);font-weight:600;
  letter-spacing:-.01em;margin:0 0 var(--pf-s3);
}
.pf-category__intro{
  font-family:var(--pf-font-text);
  font-size:var(--pf-ui);color:var(--pf-text-soft);
  line-height:1.65;margin:0;max-width:62ch;
}

.pf-category__head > .pf-category__intro{
  margin-left:0 !important;
  margin-right:auto !important;
}

.pf-category__intro p{margin:0}
.pf-category__intro p + p{margin-top:var(--pf-s3)}

/* ---------- product groups (shortcode output) ---------- */
.pf-group{
  margin-bottom:var(--pf-s10);
  scroll-margin-top:calc(var(--pf-header-h) + var(--pf-s5));
}
.pf-group:last-child{margin-bottom:0}

.pf-group__head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:var(--pf-s4);margin-bottom:var(--pf-s5);
}
.pf-group__title{font-size:var(--pf-h3);font-weight:600;margin:0;letter-spacing:-.01em}
.pf-group__count{font-size:var(--pf-small);color:var(--pf-text-faint);white-space:nowrap}

.pf-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:var(--pf-s5) var(--pf-s4);
}

.pf-tile{display:block}
.pf-tile__media{
  position:relative;overflow:hidden;
  aspect-ratio:1/1;border-radius:var(--pf-radius);
  background:radial-gradient(circle at 50% 42%,var(--pf-hover),var(--pf-bg) 70%);
  display:grid;place-items:center;
  color:var(--pf-text-faint);font-size:var(--pf-tiny);
  letter-spacing:.06em;text-transform:uppercase;
}
.pf-tile__media img{
  position:absolute;top:0;left:0;
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  transition:opacity .3s var(--pf-ease);
}
.pf-tile__img-primary{opacity:1}
.pf-tile__img-secondary{opacity:0}

.pf-tile:hover .pf-tile__img-primary{opacity:0}
.pf-tile:hover .pf-tile__img-secondary{opacity:1}

.pf-tile__name{margin-top:var(--pf-s3);font-weight:600;line-height:1.35}
.pf-tile__price{margin-top:var(--pf-s1);font-size:var(--pf-small);font-weight:400;color:var(--pf-text-soft)}

/* ---------- enquiry card (empty child category) ---------- */
.pf-enquire{
  grid-column:1 / -1;
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--pf-s5);flex-wrap:wrap;
  padding:var(--pf-s5);
  background:var(--pf-hover);
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
}
.pf-enquire__text{
  max-width:56ch;
  font-family:var(--pf-font-text);
  font-size:var(--pf-ui);
  color:var(--pf-text-soft);
  line-height:1.65;
  margin:0;
}
.pf-enquire__text p{margin:0}
.pf-enquire__text p + p{margin-top:var(--pf-s3)}
.pf-enquire__text b,
.pf-enquire__text strong{
  display:block;
  font-family:var(--pf-font);
  color:var(--pf-text);
  margin-bottom:var(--pf-s1);
}
.pf-enquire .pf-cta-button{width:auto}

/* ---------- focus ---------- */
:where(a, button, input, textarea, [tabindex]):focus-visible{
  outline:2px solid var(--pf-text);
  outline-offset:2px;
  border-radius:var(--pf-radius);
}
.pf-cta-button:focus-visible{outline-color:var(--pf-text);outline-offset:3px}
.pf-form-field input:focus-visible,
.pf-form-field textarea:focus-visible{outline-offset:1px}
.pf-search-input:focus-visible{outline:none}
.pf-header-search:focus-within{box-shadow:0 0 0 1px var(--pf-line), var(--pf-shadow)}

/* ---------- responsive ---------- */
@media (min-width:1200px){
  .pf-menu-columns{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (max-width:1180px){
  .pf-primary-nav-link{padding:var(--pf-s2)}
  .pf-header-logo{padding:0 var(--pf-s1)}
}
@media (max-width:820px){
  .pf-search-input,
  .pf-form-field input,
  .pf-form-field textarea{font-size:16px}
  .pf-primary-nav{display:none}
  .pf-mega-menu{display:none}
  .pf-header-actions{margin-left:auto}
}
@media (min-width:821px){
  .pf-drawer-level.pf-drawer-level-root > .pf-drawer-row,
  .pf-drawer-level.pf-drawer-level-root > .pf-drawer-divider:first-of-type{display:none}
}
@media (max-width:900px){
  .pf-product{
    grid-template-columns:minmax(0,1fr);
    gap:0;
    padding:0 0 var(--pf-s8);
  }
  .pf-product-gallery{
    position:static;
    gap:0;
    margin:0;
  }

  .pf-gallery-track,
  .pf-gallery-slide,
  .pf-gallery-thumb{border-radius:0}

  .pf-product-info{padding:var(--pf-s6) var(--pf-s4) 0}

  .pf-gallery-thumbs{padding:var(--pf-s3) var(--pf-s4) 0}
  .pf-thumb-track{gap:var(--pf-s2)}
  .pf-gallery-thumb{flex-basis:calc((100% - 3 * var(--pf-s2)) / 4)}

  .pf-gallery-nav--prev{left:var(--pf-s4)}
  .pf-gallery-nav--next{right:var(--pf-s4)}
  .pf-gallery-dots{bottom:var(--pf-s5)}

  .pf-related-products{padding:0 var(--pf-s4) var(--pf-s7)}
  .pf-product-card{flex:0 0 72%}

  .pf-category{padding:var(--pf-s5) var(--pf-s4) var(--pf-s7)}
  .pf-category__head{margin-bottom:var(--pf-s6)}

  .pf-group{margin-bottom:var(--pf-s8)}
  .pf-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--pf-s5) var(--pf-s3)}

  .pf-enquire .pf-cta-button{width:100%}
}
@media (max-width:520px){
  .pf-form-row{grid-template-columns:1fr}
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .pf-gallery-track,.pf-thumb-track,.pf-carousel-track{scroll-behavior:auto}
  .pf-mobile-drawer,.pf-cart-drawer{transition:none}
  .pf-page-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* ---------- product CTA: CF7 forms inside slide-down panels ---------- */

.pf-request-form-inner .wpcf7{margin:0}
.pf-request-form-inner .wpcf7-form{display:grid;gap:var(--pf-s3)}
.pf-request-form-inner .wpcf7-form > p{margin:0;display:grid;gap:var(--pf-s2)}
.pf-request-form-inner .wpcf7-form label{
  display:block;font-size:var(--pf-tiny);color:var(--pf-text-soft);
}
.pf-request-form-inner .wpcf7-form-control-wrap{display:block}

.pf-request-form-inner .wpcf7 .pf-cf7-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--pf-s3);
}

.pf-request-form-inner .wpcf7 .pf-cf7-actions{
  display:flex;
  align-items:center;
  gap:var(--pf-s3);
  flex-wrap:wrap;
}

.pf-request-form-inner .wpcf7 .pf-cf7-actions .wpcf7-spinner{
  order:2;
  margin-left:auto;
}

.pf-request-form-inner .wpcf7 .pf-cf7-actions > p{margin:0;display:block}

.pf-request-form-inner input[type="text"],
.pf-request-form-inner input[type="email"],
.pf-request-form-inner input[type="tel"],
.pf-request-form-inner input[type="url"],
.pf-request-form-inner input[type="number"],
.pf-request-form-inner input[type="date"],
.pf-request-form-inner select,
.pf-request-form-inner textarea{
  width:100%;font:inherit;font-size:var(--pf-ui);color:var(--pf-text);
  background:var(--pf-bg);
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
  padding:var(--pf-s2) var(--pf-s3);
  transition:border-color .15s var(--pf-ease);
}
.pf-request-form-inner input:focus,
.pf-request-form-inner select:focus,
.pf-request-form-inner textarea:focus{
  outline:none;border-color:var(--pf-text);
}
.pf-request-form-inner textarea{min-height:88px;resize:vertical}

.pf-request-form-inner input[type="submit"]{
  display:inline-block!important;width:auto!important;
  padding:var(--pf-s3) var(--pf-s5);
  border-radius:var(--pf-radius);
  background:var(--pf-brand);color:var(--pf-text);
  border:1px solid transparent;
  font-family:inherit;font-size:var(--pf-ui);font-weight:600;
  line-height:20px;letter-spacing:.02em;
  text-align:center;cursor:pointer;
  transition:opacity .15s var(--pf-ease);
}
.pf-request-form-inner input[type="submit"]:hover{opacity:.85}

.pf-request-form-inner .wpcf7-not-valid-tip{
  display:block;
  margin-top:var(--pf-s1);
  font-size:var(--pf-tiny);
  color:var(--pf-warn);
}
.pf-request-form-inner .wpcf7-not-valid{
  border-color:var(--pf-warn) !important;
}

.pf-request-form-inner .wpcf7-response-output{
  margin:0;
  padding:var(--pf-s2) var(--pf-s3);
  border-radius:var(--pf-radius);
  border:1px solid var(--pf-line);
  background:var(--pf-hover);
  color:var(--pf-text);
  font-size:var(--pf-small);line-height:1.5;
}
.pf-request-form-inner .wpcf7 form.sent .wpcf7-response-output{
  border-color:rgba(26,143,60,.35);
  background:rgba(26,143,60,.06);
  color:var(--pf-success);
}
.pf-request-form-inner .wpcf7 form.failed .wpcf7-response-output,
.pf-request-form-inner .wpcf7 form.spam .wpcf7-response-output,
.pf-request-form-inner .wpcf7 form.aborted .wpcf7-response-output,
.pf-request-form-inner .wpcf7 form.invalid .wpcf7-response-output{
  border-color:rgba(201,138,20,.35);
  background:rgba(201,138,20,.06);
  color:var(--pf-warn);
}

.pf-request-form-inner .wpcf7-spinner{margin:8px auto 0}

@media (max-width:520px){
  .pf-request-form-inner .wpcf7 .pf-cf7-row{grid-template-columns:1fr}
}

#dataSheetForm input[type="submit"]{
  background:var(--pf-hover) !important;
  color:var(--pf-text) !important;
}

/* ---------- cart page ---------- */
.pf-cartpage{
  max-width:var(--pf-maxw);margin:0 auto;
  padding:var(--pf-s8) var(--pf-s5) var(--pf-s10);
}
.pf-cartpage__head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:var(--pf-s4);margin-bottom:var(--pf-s7);
}
.pf-cartpage__title{margin:0}
.pf-cartpage__count{font-size:var(--pf-small);color:var(--pf-text-faint)}

.pf-cartpage__layout{
  display:grid;
  grid-template-columns:minmax(0,1.9fr) minmax(320px,.9fr);
  gap:var(--pf-s7);align-items:start;
}

.pf-cartpage__layout > :first-child{grid-column:1}
.pf-cartpage__layout > :last-child{grid-column:2}

.pf-cartpage__main{min-width:0}

.pf-cartrows{list-style:none;margin:0;padding:0;border-top:1px solid var(--pf-line)}
.pf-cartrow{
  display:grid;grid-template-columns:104px minmax(0,1fr);
  gap:var(--pf-s4);
  padding:var(--pf-s5) 0;border-bottom:1px solid var(--pf-line);
}
.pf-cartrow__media{
  width:104px;aspect-ratio:1/1;align-self:start;border-radius:var(--pf-radius);
  border:1px solid var(--pf-line);overflow:hidden;
  background:radial-gradient(circle at 50% 42%,var(--pf-hover),var(--pf-bg) 70%);
  display:grid;place-items:center;
  font-size:var(--pf-tiny);color:var(--pf-text-faint);
  text-transform:uppercase;letter-spacing:.06em;
}
.pf-cartrow__media img{width:100%;height:100%;object-fit:cover;display:block}

.pf-cartrow__body{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:var(--pf-s3);
}
.pf-cartrow__info{
  min-width:0;
  display:flex;
  flex-direction:column;
  height:100%;
}
.pf-cartrow__name{font-weight:600;line-height:1.35;display:block}
.pf-cartrow__unit{
  margin-top:var(--pf-s1);font-size:var(--pf-small);color:var(--pf-text-soft);
  display:flex;align-items:baseline;gap:var(--pf-s2);flex-wrap:wrap;
}
.pf-cartrow__was{
  color:var(--pf-text-faint);
  text-decoration:line-through;
  text-decoration-thickness:1px;
}
.pf-cartrow__now{color:var(--pf-text);font-weight:500}
.pf-cartrow__controls{
  display:flex;
  align-items:center;
  gap:var(--pf-s4);
  margin-top:auto;
  padding-top:var(--pf-s3);
}
.pf-cartrow__remove{
  font-size:var(--pf-tiny);color:var(--pf-text-soft);
  text-decoration:underline;text-underline-offset:3px;
  padding:var(--pf-s2) var(--pf-s1);margin:calc(var(--pf-s2) * -1) calc(var(--pf-s1) * -1);
}
.pf-cartrow__remove:hover{color:var(--pf-text)}
.pf-cartrow__total{font-weight:600;white-space:nowrap;text-align:right}

.pf-cartpage__foot{margin-top:var(--pf-s5)}
.pf-cartpage__continue{
  font-size:var(--pf-small);font-weight:500;
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;
}

/* ---------- cart page: empty state ---------- */

/* Collapse the two-column layout when the main column is empty.
   :has() means it survives AJAX — no class toggling needed. */
.pf-cartpage__layout:has(.pf-cartpage__empty){
  grid-template-columns:minmax(0,1fr);
}

.pf-cartpage__empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:var(--pf-s4);
  padding:var(--pf-s9) var(--pf-s5);
  min-height:clamp(320px, 55vh, 520px);
  text-align:center;
  background:var(--pf-hover);
  border:1px solid var(--pf-line);
  border-radius:var(--pf-radius);
}

.pf-cartpage__empty-icon{
  display:grid;
  place-items:center;
  width:48px;height:48px;
  border-radius:50%;
  background:var(--pf-bg);
  border:1px solid var(--pf-line);
  margin-bottom:var(--pf-s1);
}
.pf-cartpage__empty-icon svg{
  width:22px;height:22px;
  stroke:var(--pf-brand);
  fill:none;
  stroke-width:1.6;
}

.pf-cartpage__empty-title{
  margin:0;
  font-family:var(--pf-font);
  font-size:var(--pf-h4);
  font-weight:600;
  color:var(--pf-text);
  line-height:1.3;
}

.pf-cartpage__empty-note{
  margin:0;
  max-width:44ch;
  font-family:var(--pf-font-text);
  font-size:var(--pf-small);
  color:var(--pf-text-soft);
  line-height:1.65;
}

.pf-cartpage__empty-actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--pf-s2);
  justify-content:center;
  margin-top:var(--pf-s2);
}
.pf-cartpage__empty-actions .pf-cta-button{
  width:auto;
  display:inline-block;
}

/* Secondary button needs a white surface so it stands off the grey
   panel. Same shape as .pf-cta-button--secondary elsewhere, just a
   different background token. */
.pf-cartpage__empty-actions .pf-cta-button--secondary{
  background:var(--pf-bg);
}

.pf-summary{
  position:sticky;top:calc(var(--pf-header-h) + var(--pf-s5));
  background:var(--pf-hover);
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
  padding:var(--pf-s5);
}
.pf-summary[hidden]{display:none}
.pf-summary__title{font-size:var(--pf-h4);margin:0 0 var(--pf-s4)}
.pf-summary__lines{margin:0 0 var(--pf-s4);display:grid;gap:var(--pf-s2);font-size:var(--pf-small)}
.pf-summary__lines > div{display:flex;justify-content:space-between;gap:var(--pf-s4)}
.pf-summary__lines dt{color:var(--pf-text-soft)}
.pf-summary__lines dd{margin:0;font-weight:500}
.pf-summary__coupon dt,
.pf-summary__coupon dd{color:var(--pf-success)}
.pf-summary__total{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-top:var(--pf-s3);margin-bottom:var(--pf-s4);
  border-top:1px solid var(--pf-line);font-weight:600;
}
.pf-summary__total span:last-child{font-size:var(--pf-h4)}
.pf-summary__note{margin:var(--pf-s3) 0 0;font-size:var(--pf-tiny);color:var(--pf-text-faint);line-height:1.6}

.pf-express{margin-top:var(--pf-s4)}
.pf-express__rule{
  display:flex;align-items:center;gap:var(--pf-s3);
  font-size:var(--pf-tiny);color:var(--pf-text-faint);
  margin-bottom:var(--pf-s3);
}
.pf-express__rule::before,
.pf-express__rule::after{content:"";flex:1 1 auto;height:1px;background:var(--pf-line)}
.pf-express__buttons{display:grid;gap:var(--pf-s2)}
.pf-express__buttons > *{width:100%}

@media (max-width:900px){
  .pf-cartpage{padding:var(--pf-s5) var(--pf-s4) var(--pf-s8)}
  .pf-cartpage__head{margin-bottom:var(--pf-s6)}
  .pf-cartpage__layout{grid-template-columns:minmax(0,1fr);gap:var(--pf-s6)}
  .pf-cartpage__layout > :first-child,
  .pf-cartpage__layout > :last-child{grid-column:auto}
  .pf-cartrow{grid-template-columns:72px minmax(0,1fr);gap:var(--pf-s3)}
  .pf-cartrow__media{width:72px}
  .pf-cartrow__unit{font-size:var(--pf-tiny)}
  .pf-cartrow__controls{gap:var(--pf-s3);margin-top:auto;padding-top:var(--pf-s3)}
  .pf-summary{position:static}
}

/* ---------- checkout (page wrapper only) ---------- */
.pf-checkout{
  max-width:var(--pf-maxw);margin:0 auto;
  padding:var(--pf-s8) var(--pf-s5) var(--pf-s11);
}
.pf-checkout__head{margin-bottom:var(--pf-s7)}
.pf-checkout__title{margin:0 0 var(--pf-s2)}
.pf-checkout__intro{
  margin:0;
  font-family:var(--pf-font-text);
  font-size:var(--pf-ui);color:var(--pf-text-soft);
  line-height:1.65;
}

/* ---------- orders page ---------- */
.pf-orders{
  max-width:var(--pf-maxw);margin:0 auto;
  padding:var(--pf-s8) var(--pf-s5) var(--pf-s10);
}
.pf-orders__head{margin-bottom:var(--pf-s7)}
.pf-orders__title{margin:0 0 var(--pf-s2)}
.pf-orders__intro{
  margin:0;
  font-family:var(--pf-font-text);
  font-size:var(--pf-ui);color:var(--pf-text-soft);
  line-height:1.65;
}
.pf-orders__state{
  min-width:0;
  min-height:clamp(320px, 55vh, 520px);
}

/* ---------- status pill ---------- */
.pf-pill--order[data-status="completed"]{
  background:var(--pf-success-tint);color:var(--pf-success);
}
.pf-pill--order[data-status="in-progress"]{
  background:var(--pf-warn-tint);color:var(--pf-warn);
}
.pf-pill--order[data-status="neutral"]{
  background:var(--pf-hover);color:var(--pf-text-soft);
}

/* ---------- notices ---------- */
.pf-order-notice{
  margin:0 0 var(--pf-s4);
  padding:var(--pf-s3) var(--pf-s4);
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
  background:var(--pf-hover);
  font-size:var(--pf-small);line-height:1.5;
}
.pf-order-notice--error{
  border-color:rgba(201,138,20,.35);
  background:var(--pf-warn-tint);
  color:var(--pf-warn);
}


/* =========================================================================
   State 1 — guest tracking form
   Full-width grey panel with vertically-centered content, matching the
   empty-orders state. The form fields inside stay capped at 420px so
   they're readable at any viewport width.
   ========================================================================= */
.pf-order-track,
.pf-order-not-found,
.pf-order-rate-limited{
  min-height:clamp(320px, 55vh, 520px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:var(--pf-s4);
  padding:var(--pf-s9) var(--pf-s5);
  background:var(--pf-hover);
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
  text-align:center;
}

/* Every direct child gets a readable max width and stays centered */
.pf-order-track > *,
.pf-order-not-found > *,
.pf-order-rate-limited > *{
  width:100%;
  max-width:420px;
}

.pf-order-track__title{
  font-size:var(--pf-h4);font-weight:600;
  margin:0;
}
.pf-order-track__intro{
  font-family:var(--pf-font-text);
  font-size:var(--pf-small);color:var(--pf-text-soft);
  line-height:1.6;margin:0;
}

/* Not-found + rate-limited content — same text treatment as the track form */
.pf-order-not-found__text,
.pf-order-rate-limited__text{
  margin:0;
  font-family:var(--pf-font-text);
  font-size:var(--pf-ui);
  color:var(--pf-text-soft);
  line-height:1.65;
}

/* The button in the not-found panel is narrower than a full-width CTA */
.pf-order-not-found .pf-cta-button{
  width:auto;
  display:inline-block;
}

/* Form fields are left-aligned within the centered column */
.pf-order-track .pf-form-field{
  margin:0;
  text-align:left;
}
.pf-order-track .pf-cta-button{width:100%}
.pf-order-track .pf-order-notice{
  margin:0;
  text-align:left;
}

/* =========================================================================
   State 2 — order list
   ========================================================================= */
.pf-orders-list{
  list-style:none;margin:0;padding:0;
  display:grid;gap:var(--pf-s4);
}
.pf-order-card{
  display:grid;
  gap:var(--pf-s4);
  padding:var(--pf-s5);
  background:var(--pf-bg);
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
  transition:border-color .15s var(--pf-ease);
}
.pf-order-card:hover{border-color:var(--pf-text-soft)}

.pf-order-card__head{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:var(--pf-s4);
  padding-bottom:var(--pf-s4);
  border-bottom:1px solid var(--pf-line);
}
.pf-order-card__number{
  font-size:var(--pf-h4);font-weight:600;
  letter-spacing:-.01em;line-height:1.3;
}
.pf-order-card__date{
  margin-top:var(--pf-s1);
  font-size:var(--pf-small);color:var(--pf-text-faint);
}

.pf-order-card__body{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:var(--pf-s4);
  align-items:center;
}
.pf-order-card__thumbs{
  display:flex;
  gap:var(--pf-s2);
}
.pf-order-card__thumb{
  width:56px;height:56px;
  border-radius:var(--pf-radius);
  border:1px solid var(--pf-line);overflow:hidden;
  background:radial-gradient(circle at 50% 42%,var(--pf-hover),var(--pf-bg) 70%);
  display:grid;place-items:center;
  flex:0 0 auto;
}
.pf-order-card__thumb img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.pf-order-card__items{
  font-size:var(--pf-small);color:var(--pf-text-soft);line-height:1.5;
}
.pf-order-card__items b{
  display:block;font-weight:600;color:var(--pf-text);
  font-size:var(--pf-ui);
}
.pf-order-card__qty{
  font-weight:400;
  color:var(--pf-text-soft);
  margin-left:2px;
}

.pf-order-card__foot{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--pf-s4);
  padding-top:var(--pf-s4);
  border-top:1px solid var(--pf-line);
}
.pf-order-card__total{
  font-size:var(--pf-h4);font-weight:600;
}
.pf-order-card__total small{
  display:block;font-size:var(--pf-tiny);font-weight:400;
  color:var(--pf-text-faint);margin-bottom:2px;
}
.pf-order-card__foot .pf-cta-button{
  width:auto;padding:var(--pf-s2) var(--pf-s5);
}

/* ---------- pagination ---------- */
.pf-orders-pagination{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--pf-s4);
  margin-top:var(--pf-s6);
}
.pf-orders-pagination .pf-cta-button{
  width:auto;padding:var(--pf-s2) var(--pf-s5);
}
.pf-orders-pagination__info{
  font-size:var(--pf-small);color:var(--pf-text-faint);
}

/* ---------- empty state ---------- */
.pf-orders-empty{
  padding:var(--pf-s9) var(--pf-s5);
  min-height:clamp(320px, 55vh, 520px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:var(--pf-hover);
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
}

.pf-orders-empty__message{
  margin:0 0 var(--pf-s3);
  font-size:var(--pf-h4);font-weight:600;
}
.pf-orders-empty__note{
  margin:0 auto var(--pf-s5);
  max-width:56ch;
  font-family:var(--pf-font-text);
  font-size:var(--pf-small);color:var(--pf-text-soft);
  line-height:1.6;
}
.pf-orders-empty .pf-cta-button{width:auto;display:inline-block}

/* =========================================================================
   State 3 — order detail
   ========================================================================= */
.pf-order-detail__meta{
  display:flex;align-items:center;gap:var(--pf-s3);flex-wrap:wrap;
  margin-top:var(--pf-s3);
  font-size:var(--pf-small);color:var(--pf-text-faint);
}

.pf-order-detail{
  display:grid;
  grid-template-columns:minmax(0,1.9fr) minmax(320px,.9fr);
  gap:var(--pf-s7);
  align-items:start;
}
.pf-order-detail__main{min-width:0}

.pf-order-detail__section{margin-bottom:var(--pf-s7)}
.pf-order-detail__section:last-child{margin-bottom:0}
.pf-order-detail__section h2{
  font-size:var(--pf-h4);font-weight:600;
  margin:0 0 var(--pf-s4);
  padding-bottom:var(--pf-s3);
  border-bottom:1px solid var(--pf-line);
}

.pf-order-items{list-style:none;margin:0;padding:0}
.pf-order-item{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  gap:var(--pf-s4);align-items:center;
  padding:var(--pf-s4) 0;
  border-bottom:1px solid var(--pf-line);
}
.pf-order-item:first-child{padding-top:0}
.pf-order-item:last-child{border-bottom:0;padding-bottom:0}
.pf-order-item__media{
  width:72px;aspect-ratio:1/1;
  border-radius:var(--pf-radius);
  border:1px solid var(--pf-line);overflow:hidden;
  background:radial-gradient(circle at 50% 42%,var(--pf-hover),var(--pf-bg) 70%);
  display:grid;place-items:center;
}
.pf-order-item__media img{
  width:100%;height:100%;object-fit:cover;display:block;
}
/* The media anchor must fill the tile so the whole thumbnail is clickable */
.pf-order-item__media a{
  display:block;
  width:100%;height:100%;
  line-height:0;
}
.pf-order-item__info{min-width:0}
.pf-order-item__name{font-weight:600;line-height:1.35;display:block}
.pf-order-item__name a{
  color:inherit;
  text-decoration:none;
}
.pf-order-item__name a:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}
.pf-order-item__name a:focus-visible{
  outline:2px solid var(--pf-text);
  outline-offset:2px;
  border-radius:var(--pf-radius);
}
.pf-order-item__qty{
  margin-top:var(--pf-s1);
  font-size:var(--pf-small);color:var(--pf-text-soft);
}
.pf-order-item__total{
  font-weight:600;white-space:nowrap;text-align:right;
}

.pf-order-addresses{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--pf-s5);
}
.pf-order-address{
  font-style:normal;
  font-family:var(--pf-font-text);
  font-size:var(--pf-small);color:var(--pf-text-soft);
  line-height:1.7;
}
.pf-order-address b{
  display:block;font-family:var(--pf-font);
  font-weight:600;color:var(--pf-text);
  margin-bottom:var(--pf-s1);
  font-size:var(--pf-ui);
}
.pf-order-address a{text-decoration:underline;text-underline-offset:3px}

.pf-order-note{
  font-family:var(--pf-font-text);
  font-size:var(--pf-small);color:var(--pf-text-soft);
  line-height:1.7;
  margin:0 0 var(--pf-s4);
}
.pf-order-note:last-child{margin-bottom:0}
.pf-order-note p{margin:0}

.pf-order-detail__summary{
  position:sticky;
  top:calc(var(--pf-header-h) + var(--pf-s5));
  background:var(--pf-hover);
  border:1px solid var(--pf-line);border-radius:var(--pf-radius);
  padding:var(--pf-s5);
}
.pf-order-detail__summary h2{
  font-size:var(--pf-h4);font-weight:600;
  margin:0 0 var(--pf-s4);
}
.pf-order-detail__summary dl{
  margin:0 0 var(--pf-s4);
  display:grid;gap:var(--pf-s2);
  font-size:var(--pf-small);
}
.pf-order-detail__summary dl > div{
  display:flex;justify-content:space-between;gap:var(--pf-s4);
}
.pf-order-detail__summary dt{color:var(--pf-text-soft)}
.pf-order-detail__summary dd{margin:0;font-weight:500}
.pf-order-detail__total{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-top:var(--pf-s3);margin-bottom:var(--pf-s4);
  border-top:1px solid var(--pf-line);font-weight:600;
}
.pf-order-detail__total dt{margin:0}
.pf-order-detail__total dd{font-size:var(--pf-h4);margin:0}
.pf-order-detail__actions{display:grid;gap:var(--pf-s2)}

/* ---------- orders mobile ---------- */
@media (max-width:900px){
  .pf-orders{padding:var(--pf-s5) var(--pf-s4) var(--pf-s8)}
  .pf-orders__head{margin-bottom:var(--pf-s6)}

  .pf-order-track{max-width:none}

  .pf-order-detail{
    grid-template-columns:minmax(0,1fr);
    gap:var(--pf-s6);
  }
  .pf-order-detail__summary{position:static}
  .pf-order-addresses{grid-template-columns:1fr}
  .pf-order-item{
    grid-template-columns:56px minmax(0,1fr) auto;
    gap:var(--pf-s3);
  }
  .pf-order-item__media{width:56px}

  .pf-orders-pagination{flex-wrap:wrap}
  .pf-orders-pagination .pf-cta-button{width:100%}
  .pf-orders-pagination__info{order:-1;width:100%;text-align:center}
}

@media (max-width:480px){
  .pf-order-card__head{flex-wrap:wrap}
  .pf-order-card__number{font-size:var(--pf-h5)}
  .pf-order-card__foot{flex-wrap:wrap}
  .pf-order-card__foot .pf-cta-button{width:100%}
}

/* ---------- order received page ---------- */
.pf-order-received{min-width:0}

.pf-order-payment{
  font-family:var(--pf-font-text);
  font-size:var(--pf-ui);
  color:var(--pf-text);
  line-height:1.65;
}