/* =====================================================================
   KREVO-FUNNEL — account menu, customer dashboard, slim checkout, popup
   Design-system tokens only. Loaded after krevo-ds.css.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. Account control in the DS navbar
   --------------------------------------------------------------------- */
.krevo-acct{position:relative;flex-shrink:0}
.krevo-acct__btn{list-style:none;display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 12px;border-radius:var(--radius-round);
  background:transparent;border:1px solid var(--border-default);color:var(--text-body);cursor:pointer;
  font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--type-badge);transition:var(--transition-base);white-space:nowrap}
.krevo-acct__btn::-webkit-details-marker{display:none}
.krevo-acct__btn:hover,.krevo-acct[open] .krevo-acct__btn{color:var(--text-accent);border-color:var(--border-accent-ghost);background:rgba(204,228,4,0.06)}
.krevo-acct__label{max-width:120px;overflow:hidden;text-overflow:ellipsis}
.krevo-acct__caret{font-size:9px;opacity:.7;transition:transform var(--dur-base) var(--ease-standard)}
.krevo-acct[open] .krevo-acct__caret{transform:rotate(180deg)}

.krevo-acct__menu{position:absolute;top:calc(100% + 10px);right:0;min-width:236px;z-index:500;
  background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);
  box-shadow:0 18px 44px rgba(0,0,0,.5);padding:6px;display:flex;flex-direction:column;gap:1px;
  animation:krevo-acct-in var(--dur-base) var(--ease-standard)}
@keyframes krevo-acct-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.krevo-acct__head{padding:10px 12px 8px;border-bottom:1px solid var(--border-soft);margin-bottom:4px;display:flex;flex-direction:column;gap:2px}
.krevo-acct__hi{font-family:var(--font-body);font-size:var(--type-micro);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.08em}
.krevo-acct__head strong{font-family:var(--font-body);font-size:var(--type-caption);color:var(--text-primary);font-weight:500;word-break:break-all}
.krevo-acct__item{display:block;padding:10px 12px;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:var(--fw-medium);
  font-size:var(--type-label);color:var(--text-body);text-decoration:none;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}
.krevo-acct__item:hover,.krevo-acct__item:focus-visible{background:var(--surface-raised);color:var(--text-primary)}
.krevo-acct__item--out{color:var(--text-subtle);border-top:1px solid var(--border-soft);border-radius:0;margin-top:4px}
.krevo-acct__item--out:hover{color:var(--text-accent)}
/* keep Solace from tinting the menu links blue */
.krevo-acct__item,.krevo-acct__item:link,.krevo-acct__item:visited,.krevo-acct__item:active{color:var(--text-body)}
.krevo-acct__item:hover,.krevo-acct__item:focus{color:var(--text-primary)}

@media(max-width:900px){
  /* Icon-only, borderless, same round hit-area as the wishlist heart and the
     burger next to it. No caret: at this size the arrow crowded the person
     glyph and made the control unreadable. */
  .krevo-acct__label,.krevo-acct__caret{display:none}
  .krevo-acct__btn{width:38px;height:38px;padding:0;gap:0;justify-content:center;
    border-color:transparent;background:transparent;color:var(--text-muted)}
  .krevo-acct__btn svg{width:21px;height:21px}
  .krevo-acct__btn:hover,.krevo-acct[open] .krevo-acct__btn{color:var(--text-accent);
    background:rgba(255,255,255,0.06);border-color:var(--border-accent-ghost)}
  .krevo-acct__menu{position:fixed;left:12px;right:12px;top:auto;min-width:0;width:auto}
}

/* ---------------------------------------------------------------------
   2. Account + checkout surface — DS ground, Solace containment
   --------------------------------------------------------------------- */
body.krevo-funnel-surface{background:var(--bg-page);color:var(--text-primary)}
body.krevo-funnel-surface .wrapper,body.krevo-funnel-surface #mycontent,
body.krevo-funnel-surface #primary,body.krevo-funnel-surface .site-content,
body.krevo-funnel-surface .content-area{background:transparent}
body.krevo-funnel-surface .boxes-header,body.krevo-funnel-surface .nv-page-title-wrap,
body.krevo-funnel-surface .nv-bc-count-wrap,body.krevo-funnel-surface .woocommerce-breadcrumb{display:none!important}
body.krevo-funnel-surface{
  --sol-color-link-button-initial:var(--text-accent);
  --sol-color-link-button-hover:var(--interactive-accent-hover);
  /* Solace paints the WooCommerce/blocks buttons from its own vars — point them at the DS acid. */
  --sol-color-button-initial:var(--interactive-accent);
  --sol-color-button-hover:var(--interactive-accent-hover);
  /* Solace paints the place-order label and the coupon Apply span from
     --sol-checkout-button-color (no "-text"), at a specificity nothing can beat. */
  --sol-checkout-button-color:var(--text-on-accent);
  /* the terms sentence + step descriptions come from this one, at #374151 */
  --sol-checkout-description-color:var(--text-body);
  --sol-cart-button-color:var(--text-on-accent);
  --sol-checkout-button-color-bg:var(--interactive-accent);
  --sol-checkout-button-color-bg-hover:var(--interactive-accent-hover);
  --sol-checkout-button-color-text:var(--text-on-accent);
  --sol-checkout-button-color-text-hover:var(--text-on-accent);
  --sol-cart-button-color-bg:var(--interactive-accent);
  --sol-cart-button-color-bg-hover:var(--interactive-accent-hover);
  /* Solace's woocommerce.min.css paints EVERY my-account h2 / label / th / p / td / price
     from these four vars with !important, so no selector of ours can win. Redefine the
     vars on our own surface instead and its own rules resolve to DS colours. */
  --sol-account-title-color:var(--text-primary);
  --sol-account-title-color-hover:var(--text-accent);
  --sol-account-description-color:var(--text-body);
  --sol-account-price-color:var(--text-primary);
  --sol-account-button-color:var(--text-on-accent);
  --sol-account-button-color-hover:var(--text-on-accent);
  --sol-account-button-color-bg:var(--interactive-accent);
  --sol-account-button-color-bg-hover:var(--interactive-accent-hover);
  /* WooCommerce's own #AA0000 required-asterisk / error red is unreadable on dark. */
  --wc-red:var(--text-danger);
}
body.krevo-funnel-surface h1,body.krevo-funnel-surface h2,body.krevo-funnel-surface h3{
  font-family:var(--font-display);color:var(--text-primary);letter-spacing:-0.02em}
