/* Shared visual rhythm, scoped to the storefront and administration. */
.storefront-site {
  --experience-ink:#2d241f;
  --experience-muted:#695b54;
  --experience-line:#e9e1da;
  --experience-surface:#faf7f4;
  --experience-shadow:0 12px 32px #3924140a;
}

.storefront-site .hero-shop-link {
  min-height:48px;
  border-radius:999px;
  font-weight:700;
  padding-inline:22px;
}
.storefront-site .catalog-top {
  margin-bottom:22px;
}
.storefront-site .catalog-top p {
  max-width:64ch;
  line-height:1.6;
}
.storefront-site .storefront-section-heading h2,
.storefront-site .section-head h2,
.storefront-site .store-shelf-heading h2 {
  font-size:clamp(1.55rem,3vw,2.2rem);
  color:var(--experience-ink);
  font-weight:650;
  letter-spacing:-.045em;
}
.storefront-site .catalog-tools {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px 20px;
  padding:14px 16px;
  margin:4px 0 24px;
  border:1px solid var(--experience-line);
  border-radius:14px;
  background:var(--experience-surface);
  text-align:left;
}
.catalog-context {
  display:flex;
  align-items:center;
  gap:6px 14px;
  flex-wrap:wrap;
  min-width:0;
}
.storefront-site .catalog-context .results-count {
  color:var(--experience-muted);
  font-size:14px;
  margin:0;
  overflow-wrap:anywhere;
}
.catalog-context button { min-height:40px; }
.catalog-controls { display:flex; flex-wrap:wrap; gap:10px; min-width:0; }
.catalog-controls label { display:grid; gap:4px; min-width:0; }
.catalog-controls label span {
  font-size:12px;
  font-weight:650;
  color:var(--experience-muted);
}
.storefront-site .catalog-controls .sort {
  width:100%;
  min-height:44px;
  min-width:140px;
  max-width:100%;
  color:var(--experience-ink);
  border:1px solid var(--experience-line);
  border-radius:9px;
  background:#fff;
}
.storefront-site .card h3 { font-weight:650; letter-spacing:-.012em; }
.storefront-site .card>.kind { color:#705c51; }
.storefront-site .card .price { color:var(--experience-ink); font-weight:700; }
.storefront-site .card .availability { font-size:13px; }
.storefront-site .card .commerce-photo .badge,
.storefront-site .card .promotion-badge { border-radius:999px; }
.storefront-site .card [data-cart-control]>.btn,
.storefront-site .card>.btn {
  border-radius:10px;
  min-height:44px;
  font-weight:650;
}
.storefront-site .store-featured {
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--experience-shadow);
}
.storefront-site .store-category-grid>button { border-radius:14px; }
.storefront-site .store-product-detail .detail-copy {
  border:1px solid var(--experience-line);
  background:#fff;
  padding:clamp(18px,3.2vw,40px);
  border-radius:18px;
  box-shadow:var(--experience-shadow);
}
.storefront-site .store-product-detail h1 { letter-spacing:-.045em; line-height:1.1; }
.storefront-site .store-product-detail .purchase { gap:10px; }
.storefront-site .store-product-detail .purchase .store-primary {
  flex:1;
  min-height:48px;
  border-radius:10px;
  letter-spacing:.025em;
  text-transform:none;
  font-size:14px;
}
.storefront-site .store-product-detail .quantity { border-radius:10px; }
.storefront-site .store-product-information {
  padding:clamp(16px,3vw,32px);
  border:1px solid var(--experience-line);
  border-radius:18px;
  background:#fff;
}
.storefront-site .store-product-information [role=tabpanel] { line-height:1.75; overflow-wrap:anywhere; }
.storefront-site .store-product-tabs { gap:5px; }
.storefront-site .store-product-tabs button { border-radius:8px 8px 0 0; }
.storefront-site .store-product-tabs button[aria-selected=true] { background:var(--experience-surface); }
.storefront-site .two-col>.panel,
.storefront-site .course-payment-panel { border-radius:16px; box-shadow:var(--experience-shadow); }
.storefront-site .summary { background:var(--experience-surface); }
.storefront-site .summary>.btn, .storefront-site .store-drawer-bottom>.store-primary { border-radius:10px; }
.storefront-site .steps { margin-bottom:24px; }
.storefront-site .steps .active {
  background:var(--experience-surface);
  border:1px solid var(--experience-line);
  border-radius:999px;
  padding:5px 10px;
}
.storefront-site .checkout .field { font-weight:600; }
.storefront-site .checkout .field :is(input,select) { min-height:46px; font-weight:400; }
.storefront-site .checkout .address-title { padding-top:22px; border-top:1px solid var(--experience-line); }
.storefront-site .store-drawer-head { background:var(--experience-surface); }

