/* Shared Xylem page chrome — tokens from :root (--xy-*) */

.se-mast { width: min(var(--a115-max), calc(100% - 48px)); margin: 28px auto 18px; }
.se-mast h1 {
  margin: 0;
  font-family: var(--xy-font);
  font-size: var(--a115-type-display);
  line-height: 1.08;
  font-weight: 800;
  color: var(--xy-charcoal);
}
.se-mast p { margin: 8px 0 0; color: var(--xy-mute); max-width: 62ch; }
.se-plate {
  background: var(--xy-surface);
  border-radius: var(--xy-radius);
  box-shadow: var(--xy-shadow);
}

.xy-sprout-rule {
  height: 1px;
  margin: 8px 0 20px;
  background: linear-gradient(90deg, var(--xy-sprout), var(--xy-line));
  border: 0;
}
.xy-sprout-rule::after { content: none; }

.shop-pagination { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0; }
.shop-pagination a, .shop-pagination span {
  min-width: 44px;
  min-height: 44px;
  display: grid;
  place-items: center;
  border-radius: var(--xy-radius-pill);
  border: 2px solid var(--xy-line);
  text-decoration: none;
  color: var(--xy-charcoal);
  font-weight: 800;
}
.shop-pagination .is-current { background: var(--xy-charcoal); color: var(--xy-lime); border-color: var(--xy-charcoal); }

