/* Detail značkové prodejny – Figma „Detail prodejny – schválená varianta C".
   Mobil do 989px, desktop od 990px (stejný zlom jako @desktop v LESS). */

.store,
.store-tour {
	--store-green: #194a38;
	--store-text: #263b32;
	--store-muted: #5f6964;
	--store-orange: #ae571c;
	--store-orange-hover: #8f4717;
	--store-star: #d66b22;
	--store-border: #dcdad0;
	--store-gray: #f9f9f9;
	--store-notice: #fbede3;
	--store-promo: #d1e4db;
	--store-anchor-offset: calc(var(--store-header-h, 0px) + 80px);
}

.store {
	font-family: 'Montserrat', sans-serif;
	color: var(--store-text);
	background-color: #fff;
	line-height: normal;
}

.store *,
.store *::before,
.store *::after {
	box-sizing: border-box;
}

.store p {
	margin: 0;
}

.store [id] {
	scroll-margin-top: var(--store-anchor-offset);
}

/* html i body mají v CSS webu overflow-x: hidden, takže body je scroll
   kontejner a sticky kotevní menu by se nepřichytilo. clip ořezává stejně,
   ale scroll kontejner nevytváří. */
html:has(.store),
html:has(.store) body {
	overflow-x: clip;
}

@media (min-width: 1440px) {
	.store .container {
		max-width: calc(90rem + 2.5rem);
	}
}

/* ---------- Typografie ---------- */

.store-title,
.store-h2,
.store-h3,
.store-form__title {
	margin: 0;
	font-family: 'Montserrat', sans-serif;
	font-weight: 800;
	font-style: italic;
	color: var(--store-green);
}

.store-title {
	font-size: 40px;
	line-height: 1.1;
}

.store-h2,
.store-h3 {
	font-size: 28px;
	line-height: 1.2;
}

.store-form__title {
	font-size: 28px;
}

.store-lead {
	font-size: 16px;
	line-height: 1.45;
	color: var(--store-muted);
}

.store-muted {
	font-size: 15px;
	line-height: 1.5;
	color: var(--store-muted);
}

.store-eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--store-orange);
}

.store-link {
	color: var(--store-orange);
	text-decoration: underline;
	text-underline-position: from-font;
}

.store-link:hover {
	color: var(--store-orange-hover);
}

.store-stars {
	background: linear-gradient(90deg, var(--store-star) var(--store-stars-fill, 100%), var(--store-border) 0);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	letter-spacing: 0.05em;
	/* V kartě recenze je to flex položka přes celou šířku – výplň by se počítala z ní. */
	width: fit-content;
}

/* ---------- Tlačítka ---------- */

.store-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 28px;
	border: 1.5px solid transparent;
	border-radius: 8px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	line-height: normal;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.store-btn--primary {
	background-color: var(--store-orange);
	border-color: var(--store-orange);
	color: #fff;
}

.store-btn--primary:hover,
.store-btn--primary:focus-visible {
	background-color: var(--store-orange-hover);
	border-color: var(--store-orange-hover);
	color: #fff;
}

.store-btn--secondary {
	background-color: #fff;
	border-color: var(--store-green);
	color: var(--store-green);
}

.store-btn--secondary:hover,
.store-btn--secondary:focus-visible {
	background-color: var(--store-green);
	color: #fff;
}

/* ---------- Sekce ---------- */

.store-section {
	padding: 56px 0;
}

.store-section--gray {
	background-color: var(--store-gray);
}

.store-head {
	display: flex;
	align-items: flex-end;
	gap: 24px;
	margin-bottom: 24px;
}

.store-head > :first-child {
	flex: 1 1 0;
	min-width: 0;
}

.store-head .store-lead {
	margin-top: 12px;
}

/* ---------- 01 Úvod ---------- */

/* Na mobilu web odsazuje obsah o 64px, ale fixní hlavička i s horní linkou
   končí na 108px – bez odsazení by překryla horní část fotky. */
.store-intro {
	padding: 44px 0 16px;
}

.store-intro__row {
	display: flex;
	flex-direction: column;
}

.store-hero {
	position: relative;
	height: 300px;
	margin: 0 -1.25rem;
	overflow: hidden;
}

.store-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.store-hero__count {
	display: none;
}

.store-hero__tour {
	position: absolute;
	bottom: 20px;
	left: 20px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 18px 12px 16px;
	border-radius: 8px;
	background-color: #fff;
	font-size: 14px;
	font-weight: 700;
	color: var(--store-green);
	text-decoration: none;
}

.store-hero__count:hover,
.store-hero__tour:hover {
	color: var(--store-orange);
}

.store-panel {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-top: 24px;
}

.store-panel__title {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.store-panel__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
}

.store-open {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px 6px 12px;
	border-radius: 999px;
	background-color: #eceae2;
	font-size: 13px;
	font-weight: 600;
	color: var(--store-text);
}

.store-open[hidden] {
	display: none;
}

.store-open::before {
	content: '';
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: var(--store-muted);
}

.store-open.is-open {
	background-color: var(--store-promo);
	color: var(--store-green);
}

.store-open.is-open::before {
	background-color: var(--store-green);
}

.store-rating {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 15px;
	color: var(--store-green);
	text-decoration: none;
}

.store-rating__count {
	font-size: 13px;
	color: var(--store-muted);
}

.store-strip {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	padding: 14px 16px;
	border-radius: 12px;
	font-size: 15px;
	line-height: 1.4;
	color: var(--store-text);
}

