.shine-content { max-width: var(--maxw); margin: 0 auto; padding: 1.5rem; }

/* Search bar */
.shine-searchbar { display: flex; justify-content: center; padding: 1.25rem 1rem; background: var(--bg); }
.shine-search { position: relative; width: 100%; max-width: 420px; display: flex; align-items: center;
	border: 1px solid var(--surface); border-radius: 6px; background: var(--bg); padding: 0 .5rem; }
.shine-search input[type="search"] { flex: 1; border: 0; background: transparent; color: var(--text);
	padding: .6rem .4rem; outline: none; font-family: var(--font-body); }
.shine-search__icon { display: inline-block; width: 1.3em; height: 1.5em; flex: none; margin: 0 .45rem 0 .1rem;
	background: url("../img/star.gif") no-repeat center / contain; }
.shine-search__submit { background: transparent; border: 0; color: var(--text); padding: 0 .4rem; opacity: .7; }

/* Utility bar */
.shine-utility { display: flex; justify-content: flex-end; align-items: center; gap: 1.5rem;
	background: var(--surface); padding: .55rem 1.5rem; font-family: var(--font-body); font-size: .85rem; letter-spacing: .01em; }
.shine-utility__link { text-transform: none; color: var(--text); }
.shine-toggle { background: transparent; border: 0; color: var(--text); font-size: 1.05rem; opacity: .8; margin-right: auto; }
.shine-burger { display: none; background: transparent; border: 0; color: var(--text); font-size: 1.3rem; margin-right: auto; }

/* Hero — stemmi in due colonne laterali, centro libero per il logo */
.shine-hero { position: relative; background-color: var(--brand);
	display: flex; align-items: center; justify-content: center; padding: 3rem 1rem; min-height: 230px; overflow: hidden; }
.shine-hero::before, .shine-hero::after { content: ""; position: absolute; top: 0; bottom: 0; width: 30%;
	pointer-events: none; opacity: .85; background-repeat: no-repeat; background-size: contain; }
.shine-hero::before { left: 0; background-image: url("../svg/pattern-left.png"); background-position: left center; }
.shine-hero::after { right: 0; background-image: url("../svg/pattern-right.png"); background-position: right center; }
.shine-hero__logo { position: relative; z-index: 1; width: min(420px, 38%); filter: drop-shadow(var(--glow)); }
.shine-hero__logo svg { width: 100%; height: auto; display: block; }

/* Accent divider */
.shine-divider { height: 14px; background: var(--accent); box-shadow: var(--glow); }

/* Nav — distribuita su tutta la larghezza del contenuto */
.shine-nav { background: var(--surface); }
.shine-nav__list { max-width: var(--maxw); margin: 0 auto; display: flex; gap: 0; padding: 0; list-style: none; }
.shine-nav__list > li { flex: 1 1 0; }
.shine-nav__link { display: block; text-align: center; padding: 1rem .5rem; font-family: var(--font-display);
	font-size: .8rem; letter-spacing: .04em; border-right: 1px solid var(--bg); }
.shine-nav__list > li:first-child .shine-nav__link { border-left: 1px solid var(--bg); }
.shine-nav__link.is-active { color: var(--brand); }

/* Cursori custom */
.shine-body { cursor: url("../svg/mouse-cursor.svg") 4 4, auto; }
.shine-nav__link, .shine-add-to-cart, .shine-utility__link, .shine-toggle { cursor: url("../svg/cursor-hover.png") 0 0, pointer; }

/* Responsive */
@media (max-width: 768px) {
	.shine-hero { padding: 2.2rem 1rem; min-height: 150px; }
	.shine-hero::before, .shine-hero::after { width: 42%; opacity: .32; }
	.shine-hero__logo { width: 60%; }
	.shine-burger { display: inline-block; }
	.shine-toggle { margin-right: 0; order: 1; }

	/* Nav come menu a comparsa (hamburger) — voci centrate, grandi, senza separatori */
	.shine-nav { display: none; }
	.shine-nav.is-open { display: block; padding-bottom: 1.5rem; }
	.shine-nav__list { flex-direction: column; padding: 1.4rem 0 0; }
	.shine-nav__link, .shine-nav__list > li:first-child .shine-nav__link {
		border: 0; padding: .9rem 1rem; font-size: 1.5rem; }
	.shine-nav__link.is-active { color: var(--text); }
	.shine-nav__link.is-active::before { content: ""; display: inline-block; vertical-align: middle;
		width: 1em; height: 1.15em; margin-right: .5rem;
		background: url("../img/star.gif") no-repeat center / contain; }
}

