/*
Theme Name:   PISHI Child
Description:  Child theme for PISHI (Mediterranean Breakfast & Café, Watertown MA). Brand styles, Menu Items and Reviews content types, and shortcodes for Elementor. Parent: Hello Elementor.
Author:       Primecut Media
Template:     hello-elementor
Version:      1.0.0
Requires PHP: 7.4
Text Domain:  pishi
*/

/* =========================================================
   1. Brand tokens
   Keep in sync with Elementor > Site Settings > Global Colors / Fonts.
   ========================================================= */
:root {
	--pishi-paper: #FDFBF7;
	--pishi-cream: #F4EFE3;
	--pishi-sage-50: #EEF2E7;
	--pishi-sage-200: #D6E0C9;
	--pishi-sage-400: #A8BB94;
	--pishi-sage-700: #55654A;
	--pishi-olive: #33402B;
	--pishi-espresso: #29251F;
	--pishi-muted: #6D6A5E;
	--pishi-oil: #C9A54C;
	--pishi-oil-ink: #806519;
	--pishi-hair: rgba(51, 64, 43, .10);
	--pishi-hair-strong: rgba(51, 64, 43, .18);
	--pishi-shell: rgba(51, 64, 43, .045);
	--pishi-shadow: 0 30px 60px -30px rgba(41, 37, 31, .22), 0 8px 24px -12px rgba(41, 37, 31, .08);

	--pishi-display: "Fraunces", "Iowan Old Style", Georgia, serif;
	--pishi-body: "Plus Jakarta Sans", "Avenir Next", "Segoe UI", sans-serif;
	--pishi-ease: cubic-bezier(.32, .72, 0, 1);
	--pishi-r-xl: 2rem;
	--pishi-bezel: .4rem;

	/* Height of a sticky site header, used by the menu page's sticky category bar. */
	--pishi-sticky-offset: 0px;
}

body {
	background: var(--pishi-paper);
	color: var(--pishi-espresso);
	font-family: var(--pishi-body);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
	font-family: var(--pishi-display);
	font-weight: 340;
	font-variation-settings: "SOFT" 70, "opsz" 144;
	letter-spacing: -.02em;
	text-wrap: balance;
}

:focus-visible {
	outline: 2px solid var(--pishi-oil);
	outline-offset: 3px;
}

/* =========================================================
   2. Utility classes for Elementor (Advanced > CSS Classes)
   ========================================================= */

/* Eyebrow label */
.pishi-pill,
.pishi-pill .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	border-radius: 999px;
	padding: .4rem .85rem;
	font: 600 .66rem/1 var(--pishi-body) !important;
	letter-spacing: .2em !important;
	text-transform: uppercase;
	background: var(--pishi-sage-50);
	color: var(--pishi-sage-700) !important;
	box-shadow: inset 0 0 0 1px var(--pishi-hair);
}
.pishi-pill .elementor-heading-title { padding: 0; background: none; box-shadow: none; }
.pishi-pill .elementor-heading-title::before,
.pishi-pill:not(.elementor-widget)::before {
	content: "";
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--pishi-oil);
}
.pishi-pill.elementor-widget { display: inline-flex; width: auto; }

/* Display heading with green italic emphasis */
.pishi-display .elementor-heading-title,
.pishi-display {
	font-family: var(--pishi-display);
	font-weight: 340;
	line-height: 1.02;
	letter-spacing: -.02em;
}
.pishi-display em,
.pishi-display .elementor-heading-title em {
	font-style: italic;
	font-weight: 300;
	color: var(--pishi-sage-700);
}

.pishi-lead {
	color: var(--pishi-muted);
	font-size: 1.08rem;
	line-height: 1.7;
}
.pishi-lead p { color: inherit; }

/* Double-bezel card: outer container .pishi-bezel, inner container .pishi-core */
.pishi-bezel,
.e-con.pishi-bezel {
	background: var(--pishi-shell);
	border-radius: var(--pishi-r-xl);
	padding: var(--pishi-bezel);
	--padding-top: var(--pishi-bezel);
	--padding-right: var(--pishi-bezel);
	--padding-bottom: var(--pishi-bezel);
	--padding-left: var(--pishi-bezel);
	box-shadow: inset 0 0 0 1px var(--pishi-hair);
}
.pishi-core,
.e-con.pishi-core {
	display: block;
	background: var(--pishi-paper);
	border-radius: calc(var(--pishi-r-xl) - var(--pishi-bezel));
	box-shadow: inset 0 1px 1px rgba(255, 255, 255, .7), var(--pishi-shadow);
	overflow: hidden;
	height: 100%;
}
.e-con.pishi-core { display: flex; }

/* Buttons: works on shortcode links and on the Elementor Button widget */
.pishi-btn:not(.elementor-widget),
.elementor-widget-button.pishi-btn .elementor-button {
	--b-bg: var(--pishi-olive);
	--b-fg: var(--pishi-paper);
	--b-dot: rgba(253, 251, 247, .14);
	display: inline-flex;
	align-items: center;
	gap: .9rem;
	padding: .42rem .42rem .42rem 1.4rem;
	border-radius: 999px;
	background: var(--b-bg);
	color: var(--b-fg);
	font: 600 .9rem/1 var(--pishi-body);
	text-decoration: none;
	white-space: nowrap;
	border: 0;
	transition: transform .5s var(--pishi-ease), background .5s var(--pishi-ease);
}
.elementor-widget-button.pishi-btn .elementor-button-content-wrapper { gap: .9rem; align-items: center; }
.pishi-btn:not(.elementor-widget):active,
.elementor-widget-button.pishi-btn .elementor-button:active { transform: scale(.98); }
.pishi-btn__ic,
.elementor-widget-button.pishi-btn .elementor-button-icon {
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background: var(--b-dot);
	display: inline-grid;
	place-items: center;
	margin: 0 !important;
	transition: transform .6s var(--pishi-ease);
}
.elementor-widget-button.pishi-btn .elementor-button-icon svg { width: 15px; height: 15px; fill: currentColor; }
.pishi-btn:not(.elementor-widget):hover .pishi-btn__ic,
.elementor-widget-button.pishi-btn .elementor-button:hover .elementor-button-icon { transform: translate(3px, -1px) scale(1.06); }