.store-strip--notice {
	background-color: var(--store-notice);
}

.store-strip--promo {
	background-color: var(--store-promo);
}

.store-strip__head {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.store-strip__text {
	flex: 1 1 0;
	min-width: 12em;
}

.store-strip__link {
	display: inline-block;
	margin-left: 4px;
	font-weight: 600;
	color: var(--store-green);
}

.store-tag {
	padding: 4px 10px;
	border-radius: 6px;
	background-color: var(--store-green);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	color: #fff;
}

/* Kontakt + otevírací doba. Na mobilu je karta vždy rozbalená. */

.store-contact {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 24px 20px;
	border: 1px solid var(--store-border);
	border-radius: 16px;
}

.store-contact__row {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 16px;
	color: var(--store-text);
	text-decoration: none;
}

.store-contact__row img {
	flex-shrink: 0;
}

.store-contact__phone {
	font-size: 22px;
	font-weight: 700;
}

a.store-contact__phone:hover {
	color: var(--store-orange);
}

.store-contact__label {
	font-weight: 600;
}

.store-contact__more {
	display: flex;
	flex-direction: column;
}

/* Sdílené rozbalování (otevírací doba, akordeon cesty) – výška se animuje
   přes grid 0fr → 1fr, takže obsah pod ním neposkočí. */
.store-collapse {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 220ms ease-out;
}

.store-collapse.is-open {
	grid-template-rows: 1fr;
}

.store-collapse__inner {
	min-height: 0;
	overflow: hidden;
}

/* Zavřený obsah nesmí jít fokusovat; skryje se až po doběhnutí animace. */
.store-collapse:not(.is-open) > .store-collapse__inner {
	visibility: hidden;
	transition: visibility 0s 220ms;
}

/* Na mobilu je otevírací doba v kartě vždy rozbalená (Figma 112:1872). */
.store-contact__more .store-collapse {
	grid-template-rows: 1fr;
}

.store-contact__more .store-collapse > .store-collapse__inner {
	visibility: visible;
}

.store-toggle {
	display: none;
}

.store-contact__expanded {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-top: 12px;
}

.store-hours {
	margin: 0 0 0 36px;
	border-collapse: collapse;
	font-size: 15px;
	color: var(--store-text);
}

.store-hours td {
	padding: 3px 0;
	vertical-align: top;
}

.store-hours td:first-child {
	width: 90px;
	padding-right: 12px;
}

.store-toggle {
	align-items: center;
	gap: 6px;
	padding: 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--store-green);
	text-decoration: underline;
	text-underline-position: from-font;
	cursor: pointer;
}

.store-toggle__close {
	display: none;
}

.store-toggle[aria-expanded="true"] .store-toggle__open {
	display: none;
}

.store-toggle[aria-expanded="true"] .store-toggle__close {
	display: inline;
}

.store-toggle__icon {
	transition: transform 220ms ease-out;
}

.store-toggle[aria-expanded="true"] .store-toggle__icon {
	transform: rotate(180deg);
}

.store-contact__heading {
	margin-bottom: 8px;
	font-size: 22px;
	font-weight: 700;
	color: var(--store-green);
}

.store-cta {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 8px;
}

/* ---------- 02 Kotevní menu (jen desktop) ---------- */

.store-anchors {
	display: none;
}

/* ---------- 03 Výhody ---------- */

.store-benefits {
	padding: 56px 0;
}

.store-benefits__head {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin-bottom: 24px;
}

.store-benefits__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.store-benefit {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 12px 16px;
	border: 1px solid var(--store-border);
	border-radius: 12px;
	background-color: #fff;
	font-size: 16px;
	font-weight: 700;
	color: var(--store-green);
}

.store-benefit img {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
}

/* ---------- 04 Co u nás najdete ---------- */

.store-arrows {
	display: none;
	gap: 12px;
}

.store-arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	padding: 0;
	border: 1px solid var(--store-green);
	border-radius: 50%;
	background-color: #fff;
	font-size: 20px;
	font-weight: 700;
	color: var(--store-green);
	cursor: pointer;
}

.store-arrow--filled,
.store-arrow:hover {
	background-color: var(--store-green);
	color: #fff;
}

/* Neaktivní šipka = obrysová varianta z Figmy (na začátku je to „←"),
   ne zprůhlednění – to dělalo šedý rámeček i šipku. */
.store-arrow.swiper-button-disabled {
	display: flex !important;
	background-color: #fff;
	color: var(--store-green);
	cursor: default;
}

.store-range__swiper {
	overflow: visible;
}

.store-range {
	overflow: hidden;
}

.store-range .store-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	width: 270px;
	color: inherit;
	text-decoration: none;
}

.store-card__img {
	width: 100%;
	height: 200px;
	border-radius: 16px;
	object-fit: cover;
}

.store-card__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--store-green);
}

.store-card__text {
	display: none;
	font-size: 15px;
	line-height: 1.5;
	color: var(--store-muted);
}

.store-card__more {
	font-size: 15px;
	font-weight: 600;
	color: var(--store-orange);
}

.store-card:hover .store-card__more {
	text-decoration: underline;
}

.store-dots {
	display: flex;
	gap: 8px;
	margin-top: 24px;
}

.store-dot {
	width: 8px;
	height: 8px;
	border-radius: 5px;
	background-color: var(--store-border);
	cursor: pointer;
	transition: width 0.2s, background-color 0.2s;
}

