/* Shared storefront contract. Theme settings are the source of the tokens.
 * These rules own presentation only: component layout, visibility, validation,
 * quantities, price data, canvas geometry and checkout behaviour stay local. */
body:is(.chipak-site, .chipak-smart-embed) {
  --chipak-ui-font: var(--font-body, Tahoma, Arial, sans-serif);
  --chipak-ui-heading-font: var(--font-heading, var(--chipak-ui-font));
  --chipak-ui-brand: var(--brand, #102235);
  --chipak-ui-accent: var(--accent, #c89536);
  --chipak-ui-ink: var(--ink, #182433);
  --chipak-ui-muted: var(--muted, #66717f);
  --chipak-ui-line: var(--line, #ded8ce);
  --chipak-ui-surface: var(--card, #fff);
  --chipak-ui-radius: var(--radius, 18px);
  --chipak-ui-control-radius: var(--button-radius, 8px);
  /* Compatibility names used by Studio and Woo blocks. */
  --ca-font: var(--chipak-ui-font);
  --ca-navy: var(--chipak-ui-brand);
  --ca-ink: var(--chipak-ui-ink);
  --ca-gold: var(--chipak-ui-accent);
  --ca-line: var(--chipak-ui-line);
  --ca-button-radius: var(--chipak-ui-control-radius);
  --ca-input-radius: var(--chipak-ui-control-radius);
  --ca-card-radius: var(--chipak-ui-radius);
  font-family: var(--chipak-ui-font);
  color: var(--chipak-ui-ink);
}

/* Text only: do not overwrite WooCommerce star, dashicon or third-party icon
 * fonts. New native pages and block content inherit the same rules by default. */
body:is(.chipak-site, .chipak-smart-embed) :is(button, input, select, textarea, label, legend),
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(p, a, span, strong, small, li, dt, dd, address, th, td, summary):not(:where(.dashicons, .dashicons *, .star-rating, .star-rating *, .stars, .stars *, [data-chipak-icon], [data-chipak-icon] *)) {
  font-family: var(--chipak-ui-font) !important;
}
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(h1, h2, h3, h4, h5, h6),
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(h1, h2, h3, h4, h5, h6) :is(a, span, strong, em, small):not(:where(.dashicons, .dashicons *, .star-rating, .star-rating *, .stars, .stars *, [data-chipak-icon], [data-chipak-icon] *)) {
  font-family: var(--chipak-ui-heading-font) !important;
}
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(.product_title, .content-page > article > h1) {
  color: var(--chipak-ui-brand) !important;
  font-size: clamp(25px, 3vw, 36px) !important;
  line-height: 1.6 !important;
}
/* Core's repaired checkout labels include generated translated text. Keep
 * those translations and their spacing; use the same resolved site font. */
body:is(.chipak-site, .chipak-smart-embed).woocommerce-checkout .wp-block-woocommerce-checkout {
  --cp-checkout-font: var(--chipak-ui-font);
}
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .cp-customer, .cp-auth, .cp-dynamic-model-view, .chipak-calc) {
  font-family: var(--chipak-ui-font) !important;
}
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(.wc-block-components-radio-control__label, .wc-block-components-radio-control__secondary-label, .wc-block-components-radio-control__description, .wc-block-components-totals-item__value)::after {
  font-family: var(--chipak-ui-font) !important;
}

/* Each engine retains its own geometry and form. Shared panels use one skin. */
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(.summary.entry-summary, .cp-dynamic-model-view .controls, .chipak-configurator, .cp-unified-order, .cp-login-card, .cp-account-panel, .wp-block-group.is-style-card) {
  border-color: var(--chipak-ui-line) !important;
  border-radius: var(--chipak-ui-radius) !important;
  background-color: var(--chipak-ui-surface);
}
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(.chipak-calc, .cp-dynamic-model-view) {
  --cp-brand: var(--chipak-ui-brand);
  --cp-brand-2: var(--chipak-ui-brand);
  --cp-deep: var(--chipak-ui-brand);
  --cp-accent: var(--chipak-ui-accent);
  --cp-ink: var(--chipak-ui-ink);
  --cp-line: var(--chipak-ui-line);
}

/* Primary actions are explicit. Disclosure, remove, quantity, playback and
 * disabled controls keep their native behaviour and visual state. */
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(.single_add_to_cart_button, .chipak-calc-actions .primary, .chipak-buy-link, .cp-dynamic-model-view .primary, .cp-cake-primary, .chipak-u300__submit, .wp-block-button__link, .chipak-ui-button) {
  background: var(--chipak-ui-accent) !important;
  color: var(--chipak-ui-brand) !important;
  border-color: var(--chipak-ui-accent) !important;
  border-radius: var(--chipak-ui-control-radius) !important;
  box-shadow: none;
}
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(.checkout-button, .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .woocommerce-form-login__submit, .cp-auth .cp-button, .cp-customer .cp-button:not(.cp-button-quiet):not(.cp-button-gold)) {
  background: var(--chipak-ui-brand) !important;
  color: #fff !important;
  border-color: var(--chipak-ui-brand) !important;
  border-radius: var(--chipak-ui-control-radius) !important;
}
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button) span { color: inherit !important; }

/* Only text-entry fields; never resize hidden/range/file/checkbox controls. */
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(input:not([type]), input[type=text], input[type=search], input[type=email], input[type=tel], input[type=password], input[type=number], input[type=url], select, textarea) {
  border-color: var(--chipak-ui-line) !important;
  border-radius: var(--chipak-ui-control-radius) !important;
  color: var(--chipak-ui-ink);
  background-color: var(--chipak-ui-surface);
}
body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--chipak-ui-accent);
  outline-offset: 3px;
}
@media (max-width: 760px) {
  body:is(.chipak-site, .chipak-smart-embed) :is(#main, .chipak-smart-embed > main) :is(input:not([type]), input[type=text], input[type=search], input[type=email], input[type=tel], input[type=password], input[type=number], input[type=url], select, textarea) { font-size: max(16px, 1em) !important; }
}

/* Product ordering contract: native fields; controller-owned prices and values. */
body.single-product {
  --chipak-ui-quantity-surface:#effaf3;
  --chipak-ui-quantity-line:#9ad4af;
  --chipak-ui-quantity-ink:#185a35;
}
body.single-product .product .chipak-quantity-card {
  display:grid!important;grid-template-columns:minmax(0,1fr);gap:10px;
  box-sizing:border-box;grid-column:1/-1;width:100%;min-width:0;
  margin:18px 0 12px;padding:16px!important;
  border:1px solid var(--chipak-ui-quantity-line)!important;
  border-radius:var(--chipak-ui-radius,18px)!important;
  background:var(--chipak-ui-quantity-surface)!important;
  color:var(--chipak-ui-quantity-ink)!important;
}
body.single-product .product .chipak-quantity-card>strong {
  color:var(--chipak-ui-quantity-ink)!important;font-size:16px;line-height:1.9;font-weight:700;
}
body.single-product .product .chipak-quantity-card input {
  box-sizing:border-box;display:block;width:100%;min-width:0;min-height:48px;
  background:var(--chipak-ui-surface,#fff)!important;color:var(--chipak-ui-ink,#182433)!important;
  border:1px solid var(--chipak-ui-quantity-line)!important;border-radius:var(--chipak-ui-control-radius,8px);
  padding:10px 12px;font:inherit;font-size:18px!important;text-align:center;direction:ltr;
}
body.single-product .product :is(.chipak-configurator,.cp-dynamic-product) select {
  appearance:auto!important;-webkit-appearance:menulist!important;
  box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:48px;
  padding:10px 12px!important;border:1px solid var(--chipak-ui-line,#ded8ce)!important;
  border-radius:var(--chipak-ui-control-radius,8px)!important;
  background:var(--chipak-ui-surface,#fff)!important;color:var(--chipak-ui-brand,#102235)!important;
  font:inherit;font-size:16px!important;line-height:1.8;
}
body.single-product .product :is(.chipak-configurator,.cp-dynamic-product) label:has(select>option[value="offset"]) {grid-column:1/-1}
body.single-product .product .chipak-config-grid>label {padding:0;border:0;background:transparent}
body.single-product .product .chipak-binary-choice {display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding:10px 0;border:0;background:transparent}
body.single-product .product .chipak-binary-choice>small {flex-basis:100%}
body.single-product .product :is(.chipak-binary-choice,.chipak-effects) input[type=checkbox] {appearance:auto!important;width:21px!important;height:21px!important;min-height:21px!important;margin:0;accent-color:var(--chipak-ui-brand)}
body.single-product .chipak-configurator>.quantity {display:none!important}
body.single-product .product :is([data-production-buy],[data-buy],[data-six-buy],.single_add_to_cart_button) {width:100%;min-height:52px!important;height:52px!important;box-sizing:border-box;background:var(--chipak-ui-accent,#c89536)!important;border-color:var(--chipak-ui-accent,#c89536)!important;color:var(--chipak-ui-brand,#102235)!important}
body.single-product .product :is([data-production-approval],[data-approval],[data-six-approval],.chipak-inquiry-button) {width:100%;min-height:52px!important;height:52px!important;box-sizing:border-box;background:var(--chipak-ui-surface,#fff)!important;border:1px solid var(--chipak-ui-brand,#102235)!important;color:var(--chipak-ui-brand,#102235)!important}
body.single-product .cp-dynamic-base-price {clear:both;grid-column:1/-1;box-sizing:border-box;margin:16px 0 28px;padding:18px;border:1px solid var(--chipak-ui-line,#ded8ce);border-radius:var(--chipak-ui-radius,18px);background:var(--chipak-ui-surface,#fff);color:var(--chipak-ui-brand,#102235);font-size:14px;line-height:1.9}
body.single-product .cp-dynamic-base-price .chipak-price-single {white-space:normal;font-size:14px!important;font-weight:400!important}
body.single-product .cp-dynamic-base-price .chipak-price-single strong {font-size:inherit;font-weight:400}
.cp-model-hub-actions a {background:var(--chipak-ui-brand,#102235)!important;color:#fff!important;border-color:var(--chipak-ui-brand,#102235)!important}
body.single-product [data-model-hub-dimension] {cursor:pointer;scroll-margin-block:120px}
@media(max-width:760px) {
  body.single-product .cp-dynamic-product :is(.controls,.cp-pizza-options) {display:flex;flex-direction:column}
  body.single-product .cp-dynamic-product :is(.controls,.cp-pizza-options)>* {order:10}
  body.single-product .cp-dynamic-product .cp-dynamic-product-summary {display:contents}
  body.single-product .cp-dynamic-product .cp-dynamic-product-summary>* {order:0}
  body.single-product .cp-dynamic-product .cp-dynamic-product-summary>.woocommerce-product-details__short-description {order:20}
  body.single-product .product :is(input,select,button,a) {scroll-margin-block:110px}
}
@media(max-width:760px) {
  body.chipak-product-order-native .cp-dynamic-product :is(.cp-cake,.cp-pastry-product,.cp-pizza) {display:flex;flex-direction:column}
  body.chipak-product-order-native .cp-dynamic-product :is(.cp-cake-flow,.cpp-flow,.cp-pizza-grid) {display:contents!important}
  body.chipak-product-order-native .cp-dynamic-product :is(.cp-cake-header,.cpp-heading,.cp-pizza-heading) {order:1}
  body.chipak-product-order-native .cp-dynamic-product :is(.cp-cake-flow,.cpp-flow,.cp-pizza-grid)>* {order:3}
  body.chipak-product-order-native .cp-dynamic-product :is(.cp-cake-visual,.cpp-visual,.cp-pizza-preview) {order:0!important}
  body.chipak-product-order-native .cp-dynamic-product :is(.cp-cake-purchase,.cpp-calculator,.cp-pizza-options) {order:2!important}
}
