/* Shared paint only. Registered behind the existing published / CE-off shop gate. */
body:has(#sg-shop-header){color:var(--text-color,#252b29)}
body:has(#sg-shop-header) #wrapper,
body:has(#sg-shop-header) #wrapper .page-content.page-cms{
  background-color:var(--page-background,#fffef5)!important;
  color:var(--text-color,#252b29);
}
body:has(#sg-shop-header) #wrapper :where(h1,h2,h3,h4,h5,h6,p,label,legend,th,td,dt,dd,small):not(.alert):not(.alert *):not(.sg-contact-error *):not(.has-error .help-block):not(.has-error .help-block *){
  color:var(--text-color,#252b29);
}
body:has(#sg-shop-header) #wrapper :is(.sg-legal-page,.page-header,.breadcrumb,.label,.value,.product-line-info,.product-line-grid,.cart-summary,.cart-summary-line,.cart-total,.step-title){
  color:var(--text-color,#252b29);
}
body:has(#sg-shop-header) #wrapper a:not(.btn):not(.sg-action):not(.sg-contact-button):not(.alert *){
  color:inherit;
}
body:has(#sg-shop-header) #wrapper :is(.card,.checkout-step,.address-item){
  background-color:var(--card-background,rgba(235,235,235,1));
  color:var(--text-color,#252b29);
  border-color:var(--design-line,#dfe4dc);
}
body:has(#sg-shop-header) #wrapper :is(.delivery-option,.address-item.selected,.table-striped tbody tr:nth-of-type(odd)){
  background-color:var(--control-background,rgba(37,43,41,.06));
}
body:has(#sg-shop-header) #wrapper :is(.form-control,#sg-contact-page input:not([type=hidden]),#sg-contact-page textarea){
  background-color:var(--control-background,rgba(37,43,41,.06))!important;
  color:var(--text-color,#252b29)!important;
  border-color:var(--design-line,#dfe4dc);
}
body:has(#sg-shop-header) #wrapper :is(input,textarea)::placeholder{
  color:var(--text-muted,rgba(37,43,41,.72));opacity:1;
}
body:has(#sg-shop-header) #wrapper select option{
  background:var(--page-background,#fffef5);color:var(--text-color,#252b29);
}
body:has(#sg-shop-header) #wrapper .btn-primary{
  background-color:var(--button-background,#17201c);
  color:var(--button-text,#fff);
  border-color:var(--button-background,#17201c);
}
body:has(#sg-shop-header) #wrapper .btn-primary :is(span,i){color:inherit}
body:has(#sg-shop-header) #wrapper :is(hr,.sg-contact-card,.sg-contact-check,.sg-account-card,.sg-account-extras .link-item,.sg-account--form .page-content){border-color:var(--design-line,#dfe4dc)}
body:has(#sg-shop-header) #wrapper .sg-legal-page__body :is(td,th){border-color:var(--design-line,#dfe4dc)}
body:has(#sg-shop-header) #wrapper #sg-customer-account :is(thead th,.input-group-btn>.btn){background-color:var(--control-background,rgba(37,43,41,.06))!important}
/* Keep functional messages readable on their deliberately light status backgrounds. */
body:has(#sg-shop-header) #wrapper .alert{color:#26332b}
body:has(#sg-shop-header) #wrapper .alert-danger{color:#8d2424}
body:has(#sg-shop-header) #wrapper .alert-warning{color:#684e17}
body:has(#sg-shop-header) #wrapper .alert-info{color:#204b65}
body:has(#sg-shop-header) #wrapper .alert-success{color:#215b33}
body:has(#sg-shop-header) #wrapper .alert :is(p,span,div,a,li,strong){color:inherit!important}
/* Product copy, labels and muted text use the product's shared semantic tokens. */
body:has(#sg-shop-header) #wrapper .sg-product :is(.tax-shipping-delivery-label,.sg-event-heading__subtitle,.sg-event-facts,.sg-event-current-price>span,.sg-price-note,.sg-ticket-price-note,.sg-ticket-status){color:var(--sg-muted)}
body:has(#sg-shop-header) #wrapper .sg-product .sg-ticket-price{color:var(--sg-ink)}
body:has(#sg-shop-header) #wrapper .sg-product .product-quantity .add-to-cart{color:var(--button-text,#fff)}

/* Order confirmation: legacy bank-transfer markup contains inline light backgrounds. */
body:has(#sg-shop-header) #wrapper :is(#content-hook_order_confirmation,#content-hook_payment_return) :is(.card,.card-block){
  background:var(--page-background,#fffef5)!important;
  color:var(--text-color,#252b29)!important;
  border-color:var(--design-line,#dfe4dc)!important;
}
body:has(#sg-shop-header) #wrapper :is(#content-hook_order_confirmation,#content-hook_payment_return) .card-title[style]{color:var(--text-color,#252b29)!important}
body:has(#sg-shop-header) #wrapper :is(#content-hook_order_confirmation,#content-hook_payment_return) span[style*="background:#fff"]{
  background:var(--control-background,rgba(37,43,41,.06))!important;
  color:var(--text-color,#252b29)!important;
  border-color:var(--design-line,#dfe4dc)!important;
}
body:has(#sg-shop-header) #wrapper :is(#order-items,.page-order-confirmation) .total-value,
body:has(#sg-shop-header) #wrapper :is(#order-items,.page-order-confirmation) .total-value :is(td,th){
  background:var(--page-background,#fffef5)!important;
  color:var(--text-color,#252b29)!important;
  border-color:var(--design-line,#dfe4dc)!important;
}
body:has(#sg-shop-header) #wrapper :is(#content-hook_order_confirmation,#content-hook_payment_return) .card{overflow-wrap:anywhere;border-radius:var(--card-radius,16px)}

/* Mobile gutters for account and legal pages: remove the native outer row's
   negative margins rather than hiding overflowing content. Commerce forms stay native. */
@media(max-width:767px){
 body:has(#sg-shop-header):is(:has(#sg-customer-account),:has(.sg-legal-page),#cms,:has(.page-content.page-cms)) #wrapper>.container{width:100%;max-width:none;padding-inline:0}
 body:has(#sg-shop-header):is(:has(#sg-customer-account),:has(.sg-legal-page),#cms,:has(.page-content.page-cms)) #wrapper>.container>.row{margin-inline:0}
 body:has(#sg-shop-header):is(:has(#sg-customer-account),:has(.sg-legal-page),#cms,:has(.page-content.page-cms)) #wrapper>.container>.row>#content-wrapper{float:none;width:100%;max-width:100%;min-width:0;padding-inline:0}
 body:has(#sg-shop-header) #sg-customer-account{min-width:0;overflow-wrap:anywhere}
 body:has(#sg-shop-header) #sg-customer-account .renew-password,
 body:has(#sg-shop-header) #sg-customer-account .renew-password .btn{margin-inline:0}
 body:has(#sg-shop-header) .sg-legal-page{min-width:0;padding-inline:18px}
 body:has(#sg-shop-header):is(#cms,:has(.page-content.page-cms)) #main{box-sizing:border-box;min-width:0;padding-inline:18px;overflow-wrap:anywhere}
 body:has(#sg-shop-header) .page-content.page-cms{max-width:100%;padding-inline:0}
 body:has(#sg-shop-header) .page-content.page-cms table{display:block;max-width:100%;overflow:auto}
 body:has(#sg-shop-header) .page-content.page-cms img{max-width:100%;height:auto}
}
