/* ============================================================
   LEGOB.CSS v1.2.1 : univers grimoire / taverne du GOB.
   Parchemin, encre brune, rubans bordeaux, sceaux ambre/or.
   v1.2.2 : carte pleine largeur (Elementor), grille 2 colonnes,
   animations, "Ma tournee" en panneau depliable, torche adoucie.
   Les titres heritent de la fonte du theme.
   ============================================================ */

.gob-carte,
.gob-widget {
	--gob-parch: #e9d6a8;
	--gob-parch-2: #f2e4bf;
	--gob-ink: #3d2008;
	--gob-ink-2: #5a3217;
	--gob-ribbon: #7a1f14;
	--gob-ribbon-2: #5e1810;
	--gob-amber: #e8941a;
	--gob-gold: #f0c040;
	--gob-green: #4a8a2e;
	--gob-wood: #3a2417;
	color: var(--gob-ink);
}

/* ===================== CARTE ===================== */

.gob-carte {
	width: 100%;
	max-width: none;
	margin: 0;
	background: var(--gob-parch);
	background-image: radial-gradient(ellipse at 20% 10%, rgba(255, 255, 255, 0.25), transparent 60%),
		radial-gradient(ellipse at 80% 90%, rgba(90, 50, 23, 0.12), transparent 55%);
	border: 0;
	border-top: 1px solid #c9b27e;
	border-bottom: 1px solid #c9b27e;
	box-shadow: 0 6px 24px rgba(40, 20, 5, 0.35), inset 0 0 60px rgba(90, 50, 23, 0.10);
	padding: 24px clamp(16px, 4vw, 56px) 96px;
	box-sizing: border-box;
}

/* Barre d'outils : recherche, filtre, gobelin */
.gob-carte__bar {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-bottom: 14px;
}

.gob-carte__search {
	flex: 1 1 220px;
	background: var(--gob-parch-2);
	border: 1px solid var(--gob-ink-2);
	border-radius: 6px;
	padding: 9px 12px;
	color: var(--gob-ink);
	font-size: 14px;
}