.pishi-btn--gold:not(.elementor-widget), .elementor-widget-button.pishi-btn--gold .elementor-button { --b-bg: var(--pishi-oil); --b-fg: var(--pishi-espresso); --b-dot: rgba(41, 37, 31, .1); }
.pishi-btn--line:not(.elementor-widget), .elementor-widget-button.pishi-btn--line .elementor-button { --b-bg: transparent; --b-fg: var(--pishi-olive); --b-dot: var(--pishi-sage-50); box-shadow: inset 0 0 0 1px var(--pishi-hair-strong); }
.pishi-btn--glass:not(.elementor-widget), .elementor-widget-button.pishi-btn--glass .elementor-button { --b-bg: rgba(253, 251, 247, .12); --b-fg: var(--pishi-paper); --b-dot: rgba(253, 251, 247, .16); box-shadow: inset 0 0 0 1px rgba(253, 251, 247, .28); }
.pishi-btn--light:not(.elementor-widget), .elementor-widget-button.pishi-btn--light .elementor-button { --b-bg: var(--pishi-paper); --b-fg: var(--pishi-espresso); --b-dot: var(--pishi-sage-50); }

/* Hero: readable text over video or photo */
.pishi-hero-scrim { position: relative; isolation: isolate; }
.pishi-hero-scrim::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgba(22, 26, 17, .55) 0%, rgba(22, 26, 17, .2) 28%, rgba(22, 26, 17, .55) 55%, rgba(22, 26, 17, .9) 100%),
		radial-gradient(90% 70% at 15% 85%, rgba(22, 26, 17, .55), transparent 70%);
}
.pishi-hero-scrim > *:not(.elementor-background-video-container):not(.elementor-background-slideshow) { position: relative; z-index: 1; }
.pishi-hero-scrim h1, .pishi-hero-scrim h2, .pishi-hero-scrim p { text-shadow: 0 2px 28px rgba(15, 18, 12, .45); }
@media (max-width: 640px) {
	.pishi-hero-scrim::after {
		background: linear-gradient(180deg, rgba(22, 26, 17, .6) 0%, rgba(22, 26, 17, .62) 30%, rgba(22, 26, 17, .82) 60%, rgba(22, 26, 17, .95) 100%);
	}
}

/* Google Maps widget */
.pishi-map iframe {
	border-radius: calc(var(--pishi-r-xl) - var(--pishi-bezel));
	filter: saturate(.75) sepia(.12) contrast(.98);
	display: block;
}

