/* PS Custom Dimensions — product page configurator + cart badges.
   Visual language follows the theme's composite option rows (.composite-radio/.composite-check)
   and 0.5rem button radius. Tokens via theme.json presets with fallbacks. */
.ps-cd { --cd-primary: var(--wp--preset--color--primary, #1265ac); --cd-dark: var(--wp--preset--color--dark, #1e293b); --cd-sec: var(--wp--preset--color--secondary, #475569); --cd-mid: var(--wp--preset--color--mid, #94a3b8); --cd-line: #e2e8f0;
	display: grid; gap: 1rem; margin: 0 0 1.25rem; padding: 1.1rem 1.1rem 1rem; border: 1px solid var(--cd-line); border-left: 4px solid var(--cd-primary); border-radius: 0.75rem; background: #fff; }
.ps-cd__head { display: grid; grid-template-columns: auto 1fr; column-gap: .5rem; align-items: center; }
.ps-cd__head .ps-cd-icon { width: 20px; height: 20px; color: var(--cd-primary); }
.ps-cd__h { margin: 0; font-family: var(--wp--preset--font-family--body, inherit); font-size: 1rem; font-weight: 700; color: var(--cd-dark); }
.ps-cd__lead { grid-column: 1 / -1; margin: .25rem 0 0; font-size: .8125rem; color: var(--cd-sec); }

.ps-cd__group { margin: 0; padding: 0; border: 0; min-width: 0; display: grid; gap: .35rem; }
/* Theme gives form labels a bottom margin (0.7em) — neutralise inside the configurator. */
.ps-cd label { margin: 0 !important; }
.ps-cd__legend { padding: 0; margin-bottom: .2rem; font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--cd-sec); }

/* Option row: theme-style radio / check visuals */
.ps-cd__opt { position: relative; display: grid; width: 100%; margin: 0; grid-template-columns: 20px 1fr; column-gap: .65rem; align-items: start; padding: .55rem .7rem; border: 1.5px solid var(--cd-line); border-radius: 0.5rem; cursor: pointer; background: #fff; transition: border-color .15s, background .15s; }
.ps-cd__opt:hover { border-color: var(--cd-mid); }
.ps-cd__opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ps-cd__opt:has(input:checked) { border-color: var(--cd-primary); background: #f3f8fd; }
.ps-cd__opt:has(input:focus-visible) { outline: 2px solid var(--cd-primary); outline-offset: 2px; }
.ps-cd__radio, .ps-cd__check { width: 20px; height: 20px; margin-top: .1rem; border: 2px solid var(--cd-mid); display: flex; align-items: center; justify-content: center; transition: all .15s; }
.ps-cd__radio { border-radius: 50%; }
.ps-cd__check { border-radius: 4px; }
.ps-cd__opt:has(input:checked) .ps-cd__radio { border-color: var(--cd-primary); }
.ps-cd__opt:has(input:checked) .ps-cd__radio::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--cd-primary); }
.ps-cd__opt:has(input:checked) .ps-cd__check { border-color: var(--cd-primary); background: var(--cd-primary); }
.ps-cd__opt:has(input:checked) .ps-cd__check::after { content: ""; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: translateY(-1px) rotate(45deg); }
.ps-cd__opt-text { font-size: .9rem; color: var(--cd-dark); line-height: 1.35; }
.ps-cd__opt-text small { display: block; font-size: .75rem; color: var(--cd-sec); }

/* Dimension inputs — compact so they sit side by side on desktop */
.ps-cd__dims { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: end; gap: .5rem .5rem; padding: .35rem 0 0 2rem; }
.ps-cd__field { display: grid; gap: .2rem; min-width: 0; margin: 0; font-size: .75rem; color: var(--cd-sec); }
.ps-cd__input { display: flex; align-items: center; min-width: 0; border: 1.5px solid var(--cd-mid); border-radius: 0.5rem; background: #fff; overflow: hidden; }
.ps-cd__input:focus-within { border-color: var(--cd-primary); box-shadow: 0 0 0 3px rgba(18, 101, 172, .15); }
.ps-cd__input input { width: 100%; min-width: 0; padding: .45rem .5rem; border: 0; background: transparent; font-size: .95rem; font-weight: 600; color: var(--cd-dark); -moz-appearance: textfield; }
.ps-cd__input input::-webkit-outer-spin-button, .ps-cd__input input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ps-cd__input input:focus { outline: none; }
.ps-cd__input em { padding: 0 .5rem 0 0; font-style: normal; font-size: .75rem; color: var(--cd-mid); }
.ps-cd__times { padding-bottom: .55rem; color: var(--cd-mid); }
.ps-cd__error { grid-column: 1 / -1; margin: 0; font-size: .8125rem; color: var(--wp--preset--color--sale, #ea580c); }

/* Handedness — segmented control in the theme's 0.5rem button style */
.ps-cd__handedness { display: grid; gap: .4rem; padding: .35rem 0 0 2rem; }
.ps-cd__handedness--always { padding: 0; }
.ps-cd__sublabel { font-size: .75rem; line-height: 1.35; color: var(--cd-sec); }
.ps-cd__sublabel b { color: var(--cd-dark); }
.ps-cd__seg { display: flex; width: 100%; max-width: 16rem; padding: 3px; gap: 3px; border: 1.5px solid var(--cd-line); border-radius: 0.5rem; background: #f8fafc; box-sizing: border-box; }
.ps-cd__seg-btn { position: relative; flex: 1 1 0; min-width: 0; display: flex; justify-content: center; align-items: center; margin: 0; padding: .4rem .5rem; border-radius: 0.375rem; font-size: .875rem; font-weight: 600; line-height: 1.2; color: var(--cd-sec); cursor: pointer; background: transparent; white-space: normal; text-align: center; overflow-wrap: anywhere; transition: background .15s, color .15s; }
.ps-cd__seg-btn:hover { color: var(--cd-dark); }
.ps-cd__seg-btn input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ps-cd__seg-btn:has(input:checked) { background: var(--cd-primary); color: #fff; }
.ps-cd__seg-btn:has(input:focus-visible) { outline: 2px solid var(--cd-primary); outline-offset: 1px; }

.ps-cd__summary { display: block; margin: 0; padding: .55rem .7rem; border-radius: 0.5rem; background: #f3f8fd; font-size: .8125rem; line-height: 1.45; color: var(--cd-dark); }
.ps-cd__summary-title, .ps-cd__summary-details, .ps-cd__summary-price { display: block; }
.ps-cd__summary-title { font-weight: 600; color: var(--cd-primary); }
.ps-cd__summary .ps-cd-icon { display: inline-block; vertical-align: -3px; margin-right: .35rem; color: var(--cd-primary); }
.ps-cd__summary-details { margin-top: .1rem; }
.ps-cd__summary-price { margin-top: .25rem; font-size: 1rem; color: var(--cd-dark); }
.ps-cd__summary-note { font-size: .75rem; font-weight: 400; color: var(--cd-sec); }
.ps-cd__summary-sized { display: block; margin-top: .125rem; font-size: .75rem; color: var(--cd-sec); }
.ps-cd-addons-sized, .prs-sp-composite-notice .ps-cd-addons-sized { margin: .5rem 0 0; font-size: .875rem; font-weight: 600; color: #0369a1; }

/* Cart + mini-cart badge */
.ps-cd-badge { display: inline-flex; align-items: center; gap: .3rem; margin-left: .4rem; padding: .1rem .5rem .1rem .35rem; border-radius: 999px; background: #eef5fb; color: var(--wp--preset--color--primary, #1265ac); font-size: .7rem; font-weight: 600; vertical-align: middle; white-space: nowrap; }
.ps-cd-badge .ps-cd-icon { width: 12px; height: 12px; }
.prs-mini-cart-item .ps-cd-badge { display: inline-flex; margin: .15rem 0 0; }

/* Kori: mittatilausrivi */
.ps-cd-cart { display: grid; gap: .25rem; }
.ps-cd-cart__title { display: grid; gap: .05rem; }
.ps-cd-cart__label { display: inline-flex; align-items: center; gap: .3rem; white-space: nowrap; font-size: .75rem; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--wp--preset--color--primary, #1265ac); }
.ps-cd-cart__label::before, .ps-cd-mini__label::before { content: ''; flex: none; width: 13px; height: 13px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.3 8.7 8.7 21.3a2 2 0 0 1-2.8 0L2.7 18.1a2 2 0 0 1 0-2.8L15.3 2.7a2 2 0 0 1 2.8 0l3.2 3.2a2 2 0 0 1 0 2.8Z'/%3E%3Cpath d='m7.5 10.5 2 2'/%3E%3Cpath d='m10.5 7.5 2 2'/%3E%3Cpath d='m13.5 4.5 2 2'/%3E%3Cpath d='m4.5 13.5 2 2'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.3 8.7 8.7 21.3a2 2 0 0 1-2.8 0L2.7 18.1a2 2 0 0 1 0-2.8L15.3 2.7a2 2 0 0 1 2.8 0l3.2 3.2a2 2 0 0 1 0 2.8Z'/%3E%3Cpath d='m7.5 10.5 2 2'/%3E%3Cpath d='m10.5 7.5 2 2'/%3E%3Cpath d='m13.5 4.5 2 2'/%3E%3Cpath d='m4.5 13.5 2 2'/%3E%3C/svg%3E") center / contain no-repeat; }
.ps-cd-cart__dims { font-weight: 700; font-size: 1.0625rem; line-height: 1.2; color: var(--wp--preset--color--dark, #1e293b); }
.ps-cd-cart__spec { display: grid; gap: .1rem; font-size: .875rem; }
.ps-cd-cart__row .ps-cd-cart__k { color: var(--wp--preset--color--secondary, #475569); }
.ps-cd-cart__row b { color: var(--wp--preset--color--dark, #1e293b); }
/* Classic cart: piilota tuplaava erittely (sama tieto on jo nimessä) */
.woocommerce-cart-form .ps-cd-cart ~ .variation, td.product-name:has(.ps-cd-cart) > .variation { display: none; }
/* Minikori */
.ps-cd-mini { display: grid; gap: .1rem; }
.ps-cd-mini__title { display: grid; gap: 0; }
.ps-cd-mini__label { display: inline-flex; align-items: center; gap: .25rem; font-size: .6875rem; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--wp--preset--color--primary, #1265ac); }
.ps-cd-mini__label::before { width: 11px; height: 11px; }
.ps-cd-mini__dims { font-weight: 700; font-size: .9375rem; line-height: 1.2; color: var(--wp--preset--color--dark, #1e293b); }
.ps-cd-mini__spec { font-size: .75rem; color: var(--wp--preset--color--secondary, #475569); }

/* WPC-komponenttilista: tyhjä kuvapaikka (lisävaruste ilman kuvaa) ei vie tilaa */
.wooco_component_product_selection_list_item_image:empty, .wooco_component_product_selection_grid_item_image:empty { display: none; }

/* Tilaustaulukot (maksusivu, kiitossivu, Oma tili, sähköposti): kuva + mittatilausrakenne */
.ps-cd-order { display: flex; gap: .85rem; align-items: flex-start; }
.ps-cd-order .ps-cd-order__img { width: 64px; height: 64px; object-fit: contain; flex: none; border: 1px solid #e2e8f0; border-radius: 6px; background: #fff; padding: 4px; }
/* Composite-lapsirivien hinnat tilaustaulukoissa: riittävä kontrasti */
table.shop_table tr.wooco-order-child td, table.shop_table tr.wooco-cart-child td, table.shop_table tr[class*="wooco"][class*="child"] .woocommerce-Price-amount { color: #475569; }
/* Tilaustaulukot: lisävarusteet päärivillä yhtenä rivinä */
.ps-cd-cart__addons { display: block; margin-top: .25rem; font-size: .875rem; color: #1e293b; }
.ps-cd-cart__addons .ps-cd-cart__k { color: #475569; }