body.krevo-funnel-surface .entry-title,body.krevo-funnel-surface .page-title{
  font-size:var(--type-section);line-height:var(--type-section-lh);margin-bottom:var(--space-8)}

/* ---------------------------------------------------------------------
   3. My Account — navigation + content
   --------------------------------------------------------------------- */
.woocommerce-account .woocommerce{max-width:1060px;margin:0 auto;padding:var(--space-10) var(--gutter-page) var(--space-25)}
.woocommerce-account .woocommerce-MyAccount-navigation{width:26%;float:left}
@media(max-width:900px){.woocommerce-account .woocommerce-MyAccount-navigation{width:100%;float:none}}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
@media(max-width:900px){.woocommerce-account .woocommerce-MyAccount-navigation ul{flex-direction:row;flex-wrap:wrap;gap:6px;margin-bottom:var(--space-8)}}
.woocommerce-account .woocommerce-MyAccount-navigation li{margin:0}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:11px 16px;border-radius:var(--radius-md);
  font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--type-label);color:var(--text-body);
  text-decoration:none;border:1px solid transparent;transition:var(--transition-base)}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{color:var(--text-primary);background:var(--surface-card)}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{background:var(--interactive-accent);color:var(--text-on-accent);font-weight:var(--fw-bold)}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a:link,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a:visited{color:var(--text-on-accent)}

.woocommerce-account .woocommerce-MyAccount-content{width:70%;float:right;background:var(--surface-card);
  border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-8)}
@media(max-width:900px){.woocommerce-account .woocommerce-MyAccount-content{width:100%;float:none;padding:var(--space-6)}}
/* Buttons keep their own dark-on-acid label — this link rule out-specifies
   .krevo-btn--primary, so exclude anything that is a button. */
.woocommerce-account .woocommerce-MyAccount-content a:not(.krevo-btn):not(.button):not(.krevo-owned__btn){color:var(--text-accent)}
/* WooCommerce paints required-field asterisks #AA0000 — invisible on the DS dark. */
.woocommerce-account .required,.woocommerce-account abbr.required,
body.krevo-funnel-surface .required,body.krevo-funnel-surface abbr.required{color:var(--text-danger);border:none;text-decoration:none}
.woocommerce-account .woocommerce-MyAccount-content p,.woocommerce-account .woocommerce-MyAccount-content li{color:var(--text-body);font-family:var(--font-body);font-size:var(--type-body)}
.woocommerce-account .woocommerce::after{content:"";display:table;clear:both}

/* WooCommerce tables (orders, downloads) */
.woocommerce-account .woocommerce table.shop_table{width:100%;border-collapse:collapse;border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden;background:transparent}
.woocommerce-account .woocommerce table.shop_table thead th{background:var(--surface-raised);color:var(--text-body);font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-caption);text-transform:uppercase;letter-spacing:.05em;padding:12px 14px;text-align:left;border:none}
.woocommerce-account .woocommerce table.shop_table td{padding:14px;border-top:1px solid var(--border-soft);color:var(--text-primary);font-family:var(--font-body);font-size:var(--type-body-sm)}
.woocommerce-account .woocommerce table.shop_table .button{background:var(--interactive-accent)!important;color:var(--text-on-accent)!important;border:none!important;border-radius:var(--radius-md)!important;font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-caption);padding:8px 16px!important;box-shadow:none!important}
/* WooCommerce ships .woocommerce-message on a mid-green and .woocommerce-error on a
   mid-red, both with white text (2.3:1 and 4.2:1). Give every notice the DS panel
   treatment and let the top border carry the meaning. */