.store-dot.is-active {
	width: 24px;
	background-color: var(--store-green);
}

/* ---------- 05 Galerie ---------- */

.store-gallery__all {
	display: none;
	padding: 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	color: var(--store-green);
	white-space: nowrap;
	cursor: pointer;
}

.store-gallery__all:hover {
	color: var(--store-orange);
}

.store-gallery__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.store-gallery__item {
	display: block;
	overflow: hidden;
	border-radius: 16px;
	height: 130px;
}

.store-gallery__item:first-child {
	grid-column: 1 / -1;
	height: 240px;
}

.store-gallery__item:nth-child(n+4),
.store-gallery__item.is-hidden {
	display: none;
}

.store-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s;
}

.store-gallery__item:hover img {
	transform: scale(1.03);
}

.store-gallery__all-mobile {
	width: 100%;
	margin-top: 24px;
}

/* ---------- 06 Recenze ---------- */

.store-reviews .store-head {
	flex-direction: column;
	align-items: flex-start;
}

.store-reviews__rating {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	color: var(--store-muted);
	text-decoration: none;
}

.store-reviews__rating strong {
	font-size: 22px;
	color: var(--store-green);
}

.store-reviews__rating .store-stars {
	font-size: 18px;
}

.store-reviews__list {
	display: flex;
	gap: 12px;
	margin: 0 -1.25rem;
	padding: 0 1.25rem;
	overflow-x: auto;
	/* Bez scroll-padding přichytí scroll-snap první kartu k hraně obrazovky
	   (padding ignoruje) a odsazení 20px zmizí. */
	scroll-padding-inline: 1.25rem;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.store-reviews__list::-webkit-scrollbar {
	display: none;
}

.store-review {
	display: flex;
	flex: 0 0 300px;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 20px;
	border-radius: 16px;
	background-color: var(--store-gray);
	scroll-snap-align: start;
}

.store-review .store-stars {
	font-size: 18px;
}

.store-review p {
	font-size: 15px;
	line-height: 1.5;
	color: var(--store-text);
}

.store-review footer {
	display: flex;
	gap: 6px;
	margin-top: auto;
	font-size: 14px;
	color: var(--store-muted);
}

.store-review footer strong {
	color: var(--store-green);
}

.store-reviews__cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
	text-align: center;
}

.store-reviews__cta .store-btn {
	width: 100%;
}

.store-reviews__cta .store-muted {
	font-size: 14px;
}

/* ---------- 06b Formulář ---------- */

.store-offer__row {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.store-offer__text {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* Mobilní návrh ukazuje nad formulářem jen další kontakty. */
.store-offer__text > .store-h2,
.store-offer__text > .store-lead,
.store-offer__text > .store-contact__phone {
	display: none;
}

.store-contacts {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.store-contacts__title {
	margin: 0;
	font-family: inherit;
	font-size: 18px;
	font-weight: 700;
	color: var(--store-green);
}

.store-contacts__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	width: 100%;
	max-width: 480px;
}

.store-contact-card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 20px 24px;
	border: 1px solid var(--store-border);
	border-radius: 12px;
	background-color: #fff;
	font-size: 15px;
	color: #1f2a25;
}

.store-contact-card__role {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--store-muted);
}

.store-contact-card__name {
	font-size: 17px;
	font-weight: 700;
	color: var(--store-green);
}

.store-contact-card__phone {
	color: #1f2a25;
	text-decoration: none;
}

.store-contact-card--legacy a {
	color: var(--store-orange);
}

.store-contact-card--legacy p + p {
	margin-top: 6px;
}

.store-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px 20px;
	border: 1px solid var(--store-border);
	border-radius: 16px;
	background-color: #fff;
	box-shadow: 0 12px 16px rgba(26, 51, 38, 0.08);
}

.store-form .wpforms-container {
	margin: 0;
	padding: 0;
}

/* Selektory s .wpforms-container + !important, jinak je přebije CSS WPForms. */
.store-form .wpforms-container .wpforms-field {
	padding: 0 0 20px !important;
}

.store-form .wpforms-container .wpforms-field-hidden {
	padding: 0 !important;
}

.store-form .wpforms-container .wpforms-field-label {
	margin: 0 0 6px !important;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	color: var(--store-text);
}

.store-form input[type="text"],
.store-form input[type="email"],
.store-form input[type="tel"],
.store-form input[type="number"],
.store-form select,
.store-form textarea {
	width: 100% !important;
	max-width: 100% !important;
	min-height: 48px;
	padding: 12px 16px;
	border: 1px solid var(--store-border);
	border-radius: 8px;
	background-color: #fff;
	font-family: inherit;
	font-size: 15px;
	color: var(--store-text);
}

.store-form textarea {
	height: 104px !important;
	min-height: 104px;
}

