/* =========================================================================
   Gills — component styles for core-block sections (see reference/DESIGN.md)
   All page content is core blocks; these classes are set via "Additional CSS class".
   ========================================================================= */

/* ---------- Page shell ---------- */
.g-page .entry-content > *:first-child { margin-top: 0; }
.g-page .entry-content > .alignfull { margin-top: 0; margin-bottom: 0; }
.g-page [data-vertical-spacing] { padding-top: 0 !important; padding-bottom: 0 !important; }
.g-page .hero-section { display: none; }
.entry-content p { margin-block: 0 16px; }
.g-muted, .g-muted a { color: var(--g-muted); }
.entry-content .g-eyebrow, .g-eyebrow, .g-eyebrow a { color: var(--g-red) !important; }
.g-normalcase { text-transform: none !important; letter-spacing: 0 !important; }
.g-text-red { color: var(--g-red) !important; }
.g-h2-sm { font-size: 30px !important; line-height: 36px !important; }
.g-lead { color: var(--g-muted); max-width: 640px; margin-inline: auto !important; }
.g-narrow { max-width: 900px !important; margin-inline: auto !important; }
.g-mt { margin-top: 32px !important; }
.g-arrow { margin-left: 8px; color: var(--g-red); }

/* Sections */
.g-section { padding: var(--g-section-y) var(--g-gutter) !important; margin: 0 !important; }
.g-section > * + * { margin-top: 24px; }
.g-section h2 { margin: 0 0 24px; }
.g-section .g-eyebrow + h2, .g-section .g-eyebrow + h3 { margin-top: 0; }
.g-bg-grey { background: var(--g-grey); }
.g-bg-offwhite { background: var(--g-offwhite); }
.g-bg-cream { background: var(--g-cream); }
.g-bg-espresso { background: var(--g-espresso); }

/* ---------- Header (Blocksy builder) ---------- */
#header { --g-header-h: 92px; }
#header [data-row="middle"] { background: transparent !important; box-shadow: none !important; border: 0 !important; padding: 20px 32px 0; }
#header [data-row="middle"] > .ct-container {
	background: rgba(0, 0, 0, .7); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
	border-radius: var(--g-radius-pill); padding: 8px 12px 8px 24px; min-height: 0; height: 68px;
	max-width: 1376px;
}
#header .site-logo-container img { max-height: 40px; width: auto; }
#header .site-title, #header .site-description { display: none; }

/* Menu */
#header .menu > li > .ct-menu-link {
	font-family: var(--g-font-body); font-size: 14px; font-weight: 600; text-transform: none; letter-spacing: 0;
	color: var(--g-on-dark) !important; padding-inline: 14px; position: relative;
}
#header .menu > li > .ct-menu-link:hover,
#header .menu > li.current-menu-item > .ct-menu-link,
#header .menu > li.current-menu-ancestor > .ct-menu-link,
#header .menu > li.current_page_item > .ct-menu-link { color: var(--g-white) !important; }
#header .menu > li.current-menu-item > .ct-menu-link::after,
#header .menu > li.current-menu-ancestor > .ct-menu-link::after {
	content: ""; position: absolute; left: 14px; right: 14px; bottom: 14px; height: 2px; background: var(--g-red); border-radius: 2px;
}
#header .menu .sub-menu { background: #111; border-radius: 12px; padding: 8px 0; }
#header .menu .sub-menu .ct-menu-link { color: var(--g-on-dark) !important; font-size: 14px; }
#header .menu .sub-menu .ct-menu-link:hover { color: var(--g-white) !important; }
#header .menu .ct-toggle-dropdown-desktop svg, #header .menu .ct-toggle-dropdown-desktop { color: var(--g-on-dark); fill: currentColor; }

/* Icons + CTA */
#header .ct-header-search .ct-icon, #header .ct-header-cart .ct-icon, #header .ct-header-trigger .ct-icon { fill: var(--g-white) !important; color: var(--g-white) !important; }
#header .ct-header-cart .ct-dynamic-count-cart { background: var(--g-red); color: #fff; }
#header .ct-header-cart .ct-label { display: none !important; }
#header .ct-header-cta .ct-button {
	background: var(--g-red) !important; border-color: var(--g-red) !important; color: #fff !important;
	border-radius: var(--g-radius-pill) !important; font: 600 14px/20px var(--g-font-body); min-height: 40px; padding: 0 24px; text-transform: none;
}
#header .ct-header-cta .ct-button:hover { background: var(--g-red-dark) !important; border-color: var(--g-red-dark) !important; }