.woocommerce-account .woocommerce .woocommerce-Message,.woocommerce-account .woocommerce .woocommerce-info,
.woocommerce-account .woocommerce .woocommerce-message,.woocommerce-account .woocommerce .woocommerce-error,
body.krevo-funnel-surface .woocommerce-message,body.krevo-funnel-surface .woocommerce-info,
body.krevo-funnel-surface .woocommerce-error{background:var(--surface-raised)!important;border-top:3px solid var(--interactive-accent);color:var(--text-primary)!important;border-radius:var(--radius-md)}
.woocommerce-account .woocommerce .woocommerce-error,body.krevo-funnel-surface .woocommerce-error{border-top-color:var(--text-danger)}
.woocommerce-account .woocommerce .woocommerce-error li,body.krevo-funnel-surface .woocommerce-error li{color:var(--text-primary)}
.woocommerce-account .woocommerce mark{background:var(--interactive-accent);color:var(--text-on-accent)}

/* account forms (edit-account / edit-address / login / register) */
.woocommerce-account .woocommerce form .form-row label,
.woocommerce-account .woocommerce fieldset legend{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--type-caption);color:var(--text-body)}
.woocommerce-account .woocommerce form .input-text,
.woocommerce-account .woocommerce form select{width:100%;background:var(--bg-page);border:1px solid var(--border-default);border-radius:var(--radius-md);
  color:var(--text-primary);font-family:var(--font-body);font-size:var(--type-body);padding:12px 14px}
.woocommerce-account .woocommerce form .input-text:focus{border-color:var(--border-accent);outline:none}
.woocommerce-account .woocommerce .button,.woocommerce-account .woocommerce button[type="submit"]{
  background:var(--interactive-accent);color:var(--text-on-accent);border:none;border-radius:var(--radius-round);
  font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-label-md);padding:13px 30px;cursor:pointer;transition:var(--transition-base)}
.woocommerce-account .woocommerce .button:hover,.woocommerce-account .woocommerce button[type="submit"]:hover{background:var(--interactive-accent-hover);color:var(--text-on-accent)}
.krevo-reg-check{display:flex;align-items:flex-start;gap:8px;font-family:var(--font-body);font-size:var(--type-caption);color:var(--text-body);margin:6px 0}
.krevo-reg-check input{width:auto;margin-top:2px}

/* ---------------------------------------------------------------------
   4. DS-rendered dashboard panels (my-products / subscriptions / licenses)
   --------------------------------------------------------------------- */
.krevo-acctpage__lede{font-family:var(--font-body);font-size:var(--type-body);color:var(--text-body);margin:0 0 var(--space-8)}
.krevo-acctpage__empty{text-align:center;padding:var(--space-12) var(--space-6);border:1px dashed var(--border-default);border-radius:var(--radius-lg)}
.krevo-acctpage__empty p{color:var(--text-body);margin:0 0 var(--space-6)}

.krevo-owned{display:flex;flex-direction:column;gap:var(--space-4)}
.krevo-owned__card{display:flex;gap:var(--space-5);padding:var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-page)}
@media(max-width:600px){.krevo-owned__card{flex-direction:column;gap:var(--space-3)}}
.krevo-owned__media{flex:0 0 128px;aspect-ratio:4/3;border-radius:var(--radius-md);overflow:hidden;background:var(--surface-media)}
@media(max-width:600px){.krevo-owned__media{flex:none;width:100%}}
.krevo-owned__media img{width:100%;height:100%;object-fit:cover;display:block}
.krevo-owned__body{flex:1;min-width:0}
.krevo-owned__name{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-title);color:var(--text-primary);margin:0 0 4px}
.krevo-owned__meta{font-family:var(--font-body);font-size:var(--type-caption);color:var(--text-subtle);margin:0 0 10px}
.krevo-owned__meta a{color:var(--text-accent)}
.krevo-owned__lic{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-family:var(--font-body);font-size:var(--type-caption);color:var(--text-body);margin:0 0 8px}
.krevo-owned__lic code{font-family:Menlo,Consolas,monospace;font-size:var(--type-caption);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-xs);padding:3px 8px;color:var(--text-accent)}
.krevo-owned__lic em{font-style:normal;color:var(--text-subtle)}
.krevo-owned__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}

.krevo-dtable{width:100%;border-collapse:collapse;border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}
.krevo-dtable th{background:var(--surface-raised);color:var(--text-body);font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-caption);text-transform:uppercase;letter-spacing:.05em;padding:12px 14px;text-align:left}
.krevo-dtable td{padding:13px 14px;border-top:1px solid var(--border-soft);color:var(--text-primary);font-family:var(--font-body);font-size:var(--type-body-sm)}
.krevo-dtable code{font-family:Menlo,Consolas,monospace;font-size:var(--type-caption);color:var(--text-accent)}
@media(max-width:720px){
  .krevo-dtable,.krevo-dtable tbody,.krevo-dtable tr,.krevo-dtable td{display:block;width:100%}
  .krevo-dtable thead{display:none}
  .krevo-dtable tr{border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:12px}
  .krevo-dtable td{border:none;display:flex;justify-content:space-between;gap:16px;text-align:right}
  .krevo-dtable td::before{content:attr(data-label);font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-subtle);text-align:left}
}
.krevo-pill-status{display:inline-block;padding:3px 10px;border-radius:var(--radius-round);font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-badge-xs);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-raised);color:var(--text-body)}
.krevo-pill-status.is-active,.krevo-pill-status.is-delivered{background:var(--interactive-accent);color:var(--text-on-accent)}
.krevo-pill-status.is-cancelled,.krevo-pill-status.is-expired,.krevo-pill-status.is-inactive{background:rgba(255,255,255,.06);color:var(--text-subtle)}

