/* ipassas shop: typefaces list and page, playground, quick view, mini cart, donation,
   and WooCommerce cart / checkout / account / order received (classic and blocks) in the D style.
   From design/proposals/typefaces.html and typeface.html. */


.rgt{display:flex;align-items:center;justify-content:flex-end;gap:14px;height:100%}
.cart-btn{font-size:17px;line-height:1;padding:6px 8px 5px;display:flex;align-items:center;gap:8px}
.cart-btn:hover{background:var(--blue);color:#FFFAFA}
.dot{width:9px;height:9px;background:var(--blue);display:inline-block}
.dot[hidden]{display:none}
.cart-btn:hover .dot{background:#FFFAFA}
.lede{font-size:clamp(20px,2.2vw,32px);line-height:1.2;max-width:34ch}
.lede a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.lede a:hover{background:var(--blue);color:#FFFAFA;text-decoration:none}

.tester{position:sticky;top:60px;z-index:30;background:var(--paper);display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,260px);gap:12px 28px;align-items:center;padding-block:12px;border-bottom:1px solid var(--ink)}
.tester .filt{grid-column:1/-1}
.tester input[type=text]{font:inherit;font-size:clamp(18px,1.8vw,24px);color:var(--ink);background:transparent;border:0;border-bottom:2px solid var(--ink);padding:6px 0;width:100%;min-width:0;border-radius:0}
.tester input[type=text]:focus{outline:0;border-bottom-color:var(--blue)}
.size{display:flex;align-items:center;gap:10px}

/* square, straight sliders everywhere on these pages; no numbers next to them */
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:22px;background:transparent;cursor:pointer;margin:0}
input[type=range]::-webkit-slider-runnable-track{height:2px;background:currentColor}
input[type=range]::-moz-range-track{height:2px;background:currentColor}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:currentColor;border:0;border-radius:0;margin-top:-7px}
input[type=range]::-moz-range-thumb{width:16px;height:16px;background:currentColor;border:0;border-radius:0}
input[type=range]:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
input[type=range]:hover::-webkit-slider-thumb{background:var(--blue)}
input[type=range]:hover::-moz-range-thumb{background:var(--blue)}