/* Skryté pole reCAPTCHA by jinak dostalo výšku vstupu. */
.store-form input[name="g-recaptcha-hidden"] {
	position: absolute !important;
	height: 1px !important;
	min-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.store-form .wpforms-field-content {
	font-size: 12px;
	color: var(--store-muted);
}

.store-form .wpforms-field-content p {
	margin: 0;
}

/* E-mail a telefon vedle sebe jako ve Figmě (desktop i mobil). */
.store-form .wpforms-field-container {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 16px;
}

.store-form .wpforms-field-container > * {
	grid-column: 1 / -1;
}

.store-form .wpforms-field-container > .wpforms-field-email,
.store-form .wpforms-field-container > .wpforms-field-phone {
	grid-column: auto;
}

.store-form input:focus,
.store-form select:focus,
.store-form textarea:focus {
	border-color: var(--store-green);
	outline: 2px solid rgba(25, 74, 56, 0.2);
	outline-offset: 0;
}

.store-form ::placeholder {
	color: var(--store-muted);
}

.store-form .wpforms-submit-container {
	padding: 0;
}

.store-form button[type="submit"] {
	width: 100%;
	padding: 16px 28px;
	border: 0;
	border-radius: 8px;
	background-color: var(--store-orange);
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	color: #fff;
	cursor: pointer;
}

.store-form button[type="submit"]:hover {
	background-color: var(--store-orange-hover);
}

.store-form .wpforms-required-legend,
.store-form .wpforms-field-description {
	font-size: 12px;
	color: var(--store-muted);
}

/* ---------- 07 Jak se k nám dostanete ---------- */

/* Na mobilu jde nadpis nad mapu – blok s textem se „rozpustí" do řádku. */
.store-route__row {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.store-route__text {
	display: contents;
}

.store-route__text > .store-h2 {
	order: -1;
}

.store-route__map {
	overflow: hidden;
	border-radius: 16px;
	background-color: #eceae2;
}

/* Obal mapy má z CSS webu záporný margin a rámeček – pod mapou pak zůstal pruh. */
.store-route__map .gmw-element-wrapper {
	margin: 0 !important;
	border: 0 !important;
}

/* GMW dává mapě inline výšku 520px; na mobilu je v návrhu 240px. Selektor
   musí přebít „.gmw-single-location-wrapper div.gmw-map-wrapper" z custom.min.css. */
.store-route__map .gmw-single-location-wrapper div.gmw-map-wrapper {
	height: 240px !important;
}

.store-route__map .gmw-map {
	height: 100% !important;
}

.store-route__address {
	font-size: 16px;
	font-weight: 700;
}

.store-route__btn--desktop {
	display: none;
}

.store-accordion__item {
	border-top: 1px solid var(--store-border);
}

.store-accordion__item:last-child {
	border-bottom: 1px solid var(--store-border);
}

.store-accordion__head {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 17px 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	text-align: left;
	color: var(--store-green);
	cursor: pointer;
}

/* + / – ze dvou čárek; svislá se při otevření plynule otočí do vodorovné. */
.store-accordion__sign {
	position: relative;
	flex-shrink: 0;
	width: 12px;
	height: 12px;
	margin-left: auto;
}

.store-accordion__sign::before,
.store-accordion__sign::after {
	content: '';
	position: absolute;
	top: 5px;
	left: 0;
	width: 12px;
	height: 2px;
	border-radius: 1px;
	background-color: currentColor;
	transition: transform 220ms ease-out;
}

.store-accordion__sign::after {
	transform: rotate(90deg);
}

.store-accordion__head[aria-expanded="true"] .store-accordion__sign::after {
	transform: rotate(0deg);
}

.store-accordion__item p,
.store-accordion__content {
	padding: 0 0 18px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--store-muted);
}

/* ---------- 08 Jiná prodejna ---------- */

.store-other {
	padding: 0 0 48px;
}

.store-other__box {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 20px;
	border-radius: 16px;
	background-color: var(--store-gray);
}

.store-other__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--store-green);
}

.store-other__box .store-btn {
	margin-top: 4px;
}

/* ---------- Spodní lišta (mobil) ---------- */

.store-bar {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 90;
	display: flex;
	gap: 8px;
	padding: 10px 12px calc(14px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--store-border);
	background-color: #fff;
	box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
}

.store-bar__item {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	min-height: 51px;
	border-radius: 10px;
	font-size: 12px;
	font-weight: 700;
	color: var(--store-green);
	text-decoration: none;
}

.store-bar__item--primary {
	background-color: var(--store-orange);
	color: #fff;
}

.store-bar__item--primary:hover {
	color: #fff;
}

/* Rezerva, aby lišta nepřekryla konec patičky. */
body:has(.store-bar) {
	padding-bottom: 76px;
}

/* =================================================================== */

/* Mobil – odchylky mobilního rámu Figmy (112:1845) od desktopu, které nejdou
   odvodit ze společných pravidel výše. */