/* ---------------------------------------------------------------------
   5. WooCommerce Blocks checkout — DS ground + slim fields
   --------------------------------------------------------------------- */
.woocommerce-checkout .wc-block-checkout,.woocommerce-checkout .wp-block-woocommerce-checkout{color:var(--text-primary)}
.woocommerce-checkout .wc-block-components-title,
.woocommerce-checkout .wc-block-components-checkout-step__title{font-family:var(--font-display)!important;color:var(--text-primary)!important}
.woocommerce-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-components-select select,
.woocommerce-checkout .wc-block-components-combobox input{background:var(--bg-page)!important;border:1px solid var(--border-default)!important;color:var(--text-primary)!important;border-radius:var(--radius-md)!important}
.woocommerce-checkout .wc-block-components-text-input.is-active label,
.woocommerce-checkout .wc-block-components-text-input input:focus{border-color:var(--border-accent)!important}
/* the country dropdown ships as wc-blocks-components-select (note: not wc-block-),
   so the older selector above never reached it and it rendered as a white box */
.woocommerce-checkout .wc-blocks-components-select__container{
  background:var(--bg-page)!important;border:1px solid var(--border-default)!important;
  border-radius:var(--radius-md)!important}
.woocommerce-checkout .wc-blocks-components-select__select{
  background:transparent!important;color:var(--text-primary)!important;border:0!important}
.woocommerce-checkout .wc-blocks-components-select__select option{background:var(--bg-page);color:var(--text-primary)}
.woocommerce-checkout .wc-blocks-components-select__label{color:var(--text-body)!important}
.woocommerce-checkout .wc-blocks-components-select__expand{fill:var(--text-body)}
.woocommerce-checkout .wc-blocks-components-select__container:focus-within{border-color:var(--border-accent)!important}
.woocommerce-checkout .wc-block-components-checkout-place-order-button,
.woocommerce-checkout .wc-block-components-button:not(.wc-block-components-button--text){
  background:var(--interactive-accent)!important;color:var(--text-on-accent)!important;border-radius:var(--radius-round)!important;
  font-family:var(--font-display)!important;font-weight:var(--fw-bold)!important}
.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover{background:var(--interactive-accent-hover)!important}
/* Setting colour on the button alone is not enough: WooCommerce paints the inner
   .wc-block-components-button__text (and the place-order label) white, so the label
   sat white-on-acid. Paint the descendants too. */
.woocommerce-checkout .wc-block-components-button:not(.wc-block-components-button--text) *,
.woocommerce-checkout .wc-block-components-checkout-place-order-button *{
  color:var(--text-on-accent)!important;fill:var(--text-on-accent)!important}
/* --- Order summary -------------------------------------------------------
   One outlined panel, not a stack of grey slabs. The sidebar and every
   .wc-block-components-totals-wrapper inside it used to carry the same
   --surface-card grey, so each section read as its own floating block with
   dead gaps between them. Now: transparent ground + a single 1px border, and
   the sections are separated by hairlines with real vertical rhythm.        */
.woocommerce-checkout .wc-block-components-sidebar,
.woocommerce-checkout .wc-block-checkout__sidebar{
  background:transparent!important;border:1px solid var(--border-default)!important;
  border-radius:var(--radius-2xl)!important;padding:var(--space-6)!important;
  margin:0 0 var(--space-6)!important}
.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-panel{color:var(--text-primary)}
/* WooCommerce paints this inner block rgba(222,222,222,.49) with a 1px white-20%
   border — the milky grey wash plus the second box drawn inside our own panel. */
.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block{
  background:transparent!important;border:0!important;border-radius:0!important;padding:0!important}

.woocommerce-checkout .wc-block-components-checkout-order-summary__title{
  margin:0!important;padding:0 0 var(--space-5)!important;border:0!important}
/* collapsed (mobile) the title is the whole panel — no trailing gap */
.woocommerce-checkout .wc-block-components-checkout-order-summary__title:not(.is-open){padding-bottom:0!important}
.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text{
  font-family:var(--font-display)!important;font-weight:var(--fw-bold)!important;
  font-size:var(--type-title)!important;letter-spacing:-0.01em;color:var(--text-primary)!important;margin:0}
.woocommerce-checkout .wc-block-components-checkout-order-summary__title-price{color:var(--text-accent)!important}
.woocommerce-checkout .wc-block-components-checkout-order-summary__title-icon svg{fill:var(--text-body)}

.woocommerce-checkout .wc-block-components-totals-wrapper{
  background:transparent!important;border-radius:0!important;margin:0!important;
  padding:var(--space-5) 0!important;
  border-top:1px solid var(--border-default)!important;border-bottom:0!important}
/* the last section sits on the panel's own bottom padding */
.woocommerce-checkout .wc-block-components-checkout-order-summary__content>.wc-block-components-totals-wrapper:last-child{
  padding-bottom:0!important}
