/**
 * eLier Minimal — hub "link in bio" e pagine dedicate.
 *
 * Priorità: leggibilità da telefono e bersagli grandi. Chi apre da QR code
 * al tavolo deve capire dove toccare in meno di un secondo.
 */

.psh-emin {
	--emin-bg: #fbf9f7;
	--emin-surface: #ffffff;
	--emin-ink: #1d1620;
	--emin-soft: #6b6472;
	--emin-muted: #a89fa9;
	--emin-line: #ece4ea;
	--emin-accent: #7b002c;
	--emin-accent-2: #a80138;
	/* Pilotata da Aspetto → Bordi (var --el-radius). 16px resta il default. */
	--emin-radius: var(--el-radius, 16px);

	margin: 0;
	background: var(--emin-bg);
	color: var(--emin-ink);
	-webkit-font-smoothing: antialiased;
}

.psh-emin a { color: inherit; }

/* ── Hub ─────────────────────────────────────────────────────────────── */

.emin { max-width: 540px; margin: 0 auto; min-height: 100vh; display: flex; flex-direction: column; }

/* Copertina: dà identità al locale prima ancora del nome. */
.emin__cover { position: relative; height: 190px; overflow: hidden; background: #efe8ec; }
.emin__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.emin__cover-fade {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.02) 45%, var(--emin-bg) 100%);
}

/* Solo menu: la copertina è quasi tutta la pagina, quindi si mostra intera.
   Il velo che la sfumava nel fondo serviva a far respirare le call to action
   sottostanti, che qui non ci sono. */
body.psh-emin--solomenu .emin__cover-fade { display: none; }

.emin__body { flex: 1; display: flex; flex-direction: column; padding: 0 20px 32px; }

.emin__head { text-align: center; margin-bottom: 26px; }

/* Con la copertina il logo la scavalca, stile profilo social. */
.emin--cover .emin__head { margin-top: -58px; position: relative; z-index: 1; }
.emin:not(.emin--cover) .emin__head { padding-top: 44px; }

.emin__logo {
	width: 104px; height: 104px; border-radius: 50%; object-fit: cover;
	margin: 0 auto 14px; display: block;
	background: var(--emin-surface);
	border: 4px solid var(--emin-bg);
	box-shadow: 0 8px 25px rgba(15, 23, 42, 0.10);
}
.emin__logo--ph {
	display: grid; place-items: center;
	font-size: 40px; font-weight: 700; color: #fff;
	background: linear-gradient(135deg, var(--emin-accent), var(--emin-accent-2));
}

.emin__name {
	margin: 0 0 8px;
	font-size: clamp(23px, 5.6vw, 29px);
	line-height: 1.2; font-weight: 700; letter-spacing: -.015em;
}