@media (max-width: 989px) {

	.store .store-desktop-only {
		display: none !important;
	}

	.store-h2,
	.store-h3 {
		font-size: 30px;
		line-height: 1.15;
	}

	.store-lead {
		font-size: 15px;
		line-height: 1.5;
	}

	.store-form__title {
		font-size: 26px;
	}

	/* 01 Úvod + 02 Kontakt */

	.store-panel {
		gap: 8px;
	}

	.store-panel__meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	.store-rating {
		order: -1;
		font-size: 14px;
	}

	.store-open {
		padding: 8px 14px 8px 12px;
	}

	.store-panel__meta + *,
	.store-panel__title + .store-strip,
	.store-panel__title + .store-contact {
		margin-top: 16px;
	}

	.store-strip + .store-strip,
	.store-strip + .store-contact {
		margin-top: 4px;
	}

	.store-strip {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
		font-size: 16px;
		line-height: normal;
	}

	.store-strip__head {
		gap: 10px;
	}

	.store-strip__text {
		flex: none;
		min-width: 0;
	}

	.store-strip__link {
		margin: 0;
		font-size: 14px;
		text-decoration: underline;
	}

	.store-strip--notice .store-strip__link {
		color: var(--store-text);
	}

	.store-contact {
		gap: 20px;
		border: 0;
		background-color: #f4f3ee;
	}

	.store-contact__heading {
		margin: 0;
		font-style: italic;
		font-weight: 800;
	}

	.store-contact__phone {
		font-size: 20px;
	}

	.store-contact__email,
	.store-contact__address {
		font-size: 15px;
	}

	.store-contact__email {
		font-weight: 600;
	}

	.store-contact__email a {
		color: inherit;
		text-decoration: none;
	}

	.store-contact__expanded {
		gap: 8px;
		padding-top: 16px;
		border-top: 1px solid var(--store-border);
	}

	.store-contact__label {
		font-weight: 700;
		color: var(--store-green);
	}

	.store-hours {
		margin: -4px 0;
		font-size: 14px;
	}

	.store-hours td {
		padding: 4px 0;
	}

	.store-hours td:first-child {
		width: 82px;
		font-weight: 700;
	}

	.store-hours tr.is-closed td:last-child {
		color: var(--store-muted);
	}

	.store-cta {
		gap: 20px;
		margin-top: 0;
	}

	/* 03 Výhody */

	.store-benefit {
		border: 0;
	}

	/* 04 Co u nás najdete – mobil bez podnadpisu */

	.store-range .store-head .store-lead {
		display: none;
	}

	.store-card__img {
		border-radius: 12px;
	}

	.store-card__more {
		font-size: 14px;
	}

	/* 05 Galerie */

	.store-gallery {
		background-color: #f9f8f4;
	}

	.store-gallery__item {
		border-radius: 12px;
	}

	/* 06 Recenze */

	.store-reviews__rating > span:not(.store-stars) {
		font-size: 13px;
	}

	.store-review {
		background-color: #f4f3ee;
	}

	.store-review .store-stars {
		font-size: 16px;
	}

	.store-review p {
		font-size: 14px;
		line-height: 1.55;
	}

	.store-review footer {
		gap: 4px;
		font-size: 13px;
		font-weight: 700;
		color: var(--store-green);
	}

	.store-reviews__cta .store-muted {
		display: none;
	}

	/* 06b Formulář */

	.store-offer {
		padding: 48px 0;
		background-color: #f9f8f4;
	}

	.store-contacts__title {
		font-size: 17px;
	}

	.store-form {
		gap: 20px;
		padding: 28px 20px;
	}

	.store-form > .store-muted {
		font-size: 16px;
	}

	/* 07 Jak se k nám dostanete */

	.store-route {
		background-color: #f9f8f4;
	}

	.store-route__address {
		gap: 10px;
	}

	.store-accordion__item:last-child {
		border-bottom: 0;
	}

	.store-accordion__head {
		gap: 10px;
		padding: 16px 0;
		font-size: 15px;
	}

	.store-accordion__item p,
	.store-accordion__content {
		padding-bottom: 16px;
		font-size: 14px;
	}

	/* 08 Jiná prodejna */

	.store-other__box {
		background-color: #f4f3ee;
	}

	.store-other__box > div {
		display: flex;
		flex-direction: column;
		gap: 12px;
	}

	.store-other__title {
		font-size: 17px;
	}

	.store-other__box .store-muted {
		font-size: 14px;
	}

	.store-other__box .store-btn {
		margin-top: 0;
	}
}

/* =================================================================== */

/* Tablet – Figma ho nemá. Od 576px už .container není přes celou šířku,
   takže fotka „na hranu" by přečnívala obsah; od 768px se rozložení
   přibližuje desktopu, aby nebyla roztažená mobilní verze. */
@media (min-width: 576px) and (max-width: 989px) {

	.store-hero {
		height: 360px;
		margin: 0;
		border-radius: 20px;
	}
}

@media (min-width: 768px) and (max-width: 989px) {

	.store-hero {
		height: 420px;
	}

	.store-cta {
		flex-direction: row;
	}

	.store-cta .store-btn {
		flex: 1 1 0;
	}

	.store-benefits__list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.store-gallery__all {
		display: block;
	}

	.store-gallery__all-mobile {
		display: none;
	}

	.store-gallery__grid {
		grid-template-columns: 2fr 1fr 1fr;
	}

	.store-gallery__item {
		height: auto;
		aspect-ratio: 342 / 248;
	}

	.store-gallery__item:first-child {
		grid-row: 1 / 3;
		grid-column: auto;
		height: auto;
		aspect-ratio: auto;
	}

	.store-gallery__item:nth-child(n+4) {
		display: block;
	}

	.store-gallery__item:nth-child(n+6),
	.store-gallery__item.is-hidden {
		display: none;
	}

	.store-reviews__cta .store-btn,
	.store-route__btn--mobile {
		align-self: center;
		width: auto;
	}

	.store-route__btn--mobile {
		align-self: flex-start;
	}

	.store-other__box {
		flex-direction: row;
		align-items: center;
		gap: 24px;
	}

	.store-other__box > div {
		flex: 1 1 0;
	}

	.store-other__box .store-btn {
		flex-shrink: 0;
	}

	/* Karty kontaktů na šířku formuláře pod nimi (jinak 480px vlevo). */
	.store-contacts__list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: none;
	}
}

/* =================================================================== */