/* the item list is the first section — no rule above it, no top padding */
.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-cart-items-block{
  border-top:0!important;padding-top:0!important}
/* WooCommerce always prints the discount / fee / shipping / tax wrappers even
   when they hold nothing; without this they'd draw empty ruled bands. */
.woocommerce-checkout .wc-block-components-totals-wrapper:empty{display:none!important}

/* line item */
.woocommerce-checkout .wc-block-components-order-summary-item{padding:0!important}
.woocommerce-checkout .wc-block-components-order-summary-item+.wc-block-components-order-summary-item{
  margin-top:var(--space-5)!important;padding-top:var(--space-5)!important;
  border-top:1px solid var(--border-soft)!important}
.woocommerce-checkout .wc-block-components-order-summary-item__image{margin-top:0!important}
.woocommerce-checkout .wc-block-components-order-summary-item__image img{
  border-radius:var(--radius-md);background:var(--surface-card);border:1px solid var(--border-default)}
/* the quantity bubble ships white-on-white — the number was invisible */
.woocommerce-checkout .wc-block-components-order-summary-item__quantity{
  background:var(--interactive-accent)!important;color:var(--text-on-accent)!important;
  border-color:var(--interactive-accent)!important;box-shadow:0 0 0 2px var(--bg-page)!important;
  font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-badge-xs)!important}
.woocommerce-checkout .wc-block-components-order-summary-item__quantity *{color:var(--text-on-accent)!important}
.woocommerce-checkout .wc-block-components-order-summary-item__description{
  padding-left:var(--space-4);flex:1 1 auto;min-width:0}
/* stock rules use overflow-wrap:anywhere, so a narrow column breaks mid-word */
.woocommerce-checkout .wc-block-components-product-name,
.woocommerce-checkout .wc-block-components-product-metadata__description p{
  overflow-wrap:break-word!important;word-break:normal!important}
.woocommerce-checkout .wc-block-components-product-name{
  font-family:var(--font-display)!important;font-weight:var(--fw-semibold)!important;
  font-size:var(--type-label)!important;line-height:1.35!important;color:var(--text-primary)!important;margin:0 0 2px!important}
.woocommerce-checkout .wc-block-components-product-metadata__description p{
  color:var(--text-body)!important;font-size:var(--type-caption-sm)!important;line-height:1.5!important;margin:4px 0 0!important}
/* qty is pinned to 1 on this store, so the unit price just duplicated the line total */
.woocommerce-checkout .wc-block-components-order-summary-item__individual-prices{display:none!important}
.woocommerce-checkout .wc-block-components-order-summary-item__total-price{
  font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-primary)}

/* coupon row */
.woocommerce-checkout .wc-block-components-totals-coupon .wc-block-components-panel__button{
  color:var(--text-body)!important;font-size:var(--type-body-sm)!important;font-weight:var(--fw-medium)}
.woocommerce-checkout .wc-block-components-totals-coupon .wc-block-components-panel__button:hover{color:var(--text-accent)!important}
.woocommerce-checkout .wc-block-components-panel__button-icon{fill:currentColor}
.woocommerce-checkout .wc-block-components-totals-coupon__content{margin-top:var(--space-3)}
.woocommerce-checkout .wc-block-components-chip{
  background:var(--surface-card)!important;color:var(--text-primary)!important;
  border:1px solid var(--border-default)!important;border-radius:var(--radius-round)!important}
.woocommerce-checkout .wc-block-components-chip__remove{color:var(--text-body)!important}
.woocommerce-checkout .wc-block-components-chip__remove:hover{color:var(--text-accent)!important}

/* totals rows */
.woocommerce-checkout .wc-block-components-totals-item{
  display:flex;align-items:baseline;gap:var(--space-4);font-size:var(--type-body-sm)}
.woocommerce-checkout .wc-block-components-totals-item__label{color:var(--text-body)!important}
.woocommerce-checkout .wc-block-components-totals-item__value{
  color:var(--text-primary)!important;font-weight:var(--fw-medium)}
.woocommerce-checkout .wc-block-components-totals-discount__coupon-list,
.woocommerce-checkout .wc-block-components-totals-discount .wc-block-components-totals-item__value{color:var(--text-accent)!important}
.woocommerce-checkout .wc-block-components-totals-footer-item{padding:0!important}
.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label{
  font-family:var(--font-display)!important;font-weight:var(--fw-bold)!important;
  font-size:var(--type-title)!important;color:var(--text-primary)!important}
.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-family:var(--font-display)!important;font-weight:var(--fw-bold)!important;
  font-size:var(--type-title-lg)!important;color:var(--text-accent)!important}
.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__description{
  color:var(--text-muted)!important;font-size:var(--type-caption-sm)!important}

/* notices — the stock banner is a pale pink card on a black page */
.woocommerce-checkout .wc-block-components-notice-banner{
  background:var(--surface-card)!important;color:var(--text-primary)!important;
  border:1px solid var(--border-default)!important;border-left-width:3px!important;
  border-radius:var(--radius-md)!important}
