/*
Theme Name: Cheese & Crackers
Theme URI: https://www.crackerscheese.com
Author: Cheese & Crackers
Description: Bespoke "Deli Culture" theme for crackerscheese.com — a gourmet deli, seafood market & artisan grocery in Champaign, IL. Hard-rule editorial grid, Fraunces + Space Grotesk, red/yellow/cream palette, and a CSS-3D cracker-and-cheese hero. Every piece of text, colour and photo is editable in the Customizer (Appearance > Customize).
Version: 1.0.0
Requires at least: 5.9
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cheese-crackers
*/

/* =========================================================================
   TOKENS
   Brand colours are injected at runtime from the Customizer (see
   cc_inline_css()); the values below are the design defaults / fallbacks.
   ========================================================================= */
:root{
	--cc-bg:#f5f2eb;
	--cc-ink:#111111;
	--cc-red:#c82c2c;
	--cc-yellow:#e8c840;
	--cc-red-dark:#a82020;
	--cc-yellow-dark:#d4b730;
	--cc-ink-faint:#d0cdc5;
	--cc-ink-dim:#888880;
	--cc-ink-mid:#555550;
	--cc-on-dark:rgba(245,242,235,0.6);
	--cc-on-dark-dim:rgba(245,242,235,0.35);
	--cc-rule-on-dark:rgba(255,255,255,0.1);
	--cc-font:'Fraunces',Georgia,'Times New Roman',serif;
	--cc-sans:'Space Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
	--cc-radius:0px;
	--cc-pad-x:56px;
}

/* =========================================================================
   RESET / BASE
   ========================================================================= */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
	background:var(--cc-bg);
	color:var(--cc-ink);
	font-family:var(--cc-sans);
	font-size:15px;
	line-height:1.7;
	overflow-x:hidden;
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
button{font-family:inherit;}
:focus-visible{outline:3px solid var(--cc-red);outline-offset:2px;}
.cc-site{min-height:100vh;display:flex;flex-direction:column;}
main{flex:1;}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;}
.cc-skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--cc-ink);color:var(--cc-bg);padding:12px 20px;font-family:var(--cc-sans);font-size:13px;}
.cc-skip-link:focus{left:8px;top:8px;}

/* =========================================================================
   ANIMATIONS
   ========================================================================= */