/* Overlay on pages that start with a hero; solid black bar elsewhere */
.g-has-hero #header { position: absolute; left: 0; right: 0; top: 0; z-index: 50; background: transparent !important; }
.admin-bar.g-has-hero #header { top: 32px; }
body:not(.g-has-hero) #header { background: var(--g-black); }
body:not(.g-has-hero) #header [data-row="middle"] { padding-bottom: 20px; }
.g-has-hero .g-hero { padding-top: 112px !important; }

/* Off-canvas (mobile) */
#offcanvas .ct-panel-inner { background: #0b0b0b; }
#offcanvas .mobile-menu a { color: var(--g-on-dark); font-family: var(--g-font-body); font-weight: 600; }

/* ---------- Hero (core/cover .g-hero) ---------- */
.g-hero { padding-inline: var(--g-gutter) !important; margin: 0 !important; }
.wp-block-cover.g-hero .wp-block-cover__inner-container,
.wp-block-cover.g-hero.has-custom-content-position .wp-block-cover__inner-container { width: 100% !important; max-width: var(--g-container) !important; margin-inline: auto !important; }
.g-hero__inner { max-width: 560px; }
.g-hero .g-eyebrow { margin-bottom: 12px; }
.g-hero h1, .g-hero h2 { color: var(--g-white); margin: 0 0 20px; }
.g-hero h1 { font-size: var(--g-fs-h1); line-height: 1; }
.g-hero .g-hero__text { color: var(--g-on-dark); font-size: 16px; line-height: 24px; max-width: 440px; margin-bottom: 28px; }
.g-hero .wp-block-buttons { gap: 12px; }
.g-cta-dark h2 { color: var(--g-red) !important; font-size: 36px; line-height: 40px; }

/* ---------- Buttons (block styles) ---------- */
.wp-block-button .wp-block-button__link { font-family: var(--g-font-body); font-size: 14px; font-weight: 600; line-height: 20px; padding: 10px 24px; border-radius: var(--g-radius-pill); }
.wp-block-button.is-style-g-outline-dark .wp-block-button__link { background: transparent; color: var(--g-ink); border: 1px solid var(--g-ink); }
.wp-block-buttons { gap: 12px; }

/* ---------- Split feature ---------- */
.g-split { gap: 64px !important; align-items: center; }
.g-split--spaced { margin-top: 96px !important; }
.g-split h2 { margin-bottom: 20px; }
.g-split p { color: var(--g-muted); }
.g-split__img img, .g-rounded img { border-radius: var(--g-radius-card); width: 100%; height: 100%; object-fit: cover; }
.g-numbered { padding-left: 20px; color: var(--g-muted); font-size: 14px; line-height: 22px; margin: 0 0 24px; }

/* ---------- Cards ---------- */
.g-card { background: var(--g-white); border-radius: var(--g-radius-card); box-shadow: var(--g-shadow-card); padding: 12px !important; height: 100%; }
.g-card > * { margin-block: 0 !important; }
.g-card > * + * { margin-top: 8px !important; }
.g-card__title, .g-card__title a { font-family: var(--g-font-body) !important; font-size: 14px !important; line-height: 20px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--g-ink); text-decoration: none; }
.g-card__img img { width: 100%; border-radius: 2px; display: block; }
.g-index { font-size: 11px; color: #888; margin: 0 !important; }
.g-cat-cards { gap: 16px !important; }
.g-cat-card { display: flex; flex-direction: column; }
.g-cat-card .g-card__title { min-height: 40px; }
.g-link-card { background: var(--g-cream); border-radius: var(--g-radius-card); padding: 14px 16px !important; max-width: 400px; margin-left: 0 !important; }
.g-link-card p { margin: 0; font-size: 14px; font-weight: 600; }
.g-link-card a { color: var(--g-ink); text-decoration: none; display: flex; justify-content: space-between; }

/* ---------- Stats + certifications ---------- */
.g-stats-band { padding-block: 48px !important; }
.g-stats { gap: 16px !important; }
.g-stat { background: var(--g-stat-card); border-radius: var(--g-radius-card); padding: 24px 32px !important; }
.g-stat > * { margin: 0 !important; }
.g-stat__num { font: 800 48px/1 var(--g-font-heading); color: var(--g-white); }
.g-stat__label { font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: var(--g-on-dark-muted); margin-top: 8px !important; }
.g-cert-panel { background: var(--g-grey-light); border-radius: var(--g-radius-panel-lg); padding: 32px !important; max-width: 1000px !important; margin: 48px auto 0 !important; }
.g-cert-panel > * { margin-block: 0 0 4px !important; }
.g-cert-panel h3 { font-size: 24px; margin-bottom: 20px !important; }
.g-cert-strip { background: var(--g-white); border-radius: var(--g-radius-panel); padding: 16px 24px !important; }
.g-cert-strip figure { margin: 0 !important; }
.g-cert-strip img { width: 100%; height: auto; }

/* ---------- Process video poster ---------- */
.g-process { padding-inline: 0 !important; }
.g-process > h2 { padding-inline: var(--g-gutter); }
.g-process .g-video { max-width: none !important; width: 100%; margin: 0 !important; position: relative; }
.g-video img { width: 100% !important; height: auto; display: block; }
.g-video a { display: block; }
.g-video::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; transform: translate(-50%, -50%);
	border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23E30613'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") 55% 50% / 26px no-repeat;
	box-shadow: var(--g-shadow-elev); pointer-events: none;
}

