/*
Theme Name: No33
Theme URI: https://no33cafe.co.uk
Author: RevUp Online
Author URI: https://revuponline.co.uk
Description: Block theme for No33 Cafe. Three locations, menus per cafe, WooCommerce cake ordering.
Version: 7.13.4
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: no33
*/

/* Header: navy bar, nav left, LOCATIONS right. The round logo sits over each page hero. */
.no33-header .wp-block-navigation a, .no33-header .wp-block-navigation .wp-block-navigation-item__content { color: #FFFDF8; }
.no33-header .sim-burger, .no33-header .wp-block-navigation__responsive-container-open { color: #FFFDF8; }
html { overflow-x: clip; }

/* 5px gap between header and page */
.no33-header { margin-bottom: 5px; }

/* Nav links in the stamp font */
.no33-header .wp-block-navigation a, .no33-header .wp-block-navigation .wp-block-navigation-item__content { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-size: 28px; letter-spacing: .05em; font-weight: 400; line-height: 1; padding-top: 0; padding-bottom: 0; }
/* LOCATIONS button styled like the hero tabs */
.no33-header .wp-block-button__link { background: #FF8959 !important; color: #0C1A23 !important; font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-size: 28px !important; font-weight: 400; letter-spacing: .05em; line-height: 1; padding: 6px 20px 4px; border: 0; border-radius: 0; }
.no33-header .wp-block-button__link:hover { background: #FF8959 !important; color: #0C1A23 !important; }
.no33-header, .wp-site-blocks > header { position: relative; z-index: 20; }
/* Live WP inserts blockGap margins between header/content/footer; kill them so the hero sits flush under the nav */
body { margin: 0 !important; }
.wp-site-blocks { padding: 0 !important; }
.wp-site-blocks > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
/* intentional breathing room between the nav bar and the page */
.wp-block-post-content { margin-block-start: 5px !important; }
.wp-site-blocks > .wp-block-group.no33-header, header.wp-block-template-part, .wp-block-template-part .no33-header { margin: 0 !important; }
.no33-header { padding-top: 0 !important; padding-bottom: 0 !important; }
/* hero styling even if it is not :first-child on live */
.no33-hero.wp-block-cover.alignfull { margin-top: 0 !important; min-height: 780px !important; align-items: flex-end !important; padding-bottom: 44px; }
.no33-header .wp-block-site-logo { display: none; }
.no33-header .alignwide { display: grid !important; grid-template-columns: 1fr auto; align-items: center; min-height: 66px; }
.no33-header .alignwide > .wp-block-navigation { justify-self: start; grid-column: 1; min-width: 0; flex-wrap: wrap; }
/* nav gap enforced in CSS: blockGap on the nav block gets lost when the header part is customised in the DB */
.no33-header .wp-block-navigation, .no33-header .wp-block-navigation .wp-block-navigation__container { gap: 14px 52px !important; }
.no33-header .alignwide > * { min-width: 0; }
.no33-header .alignwide > .wp-block-buttons { justify-self: end; grid-column: 2; }
/* White logo mark overlaid on the first hero of every page */
.wp-block-post-content > .wp-block-cover.alignfull:first-child::after { content: ""; position: absolute; top: 26px; left: 50%; transform: translateX(-50%); width: 440px; height: 440px; background: url('https://www.no33cafe.co.uk/wp-content/uploads/2023/03/No33-logo-white.svg') center/contain no-repeat; z-index: 2; pointer-events: none; filter: drop-shadow(0 1px 8px rgba(12,26,35,.35)); }
@media (max-width: 781px) {
  .wp-block-post-content > .wp-block-cover.alignfull:first-child::after { width: 280px; height: 280px; top: 16px; }
}
/* Hero holds the big logo + orange tabs: taller, content pinned to the bottom */
.wp-block-post-content > .wp-block-cover.alignfull:first-child { min-height: 780px !important; align-items: flex-end !important; padding-bottom: 44px; }
/* Inner pages: shorter hero, half the dead space above the page title */
.wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero) { min-height: 620px !important; padding-bottom: 28px; }
@media (max-width: 781px) {
  .wp-block-post-content > .wp-block-cover.alignfull:first-child { min-height: 600px !important; }
  .wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero) { min-height: 470px !important; }
}

/* Location info panel: dark band under the hero */
.no33-infopanel { gap: 0 !important; }
.no33-infopanel > .wp-block-column { border-right: 1px solid rgba(255,253,248,.16); padding: 4px 32px; margin: 0 !important; }
.no33-infopanel > .wp-block-column:first-child { padding-left: 0; }
.no33-infopanel > .wp-block-column:last-child { border-right: 0; padding-right: 0; }
.no33-infopanel p:not(.has-green-color) { color: #FFFDF8; }
.no33-infopanel a { color: #FFFDF8; }

/* Location page info bar: hairline dividers */
.no33-infobar { border-top: 1px solid #ECE5D6; border-bottom: 1px solid #ECE5D6; gap: 0 !important; }
.no33-infobar > .wp-block-column { border-right: 1px solid #ECE5D6; padding: 26px 32px; margin: 0 !important; }
.no33-infobar > .wp-block-column:last-child { border-right: 0; }

/* Bold numbered feature cells (sitewide) */
.no33-cells { counter-reset: no33cell; border: 0 !important; gap: 0 48px !important; }
.no33-cells > .wp-block-column { counter-increment: no33cell; border: 0 !important; padding: 8px 0; margin: 0 !important; flex: 1 1 0 !important; min-width: 0; }
.no33-cells > .wp-block-column::before { content: counter(no33cell); display: block; font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif; font-size: 84px; line-height: 1; color: #FF8959; margin-bottom: 4px; }
.no33-cells > .wp-block-column::after { content: ""; display: block; width: 56px; height: 6px; background: #FF8959; margin-top: 18px; }
.no33-cells h3 { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-size: 34px !important; font-weight: 400 !important; line-height: 1.05; margin: 0 0 10px !important; }
.no33-cells p { font-size: 17px; line-height: 1.6; }
.has-green-background-color .no33-cells > .wp-block-column::before { color: #FFFDF8; }
.has-green-background-color .no33-cells > .wp-block-column::after { background: #0C1A23; }

/* Bold location cards (contact page) */
.no33-cards > .wp-block-column { border: 4px solid #0C1A23; background: #FFFDF8; padding: 32px; }
.no33-cards h3 { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-size: 32px !important; font-weight: 400 !important; }

/* Fallback layout widths in case theme.json settings are not applied */
:root { --wp--style--global--content-size: 1400px; --wp--style--global--wide-size: 1720px; }
.wp-block-post-content > :where(:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide)) { max-width: min(1400px, calc(100% - 96px)); margin-left: auto; margin-right: auto; }
.wp-block-post-content > .alignwide { max-width: min(1720px, calc(100% - 96px)); margin-left: auto; margin-right: auto; }

/* Full-bleed sections: let alignfull covers/bands span the viewport */
.wp-block-post-content > .alignfull { max-width: none !important; width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
/* WP core is-layout-constrained emits its own margins for alignfull; beat it */
.is-layout-constrained > .alignfull { max-width: none !important; }
.wp-block-post-content.is-layout-constrained > .alignfull { width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }

/* Padding pass: breathing room to match the design */
.wp-block-cover.alignfull { padding: 48px; }               /* hero text inset */
.wp-block-post-content { padding-bottom: 64px; }
.wp-block-post-content:has(> .alignfull:last-child) { padding-bottom: 0; } /* pages ending in a full-bleed band meet the footer flush */
.wp-block-media-text.alignfull .wp-block-media-text__content { padding: 48px 64px; } /* cakes band text */
.wp-block-columns { margin-top: 16px; margin-bottom: 16px; }


/* Dark navy footer (current-site palette) */
.no33-footer { overflow: hidden; }
.no33-footer, footer .no33-footer, .wp-site-blocks > footer { margin-top: 5px !important; }
.no33-footer h4 { color: #FFFDF8; }
.no33-footer p { color: rgba(255,253,248,.78); }
.no33-footer a { color: #FF8959; }
/* Peach works as accent on navy; on cream keep peach for bold labels only */
.wp-block-cover .has-green-color { color: #FF8959; }

/* Alternating band: cells inside sand bands use a deeper hairline */
.has-sand-background-color .no33-cells, .has-sand-background-color .no33-infobar { border-top: 0; border-bottom: 0; }
.has-sand-background-color .no33-cells > .wp-block-column { border-right-color: rgba(12,26,35,.1); }
.has-sand-background-color .no33-cards > .wp-block-column { background: #FFFDF8; border-color: rgba(12,26,35,.08); }

/* Hero readability: gradient scrim + text shadow */
.wp-block-cover .wp-block-cover__inner-container { text-shadow: 0 2px 20px rgba(12,26,35,.6), 0 1px 3px rgba(12,26,35,.5); }
.wp-block-cover .wp-block-button__link { text-shadow: none; }
/* Considered rhythm: air around section headings and columns */


.wp-block-cover { padding: 56px 48px; }

/* Hero image fader */
.no33-hero .no33-fade { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.2s ease; z-index: 0; }
.no33-hero .no33-fade.on { opacity: 1; }
.no33-hero .wp-block-cover__background { z-index: 1; }
.no33-hero .wp-block-cover__inner-container { position: relative; z-index: 2; }

/* Display headings: zai Coffee Sackful Stamp (caps-only stamp font).
   LICENCE: free for personal use only. Buy a commercial licence from the
   designer before launch, then self-host the TTF in assets/fonts/ and
   swap the CDN import below for a local @font-face. */
h1, h2, .wp-block-heading:is(h1, h2) { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; letter-spacing: .03em; font-weight: 400; }
h3, h4, h5 { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; letter-spacing: .03em; }

/* Vertical rhythm: one system for all top-level sections */
.wp-block-post-content > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.wp-block-post-content > * + * { margin-top: 32px !important; }
.wp-block-post-content > h2 { margin-top: 64px !important; }
.wp-block-post-content > .alignfull { margin-top: 64px !important; }
.wp-block-post-content > .alignfull:first-child { margin-top: 0 !important; }
.wp-block-post-content > .alignfull + .alignfull { margin-top: 5px !important; }


.wp-block-columns.are-vertically-aligned-center { align-items: center; }
.wp-block-column.is-vertically-aligned-center { align-self: center; }

/* Exact symmetry for the last section: 64px above (after a band) and 64px below */
.wp-block-post-content > .alignfull + :not(.alignfull):not(h2) { margin-top: 64px !important; }
.wp-block-post-content > .alignfull + h2 { margin-top: 40px !important; }
/* No stray first/last margins inside columns so section edges measure true */
.wp-block-column > :first-child { margin-top: 0 !important; }
.wp-block-column > :last-child { margin-bottom: 0 !important; }

/* First-section navy title bands clear the overlapping logo disc */
.wp-block-post-content > .wp-block-group.has-ink-background-color:first-child { padding-top: 64px !important; }

/* Header + footer rows: full width, padding is the only inset */
.no33-header .alignwide, .no33-footer .alignwide { max-width: none !important; width: 100%; margin-left: 0 !important; margin-right: 0 !important; }

/* All buttons in the stamp heading font */
.wp-block-button__link { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-size: 20px !important; font-weight: 400 !important; letter-spacing: .05em; line-height: 1; padding: 14px 26px 11px; }
.is-style-outline .wp-block-button__link { padding: 12.5px 24.5px 9.5px; }

/* Centred button blocks (WP runtime adds layout classes; keep preview + front-end in sync) */
.wp-block-buttons.no33-center { display: flex; justify-content: center; }

/* Work-for-us offer list: spaced rows with hairline dividers */
.no33-offer-list { list-style: none; padding-left: 0; margin: 0; }
.no33-offer-list li { padding: 12px 0; border-bottom: 1px solid #ECE5D6; }
.no33-offer-list li:last-child { border-bottom: 0; }

/* Buttons on peach bands must not hover to peach */
.has-green-background-color .wp-block-button__link:hover { background: #FFFDF8 !important; color: #0C1A23 !important; }
/* ...but on white cards, hover to peach instead of white */
.no33-cafecards .wp-block-button__link:hover, .no33-cards .wp-block-button__link:hover { background: #FF8959 !important; color: #0C1A23 !important; }

.wp-block-cover .wp-block-cover__inner-container a:not(.wp-block-button__link) { color: #FF8959; }


/* Active menu tab: no hover change */
.no33-active-tab .wp-block-button__link:hover { background: #FFFDF8 !important; color: #0C1A23 !important; cursor: default; }

/* Footer: white logo mark overlaid on the right, behind the columns */
.no33-footer { position: relative; overflow: hidden; }
.no33-footer .no33-footer-logo { position: absolute; right: -50px; top: 50%; transform: translateY(-50%); width: 480px; height: 480px; opacity: .28; filter: sepia(1) saturate(3) hue-rotate(165deg) brightness(.9); pointer-events: none; }
.no33-footer .alignwide { position: relative; z-index: 1; }

/* Footer detail to match the current site */
.no33-footer h4 { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; color: #FF8959 !important; letter-spacing: .06em; font-size: 24px !important; }
.no33-hours .d { display: inline-block; width: 76px; }

.no33-footer p.has-green-color { color: #FF8959 !important; }

/* Homepage photo mosaic */
.no33-mosaic { gap: 5px !important; }
.no33-mosaic-wrap { padding: 0 !important; }
.no33-mosaic-wrap > .no33-mosaic { max-width: none !important; margin: 0 !important; width: 100%; flex-wrap: nowrap; }
.no33-mosaic > .wp-block-column { flex-shrink: 1 !important; min-width: 0; }
.no33-mosaic .wp-block-column { display: flex; flex-direction: column; gap: 5px; }
.no33-mosaic figure { margin: 0 !important; }

/* Service trio headings in the display font */
.no33-services h3 { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; letter-spacing: .04em; font-size: 34px !important; }
/* Orange cafés band: navy ink throughout */
.no33-cafes-band p, .no33-cafes-band .has-faint-color { color: #0C1A23 !important; }
.no33-cafes-band .is-style-outline .wp-block-button__link { color: #0C1A23; border-color: #0C1A23; }

/* Dark story band */
.no33-story h2, .no33-story h3 { color: #FFFDF8; }
.no33-story p { color: rgba(255,253,248,.85); }
.no33-story a { color: #FF8959; }
/* Bold navy services band */
.no33-services-band .no33-services h3 { color: #FF8959; }
.no33-services-band .no33-services p { color: #FFFDF8; font-size: 17px; font-weight: 500; }
.no33-services-band .no33-services a { color: #FF8959; font-size: 18px; }

/* ============ Mobile ============ */
@media (max-width: 781px) {
	/* columns stack (mirrors WP core, and covers the preview) */
	.wp-block-columns { flex-wrap: wrap !important; }
	.wp-block-columns > .wp-block-column { flex-basis: 100% !important; flex-grow: 1 !important; }
	/* header keeps the desktop row: hamburger | overlapping logo | LOCATIONS */
	.no33-header .alignwide { grid-template-columns: 1fr auto; }
	.no33-header .wp-block-button__link { font-size: 11px; padding: 8px 14px; }
	/* force the nav into hamburger mode below 782px (WP default is 600px) */
	.wp-block-navigation__responsive-container:not(.is-menu-open):not(.hidden-by-default) { display: none !important; }
	.wp-block-navigation__responsive-container-open { display: flex !important; }
	.wp-block-post-content > .wp-block-group.has-ink-background-color:first-child { padding-top: 48px !important; padding-bottom: 40px !important; }
	/* type scale */
	.wp-block-cover h1 { font-size: 38px !important; }
	.wp-block-post-content h2 { font-size: 30px !important; }
	.wp-block-cover { min-height: 320px !important; }
	/* edge gutter: 16px each side on every page */
	.wp-block-post-content > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: calc(100% - 32px) !important; }
	.no33-footer .alignwide { max-width: calc(100% - 32px) !important; }
	.no33-header { padding-left: 16px !important; padding-right: 16px !important; }
	/* band + section spacing: tighter vertical rhythm on small screens */
	.wp-block-group.alignfull { padding: 40px 16px !important; }
	.wp-block-post-content { padding-bottom: 40px; }
	.wp-block-cover { padding: 24px 16px !important; }
	.wp-block-post-content > * + * { margin-top: 24px !important; }
	.wp-block-post-content > h2 { margin-top: 40px !important; }
	.wp-block-post-content > .alignfull + h2, .wp-block-post-content > .alignfull + :not(.alignfull):is(h2) { margin-top: 28px !important; }
	/* bands: 5px gap between each other, one consistent 32px gap after content */
	.wp-block-post-content > .alignfull { margin-top: 32px !important; }
	.wp-block-post-content > .alignfull + .alignfull { margin-top: 5px !important; }
	/* ink strip: compact centred row (matches the strip treatment everywhere) */
	.wp-block-group.alignfull.no33-strip { justify-content: center !important; gap: 8px 22px !important; padding: 12px 16px !important; }
	.no33-strip p { margin: 0 !important; }
	.no33-strip p, .no33-strip h1 { font-size: 14px !important; letter-spacing: 0.08em !important; }
	/* stacked columns: predictable 24px gaps, images flush */
	.wp-block-columns { row-gap: 24px !important; }
	.wp-block-column figure.wp-block-image { margin: 0 !important; }
	.wp-block-column figure.wp-block-image img { height: 240px !important; }
	/* content cells align with the 16px page gutter */
	.wp-block-post-content > .alignfull + .alignfull { margin-top: 5px !important; }
	.wp-block-post-content > .wp-block-group.has-ink-background-color:first-child { padding-top: 48px !important; }
	/* info bar: compact wrapped row instead of 5 stacked cells */
	.no33-infobar { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 6px 24px; }
	.no33-infobar > .wp-block-column { flex-basis: auto !important; flex-grow: 0 !important; width: auto !important; border: 0 !important; padding: 0 !important; }
	.no33-infobar p { font-size: 13px !important; margin: 0 !important; }
	.no33-cells > .wp-block-column { padding: 14px 0 !important; }
	.no33-cells > .wp-block-column::before { font-size: 56px; }
	.no33-cells h3 { font-size: 26px !important; }
	/* mosaic stacks with tight gaps */
	.no33-mosaic { flex-wrap: wrap !important; }
	.no33-mosaic figure img { height: 260px !important; }
	/* footer: hard block stacking, clipped logo, same 16px gutter as content */
	body { overflow-x: clip; }
	.wp-block-group.no33-footer { padding: 40px 16px 24px !important; }
	.no33-footer-logo { width: 240px !important; height: 240px !important; right: -40px !important; opacity: .12 !important; }
	.no33-footer .wp-block-columns { display: block !important; }
	.no33-footer .wp-block-column { width: 100% !important; margin: 0 0 28px !important; }
	.no33-footer .alignwide { max-width: 100% !important; flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* Mobile nav overlay: roomy tap targets in the brand type */
.wp-block-navigation__responsive-container.is-menu-open { background: #FFFDF8 !important; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 32px 24px !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a { font-size: 22px; padding: 14px 0; color: #0C1A23; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { color: #0C1A23; }
.no33-header .wp-block-navigation__responsive-container-open { padding: 8px 0; }
.no33-header .wp-block-navigation__responsive-container-open svg { width: 44px; height: 44px; }
.no33-header .sim-burger { font-size: 38px; }

@media (max-width: 781px) {
  /* info panel: two-up grid, no dividers */
  .no33-infopanel { display: grid !important; grid-template-columns: 1fr 1fr; gap: 20px 16px !important; }
  .no33-infopanel > .wp-block-column { border: 0 !important; padding: 0 !important; }
}

/* Base: sand instead of white */
body { background: #F5F1E6; }
html { scroll-behavior: smooth; }
h2[id] { scroll-margin-top: 24px; }

/* Orange quick tabs: stamp type, pinned down the left edge on desktop */
.no33-tabs { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 10px; align-items: stretch; margin: 0 !important; }
.wp-block-cover .no33-tabs { position: absolute; top: calc(26px + 440px + 48px); left: 50%; transform: translateX(-50%); z-index: 3; width: max-content; max-width: calc(100% - 48px); }
.no33-tabs .no33-tab { display: block; box-sizing: border-box; background: #FF8959; box-shadow: 0 6px 24px rgba(12,26,35,.25); color: #0C1A23; font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-size: 32px; font-weight: 400; letter-spacing: .05em; text-transform: uppercase; line-height: 1; padding: 20px 18px 17px; cursor: pointer; text-align: center; text-decoration: none; flex: 1 1 0; min-width: 240px; white-space: nowrap; border-radius: 0; }
.no33-tabs .no33-tab:hover { color: #0C1A23; }
.no33-tab-wrap { position: relative; }
.no33-flyout { display: none; position: absolute; left: 100%; top: 0; margin-left: 8px; background: #0C1A23; border-radius: 2px; min-width: 230px; padding: 8px 0; text-align: left; }
.no33-flyout.open { display: block; }
.no33-flyout a { display: block; padding: 11px 18px; color: #FFFDF8; font: 600 12px 'Work Sans', sans-serif; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.no33-flyout a:hover { color: #FF8959; }
.no33-flyout a span { display: block; color: #FF8959; font-size: 10px; letter-spacing: .1em; }
@media (max-width: 781px) {
  .no33-tabs .no33-tab { width: 100%; min-width: 0; text-align: center; padding: 12px 16px 10px; font-size: 20px; }
}

/* Rough top + bottom edges on the ink strip */
.no33-strip { position: relative; z-index: 5; }
.no33-strip h1 { margin: 0 !important; font-size: 30px !important; color: #FF8959; line-height: 1; letter-spacing: .08em !important; font-weight: 400 !important; }
.no33-strip p { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-size: 30px !important; font-weight: 400 !important; letter-spacing: .08em !important; }

/* Homepage hero: logo + buttons cluster vertically centred */
.no33-hero.wp-block-cover.alignfull:first-child::after { top: calc(50% - 278px); }
.no33-hero .no33-tabs { top: calc(50% + 210px) !important; }
@media (max-width: 781px) {
  .no33-hero.wp-block-cover.alignfull:first-child::after { top: 16px; }
}

/* Homepage hero headline on a rough navy patch */
@media (min-width: 782px) {
  .no33-hero .wp-block-cover__inner-container { position: absolute !important; inset: 0; }
}



/* Menu jump tabs */
.no33-jump .wp-block-button__link { padding: 9px 18px; font-size: 12.5px; }

/* Square corners on every button */
.wp-block-button__link, .no33-tab { border-radius: 0 !important; }

/* Bold band text colours (auto-applied when a light band was converted) */
.no33-on-ink :is(h1,h2,h3,h4,p,li):not(.has-text-color) { color: #FFFDF8; }
.no33-on-ink .is-style-outline .wp-block-button__link:not(.has-text-color) { color: #FFFDF8; border-color: #FFFDF8; }
.no33-on-ink .has-muted-color, .no33-on-ink .has-faint-color { color: #D8D2C4 !important; }
.no33-on-ink .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-background) { background: #FF8959 !important; color: #0C1A23 !important; }
.no33-on-green .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-background) { background: #0C1A23 !important; color: #FFFDF8 !important; }
.no33-on-green :is(h1,h2,h3,h4,p,li):not(.has-text-color) { color: #0C1A23; }
.no33-on-green .has-green-color { color: #0C1A23 !important; }
.no33-on-green .has-muted-color, .no33-on-green .has-faint-color { color: #0C1A23 !important; }
.no33-on-green .is-style-outline .wp-block-button__link:not(.has-text-color) { color: #0C1A23; border-color: #0C1A23; }
.no33-on-ink a:not(.wp-block-button__link), .no33-on-ink .has-ink-color { color: #FFFDF8 !important; }
.no33-on-green a:not(.wp-block-button__link) { color: #0C1A23 !important; text-decoration: underline; }

/* Full-bleed image rows: edge to edge with 5px gaps, like the homepage mosaic */
.no33-imgrow > .wp-block-columns { max-width: none !important; gap: 5px !important; margin: 0 !important; }
.no33-imgrow .wp-block-column { margin: 0 !important; flex: 1 1 0 !important; min-width: 0; }
.no33-imgrow figure { margin: 0 !important; }
@media (max-width: 781px) {
	.no33-imgrow { padding: 0 !important; }
	.no33-imgrow > .wp-block-columns { gap: 5px !important; }
}

/* FAQ bands: bold stamp questions with a peach Q */
.no33-faqband h2 { font-size: 44px !important; }
.no33-faqband h3 { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-size: 27px !important; font-weight: 400 !important; margin-top: 34px !important; }
.no33-faqband h3::before { content: "Q. "; color: #FF8959; }
.no33-faqband.no33-on-green h3::before { color: #FFFDF8; }
.no33-faqband p { font-size: 17px; line-height: 1.6; max-width: 720px; }

/* Bold café cards on the homepage */
.no33-cafecards > .wp-block-column { background: #FFFDF8; border: 4px solid #0C1A23; margin: 0 !important; min-width: 0; display: flex; flex-direction: column; }
.no33-cafecard-body { display: flex; flex-direction: column; flex: 1; }
.no33-cafecard-body > * { margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; }
.no33-cafecard-body .wp-block-buttons { margin-top: auto !important; padding-top: 16px; }
.no33-cafecards figure { margin: 0 !important; }
.no33-cafecards h3 { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-weight: 400 !important; margin: 6px 0 10px !important; }
.no33-cafecards p { line-height: 1.55; }
@media (max-width: 781px) {
	.no33-cafecards { gap: 16px !important; }
	.no33-cafecards img { height: 220px !important; }
}
/* Full-width content inside bands: only the band padding insets it */
.wp-block-group.alignfull > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: none !important; }
.wp-block-group.alignfull > .alignwide { max-width: none !important; }
/* columns must shrink to absorb their gaps (flex-basis % + gap otherwise overflows) */
.wp-block-columns > .wp-block-column { flex-shrink: 1 !important; min-width: 0; }

/* Split bands: full-bleed image one side, padded text the other */
.no33-split > .wp-block-columns { max-width: none !important; gap: 0 !important; margin: 0 !important; align-items: stretch !important; }
.no33-split > .wp-block-columns > .wp-block-column { margin: 0 !important; min-width: 0; }
.no33-split .wp-block-column:has(> figure.wp-block-image:last-child:first-child) { display: flex; align-self: stretch !important; }
.no33-split figure.wp-block-image { margin: 0 !important; width: 100%; }
.no33-split figure.wp-block-image img { height: 100% !important; min-height: 520px; width: 100%; object-fit: cover; display: block; }
.no33-split .wp-block-column:not(:has(> figure.wp-block-image:last-child:first-child)) { padding: 72px 64px; box-sizing: border-box; align-self: center; }
@media (max-width: 781px) {
	.no33-split { padding: 0 !important; }
	.no33-split figure.wp-block-image img { min-height: 300px; height: 300px !important; }
	.no33-split .wp-block-column:not(:has(> figure.wp-block-image:last-child:first-child)) { padding: 36px 16px; }
}

/* Bold columns: stamp sub-headings */
.no33-boldcols h3, .no33-boldcols h2 { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-weight: 400 !important; }
.no33-boldcols h3 { font-size: 30px !important; }
.no33-boldcols figure { margin-bottom: 18px; }

/* Flavour chips: stamp-font blocks on cream tiles */
.no33-flavours { list-style: none; padding: 0 !important; margin: 24px 0 12px !important; display: flex; flex-wrap: wrap; gap: 12px; }
.no33-flavours li { background: #FFFDF8; color: #0C1A23; font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif; font-size: 24px; line-height: 1; padding: 12px 18px 9px; margin: 0 !important; }
/* Need-to-know facts: stamp headings with a thick top bar */
.no33-facts > .wp-block-column { border-top: 6px solid #0C1A23; padding-top: 18px; }
.no33-facts h3 { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-weight: 400 !important; margin: 0 0 10px !important; }
.no33-facts p { font-size: 16px; line-height: 1.55; }
@media (max-width: 781px) {
	.no33-flavours li { font-size: 19px; }
}

/* Menu rows: price never wraps under the name */
.no33-row { flex-wrap: nowrap !important; align-items: flex-start !important; }
.no33-row > p:first-child { min-width: 0; }
.no33-row > p:last-child { flex: 0 0 auto; white-space: nowrap; margin-left: 12px !important; }
/* Header nav: tighter between 782px and 1180px so 7 links + LOCATIONS stay on one row */
@media (min-width: 782px) and (max-width: 1180px) {
	.no33-header .wp-block-navigation, .no33-header .wp-block-navigation .wp-block-navigation__container { gap: 8px 18px !important; }
	.no33-header .wp-block-navigation a, .no33-header .wp-block-navigation .wp-block-navigation-item__content { font-size: 17px !important; }
}

/* Locations hero: smaller logo, shorter hero so the Norwich / Cambridge buttons sit in the first screen */
.wp-block-post-content > .wp-block-cover.alignfull.no33-loc-hero:first-child { min-height: 500px !important; padding-bottom: 32px; }
.wp-block-post-content > .wp-block-cover.alignfull.no33-loc-hero:first-child::after { width: 260px; height: 260px; top: 20px; }
@media (max-width: 781px) {
  .wp-block-post-content > .wp-block-cover.alignfull.no33-loc-hero:first-child { min-height: 400px !important; }
  .wp-block-post-content > .wp-block-cover.alignfull.no33-loc-hero:first-child::after { width: 200px; height: 200px; top: 16px; }
}
.wp-block-cover .no33-tabs.no33-loc-tabs { position: static; transform: none; width: auto; max-width: 900px; margin: 24px auto 0 !important; }
.wp-block-cover .no33-loc-tabs .no33-tab { color: #0C1A23 !important; text-shadow: none; font-size: 20px; padding: 14px 20px 12px; min-width: 0; flex: 0 1 auto; }
/* Image beside text: image column matches the text height, cropping the photo top and bottom */
@media (min-width: 782px) {
  :not(.no33-split) > .wp-block-columns:has(> .wp-block-column > :is(h2, h3, p)) > .wp-block-column:has(> .wp-block-image:only-child) { position: relative; align-self: stretch !important; min-height: 320px; }
  :not(.no33-split) > .wp-block-columns:has(> .wp-block-column > :is(h2, h3, p)) > .wp-block-column:has(> .wp-block-image:only-child) > .wp-block-image { position: absolute; inset: 0; margin: 0 !important; height: 100%; }
  :not(.no33-split) > .wp-block-columns:has(> .wp-block-column > :is(h2, h3, p)) > .wp-block-column:has(> .wp-block-image:only-child) > .wp-block-image img { height: 100% !important; width: 100% !important; object-fit: cover; }
}
/* Numbered steps: stamp numerals over a navy rule */
.no33-steps > .wp-block-column { border-top: 2px solid #0C1A23; padding-top: 24px; }
.no33-steps .no33-step-num { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif; font-size: 72px; line-height: 1; color: #FF8959; margin: 0 0 16px; }
.no33-steps h3 { margin: 0 0 8px !important; }
.no33-steps a { color: #0C1A23; text-decoration: underline; }
.no33-split { overflow: hidden; }
/* Split bands: image column takes the text column's height (cropped top and bottom) */
@media (min-width: 782px) {
  .no33-split .wp-block-column:has(> figure.wp-block-image:last-child:first-child) { position: relative; min-height: 360px; }
  .no33-split .wp-block-column:has(> figure.wp-block-image:last-child:first-child) > figure.wp-block-image { position: absolute; inset: 0; height: 100%; }
  .no33-split figure.wp-block-image img { min-height: 0 !important; height: 100% !important; }
}
.no33-loc-hero .wp-block-cover__inner-container > p { margin-top: 8px !important; }
.no33-loc-hero .wp-block-cover__inner-container > h1 { margin-bottom: 0 !important; }
/* Cake cards: top-aligned, price in peach stamp type, shared note below */
.no33-cakecards .wp-block-columns { align-items: flex-start !important; }
.no33-cakecards figure { margin: 0 0 24px !important; }
.no33-cakecards h3 { margin: 0 0 8px !important; }
.no33-cakecards .no33-cake-price { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif; font-size: 26px; line-height: 1; color: #FF8959 !important; margin: 0 0 12px !important; }
.no33-cakecards .no33-cake-note { margin: 32px auto 0 !important; padding-top: 32px; border-top: 1px solid rgba(255,253,248,.2); font-size: 17px; }
/* Font credit band: specimen in the stamp face */
.no33-fontband .no33-specimen { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif; font-size: 64px; line-height: 1.1; letter-spacing: .06em; color: #FF8959 !important; margin: 32px 0 !important; }
.no33-fontband a { color: #FF8959 !important; text-decoration: underline; }
@media (max-width: 781px) { .no33-fontband .no33-specimen { font-size: 34px; } }
/* Footer legal line: evenly spaced items */
.no33-footer .no33-legal { display: flex; flex-wrap: wrap; gap: 8px 32px; align-items: center; }

/* ===== WooCommerce: cakes, basket, checkout ===== */
.no33-shop-title h1, .no33-shop-title .wp-block-query-title { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-weight: 400 !important; font-size: 56px; color: #FFFDF8; text-align: center; margin: 0 !important; }
.no33-shop-title p { max-width: 560px; margin: 16px auto 0 !important; }
.no33-shop { color: #0C1A23; }
.no33-shop h1, .no33-shop h2, .no33-shop .wc-block-components-title, .no33-shop .wc-block-components-checkout-step__title { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-weight: 400 !important; letter-spacing: .03em; color: #0C1A23; }
.no33-shop h3, .no33-shop .wc-block-components-product-name { font-family: 'DM Serif Display', serif !important; font-weight: 400 !important; color: #0C1A23 !important; text-decoration: none; }
.no33-shop a { color: #0C1A23; }
.woocommerce-breadcrumb, .wc-block-breadcrumbs { font-size: 13.5px; color: #8A8270; margin-bottom: 32px !important; }
.woocommerce-breadcrumb a { color: #8A8270 !important; }

/* Buttons: peach, square, stamp type (all Woo button flavours) */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .single_add_to_cart_button,
.wc-block-components-button:not(.is-link), .wp-block-button.wc-block-components-product-button .wp-block-button__link,
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
  background: #FF8959 !important; color: #0C1A23 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
  font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-size: 20px !important; font-weight: 400 !important; letter-spacing: .05em; text-transform: uppercase; line-height: 1 !important;
  padding: 16px 28px 13px !important; min-height: 0 !important; text-decoration: none !important; }
.woocommerce .button:hover, .woocommerce .button:focus, .single_add_to_cart_button:hover, .single_add_to_cart_button:focus, .wc-block-components-button:not(.is-link):hover, .wc-block-components-button:not(.is-link):focus, .wp-block-button.wc-block-components-product-button .wp-block-button__link:hover { background: #FF8959 !important; color: #0C1A23 !important; }
.wc-block-components-button__text { font-family: inherit !important; }

/* Product page */
.no33-product .wp-block-post-title { font-size: 52px !important; line-height: 1.02; margin: 0 0 16px !important; }
.no33-product .wc-block-components-product-price, .no33-product .price { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif; font-size: 34px !important; color: #FF8959 !important; margin: 0 0 24px !important; display: block; }
.no33-product .woocommerce-product-gallery img, .no33-product .wc-block-components-product-image img { border-radius: 0; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.no33-product form.cart { display: flex; flex-wrap: wrap; gap: 16px; align-items: stretch; margin: 32px 0 !important; }
.no33-product form.cart table.variations { width: 100%; border: 0; margin: 0; }
.no33-product form.cart table.variations th, .no33-product form.cart table.variations td { display: block; padding: 0 0 8px; text-align: left; border: 0; }
.no33-product form.cart .variations label { font-size: 12.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #0C1A23; }
.no33-product .quantity input.qty { width: 72px; height: 100%; min-height: 50px; }
.no33-shop-note { background: #F5F1E6; border-top: 2px solid #0C1A23; padding: 16px 20px; font-size: 15px; margin: 0 0 24px !important; }
.no33-product .product_meta, .no33-product .wp-block-woocommerce-product-meta { font-size: 13.5px; color: #8A8270; }
.no33-product .wp-block-woocommerce-product-details { margin-top: 64px !important; }
.woocommerce-tabs ul.tabs { padding: 0 !important; margin: 0 0 32px !important; border-bottom: 2px solid #0C1A23 !important; display: flex; gap: 32px; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li { background: none !important; border: 0 !important; margin: 0 !important; padding: 0 !important; border-radius: 0 !important; }
.woocommerce-tabs ul.tabs li a { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif; font-weight: 400 !important; font-size: 22px; padding: 0 0 12px !important; display: block; color: #8A8270 !important; }
.woocommerce-tabs ul.tabs li.active a { color: #0C1A23 !important; box-shadow: inset 0 -4px 0 #FF8959; }
.woocommerce-tabs .panel h2:first-child { display: none; }

/* Product cards (Cakes page grid, shop archive, related) */
.woocommerce ul.products, .wc-block-product-template, .products-block-post-template { gap: 32px !important; margin: 32px 0 0 !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; text-align: left; display: flex; flex-direction: column; }
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products li.product img, .wc-block-product-template .wc-block-components-product-image img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; margin: 0 0 20px !important; border-radius: 0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title, .wc-block-product-template .wp-block-post-title { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-weight: 400 !important; font-size: 26px !important; line-height: 1.05; padding: 0 !important; margin: 0 0 8px !important; }
.woocommerce ul.products li.product .price, .wc-block-product-template .wc-block-components-product-price { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif; font-size: 22px !important; color: #FF8959 !important; margin: 0 0 16px !important; }
.woocommerce ul.products li.product .button { margin-top: auto !important; align-self: flex-start; }
.no33-on-ink ul.products li.product .woocommerce-loop-product__title { color: #FFFDF8 !important; }
.no33-shop .wc-block-product-template .wp-block-post-title a { color: #0C1A23; text-decoration: none; }
.woocommerce span.onsale, .wc-block-components-product-sale-badge { background: #0C1A23 !important; color: #FFFDF8 !important; border-radius: 0 !important; min-height: 0; min-width: 0; padding: 8px 12px !important; font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif; font-weight: 400; line-height: 1; }
.woocommerce a.added_to_cart { font-size: 13.5px; margin-top: 8px; display: inline-block; color: #FF8959 !important; text-decoration: underline; }
.no33-on-ink a.added_to_cart { color: #FF8959 !important; }

/* Form fields */
.no33-shop input[type=text], .no33-shop input[type=email], .no33-shop input[type=tel], .no33-shop input[type=number], .no33-shop select, .no33-shop textarea,
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input, .wc-blocks-components-select__select, .wc-block-components-textarea {
  border: 1px solid #0C1A23 !important; border-radius: 0 !important; background: #FFFDF8 !important; color: #0C1A23 !important; font-family: 'Work Sans', sans-serif !important; font-size: 16px !important; box-shadow: none !important; }
.no33-shop input:focus, .no33-shop select:focus, .no33-shop textarea:focus { outline: 2px solid #FF8959 !important; outline-offset: 0; }
.wc-block-components-text-input label, .wc-block-components-combobox label { color: #55503F !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox], .wc-block-components-radio-control__input { border-color: #0C1A23 !important; border-radius: 0 !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: #0C1A23 !important; }
.wc-block-components-radio-control__input { border-radius: 50% !important; }
.wc-block-components-radio-control__input:checked::before { background: #FF8959 !important; }

/* Basket + checkout blocks */
.wc-block-cart, .wc-block-checkout { color: #0C1A23; }
.wc-block-cart-items, .wc-block-cart-items th, .wc-block-cart-items td { border-color: #ECE5D6 !important; }
.wc-block-cart-items__header { font-size: 12.5px; font-weight: 600; letter-spacing: .2em; }
.wc-block-cart-item__image img { aspect-ratio: 1 / 1; object-fit: cover; }
.wc-block-components-product-metadata, .wc-block-components-product-price__regular { color: #55503F; }
.wc-block-cart__sidebar .wc-block-components-sidebar, .wc-block-components-sidebar-layout .wc-block-components-sidebar, .wp-block-woocommerce-checkout-order-summary-block {
  background: #F5F1E6; border: 0 !important; border-radius: 0 !important; padding: 32px !important; }
.wc-block-components-totals-item__label, .wc-block-components-totals-item__value { color: #0C1A23; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label, .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif; font-size: 26px !important; font-weight: 400 !important; }
.wc-block-components-totals-wrapper { border-color: #ECE5D6 !important; }
.wc-block-components-quantity-selector { border: 1px solid #0C1A23 !important; border-radius: 0 !important; }
.wc-block-components-quantity-selector::after { display: none; }
.wc-block-cart-item__remove-link { color: #8A8270 !important; font-size: 13.5px !important; }
.wc-block-components-checkout-step { padding-bottom: 32px; }
.wc-block-components-checkout-step__container::after { display: none !important; }
.wc-block-components-checkout-step__heading { margin: 0 0 16px !important; }
.wc-block-components-checkout-step__title { font-size: 26px !important; }
.wc-block-checkout__actions_row .wc-block-components-checkout-return-to-cart-button { color: #0C1A23 !important; }
.wc-block-components-express-payment-continue-rule { color: #8A8270; }
.wc-block-components-panel__button, .wc-block-components-totals-coupon-link { color: #0C1A23 !important; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner { border: 0 !important; border-left: 0 !important; border-top: 3px solid #FF8959 !important; border-radius: 0 !important; background: #F5F1E6 !important; color: #0C1A23 !important; font-size: 15px; }
.woocommerce-error, .wc-block-components-notice-banner.is-error { border-top-color: #C8412B !important; }
.woocommerce-message::before, .woocommerce-info::before { color: #FF8959 !important; }
.wc-block-components-notice-banner > svg { background: #0C1A23 !important; fill: #FFFDF8 !important; }

/* Order confirmation */
.no33-confirm .wc-block-order-confirmation-summary { background: #F5F1E6; padding: 24px 32px; margin: 0 0 32px !important; }
.no33-confirm .wc-block-order-confirmation-summary-list-item__key { font-size: 12.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.no33-confirm table { border-color: #ECE5D6 !important; }

@media (max-width: 781px) {
  .no33-shop { padding: 40px 16px !important; }
  .no33-shop-title h1, .no33-shop-title .wp-block-query-title { font-size: 38px; }
  .no33-product .wp-block-post-title { font-size: 38px !important; }
  .woocommerce ul.products { grid-template-columns: minmax(0, 1fr); }
  .wc-block-cart__sidebar .wc-block-components-sidebar, .wp-block-woocommerce-checkout-order-summary-block { padding: 24px 16px !important; }
}
/* Inner-page heroes: one size everywhere. Logo 260px, title pinned below it; extra buttons stretch the hero down */
.wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero) { min-height: 500px !important; padding-top: 300px !important; padding-bottom: 32px !important; align-items: flex-end !important; }
.wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero)::after { width: 260px !important; height: 260px !important; top: 20px !important; }
.wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero) .wp-block-cover__inner-container > h1 { margin-bottom: 0 !important; }
.wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero) .wp-block-cover__inner-container > p { margin-top: 8px !important; }
.wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero) .wp-block-cover__inner-container > .wp-block-buttons { margin-top: 24px !important; }
@media (max-width: 781px) {
  .wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero) { min-height: 400px !important; padding-top: 232px !important; padding-bottom: 24px !important; }
  .wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero)::after { width: 200px !important; height: 200px !important; top: 16px !important; }
}
/* Inner heroes v2: bigger logo, even 32px top and bottom, title 20px under the logo */
.wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero) { min-height: 0 !important; padding-top: 392px !important; padding-bottom: 32px !important; }
.wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero)::after { width: 340px !important; height: 340px !important; top: 32px !important; }
.wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero) .wp-block-cover__inner-container > :first-child { margin-top: 0 !important; }
.wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero) .wp-block-cover__inner-container > :last-child { margin-bottom: 0 !important; }
@media (max-width: 781px) {
  .wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero) { min-height: 0 !important; padding-top: 280px !important; padding-bottom: 24px !important; }
  .wp-block-post-content > .wp-block-cover.alignfull:first-child:not(.no33-hero)::after { width: 240px !important; height: 240px !important; top: 24px !important; }
}
/* VikRestaurants booking form: brand fields and buttons */
.no33-booking { color: #0C1A23; }
.no33-booking input, .no33-booking select, .no33-booking textarea { border: 1px solid #0C1A23 !important; border-radius: 0 !important; background: #FFFDF8 !important; color: #0C1A23 !important; font-family: 'Work Sans', sans-serif !important; font-size: 16px !important; box-shadow: none !important; min-height: 48px; }
.no33-booking label { font-size: 12.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #0C1A23; }
.no33-booking button, .no33-booking .btn, .no33-booking input[type=submit], .no33-booking input[type=button] { background: #FF8959 !important; color: #0C1A23 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-size: 20px !important; font-weight: 400 !important; letter-spacing: .05em; text-transform: uppercase; padding: 16px 28px 13px !important; }
.no33-booking a { color: #0C1A23; }
/* 404: hero fills the page, no bottom padding gap before the footer */
main.wp-block-post-content:has(> .wp-block-cover:only-child) { padding-bottom: 0 !important; }
/* Mobile: orange buttons wrap instead of spilling out */
@media (max-width: 781px) {
  .no33-tabs .no33-tab, .wp-block-cover .no33-loc-tabs .no33-tab { white-space: normal !important; overflow-wrap: anywhere; min-width: 0 !important; width: 100%; flex: 1 1 100% !important; font-size: 19px !important; line-height: 1.1 !important; padding: 14px 12px 11px !important; }
  .wp-block-cover .no33-tabs { max-width: calc(100% - 32px) !important; width: calc(100% - 32px) !important; }
}
html { scroll-behavior: smooth; }
#order { scroll-margin-top: 24px; }
/* Floating basket (cakes page + product pages) */
.no33-floatbasket { position: fixed; right: 24px; bottom: 24px; z-index: 50; margin: 0 !important; }
.no33-floatbasket .wc-block-mini-cart__button { background: #FF8959 !important; color: #0C1A23 !important; border-radius: 50% !important; width: 64px; height: 64px; padding: 0 !important; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 24px rgba(12,26,35,.3); }
.no33-floatbasket .wc-block-mini-cart__icon { width: 30px; height: 30px; }
.no33-floatbasket .wc-block-mini-cart__badge { background: #0C1A23 !important; color: #FFFDF8 !important; border: 2px solid #FF8959; font-weight: 600; }
.wc-block-mini-cart__drawer .wc-block-components-drawer { background: #FFFDF8; color: #0C1A23; }
.wc-block-mini-cart__drawer h2, .wc-block-mini-cart__title { font-family: 'zai Coffee Sackful Stamp', 'DM Serif Display', serif !important; font-weight: 400 !important; }
.wc-block-mini-cart__footer-actions .wc-block-components-button { background: #FF8959 !important; color: #0C1A23 !important; border: 0 !important; border-radius: 0 !important; }
.wc-block-mini-cart__footer-actions .wc-block-mini-cart__footer-cart { background: transparent !important; border: 2px solid #0C1A23 !important; }
@media (max-width: 781px) { .no33-floatbasket { right: 16px; bottom: 16px; } }
/* Mobile homepage hero: logo, then a 2x2 grid of buttons, headline below; nothing clipped */
@media (max-width: 781px) {
  .no33-hero.wp-block-cover.alignfull { min-height: 640px !important; }
  .no33-hero.wp-block-cover.alignfull:first-child::after { width: 240px !important; height: 240px !important; top: 16px !important; }
  .no33-hero .no33-tabs { top: 272px !important; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px !important; width: calc(100% - 32px) !important; max-width: 420px !important; }
  .no33-hero .no33-tabs .no33-tab { width: auto !important; flex: none !important; font-size: 17px !important; padding: 13px 8px 10px !important; display: flex !important; align-items: center; justify-content: center; text-align: center; }
  .no33-hero .no33-flyout { display: none !important; }
}
/* Mobile homepage hero v2: 4 buttons stacked, hero sized to its content (no dead space) */
@media (max-width: 781px) {
  .no33-hero.wp-block-cover.alignfull { min-height: 0 !important; padding-top: 488px !important; padding-bottom: 32px !important; }
  .no33-hero .no33-tabs { display: flex !important; flex-direction: column !important; gap: 8px !important; width: calc(100% - 48px) !important; max-width: 340px !important; }
  .no33-hero .no33-tabs .no33-tab { width: 100% !important; font-size: 18px !important; padding: 12px 12px 10px !important; }
  .no33-hero .wp-block-cover__inner-container > :first-child { margin-top: 0 !important; }
  .no33-hero .wp-block-cover__inner-container > :last-child { margin-bottom: 0 !important; }
}
@media (max-width: 781px) {
  .wp-block-post-content > .wp-block-cover.alignfull.no33-hero:first-child, .no33-hero.wp-block-cover.alignfull.alignfull { min-height: 0 !important; padding-top: 463px !important; padding-bottom: 32px !important; }
}