/* Footer */
.shine-footer { background: var(--surface); color: var(--text); padding: 2rem 1.5rem; margin-top: 3rem; }
.shine-footer__inner { max-width: var(--maxw); margin: 0 auto; font-family: var(--font-display); font-size: .75rem; letter-spacing: .05em; }

/* Griglia prodotti */
.shine-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem 2rem; margin-top: 1.5rem; }
.shine-grid__heading { font-family: var(--font-display); font-size: 1.15rem; letter-spacing: .04em; margin: 0; }

/* Card: immagine direttamente sullo sfondo pagina (come nei mockup) */
.shine-card { position: relative; text-align: center; }
.shine-card__media { position: relative; overflow: hidden; }
.shine-card__img { width: 100%; height: 100%; object-fit: contain; display: block; }

/* Slider foto prodotto (autoplay sincronizzato, vedi assets/js/slider.js) */
.shine-slider { position: relative; overflow: hidden; }
.shine-slider__track { display: flex; flex-wrap: nowrap; transition: transform .5s ease; }
.shine-slider__slide { flex: 0 0 100%; aspect-ratio: 1 / 1; }
.shine-slider__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
	width: 34px; height: 34px; border: 0; border-radius: 50%; cursor: pointer;
	background: rgba(0,0,0,.35); color: #fff; font-size: 20px; line-height: 1;
	display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .2s; }
.shine-slider__arrow--prev { left: 8px; }
.shine-slider__arrow--next { right: 8px; }
.shine-card__media:hover .shine-slider__arrow { opacity: 1; }
.shine-slider__dots { position: absolute; bottom: 8px; left: 0; right: 0; z-index: 3;
	display: flex; gap: 6px; justify-content: center; }
.shine-slider__dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; cursor: pointer;
	background: rgba(255,255,255,.55); box-shadow: 0 0 2px rgba(0,0,0,.4); transition: background .2s; }
.shine-slider__dot.is-active { background: #fff; }
/* Sulle card sold out il velo copre tutto: niente controlli slider. */
.shine-card.is-soldout .shine-slider__arrow,
.shine-card.is-soldout .shine-slider__dots { display: none; }

/* Sold out: velo scuro sull'immagine + timbro SOLD OUT sovrapposto */
.shine-card.is-soldout .shine-card__media::before,
.shine-card.is-soldout .shine-card__media::after {
	content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
}
.shine-card.is-soldout .shine-card__media::before {
	background: #383737; opacity: .7;
}
.shine-card.is-soldout .shine-card__media::after {
	background: url("../img/sold-out.png") center / 88% auto no-repeat;
}
.shine-card__badge { position: absolute; clip: rect(0 0 0 0); clip-path: inset(50%);
	width: 1px; height: 1px; overflow: hidden; white-space: nowrap; }
.shine-card__title { font-family: var(--font-display); font-size: .9rem; margin: .9rem 0 .2rem; }
.shine-card__misura { font-size: .75rem; opacity: .7; margin: 0 0 .3rem; }
.shine-card__price { font-family: var(--font-display); margin-bottom: .9rem; }

.shine-add-to-cart { font-family: var(--font-display); font-size: .75rem; letter-spacing: .05em;
	background: var(--accent); color: var(--text-invert); border: 0; padding: .7rem 1.6rem; border-radius: 4px;
	box-shadow: var(--glow); }
.shine-add-to-cart.is-disabled { background: grey; color: #fff; cursor: not-allowed; box-shadow: none; }
.shine-add-to-cart.is-view-cart { background: var(--brand); }

@media (max-width: 768px) {
	.shine-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem 1rem; }
	.shine-card__title { font-size: .8rem; }
	.shine-add-to-cart { padding: .55rem 1rem; }
}

/* Newsletter */
.shine-newsletter { text-align: center; padding: 2rem 1rem; }
.shine-newsletter__form { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin-top: 1.2rem; }
.shine-newsletter__input { background: var(--bg); color: var(--text); border: 1px solid var(--surface);
	border-radius: 4px; padding: .7rem 1rem; min-width: 260px; font-family: var(--font-body); }
#shine-views.is-loading { opacity: .5; transition: opacity .15s; }

/* Pagine (carrello, checkout, generiche) */
.shine-page__content { margin-top: 1.2rem; }