/* Città e valutazione sulla stessa riga: contesto in un colpo d'occhio. */
.emin__meta {
	display: flex; align-items: center; justify-content: center;
	gap: 10px; flex-wrap: wrap; margin-bottom: 4px;
}
.emin__city {
	font-size: 12.5px; color: var(--emin-muted);
	letter-spacing: .09em; text-transform: uppercase; font-weight: 600;
}
.emin__rating {
	display: inline-flex; align-items: center; gap: 4px;
	font-size: 13px; color: var(--emin-ink);
	background: var(--emin-surface); border: 1px solid var(--emin-line);
	padding: 4px 10px; border-radius: 999px;
}
.emin__star { color: #e8a300; font-size: 13px; }
.emin__rating-n { color: var(--emin-muted); font-size: 12px; }

.emin__claim {
	margin: 12px auto 0; max-width: 38ch;
	font-size: 14.5px; line-height: 1.6; color: var(--emin-soft);
}

/* ── Call to action ── */

.emin__actions { display: flex; flex-direction: column; gap: 10px; }
.emin__group { display: flex; flex-direction: column; gap: 10px; }

.emin-btn {
	display: flex; align-items: center; gap: 14px;
	padding: 15px 16px;
	background: var(--emin-surface);
	border: 1px solid var(--emin-line);
	border-radius: var(--emin-radius);
	text-decoration: none;
	box-shadow: 0 6px 20px rgba(15, 23, 42, 0.06);
	transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.emin-btn:hover, .emin-btn:focus-visible {
	transform: translateY(-2px);
	border-color: #e3d5dc;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.10);
	outline: none;
}
.emin-btn:active { transform: translateY(0); }

.emin-btn__icon {
	flex: 0 0 auto; width: 44px; height: 44px; border-radius: var(--emin-radius);
	display: grid; place-items: center;
	background: #f7edf1; color: var(--emin-accent);
}
.emin-btn__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.emin-btn__label { font-size: 16px; font-weight: 650; line-height: 1.25; }
.emin-btn__sub {
	font-size: 12.5px; color: var(--emin-muted); line-height: 1.35;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.emin-btn__arrow { flex: 0 0 auto; font-size: 22px; color: #cfc5cf; line-height: 1; }

/* Azione principale: più grande e in accento pieno, si legge per prima. */
.emin-btn--hero {
	padding: 19px 18px;
	background: linear-gradient(135deg, var(--emin-accent), var(--emin-accent-2));
	border-color: transparent;
	box-shadow: 0 6px 16px rgba(123, 0, 44, 0.28);
	margin-bottom: 4px;
}
.emin-btn--hero .emin-btn__icon { background: rgba(255,255,255,.18); color: #fff; width: 48px; height: 48px; }
.emin-btn--hero .emin-btn__label { color: #fff; font-size: 17.5px; font-weight: 700; }
.emin-btn--hero .emin-btn__sub { color: rgba(255,255,255,.82); }
.emin-btn--hero .emin-btn__arrow { color: rgba(255,255,255,.7); }
.emin-btn--hero:hover { box-shadow: 0 10px 24px rgba(123, 0, 44, 0.34); border-color: transparent; }

/* Telefono: come le altre azioni, nel colore del locale. */
.emin-btn--chiama .emin-btn__icon {
	background: color-mix(in oklab, var(--emin-accent) 12%, #fff);
	color: var(--emin-accent);
}

/* ── Delivery: chip secondari, non competono con le azioni principali ── */

.emin__delivery { margin-top: 8px; }
.emin__grouplabel {
	display: block; text-align: center;
	font-size: 11.5px; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; color: var(--emin-muted);
	margin-bottom: 10px;
}
.emin__chips { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.emin-chip {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 10px 16px;
	font-size: 14px; font-weight: 600;
	background: var(--emin-surface); color: var(--emin-ink);
	border: 1px solid var(--emin-line); border-radius: 999px;
	text-decoration: none;
	transition: border-color .15s ease, transform .15s ease;
}
.emin-chip:hover { border-color: var(--emin-accent); color: var(--emin-accent); transform: translateY(-1px); }
.emin-chip svg { width: 18px; height: 18px; }

.emin__empty { text-align: center; color: var(--emin-muted); font-size: 15px; padding: 30px 0; }

/* ── Footer ── */

.emin__foot { margin-top: auto; padding-top: 34px; }
.emin__reviews { margin-bottom: 20px; }
.emin__social { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }
.emin__social a {
	color: var(--emin-muted);
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%;
	background: var(--emin-surface); border: 1px solid var(--emin-line);
	transition: color .15s ease, border-color .15s ease, transform .15s ease;
}
.emin__social a:hover { color: var(--emin-accent); border-color: var(--emin-accent); transform: translateY(-2px); }
.emin__social img, .emin__social svg { width: 20px; height: 20px; }

/* ── Pagine dedicate ─────────────────────────────────────────────────── */

.emin-sec {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 20px 40px;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.emin-sec__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 16px 0;
	position: sticky;
	top: 0;
	background: color-mix(in srgb, var(--emin-bg) 92%, transparent);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	z-index: 10;
}
.emin-sec__back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 15px;
	font-weight: 600;
	color: var(--emin-soft);
	text-decoration: none;
	padding: 8px 12px 8px 8px;
	border-radius: 999px;
	transition: background .15s ease;
}
.emin-sec__back:hover { background: #f2e9ee; color: var(--emin-accent); }
.emin-sec__back span[aria-hidden] { font-size: 20px; line-height: 1; }

.emin-sec__brand { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.emin-sec__brand img { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; }
.emin-sec__brandname {
	font-size: 14px;
	font-weight: 600;
	color: var(--emin-soft);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 180px;
}

.emin-sec__main { flex: 1; }
.emin-sec__title {
	margin: 10px 0 22px;
	font-size: clamp(24px, 5.5vw, 32px);
	line-height: 1.2;
	font-weight: 700;
}

.emin-sec__block { margin-bottom: 22px; }
.emin-sec__prose { font-size: 16px; line-height: 1.7; color: var(--emin-soft); }
.emin-sec__prose p { margin: 0 0 14px; }
.emin-sec__gallery { margin-top: 24px; }
.emin-sec__map { margin-top: 22px; border-radius: var(--emin-radius); overflow: hidden; }
.emin-sec__map iframe { display: block; width: 100%; min-height: 300px; border: 0; }

.emin-sec__hint { margin-top: 18px; font-size: 14.5px; color: var(--emin-muted); }
.emin-sec__hint a { color: var(--emin-accent); font-weight: 600; }

/* Schede contatti. */
.emin-cards { display: flex; flex-direction: column; gap: 12px; }
.emin-card {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px 18px;
	background: var(--emin-surface);
	border: 1px solid var(--emin-line);
	border-radius: var(--emin-radius);
}
.emin-card__k {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--emin-muted);
}
.emin-card__v { font-size: 16.5px; line-height: 1.5; }
.emin-card__v--pre { white-space: normal; }
.emin-card__act {
	align-self: flex-start;
	margin-top: 8px;
	font-size: 14px;
	font-weight: 650;
	color: var(--emin-accent);
	text-decoration: none;
	padding: 8px 14px;
	border-radius: 999px;
	background: color-mix(in oklab, var(--emin-accent) 11%, #fff);
}
.emin-card__act:hover { background: color-mix(in oklab, var(--emin-accent) 18%, #fff); }

.emin-sec__foot { margin-top: 34px; text-align: center; }
.emin-sec__hub {
	font-size: 14.5px;
	color: var(--emin-muted);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}
.emin-sec__hub:hover { color: var(--emin-accent); }

@media (max-width: 420px) {
	.emin__body { padding: 0 16px 26px; }
	.emin__cover { height: 158px; }
	.emin--cover .emin__head { margin-top: -50px; }
	.emin__logo { width: 92px; height: 92px; }
	.emin-btn { padding: 13px 14px; gap: 12px; }
	.emin-btn__icon { width: 40px; height: 40px; border-radius: var(--emin-radius); }
	.emin-btn__label { font-size: 15.5px; }
	.emin-btn--hero { padding: 17px 15px; }
	.emin-btn--hero .emin-btn__icon { width: 44px; height: 44px; }
	.emin-btn--hero .emin-btn__label { font-size: 16.5px; }
	.emin-sec { padding: 0 16px 32px; }
}

@media (prefers-reduced-motion: reduce) {
	.emin-btn { transition: none; }
	.emin-btn:hover, .emin-btn:focus-visible { transform: none; }
}

/* Sezione non disponibile (404 pulito). */
.emin-404 {
	max-width: 460px;
	margin: 0 auto;
	padding: 90px 24px;
	text-align: center;
}
.emin-404__title { margin: 0 0 10px; font-size: 22px; font-weight: 700; color: var(--emin-ink, #1d1620); }
.emin-404__text { margin: 0 0 24px; font-size: 15.5px; line-height: 1.6; color: var(--emin-soft, #6b6472); }
.emin-404__home {
	display: inline-block;
	font-size: 14.5px;
	font-weight: 650;
	color: #fff;
	text-decoration: none;
	background: var(--emin-accent, #7b002c);
	padding: 12px 24px;
	border-radius: 999px;
}

/* ── /menudigitale — scelta del menu ─────────────────────────────────── */

.emin-menu {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 12px;
}
.emin-menu__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-align: center;
	padding: 26px 14px;
	min-height: 130px;
	background: var(--emin-surface);
	border: 1px solid var(--emin-line);
	border-radius: var(--emin-radius);
	text-decoration: none;
	color: var(--emin-ink);
	box-shadow: 0 6px 20px rgba(15, 23, 42, 0.06);
	transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.emin-menu__card:hover,
.emin-menu__card:focus-visible {
	transform: translateY(-3px);
	border-color: #e2d3da;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.10);
	outline: none;
}
.emin-menu__icon {
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	/* Velatura dell'accento del locale, non un rosa fisso: chi sceglie un
	   marrone caldo non deve ritrovarsi sfondi rosa nella propria pagina. */
	background: color-mix(in oklab, var(--emin-accent) 12%, #fff);
	color: var(--emin-accent);
}
.emin-menu__label { font-size: 15.5px; font-weight: 650; line-height: 1.25; }
.emin-menu__count { font-size: 12.5px; color: var(--emin-muted); }

/* I tipi si riconoscono dall'icona, che è già diversa per ciascuno: il colore
   resta quello scelto dal locale, così la pagina non si riempie di tinte
   estranee alla sua identità. Le sfumature danno comunque varietà restando
   dentro la sua tavolozza. */
.emin-menu__card--vini .emin-menu__icon       { background: color-mix(in oklab, var(--emin-accent) 16%, #fff); }
.emin-menu__card--bevande .emin-menu__icon    { background: color-mix(in oklab, var(--emin-accent) 10%, #fff); }
.emin-menu__card--distillati .emin-menu__icon { background: color-mix(in oklab, var(--emin-accent) 20%, #fff); }
.emin-menu__card--formule .emin-menu__icon    { background: color-mix(in oklab, var(--emin-accent) 13%, #fff); }

/* Browser senza color-mix: si torna a una velatura neutra dell'accento. */
@supports not (background: color-mix(in oklab, red 10%, #fff)) {
	.emin-btn--chiama .emin-btn__icon,
	.emin-card__act,
	.emin-menu__icon,
	.emin-menu__card--vini .emin-menu__icon,
	.emin-menu__card--bevande .emin-menu__icon,
	.emin-menu__card--distillati .emin-menu__icon,
	.emin-menu__card--formule .emin-menu__icon,
	.emin-site { background: rgba(0, 0, 0, .05); }
}

/* Orari: contenuto ricco dal pannello (paragrafi, elenchi). */
.emin-card__v--rich { font-size: 16.5px; line-height: 1.55; }
.emin-card__v--rich p { margin: 0 0 6px; }
.emin-card__v--rich p:last-child { margin-bottom: 0; }
.emin-card__v--rich ul { margin: 0; padding-left: 18px; }

/* Mappa embed: contenitore con altezza propria (non dipende dal CSS landing). */
.emin-sec__map {
	margin-top: 22px;
	border-radius: var(--emin-radius);
	overflow: hidden;
	border: 1px solid var(--emin-line);
	background: var(--emin-surface);
}
.emin-sec__map iframe {
	display: block;
	width: 100%;
	height: 340px;
	border: 0;
}

@media (max-width: 420px) {
	.emin-menu { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.emin-menu__card { padding: 20px 10px; min-height: 118px; }
	.emin-menu__icon { width: 46px; height: 46px; }
	.emin-menu__label { font-size: 14px; }
	.emin-sec__map iframe { height: 260px; }
}

/* ── Solo menu: rimando al sito del locale ──────────────────────────────
   È il passo dopo, non un'alternativa: i box del menu restano l'azione
   principale, questo è un semplice link di cortesia. Niente riquadro, niente
   sfondo, niente pastiglia colorata — altrimenti competerebbe con i box. */
.emin-site {
	align-self: center;
	display: inline-flex;
	/* Al centro e mai a capo: il testo va su due righe dentro il suo blocco,
	   così icona e freccia restano ai lati e non finiscono da sole su una riga. */
	align-items: center;
	flex-wrap: nowrap;
	gap: 9px;
	margin-top: 22px;
	padding: 8px 15px;
	max-width: 100%;
	/* Stessa tinta delle icone del menu, ma più chiara: si riconosce come
	   elemento del locale senza pesare quanto i box. Gli angoli seguono la
	   scelta "Bordi" fatta in dashboard, come tutto il resto della pagina. */
	background: color-mix(in oklab, var(--emin-accent) 8%, #fff);
	border-radius: var(--emin-radius, 14px);
	color: var(--emin-accent);
	text-decoration: none;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.3;
	transition: background .16s ease;
}
.emin-site:hover { background: color-mix(in oklab, var(--emin-accent) 15%, #fff); }
.emin-site:hover .emin-site__label { text-decoration: underline; }
/* Icona piccola e in linea, senza cerchio: accompagna il testo, non lo annuncia. */
.emin-site__icon {
	align-self: center;
	flex: 0 0 auto;
	width: 15px;
	height: 15px;
	opacity: .75;
}
.emin-site__icon svg { width: 15px; height: 15px; display: block; }
/* Etichetta sopra, dominio sotto: una struttura voluta, non un a capo casuale. */
.emin-site__text {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	min-width: 0;
	text-align: left;
}
.emin-site__label { font-size: 14.5px; font-weight: 600; line-height: 1.25; }
/* Il dominio in chiaro: si esce dal sito, e vedere dove si va rassicura. */
.emin-site__host {
	font-size: 12.5px;
	font-weight: 400;
	line-height: 1.25;
	max-width: 100%;
	color: var(--emin-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.emin-site__arrow { flex: 0 0 auto; font-weight: 400; }