.woocommerce-checkout .wc-block-components-notice-banner.is-error{border-left-color:var(--text-danger)!important}
.woocommerce-checkout .wc-block-components-notice-banner.is-success{border-left-color:var(--interactive-accent)!important}
.woocommerce-checkout .wc-block-components-notice-banner.is-error>svg{background:var(--text-danger)!important;fill:var(--text-primary)!important}
.woocommerce-checkout .wc-block-components-notice-banner.is-success>svg{background:var(--interactive-accent)!important;fill:var(--text-on-accent)!important}

/* consent + order-note checkboxes */
.woocommerce-checkout .wc-block-components-checkbox__input{
  accent-color:var(--interactive-accent);background:var(--bg-page)!important;
  border-color:var(--border-default)!important}
.woocommerce-checkout .wc-block-components-checkbox__label{color:var(--text-body)}
/* the tick is an SVG filled black — invisible on the dark box */
.woocommerce-checkout .wc-block-components-checkbox__mark{fill:var(--text-primary)!important}
.woocommerce-checkout .wc-block-components-checkbox__input:checked{border-color:var(--border-accent)!important}
.woocommerce-checkout .wc-block-checkout__terms{color:var(--text-body)}
/* the terms sentence renders in a #374151 slate that is all but invisible on #1E1E1E */
.woocommerce-checkout .wc-block-checkout__terms span{color:var(--text-body)!important}
.woocommerce-checkout .wc-block-checkout__terms a{color:var(--text-accent)!important;text-decoration:underline}

/* WooCommerce keeps its two-column layout down to a ~700px container, which leaves
   the summary ~250px wide and (with its own overflow-wrap:anywhere) wraps product
   names one letter per line. Stack the columns instead, summary on top. */
@media(max-width:1000px){
  .woocommerce-checkout .wc-block-components-sidebar-layout.is-large{display:flex;flex-direction:column}
  .woocommerce-checkout .wc-block-components-sidebar-layout.is-large>.wc-block-components-main,
  .woocommerce-checkout .wc-block-components-sidebar-layout.is-large>.wc-block-components-sidebar{
    width:100%;max-width:none;padding-left:0!important;padding-right:0!important}
  .woocommerce-checkout .wc-block-components-sidebar-layout.is-large>.wc-block-components-sidebar{order:-1}
}
/* --- form rhythm ---------------------------------------------------------
   Below 425px WooCommerce drops the margin on the consent checkboxes, so they
   sat flush against the email field and against each other (measured 0px). */
.woocommerce-checkout .wc-block-components-checkout-step__content .wc-block-components-checkbox{
  margin-top:var(--space-4)!important}
.woocommerce-checkout .wc-block-components-checkbox+.wc-block-components-checkbox{
  margin-top:var(--space-3)!important}
.woocommerce-checkout .wc-block-components-checkbox__label{line-height:1.5}

@media(max-width:768px){
  .woocommerce-checkout .wc-block-components-sidebar,
  .woocommerce-checkout .wc-block-checkout__sidebar{padding:var(--space-5)!important}
  /* a little more air between fields and between the form's steps */
  .woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input,
  .woocommerce-checkout .wc-block-components-address-form .wc-blocks-components-select{margin-top:var(--space-4)!important}
  .woocommerce-checkout .wc-block-components-address-form>:first-child{margin-top:0!important}
  .woocommerce-checkout .wc-block-components-checkout-step{margin-bottom:var(--space-8)!important}
  .woocommerce-checkout .wc-block-checkout__terms{margin:var(--space-2) 0 var(--space-6)!important}
}

/* street-address fields are hidden server-side for digital goods; belt & braces */
.woocommerce-checkout #billing-address_1,.woocommerce-checkout #billing-address_2,
.woocommerce-checkout #billing-city,.woocommerce-checkout #billing-state,
.woocommerce-checkout #billing-postcode,.woocommerce-checkout #billing-company,
.woocommerce-checkout .wc-block-components-address-form__address_1,
.woocommerce-checkout .wc-block-components-address-form__address_2,
.woocommerce-checkout .wc-block-components-address-form__city,
.woocommerce-checkout .wc-block-components-address-form__state,
.woocommerce-checkout .wc-block-components-address-form__postcode,
.woocommerce-checkout .wc-block-components-address-form__company{display:none!important}

/* ---------------------------------------------------------------------
   6. 50%-off signup popup
   --------------------------------------------------------------------- */