/* Image placeholder when a photo is missing */
.pishi-dish__img,
.pishi-tile .pishi-core,
.pishi-menu__cat-img {
	background: radial-gradient(120% 90% at 20% 10%, var(--pishi-sage-200), var(--pishi-sage-400) 60%, #b49a55);
}

.pishi-empty { color: var(--pishi-muted); }

/* =========================================================
   3. [pishi_menu]
   ========================================================= */
.pishi-menu__tools {
	position: sticky;
	top: var(--pishi-sticky-offset);
	z-index: 20;
	display: flex;
	gap: 1rem;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	padding: .8rem 0;
	background: rgba(253, 251, 247, .92);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	box-shadow: inset 0 -1px 0 var(--pishi-hair);
}
body.admin-bar .pishi-menu__tools { top: calc(var(--pishi-sticky-offset) + 32px); }
.pishi-menu__cats { display: flex; gap: .4rem; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.pishi-menu__cats::-webkit-scrollbar { display: none; }
.pishi-menu__cats a,
.pishi-menu__diets button {
	flex: none;
	font: 600 .8rem/1 var(--pishi-body);
	padding: .7rem 1rem;
	border-radius: 999px;
	background: transparent;
	color: var(--pishi-espresso);
	box-shadow: inset 0 0 0 1px var(--pishi-hair-strong);
	border: 0;
	cursor: pointer;
	text-decoration: none;
	transition: background .4s var(--pishi-ease), color .4s var(--pishi-ease);
}
.pishi-menu__cats a.is-on,
.pishi-menu__diets button[aria-pressed="true"] { background: var(--pishi-olive); color: var(--pishi-paper); box-shadow: none; }
.pishi-menu__diets { display: flex; gap: .4rem; flex-wrap: wrap; }

.pishi-menu__cat { padding: clamp(3rem, 6vw, 5rem) 0; scroll-margin-top: calc(var(--pishi-sticky-offset) + 8rem); }
.pishi-menu__cat + .pishi-menu__cat { box-shadow: inset 0 1px 0 var(--pishi-hair); }
.pishi-menu__cat-head { display: grid; grid-template-columns: auto 1fr; gap: 1.6rem; align-items: center; margin-bottom: 2rem; }
.pishi-menu__cat-head h2 { font-size: clamp(2rem, 4vw, 3rem); margin: 0; line-height: 1.05; }
.pishi-menu__cat-head p { color: var(--pishi-muted); margin: .4rem 0 0; }
.pishi-menu__cat-img { width: clamp(84px, 10vw, 120px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; }
.pishi-menu__cat-img img { width: 100%; height: 100%; object-fit: cover; }
.pishi-menu__items { display: grid; grid-template-columns: 1fr 1fr; gap: 0 3.5rem; }
.pishi-item { display: grid; gap: .4rem; padding: 1.3rem 0; box-shadow: inset 0 -1px 0 var(--pishi-hair); }
.pishi-item[hidden] { display: none; }
.pishi-item__top { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.pishi-item h3 { font-size: 1.3rem; margin: 0; line-height: 1.2; font-variation-settings: "SOFT" 70, "opsz" 36; letter-spacing: -.01em; }
.pishi-item__badge { font: 600 .6rem/1 var(--pishi-body); letter-spacing: .12em; text-transform: uppercase; background: var(--pishi-oil); color: var(--pishi-espresso); padding: .35rem .5rem; border-radius: 999px; vertical-align: middle; margin-left: .4rem; }
.pishi-item__diets { display: flex; gap: .3rem; flex: none; }
.pishi-item__diets span { font: 600 .62rem/1 var(--pishi-body); letter-spacing: .06em; padding: .38rem .5rem; border-radius: 999px; background: var(--pishi-sage-50); color: var(--pishi-sage-700); box-shadow: inset 0 0 0 1px var(--pishi-hair); }
.pishi-item p { font-size: .92rem; color: var(--pishi-muted); margin: 0; }
.pishi-item small { font-size: .76rem; color: var(--pishi-oil-ink); }
.pishi-menu__items .pishi-empty { grid-column: 1 / -1; }
.pishi-menu__float { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 30; }
.pishi-menu__float .pishi-btn { box-shadow: var(--pishi-shadow); }
@media (max-width: 760px) {
	.pishi-menu__items { grid-template-columns: 1fr; }
	.pishi-menu__tools { flex-direction: column; align-items: stretch; }
	body.admin-bar .pishi-menu__tools { top: calc(var(--pishi-sticky-offset) + 46px); }
}

/* =========================================================
   4. [pishi_menu_tiles]
   ========================================================= */
.pishi-tiles { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: clamp(210px, 22vw, 290px); gap: 1rem; }
.pishi-tile { display: block; min-width: 0; text-decoration: none; color: var(--pishi-paper); }
.pishi-tile .pishi-core { position: relative; }
.pishi-tile .pishi-core::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(29, 33, 23, 0) 35%, rgba(29, 33, 23, .82)); pointer-events: none; }
.pishi-tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--pishi-ease); }
.pishi-tile:hover .pishi-tile__img { transform: scale(1.06); }
.pishi-tile__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: clamp(1.1rem, 2vw, 1.7rem); display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; }
.pishi-tile__title { display: block; font: 340 1.5rem/1.1 var(--pishi-display); letter-spacing: -.01em; color: var(--pishi-paper); }
.pishi-tile--1 .pishi-tile__title { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.pishi-tile__desc { display: block; font-size: .86rem; color: rgba(253, 251, 247, .82); margin-top: .35rem; }
.pishi-tile__arrow { flex: none; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: rgba(253, 251, 247, .16); box-shadow: inset 0 0 0 1px rgba(253, 251, 247, .3); display: grid; place-items: center; transition: transform .6s var(--pishi-ease), background .6s var(--pishi-ease); }
.pishi-tile:hover .pishi-tile__arrow { transform: translate(3px, -3px); background: var(--pishi-oil); color: var(--pishi-espresso); }
.pishi-tile--1 { grid-column: span 7; grid-row: span 2; }
.pishi-tile--2, .pishi-tile--3 { grid-column: span 5; }
.pishi-tile--4, .pishi-tile--5, .pishi-tile--6 { grid-column: span 4; }
@media (max-width: 900px) {
	.pishi-tiles { grid-template-columns: 1fr 1fr; grid-auto-rows: 240px; }
	.pishi-tile--1 { grid-column: span 2; grid-row: span 1; }
	.pishi-tile--2, .pishi-tile--3, .pishi-tile--4, .pishi-tile--5, .pishi-tile--6 { grid-column: span 1; }
}
@media (max-width: 560px) {
	.pishi-tiles { grid-template-columns: 1fr; }
	.pishi-tile[class*="pishi-tile--"] { grid-column: auto; }
}

/* =========================================================
   5. [pishi_dish_slider]
   ========================================================= */
.pishi-slider__track { display: grid; grid-auto-flow: column; grid-auto-columns: clamp(250px, 24vw, 320px); gap: 1.2rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: .5rem 0 1.5rem; }
.pishi-slider__track::-webkit-scrollbar { display: none; }
.pishi-dish { scroll-snap-align: start; }
.pishi-dish .pishi-core { display: grid; grid-template-rows: auto 1fr; }
.pishi-dish__img { aspect-ratio: 4 / 5; overflow: hidden; }
.pishi-dish__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--pishi-ease); }
.pishi-dish:hover .pishi-dish__img img { transform: scale(1.06); }
.pishi-dish__body { padding: 1.1rem 1.2rem 1.3rem; display: grid; gap: .35rem; }
.pishi-dish__body h3 { font-size: 1.25rem; margin: 0; line-height: 1.2; }
.pishi-dish__body p { font-size: .86rem; color: var(--pishi-muted); margin: 0; }
.pishi-slider__bar { display: flex; align-items: center; gap: 1.4rem; margin-top: 1rem; flex-wrap: wrap; }
.pishi-slider__arrows { display: flex; gap: .5rem; }
.pishi-slider__arrows button { width: 3rem; height: 3rem; border-radius: 50%; border: 0; padding: 0; background: var(--pishi-paper); color: var(--pishi-olive); cursor: pointer; display: grid; place-items: center; box-shadow: inset 0 0 0 1px var(--pishi-hair-strong); transition: background .5s var(--pishi-ease), color .5s var(--pishi-ease); }
.pishi-slider__arrows button:hover { background: var(--pishi-olive); color: var(--pishi-paper); }
.pishi-slider__progress { flex: 1; min-width: 120px; height: 2px; background: var(--pishi-hair-strong); border-radius: 2px; overflow: hidden; }
.pishi-slider__progress i { display: block; height: 100%; width: 100%; background: var(--pishi-olive); transform-origin: left; transform: scaleX(.1); transition: transform .6s var(--pishi-ease); }

/* =========================================================
   6. [pishi_reviews]
   ========================================================= */
.pishi-reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; align-items: start; }
.pishi-reviews > .pishi-review:nth-child(3n + 2) { margin-top: 3rem; }
.pishi-review .pishi-core { padding: 2rem; display: grid; gap: 1.4rem; }
.pishi-review__stars { display: flex; gap: 3px; color: var(--pishi-oil); }
.pishi-review blockquote { margin: 0; padding: 0; border: 0; font: 330 1.3rem/1.45 var(--pishi-display); color: var(--pishi-espresso); font-style: normal; }
.pishi-review__who { display: flex; align-items: center; gap: .85rem; padding-top: 1.2rem; box-shadow: inset 0 1px 0 var(--pishi-hair); }
.pishi-review__photo { width: 48px; height: 48px; border-radius: 50%; flex: none; overflow: hidden; display: grid; place-items: center; background: var(--pishi-sage-200); color: var(--pishi-olive); font: 400 1.2rem/1 var(--pishi-display); }
.pishi-review__photo img { width: 100%; height: 100%; object-fit: cover; }
.pishi-review__who b { display: block; font-weight: 600; font-size: .94rem; }
.pishi-review__who small { display: block; color: var(--pishi-muted); font-size: .8rem; }
@media (max-width: 900px) {
	.pishi-reviews { grid-template-columns: 1fr; }
	.pishi-reviews > .pishi-review:nth-child(3n + 2) { margin-top: 0; }
}