@media (min-width: 990px) {

	.store .store-mobile-only {
		display: none !important;
	}

	.store-title {
		font-size: 56px;
		line-height: 1.05;
	}

	.store-h2 {
		font-size: 48px;
	}

	.store-h3 {
		font-size: 36px;
	}

	.store-form__title {
		font-size: 32px;
	}

	.store-lead {
		font-size: 18px;
		line-height: 1.5;
	}

	.store-section {
		padding: 96px 0;
	}

	.store-head {
		margin-bottom: 40px;
	}

	/* 01 Úvod */

	.store-intro {
		padding: 32px 0 48px;
	}

	.store-intro__row {
		flex-direction: row;
		align-items: stretch;
		gap: 32px;
	}

	.store-hero {
		flex: 1 1 0;
		min-width: 0;
		height: auto;
		min-height: 520px;
		margin: 0;
		border-radius: 20px;
	}

	/* Štítek galerie vpravo dole – na mobilu ve Figmě není. */
	.store-hero__count {
		position: absolute;
		right: 32px;
		bottom: 32px;
		display: inline-flex;
		align-items: center;
		gap: 8px;
		padding: 16px 14px;
		border-radius: 8px;
		background-color: #fff;
		font-size: 14px;
		font-weight: 600;
		line-height: normal;
		color: var(--store-green);
		text-decoration: none;
	}

	.store-contact__hours-title {
		display: none;
		font-weight: 600;
	}

	.store-contact__more:has(.store-collapse.is-open) .store-contact__hours-summary {
		display: none;
	}

	.store-contact__more:has(.store-collapse.is-open) .store-contact__hours-title {
		display: inline;
	}

	.store-hero__tour {
		bottom: 32px;
		left: 32px;
		gap: 12px;
		padding: 16px 28px 16px 24px;
		font-size: 16px;
	}

	.store-panel {
		flex: 0 0 min(552px, 46%);
		gap: 20px;
		padding: 36px;
		border-radius: 20px;
		background-color: var(--store-gray);
	}

	.store-panel__title .store-muted {
		font-size: 16px;
	}

	.store-strip {
		padding: 12px 16px;
		font-size: 16px;
	}

	.store-contact {
		padding: 0;
		border: 0;
		border-radius: 0;
	}

	.store-contact__heading {
		display: none;
	}

	.store-toggle {
		display: inline-flex;
		align-self: flex-start;
		margin-top: 12px;
	}

	.store-contact__more .store-collapse:not(.is-open) {
		grid-template-rows: 0fr;
	}

	.store-contact__more .store-collapse:not(.is-open) > .store-collapse__inner {
		visibility: hidden;
	}

	.store-cta {
		flex-direction: row;
	}

	.store-cta .store-btn {
		flex: 1 1 0;
		padding-right: 16px;
		padding-left: 16px;
	}

	/* 02 Kotevní menu */

	.store-anchors {
		position: sticky;
		top: var(--store-header-h, 0px);
		z-index: 50;
		display: block;
		border-top: 1px solid var(--store-border);
		border-bottom: 1px solid var(--store-border);
		background-color: #fff;
	}

	.store-anchors__inner {
		display: flex;
		align-items: center;
		gap: 40px;
	}

	.store-anchors__links {
		display: flex;
		flex: 1 1 0;
		flex-wrap: wrap;
		align-items: center;
		gap: 8px 32px;
		padding: 22px 0;
	}

	.store-anchors__label {
		font-size: 14px;
		font-weight: 700;
		color: var(--store-muted);
	}

	.store-anchors__links a {
		font-size: 15px;
		font-weight: 600;
		color: var(--store-green);
		text-decoration: underline;
		text-underline-position: from-font;
	}

	.store-anchors__links a:hover {
		color: var(--store-orange);
	}

	/* 03 Výhody */

	.store-benefits {
		padding: 64px 0;
	}

	.store-benefits__head {
		flex-direction: row;
		align-items: baseline;
		gap: 40px;
		margin-bottom: 32px;
	}

	.store-benefits__head .store-h3 {
		white-space: nowrap;
	}

	.store-benefits__list {
		flex-direction: row;
		gap: 24px;
	}

	.store-benefit {
		flex: 1 1 0;
		gap: 14px;
		padding: 0;
		border: 0;
		background: none;
	}

	.store-benefit img {
		width: 40.04px;
		height: 40.04px;
	}

	/* 04 Co u nás najdete */

	.store-arrows {
		display: flex;
	}

	.store-range .store-card {
		gap: 16px;
		width: 400px;
	}

	.store-card__img {
		height: 300px;
	}

	.store-card__title {
		font-size: 22px;
	}

	.store-card__text {
		display: block;
	}

	.store-dots {
		justify-content: center;
		margin-top: 40px;
	}

	.store-dot {
		width: 10px;
		height: 10px;
	}

	.store-dot.is-active {
		width: 32px;
	}

	/* 05 Galerie – velká fotka vlevo, 2×2 vpravo (708 : 342 : 342 při 1440px) */

	.store-gallery__all {
		display: block;
	}

	.store-gallery__all-mobile {
		display: none;
	}

	.store-gallery__grid {
		grid-template-columns: 708fr 342fr 342fr;
		grid-template-rows: auto auto;
		gap: 24px;
	}

	.store-gallery__item {
		height: auto;
		aspect-ratio: 342 / 248;
	}

	.store-gallery__item:first-child {
		grid-row: 1 / 3;
		grid-column: auto;
		height: auto;
		aspect-ratio: auto;
	}

	.store-gallery__item:nth-child(n+4) {
		display: block;
	}

	.store-gallery__item:nth-child(n+6),
	.store-gallery__item.is-hidden {
		display: none;
	}

	/* 06 Recenze */

	.store-reviews .store-head {
		flex-direction: row;
		align-items: flex-end;
	}

	.store-reviews__rating {
		gap: 10px;
	}

	.store-reviews__rating strong {
		font-size: 28px;
	}

	.store-reviews__rating .store-stars {
		font-size: 22px;
	}

	.store-reviews__list {
		gap: 24px;
		margin: 0;
		padding: 0;
		overflow: visible;
	}

	.store-review {
		flex: 1 1 0;
		gap: 16px;
		padding: 32px;
	}

	.store-review .store-stars {
		font-size: 20px;
	}

	.store-review p {
		font-size: 16px;
		line-height: 1.6;
	}

	.store-review footer {
		gap: 8px;
		font-size: 15px;
	}

	.store-reviews__cta {
		margin-top: 40px;
	}

	.store-reviews__cta .store-btn {
		width: auto;
	}

	/* 06b Formulář */

	.store-offer__row {
		flex-direction: row;
		align-items: center;
		gap: clamp(40px, 6vw, 96px);
	}

	.store-offer__text {
		flex: 1 1 0;
		min-width: 0;
	}

	.store-offer__text > .store-h2,
	.store-offer__text > .store-lead {
		display: block;
	}

	.store-offer__text > .store-contact__phone {
		display: flex;
	}

	.store-contacts {
		gap: 16px;
		padding-top: 20px;
	}

	.store-form {
		flex: 0 0 min(560px, 48%);
		gap: 20px;
		padding: 40px;
	}

	.store-form > .store-muted {
		font-size: 16px;
	}


	/* 07 Jak se k nám dostanete */

	.store-route__row {
		flex-direction: row;
		align-items: flex-start;
		gap: 48px;
	}

	.store-route__map {
		flex: 1 1 0;
		min-width: 0;
	}

	.store-route__map .gmw-single-location-wrapper div.gmw-map-wrapper {
		height: 520px !important;
	}

	/* Aspoň na výšku mapy – rozbalení akordeonu pak neposune sekce pod ním. */
	.store-route__text {
		display: flex;
		flex: 0 0 min(500px, 42%);
		flex-direction: column;
		align-items: flex-start;
		gap: 24px;
		min-height: 520px;
	}

	.store-route__address {
		font-size: 18px;
	}

	.store-accordion {
		align-self: stretch;
	}

	.store-accordion__item:last-child {
		border-bottom: 0;
	}

	.store-route__btn--mobile {
		display: none;
	}

	.store-route__btn--desktop {
		display: inline-flex;
	}

	/* 08 Jiná prodejna */

	.store-other {
		padding-bottom: 72px;
	}

	.store-other__box {
		flex-direction: row;
		align-items: center;
		gap: 24px;
		padding: 24px 32px;
	}

	.store-other__box > div {
		flex: 1 1 0;
	}

	.store-other__box .store-muted {
		margin-top: 4px;
	}

	.store-other__box .store-btn {
		flex-shrink: 0;
		margin-top: 0;
	}

	/* Spodní lišta jen na mobilu */

	.store-bar {
		display: none;
	}

	body:has(.store-bar) {
		padding-bottom: 0;
	}
}