.gob-carte__search::placeholder { color: #8a6b3f; }

.gob-carte__soft {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	cursor: pointer;
	color: var(--gob-ink-2);
	white-space: nowrap;
}

.gob-carte__ask {
	background: var(--gob-ribbon);
	color: var(--gob-parch-2);
	border: 1px solid var(--gob-ribbon-2);
	border-radius: 6px;
	padding: 9px 14px;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 2px 0 var(--gob-ribbon-2);
	transition: transform 0.1s;
}

.gob-carte__ask:hover { transform: translateY(-1px); }
.gob-carte__ask:active { transform: translateY(1px); box-shadow: none; }

/* Navigation par categories */
.gob-carte__nav {
	position: sticky;
	top: 0;
	z-index: 3;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	background: var(--gob-parch);
	padding: 8px 0;
	margin-bottom: 18px;
	border-bottom: 2px solid var(--gob-ribbon);
}

.gob-carte__nav a {
	background: transparent;
	color: var(--gob-ribbon);
	border: 1px solid var(--gob-ribbon);
	border-radius: 20px;
	padding: 5px 12px;
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: background 0.15s, color 0.15s;
}

.gob-carte__nav a:hover {
	background: var(--gob-ribbon);
	color: var(--gob-parch-2);
}

/* Sections et rubans de titre */
.gob-carte__cat { margin-bottom: 30px; scroll-margin-top: 70px; }

.gob-carte__ribbon {
	position: relative;
	background: linear-gradient(180deg, #8a2417, var(--gob-ribbon) 55%, var(--gob-ribbon-2));
	color: var(--gob-parch-2);
	font-size: 20px;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 9px 18px;
	margin: 0 0 14px;
	border-radius: 3px;
	box-shadow: 0 3px 8px rgba(40, 20, 5, 0.35);
	cursor: pointer;
	transition: filter 0.15s;
}

.gob-carte__ribbon:hover { filter: brightness(1.12); }

.gob-carte__ribbon::before,
.gob-carte__ribbon::after {
	content: "\2766"; /* fleuron */
	font-size: 14px;
	opacity: 0.7;
	margin: 0 8px;
}

.gob-carte__ribbon::before { margin-left: 0; }

.gob-carte__ribbon .gob-carte__chev {
	float: right;
	transition: transform 0.2s;
}

.gob-carte__cat.is-closed .gob-carte__chev { transform: rotate(-90deg); }
.gob-carte__cat.is-closed .gob-carte__list { display: none; }

@keyframes gobListIn {
	from { opacity: 0; transform: translateY(-6px); }
	to { opacity: 1; transform: none; }
}

.gob-carte__cat:not(.is-closed) .gob-carte__list { animation: gobListIn 0.25s ease; }

/* Items : lignes de grimoire, deux colonnes sur grand ecran */
.gob-carte__list {
	list-style: none;
	margin: 0;
	padding: 0 6px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2px 48px;
	align-items: start;
}

@media (max-width: 700px) {
	.gob-carte__list { grid-template-columns: 1fr; }
}

.gob-item {
	padding: 10px 6px;
	border-bottom: 1px dashed rgba(90, 50, 23, 0.35);
	border-radius: 6px;
	transition: background 0.2s;
}

.gob-item:hover { background: rgba(240, 192, 64, 0.10); }

/* Apparition au scroll (uniquement si JS actif, voir gob-carte.js) */
.gob-carte--anim .gob-item {
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 0.45s ease, transform 0.45s ease, background 0.2s;
}

.gob-carte--anim .gob-item.is-in {
	opacity: 1;
	transform: none;
}

.gob-item__line {
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.gob-item__name {
	font-weight: 700;
	font-size: 16px;
	color: var(--gob-ink);
}

.gob-item__degre {
	font-weight: 400;
	font-size: 12px;
	color: var(--gob-ink-2);
}

.gob-item__dots {
	flex: 1;
	border-bottom: 2px dotted rgba(90, 50, 23, 0.45);
	transform: translateY(-4px);
	min-width: 24px;
}

.gob-item__price {
	font-weight: 700;
	font-size: 15px;
	color: var(--gob-ribbon);
	white-space: nowrap;
	transition: transform 0.15s;
	display: inline-block;
}

.gob-item:hover .gob-item__price { transform: scale(1.07); }

.gob-item__ingr {
	margin: 4px 0 0;
	font-size: 13px;
	font-style: italic;
	color: var(--gob-ink-2);
	line-height: 1.5;
}

.gob-item__desc {
	margin-top: 4px;
	font-size: 13px;
	color: var(--gob-ink-2);
	line-height: 1.55;
}

.gob-item__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 6px;
	align-items: center;
}

.gob-item__vol {
	font-size: 12px;
	color: var(--gob-ink-2);
	background: rgba(90, 50, 23, 0.10);
	border-radius: 4px;
	padding: 2px 8px;
}

/* Sceau Happy Hour : pastille ambre comme sur la carte print */
.gob-item__hh {
	display: inline-block;
	background: radial-gradient(circle at 35% 30%, var(--gob-gold), var(--gob-amber) 70%);
	color: #4a2606;
	font-size: 11px;
	font-weight: 700;
	border: 2px solid #b06f10;
	border-radius: 999px;
	padding: 3px 10px;
	box-shadow: 0 1px 3px rgba(40, 20, 5, 0.35);
	text-transform: uppercase;
}

/* Badge : sceau de cire */
.gob-item__badge {
	display: inline-block;
	background: radial-gradient(circle at 35% 30%, #a4351f, var(--gob-ribbon) 75%);
	color: var(--gob-parch-2);
	font-size: 10px;
	font-weight: 700;
	border-radius: 999px;
	padding: 3px 9px;
	margin-left: 6px;
	box-shadow: 0 1px 3px rgba(40, 20, 5, 0.4), inset 0 0 6px rgba(0, 0, 0, 0.25);
	text-transform: uppercase;
	letter-spacing: 0.4px;
	vertical-align: middle;
}

/* Bouton "ajouter a ma tournee" (chope) */
.gob-item__add {
	background: var(--gob-parch-2);
	border: 1px solid #b09058;
	border-radius: 999px;
	width: 30px;
	height: 30px;
	padding: 3px;
	cursor: pointer;
	line-height: 0;
	transition: transform 0.12s, background 0.15s, border-color 0.15s;
	flex: 0 0 auto;
}

.gob-item__add:hover { transform: scale(1.12); border-color: var(--gob-amber); }

.gob-item__add.is-on {
	background: radial-gradient(circle at 35% 30%, var(--gob-gold), var(--gob-amber) 75%);
	border-color: #b06f10;
}

/* "Ma tournee" : pastille + panneau depliable.
   z-index au-dessus du voile torche (9985/9986) mais sous le majordome. */
.gob-tournee {
	position: fixed;
	bottom: 14px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 9990;
	width: max-content;
	max-width: min(440px, 94vw);
	font-family: inherit;
}

.gob-tournee[hidden] { display: none; }

.gob-tournee__pill {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	width: 100%;
	background: var(--gob-wood, #3a2417);
	color: #f2e4bf;
	border: 2px solid var(--gob-gold, #f0c040);
	border-radius: 999px;
	padding: 10px 18px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.2px;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.gob-tournee__pill .t-total { color: var(--gob-gold, #f0c040); white-space: nowrap; }
.gob-tournee__pill .t-chev { color: #c9b27e; font-size: 12px; }

@keyframes gobTourneePop {
	0% { transform: scale(1); }
	50% { transform: scale(1.06); }
	100% { transform: scale(1); }
}

.gob-tournee__pill.is-pop { animation: gobTourneePop 0.3s ease; }

.gob-tournee__panel {
	background: var(--gob-parch-2, #f2e4bf);
	color: var(--gob-ink, #3d2008);
	border: 1px solid #b09058;
	border-radius: 10px;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
	padding: 10px 14px;
	margin-bottom: 8px;
	max-height: 42vh;
	overflow: auto;
}

.gob-tournee__panel[hidden] { display: none; }

.gob-tournee__panel ul { list-style: none; margin: 0; padding: 0; }

.gob-tournee__panel li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 7px 2px;
	border-bottom: 1px dashed rgba(90, 50, 23, 0.3);
	font-size: 14px;
	line-height: 1.35;
}

.gob-tournee__panel li:last-child { border-bottom: 0; }

.gob-tournee__panel .t-name { flex: 1; font-weight: 600; color: var(--gob-ink, #3d2008); }
.gob-tournee__panel .t-price { color: var(--gob-ribbon, #7a1f14); font-weight: 700; white-space: nowrap; }

.gob-tournee__rm {
	background: transparent;
	border: 0;
	color: #a4351f;
	font-size: 17px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	padding: 2px 5px;
}

.gob-tournee__foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-top: 9px;
	font-size: 12.5px;
	color: var(--gob-ink-2, #5a3217);
}

.gob-tournee__clear {
	background: transparent;
	border: 0;
	color: var(--gob-ink-2, #5a3217);
	font-size: 12px;
	cursor: pointer;
	text-decoration: underline;
	padding: 0;
}

/* Choix du gobelin */
.gob-item--chosen {
	background: linear-gradient(90deg, rgba(240, 192, 64, 0.30), transparent 80%);
	border-radius: 6px;
	animation: gobChosen 0.5s ease-in-out 3;
	position: relative;
}

.gob-item--chosen::after {
	content: "Le choix du Gobelin !";
	display: inline-block;
	background: var(--gob-green);
	color: #f5f0dd;
	font-size: 11px;
	font-weight: 700;
	border-radius: 999px;
	padding: 3px 10px;
	margin-left: 8px;
	box-shadow: 0 1px 3px rgba(40, 20, 5, 0.4);
}

@keyframes gobChosen {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-3px); }
	75% { transform: translateX(3px); }
}

.gob-carte__empty-search {
	text-align: center;
	font-style: italic;
	color: var(--gob-ink-2);
	padding: 18px 0;
}

.gob-carte-empty {
	text-align: center;
	font-style: italic;
}

/* Mobile */
@media (max-width: 600px) {
	.gob-carte { padding: 14px 12px 96px; }
	.gob-carte__ribbon { font-size: 16px; }
	.gob-item__name { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
	.gob-carte *, .gob-widget * { animation: none !important; transition: none !important; }
	.gob-carte--anim .gob-item { opacity: 1 !important; transform: none !important; }
}
