/* Local Visibility Kit – front end */
.lvk-front {
	--lvk-bg: #eff4fb;
	--lvk-heading: #004aad;
	--lvk-accent: #f04e29;
	--lvk-text: #1d2533;
	--lvk-muted: #5b6678;
	--lvk-line: #dbe3ef;
	--lvk-ok: #1f9d55;
	--lvk-radius: 16px;
	color: var(--lvk-text);
	line-height: 1.55;
	font-size: 16px;
}
.lvk-front *, .lvk-front *::before, .lvk-front *::after { box-sizing: border-box; }
.lvk-front [hidden] { display: none !important; }
.lvk-front--contact {
	--lvk-w: min(1180px, calc(100vw - 32px));
	display: grid; gap: 22px; margin-bottom: 32px;
	/* Breaks out of a narrow theme column, always centred. */
	width: var(--lvk-w); max-width: none !important;
	margin-left: calc((100% - var(--lvk-w)) / 2) !important; margin-right: 0 !important;
}
.lvk-front .lvk-h, .lvk-front .lvk-h3, .lvk-front .lvk-h4 { color: var(--lvk-heading); margin: 0; line-height: 1.25; font-weight: 800; letter-spacing: -.01em; }
.lvk-front .lvk-h { font-size: clamp(24px, 3vw, 32px); }
.lvk-front .lvk-h3 { font-size: 20px; display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.lvk-front .lvk-h4 { font-size: 16px; display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.lvk-front .lvk-h3 .lvk-ico { color: var(--lvk-accent); flex: none; }
.lvk-front .lvk-h4 .lvk-ico { color: var(--lvk-heading); width: 18px; height: 18px; flex: none; }
.lvk-h-sub { display: block; font-size: .55em; font-weight: 700; color: var(--lvk-muted); margin-top: 2px; }
.lvk-front p { margin: 0 0 10px; }
.lvk-muted { color: var(--lvk-muted); }
.lvk-ico { display: inline-block; vertical-align: middle; }

/* Cards */
.lvk-front .lvk-card { background: #fff; border: 1px solid var(--lvk-line); border-radius: var(--lvk-radius); padding: 26px; box-shadow: 0 6px 24px rgba(0, 40, 100, .06); }
.lvk-front .lvk-card + .lvk-card { margin-top: 0; }

/* Hero / business card */
.lvk-card--hero {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 22px;
	background: linear-gradient(135deg, var(--lvk-bg) 0%, #fff 75%) !important;
}
.lvk-hero-main { display: flex; align-items: center; gap: 20px; min-width: 0; flex: 1 1 380px; }
.lvk-logo-wrap { flex: none; background: #fff; border: 1px solid var(--lvk-line); border-radius: 14px; padding: 10px; display: flex; align-items: center; justify-content: center; max-width: 160px; }
.lvk-front img.lvk-logo { display: block; max-height: 72px; max-width: 140px; width: auto; height: auto; }
.lvk-hero-text { min-width: 0; }
.lvk-tagline { color: var(--lvk-muted); margin: 6px 0 10px !important; font-size: 16px; }

/* Open now badge */
.lvk-badge { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; padding: 6px 13px 6px 11px; border-radius: 99px; font-size: 14px; background: #f1f4f8; color: var(--lvk-text); line-height: 1.3; }
.lvk-badge.is-open { background: color-mix(in srgb, var(--lvk-ok) 12%, white); }
.lvk-badge.is-open .lvk-badge-state { color: #157a41; }
.lvk-badge.is-closed .lvk-badge-state { color: #b3261e; }
.lvk-dot { width: 9px; height: 9px; border-radius: 50%; background: #b3261e; flex: none; }
.lvk-badge.is-open .lvk-dot { background: var(--lvk-ok); box-shadow: 0 0 0 0 rgba(31, 157, 85, .5); animation: lvk-pulse 2.2s infinite; }
.lvk-badge-next { color: var(--lvk-muted); }
.lvk-front--hours .lvk-badge, .lvk-card .lvk-h3 + .lvk-badge { margin-bottom: 14px; }
@keyframes lvk-pulse { 0% { box-shadow: 0 0 0 0 rgba(31, 157, 85, .45); } 70% { box-shadow: 0 0 0 8px rgba(31, 157, 85, 0); } 100% { box-shadow: 0 0 0 0 rgba(31, 157, 85, 0); } }

/* Buttons */
.lvk-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.lvk-front .lvk-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 12px 18px; border-radius: 11px; font-weight: 700; font-size: 15px; line-height: 1.2;
	text-decoration: none !important; border: 2px solid var(--lvk-heading); color: var(--lvk-heading) !important; background: #fff;
	transition: background .15s, color .15s, transform .15s, box-shadow .15s; cursor: pointer; font-family: inherit;
}
.lvk-front .lvk-btn:hover { background: var(--lvk-heading); color: #fff !important; }
.lvk-front .lvk-btn--main { background: var(--lvk-accent); border-color: var(--lvk-accent); color: #fff !important; box-shadow: 0 8px 20px color-mix(in srgb, var(--lvk-accent) 28%, transparent); }
.lvk-front .lvk-btn--main:hover { background: var(--lvk-accent); filter: brightness(1.07); transform: translateY(-1px); }
.lvk-front .lvk-btn--wa { border-color: #1faa59; color: #157a41 !important; }
.lvk-front .lvk-btn--wa:hover { background: #1faa59; color: #fff !important; }
.lvk-front .lvk-btn:focus-visible, .lvk-front a:focus-visible, .lvk-front button:focus-visible { outline: 3px solid var(--lvk-accent); outline-offset: 2px; }
.lvk-btns.is-small .lvk-btn { padding: 8px 12px; font-size: 14px; border-width: 1px; box-shadow: none; }
.lvk-btns.is-small .lvk-btn--main { background: #fff; color: var(--lvk-heading) !important; border-color: var(--lvk-line); }
.lvk-btns.is-small .lvk-btn--main:hover { background: var(--lvk-heading); color: #fff !important; filter: none; }
.lvk-btns.is-small .lvk-ico { width: 16px; height: 16px; }

/* Layout of the contact page */
.lvk-cols { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 22px; align-items: start; }
.lvk-cols.is-single { grid-template-columns: 1fr; }
.lvk-col-side { display: grid; gap: 22px; }
.lvk-cols.is-single .lvk-col-side { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

/* Address, hours, departments */
.lvk-address { font-style: normal; margin: 0 0 10px; }
.lvk-textlink { display: inline-flex; align-items: center; gap: 6px; color: var(--lvk-heading) !important; font-weight: 700; text-decoration: none !important; }
.lvk-textlink:hover { text-decoration: underline !important; }
.lvk-textlink .lvk-ico { width: 16px; height: 16px; color: var(--lvk-accent); }
.lvk-sub { border-top: 1px solid var(--lvk-line); margin-top: 14px; padding-top: 14px; }
.lvk-sub p { color: var(--lvk-muted); font-size: 15px; }
.lvk-hours-table { width: 100%; border-collapse: collapse; margin: 0; font-size: 15px; border: 0; }
.lvk-hours-table th, .lvk-hours-table td { padding: 7px 10px; text-align: left; border: 0; border-bottom: 1px solid #edf1f7; background: none; font-weight: 400; }
.lvk-hours-table td { text-align: right; font-variant-numeric: tabular-nums; }
.lvk-nw { white-space: nowrap; }
.lvk-hours-table tr.is-today th, .lvk-hours-table tr.is-today td { background: var(--lvk-bg); font-weight: 700; color: var(--lvk-heading); }
.lvk-hours-table tr.is-today th { border-radius: 8px 0 0 8px; }
.lvk-hours-table tr.is-today td { border-radius: 0 8px 8px 0; }
.lvk-note { color: var(--lvk-muted); font-size: 14px; margin: 12px 0 0 !important; }
.lvk-deps { display: grid; gap: 16px; }
.lvk-dep + .lvk-dep { border-top: 1px solid var(--lvk-line); padding-top: 16px; }
.lvk-dep .lvk-muted { font-size: 14px; margin-bottom: 8px; }
.lvk-dep .lvk-badge { margin-bottom: 8px; font-size: 13px; }
.lvk-details { margin-top: 10px; }
.lvk-details summary { cursor: pointer; color: var(--lvk-heading); font-weight: 700; font-size: 14px; }

/* Why choose us */
.lvk-why { background: var(--lvk-bg); border-radius: var(--lvk-radius); padding: 28px; }
.lvk-why-list { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }
.lvk-why-list li { display: flex; gap: 12px; align-items: flex-start; background: #fff; border-radius: 12px; padding: 16px; margin: 0 !important; box-shadow: 0 2px 10px rgba(0, 40, 100, .05); }
.lvk-why-ico { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--lvk-accent); color: #fff; display: flex; align-items: center; justify-content: center; }
.lvk-why-ico .lvk-ico { width: 16px; height: 16px; stroke-width: 3; }
.lvk-why-list strong { display: block; color: var(--lvk-text); }
.lvk-why-text { display: block; color: var(--lvk-muted); font-size: 14px; margin-top: 2px; }

/* Social */
.lvk-social { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.lvk-front .lvk-btn--google .lvk-ico { color: #f5a623; fill: #f5a623; }
.lvk-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.lvk-chips-label { color: var(--lvk-muted); font-size: 14px; margin-right: 2px; }
.lvk-front .lvk-chip { border: 1px solid var(--lvk-line); border-radius: 99px; padding: 6px 14px; font-size: 14px; font-weight: 600; color: var(--lvk-heading) !important; text-decoration: none !important; background: #fff; }
.lvk-front .lvk-chip:hover { border-color: var(--lvk-heading); background: var(--lvk-bg); }

/* Legal line */
.lvk-front .lvk-legal { font-size: 13px; color: var(--lvk-muted); margin: 0; }
.lvk-front--contact .lvk-legal { text-align: center; border-top: 1px solid var(--lvk-line); padding-top: 16px; }

/* Form */
.lvk-form { display: grid; gap: 4px; }
.lvk-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.lvk-front .lvk-f { margin: 0 0 12px; display: flex; flex-direction: column; gap: 6px; }
.lvk-front .lvk-f > label { font-weight: 700; font-size: 14px; }
.lvk-req { color: var(--lvk-accent); margin-left: 2px; }
.lvk-opt { color: var(--lvk-muted); font-weight: 400; }
.lvk-front .lvk-form input[type=text], .lvk-front .lvk-form input[type=email], .lvk-front .lvk-form input[type=tel], .lvk-front .lvk-form select, .lvk-front .lvk-form textarea {
	width: 100%; border: 1px solid #c3cddb; border-radius: 10px; padding: 11px 13px; font: inherit; font-size: 16px; background: #fff; color: var(--lvk-text); margin: 0; min-height: 46px;
}
.lvk-front .lvk-form textarea { resize: vertical; min-height: 140px; }
.lvk-front .lvk-form input:focus, .lvk-front .lvk-form select:focus, .lvk-front .lvk-form textarea:focus { border-color: var(--lvk-heading); box-shadow: 0 0 0 3px color-mix(in srgb, var(--lvk-heading) 15%, transparent); outline: none; }
.lvk-front .lvk-form [aria-invalid=true] { border-color: #b3261e; }
.lvk-err { color: #b3261e; font-size: 13px; font-weight: 600; }
.lvk-consent label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400 !important; font-size: 14px; cursor: pointer; }
.lvk-consent input { margin-top: 4px; width: 18px; height: 18px; flex: none; accent-color: var(--lvk-heading); }
.lvk-consent a { color: var(--lvk-heading); }
.lvk-front .lvk-btn--send { width: 100%; padding: 15px 20px; font-size: 16px; }
.lvk-front .lvk-btn--send[disabled] { opacity: .65; cursor: wait; }
.lvk-small { font-size: 12px; color: var(--lvk-muted); margin: 6px 0 0 !important; }
.lvk-form-msg { border-radius: 10px; padding: 12px 14px; margin-bottom: 14px; font-weight: 600; background: var(--lvk-bg); }
.lvk-form-msg.is-ok { background: color-mix(in srgb, var(--lvk-ok) 12%, white); color: #157a41; }
.lvk-form-msg.is-error { background: #fdecea; color: #8c1d18; }
.lvk-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Single parts placed on their own */
.lvk-front--open { display: inline-block; }
.lvk-front--legal { margin: 8px 0; }

@media (max-width: 860px) {
	.lvk-cols { grid-template-columns: 1fr; }
	.lvk-col-main { order: 2; }
}
@media (max-width: 560px) {
	.lvk-front .lvk-card, .lvk-why { padding: 20px 16px; }
	.lvk-row { grid-template-columns: 1fr; }
	.lvk-hero-main { flex-direction: column; align-items: flex-start; gap: 14px; }
	.lvk-card--hero .lvk-btns { width: 100%; }
	.lvk-card--hero .lvk-btn { flex: 1 1 calc(50% - 5px); padding: 12px 10px; }
}
@media (prefers-reduced-motion: reduce) {
	.lvk-badge.is-open .lvk-dot { animation: none; }
	.lvk-front .lvk-btn { transition: none; }
}

/* =====================================================================
 * Contact page layout (head, tiles, two columns)
 * ===================================================================== */
.lvk-front {
	--lvk-accent-soft: color-mix(in srgb, var(--lvk-accent) 10%, transparent);
	--lvk-border: rgba(0, 0, 0, .08);
}
.lvk-front .lvk-head { display: flex; align-items: center; gap: 22px; margin-bottom: 6px; }
.lvk-head-logo { flex: none; }
.lvk-head-logo img.lvk-logo { max-height: 84px; max-width: 180px; width: auto; height: auto; display: block; }
.lvk-front .lvk-title { color: var(--lvk-heading); font-weight: 900; line-height: 1.1; font-size: clamp(30px, 4.5vw, 46px); margin: 0 0 10px; letter-spacing: -.01em; }
.lvk-front .lvk-intro-text { font-size: 18px; margin: 0; color: var(--lvk-muted); }

/* Tiles */
.lvk-quick { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; }
.lvk-front .lvk-q {
	display: flex; align-items: center; gap: 14px; padding: 18px 20px; min-width: 0;
	background: #fff; border: 1px solid var(--lvk-border); border-radius: var(--lvk-radius);
	text-decoration: none !important; color: var(--lvk-text) !important; transition: transform .15s, box-shadow .15s;
}
.lvk-front a.lvk-q:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0, 40, 100, .1); }
.lvk-q-text { min-width: 0; }
.lvk-q strong { display: block; color: var(--lvk-heading); font-size: 18px; line-height: 1.25; }
.lvk-q small { display: block; font-size: 14px; color: var(--lvk-muted); overflow-wrap: anywhere; }
.lvk-q-ico { width: 52px; height: 52px; border-radius: 50%; flex: none; display: grid; place-items: center; background: var(--lvk-accent); color: #fff; }
.lvk-q-ico .lvk-ico { width: 22px; height: 22px; }
.lvk-front .lvk-q.is-primary { background: var(--lvk-accent); border-color: var(--lvk-accent); box-shadow: 0 10px 24px color-mix(in srgb, var(--lvk-accent) 30%, transparent); }
.lvk-q.is-primary strong, .lvk-q.is-primary small { color: #fff; }
.lvk-q.is-primary .lvk-q-ico { background: #fff; color: var(--lvk-accent); }
.lvk-q-dot { width: 52px; height: 52px; flex: none; display: grid; place-items: center; }
.lvk-q-status .lvk-dot { width: 14px; height: 14px; }
.lvk-q-status.is-open strong { color: #157a41; }
.lvk-q-status.is-open .lvk-dot { background: var(--lvk-ok); animation: lvk-pulse 2.2s infinite; }
.lvk-q-status.is-closed strong { color: #b3261e; }

/* Two columns: info left, form right */
.lvk-main { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px; align-items: start; }
.lvk-main.no-form { grid-template-columns: 1fr; }
.lvk-col { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.lvk-front .lvk-box { background: #fff; border: 1px solid var(--lvk-border); border-radius: var(--lvk-radius); padding: 24px; }
.lvk-front .lvk-box-title { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; color: var(--lvk-heading); font-size: 20px; font-weight: 800; line-height: 1.25; }
.lvk-box-title .lvk-ico { color: var(--lvk-accent); }
.lvk-front .lvk-addr { margin: 0 0 12px; font-size: 17px; }
.lvk-addr strong { color: var(--lvk-heading); }
.lvk-front .lvk-addr-note { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 10px; font-size: 15px; }
.lvk-addr-note .lvk-ico { width: 18px; height: 18px; color: var(--lvk-accent); flex: none; margin-top: 2px; }
.lvk-front .lvk-line { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: 17px; font-weight: 700; }
.lvk-line .lvk-ico { width: 18px; height: 18px; color: var(--lvk-accent); flex: none; }
.lvk-front .lvk-line a { color: var(--lvk-heading) !important; text-decoration: none; overflow-wrap: anywhere; }
.lvk-front .lvk-line a:hover { color: var(--lvk-accent) !important; }
.lvk-front .lvk-route-link { display: inline-block; margin-top: 6px; color: var(--lvk-accent) !important; font-weight: 700; text-decoration: none !important; }
.lvk-front .lvk-route-link:hover { text-decoration: underline !important; }

/* Opening hours list */
.lvk-front .lvk-hours-list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.lvk-front .lvk-day { display: flex; justify-content: space-between; gap: 12px; padding: 11px 10px; margin: 0 !important; border-bottom: 1px solid var(--lvk-border); }
.lvk-day:last-child { border-bottom: 0; }
.lvk-day-time { font-weight: 700; color: var(--lvk-heading); text-align: right; font-variant-numeric: tabular-nums; }
.lvk-day.is-closed .lvk-day-time { font-weight: 400; color: var(--lvk-muted); }
.lvk-today-tag { display: none; font-style: normal; background: var(--lvk-accent); color: #fff; font-size: 12px; font-weight: 700; padding: 1px 8px; border-radius: 999px; margin-left: 8px; vertical-align: 2px; }
.lvk-day.is-today { background: var(--lvk-accent-soft); border-radius: 8px; border-bottom-color: transparent; }
.lvk-day.is-today .lvk-day-name { font-weight: 700; color: var(--lvk-heading); }
.lvk-day.is-today .lvk-today-tag { display: inline-block; }
.lvk-box .lvk-note { margin: 14px 0 0 !important; font-size: 15px; }

/* Form card */
.lvk-front .lvk-form-card { border-top: 6px solid var(--lvk-accent); box-shadow: 0 10px 30px rgba(0, 40, 100, .08); padding: clamp(20px, 3vw, 32px); }
.lvk-front .lvk-form-title { color: var(--lvk-heading); font-weight: 900; font-size: 26px; line-height: 1.2; margin: 0 0 20px; }
.lvk-front .lvk-f > label { font-size: 16px; color: var(--lvk-heading); }
.lvk-front .lvk-form input[type=text], .lvk-front .lvk-form input[type=email], .lvk-front .lvk-form input[type=tel], .lvk-front .lvk-form select, .lvk-front .lvk-form textarea { border: 2px solid rgba(0, 0, 0, .12); padding: 13px 15px; font-size: 17px; }
.lvk-front .lvk-form input:focus, .lvk-front .lvk-form select:focus, .lvk-front .lvk-form textarea:focus { border-color: var(--lvk-accent); box-shadow: 0 0 0 3px var(--lvk-accent-soft); }
.lvk-front .lvk-btn--send { padding: 17px 20px; font-size: 19px; border-radius: 10px; }

/* Departments inside a box */
.lvk-box .lvk-badge { font-size: 13px; }

@media (max-width: 900px) {
	.lvk-main { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.lvk-front .lvk-head { flex-direction: column; align-items: flex-start; gap: 14px; }
	.lvk-quick { grid-template-columns: 1fr 1fr; gap: 10px; }
	.lvk-front .lvk-q { flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px; }
	.lvk-q-ico, .lvk-q-dot { width: 42px; height: 42px; }
	.lvk-q-dot { place-items: center start; }
	.lvk-q strong { font-size: 16px; }
	.lvk-q small { font-size: 13px; }
	.lvk-front .lvk-box { padding: 18px; }
}

/* Fine-tuning */
.lvk-front .lvk-q strong, .lvk-front .lvk-day-name, .lvk-front .lvk-addr strong { font-weight: 800; }
.lvk-quick { grid-template-columns: repeat(auto-fit, minmax(195px, 1fr)); gap: 12px; }
.lvk-front .lvk-q { padding: 16px; gap: 12px; }
.lvk-q-ico, .lvk-q-dot { width: 46px; height: 46px; }
.lvk-q strong { font-size: 17px; }
.lvk-front .lvk-consent > label { color: var(--lvk-text) !important; font-weight: 400 !important; font-size: 15px !important; }
.lvk-front .lvk-day-time { font-weight: 800; }
.lvk-front .lvk-day.is-closed .lvk-day-time { font-weight: 400; }
@media (max-width: 700px) {
	.lvk-front--contact { width: auto; margin-left: 0 !important; }
}
@media (max-width: 560px) {
	.lvk-quick { grid-template-columns: 1fr 1fr; gap: 10px; }
	.lvk-front .lvk-q { flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px; }
	.lvk-q-ico, .lvk-q-dot { width: 40px; height: 40px; }
	.lvk-q strong { font-size: 15px; }
	.lvk-q small { font-size: 12px; }
}
@media (max-width: 560px) {
	.lvk-quick > .lvk-q-status:nth-child(odd) { grid-column: 1 / -1; flex-direction: row; align-items: center; }
}