/* =================================================================== */
/* Patička detailu prodejny – Figma 127:1128 (desktop), 112:2003 (mobil) */

.store-footer {
	padding: 28px 0 24px;
	background-color: #263b32;
	font-family: 'Montserrat', sans-serif;
	line-height: 1.45;
	color: #fff;
}

.store-footer .container {
	padding-right: 24px;
	padding-left: 24px;
}

.store-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.store-footer p {
	margin: 0;
}

.store-footer a {
	color: inherit;
	text-decoration: none;
}

.store-footer__top {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 137px));
	gap: 24px 40px;
}

.store-footer__brand {
	display: flex;
	grid-column: 1 / -1;
	flex-direction: column;
	gap: 18px;
}

.store-footer__brand img {
	display: block;
}

.store-footer__social {
	display: flex;
	gap: 16px;
}

.store-footer__social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	transition: background-color 0.2s;
}

.store-footer__social a:hover {
	background-color: rgba(255, 255, 255, 0.1);
}

.store-footer__col ul {
	display: flex;
	flex-direction: column;
	gap: 9px;
	font-size: 13px;
}

.store-footer__title {
	margin-bottom: 9px !important;
	font-size: 14px;
	font-weight: 700;
}

.store-footer__col a {
	opacity: 0.83;
}

.store-footer__col a:hover {
	text-decoration: underline;
	opacity: 1;
}

.store-footer__cta {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.store-footer__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	padding: 0 12px;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 700;
	text-align: center;
	transition: background-color 0.2s, border-color 0.2s;
}

.store-footer__btn--primary {
	background-color: #ae571c;
}

.store-footer__btn--primary:hover {
	background-color: #8f4717;
}

.store-footer__btn--outline {
	border: 1px solid rgba(255, 255, 255, 0.55);
}

.store-footer__btn--outline:hover {
	border-color: #fff;
}

.store-footer__desktop {
	display: none;
}

.store-footer__bottom {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	font-size: 11px;
}

.store-footer__bottom > p {
	opacity: 0.65;
}

.store-footer__legal {
	display: flex;
	align-items: flex-start;
	gap: 20px;
}

/* custom.min.css stylizuje odkaz na předvolby cookies podle jeho id
   (šedá, 13px, margin-top 14px) – tady má vypadat jako ostatní odkazy. */
.store-footer__legal a#open_preferences_center {
	display: inline;
	margin: 0;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
}