.admin-site {
  --ink:#28252d;
  --muted:#655e6a;
  --line:#e9e3ea;
  --soft:#faf0f6;
  background:#f8f7fa;
}
.admin-site [hidden] { display:none !important; }
.admin-site .admin-icon { width:19px; height:19px; flex:none; }
.admin-site .sidebar .label {
  color:var(--ink);
  margin:10px 10px 12px;
  font-size:14px;
  font-weight:750;
  text-transform:none;
  letter-spacing:0;
}
.admin-site .sidebar img { width:52px; height:65px; margin-left:10px; }
.admin-site .sidebar nav { gap:12px; }
.admin-nav-group { display:grid; gap:2px; }
.admin-nav-group p {
  margin:0 12px 3px;
  color:var(--muted);
  font-size:11px;
  font-weight:750;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.admin-site .sidebar nav a {
  min-height:41px;
  gap:9px;
  padding:8px 10px;
  border-radius:9px;
  line-height:1.25;
}
.admin-site .sidebar nav a:hover { background:#f5f2f7; color:var(--ink); }
.admin-site .sidebar nav a.active { background:var(--soft); color:#a5005c; }
.admin-site .topbar { justify-content:flex-start; }
.admin-site .topbar .pill { margin-left:auto; }
.admin-site .page-head h1 {
  font-size:clamp(1.7rem,3.4vw,2.45rem);
  letter-spacing:-.045em;
}
.admin-site .page-head p { line-height:1.55; }
.admin-site .stat, .admin-site .panel {
  border-radius:14px;
  box-shadow:0 8px 26px #35254306;
}
.admin-site .stat strong { font-variant-numeric:tabular-nums; }
.admin-site .admin-shortcuts { margin-bottom:26px; }
.admin-site .admin-shortcuts h2 { margin-bottom:12px; }
.admin-shortcuts>div {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.admin-shortcuts a {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:15px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.admin-shortcuts a:hover { border-color:#d89bbb; background:#fffbfd; }
.admin-shortcut-icon {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:11px;
  background:var(--soft);
  color:#a5005c;
}
.admin-shortcuts strong, .admin-shortcuts small { display:block; }
.admin-shortcuts strong { font-size:14px; }
.admin-shortcuts small { color:var(--muted); font-size:12px; }
.admin-shortcuts a>.admin-icon { width:16px; color:#a5005c; }
.admin-list-filters {
  display:grid;
  grid-template-columns:minmax(160px,2fr) repeat(3,minmax(110px,1fr));
  align-items:end;
  gap:12px;
  padding:16px;
}
.admin-list-filters label {
  display:grid;
  gap:5px;
  min-width:0;
  font-size:13px;
  font-weight:650;
}
.admin-list-filters :is(input,select) {
  min-height:44px;
  min-width:0;
  padding:8px 10px;
  font-size:14px;
  font-weight:400;
}
.admin-list-filters button { justify-self:start; grid-column:1/-1; }
.admin-list-count { margin:14px 2px; font-size:13px; }
.admin-site tbody tr:hover { background:#fcfafc; }
.admin-site .form-section-title {
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
  margin:0 0 4px;
}
.admin-site .product-save-bar {
  position:sticky;
  flex-wrap:wrap;
  bottom:0;
  z-index:5;
  justify-content:flex-end;
  margin-top:16px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 -6px 24px #3525430b;
}
.admin-site .product-save-bar .form-error { flex-basis:100%; margin:0; }
.admin-site .product-save-bar .form-error:empty { display:none; }
.admin-site .builder-toolbar .btn { border-radius:9px; }
.admin-site .builder-frame-wrap { box-shadow:0 12px 36px #2f233525; }

@media (max-width:1000px) {
  .admin-list-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .admin-site .sidebar nav a { min-height:44px; }
  .admin-site .topbar { justify-content:space-between; }
  .storefront-site .catalog-tools { padding:12px; gap:8px; }
  .catalog-controls {
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .storefront-site .catalog-controls .sort { min-width:0; font-size:16px; }
  .storefront-site .store-product-detail .detail-copy { padding:18px; }
}
@media (max-width:480px) {
  .admin-shortcuts>div { grid-template-columns:minmax(0,1fr); }
  .admin-site .product-save-bar>.btn { flex:1; padding-inline:8px; }
}