.toast {
  margin-top: 12px;
  padding: 10px 14px;
  background: var(--xy-lime);
  color: var(--xy-charcoal-deep);
  font-weight: 800;
  border-radius: var(--xy-radius-pill);
}
.toast:empty { display: none; }
.toast.visible { display: block; }
.toast.success { background: var(--xy-lime); color: var(--xy-charcoal-deep); }
.toast.error { background: #fde8ee; color: var(--xy-err); }
.toast.info,
.toast.warning { background: var(--xy-surface); border: 2px solid var(--xy-sprout); color: var(--xy-charcoal); }
.notice {
  padding: var(--a115-space-2);
  border-radius: var(--xy-radius-sm);
  background: #e4f6e8;
  border: 2px solid var(--xy-sprout);
  color: var(--xy-charcoal);
}
.notice.success { background: #e4f6e8; border-color: var(--xy-sprout); }
.notice.warning { background: #fff6d8; border-color: var(--xy-bark); }
.notice.error { background: #fde8ee; border-color: var(--xy-err); }
.btn.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.55em 1em;
  border-radius: var(--xy-radius-pill);
  border: 2px solid var(--xy-charcoal);
  background: var(--xy-charcoal);
  color: var(--xy-lime);
  font-weight: 800;
  text-decoration: none;
}
.btn.btn-soft,
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.55em 1em;
  border-radius: var(--xy-radius-pill);
  border: 2px solid var(--xy-line);
  background: var(--xy-surface);
  color: var(--xy-charcoal);
  font-weight: 800;
  text-decoration: none;
}
.profile-grid { display: grid; gap: 10px; }
.profile-item {
  display: grid;
  gap: 4px;
  padding: 10px 0;
  border-bottom: 1px solid var(--xy-line);
}
.profile-item .k { font-size: var(--a115-type-xs); font-weight: 800; color: var(--xy-bark); }
.profile-item .v { font-weight: 700; }

/* Shop / Ring Sift — see assets/a115-shop.css (loaded on shop.php) */

/* Catalog / Ring Index — see assets/a115-catalog.css (loaded on catalog.php) */

/* Product / Viewcube PDP — see assets/a115-product.css (loaded on product.php) */

/* Account / Crew Pith — see assets/a115-account.css */

/* Help / Guide Rings — see assets/a115-help.css (loaded on help-center.php) */

/* PAGE DESIGN ROLL — Contact / Write Box
   asymmetric split · soft rounded · grass-blade none · hover lift
   Signature: CSS plot map of Regent Park desk
   Not Gate Post · Blotter desk · Pinboard */
.page-a115-dispatch .pn-board,
.page-a115-dispatch .dp-sheet { width: min(var(--a115-max), calc(100% - 48px)); margin: 20px auto 40px; display: grid; gap: 16px; }
.page-a115-dispatch input,
.page-a115-dispatch textarea {
  width: 100%;
  min-height: 46px;
  border: 2px solid var(--xy-line);
  border-radius: var(--xy-radius-sm);
  padding: 0.7em 0.9em;
  font: inherit;
}
.page-a115-dispatch button[type="submit"],
.page-a115-dispatch .pn-submit {
  min-height: 48px;
  padding: 0 18px;
  border: 0;
  border-radius: var(--xy-radius-pill);
  background: var(--xy-charcoal);
  color: var(--xy-lime);
  font-weight: 800;
  cursor: pointer;
}
.page-a115-dispatch .dp-facts { display: grid; grid-template-columns: 1fr; gap: 10px; }
.page-a115-dispatch .dp-facts div,
.page-a115-dispatch .pn-card {
  padding: 14px;
  border-radius: var(--xy-radius);
  background: var(--xy-surface);
  box-shadow: var(--xy-shadow);
}
.page-a115-dispatch .xy-plot {
  height: 160px;
  border-radius: var(--xy-radius);
  background:
    radial-gradient(circle at 62% 48%, var(--xy-lime) 0 8px, transparent 9px),
    repeating-linear-gradient(90deg, transparent 0 18px, rgba(28,38,30,0.06) 18px 19px),
    repeating-linear-gradient(0deg, transparent 0 18px, rgba(28,38,30,0.06) 18px 19px),
    var(--xy-pith);
}
@media (min-width: 800px) {
  .page-a115-dispatch .pn-board { grid-template-columns: 1.1fr 0.9fr; }
}

/* PAGE DESIGN ROLL — Company / Bole Story
   stepped timeline · soft rounded · hairline sprout · fade-up
   Signature: registry beats as growth rings
   Not Bench Story · Graft wall · Shadehouse */
.page-a115-boxstory .pw-stage { width: min(var(--a115-max), calc(100% - 48px)); margin: 20px auto 48px; display: grid; gap: 22px; }
.page-a115-boxstory .pw-medallion {
  padding: 28px;
  background: var(--xy-charcoal);
  color: var(--xy-pith);
  border-radius: 28px;
}
.page-a115-boxstory .pw-squares { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.page-a115-boxstory .pw-square {
  padding: 16px 16px 16px 22px;
  border-left: 6px solid var(--xy-lime);
  background: var(--xy-surface);
  border-radius: var(--xy-radius-sm);
}
.page-a115-boxstory .pw-patches { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; padding: 0; list-style: none; }

/* Policy / Rule Plate — see assets/a115-policy.css */

/* Checkout / Stump Desk — see assets/a115-checkout.css (loaded on checkout.php) */

/* Orders / Ring Log — see assets/a115-orders.css (loaded on orders.php) */

/* Order status / Gondola Climb — see assets/a115-order-status.css (loaded on order-status.php) */

/* Track / Lookout Stake — see assets/a115-track.css (loaded on track-support.php) */

/* Order success / Cotyledon Pass — see assets/a115-order-success.css (loaded on order-success.php) */

/* Checkout / success / track headings */
.page-a115-clearance h1,
.page-a115-lens h1,
.page-a115-dispatch h1,
.page-a115-gantry h1,
.page-a115-clearaspect h1,
.page-a115-boxstory h1,
.page-a115-destindex h1,
.page-a115-lamplook h1,
.page-a115-aspectlog h1,
.page-a115-aspect h1,
.page-a115-lever h1 {
  font-family: var(--xy-font);
  color: var(--xy-charcoal);
  font-weight: 800;
}

@media (max-width: 700px) {
  .page-a115-clearance .cl-steps { grid-template-columns: 1fr 1fr; }
  .page-a115-lever .lv-stubs { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .page-a115-headcode .hd-card,
  .page-a115-clearaspect .xy-cotyledon { animation: none; transition: none; }
}
