/* Shared paper stock and letterpress finish for the public site.
   One small SVG tile is cached; no overlay, JS, font or raster download. */
:root {
  --cream-100: #f8f2e7;
  --cream-200: #f3ede1;
  --cream-300: #e9dfce;
  --paper-grain: url("paper-grain.svg");
  --paper-ink-shadow: .35px .65px .3px #fff9, -.2px -.3px .3px #49352128;
  --paper-display-shadow: .45px 1px .5px #fffc, -.3px -.5px .4px #4935213d;
}

/* Opaque surfaces need their own grain. Transparent sections share the body. */
body,
.lp-family, .lp-hero-label, .lp-stamp, .lp-about-illustration,
.lp-hours, .lp-visit-contact, .lp-order, .lp-direction, .sweet-counter,
.lp-hero-stage::before, .lp-dessert-photo::before,
.product-card, .product-art, .product-dialog > img, .product-dialog-scroll > img,
.counter-sign, .counter-choose, .counter-art, .counter-toolbar, .counter-toolbar > [role=group],
.menu-page :is(.filter-bar, #counter-families) .family-choice,
.menu-page .filter-bar .filter[data-filter="all"],
.receipt-floating, .receipt-sheet-open, .receipt-sheet-action, .receipt-option-card,
.receipt-option-art, .receipt-menu-hint, .journey-completed,
.receipt, .order-choice-card, .order-choice-card:has(input:checked),
.order-step, .order-form fieldset, .order-calendar,
#product-dialog, #receipt-dialog, #order-dialog, #order-dialog .order-review {
  background-image: var(--paper-grain);
  background-repeat: repeat;
  background-size: 192px 192px;
  background-blend-mode: multiply;
}

/* Dark stock keeps its existing palette and readable light lettering. */
.lp-discovery, .lp-suggestion, .lp-ribbon, .order-band, .site-footer {
  background-image: var(--paper-grain);
  background-size: 192px 192px;
  background-repeat: repeat;
  background-blend-mode: soft-light;
  --paper-ink-shadow: 0 .5px .4px #ffffff14, 0 -.5px .4px #0008;
  --paper-display-shadow: 0 .7px .5px #ffffff1a, 0 -.6px .5px #0009;
  text-shadow: var(--paper-ink-shadow);
}

body { text-shadow: var(--paper-ink-shadow); }
:is(h1, h2, h3, h4, .lp-eyebrow, .kicker, .product-copy strong,
    .counter-copy strong, .receipt-title, .section-heading) {
  text-shadow: var(--paper-display-shadow);
}

/* Native fields and status messages stay crisp. */
input, textarea, select, option,
.business-status,
[role=alert], .order-status {
  text-shadow: none;
}

/* Letterpress controls: textured stock, recessed rim and ink pressed into it. */
:is(button, .lp-button, .button, .nav-order, .receipt-call, .order-whatsapp-primary,
    .receipt-price-options label, .receipt-sauce-grid label, .receipt-selector-grid label,
    .receipt-addon-grid label, .receipt-option-card, .order-choice-card, .order-slot-card) {
  text-shadow: 0 -1px .6px #25190f66, 0 1px .5px #ffffff80;
}
:is(.lp-button, .button, .nav-order, .nav-toggle, .lp-round, .sweet-arrow,
    .filter, .counter-toolbar button, .counter-sign, .counter-paging button,
    .drink-paging button, .receipt-launch, .receipt-floating, .receipt-clear,
    .receipt-add, .receipt-order, .receipt-quantity button, .receipt-sheet-action,
    .journey-next, .journey-back, .journey-skip, .order-submit, .order-contact-next,
    .order-slot-card, .order-choice-card, .order-close, .receipt-close, .dialog-close,
    .order-date-trigger, .order-whatsapp-primary, .lp-discovery-filters button,
    .order-calendar button, .receipt-price-options label, .receipt-sauce-grid label,
    .receipt-selector-grid label, .receipt-addon-grid label, .receipt-option-card) {
  background-image: var(--paper-grain);
  background-size: 192px 192px;
  background-repeat: repeat;
  background-blend-mode: multiply;
  box-shadow: inset 0 2px 4px #34271735, inset 0 -1px 0 #ffffff55, 0 1px .5px #ffffff66;
}
:is(.lp-button, .button, .nav-order, .nav-toggle, .lp-round, .sweet-arrow,
    .filter, .counter-toolbar button, .counter-sign, .counter-paging button,
    .drink-paging button, .receipt-launch, .receipt-clear, .receipt-add,
    .receipt-order, .receipt-quantity button, .receipt-sheet-action,
    .journey-next, .journey-back, .journey-skip, .order-submit, .order-contact-next,
    .order-close, .receipt-close, .dialog-close, .order-date-trigger,
    .order-whatsapp-primary, .lp-discovery-filters button, .order-calendar button):active {
  box-shadow: inset 0 3px 5px #34271750, inset 0 -1px 0 #ffffff33;
}

/* Selected options retain their red colour while sinking into the stock. */
:is(.receipt-price-options, .receipt-sauce-grid, .receipt-selector-grid,
    .receipt-addon-grid) label:has(input:checked),
.order-choice-card:has(input:checked), .order-slot-card:has(input:checked) {
  background-image: var(--paper-grain);
  background-size: 192px 192px;
  background-repeat: repeat;
  background-blend-mode: multiply;
  box-shadow: inset 0 3px 5px #34271750, inset 0 -1px 0 #ffffff44, 0 1px .5px #ffffff66;
}

@media (forced-colors: active) {
  body, body * { background-image: none !important; text-shadow: none !important; box-shadow: none !important; }
}
@media print {
  body, body * { background-image: none !important; text-shadow: none !important; box-shadow: none !important; }
}