/* =========================================================
   7. [pishi_marquee]
   ========================================================= */
.pishi-marquee { overflow: hidden; padding: 2rem 0; background: var(--pishi-paper); box-shadow: inset 0 1px 0 var(--pishi-hair), inset 0 -1px 0 var(--pishi-hair); }
.pishi-marquee__inner { display: flex; width: max-content; animation: pishi-marquee 46s linear infinite; }
.pishi-marquee span { font: italic 300 clamp(1.8rem, 3.6vw, 3rem)/1 var(--pishi-display); color: var(--pishi-olive); padding-inline: 1.8rem; white-space: nowrap; display: inline-flex; align-items: center; gap: 3.6rem; }
.pishi-marquee span::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--pishi-oil); }
@keyframes pishi-marquee { to { transform: translateX(-50%); } }

@media (prefers-reduced-motion: reduce) {
	.pishi-marquee__inner { animation: none; }
	.pishi-tile__img, .pishi-dish__img img, .pishi-btn__ic { transition: none; }
}

/* =========================================================
   8. Site header (floating pill) — Elementor template "PISHI Header"
   ========================================================= */
.pishi-site-header {
	position: fixed;
	top: calc(env(safe-area-inset-top, 0px) + 1rem);
	left: 0;
	right: 0;
	z-index: 100;
	display: flex;
	justify-content: center;
	padding: 0 16px;
	pointer-events: none;
	transition: transform .7s var(--pishi-ease);
}
body.admin-bar .pishi-site-header { top: calc(32px + 1rem); }
@media (max-width: 782px) { body.admin-bar .pishi-site-header { top: calc(46px + .75rem); } }
.pishi-site-header.is-hidden { transform: translateY(-160%); }
.pishi-site-header > .elementor { pointer-events: auto; max-width: 100%; }

.e-con.pishi-header {
	--display: flex;
	--flex-direction: row;
	--flex-wrap: nowrap;
	--align-items: center;
	--gap: 1.4rem;
	--column-gap: 1.4rem;
	--width: auto;
	--padding-top: .4rem;
	--padding-right: .4rem;
	--padding-bottom: .4rem;
	--padding-left: 1.4rem;
	border-radius: 999px;
	background: rgba(253, 251, 247, .78);
	-webkit-backdrop-filter: blur(18px) saturate(1.3);
	backdrop-filter: blur(18px) saturate(1.3);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .55), 0 20px 40px -20px rgba(41, 37, 31, .28);
	max-width: 100%;
}
.pishi-header .elementor-widget { width: auto; margin: 0 !important; }
.pishi-brand .elementor-heading-title {
	font: 400 1.35rem/1 var(--pishi-display) !important;
	letter-spacing: .34em !important;
	color: var(--pishi-olive) !important;
	white-space: nowrap;
}
.pishi-brand .elementor-heading-title a { color: inherit; }

.pishi-nav ul.menu { display: flex; gap: 1.3rem; list-style: none; margin: 0; padding: 0; }
.pishi-nav ul.menu a {
	font: 500 .84rem/1 var(--pishi-body);
	color: var(--pishi-espresso);
	opacity: .78;
	text-decoration: none;
	white-space: nowrap;
	transition: opacity .4s var(--pishi-ease);
}
.pishi-nav ul.menu a:hover, .pishi-nav ul.menu .current-menu-item > a { opacity: 1; }
.pishi-nav ul.sub-menu { display: none; }

.pishi-burger {
	display: none;
	position: relative;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	border: 0;
	padding: 0;
	background: var(--pishi-olive);
	cursor: pointer;
}
.pishi-burger span {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 15px;
	height: 1.5px;
	background: var(--pishi-paper);
	border-radius: 2px;
	transition: transform .6s var(--pishi-ease);
}
.pishi-burger span:nth-child(1) { transform: translate(-50%, -4px); }
.pishi-burger span:nth-child(2) { transform: translate(-50%, 4px); }
.pishi-burger[aria-expanded="true"] span:nth-child(1) { transform: translate(-50%, 0) rotate(45deg); }
.pishi-burger[aria-expanded="true"] span:nth-child(2) { transform: translate(-50%, 0) rotate(-45deg); }