/* ---------- Client logo marquee ---------- */
.g-clients { padding-bottom: 0 !important; background: var(--g-white); }
/* Each logo is its own Image block (.g-logo). Static centred row without JS; marquee.js adds the scrolling track. */
.g-marquee { --g-mgap: 56px; overflow: hidden; border-block: 1px solid #e5e5e5; padding-block: 28px !important; gap: var(--g-mgap) !important; max-width: none !important; margin-inline: calc(var(--g-gutter) * -1) !important; align-items: center; }
.g-marquee .g-logo { flex: 0 0 auto; margin: 0 !important; }
.g-marquee .g-logo img { height: 70px; width: auto; max-width: 170px; object-fit: contain; }
.g-marquee.is-animated { display: block; }
.g-marquee__track { display: flex; align-items: center; gap: var(--g-mgap); width: max-content; animation: g-marquee var(--g-marquee-duration, 30s) linear infinite; }
.g-marquee:hover .g-marquee__track { animation-play-state: paused; }
@keyframes g-marquee { from { transform: translateX(0); } to { transform: translateX(calc(-50% - var(--g-mgap) / 2)); } }
@media (prefers-reduced-motion: reduce) { .g-marquee__img { animation: none; } }

/* ---------- Icon value cards ---------- */
.g-icon-cards { gap: 16px !important; }
.g-icon-card { background: var(--g-white); border-radius: var(--g-radius-card); padding: 24px !important; height: 100%; }
.g-icon-card > * { margin-block: 0 !important; }
.g-icon-card p { color: var(--g-muted); font-size: 14px; line-height: 20px; margin-top: 12px !important; }
.g-icon-card__title { color: var(--g-red) !important; font-size: 18px !important; line-height: 24px !important; }
.g-icon-card[class*="g-ico-"]:not(.g-icon-card--inline)::before {
	content: ""; display: block; width: 36px; height: 36px; border-radius: 50%; margin-bottom: 16px;
	background: var(--g-red-tint) var(--g-ico) 50% 50% / 18px no-repeat;
}
.g-icon-card--inline .g-icon-card__title { display: flex; align-items: center; gap: 8px; }
.g-icon-card--inline .g-icon-card__title::before { content: ""; width: 18px; height: 18px; background: var(--g-ico) 50% 50% / 18px no-repeat; }
.g-icon-card--plain::before { display: none !important; }

/* Icon set (lucide-style, red stroke) */
.g-ico-shield   { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.g-ico-users    { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
.g-ico-repeat   { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m17 2 4 4-4 4'/%3E%3Cpath d='M3 11v-1a4 4 0 0 1 4-4h14'/%3E%3Cpath d='m7 22-4-4 4-4'/%3E%3Cpath d='M21 13v1a4 4 0 0 1-4 4H3'/%3E%3C/svg%3E"); }
.g-ico-eye      { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.g-ico-target   { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E"); }
.g-ico-clipboard{ --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E"); }
.g-ico-drop     { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z'/%3E%3C/svg%3E"); }
.g-ico-pin      { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.g-ico-factory  { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M2 20V8l6 4V8l6 4V4h8v16Z'/%3E%3Cpath d='M17 16h1M12 16h1M7 16h1'/%3E%3C/svg%3E"); }
.g-ico-phone    { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.g-ico-mail     { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
.g-ico-clock    { --g-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E30613' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }

/* ---------- Timeline ---------- */
.g-timeline { max-width: 640px !important; margin: 0 auto !important; border-left: 1px solid #ddd; padding-left: 24px !important; }
.g-timeline__item { position: relative; padding-bottom: 20px !important; }
.g-timeline__item > * { margin: 0 !important; }
.g-timeline__item p:not(.g-eyebrow) { font-size: 14px; color: var(--g-muted); }
.g-timeline__item::before { content: ""; position: absolute; left: -30px; top: 2px; width: 11px; height: 11px; border-radius: 50%; background: var(--g-red); }
.g-logo-strip { max-width: 1000px !important; margin-inline: auto !important; }
.g-logo-strip img { width: 100%; height: auto; }
/* Static logo row (subsidiaries): one Image block per logo */
.g-logo-row { gap: 48px 56px !important; align-items: center; max-width: 1100px !important; margin: 40px auto 0 !important; }
.g-logo-row .g-logo { flex: 0 0 auto; margin: 0 !important; }
.g-logo-row .g-logo img { height: 100px; width: auto; max-width: 150px; object-fit: contain; }
@media (max-width: 781px) {
	.g-logo-row { gap: 28px 32px !important; }
	.g-logo-row .g-logo { flex-basis: calc(33.333% - 22px); display: flex; justify-content: center; }
	.g-logo-row .g-logo img { height: 64px; max-width: 100%; }
}

/* ---------- Post grids (Query Loop) ---------- */
.g-post-grid .wp-block-post-template { gap: 16px; }
.g-post-grid .wp-block-post { background: var(--g-white); border-radius: var(--g-radius-card); box-shadow: var(--g-shadow-card); padding: 12px; display: flex; flex-direction: column; }
.g-post-grid .wp-block-post > * { margin: 0 0 8px !important; }
.g-post-grid .wp-block-post-terms.g-eyebrow, .g-post-grid .wp-block-post-terms.g-eyebrow a { font-size: 10px; color: var(--g-red); text-decoration: none; }
.g-post-grid .wp-block-post-title, .g-post-grid .wp-block-post-title a { font: 600 14px/20px var(--g-font-body); text-transform: none; color: var(--g-ink); text-decoration: none; letter-spacing: 0; }
.g-post-grid .wp-block-post-featured-image img { border-radius: 2px; }
.g-post-grid .wp-block-read-more { color: var(--g-red); font-size: 12px; font-weight: 600; text-decoration: none; margin-top: auto !important; }
.g-post-grid--news .wp-block-post { padding: 0; overflow: hidden; position: relative; }
.g-post-grid--news .wp-block-post > *:not(.wp-block-post-featured-image) { padding-inline: 16px; }
.g-post-grid--news .wp-block-post-featured-image { margin-bottom: 12px !important; }
.g-post-grid--news .wp-block-post-excerpt { font-size: 13px; color: var(--g-muted); }
.g-post-grid--news .wp-block-post-excerpt__more-text { display: none; }
.g-post-grid--news .wp-block-post-date { font-size: 12px; padding-bottom: 16px; }
.g-badge { position: absolute; top: 12px; left: 12px; padding: 0 !important; }
.g-badge a { background: var(--g-white); color: var(--g-red); font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: var(--g-radius-pill); text-decoration: none; }
.g-featured-post h2, .g-featured-post h2 a { font-size: 30px; line-height: 36px; text-transform: uppercase; color: var(--g-ink); text-decoration: none; }
.g-featured-post .wp-block-post-excerpt { color: var(--g-muted); }
.g-featured-post .wp-block-post-excerpt__more-link { display: inline-flex; margin-top: 12px; background: var(--g-red); color: #fff; padding: 10px 24px; border-radius: var(--g-radius-pill); font-size: 14px; font-weight: 600; text-decoration: none; }
.g-featured-post .wp-block-post-featured-image img { border-radius: var(--g-radius-panel); }

/* Pill bar (news filters, contact tabs) */
.g-pillbar-band { padding-block: 16px !important; }
.g-pillbar { flex-wrap: nowrap !important; gap: 12px; }
.g-pillbar .wp-block-button { flex: 1 1 0; }
.g-pillbar .wp-block-button__link { width: 100%; text-align: center; }

/* ---------- Bakery masonry ---------- */
.g-masonry { gap: 16px !important; margin-top: 32px !important; }
.g-masonry .wp-block-column > * + * { margin-top: 16px !important; }
.g-bake-card { height: auto; padding: 0 0 16px !important; overflow: hidden; }
.g-bake-card > *:not(figure) { padding-inline: 12px; }
.g-bake-card .g-card__title { font-size: 16px !important; font-family: var(--g-font-heading) !important; font-weight: 700 !important; }
.g-bake-card .g-muted { font-size: 13px; }
.g-eyebrow--gold { color: #A16207 !important; font-size: 10px !important; margin-top: 12px !important; }
.g-bg-cream .wp-block-buttons { margin-top: 40px; justify-content: center; }

/* ---------- Recipes ---------- */
.g-head-row { margin-bottom: 24px !important; }
.g-head-row h2 { margin: 0; }
.g-textlink a { color: var(--g-red); font-size: 14px; font-weight: 600; text-decoration: none; }
.g-recipe-cat { padding: 8px !important; border-radius: var(--g-radius-panel); }
.g-recipe-cat .g-card__title { padding: 8px 4px; margin: 0 !important; }
.g-recipe-cat .g-card__title a { display: flex; justify-content: space-between; }
.g-recipe-cat .g-card__title a::after { content: "›"; font-size: 18px; line-height: 18px; }
.g-recipe-cat img, .g-recipe-card img { border-radius: var(--g-radius-panel) !important; }
.g-recipe-card { padding: 0 0 16px !important; border-radius: var(--g-radius-panel); overflow: hidden; box-shadow: var(--g-shadow-elev); }
.g-recipe-card > *:not(figure) { padding-inline: 12px; }
.g-recipe-card img { border-radius: 0 !important; }
.g-recipe-meta { font-size: 12px; color: var(--g-muted); }
.g-ico-time::before { content: "⏱ "; }
.g-ico-level { margin-left: 12px; }
.g-ico-level::before { content: "◔ "; }

/* ---------- Careers ---------- */
.g-perks { gap: 0 !important; }
.g-perk { border-left: 1px solid #bbb; padding-inline: 16px !important; }
.g-perk__title { font: 600 15px/20px var(--g-font-body) !important; margin-bottom: 8px !important; }
.g-perk p { font-size: 13px; line-height: 18px; }
.g-jobs { gap: 40px !important; }
.g-dept-list { list-style: none; padding: 0 !important; margin: 0; }
.g-dept-list li { border-bottom: 1px solid #ddd; }
.g-dept-list a { display: flex; justify-content: space-between; padding: 12px 0; font-size: 14px; color: var(--g-ink); text-decoration: none; }
.g-dept-list a::after { content: "→"; }
.g-dept-list a:hover { color: var(--g-red); }
.g-cta h2 { margin-bottom: 4px !important; }
.g-cta p { margin-bottom: 20px; }

/* ---------- Export flags ---------- */
.g-flags { gap: 16px !important; align-items: center; }
.g-flags figure { margin: 0 !important; }
.g-flag img { width: 40px; height: 26px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }

/* ---------- Contact ---------- */
.g-contact__cols { gap: 48px !important; margin-top: 40px !important; }
.g-contact-row { position: relative; padding: 16px 0 16px 56px !important; border-bottom: 1px solid #e5e5e5; }
.g-contact-row:last-child { border-bottom: 0; }
.g-contact-row > * { margin: 0 !important; font-size: 13px; color: var(--g-muted); }
.g-contact-row a { color: inherit; text-decoration: none; }
.g-contact-row__label { font-weight: 700; color: var(--g-ink) !important; text-transform: uppercase; font-size: 11px !important; }
.g-contact-row::before { content: ""; position: absolute; left: 0; top: 16px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--g-red); background: var(--g-ico) 50% 50% / 16px no-repeat; }
.g-form-panel { background: var(--g-grey-light); padding: 32px !important; }
.g-form-panel .wpcf7 input:not([type="submit"]), .g-form-panel .wpcf7 textarea, .g-form-panel .wpcf7 select {
	width: 100%; background: #fff; border: 0; border-radius: 2px; padding: 10px 12px; font: 400 13px/20px var(--g-font-body);
}
.g-form-panel .wpcf7 input[type="submit"] { background: var(--g-red); color: #fff; border: 0; border-radius: var(--g-radius-pill); padding: 10px 28px; font: 600 14px/20px var(--g-font-body); cursor: pointer; }
.g-form-panel .wpcf7 input[type="submit"]:hover { background: var(--g-red-dark); }
.g-findus .g-map { width: 100%; height: 380px; border: 0; border-radius: var(--g-radius-panel); margin-top: 32px; display: block; }

/* ---------- Products catalogue (/products) ---------- */
.g-catalogue__cols { gap: 40px !important; }
.g-catalogue__side .g-eyebrow { margin-bottom: 12px; }
.g-cat-pills ul, ul.wc-block-product-categories-list { list-style: none; padding: 0 !important; margin: 0; }
.g-cat-pills li { margin: 0 0 8px; }
.g-cat-pills li a { display: flex; justify-content: space-between; background: var(--g-grey-light); color: var(--g-ink); border-radius: var(--g-radius-pill); padding: 10px 18px; font-size: 13px; font-weight: 600; text-decoration: none; }
.g-cat-pills li a::after { content: "›"; }
.g-cat-pills li a:hover { background: var(--g-red); color: #fff; }
.g-protein-list { list-style: none; padding: 0 !important; font-size: 13px; }
.g-protein-list a { color: var(--g-ink); text-decoration: none; }
.g-protein-list a::before { content: ""; display: inline-block; width: 12px; height: 12px; border: 1px solid #999; border-radius: 2px; margin-right: 8px; vertical-align: -1px; }
.g-catalogue h2.g-normalcase { font-size: 30px !important; margin-bottom: 4px; }

/* Catalogue: active pill, checkboxes, toolbar (enhanced by assets/js/catalog.js) */
.g-cat-pills li.is-active a, .g-cat-pills li a[aria-current="true"] { background: var(--g-red); color: #fff; }
.g-protein-list li { margin-bottom: 8px; }
.g-check { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 13px; color: var(--g-ink); }
.g-check input { width: 14px; height: 14px; margin: 0; accent-color: var(--g-red); cursor: pointer; }
.g-protein-list:has(.g-check) a::before { display: none; }
.g-cat-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.g-cat-head__title > * { margin: 0 !important; }
.g-cat-head__title h2 { margin-bottom: 4px !important; }
.g-cat-toolbar { display: flex; gap: 12px; flex-wrap: wrap; }
.g-cat-search input, .g-cat-sort select {
	height: 40px; border: 1px solid #ddd; border-radius: var(--g-radius-pill); background-color: #fff;
	font: 400 13px/20px var(--g-font-body); color: var(--g-ink); box-shadow: none;
}
.g-cat-search input {
	width: 230px; padding: 0 16px 0 38px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 14px 50% / 16px no-repeat;
}
.g-cat-sort select { padding: 0 36px 0 16px; cursor: pointer; }
.g-cat-search input:focus, .g-cat-sort select:focus { border-color: var(--g-red); outline: none; }
.g-cat-empty { padding: 40px 0; text-align: center; color: var(--g-muted); }
@media (max-width: 781px) {
	.g-cat-toolbar, .g-cat-search, .g-cat-search input { width: 100%; }
	.g-cat-sort, .g-cat-sort select { width: 100%; }
}

/* WooCommerce product cards (shop, categories, [products]) */
.woocommerce ul.products, [data-products] { gap: 16px !important; }
[data-products] .product, .woocommerce ul.products li.product { background: var(--g-white); border-radius: var(--g-radius-card); box-shadow: var(--g-shadow-card); padding: 12px !important; }
[data-products] .product .ct-media-container, .woocommerce ul.products li.product a img { border-radius: 2px; background: var(--g-offwhite); }
.g-card-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.g-card-gallery img { aspect-ratio: 1; object-fit: cover; width: 100%; height: auto; border-radius: 2px; }
[data-products] .product .woocommerce-loop-product__title, .woocommerce ul.products li.product .woocommerce-loop-product__title { font: 600 14px/20px var(--g-font-body) !important; text-transform: none; letter-spacing: 0; color: var(--g-ink); margin-top: 12px; }
.g-size { display: block; font-size: 12px; color: var(--g-muted); }
[data-products] .product .price:empty { display: none; }
[data-products] .product { position: relative; }
[data-products] .product .ct-woo-card-actions { position: absolute; right: 12px; bottom: 14px; margin: 0 !important; }
[data-products] .product .ct-woo-card-actions .button {
	width: 28px; height: 28px; min-height: 0; padding: 0 !important; border-radius: 50% !important;
	background: var(--g-white) !important; border: 1px solid #ddd !important; color: var(--g-ink) !important;
	font-size: 0 !important; display: inline-flex; align-items: center; justify-content: center; box-shadow: none;
}
[data-products] .product .ct-woo-card-actions .button::after { content: "›"; font-size: 18px; line-height: 1; margin-top: -2px; }
[data-products] .product .ct-woo-card-actions .button:hover { background: var(--g-red) !important; border-color: var(--g-red) !important; color: #fff !important; }
[data-products] .product .ct-woo-card-actions .added_to_cart { display: none; }
[data-products] .product .woocommerce-loop-product__title { padding-right: 36px; }

/* Site background: white (Blocksy's default is an off-white) */
body, .site-main, #main-container { background-color: var(--g-white); }

/* ---------- Footer ---------- */
#footer, .ct-footer { background: var(--g-black) !important; color: var(--g-white); }
.ct-footer [data-row] { background: transparent !important; border-color: rgba(255,255,255,.3) !important; }
.ct-footer [data-row="middle"] { padding-block: 56px 32px; }
.ct-footer .widget-title, .ct-footer h2, .ct-footer h3 { color: var(--g-white) !important; font: 700 11px/16px var(--g-font-body) !important; letter-spacing: 1.2px; text-transform: uppercase; margin-bottom: 16px; }
.ct-footer, .ct-footer p, .ct-footer li, .ct-footer a, .ct-footer .ct-footer-copyright { color: var(--g-on-dark) !important; font-family: var(--g-font-body) !important; font-size: 13px; line-height: 20px; text-decoration: none; }
.ct-footer p { margin: 0 0 4px; }
.ct-footer .ct-widget { margin-bottom: 0; }
.ct-footer .ct-widget + .ct-widget { margin-top: 0; }
.ct-footer [data-column] { gap: 0 !important; }
.ct-footer a:hover { color: var(--g-white) !important; }
.ct-footer ul { list-style: none; padding: 0; margin: 0; }
.ct-footer li { margin-bottom: 10px; }
.ct-footer .g-foot-label { font-weight: 700; font-size: 11px !important; color: #fff !important; text-transform: uppercase; margin: 16px 0 2px; }
.ct-footer .g-foot-logo img { max-width: 72px; height: auto; }
.ct-footer .g-socials { gap: 8px !important; margin-top: 24px; }
.ct-footer .g-socials a { width: 32px; height: 32px; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 10px !important; font-weight: 700; }
.ct-footer [data-row="bottom"] { border-top: 1px solid rgba(255,255,255,.3); }
.ct-footer [data-row="bottom"] .ct-footer-copyright, .ct-footer [data-row="bottom"] p { font-size: 12px; }
.ct-footer .g-legal a { text-decoration: underline !important; font-size: 12px; }

/* ---------- Responsive ---------- */
@media (max-width: 999px) {
	#header [data-row="middle"] { padding: 12px 16px 0; }
	#header [data-row="middle"] > .ct-container { height: 60px; padding-inline: 16px 8px; }
	.g-split, .g-jobs, .g-contact__cols, .g-catalogue__cols { gap: 32px !important; }
	.g-perk { border-left: 0; border-top: 1px solid #bbb; padding: 12px 0 0 !important; }
}
@media (max-width: 781px) {
	.g-hero { min-height: 560px !important; }
	.g-has-hero .g-hero { padding-top: 96px !important; }
	.g-split--spaced { margin-top: 56px !important; }
	.g-split .wp-block-column:has(.g-split__img) { order: -1; }
	.g-pillbar { flex-wrap: wrap !important; }
	.g-pillbar .wp-block-button { flex: 1 1 45%; }
	.g-stat__num { font-size: 40px; }
	.g-catalogue__side { order: 0; }
	.g-form-panel { padding: 24px !important; }
	.g-marquee .g-logo img { height: 52px; max-width: 130px; }
	.g-marquee { --g-mgap: 36px; }
}