.krevo-pop{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;padding:20px}
.krevo-pop[hidden]{display:none}
.krevo-pop__scrim{position:absolute;inset:0;background:rgba(10,10,10,.72);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.krevo-pop__box{position:relative;width:100%;max-width:420px;background:var(--surface-card);border:1px solid var(--border-default);
  border-radius:var(--radius-2xl);padding:var(--space-10) var(--space-8) var(--space-8);box-shadow:0 30px 80px rgba(0,0,0,.6);
  animation:krevo-pop-in var(--dur-slow) var(--ease-standard)}
@keyframes krevo-pop-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.krevo-pop__x{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--text-subtle);font-size:26px;line-height:1;cursor:pointer;padding:4px}
.krevo-pop__x:hover{color:var(--text-primary)}
.krevo-pop__box h2{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:26px;line-height:1.15;letter-spacing:-0.02em;color:var(--text-primary);margin:var(--space-4) 0 var(--space-3)}
.krevo-pop__box p{font-family:var(--font-body);font-size:var(--type-body);color:var(--text-body);margin:0 0 var(--space-6)}
.krevo-pop form{display:flex;flex-direction:column;gap:var(--space-4)}
.krevo-pop label{display:flex;flex-direction:column;gap:6px;font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--type-caption);color:var(--text-body)}
.krevo-pop input[type=text],.krevo-pop input[type=email],.krevo-pop input[type=tel]{background:var(--bg-page);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--type-body);padding:12px 14px}
.krevo-pop input:focus{border-color:var(--border-accent);outline:none}
.krevo-pop__check{flex-direction:row;align-items:flex-start;gap:9px;font-family:var(--font-body);font-weight:400;font-size:var(--type-caption);color:var(--text-body);line-height:1.45}
.krevo-pop__check input{width:16px;height:16px;margin-top:2px;flex-shrink:0;accent-color:var(--krevo-acid)}
.krevo-pop__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.krevo-pop__submit{width:100%;margin-top:var(--space-2)}
.krevo-pop__err{color:#ff6b6b;font-size:var(--type-caption);margin:0}
.krevo-pop__err[hidden]{display:none}
.krevo-pop__pane[hidden]{display:none}
.krevo-pop__pane--done{text-align:center}
.krevo-pop__code{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 var(--space-6)}
.krevo-pop__code code{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:22px;letter-spacing:.12em;color:var(--text-accent);
  background:rgba(204,228,4,.1);border:1px dashed var(--border-accent-ghost);border-radius:var(--radius-md);padding:8px 18px}
@media(max-width:640px){
  .krevo-pop{padding:0;align-items:flex-end}
  .krevo-pop__box{max-width:none;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;padding:var(--space-8) var(--space-6) var(--space-6)}
  .krevo-pop__box h2{font-size:23px}
}

@media(prefers-reduced-motion:reduce){
  .krevo-acct__menu,.krevo-pop__box{animation:none}
}

/* ---------------------------------------------------------------------
   KREVO-AUTH — combined Sign In / Sign Up page (/login/)
   --------------------------------------------------------------------- */
body.krevo-auth-page .krevo-page{display:flex;align-items:flex-start;justify-content:center;padding:var(--space-20) var(--gutter-page) var(--space-25)}
body.krevo-auth-page .krevo-nav__cta{display:none} /* redundant on the login page itself */
.krevo-auth{width:100%;max-width:440px}
.krevo-auth__card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-2xl);
  padding:var(--space-12) var(--space-10);box-shadow:0 24px 60px rgba(0,0,0,.45)}
.krevo-auth__pane[hidden]{display:none}
.krevo-auth__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:32px;line-height:1.1;letter-spacing:-0.02em;
  color:var(--text-primary);margin:0;text-align:center}
.krevo-auth__sub{font-family:var(--font-body);font-size:var(--type-body);color:var(--text-body);margin:var(--space-2) 0 var(--space-8);text-align:center}
.krevo-auth__form{display:flex;flex-direction:column;gap:var(--space-4)}
.krevo-auth__field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-display);font-weight:var(--fw-medium);
  font-size:var(--type-caption);color:var(--text-body)}
/* Solace ships light form styling with high specificity — override hard, scoped. */
body.krevo-auth-page .krevo-auth__field input,
body.krevo-auth-page .krevo-auth__field input[type=text],
body.krevo-auth-page .krevo-auth__field input[type=email],
body.krevo-auth-page .krevo-auth__field input[type=password]{
  background:var(--bg-page)!important;border:1px solid var(--border-default)!important;border-radius:var(--radius-md)!important;
  color:var(--text-primary)!important;font-family:var(--font-body);font-size:var(--type-body);padding:13px 15px;width:100%;box-shadow:none}
body.krevo-auth-page .krevo-auth__field input:focus{border-color:var(--border-accent)!important;outline:none;box-shadow:0 0 0 3px rgba(204,228,4,.12)!important}
body.krevo-auth-page .krevo-auth__field input::placeholder{color:var(--text-subtle)}
.krevo-auth__remember{display:flex;align-items:center;gap:9px;font-family:var(--font-body);font-size:var(--type-caption);color:var(--text-body)}
.krevo-auth__remember input{width:15px;height:15px;flex-shrink:0;accent-color:var(--krevo-acid)}
.krevo-auth__submit{width:100%;margin-top:var(--space-2)}
.krevo-auth__link{display:block;text-align:center;margin-top:var(--space-4);font-family:var(--font-display);
  font-weight:var(--fw-medium);font-size:var(--type-caption);color:var(--text-body);text-decoration:none}
.krevo-auth__link:hover{color:var(--text-accent)}
.krevo-auth__switch{text-align:center;margin:var(--space-8) 0 0;font-family:var(--font-body);font-size:var(--type-caption);color:var(--text-subtle)}
.krevo-auth__switch button{background:none;border:none;cursor:pointer;font-family:var(--font-display);font-weight:var(--fw-bold);
  font-size:var(--type-caption);color:var(--text-accent);padding:0}