.pishi-overlay {
	position: fixed;
	inset: 0;
	z-index: 90;
	background: rgba(244, 239, 227, .9);
	-webkit-backdrop-filter: blur(30px);
	backdrop-filter: blur(30px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: .3rem;
	padding: 6rem clamp(16px, 6vw, 48px) 3rem;
	opacity: 0;
	visibility: hidden;
	transition: opacity .6s var(--pishi-ease), visibility .6s;
}
.pishi-overlay.is-open { opacity: 1; visibility: visible; }
.pishi-overlay a {
	font: 300 clamp(2.2rem, 9vw, 3.4rem)/1.15 var(--pishi-display);
	color: var(--pishi-olive);
	text-decoration: none;
	transform: translateY(2rem);
	opacity: 0;
	transition: transform .8s var(--pishi-ease), opacity .8s var(--pishi-ease);
}
.pishi-overlay.is-open a { transform: none; opacity: 1; }
.pishi-overlay p { margin-top: 2rem; font-size: .9rem; color: var(--pishi-muted); }

@media (max-width: 1120px) {
	.pishi-nav { display: none !important; }
	.pishi-burger { display: block; }
}
@media (max-width: 560px) {
	.pishi-header .pishi-hide-sm { display: none !important; }
	.e-con.pishi-header { --gap: .8rem; --column-gap: .8rem; --padding-left: 1.1rem; }
}

/* =========================================================
   9. Footer — Elementor template "PISHI Footer"
   ========================================================= */
.pishi-site-footer { display: block; }
.pishi-footer a { color: #E6E2D6; text-decoration: none; transition: color .4s var(--pishi-ease); }
.pishi-footer a:hover { color: var(--pishi-oil); }
.pishi-footer .elementor-icon-list-text { color: #DDD9CD; }
.pishi-wordmark .elementor-heading-title {
	font: 300 clamp(5rem, 23vw, 20rem)/.8 var(--pishi-display) !important;
	letter-spacing: .06em !important;
	color: rgba(253, 251, 247, .07) !important;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
}

/* =========================================================
   10. Page helpers
   ========================================================= */
.pishi-page-hero { padding-top: clamp(9rem, 16vw, 12rem); }
.pishi-hero-today .elementor-icon-list-item { padding: .6rem 0 !important; border-top: 1px solid var(--pishi-hair); }
.pishi-round img { border-radius: 1.6rem; }
.pishi-round-sm img { border-radius: 1.2rem; }
.pishi-tilt-l { transform: rotate(-2deg); }
.pishi-tilt-r { transform: rotate(3deg); }
@media (max-width: 767px) { .pishi-tilt-l, .pishi-tilt-r { transform: none; } }
.pishi-insta img { aspect-ratio: 1; object-fit: cover; width: 100%; border-radius: 1.2rem; transition: transform 1.2s var(--pishi-ease), opacity .6s var(--pishi-ease); }
.pishi-insta a:hover img { opacity: .85; }
.pishi-cover img { width: 100%; height: 100%; object-fit: cover; }
.pishi-hours .elementor-icon-list-item { display: flex; justify-content: space-between; border-bottom: 1px solid var(--pishi-hair); padding: .45rem 0 !important; }
.pishi-legal h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin: 2.4rem 0 .8rem; }
.pishi-legal p, .pishi-legal li { color: #4a473f; }
.pishi-role { padding: 1.4rem 1.6rem; background: var(--pishi-paper); border-radius: 1.4rem; box-shadow: inset 0 0 0 1px var(--pishi-hair); }

/* Fluent Forms in brand style */
.pishi-form .ff-el-input--label label { font: 600 .78rem/1.3 var(--pishi-body); color: var(--pishi-sage-700); }
.pishi-form .ff-el-form-control {
	border: 0 !important;
	border-radius: 1rem !important;
	background: var(--pishi-paper) !important;
	box-shadow: inset 0 0 0 1px var(--pishi-hair) !important;
	padding: .9rem 1.1rem !important;
	font: 400 .95rem/1.5 var(--pishi-body) !important;
	color: var(--pishi-espresso) !important;
}
.pishi-form .ff-el-form-control:focus { box-shadow: inset 0 0 0 1.5px var(--pishi-sage-700), 0 0 0 5px rgba(85, 101, 74, .1) !important; }
.pishi-form .ff-btn-submit {
	background: var(--pishi-olive) !important;
	color: var(--pishi-paper) !important;
	border-radius: 999px !important;
	padding: .95rem 1.6rem !important;
	font: 600 .9rem/1 var(--pishi-body) !important;
	border: 0 !important;
}
.pishi-form .ff-btn-submit:hover { background: var(--pishi-espresso) !important; }

/* Keep small UI buttons out of Elementor's global button style */
.pishi-menu .pishi-menu__diets button,
.pishi-slider .pishi-slider__arrows button {
	border: 0 !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--pishi-espresso) !important;
	box-shadow: inset 0 0 0 1px var(--pishi-hair-strong) !important;
	font: 600 .8rem/1 var(--pishi-body) !important;
	padding: .7rem 1rem !important;
}
.pishi-menu .pishi-menu__diets button[aria-pressed="true"] { background: var(--pishi-olive) !important; color: var(--pishi-paper) !important; box-shadow: none !important; }
.pishi-slider .pishi-slider__arrows button { width: 3rem; height: 3rem; padding: 0 !important; background: var(--pishi-paper) !important; color: var(--pishi-olive) !important; }
.pishi-slider .pishi-slider__arrows button:hover { background: var(--pishi-olive) !important; color: var(--pishi-paper) !important; }
.pishi-site-header .pishi-burger { padding: 0 !important; border: 0 !important; border-radius: 50% !important; background: var(--pishi-olive) !important; }

/* Layout fixes */
.e-con.pishi-bezel > .e-con.pishi-core-fill { flex-grow: 1; }
.pishi-dish__img img { height: 100% !important; }
.pishi-site-footer .pishi-footer a { color: #E6E2D6; }
.pishi-site-footer .pishi-footer a:hover { color: var(--pishi-oil); }

/* =========================================================
   11. Revision 1 — prototype fidelity
   ========================================================= */

/* Dark pill (on photos / olive bands) */
.pishi-pill.pishi-pill--dark .elementor-heading-title {
	background: rgba(253, 251, 247, .12) !important;
	color: var(--pishi-paper) !important;
	box-shadow: inset 0 0 0 1px rgba(253, 251, 247, .22) !important;
	padding: .4rem .85rem !important;
	border-radius: 999px;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.pishi-pill.pishi-pill--dark .elementor-heading-title { display: inline-flex; align-items: center; gap: .5rem; }
.pishi-pill .elementor-heading-title { padding: .4rem .85rem; background: var(--pishi-sage-50); border-radius: 999px; box-shadow: inset 0 0 0 1px var(--pishi-hair); line-height: 1 !important; }

/* Button-in-button: thin arrow drawn in the round icon slot */
.elementor-widget-button.pishi-btn .elementor-button-icon i,
.elementor-widget-button.pishi-btn .elementor-button-icon svg { display: none !important; }
.elementor-widget-button.pishi-btn .elementor-button-icon::before {
	content: "";
	width: 15px;
	height: 15px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E") center / contain no-repeat;
}
.elementor-widget-button.pishi-btn--down .elementor-button-icon::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M6 13l6 6 6-6'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M6 13l6 6 6-6'/%3E%3C/svg%3E");
}
.elementor-widget-button.pishi-btn .elementor-button { white-space: nowrap; line-height: 1; }
.elementor-widget-button.pishi-btn .elementor-button-content-wrapper { display: inline-flex; align-items: center; }
.elementor-widget-button.pishi-btn .elementor-button-text { flex: none; }

/* Text link with gold rule */
.elementor-widget-button.pishi-textlink .elementor-button {
	background: transparent !important;
	padding: 0 !important;
	border-radius: 0 !important;
	color: var(--pishi-olive) !important;
	font: 600 .95rem/1 var(--pishi-body) !important;
	display: inline-flex;
	align-items: center;
	gap: .7rem;
}
.elementor-widget-button.pishi-textlink .elementor-button::before {
	content: "";
	width: 2rem;
	height: 1px;
	background: var(--pishi-oil);
	transition: width .6s var(--pishi-ease);
}
.elementor-widget-button.pishi-textlink .elementor-button:hover::before { width: 3rem; }

/* Hero "Today" card */
.e-con.pishi-today {
	background: rgba(253, 251, 247, .1) !important;
	box-shadow: inset 0 0 0 1px rgba(253, 251, 247, .2) !important;
}
.e-con.pishi-today > .e-con { box-shadow: none !important; }
.pishi-status { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-bottom: 2px; }
.pishi-status__label { display: inline-flex; align-items: center; gap: .55rem; font: 600 .82rem/1 var(--pishi-body); color: var(--pishi-sage-700); }
.pishi-status__label i { width: 8px; height: 8px; border-radius: 50%; background: #6E9A57; box-shadow: 0 0 0 4px rgba(110, 154, 87, .18); }
.pishi-status.is-closed .pishi-status__label { color: var(--pishi-oil-ink); }
.pishi-status.is-closed .pishi-status__label i { background: var(--pishi-oil); box-shadow: 0 0 0 4px rgba(201, 165, 76, .22); }
.pishi-status__day { font-size: .78rem; color: var(--pishi-muted); }

/* Framed photos (double bezel on an Image widget) */
.pishi-frame .elementor-widget-container {
	background: var(--pishi-shell);
	padding: var(--pishi-bezel);
	border-radius: var(--pishi-r-xl);
	box-shadow: inset 0 0 0 1px var(--pishi-hair);
	height: 100%;
}
.pishi-frame img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	border-radius: calc(var(--pishi-r-xl) - var(--pishi-bezel)) !important;
	box-shadow: var(--pishi-shadow);
}
.pishi-frame a { display: block; height: 100%; }

/* Story: overlapping, tilted photos */
.e-con.pishi-story-stack { position: relative; }
@media (min-width: 1025px) {
	.e-con.pishi-story-stack { height: clamp(460px, 46vw, 620px); }
	.pishi-story-stack .pishi-story-a { position: absolute !important; top: 0; left: 0; right: 18%; bottom: 12%; width: auto !important; transform: rotate(-2deg); margin: 0 !important; }
	.pishi-story-stack .pishi-story-b { position: absolute !important; right: 0; bottom: 0; width: 52% !important; height: 52%; transform: rotate(3deg); margin: 0 !important; }
}
@media (max-width: 1024px) {
	.pishi-story-stack .pishi-story-a { width: 100% !important; aspect-ratio: 4 / 5; max-height: 560px; }
	.pishi-story-stack .pishi-story-b { width: 100% !important; aspect-ratio: 16 / 10; }
}

/* Catering bento */
.e-con.pishi-cater-big { display: flex; }
.pishi-cater-big .pishi-fill { flex: 1 1 auto; width: 100%; min-height: 360px; }
.pishi-cater-small { height: 300px; }
.pishi-cater-list > .e-con + .e-con { box-shadow: inset 1px 0 0 var(--pishi-hair); }
@media (max-width: 767px) {
	.pishi-cater-big .pishi-fill { min-height: 300px; height: 300px; }
	.pishi-cater-small { height: 220px; }
	.pishi-cater-list > .e-con + .e-con { box-shadow: inset 0 1px 0 var(--pishi-hair); }
}

/* Instagram: square, rounded, staggered */
.pishi-insta-row { padding-bottom: 1.6rem; }
.pishi-insta-row .pishi-insta img { aspect-ratio: 1; height: auto !important; width: 100% !important; object-fit: cover; border-radius: 1.2rem; }
@media (min-width: 768px) {
	.pishi-insta-row > .elementor-widget:nth-child(even) { transform: translateY(1.6rem); }
}
@media (max-width: 767px) { .pishi-insta-row { padding-bottom: 0; } }

/* Small tag */
.pishi-tag { display: inline-block; font: 600 .62rem/1 var(--pishi-body); letter-spacing: .14em; text-transform: uppercase; padding: .45rem .65rem; border-radius: 999px; background: var(--pishi-oil); color: var(--pishi-espresso); vertical-align: middle; }

/* Mobile: hero buttons stack full width; other button rows keep their shape */
@media (max-width: 767px) {
	.pishi-btn-row--stack { --flex-direction: column !important; flex-direction: column !important; align-items: stretch !important; }
	.pishi-btn-row--stack > .elementor-widget-button { width: 100% !important; }
	.pishi-btn-row--stack .elementor-button { width: 100%; justify-content: space-between; }
	.pishi-btn-row--stack .elementor-button-content-wrapper { width: 100%; justify-content: space-between; }
	.pishi-btn-row > .elementor-widget-button { width: auto; }
}

/* Revision 1b: pill wrapper never paints; only the label does */
.elementor-widget.pishi-pill { background: none !important; box-shadow: none !important; padding: 0 !important; width: auto !important; max-width: 100%; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.pishi-today p { margin: 0; }

/* Revision 1c: tablet */
@media (min-width: 768px) and (max-width: 1024px) {
	.e-con.pishi-story-stack { height: clamp(420px, 62vw, 600px); }
	.pishi-story-stack .pishi-story-a { position: absolute !important; top: 0; left: 0; right: 18%; bottom: 12%; width: auto !important; aspect-ratio: auto; max-height: none; transform: rotate(-2deg); margin: 0 !important; }
	.pishi-story-stack .pishi-story-b { position: absolute !important; right: 0; bottom: 0; width: 52% !important; height: 52%; aspect-ratio: auto; transform: rotate(3deg); margin: 0 !important; }
	.pishi-cater-big .pishi-fill { min-height: 380px; height: 380px; }
	.pishi-cater-small { height: auto; }
}
@media (min-width: 768px) {
	.e-con.pishi-insta-row { --flex-wrap: nowrap; flex-wrap: nowrap !important; }
	.pishi-insta-row > .elementor-widget { flex: 1 1 0 !important; width: auto !important; min-width: 0; }
}
@media (max-width: 767px) {
	.e-con.pishi-insta-row { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px !important; }
	.pishi-insta-row > .elementor-widget { width: auto !important; max-width: none !important; }
}

/* ---------- Revision 2: hours rows, footer balance, smaller wordmark ---------- */
.pishi-hours-list { list-style: none; margin: 0; padding: 0; font: 400 15px/1.5 var(--pishi-body); color: var(--pishi-espresso); }
.pishi-hours-list li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--pishi-hair); }
.pishi-hours-list li:last-child { border-bottom: 0; }
.pishi-hours-list li span:last-child { color: var(--pishi-muted); font-variant-numeric: tabular-nums; }
.pishi-hours-list li.is-today, .pishi-hours-list li.is-today span:last-child { font-weight: 600; color: var(--pishi-espresso); }
.pishi-hours-wrap .elementor-widget-container > *:last-child { margin-bottom: 0; }
.pishi-directions { margin-top: auto; }
.pishi-directions .elementor-button { width: 100%; justify-content: center; }
.pishi-wordmark .elementor-heading-title { font-size: clamp(4rem, 14vw, 12rem) !important; }

/* ---------- Gift Cards band ---------- */
.pishi-gift { position: relative; overflow: hidden; }
.pishi-gift::before { content: ""; position: absolute; inset: auto -10% -45% auto; width: 60vw; max-width: 760px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(closest-side, rgba(201,165,76,.16), rgba(201,165,76,0)); pointer-events: none; }
.pishi-gift-perks { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; min-width: min(100%, 420px); }
.pishi-gift-perks li { display: flex; align-items: baseline; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid rgba(253,251,247,.12); color: var(--pishi-paper); font: 400 15px/1.5 var(--pishi-body); }
.pishi-gift-perks li:last-child { border-bottom: 0; }
.pishi-gift-perks li span { font: 600 11px/1 var(--pishi-body); letter-spacing: 2px; color: var(--pishi-oil); }
.pishi-gift-perks-wrap .elementor-widget-container > *:last-child { margin-bottom: 0; }
.pishi-giftcard-wrap { width: 100%; }
.pishi-giftcard { position: relative; width: min(100%, 440px); margin-inline: auto; aspect-ratio: 1.586; transform: translateY(-2%); }
.pishi-giftcard__card { position: absolute; inset: 0; border-radius: 22px; transition: transform .9s var(--pishi-ease); }
.pishi-giftcard__card--back { background: linear-gradient(135deg, #D8B75E, var(--pishi-oil) 55%, #B08E3A); transform: rotate(7deg) translate(5%, 4%); box-shadow: 0 30px 60px -30px rgba(0,0,0,.45); }
.pishi-giftcard__card--front { background: var(--pishi-cream); color: var(--pishi-sage-700); transform: rotate(-5deg); display: flex; flex-direction: column; justify-content: space-between; padding: 8% 8.5%; box-shadow: 0 40px 80px -30px rgba(0,0,0,.5), 0 12px 30px -12px rgba(0,0,0,.25), inset 0 0 0 1px rgba(51,64,43,.06); }
.pishi-giftcard__card--front::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(201,165,76,.45); border-radius: 15px; pointer-events: none; }
.pishi-giftcard:hover .pishi-giftcard__card--front { transform: rotate(-3deg) translateY(-3%); }
.pishi-giftcard:hover .pishi-giftcard__card--back { transform: rotate(9deg) translate(7%, 5%); }
.pishi-giftcard__top, .pishi-giftcard__bottom { display: flex; justify-content: space-between; align-items: baseline; position: relative; z-index: 1; }
.pishi-giftcard__brand { font: 400 clamp(1.4rem, 3vw, 1.9rem)/1 var(--pishi-display); letter-spacing: .32em; color: var(--pishi-olive); }
.pishi-giftcard__label, .pishi-giftcard__place { font: 600 10px/1 var(--pishi-body); letter-spacing: 2px; text-transform: uppercase; color: var(--pishi-oil-ink); }
.pishi-giftcard__sprig { width: 42%; align-self: flex-end; margin-right: -2%; color: var(--pishi-sage-700); }
.pishi-giftcard__amount { font: 300 italic clamp(2rem, 4.4vw, 2.9rem)/1 var(--pishi-display); color: var(--pishi-olive); }
@media (prefers-reduced-motion: reduce) { .pishi-giftcard__card { transition: none; } }
@media (max-width: 1024px) { .pishi-giftcard { width: min(82%, 420px); margin-top: 1.5rem; } }
@media (max-width: 767px) { .pishi-giftcard { width: 86%; margin-top: 1rem; } .pishi-gift::before { width: 120vw; } }
.pishi-gift > .e-con-inner { position: relative; z-index: 1; }
.elementor-widget.pishi-gift-perks-wrap { align-self: stretch; width: 100%; max-width: 440px; }

/* ---------- Menu page v2 (printed-menu structure) ---------- */
.pishi-menu__diets button { display: inline-flex !important; align-items: center; gap: .4rem; }
.pishi-menu__diets button svg { width: 15px; height: 15px; flex: none; }
.pishi-menu__legend { list-style: none; margin: 1.4rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; color: var(--pishi-muted); font: 500 .78rem/1.2 var(--pishi-body); }
.pishi-menu__legend .pishi-label { background: none; box-shadow: none; padding: 0; color: var(--pishi-muted); }
.pishi-menu__cat-head--noimg { grid-template-columns: 1fr; }
.pishi-menu__groups { display: grid; gap: clamp(2.2rem, 4vw, 3.2rem); }
.pishi-menu__items + .pishi-menu__groups { margin-top: 2.4rem; }
.pishi-menu__group[hidden] { display: none; }
.pishi-menu__group-head { display: flex; align-items: center; gap: 1rem; margin-bottom: .4rem; }
.pishi-menu__group-head h3 { margin: 0; font: 600 .78rem/1.2 var(--pishi-body) !important; letter-spacing: .2em; text-transform: uppercase; color: var(--pishi-oil-ink) !important; white-space: nowrap; }
.pishi-menu__group-head::after { content: ""; flex: 1; height: 1px; background: var(--pishi-hair-strong); }
.pishi-menu__group-head p { margin: 0; color: var(--pishi-muted); font-size: .85rem; white-space: nowrap; }
.pishi-item { gap: .3rem; align-content: start; }
.pishi-item__name { font: 400 1.3rem/1.2 var(--pishi-display) !important; margin: 0; color: var(--pishi-espresso); letter-spacing: -.01em; font-variation-settings: "SOFT" 70, "opsz" 36; }
.pishi-item__badge { position: relative; top: -.15em; }
.pishi-item p.pishi-item__sub { font: italic 400 .95rem/1.3 var(--pishi-display); color: var(--pishi-oil-ink); margin: -.1rem 0 0; }
.pishi-item p.pishi-item__desc { font-size: .92rem; line-height: 1.6; color: var(--pishi-muted); }
.pishi-item p.pishi-item__note { font: italic 400 .86rem/1.4 var(--pishi-body); color: var(--pishi-sage-700); }
.pishi-item__labels { list-style: none; margin: .45rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.pishi-label { display: inline-flex; align-items: center; gap: .35rem; font: 600 .66rem/1 var(--pishi-body); letter-spacing: .04em; padding: .32rem .55rem .32rem .42rem; border-radius: 999px; background: var(--pishi-sage-50); color: var(--pishi-sage-700); box-shadow: inset 0 0 0 1px var(--pishi-hair); }
.pishi-label svg { width: 14px; height: 14px; flex: none; }
.pishi-label--n { background: #F6EEDB; color: var(--pishi-oil-ink); box-shadow: inset 0 0 0 1px rgba(201,165,76,.35); }
.pishi-menu__legend .pishi-label--n { background: none; box-shadow: none; }
/* Compact (drinks) */
.pishi-menu__cat--compact .pishi-menu__groups { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.4rem 3rem; }
.pishi-menu__cat--compact .pishi-menu__items { grid-template-columns: 1fr; }
.pishi-menu__cat--compact .pishi-item { padding: .9rem 0; }
.pishi-menu__cat--compact .pishi-item__name { font-size: 1.1rem !important; }
.pishi-menu__cat--compact .pishi-menu__group-head h3 { white-space: normal; }
.pishi-menu__disclaimer { margin: 1rem 0 0; padding-top: 2rem; box-shadow: inset 0 1px 0 var(--pishi-hair); text-align: center; font-size: .82rem; color: var(--pishi-muted); }
@media (max-width: 1024px) { .pishi-menu__cat--compact .pishi-menu__groups { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.pishi-menu__cat--compact .pishi-menu__groups { grid-template-columns: 1fr; }
	.pishi-menu__diets { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; min-width: 0; max-width: 100%; }
	.pishi-menu__tools > * { min-width: 0; max-width: 100%; }
	.pishi-menu__diets::-webkit-scrollbar { display: none; }
	.pishi-menu__diets button { flex: none; }
	.pishi-menu__group-head p { display: none; }
}
/* Sticky menu bar sits under the floating header, and moves up when the header hides */
body { --pishi-sticky-offset: 92px; }
body.pishi-header-hidden { --pishi-sticky-offset: 0px; }
.pishi-menu__tools { transition: top .6s var(--pishi-ease); }
@media (max-width: 767px) { body { --pishi-sticky-offset: 84px; } body.pishi-header-hidden { --pishi-sticky-offset: 0px; } }

/* ---------- Homepage menu tiles: 7-tile bento ---------- */
.pishi-tiles.pishi-tiles--7 { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: none; grid-auto-rows: clamp(190px, 18vw, 250px); }
.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--1 { grid-column: 1 / 7; grid-row: 1 / 3; }
.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--2 { grid-column: 7 / 10; grid-row: 1; }
.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--3 { grid-column: 10 / 13; grid-row: 1; }
.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--4 { grid-column: 7 / 13; grid-row: 2; }
.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--5 { grid-column: 1 / 5; grid-row: 3; }
.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--6 { grid-column: 5 / 9; grid-row: 3; }
.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--7 { grid-column: 9 / 13; grid-row: 3; }
.pishi-tiles--7 .pishi-tile--4 .pishi-tile__title { font-size: clamp(1.5rem, 2.2vw, 2rem); }
@media (max-width: 1024px) {
	.pishi-tiles.pishi-tiles--7 { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 300px; grid-auto-rows: 220px; }
	.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--2,
	.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--3,
	.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--4,
	.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--5,
	.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--6,
	.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--7 { grid-column: auto; grid-row: auto; }
	.pishi-tiles.pishi-tiles--7 .pishi-tile.pishi-tile--1 { grid-column: 1 / -1; grid-row: 1; }
}
@media (max-width: 767px) {
	.pishi-tiles.pishi-tiles--7 { gap: .6rem; grid-template-rows: 240px; grid-auto-rows: 172px; }
	.pishi-tiles--7 .pishi-tile:not(.pishi-tile--1) .pishi-tile__body { padding: .85rem; gap: .4rem; }
	.pishi-tiles--7 .pishi-tile:not(.pishi-tile--1) .pishi-tile__title { font-size: 1.12rem; }
	.pishi-tiles--7 .pishi-tile:not(.pishi-tile--1) .pishi-tile__desc { display: none; }
	.pishi-tiles--7 .pishi-tile:not(.pishi-tile--1) .pishi-tile__arrow { width: 2rem; height: 2rem; }
	.pishi-tiles--7 .pishi-tile:not(.pishi-tile--1) .pishi-tile__arrow svg { width: 13px; height: 13px; }
}

/* Mobile overlay menu: centered */
.pishi-overlay { align-items: center; text-align: center; }
.pishi-overlay a { display: block; }
.pishi-overlay a.elementor-button { margin-top: 1.4rem; display: inline-flex; justify-content: center; min-width: min(260px, 80vw); padding: 1rem 2rem; border-radius: 999px; background: var(--pishi-olive); color: var(--pishi-paper); font: 600 1rem/1 var(--pishi-body); }
/* Tile photos always fill the card (beats Elementor's global img { height:auto }) */
.pishi-tile .pishi-core img.pishi-tile__img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