@keyframes cc-ticker{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
@keyframes cc-fadeup{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
@keyframes cc-rotate{from{transform:rotateY(0deg);}to{transform:rotateY(360deg);}}
@keyframes cc-float{0%,100%{transform:rotateX(-16deg) translateY(0);}50%{transform:rotateX(-16deg) translateY(-12px);}}
.cc-page{animation:cc-fadeup .35s ease both;}

@media (prefers-reduced-motion: reduce){
	html{scroll-behavior:auto;}
	.cc-page,.cc-ticker__track,.cc-hero3d__float,.cc-hero3d__spin{animation:none!important;}
}

/* =========================================================================
   LAYOUT PRIMITIVES
   ========================================================================= */
.cc-grid{display:grid;gap:0;}
.cc-grid--hero{grid-template-columns:1fr 380px;}
.cc-grid--2{grid-template-columns:1fr 1fr;}
.cc-grid--sidebar{grid-template-columns:1fr 320px;}
.cc-grid--5{grid-template-columns:repeat(5,1fr);}
.cc-grid--3{grid-template-columns:repeat(3,1fr);}
.cc-grid--grocery{grid-template-columns:280px 1fr;}
.cc-grid--event{grid-template-columns:180px 1fr auto;align-items:center;gap:40px;}

.cc-rule-b{border-bottom:3px solid var(--cc-ink);}
.cc-rule-b2{border-bottom:2px solid var(--cc-ink);}
.cc-rule-bf{border-bottom:2px solid var(--cc-ink-faint);}
.cc-rule-r{border-right:3px solid var(--cc-ink);}
.cc-rule-r2{border-right:2px solid var(--cc-ink);}

.cc-pad{padding:48px var(--cc-pad-x);}
.cc-pad-lg{padding:64px var(--cc-pad-x);}
.cc-pad-56{padding:56px;}
.cc-stackv{display:flex;flex-direction:column;justify-content:space-between;}
.cc-center{display:flex;flex-direction:column;justify-content:center;}

/* =========================================================================
   TYPOGRAPHY UTILITIES
   ========================================================================= */
.cc-eyebrow{
	font-family:var(--cc-sans);font-size:11px;font-weight:600;
	letter-spacing:0.2em;text-transform:uppercase;color:var(--cc-red);
}
.cc-num{font-family:var(--cc-sans);font-size:11px;font-weight:700;letter-spacing:0.15em;color:var(--cc-red);}
.cc-h1{font-family:var(--cc-font);font-weight:900;line-height:0.95;color:var(--cc-ink);font-size:clamp(40px,8vw,64px);}
.cc-h1--xl{font-size:clamp(44px,9vw,72px);}
.cc-h1--hero{font-size:clamp(52px,9vw,88px);line-height:0.92;}
.cc-h2{font-family:var(--cc-font);font-weight:700;font-size:clamp(28px,4vw,36px);color:var(--cc-ink);line-height:1.1;}
.cc-h3{font-family:var(--cc-font);font-weight:700;font-size:clamp(22px,3vw,28px);line-height:1.1;}
.cc-em{font-style:italic;color:var(--cc-red);}
.cc-price{font-family:var(--cc-font);font-weight:700;color:var(--cc-red);}
.cc-lead{font-family:var(--cc-sans);font-size:15px;color:var(--cc-ink-mid);line-height:1.8;}
.cc-meta{font-family:var(--cc-sans);font-size:13px;color:var(--cc-ink-dim);}
.cc-italic{font-family:var(--cc-font);font-style:italic;color:var(--cc-ink);}

/* =========================================================================
   BUTTONS
   ========================================================================= */
.cc-btn{
	display:inline-block;font-family:var(--cc-sans);font-size:12px;font-weight:700;
	letter-spacing:0.1em;text-transform:uppercase;border:none;cursor:pointer;
	padding:14px 28px;border-radius:var(--cc-radius);transition:background-color .15s,color .15s;
	text-decoration:none;text-align:center;line-height:1.1;
}
.cc-btn--primary{background:var(--cc-ink);color:var(--cc-bg);}
.cc-btn--primary:hover,.cc-btn--primary:focus{background:var(--cc-red);color:#fff;}
.cc-btn--accent{background:var(--cc-yellow);color:var(--cc-ink);}
.cc-btn--accent:hover,.cc-btn--accent:focus{background:var(--cc-yellow-dark);}
.cc-btn--outline{background:transparent;color:var(--cc-ink);border:2px solid var(--cc-ink);padding:12px 26px;}
.cc-btn--outline:hover,.cc-btn--outline:focus{background:var(--cc-ink);color:var(--cc-bg);}
.cc-btn--red{background:var(--cc-red);color:#fff;}
.cc-btn--red:hover,.cc-btn--red:focus{background:var(--cc-red-dark);}
.cc-btn--block{display:block;width:100%;}
.cc-btn-row{display:flex;flex-wrap:wrap;gap:3px;margin-top:40px;}
.cc-btn-row--gap{gap:12px;}

/* =========================================================================
   NAV
   ========================================================================= */
.cc-nav{
	position:sticky;top:0;z-index:200;background:var(--cc-bg);
	border-bottom:3px solid var(--cc-ink);display:flex;align-items:stretch;
	height:60px;
}
.cc-nav__logo{
	background:var(--cc-ink);color:var(--cc-bg);border:none;cursor:pointer;
	font-family:var(--cc-sans);font-size:13px;font-weight:700;letter-spacing:0.08em;
	text-transform:uppercase;padding:0 24px;flex-shrink:0;display:flex;align-items:center;
	border-right:3px solid var(--cc-ink);text-decoration:none;
}
.cc-nav__word{
	display:flex;align-items:center;padding:0 24px;flex-shrink:0;
	border-right:3px solid var(--cc-ink);text-decoration:none;
	font-family:var(--cc-font);font-size:19px;font-weight:700;color:var(--cc-ink);white-space:nowrap;
}
.cc-nav__links{flex:1;display:flex;align-items:stretch;overflow-x:auto;scrollbar-width:none;}
.cc-nav__links::-webkit-scrollbar{display:none;}
.cc-nav__link{
	display:flex;align-items:center;background:none;border:none;
	border-right:1px solid var(--cc-ink-faint);cursor:pointer;padding:0 18px;height:100%;
	font-family:var(--cc-sans);font-size:13px;font-weight:400;letter-spacing:0.03em;
	color:var(--cc-ink-mid);flex-shrink:0;transition:background-color .15s,color .15s;
	white-space:nowrap;text-decoration:none;
}
.cc-nav__link:hover{color:var(--cc-ink);}
.cc-nav__link.is-active{background:var(--cc-red);color:#fff;font-weight:700;}
.cc-nav__cta{
	display:flex;align-items:center;background:var(--cc-red);color:#fff;border:none;
	font-family:var(--cc-sans);font-size:12px;font-weight:700;letter-spacing:0.1em;
	text-transform:uppercase;padding:0 28px;cursor:pointer;flex-shrink:0;
	border-left:3px solid var(--cc-ink);transition:background-color .15s;text-decoration:none;
}
.cc-nav__cta:hover,.cc-nav__cta:focus{background:var(--cc-red-dark);color:#fff;}
.cc-nav__toggle{
	display:none;align-items:center;justify-content:center;width:60px;flex-shrink:0;
	background:none;border:none;border-left:3px solid var(--cc-ink);cursor:pointer;
}
.cc-nav__toggle .cc-bars,.cc-nav__toggle .cc-bars::before,.cc-nav__toggle .cc-bars::after{
	display:block;width:22px;height:2px;background:var(--cc-ink);position:relative;transition:transform .2s,opacity .2s;
}
.cc-nav__toggle .cc-bars::before,.cc-nav__toggle .cc-bars::after{content:"";position:absolute;left:0;}
.cc-nav__toggle .cc-bars::before{top:-7px;}
.cc-nav__toggle .cc-bars::after{top:7px;}
.cc-nav.is-open .cc-nav__toggle .cc-bars{background:transparent;}
.cc-nav.is-open .cc-nav__toggle .cc-bars::before{transform:translateY(7px) rotate(45deg);}
.cc-nav.is-open .cc-nav__toggle .cc-bars::after{transform:translateY(-7px) rotate(-45deg);}

/* =========================================================================
   TICKER
   ========================================================================= */
.cc-ticker{background:var(--cc-ink);padding:11px 0;overflow:hidden;}
.cc-ticker__track{
	display:flex;gap:40px;width:max-content;animation:cc-ticker 22s linear infinite;
	font-family:var(--cc-sans);font-size:12px;color:var(--cc-bg);font-weight:500;
	letter-spacing:0.06em;white-space:nowrap;
}
.cc-ticker__track span{flex-shrink:0;}

/* =========================================================================
   FOOTER
   ========================================================================= */
.cc-footer{background:var(--cc-ink);color:var(--cc-bg);border-top:3px solid var(--cc-ink);}
.cc-footer__grid{
	display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:0;
	border-bottom:1px solid var(--cc-rule-on-dark);
}
.cc-footer__col{padding:48px 32px;border-right:1px solid var(--cc-rule-on-dark);}
.cc-footer__col--brand{padding:48px;}
.cc-footer__col:last-child{border-right:none;}
.cc-footer__brand{font-family:var(--cc-font);font-size:32px;font-weight:700;margin-bottom:8px;}
.cc-footer__tag{font-family:var(--cc-sans);font-size:12px;color:var(--cc-red);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:20px;}
.cc-footer__text{font-family:var(--cc-sans);font-size:14px;color:var(--cc-on-dark);line-height:1.8;}
.cc-footer__text a{color:var(--cc-on-dark);text-decoration:none;}
.cc-footer__text a.cc-footer__web{color:var(--cc-red);}
.cc-footer__label{font-family:var(--cc-sans);font-size:11px;color:var(--cc-red);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:20px;}
.cc-footer__hours-day{font-family:var(--cc-sans);font-size:13px;font-weight:600;color:var(--cc-bg);}
.cc-footer__hours-time{font-family:var(--cc-sans);font-size:13px;color:rgba(245,242,235,0.5);}
.cc-footer__hours-row{margin-bottom:14px;}
.cc-footer__nav a{display:block;font-family:var(--cc-sans);font-size:13px;color:var(--cc-on-dark);text-decoration:none;padding:0 0 10px;transition:color .15s;}
.cc-footer__nav a:hover{color:#fff;}
.cc-footer__blurb{font-family:var(--cc-sans);font-size:14px;color:var(--cc-on-dark);line-height:1.7;margin-bottom:24px;}
.cc-footer__social{margin-top:24px;font-family:var(--cc-sans);font-size:12px;color:var(--cc-on-dark-dim);letter-spacing:0.05em;}
.cc-footer__bar{padding:20px 48px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.cc-footer__bar span{font-family:var(--cc-sans);font-size:12px;color:rgba(245,242,235,0.3);}

/* =========================================================================
   PHOTO SLOTS
   ========================================================================= */
.cc-photo{width:100%;}
.cc-photo img{width:100%;height:var(--cc-photo-h,320px);object-fit:cover;}
.cc-photo__ph{
	width:100%;height:var(--cc-photo-h,320px);display:flex;align-items:center;justify-content:center;
	background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(0,0,0,0.03) 10px,rgba(0,0,0,0.03) 20px);
}
.cc-photo__label{font-family:monospace;font-size:11px;color:#999;text-align:center;line-height:1.6;padding:0 20px;opacity:0.7;white-space:pre-line;}

/* =========================================================================
   HOME — HERO + 3D
   ========================================================================= */
.cc-hero__left{padding:64px 56px;min-height:440px;}
.cc-hero__right{position:relative;background:var(--cc-bg);min-height:440px;overflow:hidden;}
.cc-hero3d{position:absolute;inset:0;overflow:hidden;}
.cc-hero3d__dots{position:absolute;inset:0;background-image:radial-gradient(rgba(17,17,17,0.05) 1.5px,transparent 1.6px);background-size:18px 18px;}
.cc-hero3d__stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;perspective:950px;}
.cc-hero3d__float{position:relative;width:250px;height:300px;transform-style:preserve-3d;transform:rotateX(-16deg);animation:cc-float 6s ease-in-out infinite;}
.cc-hero3d__spin{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(-24deg);animation:cc-rotate 22s linear infinite;}
.cc-plate{position:absolute;top:50%;left:50%;width:150px;height:150px;transform-style:preserve-3d;transform:translate(-50%,-50%) translateY(var(--cc-y,0)) rotateY(var(--cc-rot,0));}
.cc-face{position:absolute;top:50%;left:50%;box-sizing:border-box;border:3px solid var(--cc-ink);}
.cc-face--top{width:150px;height:150px;transform:translate(-50%,-50%) rotateX(90deg) translateZ(13px);overflow:hidden;}
.cc-face--bottom{width:150px;height:150px;transform:translate(-50%,-50%) rotateX(-90deg) translateZ(13px);}
.cc-face--s1{width:150px;height:26px;transform:translate(-50%,-50%) translateZ(75px);}
.cc-face--s2{width:150px;height:26px;transform:translate(-50%,-50%) rotateY(180deg) translateZ(75px);}
.cc-face--s3{width:150px;height:26px;transform:translate(-50%,-50%) rotateY(90deg) translateZ(75px);}
.cc-face--s4{width:150px;height:26px;transform:translate(-50%,-50%) rotateY(-90deg) translateZ(75px);}
.cc-plate--cracker .cc-face--top{background:var(--cc-bg);background-image:radial-gradient(var(--cc-ink) 1.4px,transparent 1.8px);background-size:20px 20px;background-position:center;}
.cc-plate--cracker .cc-face--bottom,.cc-plate--cracker .cc-face--s1,.cc-plate--cracker .cc-face--s2,.cc-plate--cracker .cc-face--s3,.cc-plate--cracker .cc-face--s4{background:#e7e0d1;}
.cc-plate--cheese .cc-face--top{background:var(--cc-yellow);}
.cc-plate--cheese .cc-face--bottom,.cc-plate--cheese .cc-face--s1,.cc-plate--cheese .cc-face--s2,.cc-plate--cheese .cc-face--s3,.cc-plate--cheese .cc-face--s4{background:var(--cc-yellow-dark);}
.cc-hole{position:absolute;border-radius:50%;background:var(--cc-ink);}
.cc-badge{
	position:absolute;bottom:24px;left:-52px;width:104px;height:104px;background:var(--cc-yellow);
	border:3px solid var(--cc-ink);border-radius:50%;display:flex;align-items:center;justify-content:center;
	text-align:center;z-index:2;
}
.cc-badge span{font-family:var(--cc-sans);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;line-height:1.4;color:var(--cc-ink);}

/* HOME — category grid */
.cc-cat{padding:32px 28px;cursor:pointer;background:transparent;transition:background-color .15s;text-decoration:none;display:block;border-right:2px solid var(--cc-ink);}
.cc-cat:last-child{border-right:none;}
.cc-cat__name{font-family:var(--cc-font);font-size:22px;font-weight:700;color:var(--cc-ink);line-height:1.1;white-space:pre-line;margin:8px 0 0;}
.cc-cat__go{font-family:var(--cc-sans);font-size:12px;color:var(--cc-ink-dim);margin-top:12px;}
.cc-cat:hover{background:var(--cc-ink);}
.cc-cat:hover .cc-cat__name{color:var(--cc-bg);}
.cc-cat:hover .cc-cat__go{color:rgba(245,242,235,0.5);}

/* HOME — today's menu + sidebar */
.cc-section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:32px;padding-bottom:16px;border-bottom:2px solid var(--cc-ink);gap:16px;flex-wrap:wrap;}
.cc-link-more{font-family:var(--cc-sans);font-size:11px;color:var(--cc-red);letter-spacing:0.1em;text-transform:uppercase;background:none;border:none;cursor:pointer;font-weight:600;text-decoration:none;white-space:nowrap;}
.cc-sidebar__cell{padding:36px 32px;}
.cc-sidebar__cell--seafood{background:var(--cc-ink);color:var(--cc-bg);cursor:pointer;text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;}
.cc-sidebar__seafood-h{font-family:var(--cc-font);font-size:28px;font-weight:700;margin-bottom:10px;}
.cc-sidebar__seafood-go{font-family:var(--cc-sans);font-size:12px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--cc-yellow);margin-top:20px;}

/* CTA band (yellow) */
.cc-band{padding:48px 56px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
.cc-band--yellow{background:var(--cc-yellow);}
.cc-band--dark{background:var(--cc-ink);color:var(--cc-bg);}
.cc-band__title{font-family:var(--cc-font);font-size:clamp(28px,4vw,40px);font-weight:700;color:var(--cc-ink);margin-bottom:8px;}
.cc-band--dark .cc-band__title{color:var(--cc-bg);}
.cc-band__title--900{font-weight:900;}
.cc-band__sub{font-family:var(--cc-sans);font-size:15px;color:var(--cc-ink-mid);max-width:480px;}
.cc-band--dark .cc-band__sub{color:var(--cc-on-dark);}

/* =========================================================================
   ITEM LISTS (sandwiches, cheese, charcuterie, seafood, catering)
   ========================================================================= */
.cc-2col-list{display:grid;grid-template-columns:1fr 1fr;gap:0 64px;}
.cc-3col-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0 48px;}
.cc-item{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--cc-ink-faint);display:flex;gap:16px;}
.cc-item__num{font-family:var(--cc-sans);font-size:11px;color:var(--cc-red);font-weight:700;min-width:24px;margin-top:6px;}
.cc-item__body{flex:1;min-width:0;}
.cc-item__head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;}
.cc-item__name{font-family:var(--cc-font);font-size:22px;font-weight:700;line-height:1.15;}
.cc-item__name .cc-star{color:var(--cc-red);margin-left:6px;}
.cc-item__price{font-family:var(--cc-font);font-size:22px;color:var(--cc-red);flex-shrink:0;}
.cc-item__tagline{font-family:var(--cc-font);font-size:14px;font-style:italic;color:var(--cc-ink-mid);margin-top:3px;}
.cc-item__desc{font-family:var(--cc-sans);font-size:13px;color:var(--cc-ink-dim);margin-top:6px;line-height:1.5;}
.cc-item__origin{font-family:var(--cc-sans);font-size:11px;font-weight:600;color:var(--cc-red);letter-spacing:0.08em;text-transform:uppercase;}
.cc-item__type{font-family:var(--cc-sans);font-size:11px;color:var(--cc-ink-dim);}
.cc-item--block{display:block;}
.cc-item--hover{transition:background-color .15s;}
.cc-item--hover:hover{background:rgba(0,0,0,0.02);}

.cc-legend{font-family:var(--cc-sans);font-size:12px;color:var(--cc-ink-mid);display:flex;align-items:center;gap:8px;}
.cc-legend .cc-star{color:var(--cc-red);font-size:14px;}
.cc-subnote{padding:24px 56px 0;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
.cc-subnote__text{font-family:var(--cc-font);font-size:20px;font-style:italic;color:var(--cc-ink);}

/* Menu tabs */
.cc-tabs{display:flex;border-top:2px solid var(--cc-ink);}
.cc-tab{
	background:transparent;color:var(--cc-ink-mid);border:none;border-right:1px solid var(--cc-ink-faint);
	font-family:var(--cc-sans);font-size:12px;font-weight:400;letter-spacing:0.08em;text-transform:uppercase;
	padding:14px 28px;cursor:pointer;transition:background-color .15s,color .15s;white-space:nowrap;text-decoration:none;
}
.cc-tab:hover{color:var(--cc-ink);}
.cc-tab.is-active{background:var(--cc-ink);color:var(--cc-bg);font-weight:700;}
.cc-tabpanel{padding:32px 56px 48px;}
.cc-tabpanel[hidden]{display:none;}

/* Upsell / dark info box */
.cc-upsell{margin:0 56px 56px;background:var(--cc-ink);color:var(--cc-bg);padding:32px 40px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
.cc-upsell__title{font-family:var(--cc-font);font-size:24px;font-weight:700;margin-bottom:6px;}
.cc-upsell__text{font-family:var(--cc-sans);font-size:13px;color:rgba(245,242,235,0.65);line-height:1.5;max-width:520px;}

/* Dark "also available" list */
.cc-darklist__item{font-family:var(--cc-sans);font-size:14px;color:rgba(245,242,235,0.75);padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--cc-rule-on-dark);display:flex;gap:12px;align-items:center;}
.cc-darklist__item .cc-dash{color:var(--cc-yellow);font-weight:700;}

/* =========================================================================
   GROCERY
   ========================================================================= */
.cc-grocery-label{padding:40px;border-right:3px solid var(--cc-ink);display:flex;align-items:flex-start;}
.cc-grocery-cat{font-family:var(--cc-font);font-size:28px;font-weight:700;color:var(--cc-ink);line-height:1.1;margin-top:8px;}
.cc-grocery-items{padding:40px 48px;display:grid;grid-template-columns:1fr 1fr;gap:0;}
.cc-grocery-item{font-family:var(--cc-sans);font-size:14px;color:var(--cc-ink-mid);padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--cc-ink-faint);line-height:1.5;padding-right:24px;}

/* =========================================================================
   CATERING — trays / pricing tables
   ========================================================================= */
.cc-pricing{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.cc-pricetable{border:3px solid var(--cc-ink);}
.cc-pricetable__head{background:var(--cc-ink);color:var(--cc-bg);padding:16px 24px;font-family:var(--cc-sans);font-size:12px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;}
.cc-pricetable__row{display:flex;justify-content:space-between;align-items:baseline;padding:18px 24px;border-bottom:1px solid var(--cc-ink-faint);gap:12px;}
.cc-pricetable__row:last-child{border-bottom:none;}
.cc-pricetable__size{font-family:var(--cc-font);font-size:20px;font-weight:700;color:var(--cc-ink);}
.cc-pricetable__serves{font-family:var(--cc-sans);font-size:12px;color:var(--cc-ink-dim);margin-left:12px;}
.cc-pricetable__price{font-family:var(--cc-font);font-size:22px;font-weight:700;color:var(--cc-red);}
.cc-note-dash{margin-top:24px;font-family:var(--cc-sans);font-size:13px;color:var(--cc-ink-mid);display:flex;align-items:center;gap:10px;}
.cc-note-dash .cc-dash{color:var(--cc-red);font-weight:700;}

.cc-feature{padding:40px 48px;}
.cc-feature__name{font-family:var(--cc-font);font-size:26px;font-weight:700;color:var(--cc-ink);margin-bottom:10px;}
.cc-feature__desc{font-family:var(--cc-sans);font-size:13px;color:var(--cc-ink-dim);line-height:1.6;}

/* Inline link buttons (email/phone "buttons" built from anchors) */
.cc-pill{display:inline-block;text-decoration:none;font-family:var(--cc-sans);font-weight:700;padding:12px 24px;letter-spacing:0.04em;}
.cc-pill--dark{background:var(--cc-ink);color:var(--cc-bg);font-size:13px;}
.cc-pill--outline{background:transparent;color:var(--cc-ink);border:2px solid var(--cc-ink);font-size:13px;padding:10px 24px;}
.cc-pill--lg{font-size:18px;padding:14px 32px;text-align:center;}
.cc-pill--lg-outline{font-size:15px;font-weight:600;padding:12px 32px;text-align:center;}

/* =========================================================================
   EVENTS
   ========================================================================= */
.cc-event{padding:32px 56px;border-bottom:2px solid var(--cc-ink-faint);}
.cc-event:nth-child(even){background:rgba(0,0,0,0.02);}
.cc-event__date{font-family:var(--cc-font);font-size:18px;font-weight:700;color:var(--cc-ink);}
.cc-event__time{font-family:var(--cc-sans);font-size:12px;color:var(--cc-ink-dim);margin-top:4px;}
.cc-event__title{font-family:var(--cc-font);font-size:24px;font-weight:700;margin-bottom:6px;}
.cc-event__desc{font-family:var(--cc-sans);font-size:13px;color:var(--cc-ink-dim);line-height:1.6;}

/* =========================================================================
   ABOUT — values
   ========================================================================= */
.cc-value{padding:48px 40px;border-right:2px solid var(--cc-ink);}
.cc-value:last-child{border-right:none;}
.cc-value__title{font-family:var(--cc-font);font-size:26px;font-weight:700;margin:12px 0 16px;}
.cc-value__body{font-family:var(--cc-sans);font-size:14px;color:var(--cc-ink-mid);line-height:1.7;}

/* =========================================================================
   BOX LUNCHES
   ========================================================================= */
.cc-box-includes{background:var(--cc-yellow);padding:56px;display:flex;flex-direction:column;justify-content:center;}
.cc-box-includes__eyebrow{font-family:var(--cc-sans);font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--cc-ink);margin-bottom:16px;}
.cc-box-includes__item{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid rgba(17,17,17,0.15);font-family:var(--cc-font);font-size:22px;font-weight:700;color:var(--cc-ink);}
.cc-box-includes__item .cc-star{color:var(--cc-red);}
.cc-box-price{margin-top:40px;padding-top:28px;border-top:2px solid var(--cc-ink);display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;}
.cc-box-price__amt{font-family:var(--cc-font);font-size:clamp(36px,6vw,48px);font-weight:900;color:var(--cc-red);}
.cc-choice-head{font-family:var(--cc-font);font-size:clamp(26px,4vw,32px);font-weight:700;margin-bottom:8px;padding-bottom:16px;border-bottom:2px solid var(--cc-ink);}
.cc-choice-row{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--cc-ink-faint);align-items:baseline;}
.cc-choice-row__num{font-family:var(--cc-sans);font-size:11px;color:var(--cc-red);font-weight:700;min-width:22px;}
.cc-choice-row__name{font-family:var(--cc-font);font-size:20px;font-weight:700;color:var(--cc-ink);}
.cc-chip{font-family:var(--cc-sans);font-size:14px;font-weight:500;color:var(--cc-ink);border:2px solid var(--cc-ink);padding:10px 18px;}
.cc-chips{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 40px;}
.cc-knowbox{background:var(--cc-ink);color:var(--cc-bg);padding:28px 32px;}
.cc-knowbox__item{font-family:var(--cc-sans);font-size:13px;color:rgba(245,242,235,0.75);display:flex;gap:12px;padding:8px 0;line-height:1.5;}
.cc-knowbox__item .cc-dash{color:var(--cc-yellow);font-weight:700;}

/* =========================================================================
   ORDER (How to Order)
   ========================================================================= */
.cc-order-method{padding:40px 48px;border-bottom:2px solid var(--cc-ink-faint);}
.cc-order-method:last-child{border-bottom:none;}
.cc-order-method__k{font-family:var(--cc-font);font-size:24px;font-weight:700;margin:10px 0 8px;}
.cc-order-method__v{font-family:var(--cc-sans);font-size:15px;color:var(--cc-ink-mid);line-height:1.7;}
.cc-order-method__v a{color:var(--cc-red);text-decoration:none;font-weight:600;}

/* =========================================================================
   CONTACT INFO BLOCKS
   ========================================================================= */
.cc-info-block{margin-bottom:40px;}
.cc-info-block:last-child{margin-bottom:0;}
.cc-info-addr{font-family:var(--cc-font);font-size:22px;font-weight:700;margin-bottom:6px;}
.cc-info-lines{font-family:var(--cc-sans);font-size:15px;color:var(--cc-ink-mid);line-height:1.8;}
.cc-info-lines a{text-decoration:none;}
.cc-info-lines a.t-ink{color:var(--cc-ink);font-weight:600;}
.cc-info-lines a.t-red{color:var(--cc-red);}
.cc-info-lines a.t-dim{color:var(--cc-ink-dim);}
.cc-hours-row{display:flex;justify-content:space-between;font-family:var(--cc-sans);font-size:14px;color:var(--cc-ink);padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--cc-ink-faint);}
.cc-hours-row b{font-weight:600;}
.cc-map{width:100%;height:240px;border:0;display:block;}

/* =========================================================================
   FORMS
   ========================================================================= */
.cc-form{display:flex;flex-direction:column;gap:24px;}
.cc-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.cc-field label{font-family:var(--cc-sans);font-size:11px;color:var(--cc-ink-dim);letter-spacing:0.1em;text-transform:uppercase;display:block;margin-bottom:4px;}
.cc-field input,.cc-field textarea{
	width:100%;font-family:var(--cc-sans);font-size:14px;color:var(--cc-ink);background:transparent;
	border:none;border-bottom:2px solid var(--cc-ink);padding:10px 0;outline:none;border-radius:0;
}
.cc-field textarea{resize:vertical;min-height:90px;border:2px solid var(--cc-ink);padding:10px 12px;}
.cc-field input:focus,.cc-field textarea:focus{border-color:var(--cc-red);}
.cc-form-title{font-family:var(--cc-font);font-size:24px;font-weight:700;margin-bottom:24px;}
.cc-form-thanks{font-family:var(--cc-font);font-size:24px;color:var(--cc-ink);line-height:1.4;}
.cc-form-thanks em{color:var(--cc-red);}
.cc-form-thanks span{font-family:var(--cc-sans);font-size:14px;color:var(--cc-ink-dim);}
.cc-form-error{font-family:var(--cc-sans);font-size:13px;color:var(--cc-red);background:rgba(200,44,44,0.08);padding:10px 14px;border-left:3px solid var(--cc-red);}
.cc-form-dark .cc-field label{color:rgba(245,242,235,0.55);}
.cc-form-dark .cc-field input,.cc-form-dark .cc-field textarea{color:var(--cc-bg);border-color:var(--cc-bg);}

/* On-dark text helper */
.cc-on-dark{color:var(--cc-on-dark);}
.cc-mt-row{margin-top:32px;padding-top:24px;border-top:2px solid var(--cc-ink);display:flex;gap:12px;flex-wrap:wrap;}
.cc-mt-row--dark{border-top-color:rgba(245,242,235,0.3);}
.cc-prose-dark{font-family:var(--cc-sans);font-size:14px;color:rgba(245,242,235,0.7);line-height:1.8;}
.cc-prose-dark a{color:var(--cc-yellow);text-decoration:none;}

/* spacing utilities used in templates */
.cc-mb-8{margin-bottom:8px;}
.cc-mb-12{margin-bottom:12px;}
.cc-mb-16{margin-bottom:16px;}
.cc-mb-20{margin-bottom:20px;}
.cc-mb-24{margin-bottom:24px;}
.cc-mb-32{margin-bottom:32px;}
.cc-mt-12{margin-top:12px;}
.cc-mt-20{margin-top:20px;}
.cc-mt-24{margin-top:24px;}
.cc-maxw{max-width:460px;}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width:1100px){
	:root{--cc-pad-x:40px;}
	.cc-grid--5{grid-template-columns:repeat(3,1fr);}
	.cc-cat{border-bottom:2px solid var(--cc-ink);}
	.cc-cat:nth-child(3n){border-right:none;}
}

@media (max-width:900px){
	/* Collapse the nav to a drawer */
	.cc-nav__word{font-size:17px;padding:0 16px;}
	.cc-nav__toggle{display:flex;}
	.cc-nav__links{
		position:absolute;top:60px;left:0;right:0;display:none;flex-direction:column;
		background:var(--cc-bg);border-bottom:3px solid var(--cc-ink);overflow:visible;max-height:calc(100vh - 60px);overflow-y:auto;
	}
	.cc-nav.is-open .cc-nav__links{display:flex;}
	.cc-nav__link{height:auto;padding:16px 24px;border-right:none;border-bottom:1px solid var(--cc-ink-faint);width:100%;font-size:15px;}
	.cc-nav__cta{margin-left:auto;padding:0 18px;font-size:11px;}

	/* Stack every multi-column grid; convert vertical rules to horizontal */
	.cc-grid--hero,.cc-grid--2,.cc-grid--sidebar,.cc-grid--5,.cc-grid--3,.cc-grid--grocery,.cc-grid--event{grid-template-columns:1fr;}
	.cc-grid--event{gap:16px;align-items:start;}
	.cc-rule-r,.cc-rule-r2{border-right:none;border-bottom:3px solid var(--cc-ink);}
	.cc-cat{border-right:none!important;border-bottom:2px solid var(--cc-ink);}
	.cc-grocery-label{border-right:none;border-bottom:2px solid var(--cc-ink);padding:32px 40px;}
	.cc-value{border-right:none;border-bottom:2px solid var(--cc-ink);}
	.cc-value:last-child{border-bottom:none;}
	.cc-2col-list,.cc-3col-list,.cc-grocery-items,.cc-form__grid,.cc-pricing{grid-template-columns:1fr;gap:0;}
	.cc-pricing{gap:24px;}
	.cc-footer__grid{grid-template-columns:1fr 1fr;}
	.cc-footer__col,.cc-footer__col--brand{border-right:none;border-bottom:1px solid var(--cc-rule-on-dark);padding:36px 28px;}
	.cc-hero__left{padding:48px 40px;min-height:0;}
	.cc-hero__right{min-height:340px;}
	.cc-pad,.cc-pad-lg,.cc-pad-56{padding:40px var(--cc-pad-x);}
	.cc-band,.cc-upsell{flex-direction:column;align-items:flex-start;}
	.cc-upsell{margin:0 40px 40px;}
}

@media (max-width:560px){
	:root{--cc-pad-x:24px;}
	.cc-grid--5{grid-template-columns:1fr;}
	.cc-footer__grid{grid-template-columns:1fr;}
	.cc-tabpanel{padding:28px 24px 40px;}
	.cc-subnote{padding:20px 24px 0;}
	.cc-event{padding:24px;}
	.cc-btn{padding:13px 22px;}
	.cc-nav__word{font-size:15px;}
}
