/* ==========================================================================
   BCD Distillery — main stylesheet (theme 2.0)
   Same look as 1.x, rebuilt without jQuery/Owl/Font Awesome.
   ========================================================================== */

@font-face {
	font-family: "YWFTUltramagnetic-Light";
	src: url("../fonts/ultramagnetic-light.woff2") format("woff2"), url("../fonts/ultramagnetic-light.woff") format("woff");
	font-display: swap;
}

:root {
	--brown: #5e3227;
	--brown-deep: #5c3327;
	--cream: #fffef4;
	--cream-2: #fffdf2;
	--gold: #a17307;
	--tan: #8c754f;
	--sand: #f0d9a8;
	--ink: #000;
	--link: #2f6f99;
	--header-h: 74px;
	--font: "YWFTUltramagnetic-Light", "Arial Narrow", "Roboto Condensed", sans-serif-condensed, sans-serif;
	--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
@media (min-width: 768px) { :root { --header-h: 82px; } }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; line-height: 1.6; background: var(--cream); -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
@media (min-width: 768px) { html { font-size: 18px; } }
body { font-family: var(--font); font-weight: normal; color: var(--brown); background: var(--cream); overflow-wrap: break-word; }
img, svg, video { max-width: 100%; height: auto; display: block; }
img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px; }
a { color: inherit; text-decoration: none; transition: color .3s, background-color .3s, opacity .3s; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
ul[role="list"], ol[role="list"] { list-style: none; }
address { font-style: normal; }
h1, h2, h3, h4, h5, h6 { font-weight: normal; font-size: inherit; line-height: 1.2; }

:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
:focus:not(:focus-visible) { outline: none; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed !important; top: 8px; left: 8px; z-index: 100000; width: auto; height: auto; margin: 0; padding: 12px 18px; clip: auto; clip-path: none; background: var(--cream); color: var(--brown); font-size: 1rem; white-space: normal; }

.container { max-width: 1200px; width: 90%; margin: 0 auto; position: relative; }

.icon { width: 1em; height: 1em; }

/* Full-bleed background photo layer (replaces CSS background-image) */
.bg-media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.bg-media__img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

/* ---------- Type ---------- */
.headline { font-size: 3rem; text-transform: uppercase; line-height: 1.2; }
.headline--2 { font-size: 2rem; }
@media (min-width: 1200px) {
	.headline { font-size: 4rem; }
	.headline--2 { font-size: 2.5rem; }
}

.rule-heading { display: flex; align-items: center; gap: 24px; text-align: center; color: var(--brown); }
.rule-heading::before, .rule-heading::after { content: ""; flex: 1; height: 2px; background: currentColor; }
.rule-heading--gold { color: var(--gold); }

/* ---------- Buttons ---------- */
.btn { display: inline-block; padding: 8px 24px; border: 1px solid #fff; color: #fff; background: transparent; text-transform: uppercase; font-size: 1.125rem; line-height: 1.6; }
.btn:hover { background: rgba(255, 255, 255, .85); color: var(--brown); }
.btn--dark { background: var(--ink); border-color: var(--ink); color: #fff; width: 100%; max-width: 300px; text-align: center; }
.btn--dark:hover { background: var(--ink); color: #fff; opacity: .8; }

/* ---------- Header ---------- */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; height: var(--header-h); background: var(--brown); color: #fff; }
.admin-bar .site-header { top: 46px; }
@media (min-width: 783px) { .admin-bar .site-header { top: 32px; } }
.site-header__inner { height: 100%; display: flex; align-items: center; justify-content: center; }
.site-header__logo { position: absolute; top: 0; left: 0; z-index: 3; display: block; width: 125px; }
.site-header__logo-img { width: 100%; height: auto; }
@media (min-width: 768px) { .site-header__logo { width: 175px; } }

.menu-toggle { margin-left: auto; position: relative; z-index: 3; display: grid; place-items: center; width: 48px; height: 48px; font-size: 1.75rem; color: #fff; }
.menu-toggle .icon--close, .menu-toggle[aria-expanded="true"] .icon--menu { display: none; }
.menu-toggle[aria-expanded="true"] .icon--close { display: block; }

.site-nav { display: none; position: fixed; inset: 0; z-index: 2; background: var(--brown); padding: calc(var(--header-h) + 16px) 40px 40px; overflow-y: auto; }
.site-nav.is-open { display: block; }
.admin-bar .site-nav { top: 46px; }
.site-nav__list { list-style: none; }
.site-nav__list a { display: block; padding: 16px 0; color: #fff; font-size: 1.75rem; line-height: 1; text-transform: uppercase; }
.site-nav__list a:hover, .site-nav__list .current-menu-item > a, .site-nav__list .current-menu-ancestor > a, .site-nav__list .current_page_parent > a { color: var(--sand); }
.site-nav__list .current-menu-item > a { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }

@media (min-width: 1200px) {
	.menu-toggle { display: none; }
	.site-nav, .site-nav.is-open { display: block; position: static; inset: auto; padding: 0; margin-left: 32px; background: none; overflow: visible; }
	.site-nav__list li { display: inline-block; padding: 0 16px; }
	.site-nav__list a { font-size: 1.125rem; padding: 8px 0; }
}
.site-header--landing .site-header__inner { justify-content: flex-start; }

.site-main { display: block; padding-top: var(--header-h); min-height: 60vh; }
.site-main:focus { outline: none; }

/* ---------- Page headers ---------- */
.page-header { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; min-height: 60vh; padding: 5vw 0; text-align: center; }
.page-header--photo { color: #fff; text-shadow: 0 1px 14px rgba(0, 0, 0, .35); }
.page-header--tall { min-height: 70vh; }
.page-header--plain { min-height: 40vh; }

/* ---------- Editor content ---------- */
.entry-content p { margin-bottom: 40px; }
.entry-content p:last-child { margin-bottom: 0; }
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5 { margin-bottom: 10px; }
.entry-content h1 { font-size: 3rem; }
.entry-content h2 { font-size: 2.25rem; }
.entry-content h3 { font-size: 1.125rem; }
.entry-content h4 { font-size: .875rem; }
.entry-content a { color: var(--link); text-decoration: underline; text-underline-offset: 3px; }
.entry-content a:hover { text-decoration-thickness: 2px; }
.entry-content ul, .entry-content ol { margin: 0 0 40px 20px; }
.entry-content ul { list-style: disc outside; }
.entry-content ol { list-style: decimal outside; }
.entry-content li { margin-bottom: 10px; }
.entry-content em, .entry-content i { font-style: italic; }
.entry-content strong, .entry-content b { font-weight: 700; }
.entry-content img { max-width: 100%; height: auto; margin-bottom: 40px; }
.entry-content .wp-caption { max-width: 100%; }
.entry-content .wp-caption-text { line-height: 1.4; margin-top: -30px; margin-bottom: 40px; font-style: italic; font-size: .833rem; }
.entry-content iframe { max-width: 100%; }
@media (min-width: 768px) {
	.entry-content h1 { font-size: 4rem; }
	.entry-content .alignright { float: right; margin: 0 0 20px 40px; }
	.entry-content .alignleft { float: left; margin: 0 40px 20px 0; }
	.entry-content .aligncenter { display: block; margin-left: auto; margin-right: auto; }
}
.entry-content--page { max-width: 820px; margin: 0 auto; padding: 60px 0 80px; }
.entry-content--page::after { content: ""; display: table; clear: both; }

/* ---------- Carousels (scroll-snap; JS adds buttons/dots behaviour) ---------- */
.carousel { position: relative; --per: 1; --gap: 0px; }
.carousel__track { display: flex; gap: var(--gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; list-style: none; }
.carousel__track::-webkit-scrollbar { display: none; }
.carousel__slide { flex: 0 0 calc((100% - (var(--per) - 1) * var(--gap)) / var(--per)); min-width: 0; scroll-snap-align: start; }
.carousel__btn { position: absolute; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; font-size: 2rem; color: #fff; }
.carousel__btn:hover { opacity: .75; }
.carousel__btn--prev { left: -8px; }
.carousel__btn--next { right: -8px; }
.carousel.is-static .carousel__btn, .carousel.is-static .carousel__dots { display: none; }
.carousel__dots { display: flex; justify-content: center; gap: 4px; margin-top: 24px; }
.carousel__dot { width: 30px; height: 30px; display: grid; place-items: center; }
.carousel__dot::before { content: ""; width: 16px; height: 16px; border-radius: 50%; border: 1px solid #fff; transition: background-color .2s; }
.carousel__dot[aria-current="true"]::before, .carousel__dot:hover::before { background: #fff; }

/* ---------- Home: hero ---------- */
.hero { position: relative; }
.hero__slides { position: relative; height: 60vh; overflow: hidden; }
@media (min-width: 768px) { .hero__slides { height: 80vh; } }
.hero__slide { position: absolute; inset: 0; isolation: isolate; display: flex; align-items: flex-start; justify-content: center; padding: 10vw 20px 5vw; text-align: center; color: #fff; opacity: 0; visibility: hidden; transition: opacity 1s ease, visibility 0s linear 1s; }
.hero__slide.is-active { opacity: 1; visibility: visible; transition: opacity 1s ease; }
.hero__slide--bottom { align-items: flex-end; }
.hero__slide--left { justify-content: flex-start; }
.hero__headline { max-width: 650px; }
.hero__slide--top .hero__headline { max-width: 100%; }
.hero__headline--white { color: #fff; text-shadow: 0 1px 16px rgba(0, 0, 0, .3); }
.hero__headline--brown { color: var(--brown); }
.hero__pause { position: absolute; right: 16px; bottom: 16px; z-index: 2; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: rgba(0, 0, 0, .35); color: #fff; font-size: 1rem; }
.hero__pause:hover { background: rgba(0, 0, 0, .55); }
.hero__pause .icon--play, .hero.is-paused .hero__pause .icon--pause { display: none; }
.hero.is-paused .hero__pause .icon--play { display: block; }

/* ---------- Home: story band ---------- */
.home-story { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; padding: 20vw 0; text-align: center; color: #fff; }
.home-story__inner { display: flex; flex-direction: column; align-items: center; padding: 0 5%; }
.home-story .headline { text-shadow: 0 1px 16px rgba(0, 0, 0, .3); }
.home-story__btn { margin-top: 24px; }
@media (min-width: 992px) { .home-story { padding: 5vw 0; min-height: 60vh; } }

/* ---------- Home: spirits ---------- */
.home-spirits { position: relative; background: var(--cream-2); padding-bottom: 2vw; text-align: center; }
.home-spirits__band, .home-spirits__panel { position: absolute; top: 0; left: 0; width: 100%; height: 60%; padding-top: 60px; text-align: center; color: #fff; }
.home-spirits__band { background: var(--brown-deep); }
.home-spirits__panel { z-index: 2; display: none; background: var(--panel, var(--brown-deep)); }
.home-spirits__panel.is-visible { display: block; }
.home-spirits__panel-name { font-size: 3rem; }
.home-spirits__container { z-index: 5; }
.carousel--spirits { --per: 2; padding-top: 140px; }
.carousel--spirits .carousel__btn { top: 72px; }
@media (min-width: 768px) {
	.home-spirits__band, .home-spirits__panel { padding-top: 80px; }
	.carousel--spirits { padding-top: 200px; }
	.carousel--spirits .carousel__btn { top: 112px; }
}
@media (min-width: 992px) { .carousel--spirits { --per: 4; } }
@media (min-width: 1200px) { .carousel--spirits { --per: 6; } }
@media (min-width: 1400px) { .carousel--spirits { --per: 8; } }
.spirit-card { display: block; padding: 0 6px; }
.spirit-card__img { width: auto; height: 300px; max-width: 100%; object-fit: contain; margin: 0 auto; }
.spirit-card__name { margin-top: 10px; line-height: 1.3; text-transform: uppercase; font-size: 1rem; }
a.spirit-card:hover .spirit-card__name { text-decoration: underline; text-underline-offset: 4px; }

/* ---------- Home: bottom links ---------- */
.home-buckets { display: flex; flex-direction: column; gap: 12px; margin: 12px 0; }
.home-buckets__item { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; padding: 15vw 5%; text-align: center; color: #fff; }
.home-buckets__item:hover { opacity: .85; }
.home-buckets__title { text-shadow: 0 1px 16px rgba(0, 0, 0, .35); }
@media (min-width: 768px) {
	.home-buckets { flex-direction: row; }
	.home-buckets__item { flex: 1; }
}

/* ---------- Spirits / sections ---------- */
.section-row { padding: 40px 0; border-bottom: 2px solid var(--brown); }
.section-row:last-child { border-bottom: 0; }
.section-row__media { width: 100%; margin-bottom: 24px; text-align: center; }
.section-row__img { width: 350px; height: 350px; object-fit: contain; margin: 0 auto; }
.section-row__body { text-align: center; color: var(--ink); }
.section-row__tagline { text-transform: uppercase; font-size: 1.75rem; line-height: 1.2; }
.section-row__text { font-size: 1.375rem; margin-top: 24px; }
.section-row__text p + p { margin-top: 16px; }
.section-row__btn { margin-top: 32px; }
.sections--type .section-row__body { text-align: left; }
.sections--type .section-row__text { font-size: 1rem; }
.sections--type .section-row__text p { margin-bottom: 24px; }
.sections--type .section-row__text a { color: var(--link); }
@media (min-width: 768px) {
	.section-row { display: flex; justify-content: center; align-items: center; gap: 4%; }
	.section-row:nth-child(even) { flex-direction: row-reverse; }
	.section-row__body { width: 40%; }
	.section-row__media { width: 40%; margin: 0; }
	.sections--type .section-row__body { flex: 1; }
	.sections--type .section-row:nth-child(even) { flex-direction: row; }
}
@media (min-width: 1200px) { .section-row__img { width: 450px; height: 450px; } }

/* ---------- Our Story ---------- */
.story__intro { padding: 5vw 0; font-size: 1.25rem; text-align: center; }
.story__intro .entry-content { max-width: 820px; margin: 0 auto; }
.story-slides { position: relative; isolation: isolate; margin-bottom: 12px; padding: 5vw 0 2vw; text-align: center; color: #fff; }
.carousel--single .carousel__slide { display: flex; align-items: center; padding: 24px 0; }
.story-slides__box { width: 80%; max-width: 700px; margin: 0 auto; padding: 24px; background: rgba(0, 0, 0, .55); font-size: 1.25rem; }
.story-slides__title { text-transform: none; font-size: 2.225rem; margin-bottom: 8px; }
.story-slides__text p + p { margin-top: 12px; }
.story-history { padding: 5vw 0; }
.story-history .rule-heading { font-size: 2.225rem; margin-bottom: 32px; }
.carousel--history { --per: 1; --gap: 40px; }
@media (min-width: 600px) { .carousel--history { --per: 2; } }
@media (min-width: 1200px) { .carousel--history { --per: 3; } }
.carousel--history .carousel__slide { display: flex; justify-content: center; }
.story-history__img { width: 300px; height: 200px; object-fit: cover; }
.carousel--history .carousel__btn { top: 78px; color: var(--brown); }
.carousel--history .carousel__btn--prev { left: -44px; }
.carousel--history .carousel__btn--next { right: -44px; }
@media (max-width: 1279px) {
	.carousel--history .carousel__btn--prev { left: -12px; }
	.carousel--history .carousel__btn--next { right: -12px; }
	.carousel--history .carousel__btn { background: rgba(255, 254, 244, .85); border-radius: 50%; }
}

/* ---------- Visit ---------- */
.visit { padding: 60px 0; }
.visit__booking { margin-top: 32px; }

/* ---------- Contact ---------- */
.contact { margin: 60px 0; padding: 24px; background: var(--ink); color: #bebdbd; }
.contact a { color: #c4a87a; }
.contact a:hover { text-decoration: underline; }
.contact__item { margin-bottom: 32px; }
.contact__label { margin-bottom: 8px; text-transform: uppercase; font-size: 1rem; color: #fff; }
.contact__media img { width: 100%; height: auto; }
.contact .hours__row dt, .contact .hours__row dd { color: #bebdbd; }
@media (min-width: 992px) {
	.contact { display: flex; margin: 100px 0; }
	.contact__col { width: 25%; margin-right: 8%; }
	.contact__media { width: 34%; margin: 0; }
}

/* ---------- Hours list (footer + contact) ---------- */
.hours__row { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.hours__row:last-child { border-bottom: 0; }
.hours__note { margin-top: 10px; font-size: .9em; opacity: .9; }

/* ---------- Social icons ---------- */
.social { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; }
.social__link { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #fff; color: var(--brown); border: 1px solid transparent; font-size: 18px; }
.social__link:hover { background: var(--brown); color: #fff; border-color: #fff; }
.social--contact .social__link { width: 44px; height: 44px; background: transparent; color: #bebdbd; border-color: #bebdbd; }
.social--contact .social__link:hover { color: #fff; border-color: #fff; background: transparent; }

/* ---------- Footer ---------- */
.site-footer { background: var(--brown); color: #fff; text-align: center; }
.site-footer__grid { display: flex; flex-direction: column; gap: 34px; padding: 44px 0 32px; }
.site-footer__logo { width: 230px; height: auto; margin: 0 auto; }
.site-footer__heading { margin-bottom: 12px; font-size: .9rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sand); }
.site-footer .hours { text-align: left; font-size: 1.167rem; line-height: 1.75; max-width: 420px; margin: 0 auto; }
.site-footer .hours__legacy { font-size: 1.1rem; }
.site-footer__address, .site-footer__contact { font-size: 1.167rem; line-height: 1.45; }
.site-footer__contact { margin-top: 12px; }
.site-footer__contact a { text-decoration: underline; text-underline-offset: 4px; }
.site-footer__contact a:hover { color: var(--sand); }
.site-footer__blurb { font-size: 1.1rem; line-height: 1.4; margin-bottom: 18px; }
.site-footer__btn { padding: 10px 24px; font-size: 1rem; letter-spacing: .04em; }
.site-footer .social { justify-content: center; margin-top: 22px; }
.site-footer__bar { border-top: 1px solid rgba(255, 255, 255, .18); font-family: var(--font-ui); font-size: .78rem; line-height: 1.6; color: rgba(255, 255, 255, .85); }
.site-footer__bar-inner { display: flex; flex-direction: column; align-items: center; padding: 14px 0; }
@media (min-width: 992px) {
	.site-footer { text-align: left; }
	.site-footer__grid { display: grid; grid-template-columns: 1.1fr 1.3fr 1fr 1.15fr; gap: 56px; align-items: start; padding: 64px 0 48px; }
	.site-footer__brand { padding-top: 6px; }
	.site-footer__logo { width: 250px; margin: 0; }
	.site-footer .hours { max-width: none; margin: 0; }
	.site-footer .social { justify-content: flex-start; }
	.site-footer__bar-inner { flex-direction: row; justify-content: space-between; padding: 16px 0; }
}

/* ---------- Age check ---------- */
.age-gate { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--brown); color: #fff; isolation: isolate; overflow-y: auto; }
.age-gate[open] { display: flex; flex-direction: column; align-items: center; }
.age-gate::backdrop { background: var(--brown); }
html.has-age-gate { overflow: hidden; }
.age-gate__box { width: 90%; max-width: 850px; margin: 60px 0; padding: 30px 15px; background: rgba(94, 50, 39, .92); border: 4px solid #000; text-align: center; }
.age-gate__logo { width: 100%; max-width: 200px; height: auto; margin: 0 auto 30px; }
.age-gate__q { font-size: 1.133rem; line-height: 1.5; }
.age-gate__answers { display: flex; gap: 20px; max-width: 250px; margin: 40px auto 0; }
.age-gate__btn { flex: 1; min-height: 48px; padding: 10px; border: 1px solid #ccc; color: #fff; }
.age-gate__btn:hover, .age-gate__btn:focus-visible { background: #fff; color: var(--brown); }
.age-gate__alert { margin-top: 30px; color: #ffc2b8; }
.age-gate__terms { max-width: 400px; margin: 40px auto 0; font-size: .867rem; line-height: 1.5; }
@media (min-width: 768px) {
	.age-gate[open] { justify-content: center; }
	.age-gate__box { margin: 0; padding: 40px 30px; }
	.age-gate__q { font-size: 1.533rem; }
}

/* ---------- Landing ---------- */
.landing-hero { position: relative; isolation: isolate; padding: 15vw 0 5vw; text-align: center; color: #fff; }
.landing-hero__content { width: 100%; max-width: 500px; margin: 0 auto; }
.landing-hero__tagline { margin-top: 40px; }
.landing-hero__tagline::before, .landing-hero__tagline::after { content: ""; display: block; width: 100%; height: 2px; background: var(--gold); }
.landing-hero__tagline::before { margin-bottom: 10px; }
.landing-hero__tagline::after { margin-top: 10px; }
.landing-story { padding: 40px 0; }
.landing-story__media { margin-bottom: 40px; }
.landing-story__media img { width: 100%; }
.landing-story .rule-heading { font-size: 1.4rem; text-transform: uppercase; margin-bottom: 8px; }
.landing-story__text p { margin-bottom: 16px; }
.landing-story__divider { margin-top: 16px; }
.landing-story__divider img { width: 64px; }
@media (min-width: 992px) {
	.landing-hero { padding: 150px 0 5vw; }
	.landing-hero__content { width: 50%; margin: 0; }
	.landing-story__inner { display: flex; gap: 24px; }
	.landing-story__media { width: 48%; margin-bottom: 0; }
	.landing-story__content { flex: 1; }
	.landing-story__text { padding: 0 24px; }
}

/* ---------- Recipes ---------- */
.recipes { padding: 24px 0 48px; }
.recipes__list { display: grid; gap: 0; }
.recipe-card__link { display: flex; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--tan); }
.recipe-card__media { flex: 0 0 100px; height: 100px; }
.recipe-card__media img { width: 100%; height: 100%; object-fit: cover; }
.recipe-card__body { flex: 1; }
.recipe-card__title { font-size: 1rem; text-transform: uppercase; }
.recipe-card__excerpt { font-size: .78rem; margin-top: 4px; }
.recipe-card__link:hover { color: var(--ink); }
.recipe-card__link:hover .recipe-card__media { opacity: .8; }
.recipes__empty { padding: 60px 0; text-align: center; }
@media (min-width: 700px) {
	.recipes__list { grid-template-columns: repeat(2, 1fr); gap: 20px; }
	.recipe-card__link { display: block; padding: 0; border: 0; }
	.recipe-card__media { display: block; height: 300px; margin-bottom: 16px; }
}
@media (min-width: 992px) {
	.recipes { padding: 100px 0; }
	.recipes__list { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1200px) { .recipes__list { grid-template-columns: repeat(4, 1fr); } }

.recipe { padding: 76px 0 50px; }
.recipe__media { width: 100%; aspect-ratio: 5 / 4; overflow: hidden; margin-bottom: 32px; }
.recipe__media img { width: 100%; height: 100%; object-fit: cover; }
.recipe__back { margin-bottom: 16px; font-size: .85rem; text-transform: uppercase; }
.recipe__back a { text-decoration: underline; text-underline-offset: 3px; }
.recipe__title { font-size: 2.5rem; line-height: 1.2; margin-bottom: 24px; }
.recipe__intro { margin-bottom: 32px; }
.recipe__heading { font-size: 1.5rem; margin-bottom: 10px; color: var(--ink); }
.recipe__ingredients { margin-bottom: 48px; color: var(--ink); }
.recipe__ingredients li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid #c0bcb5; }
.recipe__ingredients a { text-decoration: underline; }
.recipe__amount { white-space: nowrap; }
.recipe__steps { list-style: none; counter-reset: step; color: var(--ink); }
.recipe__steps li { counter-increment: step; position: relative; padding: 4px 0 0 3em; margin-bottom: 1rem; }
.recipe__steps li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 2em; height: 2em; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--brown); color: #fff; font-family: var(--font-ui); font-weight: 700; font-size: .9rem; }
@media (min-width: 700px) {
	.recipe { display: flex; padding-top: 118px; }
	.recipe__media { width: 35%; margin: 0 8% 0 0; }
	.recipe__body { flex: 1; padding-bottom: 100px; }
}
@media (min-width: 992px) {
	.recipe__title { font-size: 3.5rem; }
	.recipe__heading { font-size: 2rem; }
}

/* ---------- Generic lists, pagination, 404 ---------- */
.post-list { max-width: 820px; margin: 0 auto; padding: 60px 0; }
.post-list__item { padding: 24px 0; border-bottom: 1px solid var(--tan); }
.post-list__title { font-size: 1.5rem; }
.post-list__title a:hover { text-decoration: underline; }
.navigation.pagination { margin: 0 0 60px; text-align: center; }
.nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.page-numbers { display: inline-block; min-width: 44px; padding: 8px 12px; border: 1px solid var(--brown); }
.page-numbers.current { background: var(--brown); color: #fff; }
.not-found { padding: 120px 0; text-align: center; }
.not-found p { margin-top: 16px; }
.not-found__links { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; margin-top: 32px; text-transform: uppercase; }
.not-found__links a { text-decoration: underline; text-underline-offset: 4px; }
.not-found .btn--dark { margin-top: 24px; }

/* ---------- The Events Calendar ---------- */
.events-wrap { padding: 24px 0 60px; }
.tribe-common-c-btn { border-radius: 0 !important; background: #000 !important; }
.tribe-common-c-btn:hover { opacity: .8 !important; }
.tribe-common-c-btn-border { border-color: #000 !important; border-radius: 0 !important; color: #000 !important; }
.tribe-common-c-btn-border:hover { background-color: #000 !important; color: #fff !important; }
.tribe-events-calendar-month__multiday-event-hidden-link.tribe-common a,
.tribe-events .tribe-events-calendar-month__mobile-events-icon--event,
.tribe-events-calendar-month__day-cell--selected { background-color: var(--brown) !important; }
.tribe-events-single .event-image img { margin-bottom: 24px; }

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
	.carousel__track { scroll-behavior: auto; }
}

/* ---------- Phone numbers (footer + contact) ---------- */
.phones { list-style: none; }
.phones li + li { margin-top: 4px; }
.phones__label { display: block; font-size: .72em; letter-spacing: .12em; text-transform: uppercase; opacity: .85; line-height: 1.4; }
.phones a { white-space: nowrap; }
.site-footer__phones { margin-top: 14px; font-size: 1.167rem; line-height: 1.45; }
.site-footer__phones li + li { margin-top: 10px; }
.site-footer__phones .phones__label { color: var(--sand); opacity: 1; }
.site-footer__phones a { text-decoration: underline; text-underline-offset: 4px; }
.site-footer__phones a:hover { color: var(--sand); }
.contact .phones li + li { margin-top: 12px; }
.contact .phones__label { color: #fff; }
