/* HK-UX-003 · Site-wide visual and interaction contract (v1.28.3).
 * Feature styles are intentionally scoped. Never change browser zoom or WordPress admin.
 */
:root {
  --hk28-ink: #19283a;
  --hk28-muted: #586a7d;
  --hk28-line: #e2e8f0;
  --hk28-surface: #f6f8fb;
  --hk28-danger: #bb3040;
  --hk28-control-radius: 7px;
  --hk28-space-1: 4px;
  --hk28-space-2: 8px;
  --hk28-space-3: 12px;
  --hk28-space-4: 16px;
  --hk28-space-6: 24px;
  --hk28-space-8: 32px;
  --hk28-space-12: 48px;
}
/* Shared interactive semantics on all public pages, not the dashboard. */
body:not(.wp-admin) :is(.hk28-wrap, .hk28-bucket-dialog, .hk28-save-dialog, .hk28-plan-dialog, .hk28-cook-dialog) :is(button, a, input, select, textarea, summary):focus-visible,
body:not(.wp-admin) :is(.hk28-bottom-nav, .hk28-header-tools) :is(button, a):focus-visible {
  outline: 2px solid var(--hk28-accent, #215fcb) !important;
  outline-offset: 3px;
}
body:not(.wp-admin) .hk28-wrap :is(input, select, button),
body:not(.wp-admin) :is(.hk28-bucket-dialog, .hk28-save-dialog, .hk28-plan-dialog) :is(input, select, button) {
  border-radius: var(--hk28-control-radius);
}
body:not(.wp-admin) .hk28-wrap :is(input, select):not([type=checkbox]):not([type=radio]),
body:not(.wp-admin) :is(.hk28-bucket-dialog, .hk28-save-dialog, .hk28-plan-dialog) :is(input, select):not([type=checkbox]):not([type=radio]) {
  min-height: 42px;
}
body:not(.wp-admin) :is(.hk28-wrap, .hk28-bucket-dialog, .hk28-save-dialog, .hk28-plan-dialog, .hk28-cook-dialog) button:disabled { opacity: .5; cursor: not-allowed; }
body:not(.wp-admin) .hk28-with-icon .hk28-icon{inline-size:18px;block-size:18px;flex-shrink:0}
body:not(.wp-admin) .hk28-action-quiet {
  border-color: transparent !important;
  background: transparent !important;
  color: var(--hk28-muted) !important;
  box-shadow: none !important;
}
body:not(.wp-admin) .hk28-action-quiet:hover { background: var(--hk28-surface) !important; color: var(--hk28-ink) !important; }
body:not(.wp-admin) :is(.hk28-grocery-remove, .hk28-plan-remove, .hk28-folder-remove, .hk28-folder-delete, .hk28-grocery-remove-group) {
  color: var(--hk28-danger) !important;
}
body:not(.wp-admin) :is(.hk28-grocery-remove, .hk28-plan-remove, .hk28-folder-remove, .hk28-folder-delete, .hk28-grocery-remove-group):hover { background: #fff0f2 !important; }
/* Recipe card: image above copy; consistent heights and compact editorial controls. */
body:not(.wp-admin) .hk28-grid {
  align-items: stretch;
  row-gap: clamp(18px, 2.6vw, 30px);
  column-gap: clamp(10px, 1.35vw, 18px);
}
body:not(.wp-admin) .hk28-card {
  display: flex;
  flex-direction: column;
  min-inline-size: 0;
  overflow-wrap: anywhere;
}
body:not(.wp-admin) .hk28-card-media {
  aspect-ratio: var(--hk28-ratio, 3 / 2);
  border-radius: clamp(4px, calc(var(--hk28-radius, 12px) - 5px), 10px);
}
body:not(.wp-admin) .hk28-card-media img {
  inline-size: 100%; block-size: 100%;
  object-fit: cover;
  object-position: var(--hk28-card-focal, center center);
}
body:not(.wp-admin) .hk28-card-eyebrow { margin-top: 8px; font-size: 10px; letter-spacing:.09em; }
body:not(.wp-admin) .hk28-card-title {
  font-size: clamp(14px, 1.15vw, 17px) !important;
  line-height: 1.36 !important;
  margin: 5px 0 6px !important;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  min-height: 2.72em;
}
body:not(.wp-admin) .hk28-card-bottom { margin-top: auto; display:flex; gap:8px; justify-content:space-between; align-items:center; min-height:34px; }
body:not(.wp-admin) .hk28-card-meta { display:inline-flex; align-items:center; gap:5px; margin:0; font-size:12px; color:var(--hk28-muted); }
body:not(.wp-admin) .hk28-card-meta .hk28-icon { inline-size:15px;block-size:15px; }
body:not(.wp-admin) .hk28-card-tools { display: flex; align-items:center; gap:0; margin-left:auto; }
body:not(.wp-admin) .hk28-card-tools .hk28-icon-button {
  position: static; inset: auto; margin: 0 !important; box-shadow: none !important;
  display: inline-flex; align-items:center; justify-content:center;
  width: 36px; height: 36px; border:0 !important; padding:0 !important;
  background:transparent !important; color:var(--hk28-muted)!important;
  border-radius:8px;
}
body:not(.wp-admin) .hk28-card-tools .hk28-icon-button:hover{background:var(--hk28-surface)!important}
body:not(.wp-admin) .hk28-card-tools .hk28-icon{inline-size:18px;block-size:18px}
/* No extra controls unless a recipe has actually been saved. */
body:not(.wp-admin) .hk28-card .hk28-organize { display: none; }
body:not(.wp-admin) .hk28-card.is-saved .hk28-organize { display: inline-flex; }
body:not(.wp-admin) .hk28-card .hk28-folder-remove { display: inline-flex; }
body:not(.wp-admin) .hk28-card:not(.is-saved) .hk28-card-tools:empty{display:none}
body:not(.wp-admin) .hk28-card .hk28-save {cursor:pointer}
/* Single recipe header: accessible icon/value facts without large text labels. */
body:not(.wp-admin) .hk28-recipe-hero { align-items:start; gap:clamp(20px, 2.6vw, 35px); }
body:not(.wp-admin) .hk28-recipe-hero h1 { font-size:clamp(29px, 3.15vw, 44px);line-height:1.17;margin:7px 0 12px; }
body:not(.wp-admin) .hk28-recipe-hero>div>p { font-size:15px;line-height:1.6; }
body:not(.wp-admin) .hk28-facts {gap:16px; margin:17px 0 20px;}
body:not(.wp-admin) .hk28-fact {
  display:inline-flex; align-items:center; gap:7px;
  border:0; padding:0; min-width:0;
  white-space:nowrap;
}
body:not(.wp-admin) .hk28-fact .hk28-icon { inline-size:19px;block-size:19px;color:#66788a; }
body:not(.wp-admin) .hk28-fact strong {font-size:13px;font-weight:650}
body:not(.wp-admin) .hk28-actions {gap:7px;}
body:not(.wp-admin) .hk28-actions .hk28-action { min-height:43px; padding:9px 13px; font-size:13px; }
body:not(.wp-admin) .hk28-actions .hk28-organize {min-width:43px; width:43px; padding:9px!important; justify-content:center; order:4;}
body:not(.wp-admin) .hk28-foodfit { margin:26px 0; padding:12px 15px; }
body:not(.wp-admin) .hk28-foodfit small {font-size:11px;}
/* Personal workspace: stable left rail, no scrolling tab parade on mobile. */
body:not(.wp-admin) .hk28-workspace-grid {grid-template-columns:220px minmax(0, 1fr);gap:clamp(20px,2.4vw,32px)}
body:not(.wp-admin) .hk28-workspace .hk28-page-head {margin-bottom:18px}
body:not(.wp-admin) .hk28-workspace-body>h2 {font-size:23px;margin-bottom:12px}
body:not(.wp-admin) .hk28-mobile-section-menu {display:none}
body:not(.wp-admin) .hk28-sidebar {border:1px solid var(--hk28-line);background:#f9fbfe;border-radius:10px;padding:8px}
body:not(.wp-admin) .hk28-sidebar a {font-size:13px;min-height:42px;padding:10px 12px}
/* Grocery list: icon-only danger actions; compact group controls; one scroll container in overlay. */
body:not(.wp-admin) .hk28-grocery-item {min-height:52px;gap:8px;padding:8px 0}
body:not(.wp-admin) .hk28-grocery-item>label {min-width:0;font-size:14px;line-height:1.5}
body:not(.wp-admin) .hk28-grocery-item>label>span {overflow-wrap:anywhere}
body:not(.wp-admin) .hk28-grocery-item .hk28-grocery-remove {
  flex:0 0 44px; inline-size:44px; block-size:44px;
  min-inline-size:44px; min-block-size:44px;
  display:inline-grid;place-items:center;
  border:0!important; padding:0!important; background:transparent!important;
  color:var(--hk28-danger)!important;
}
body:not(.wp-admin) .hk28-grocery-item .hk28-grocery-remove .hk28-icon {inline-size:20px;block-size:20px}
body:not(.wp-admin) .hk28-grocery-remove-group {display:inline-flex;align-items:center;gap:6px;font-size:12px!important;padding:7px 9px!important;}
body:not(.wp-admin) .hk28-grocery-remove-group .hk28-icon{inline-size:15px;block-size:15px}
body:not(.wp-admin) .hk28-grocery-update {gap:10px; flex-wrap:wrap;align-items:end;}
body:not(.wp-admin) .hk28-grocery-refresh {min-height:42px!important;padding:8px 11px!important;}
body:not(.wp-admin) .hk28-grocery-group {margin:8px 0;padding:12px 14px;}
body:not(.wp-admin) .hk28-grocery-group summary {display:flex;align-items:center;gap:6px;line-height:1.45;min-height:34px;}
body:not(.wp-admin) .hk28-grocery-group summary>span{min-width:0;overflow-wrap:anywhere;}
body:not(.wp-admin) .hk28-grocery-group summary small{margin-left:auto;font-weight:500;color:var(--hk28-muted);white-space:nowrap}
body:not(.wp-admin) .hk28-grocery-group summary::marker {color:var(--hk28-ink)}
body:not(.wp-admin) .hk28-bucket-dialog {
  padding:0!important;
  overflow:hidden;
  width:min(530px,calc(100% - 24px));
  max-height:min(82dvh,760px);
  display:none;
}
body:not(.wp-admin) .hk28-bucket-dialog[open] {display:flex!important;flex-direction:column;}
body:not(.wp-admin) .hk28-bucket-dialog .hk28-bucket-head { flex:0 0 auto; padding:16px 18px; margin:0; border-bottom:1px solid var(--hk28-line); }
body:not(.wp-admin) .hk28-bucket-dialog .hk28-bucket-head h2 {font-size:19px}
body:not(.wp-admin) .hk28-bucket-dialog .hk28-bucket-content {flex:1 1 auto;min-height:0;max-height:none!important;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:8px 16px;}
body:not(.wp-admin) .hk28-bucket-dialog footer {flex:0 0 auto; margin:0;padding:12px 18px;border-top:1px solid var(--hk28-line)}
body:not(.wp-admin) .hk28-bucket-dialog footer button {min-height:40px}
body:not(.wp-admin) .hk28-grocery-groups {min-height:0;max-height:none!important;overflow:visible!important;}
/* Folder tools and planner delete operations share the same danger semantics. */
body:not(.wp-admin) :is(.hk28-plan-remove, .hk28-folder-delete) .hk28-icon {inline-size:18px;block-size:18px}
body:not(.wp-admin) .hk28-plan-remove {min-width:42px;min-height:42px;display:grid;place-items:center;border:0!important;background:transparent!important}
body:not(.wp-admin) .hk28-plan-day {padding:12px;border-radius:9px}
body:not(.wp-admin) .hk28-plan-slot {gap:7px;min-width:0}
body:not(.wp-admin) .hk28-plan-slot span {overflow-wrap:anywhere;}
body:not(.wp-admin) .hk28-day-strip {display:none}
/* Site-wide navigation: one My Recipes entry in theme header and four stable mobile tabs. */
body:not(.wp-admin) .hk28-header-tools {gap:3px;align-items:center}
body:not(.wp-admin) .hk28-header-tools :is(button, a) {display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;min-width:44px;padding:7px 10px;color:var(--hk28-ink);background:transparent;border:0;cursor:pointer;font-size:13px;font-weight:650;text-decoration:none}
body:not(.wp-admin) .hk28-header-tools :is(button, a):hover {color:var(--hk28-accent);background:var(--hk28-surface);border-radius:8px}
body:not(.wp-admin) .hk28-header-tools .hk28-icon{inline-size:20px;block-size:20px}
body:not(.wp-admin) .hk28-bottom-nav {font-family:inherit}
body:not(.wp-admin) .hk28-bottom-nav a {min-height:53px;font-size:11px}
body:not(.wp-admin) .hk28-bottom-nav .hk28-icon {inline-size:21px;block-size:21px}
body:not(.wp-admin) .hk28-floating-basket {z-index:190;}
@media(min-width:761px){body:not(.wp-admin) .hk28-floating-basket {display:none}}
@media(max-width:1100px){
 body:not(.wp-admin) .hk28-workspace-grid{grid-template-columns:190px minmax(0,1fr)}
 body:not(.wp-admin) .hk28-header-tools .hk28-header-saved span{display:none}
}
@media(max-width:760px){
 body:not(.wp-admin) .hk28-wrap{width:calc(100% - 28px);padding-top:18px;padding-bottom:100px;font-size:15px}
 body:not(.wp-admin) .hk28-wrap h1{font-size:clamp(27px,8vw,33px)}
 body:not(.wp-admin) .hk28-wrap h2{font-size:20px}
 body:not(.wp-admin) .hk28-recipe-hero h1{font-size:clamp(27px,7.5vw,34px)}
 body:not(.wp-admin) .hk28-section {margin:26px 0}
 body:not(.wp-admin) .hk28-home-intro {min-height:0}
 body:not(.wp-admin) .hk28-intro-copy {padding:19px 15px}
 body:not(.wp-admin) .hk28-workspace-grid {display:block}
 body:not(.wp-admin) .hk28-sidebar {display:none}
 body:not(.wp-admin) .hk28-mobile-section-menu {display:block;margin-bottom:18px;position:relative;border:1px solid var(--hk28-line);border-radius:9px;background:var(--hk28-surface)}
 body:not(.wp-admin) .hk28-mobile-section-menu summary {cursor:pointer;display:flex;align-items:center;gap:10px;padding:12px 14px;min-height:48px;font-size:14px;font-weight:650;list-style:none}
 body:not(.wp-admin) .hk28-mobile-section-menu summary::-webkit-details-marker {display:none}
 body:not(.wp-admin) .hk28-mobile-section-menu summary .hk28-icon:last-child {margin-left:auto}
 body:not(.wp-admin) .hk28-mobile-section-menu nav {display:grid;padding:5px 9px 10px;border-top:1px solid var(--hk28-line)}
 body:not(.wp-admin) .hk28-mobile-section-menu nav a {padding:10px 12px;min-height:44px;font-size:14px;color:var(--hk28-ink);text-decoration:none;border-radius:7px}
 body:not(.wp-admin) .hk28-mobile-section-menu nav a[aria-current=page] {color:var(--hk28-accent);background:#e9f1ff;font-weight:700}
 body:not(.wp-admin) .hk28-grid {row-gap:19px;column-gap:10px}
 body:not(.wp-admin) .hk28-card-title {font-size:14px!important}
 body:not(.wp-admin) .hk28-card-bottom {min-height:36px}
 body:not(.wp-admin) .hk28-card .hk28-save {min-width:44px;min-height:44px}
 body:not(.wp-admin) .hk28-facts {gap:14px;margin:13px 0 17px}
 body:not(.wp-admin) .hk28-fact .hk28-icon {inline-size:18px;block-size:18px}
 body:not(.wp-admin) .hk28-recipe-hero-img {aspect-ratio:3/2}
 body:not(.wp-admin) .hk28-actions {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 body:not(.wp-admin) .hk28-actions .hk28-action{justify-content:center;font-size:12px;min-height:46px;min-width:0;padding:9px 5px;line-height:1.25}
 body:not(.wp-admin) .hk28-actions .hk28-organize{grid-column:3;order:0;width:auto}
 body:not(.wp-admin) .hk28-actions .hk28-primary{grid-column:1 / 4;grid-row:2}
 body:not(.wp-admin) .hk28-bucket-dialog {width:100%;max-width:100%;max-height:90dvh;border-radius:16px 16px 0 0;margin:0;bottom:0;top:auto}
 body:not(.wp-admin) .hk28-bucket-dialog .hk28-bucket-content {padding:7px 12px}
 body:not(.wp-admin) .hk28-bucket-dialog footer {padding-bottom:max(13px, env(safe-area-inset-bottom))}
 body:not(.wp-admin) .hk28-day-strip {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin:8px 0 14px}
 body:not(.wp-admin) .hk28-day-strip button{min-width:0;min-height:52px;border:1px solid var(--hk28-line);border-radius:7px;padding:7px 0;display:flex;flex-direction:column;align-items:center;gap:2px;background:#fff}
 body:not(.wp-admin) .hk28-day-strip button span{font-size:10px;color:var(--hk28-muted)}
 body:not(.wp-admin) .hk28-day-strip button strong{font-size:14px}
 body:not(.wp-admin) .hk28-day-strip button[aria-pressed=true]{background:#eaf2ff;color:var(--hk28-accent);border-color:var(--hk28-accent)}
 body:not(.wp-admin) .hk28-plan-days.is-enhanced .hk28-plan-day{display:none}
 body:not(.wp-admin) .hk28-plan-days.is-enhanced .hk28-plan-day.is-active{display:block}
 body:not(.wp-admin) .hk28-plan-days.is-enhanced{display:block}
 body:not(.wp-admin) .hk28-plan-day{margin-bottom:10px}
 /* Ensure the app footer is never concealed by fixed navigation. */
 body:not(.wp-admin) .site-footer {padding-bottom:max(74px, env(safe-area-inset-bottom))}
}
@media(max-width:380px){
 body:not(.wp-admin) .hk28-wrap {width:calc(100% - 24px)}
 body:not(.wp-admin) .hk28-grid {column-gap:8px}
 body:not(.wp-admin) .hk28-card-title{font-size:13px!important}
 body:not(.wp-admin) .hk28-facts{gap:10px}
}
@media(prefers-reduced-motion:reduce){
 body:not(.wp-admin) .hk28-card-media img{transition:none!important}
 body:not(.wp-admin) .hk28-toast{transition:none!important}
}
@media print {
 .hk28-bottom-nav,.hk28-floating-basket,.hk28-bucket-dialog,.hk28-save-dialog{display:none!important}
}

/* Collapsible grocery groups must visibly communicate their state. */
body:not(.wp-admin) .hk28-grocery-group summary {list-style:none}
body:not(.wp-admin) .hk28-grocery-group summary::-webkit-details-marker{display:none}
body:not(.wp-admin) .hk28-grocery-group summary::before {
  content:""; inline-size:16px; block-size:16px;flex:0 0 16px;
  background-color:var(--hk28-ink);
  -webkit-mask:url("icons/chevron-right.svg") center/contain no-repeat;
  mask:url("icons/chevron-right.svg") center/contain no-repeat;
}
body:not(.wp-admin) .hk28-grocery-group[open] summary::before {
  -webkit-mask-image:url("icons/chevron-down.svg");mask-image:url("icons/chevron-down.svg");
}
/* Legacy shortcode view shares the same palette and should not introduce unrelated burgundy UI. */
body:not(.wp-admin) .hk-recipe-card {--hk-accent:var(--hk28-accent,#215fcb);--hk-line:var(--hk28-line);--hk-ink:var(--hk28-ink)}
body:not(.wp-admin) .hk-recipe-card .hk-scale-button[aria-pressed=true] {background:var(--hk28-accent)!important;border-color:var(--hk28-accent)!important;color:white!important}
body:not(.wp-admin) .hk-my-kitchen-main,
body:not(.wp-admin) .hk-library-page {--hk-ux-accent:var(--hk28-accent,#215fcb);--hk-ux-accent-hover:#174fae;--hk-ux-accent-soft:#eaf2ff;--hk-ux-border:var(--hk28-line)}
body:not(.wp-admin) .hk-experience-actions :is(button,a),
body:not(.wp-admin) .hk-cook-dialog button {border-radius:7px}
body:not(.wp-admin) :is(.hk-cook-dialog,.hk-experience) {--hk-ux-accent:var(--hk28-accent,#215fcb)}
body:not(.wp-admin) .hk-cook-dialog :is(.hk-cook-next,.hk-cook-scale[aria-pressed=true]),
body:not(.wp-admin) .hk-experience-actions .hk-cook-start {background:var(--hk28-accent)!important;border-color:var(--hk28-accent)!important;color:#fff!important}

/* Compact discovery homepage, no large nonfunctional decorative panel. */
body:not(.wp-admin) .hk28-home-intro {grid-template-columns:1fr;min-height:0;border-radius:11px}
body:not(.wp-admin) .hk28-home-intro .hk28-intro-art{display:none}
body:not(.wp-admin) .hk28-intro-copy{padding:clamp(18px,2.4vw,29px)}
body:not(.wp-admin) .hk28-intro-copy h1{font-size:clamp(28px,3.2vw,42px);line-height:1.15}
body:not(.wp-admin) .hk28-searchform{margin:15px 0 0}
body:not(.wp-admin) .hk28-section{margin:30px 0}
body:not(.wp-admin) .hk28-shortcuts{gap:8px}
body:not(.wp-admin) .hk28-shortcuts a{display:flex;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:9px 12px;font-size:12px;border-radius:8px}
body:not(.wp-admin) .hk28-shortcuts .hk28-icon{inline-size:18px;block-size:18px}
body:not(.wp-admin) .hk28-single .hk28-actions .hk28-organize{display:none}
body:not(.wp-admin) .hk28-single.is-saved .hk28-actions .hk28-organize{display:inline-flex}
@media(max-width:760px){
 body:not(.wp-admin) .hk28-single .hk28-actions{display:flex;flex-wrap:wrap}
 body:not(.wp-admin) .hk28-single .hk28-actions :is(.hk28-save,.hk28-grocery){flex:1 1 40%}
 body:not(.wp-admin) .hk28-single .hk28-actions .hk28-organize{flex:0 0 44px;min-width:44px}
 body:not(.wp-admin) .hk28-single .hk28-actions .hk28-primary{order:5;flex:1 1 100%;width:100%}
 body:not(.wp-admin) .hk28-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}
 body:not(.wp-admin) .hk28-shortcuts a{font-size:12px;min-height:46px}
}
/* Override legacy broad descendant-span rules so all three metadata facts stay in one row. */
body:not(.wp-admin) .hk28-facts > .hk28-fact {
  padding:0;
  margin:0;
  min-width:0;
  border:0;
  border-radius:0;
  display:inline-flex;
  gap:6px;
  align-items:center;
}
body:not(.wp-admin) .hk28-facts > .hk28-fact > .hk28-icon {
  padding:0!important;
  border:0!important;
  min-width:0!important;
  inline-size:19px;
  block-size:19px;
  flex:0 0 19px;
}
@media(max-width:760px){body:not(.wp-admin) .hk28-facts{gap:12px;flex-wrap:nowrap}}

/* HK-UX-004: Refined homepage actions and default editorial compactness. */
body:not(.wp-admin) .hk28-home .hk28-card-excerpt {display:none}
body:not(.wp-admin) .hk28-home .hk28-grid {margin-top:12px}
body:not(.wp-admin) .hk28-home-links {
  display:flex; flex-wrap:wrap; justify-content:flex-start;
  gap:12px 24px; margin:26px 0 0; padding-top:16px;
  border-top:1px solid var(--hk28-line);
}
body:not(.wp-admin) .hk28-home-links a {
  display:inline-flex;align-items:center;gap:7px;
  color:var(--hk28-ink);font-size:13px;font-weight:650;
  text-decoration:none;min-height:42px;padding:4px 0;
}
body:not(.wp-admin) .hk28-home-links a .hk28-icon {inline-size:17px;block-size:17px;color:var(--hk28-muted)}
body:not(.wp-admin) .hk28-home-links a .hk28-icon:last-child {inline-size:14px;block-size:14px}
body:not(.wp-admin) .hk28-home-links a:hover{color:var(--hk28-accent)}
body:not(.wp-admin) :is(.hk28-header-basket,.hk28-menu-grocery) {position:relative}
body:not(.wp-admin) :is(.hk28-header-basket,.hk28-menu-grocery) .hk28-basket-count {
  position:absolute;top:0;right:0;min-inline-size:15px;line-height:15px;
  border-radius:999px;padding:0 3px;text-align:center;
  font-size:10px;font-weight:700;background:var(--hk28-accent);color:#fff;
}
body:not(.wp-admin) .hk28-basket-count[hidden] {display:none!important}
/* GeneratePress menu-bar utility actions are mobile-only; desktop has its established header controls. */
body:not(.wp-admin) .hk28-menu-utility {display:none!important}
@media(max-width:760px) {
 body:not(.wp-admin) .hk28-menu-utility {display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 44px}
 body:not(.wp-admin) .hk28-menu-utility :is(a,button) {
   position:relative;display:inline-flex;align-items:center;justify-content:center;
   inline-size:44px;block-size:44px;min-inline-size:44px;min-block-size:44px;
   background:transparent!important;border:0!important;padding:0!important;
   color:var(--hk28-ink);cursor:pointer;text-decoration:none;
 }
 body:not(.wp-admin) .hk28-menu-utility .hk28-icon{inline-size:21px;block-size:21px}
 body:not(.wp-admin) .hk28-menu-utility :is(a,button):focus-visible{outline:2px solid var(--hk28-accent);outline-offset:2px;border-radius:7px}
 body:not(.wp-admin) .hk28-menu-utility .hk28-basket-count{top:1px;right:1px}
 body:not(.wp-admin) .hk28-home-intro{min-height:0}
 body:not(.wp-admin) .hk28-home .hk28-intro-copy{padding:17px 16px}
 body:not(.wp-admin) .hk28-home .hk28-intro-copy h1{font-size:clamp(26px,7vw,30px);margin:7px 0 9px;line-height:1.16}
 body:not(.wp-admin) .hk28-home .hk28-intro-copy>p{font-size:14px;line-height:1.5;margin-bottom:0}
 body:not(.wp-admin) .hk28-home .hk28-searchform{margin:13px 0 0}
 body:not(.wp-admin) .hk28-home .hk28-section{margin:26px 0 20px}
 body:not(.wp-admin) .hk28-home-links{gap:5px 19px;margin-top:18px;padding-top:10px}
}

/* Prevent flex/grid intrinsic widths from clipping homepage search at 320–430px. */
@media(max-width:760px) {
 body:not(.wp-admin) .hk28-home-intro {grid-template-columns:minmax(0,1fr)}
 body:not(.wp-admin) .hk28-home .hk28-intro-copy {min-width:0}
 body:not(.wp-admin) .hk28-home .hk28-searchform {min-width:0;width:100%;max-width:100%}
 body:not(.wp-admin) .hk28-home .hk28-searchform input {min-width:0;flex:1 1 0;width:0}
 body:not(.wp-admin) .hk28-home .hk28-searchform button {flex:0 0 auto}
}
@media(max-width:359px) {
 body:not(.wp-admin) .hk28-home .hk28-searchform{flex-wrap:wrap}
 body:not(.wp-admin) .hk28-home .hk28-searchform input {flex:1 0 100%;width:100%}
 body:not(.wp-admin) .hk28-home .hk28-searchform button{width:100%}
}