.krevo-auth__switch button:hover{color:var(--interactive-accent-hover);text-decoration:underline}
.krevo-auth__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
body.krevo-auth-page .woocommerce-message,body.krevo-auth-page .woocommerce-error,body.krevo-auth-page .woocommerce-info,
body.krevo-auth-page ul.woocommerce-error{list-style:none;margin:0 0 var(--space-6);padding:12px 16px;border-radius:var(--radius-md);
  font-family:var(--font-body);font-size:var(--type-caption);border:1px solid var(--border-default);background:var(--bg-page);color:var(--text-primary)}
body.krevo-auth-page .woocommerce-error,body.krevo-auth-page ul.woocommerce-error{border-color:#7a2b2b;color:#ff8f8f;background:rgba(122,43,43,.14)}
/* Solace overlays an icon glyph on WC notices via ::before — it collides with our padding. */
body.krevo-auth-page .woocommerce-error::before,body.krevo-auth-page .woocommerce-message::before,
body.krevo-auth-page .woocommerce-info::before{display:none!important}
@media(max-width:520px){
  body.krevo-auth-page .krevo-page{padding:var(--space-12) var(--gutter-page) var(--space-20)}
  .krevo-auth__card{padding:var(--space-10) var(--space-6)}
  .krevo-auth__title{font-size:26px}
}

/* ---------------------------------------------------------------------
   KREVO-PRICING — /pricing/ membership plans
   --------------------------------------------------------------------- */
.krevo-pricing{padding:var(--space-20) var(--gutter-page) var(--space-25);max-width:1100px;margin:0 auto}
.krevo-pricing__head{text-align:center;max-width:620px;margin:0 auto var(--space-12)}
.krevo-pricing__head h1{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-section);line-height:1.08;
  letter-spacing:-0.03em;color:var(--text-primary);margin:var(--space-4) 0 0}
.krevo-pricing__head p{font-family:var(--font-body);font-size:var(--type-lead);color:var(--text-body);margin:var(--space-3) 0 0}
.krevo-pricing__active{max-width:620px;margin:0 auto var(--space-10);padding:14px 20px;border-radius:var(--radius-lg);
  background:rgba(204,228,4,.08);border:1px solid var(--border-accent-ghost);text-align:center;
  font-family:var(--font-body);font-size:var(--type-caption);color:var(--text-body)}
.krevo-pricing__active strong{color:var(--text-primary);font-weight:600}
.krevo-pricing__active a{color:var(--text-accent);text-decoration:none;white-space:nowrap}
.krevo-pricing__grid{align-items:stretch;margin-top:var(--space-12)}
.krevo-plan{display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--border-default);
  border-radius:var(--radius-2xl);padding:var(--space-8)}
.krevo-plan--featured{background:var(--surface-accent);border-color:transparent;color:var(--text-on-accent)}
.krevo-plan__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);min-height:22px}
.krevo-plan__label{font-family:var(--font-body);font-weight:var(--fw-bold);font-size:var(--type-micro);letter-spacing:.08em;
  text-transform:uppercase;color:var(--text-body)}
.krevo-plan--featured .krevo-plan__label{color:var(--text-on-accent)}
.krevo-plan__price{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-price-xl);letter-spacing:-0.03em;
  color:var(--text-primary);margin-top:var(--space-3)}
.krevo-plan--featured .krevo-plan__price{color:var(--text-on-accent)}
.krevo-plan__period{font-family:var(--font-body);font-size:var(--type-caption);color:var(--text-subtle);margin-top:2px}
.krevo-plan--featured .krevo-plan__period{color:var(--text-on-accent);opacity:.6}
.krevo-plan__rule{height:1px;background:var(--border-soft);margin:var(--space-6) 0}
.krevo-plan--featured .krevo-plan__rule{background:rgba(30,30,30,.2)}
.krevo-plan__feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3);flex:1}
.krevo-plan__feats li{display:flex;gap:var(--space-2);font-family:var(--font-body);font-size:var(--type-body-sm);color:var(--text-body);line-height:1.45}
.krevo-plan__feats li span{color:var(--text-accent);flex-shrink:0}
.krevo-plan--featured .krevo-plan__feats li,.krevo-plan--featured .krevo-plan__feats li span{color:var(--text-on-accent)}
.krevo-plan__cta{width:100%;margin-top:var(--space-8)}
.krevo-plan--featured .krevo-btn--primary{background:var(--bg-page);color:var(--text-accent)}
.krevo-plan--featured .krevo-btn--primary:hover{background:var(--krevo-black);color:var(--interactive-accent-hover)}
.krevo-plan__cta--have{background:transparent;border:1.5px solid var(--border-default);color:var(--text-subtle);cursor:default}
.krevo-pricing__note{text-align:center;margin:var(--space-12) auto 0;max-width:560px;font-family:var(--font-body);
  font-size:var(--type-caption-sm);color:var(--text-subtle);line-height:1.5}
@media(max-width:1024px){.krevo-pricing__grid .krevo-plan--featured{order:-1}}
@media(max-width:768px){.krevo-pricing{padding:var(--space-12) var(--gutter-page) var(--space-20)}}