.store-footer__legal a {
	opacity: 0.75;
}

/* Ve Figmě má první odkaz pevnou šířku – určuje, kde začíná druhý. */
.store-footer__legal a:first-child {
	min-width: 163px;
}

.store-footer__legal a:hover {
	text-decoration: underline;
	opacity: 1;
}

/* Velký telefon / malý tablet: 2×2 jako mobil, ale přes celou šířku obsahu
   (pevných 137px z Figmy platí pro 390px telefon). */
@media (min-width: 576px) and (max-width: 767px) {

	.store-footer .container {
		padding-right: 1.25rem;
		padding-left: 1.25rem;
	}

	.store-footer__top {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Tablet: čtyři sloupce pod logem místo mobilních 2×2. */
@media (min-width: 768px) and (max-width: 989px) {

	.store-footer .container {
		padding-right: 1.25rem;
		padding-left: 1.25rem;
	}

	.store-footer__top {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		column-gap: 24px;
	}

	.store-footer__social a {
		width: 36px;
		height: 36px;
	}

	.store-footer__social {
		gap: 12px;
	}

	.store-footer__bottom {
		flex-direction: row;
		justify-content: space-between;
		gap: 24px;
	}
}

@media (min-width: 990px) {

	.store-footer {
		padding: 40px 0 28px;
	}

	.store-footer .container {
		padding-right: 1.25rem;
		padding-left: 1.25rem;
	}

	/* Šířky sloupců podle Figmy při 1440px (280 / 180 / 220 / 200 / 256). */
	.store-footer__top {
		grid-template-columns: 280fr 180fr 220fr 200fr 256fr;
		column-gap: clamp(24px, 4vw, 76px);
	}

	.store-footer__brand {
		grid-column: auto;
		gap: 24px;
	}

	.store-footer__social {
		gap: 12px;
	}

	.store-footer__social a {
		width: 36px;
		height: 36px;
	}

	.store-footer__btn {
		font-size: 14px;
	}

	.store-footer__desktop {
		display: inline;
	}

	.store-footer__mobile {
		display: none;
	}

	.store-footer__legal a:first-child {
		min-width: 200px;
	}

	.store-footer__bottom {
		display: grid;
		grid-template-columns: 880fr 528fr;
		gap: 32px;
		margin-top: 28px;
		padding-top: 28px;
	}
}

@media (min-width: 1440px) {
	.store-footer .container {
		max-width: calc(90rem + 2.5rem);
	}
}

/* ---------- Virtuální prohlídka ---------- */

/* Kvůli overflow-x: clip na html nestačí zablokovat posouvání jen na body. */
html:has(.store-tour.show) {
	overflow: hidden;
}

.store-tour {
	top: var(--wp-admin--admin-bar--height, 0px);
	width: 100vw;
	height: calc(100% - var(--wp-admin--admin-bar--height, 0px));
	height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
	padding: 0 !important;
	font-family: 'Montserrat', sans-serif;
	color: var(--store-text);
}

.store-tour .modal-dialog {
	/* footer.php omezuje všechny modaly přes max-width s !important. */
	max-width: 1320px !important;
	width: calc(100% - 48px);
	height: calc(100% - 48px);
	min-height: 0;
	margin: 24px auto;
	display: flex;
	align-items: center;
}

.store-tour .modal-content {
	height: 100%;
	max-height: 820px;
	border: 0;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 24px 80px rgb(0 0 0 / 24%);
}

.store-tour__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-shrink: 0;
	padding: 16px 20px;
	border-bottom: 1px solid var(--store-border);
}

.store-tour__heading {
	min-width: 0;
}

.store-tour__title {
	margin: 0;
	font-family: inherit;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--store-green);
}

.store-tour__subtitle {
	margin: 4px 0 0;
	font-size: 13px;
	line-height: 1.45;
	color: var(--store-muted);
}

.store-tour__actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}

.store-tour__external,
.store-tour__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	min-width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--store-border);
	border-radius: 10px;
	color: var(--store-green);
	background: #fff;
	text-decoration: none;
	cursor: pointer;
}

.store-tour__external {
	gap: 8px;
	padding: 0 12px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
}

.store-tour__external:hover,
.store-tour__close:hover {
	color: var(--store-green);
	background: var(--store-gray);
}

.store-tour__external:focus-visible,
.store-tour__close:focus-visible {
	outline: 2px solid var(--store-orange);
	outline-offset: 2px;
}

.store-tour__viewport {
	position: relative;
	flex: 1;
	min-height: 0;
	background: var(--store-gray);
}

.store-tour__viewport iframe {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

@media (max-width: 767px) {
	.store-tour .modal-dialog {
		width: 100%;
		height: 100%;
		margin: 0;
	}

	.store-tour .modal-content {
		max-height: none;
		padding-bottom: env(safe-area-inset-bottom, 0px);
		border-radius: 0;
	}

	.store-tour__header {
		align-items: flex-start;
		gap: 12px;
		padding: max(12px, env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) 12px max(16px, env(safe-area-inset-left, 0px));
	}

	.store-tour__title {
		font-size: 16px;
	}

	.store-tour__subtitle {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		overflow: hidden;
	}

	.store-tour__external {
		padding: 0;
	}

	.store-tour__external span {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.store-collapse,
	.store-collapse__inner,
	.store-toggle__icon,
	.store-accordion__sign::before,
	.store-accordion__sign::after {
		transition: none !important;
	}
}