.trows{list-style:none}
.trow{display:grid;grid-template-columns:minmax(150px,230px) minmax(0,1fr) auto;gap:6px 28px;align-items:center;border-bottom:1px solid var(--ink);padding-block:10px}
.trow[hidden]{display:none}
.trow .nm{display:flex;flex-direction:column;gap:4px;min-width:0}
.trow .nm a{font-size:19px;line-height:1.1;padding:3px 6px 2px;margin-left:-6px;align-self:flex-start}
.trow .nm a:hover{background:var(--blue);color:#FFFAFA}
.trow .new{align-self:flex-start;background:var(--blue);color:#FFFAFA;padding:2px 5px 1px}
.spec{display:block;font-size:var(--sz,56px);line-height:1.3;height:1.3em;white-space:nowrap;overflow:hidden;min-width:0;color:var(--ink)}
.trow .sty{grid-column:2/-1;margin-top:-2px}
.acts{display:flex;gap:4px}
.acts button,.word-btn{font-size:16px;line-height:1;padding:7px 9px 6px;white-space:nowrap}
.acts button:hover,.word-btn:hover{background:var(--blue);color:#FFFAFA}
.acts .add{background:var(--ink);color:var(--paper)}
.acts .add:hover{background:var(--blue)}

/* borderless word groups: styles, cases, presets */
/* every borderless word row gets room: the black block or blue hover never touches the next word */
.filt,.words,.amts{display:flex;flex-wrap:wrap;gap:10px 18px;margin-left:-10px}
.filt button,.words button{font-size:15px;line-height:1;padding:6px 10px 5px;white-space:nowrap}
.words button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.words button:hover{background:var(--blue);color:#FFFAFA}
.sty.words{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.sty.words::-webkit-scrollbar{display:none}
.sty.words button{font-size:13px}

.bundle{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr);gap:24px 48px;align-items:start;background:var(--ink);color:var(--paper);padding:36px var(--gutR) 40px var(--gut);margin-top:48px}
.bundle h2{font-size:clamp(34px,5vw,84px);line-height:1;letter-spacing:-.035em}
.bundle p{max-width:44ch;margin-top:14px}

/* pay what you like: shared by quick view, single page and bundle */
.pay{display:flex;flex-direction:column;gap:14px}
.amts button{font-size:17px;line-height:1;padding:8px 10px 7px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left}
.amts button small{font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.amts button[aria-checked="true"]{background:currentColor}
.amts button[aria-checked="true"] span,.amts button[aria-checked="true"] small{color:var(--bg-of-text,var(--paper))}
.amts button:hover{background:var(--blue);color:#FFFAFA}
.amts button:hover span,.amts button:hover small{color:#FFFAFA}
.other{display:flex;align-items:center;gap:10px}
.other[hidden]{display:none}
.other input{font:inherit;font-size:22px;width:6em;background:transparent;color:inherit;border:0;border-bottom:2px solid currentColor;padding:4px 0;border-radius:0}
.other input:focus{outline:0;border-bottom-color:var(--blue)}
.why{max-width:40ch}
.addbig{align-self:flex-start;font-size:19px;line-height:1;padding:12px 14px 11px;background:var(--blue);color:#FFFAFA}
.addbig:hover{background:var(--ink);color:var(--paper)}
.on-ink .addbig:hover{background:var(--paper);color:var(--ink)}
.on-ink{--bg-of-text:var(--ink)}
.on-ink .amts button[aria-checked="true"]{background:var(--paper)}
.on-ink .amts button[aria-checked="true"] span,.on-ink .amts button[aria-checked="true"] small{color:var(--ink)}

/* quick view */
.qv{position:fixed;inset:0;z-index:90;background:var(--paper);color:var(--ink);overflow-y:auto;overscroll-behavior:contain}
.qv[hidden]{display:none}
.qv-in{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:32px 56px;padding:22px var(--gutR) 48px var(--gut);min-height:100%}
.qv-top{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px}
.qv .x{font-size:16px;padding:7px 9px 6px;background:var(--ink);color:var(--paper)}
.qv .x:hover{background:var(--blue);color:#FFFAFA}
.facts{display:flex;flex-direction:column;gap:14px}
.facts dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 18px;border-top:1px solid var(--ink);padding-top:12px}
.facts a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.facts a:hover{background:var(--blue);color:#FFFAFA;text-decoration:none}

/* playground: tab bar, a ruled control panel, then the stage */
.pg{display:flex;flex-direction:column;min-width:0}
.pg-tabs{display:flex;gap:0 6px;border-bottom:1px solid var(--ink);overflow-x:auto;scrollbar-width:none;margin-left:-10px}
.pg-tabs::-webkit-scrollbar{display:none}
.pg-tabs button{font-size:17px;line-height:1;padding:11px 10px 10px;white-space:nowrap}
.pg-tabs button[aria-selected="true"]{box-shadow:inset 0 -2px 0 var(--ink)}
.pg-tabs button:hover{background:var(--blue);color:#FFFAFA;box-shadow:none}
.pg-panel{border-bottom:1px solid var(--ink);margin-bottom:16px}
.pg-r{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:center;border-top:1px solid var(--ink);padding-block:7px;min-height:44px}
.pg-panel>div:first-child>.pg-r:first-child{border-top:0}
.pg-l{line-height:1.2}
.pg-v{min-width:0}
.pg-v .words{gap:8px 14px}
.pg-v .words button,.pg-v .wbtn{font-size:15px}
.pg-v .wbtn{margin-left:-10px}
.pg-v select{font:inherit;font-size:15px;background:transparent;color:inherit;border:0;border-bottom:1px solid currentColor;padding:4px 0;border-radius:0;max-width:100%}
.pg-hint{letter-spacing:.06em;line-height:1.4}
.words.scrollx{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-right:28px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.words.scrollx::-webkit-scrollbar{display:none}
.wbtn{font-size:15px;line-height:1;padding:6px 10px 5px;margin-left:-10px}
.wbtn:hover{background:var(--blue);color:#FFFAFA}
.words.sm button{font-size:13px}
.pg-view{min-width:0}
[contenteditable]{outline:0;-webkit-user-modify:read-write-plaintext-only}
[contenteditable]:focus-visible{box-shadow:inset 0 -2px 0 var(--blue)}
@media (max-width:820px){.pg-r{grid-template-columns:78px minmax(0,1fr);gap:10px}}
/* type */
.tls{display:flex;flex-direction:column}
.tl{border-bottom:1px solid var(--ink);padding:8px 0 10px}
.tl .tx{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.12}
.tl .tc{display:none;flex-wrap:wrap;gap:8px 16px;align-items:center;padding-top:8px}
.tl:focus-within .tc{display:flex}
.tl .tc input[type=range]{width:160px}
/* poster */
.pst{position:relative;background:var(--ink);color:var(--paper);min-height:clamp(300px,48vw,600px);display:flex;align-items:center;padding:28px clamp(14px,3vw,36px);overflow:hidden;touch-action:none;cursor:ew-resize;user-select:none}
.pst.inv{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.pst .ptx{white-space:pre;line-height:1;width:100%;cursor:text;user-select:text}
/* waterfall */
.wf-src{font-size:clamp(18px,1.8vw,24px);border-bottom:2px solid var(--ink);padding:6px 0;margin-bottom:6px}
.wf p{white-space:nowrap;overflow:hidden;line-height:1.25;border-bottom:1px solid var(--ink);padding-block:4px}
/* glyphs */
.gx{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,1fr);gap:20px 28px;align-items:start}
.gg{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--ink);max-height:520px;overflow:auto}
.gg button{aspect-ratio:1;font-size:24px;line-height:1;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);overflow:hidden}
.gg button:hover,.gg button[aria-selected="true"]{background:var(--blue);color:#FFFAFA}
.gp{position:sticky;top:84px}
.gp-box{position:relative;height:clamp(260px,34vw,440px);overflow:hidden;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.gp-g{position:absolute;left:0;right:0;text-align:center;white-space:nowrap}
.gl-l{position:absolute;left:0;right:0;border-top:1px solid var(--blue)}
.gl-l.b{border-top-width:2px}
.gl-l span{position:absolute;left:0;top:2px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.gp-name{padding-top:8px}
/* features */
.ft{display:flex;flex-direction:column}
.ft-r{border-bottom:1px solid var(--ink);padding:10px 0 12px;display:flex;flex-direction:column;gap:6px}
.ft-h{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}
.ft-ba{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ft-ba p{font-size:clamp(28px,3.6vw,52px);line-height:1.2;overflow-wrap:anywhere}
.ft-note{padding-block:12px}
/* compare */
.cmp-src{font-size:clamp(18px,1.8vw,24px);border-bottom:1px solid var(--ink);padding:6px 0}
.cmp-p{display:grid;grid-template-columns:1fr 1fr}
.cmp-pane{padding:12px 16px 16px 0;min-width:0}
.cmp-pane+.cmp-pane{padding-left:16px;border-left:1px solid var(--ink)}
.words button:disabled{opacity:.35;cursor:not-allowed;background:none;color:inherit}
.cmp-out{font-size:clamp(34px,5vw,80px);line-height:1.1;overflow-wrap:anywhere;margin-top:10px}
@media (max-width:820px){.gx,.cmp-p{grid-template-columns:1fr}.cmp-pane+.cmp-pane{padding-left:0;border-left:0;border-top:1px solid var(--ink)}.gp{position:static}.ft-ba{grid-template-columns:1fr}}

/* mini cart */
.mc{position:fixed;top:0;right:0;bottom:0;z-index:95;width:min(420px,100%);background:var(--ink);color:var(--paper);display:flex;flex-direction:column;padding:18px var(--gutR) 22px 22px;gap:16px;overflow-y:auto}
.mc[hidden]{display:none}
.mc-h{display:flex;justify-content:space-between;align-items:center}
.mc .x{font-size:16px;padding:7px 9px 6px}
.mc .x:hover{background:var(--paper);color:var(--ink)}
.mc ul{list-style:none;border-top:1px solid var(--paper)}
.mc li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--paper)}
.mc li b{font-weight:400;font-size:20px}
.mc li button{font-size:14px;padding:4px 6px 3px;text-decoration:underline}
.mc li button:hover{background:var(--paper);color:var(--ink);text-decoration:none}
.mc-t{display:flex;justify-content:space-between;font-size:22px}
.mc .go{align-self:stretch;text-align:center;font-size:19px;padding:12px 14px 11px;background:var(--blue);color:#FFFAFA}
.mc .go:hover{background:var(--paper);color:var(--ink)}
.mc .empty{opacity:.8}
.mc-don{display:flex;flex-direction:column;gap:8px}
.mc .amts button{font-size:16px}

/* single typeface */
.crumb a{text-decoration:underline;text-underline-offset:3px}
.crumb a:hover{background:var(--blue);color:#FFFAFA;text-decoration:none}
.hero-name{font-size:clamp(72px,16vw,300px);line-height:1.15;white-space:nowrap;overflow:hidden}
.tf-desc{font-size:clamp(18px,1.8vw,26px);line-height:1.25;max-width:46ch}
.tf-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:32px 56px;align-items:start}
.tf-side{position:sticky;top:84px;display:flex;flex-direction:column;gap:28px}
.more{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:0 28px;border-top:1px solid var(--ink)}
.more a{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-bottom:1px solid var(--ink);min-width:0}
@media (min-width:1200px){.more a{padding:20px 24px}}
.more a .s{font-size:40px;line-height:1.25;height:1.25em;white-space:nowrap;overflow:hidden}
.more a:hover{background:var(--blue);color:#FFFAFA}

@media (max-width:820px){
  .tester{top:54px;grid-template-columns:1fr;gap:10px}
  .trow{grid-template-columns:minmax(0,1fr) auto}
  .trow .spec{grid-column:1/-1;order:3}
  .trow .sty{grid-column:1/-1;order:4}
  .bundle,.qv-in,.tf-grid{grid-template-columns:1fr}
  .tf-side{position:static}
  .rgt{gap:6px}
  .cart-btn{font-size:15px;padding:6px 6px 5px}
  .stage{padding:14px 12px 16px}
}

/* ---------- theme additions ---------- */
a.cart-btn{text-decoration:none}
.acts a.add{font-size:16px;line-height:1;padding:7px 9px 6px;white-space:nowrap;background:var(--ink);color:var(--paper)}
.acts a.add:hover{background:var(--blue);color:#FFFAFA}
a.addbig{display:inline-block}
.addbig:disabled{opacity:.6;cursor:progress}

/* mini cart slides in from the right */
.mc{transform:translateX(100%);transition:transform .26s cubic-bezier(.2,.7,.2,1)}
.mc.open{transform:none}
.mc-body{display:flex;flex-direction:column;gap:16px}
.mc li a:hover{background:var(--paper);color:var(--ink)}
.mc li button:disabled{opacity:.5}
@media (prefers-reduced-motion:reduce){.mc{transition:none}}

/* ---------- WooCommerce pages ---------- */
.woo-d .woo-in{margin-top:28px;max-width:1100px}
.woo-d *{border-radius:0!important;box-shadow:none!important}
.woo-d a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.woo-d a:hover{background:var(--blue);color:#FFFAFA;text-decoration:none}
.woo-d h2,.woo-d h3{font-size:clamp(22px,2.2vw,30px);line-height:1.15;font-weight:400;margin:28px 0 12px}
.woo-d p{margin-bottom:10px}
.woo-d .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* notices */
.woocommerce-notices-wrapper:empty{display:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews,.wc-block-components-notice-banner{list-style:none;border:0;border-left:4px solid var(--blue);padding:10px 14px;margin:0 0 18px;background:transparent;color:var(--ink);display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline}
.woocommerce-error{border-left-color:var(--ink)}
.woocommerce-message .button,.woocommerce-info .button{order:2}

/* fields: plain lines, no boxes */
.woo-d .form-row{display:flex;flex-direction:column;gap:6px;margin:0 0 16px}
.woo-d label{font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.woo-d label .required{color:var(--blue);text-decoration:none;border:0}
.woo-d label .optional{text-transform:none;letter-spacing:0}
.woo-d input.input-text,.woo-d input[type=text],.woo-d input[type=email],.woo-d input[type=tel],.woo-d input[type=password],.woo-d input[type=number],.woo-d textarea,.woo-d select,
.select2-container .select2-selection--single{font:inherit;font-size:20px;color:var(--ink);background:transparent;border:0;border-bottom:2px solid var(--ink);padding:6px 0;width:100%;min-width:0;height:auto;line-height:1.3}
.woo-d input:focus,.woo-d textarea:focus,.woo-d select:focus{outline:0;border-bottom-color:var(--blue)}
.woo-d input[type=checkbox],.woo-d input[type=radio]{accent-color:var(--ink);width:18px;height:18px;margin:0 8px 0 0;vertical-align:-3px}
.woo-d .woocommerce-form__label-for-checkbox,.woo-d label.checkbox{font-size:16px;letter-spacing:0;text-transform:none;display:flex;align-items:flex-start;gap:4px;line-height:1.35}
.select2-container .select2-selection--single .select2-selection__rendered{padding:0;color:var(--ink);line-height:1.3}
.select2-container .select2-selection--single .select2-selection__arrow{height:100%;top:0}
.select2-dropdown{border:2px solid var(--ink);background:var(--paper);color:var(--ink)}
.select2-results__option--highlighted[aria-selected],.select2-results__option--highlighted[data-selected]{background:var(--blue)!important;color:#FFFAFA!important}
.select2-search--dropdown .select2-search__field{border:0;border-bottom:2px solid var(--ink);background:transparent;font:inherit}

/* buttons: borderless words; the main action is the blue block */
.woo-d .button,.woo-d button[type=submit],.woo-d a.button{font:inherit;font-size:17px;line-height:1;padding:9px 12px 8px;background:var(--ink);color:var(--paper);border:0;text-decoration:none;display:inline-block;cursor:pointer}
.woo-d .button:hover,.woo-d button[type=submit]:hover{background:var(--blue);color:#FFFAFA}
.woo-d #place_order,.woo-d .checkout-button,.woo-d .woocommerce-form-login__submit,.woo-d .woocommerce-form-register__submit{font-size:20px;padding:13px 16px 12px;background:var(--blue);color:#FFFAFA}
.woo-d #place_order:hover,.woo-d .checkout-button:hover{background:var(--ink);color:var(--paper)}
.woo-d .button:disabled,.woo-d .button.disabled{opacity:.45;cursor:not-allowed}

/* tables: rules only */
.woo-d table.shop_table{width:100%;border-collapse:collapse;border-top:2px solid var(--ink)}
.woo-d table.shop_table th,.woo-d table.shop_table td{text-align:left;padding:12px 12px 12px 0;border-bottom:1px solid var(--ink);vertical-align:middle;font-weight:400}
.woo-d table.shop_table thead th{font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.woo-d table.shop_table tfoot th{font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.woo-d .order-total td,.woo-d .order-total th{font-size:22px;border-bottom:2px solid var(--ink)}
.woo-d .order-total th{font-size:12px}

/* cart */
.woo-d .product-thumbnail{display:none}
.woo-d .product-name a{font-size:22px;text-decoration:none}
.woo-d a.remove{font-size:0;text-decoration:none;display:inline-block;width:26px;height:26px;position:relative}
.woo-d a.remove::before{content:"Remove";font-size:14px;text-decoration:underline;position:absolute;left:0;top:4px}
.woo-d .product-remove{width:88px}
.woo-d .quantity input.qty{width:4em;font-size:18px}
.woo-d td.actions{padding-top:16px}
.woo-d .coupon{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-end;margin-bottom:12px}
.woo-d .coupon .input-text{width:220px}
.woo-d .cart-collaterals{display:flex;justify-content:flex-end;margin-top:28px}
.woo-d .cart_totals{width:min(520px,100%)}
.woo-d .wc-proceed-to-checkout{margin-top:18px}
.woo-d .checkout-button{display:block;text-align:center}
.woo-d .cart-empty{font-size:clamp(20px,2.2vw,30px)}
.woo-d .return-to-shop .button{background:var(--blue)}

/* checkout */
.woo-checkout .woo-in{max-width:none}
.woo-d form.checkout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px clamp(40px,6vw,120px);align-items:start}
.woo-d form.checkout>*{grid-column:1/-1}
/* row 1: express pay and notices; rows 2-3: details on the left, the order beside them */
.woo-d form.checkout>.wcpay-express-checkout-wrapper,.woo-d form.checkout>.woocommerce-NoticeGroup{grid-row:1}
.woo-d form.checkout #customer_details{grid-column:1;grid-row:2 / span 2}
.woo-d form.checkout #order_review_heading{grid-column:2;grid-row:2;margin-top:0}
.woo-d form.checkout #order_review{grid-column:2;grid-row:3}
.woo-d form.checkout .wcpay-express-checkout-wrapper:empty{display:none}
.woo-d #customer_details .col-2:empty,.woo-d .woocommerce-shipping-fields:empty,.woo-d .woocommerce-additional-fields:empty{display:none}
.woo-d .woocommerce-billing-fields h3,.woo-d #order_review_heading{margin-top:0}
.woo-d .woocommerce-form-coupon-toggle,.woo-d .woocommerce-form-login-toggle{margin-bottom:8px}
.woo-d form.checkout_coupon,.woo-d form.woocommerce-form-login{border-top:1px solid var(--ink);padding-top:14px;margin-bottom:18px;max-width:560px}
/* the order: names left, amounts on the right edge, total set large */
.woo-d table.woocommerce-checkout-review-order-table{table-layout:auto}
.woo-d .woocommerce-checkout-review-order-table .product-name{font-size:18px}
.woo-d .woocommerce-checkout-review-order-table .product-total,.woo-d .woocommerce-checkout-review-order-table tfoot td{text-align:right;padding-right:0;font-variant-numeric:tabular-nums;white-space:nowrap}
.woo-d .woocommerce-checkout-review-order-table thead th:last-child{text-align:right;padding-right:0}
.woo-d .woocommerce-checkout-review-order-table td.product-total{font-size:18px}
.woo-d .woocommerce-checkout-review-order-table tfoot td{font-size:18px}
.woo-d .woocommerce-checkout-review-order-table tr.order-total th,.woo-d .woocommerce-checkout-review-order-table tr.order-total td{border-top:2px solid var(--ink);border-bottom:0;padding-top:16px}
.woo-d .woocommerce-checkout-review-order-table tr.order-total td{font-size:clamp(28px,2.6vw,40px);line-height:1}
.woo-d .woocommerce-checkout-review-order-table tr.order-total td strong{font-weight:400}
.woo-d .woocommerce-checkout-review-order-table tr.order-total small,.woo-d .woocommerce-checkout-review-order-table .includes_tax{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-top:6px}
.woo-d .woocommerce-checkout-review-order-table .product-quantity{display:none}
/* donation: its own block in the left column */
.woo-d .ipx-don-co{margin:44px 0 8px}
.woo-d .ipx-don-co h3{margin:0 0 16px}
.woo-d .ipx-don-co .why{font-size:15px;margin-top:12px;max-width:52ch}
.woo-d .ipx-don-co .other input{font-size:22px;width:6em;border-bottom:2px solid currentColor}
.woo-d .ipx-free{font-size:18px;border-left:4px solid var(--blue);padding:6px 12px;margin:10px 0 14px}
/* payment choice: word buttons, the chosen one is the black block */
.woo-d #payment{background:transparent;margin-top:16px}
.woo-d ul.payment_methods{list-style:none;display:flex;flex-wrap:wrap;gap:10px 18px;margin:0 0 14px;padding:0;border:0}
.woo-d ul.payment_methods{position:relative}
.woo-d ul.payment_methods li{list-style:none;display:contents}
.woo-d ul.payment_methods li>input[type=radio]{position:absolute;opacity:0;width:1px;height:1px}
.woo-d ul.payment_methods li>label{display:inline-flex;align-items:center;gap:8px;font-size:17px;letter-spacing:0;text-transform:none;padding:8px 10px 7px;cursor:pointer}
.woo-d ul.payment_methods li>label img{max-height:20px;width:auto}
.woo-d .payment-methods--logos{position:static!important;transform:none!important;margin:0 0 0 6px!important}
.woo-d .payment-methods--logos>div{display:flex;align-items:center;gap:4px}
.woo-d .payment-methods--logos-count{font-size:12px;padding:0 4px}
.woo-d ul.payment_methods li>input:checked+label{background:var(--ink);color:var(--paper)}
.woo-d ul.payment_methods li>label:hover{background:var(--blue);color:#FFFAFA}
.woo-d ul.payment_methods li>input:focus-visible+label{outline:3px solid var(--blue);outline-offset:2px}
.woo-d .payment_box{flex-basis:100%;order:9;padding:8px 0 0;background:transparent;font-size:15px}
.woo-d .payment_box ul.woocommerce-SavedPaymentMethods{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 12px;padding:0}
.woo-d #payment .place-order{padding:0;margin-top:8px}
.woo-d #place_order{width:100%;font-size:20px;padding:16px 20px 15px}
.woo-d .woocommerce-terms-and-conditions-wrapper .required{display:none}
/* new card: no browser fieldset frame; "save card" is a plain inline checkbox */
.woo-d #payment fieldset{border:0;padding:0;margin:0;min-width:0}
.woo-d .woocommerce-SavedPaymentMethods-saveNew{flex-direction:row;align-items:center;gap:10px;margin:16px 0 0}
.woo-d .woocommerce-SavedPaymentMethods-saveNew input[type=checkbox]{margin:0;flex:none}
.woo-d .woocommerce-SavedPaymentMethods-saveNew label{display:inline;margin:0;font-size:15px;line-height:1.35;letter-spacing:0;text-transform:none}
.woo-d .payment_box::before{display:none}
.woo-d .woocommerce-privacy-policy-text{font-size:14px;margin:8px 0 14px}
.woo-d .woocommerce-terms-and-conditions-wrapper{margin-bottom:12px}
.woo-d .ipx-nl{margin:18px 0 6px}

/* order received */
.woo-d .woocommerce-thankyou-order-received{font-size:clamp(22px,2.6vw,36px);line-height:1.2;max-width:34ch;margin-bottom:22px}
.woo-d ul.woocommerce-order-overview{list-style:none;display:flex;flex-wrap:wrap;gap:12px 36px;padding:12px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin:0 0 24px}
.woo-d ul.woocommerce-order-overview li{font-size:12px;letter-spacing:.08em;text-transform:uppercase;display:flex;flex-direction:column;gap:4px}
.woo-d ul.woocommerce-order-overview li strong{font-weight:400;font-size:18px;letter-spacing:0;text-transform:none}
.woo-d .woocommerce-order-downloads .download-file a,.woo-d .woocommerce-table--order-downloads .button{background:var(--blue);color:#FFFAFA;text-decoration:none;padding:9px 12px 8px;display:inline-block}
.woo-d .woocommerce-order-downloads .download-file a:hover{background:var(--ink);color:var(--paper)}
.woo-d .woocommerce-customer-details address{font-style:normal;border:0;padding:0;line-height:1.5}
.woo-d .woocommerce-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}

/* account */
.woo-my-account .woocommerce{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px 48px;align-items:start}
.woo-my-account .woocommerce>.woocommerce-notices-wrapper{grid-column:1/-1}
.woo-my-account .woocommerce:has(> .u-columns),.woo-my-account .woocommerce:has(> form.woocommerce-form-login),.woo-my-account .woocommerce:has(> form.lost_reset_password){display:block}
.woocommerce-MyAccount-navigation ul{list-style:none;display:flex;flex-direction:column;gap:6px;margin-left:-10px;padding:0}
.woocommerce-MyAccount-navigation a{text-decoration:none!important;font-size:17px;padding:6px 10px 5px;display:inline-block}
.woocommerce-MyAccount-navigation .is-active a{background:var(--ink);color:var(--paper)}
.woocommerce-MyAccount-navigation a:hover{background:var(--blue)!important;color:#FFFAFA!important}
.woo-d .u-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px 56px}
.woo-d .woocommerce-form-login,.woo-d .woocommerce-form-register{border:0;padding:0;margin:0}
.woo-d .woocommerce-pagination{margin-top:16px;display:flex;gap:18px}

/* ---------- WooCommerce blocks (cart / checkout pages built with blocks) ---------- */
.ipx-don-blk{margin:0 0 28px;max-width:640px}
.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout{font-family:var(--f);color:var(--ink)}
.wc-block-components-button:not(.is-link){background:var(--blue)!important;color:#FFFAFA!important;border:0!important;border-radius:0!important;font:inherit;font-size:19px;min-height:0;padding:13px 16px 12px}
.wc-block-components-button:not(.is-link):hover{background:var(--ink)!important;color:var(--paper)!important}
.wc-block-components-text-input input,.wc-block-components-combobox .wc-block-components-combobox-control input,.wc-blocks-components-select .wc-blocks-components-select__select,.wc-block-components-textarea{border:0!important;border-bottom:2px solid var(--ink)!important;border-radius:0!important;background:transparent!important;color:var(--ink)!important;font-family:var(--f)!important}
.wc-block-components-text-input.is-active input,.wc-block-components-text-input input:focus{border-bottom-color:var(--blue)!important;box-shadow:none!important}
.wc-block-components-radio-control__option,.wc-block-components-radio-control-accordion-option{border:0!important;box-shadow:none!important;border-radius:0!important}
.wc-block-components-radio-control__option-checked,.wc-block-components-radio-control-accordion-option--checked-option-highlighted{background:var(--ink)!important;color:var(--paper)!important}
.wc-block-components-radio-control__input{accent-color:var(--ink)}
.wc-block-components-checkbox__input[type=checkbox]{border-radius:0!important}
.wc-block-components-checkbox__input[type=checkbox]:checked{background:var(--ink)!important;border-color:var(--ink)!important}
.wc-block-components-totals-wrapper,.wc-block-components-order-summary,.wc-block-cart-items,.wc-block-cart-items td,.wc-block-cart-items th{border-color:var(--ink)!important}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,.wc-block-components-totals-footer-item .wc-block-components-totals-item__label{font-size:22px;font-weight:400}
.wc-block-components-product-name{font-size:20px;text-decoration:none}
.wc-block-components-title.wc-block-components-title{font-size:clamp(20px,2vw,28px);font-weight:400}
.wc-block-components-order-summary-item__image,.wc-block-cart-item__image{display:none}
.wp-block-woocommerce-checkout *,.wp-block-woocommerce-cart *{border-radius:0!important;box-shadow:none!important}

@media (max-width:820px){
  .woo-d form.checkout{grid-template-columns:1fr}
  .woo-d form.checkout #customer_details,.woo-d form.checkout #order_review_heading,.woo-d form.checkout #order_review{grid-column:1;grid-row:auto}
  .woo-my-account .woocommerce{grid-template-columns:1fr}
  .woocommerce-MyAccount-navigation ul{flex-direction:row;flex-wrap:wrap;gap:8px 18px}
  .woo-d table.shop_table_responsive thead{display:none}
  .woo-d table.shop_table_responsive tr{display:block;border-bottom:1px solid var(--ink);padding:8px 0}
  .woo-d table.shop_table_responsive td{display:flex;justify-content:space-between;gap:12px;border:0;padding:4px 0;text-align:right}
  .woo-d table.shop_table_responsive td::before{content:attr(data-title);font-size:12px;letter-spacing:.08em;text-transform:uppercase;text-align:left}
  .woo-d table.shop_table_responsive td.product-remove::before,.woo-d table.shop_table_responsive td.actions::before{display:none}
  .woo-d td.actions{display:block!important}
  .woo-d .coupon .input-text{width:100%}
  .woo-d .cart-collaterals{display:block}
}

/* newsletter shortcode */
.ipx-nlf{display:flex;flex-direction:column;gap:14px;max-width:520px}
.ipx-nlf p{display:flex;flex-direction:column;gap:6px}
.ipx-nlf input[type=email],.ipx-nlf input[type=text]{font:inherit;font-size:20px;color:inherit;background:transparent;border:0;border-bottom:2px solid currentColor;padding:6px 0;border-radius:0}
.ipx-nlf input:focus{outline:0;border-bottom-color:var(--blue)}
.ipx-nlf .ipx-nl-ok label{display:flex;gap:8px;align-items:flex-start;line-height:1.35}
.ipx-nlf input[type=checkbox]{accent-color:var(--ink);width:18px;height:18px;flex:none}
.ipx-nl-msg{border-left:4px solid var(--blue);padding:6px 12px}
.ipx-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
