/*
Theme Name: Frupo Light
Theme URI: https://www.frupo.com/
Author: Računalništvo FRUPO, Andrej Lužar s.p.
Author URI: https://www.frupo.com/
Description: Light version of the Frupo theme for Računalništvo FRUPO: WhiteSmoke and Gainsboro with black and orange accents. Service cards, products, hero text, contact details and quick links are editable in the Customizer. Copies the Customizer settings from the dark Frupo theme once, on the first page load after activation. Works with the block editor and Elementor.
Version: 1.0.5
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: frupo-light
Tags: business, light, one-column, custom-logo, custom-menu, featured-images, translation-ready
*/

/* ------------------------------------------------------------------
   Tokens: WhiteSmoke + Gainsboro, black and orange accents
------------------------------------------------------------------ */
:root {
	--frupo-orange: #ed6d23;
	--frupo-orange-dark: #d05a16;      /* hover, large orange text, icons on light */
	--frupo-orange-text: #b04a0c;      /* small orange text (readable on light) */
	--frupo-orange-glow: rgba(237, 109, 35, .30);
	--frupo-ink: #111111;              /* black accents and text on orange */
	--frupo-bg: #f5f5f5;               /* WhiteSmoke */
	--frupo-surface: #dcdcdc;          /* Gainsboro */
	--frupo-line: #c9c9c9;
	--frupo-heading: #111111;
	--frupo-text: #2b2b2b;
	--frupo-muted: #5c5c5c;
	--frupo-radius: 14px;
	--frupo-shadow: 0 14px 34px rgba(0, 0, 0, .10);
	--frupo-max: 1180px;
	--frupo-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--frupo-font-head: "Poppins", var(--frupo-font);
}

/* ------------------------------------------------------------------
   Base
------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; background: var(--frupo-bg); }

body {
	margin: 0;
	font-family: var(--frupo-font);
	font-size: 17px;
	line-height: 1.65;
	color: var(--frupo-text);
	background: var(--frupo-bg);
	-webkit-font-smoothing: antialiased;
}

::selection { background: var(--frupo-orange); color: var(--frupo-ink); }

img { max-width: 100%; height: auto; display: block; }

a { color: var(--frupo-orange-text); text-decoration: none; transition: color .2s; }
a:hover, a:focus { color: var(--frupo-ink); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--frupo-font-head);
	color: var(--frupo-heading);
	line-height: 1.2;
	margin: 0 0 .6em;
	font-weight: 700;
}
h1 { font-size: clamp(2rem, 4.5vw, 3.4rem); letter-spacing: -.02em; }
h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); letter-spacing: -.01em; }
h3 { font-size: 1.25rem; }

p { margin: 0 0 1.2em; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.screen-reader-text:focus {
	clip: auto; width: auto; height: auto;
	top: 8px; left: 8px; z-index: 1000;
	padding: 10px 16px;
	background: var(--frupo-orange); color: var(--frupo-ink);
	border-radius: 6px;
}

:focus-visible { outline: 3px solid var(--frupo-orange); outline-offset: 2px; }

.container {
	width: 100%;
	max-width: var(--frupo-max);
	margin: 0 auto;
	padding: 0 20px;
}

.text-orange { color: var(--frupo-orange-dark); }

/* ------------------------------------------------------------------
   Buttons
------------------------------------------------------------------ */
.btn, .wp-block-button__link, button, input[type="submit"] {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding: .8em 1.6em;
	font: 600 1rem/1.2 var(--frupo-font);
	border: 2px solid var(--frupo-orange);
	border-radius: 999px;
	background: var(--frupo-orange);
	color: var(--frupo-ink);
	cursor: pointer;
	transition: background .2s, border-color .2s, color .2s, transform .2s, box-shadow .2s;
}
.btn:hover, .btn:focus, .wp-block-button__link:hover, button:hover, input[type="submit"]:hover {
	background: var(--frupo-orange-dark);
	border-color: var(--frupo-orange-dark);
	color: var(--frupo-ink);
	transform: translateY(-1px);
	box-shadow: 0 10px 24px var(--frupo-orange-glow);
}
.btn--ghost {
	background: transparent;
	color: var(--frupo-ink);
	border-color: var(--frupo-ink);
}
.btn--ghost:hover, .btn--ghost:focus {
	background: var(--frupo-ink);
	border-color: var(--frupo-ink);
	color: var(--frupo-bg);
	box-shadow: none;
}

/* ------------------------------------------------------------------
   Top bar (black accent)
------------------------------------------------------------------ */
.topbar {
	background: var(--frupo-ink);
	color: var(--frupo-surface);
	font-size: .875rem;
	font-weight: 500;
}
.topbar .container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	min-height: 40px;
	flex-wrap: wrap;
}
.topbar a { color: var(--frupo-surface); display: inline-flex; align-items: center; gap: 6px; }
.topbar a:hover { color: var(--frupo-orange); }
.topbar__contact, .topbar__links { display: flex; gap: 20px; flex-wrap: wrap; }
.topbar__links { list-style: none; margin: 0; padding: 0; }
.topbar svg { width: 15px; height: 15px; fill: var(--frupo-orange); }
@media (max-width: 640px) { .topbar__nav { display: none; } }

/* ------------------------------------------------------------------
   Header
------------------------------------------------------------------ */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(245, 245, 245, .94);
	backdrop-filter: saturate(180%) blur(10px);
	border-bottom: 1px solid var(--frupo-line);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }

.site-header .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 78px;
	gap: 20px;
}
.site-branding { display: flex; align-items: center; gap: 12px; }
.custom-logo-link { display: block; flex: none; }
.site-branding .custom-logo { max-height: 64px; width: auto; }
.frupo-default-logo { height: 60px; width: auto; }
@media (max-width: 560px) { .frupo-default-logo { height: 48px; } }
.site-title {
	font-family: var(--frupo-font-head);
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0;
	line-height: 1.1;
}
.site-title a { color: var(--frupo-ink); }
.site-description { margin: 0; font-size: .8rem; color: var(--frupo-muted); }
.site-branding__text { padding-left: 14px; border-left: 1px solid var(--frupo-line); }
@media (max-width: 560px) { .site-branding__text { display: none; } }

.main-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 6px;
}
.main-navigation li { position: relative; }
.main-navigation a {
	display: block;
	padding: 10px 14px;
	color: var(--frupo-ink);
	font-weight: 500;
	border-radius: 8px;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a { color: var(--frupo-orange-text); background: var(--frupo-surface); }

.main-navigation ul ul {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	flex-direction: column;
	align-items: stretch;
	padding: 8px;
	background: var(--frupo-bg);
	border: 1px solid var(--frupo-line);
	border-radius: 10px;
	box-shadow: var(--frupo-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: all .18s;
}
.main-navigation li:hover > ul,
.main-navigation li:focus-within > ul { opacity: 1; visibility: visible; transform: none; }

.menu-toggle {
	display: none;
	background: transparent;
	border: 0;
	color: var(--frupo-ink);
	padding: 8px;
}
.menu-toggle:hover { background: transparent; color: var(--frupo-orange-dark); transform: none; box-shadow: none; }
.menu-toggle svg { width: 28px; height: 28px; }

@media (max-width: 900px) {
	.menu-toggle { display: inline-flex; }
	.main-navigation .menu-wrap {
		display: none;
		position: absolute;
		left: 0; right: 0; top: 100%;
		background: var(--frupo-bg);
		border-bottom: 2px solid var(--frupo-orange);
		box-shadow: var(--frupo-shadow);
		padding: 10px 20px 20px;
	}
	.main-navigation.is-open .menu-wrap { display: block; }
	.main-navigation ul { flex-direction: column; align-items: stretch; }
	.main-navigation ul ul {
		position: static;
		opacity: 1; visibility: visible; transform: none;
		box-shadow: none; border: 0; background: transparent;
		padding: 0 0 0 14px;
	}
}

/* ------------------------------------------------------------------
   Hero
------------------------------------------------------------------ */
.hero {
	position: relative;
	overflow: hidden;
	padding: clamp(28px, 5vw, 40px) 0;
	background:
		radial-gradient(circle at 80% 35%, rgba(237, 109, 35, .16), transparent 45%),
		linear-gradient(180deg, var(--frupo-bg), var(--frupo-surface));
}
.hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(0, 0, 0, .045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0, 0, 0, .045) 1px, transparent 1px);
	background-size: 48px 48px;
	mask-image: radial-gradient(circle at 30% 50%, #000, transparent 70%);
	-webkit-mask-image: radial-gradient(circle at 30% 50%, #000, transparent 70%);
	pointer-events: none;
}
.hero .container {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1.2fr .8fr;
	align-items: center;
	gap: 40px;
}
.hero__eyebrow {
	display: inline-block;
	padding: 6px 14px;
	margin-bottom: 18px;
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--frupo-orange-text);
	border: 1px solid var(--frupo-orange);
	border-radius: 999px;
}
.hero h1 span { color: var(--frupo-orange-dark); }
.hero__lead { font-size: 1.15rem; color: var(--frupo-muted); max-width: 560px; }
.hero__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.hero__art { position: relative; display: flex; justify-content: center; }
.hero__art::before {
	content: "";
	position: absolute;
	left: 50%; top: 55%;
	width: 80%;
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: radial-gradient(circle, rgba(237, 109, 35, .18), transparent 65%);
	filter: blur(10px);
}
.hero__art img {
	position: relative;
	max-width: 340px;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 22px 30px rgba(0, 0, 0, .18));
}

@media (max-width: 900px) {
	.hero .container { grid-template-columns: 1fr; text-align: center; }
	.hero__lead { margin-left: auto; margin-right: auto; }
	.hero__actions { justify-content: center; }
	.hero__art { order: -1; }
	.hero__art img { max-width: 200px; }
}

/* ------------------------------------------------------------------
   Sections
------------------------------------------------------------------ */
.section { padding: clamp(20px, 3vw, 28px) 0 clamp(32px, 6vw, 50px); }
.section--alt { background: var(--frupo-surface); border-top: 1px solid var(--frupo-line); border-bottom: 1px solid var(--frupo-line); }
.section__head { text-align: center; max-width: 640px; margin: 0 auto 24px; }
.section__head h2 { margin-bottom: .3em; }
.section__head h2:last-child, .section__head p { margin-bottom: 0; }
.section__head p { color: var(--frupo-muted); }
.section__kicker {
	display: block;
	margin-bottom: 8px;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--frupo-orange-text);
}

/* Services */
.services {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
@media (max-width: 960px) { .services { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .services { grid-template-columns: 1fr; } }

.service-card {
	position: relative;
	padding: 32px 28px;
	background: var(--frupo-bg);
	border: 1px solid var(--frupo-line);
	border-radius: var(--frupo-radius);
	transition: transform .25s, box-shadow .25s, border-color .25s;
}
.service-card::after {
	content: "";
	position: absolute;
	left: 28px; right: 28px; bottom: 0;
	height: 3px;
	background: var(--frupo-orange);
	border-radius: 3px 3px 0 0;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s;
}
.service-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--frupo-shadow);
	border-color: var(--frupo-orange);
}
.service-card:hover::after { transform: scaleX(1); }
.service-card__icon {
	width: 58px; height: 58px;
	display: grid;
	place-items: center;
	margin-bottom: 20px;
	border-radius: 14px;
	background: var(--frupo-orange);
	color: var(--frupo-ink);
}
.service-card__icon svg { width: 30px; height: 30px; }
.service-card__icon img { width: 34px; height: 34px; object-fit: contain; }
.service-card h3 { margin-bottom: .4em; }
.service-card h3 a { color: inherit; }
.service-card h3 a::before { content: ""; position: absolute; inset: 0; }
.service-card p { margin: 0; color: var(--frupo-muted); white-space: pre-line; }

/* News / products carousel */
.news { position: relative; }
/* A single product sits in the middle instead of the left half. */
.news__track:has(> .news-card:only-child) { justify-content: center; }
.news__track {
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.news__track::-webkit-scrollbar { display: none; }
/* Landscape cards, two per row: picture left, text right. */
.news-card {
	flex: 0 0 calc((100% - 24px) / 2);
	scroll-snap-align: start;
	position: relative;
	display: flex;
	min-height: 210px;
	background: var(--frupo-bg);
	border: 1px solid var(--frupo-line);
	border-radius: var(--frupo-radius);
	overflow: hidden;
	transition: border-color .25s, box-shadow .25s;
}
.news-card:hover { border-color: var(--frupo-orange); box-shadow: var(--frupo-shadow); }
@media (max-width: 900px) { .news-card { flex-basis: 100%; } }
@media (max-width: 600px) { .news-card { flex-basis: 92%; min-height: 170px; } }
.news-card__media {
	position: relative;
	flex: 0 0 42%;
	background: radial-gradient(circle at 50% 45%, #ffffff, #e9e9e9 70%);
}
.news-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.news-card__media .news-card__placeholder { object-fit: contain; padding: 16%; opacity: .45; }
.news-card__body { padding: 22px 24px; display: flex; flex-direction: column; flex: 1; min-width: 0; }
.news-card h3 { margin-bottom: .35em; font-size: 1.15rem; }
.news-card h3 a { color: inherit; }
.news-card h3 a::before { content: ""; position: absolute; inset: 0; }
.news-card p { margin: 0; color: var(--frupo-muted); font-size: .95rem; white-space: pre-line; }
.news-card__foot {
	margin-top: auto;
	padding-top: 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}
.news-card__price {
	padding: 5px 14px;
	border-radius: 999px;
	background: var(--frupo-orange);
	color: var(--frupo-ink);
	font: 700 .95rem/1.2 var(--frupo-font-head);
}
.news-card__more { display: inline-flex; align-items: center; gap: 6px; color: var(--frupo-orange-text); font-weight: 600; }
@media (max-width: 600px) {
	.news-card__body { padding: 16px 16px 18px; }
	.news-card h3 { font-size: 1.05rem; }
	.news-card p { font-size: .9rem; }
}

.news__arrow {
	position: absolute;
	top: calc(50% - 24px);
	z-index: 2;
	width: 48px; height: 48px;
	padding: 0;
	justify-content: center;
	border-radius: 50%;
	box-shadow: 0 6px 16px rgba(0, 0, 0, .18);
}
.news__arrow[hidden] { display: none; }
.news__arrow svg { width: 24px; height: 24px; }
.news__arrow--prev { left: -18px; }
.news__arrow--next { right: -18px; }
@media (max-width: 1240px) {
	.news__arrow--prev { left: 6px; }
	.news__arrow--next { right: 6px; }
}
/* Phones: arrows under the card so they don't cover picture or text. */
@media (max-width: 600px) {
	.news.is-scrollable { padding-bottom: 60px; }
	.news__arrow { top: auto; bottom: 0; width: 42px; height: 42px; }
	.news__arrow--prev { left: calc(50% - 50px); }
	.news__arrow--next { right: calc(50% - 50px); }
}

/* Quick links (webmail, remote help, control panel) */
.quicklinks {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
@media (max-width: 800px) { .quicklinks { grid-template-columns: 1fr; } }
.quicklink {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 22px 24px;
	background: var(--frupo-bg);
	border-radius: var(--frupo-radius);
	border: 1px solid var(--frupo-line);
	color: var(--frupo-ink);
	transition: border-color .2s, box-shadow .2s;
}
.quicklink:hover { border-color: var(--frupo-orange); box-shadow: 0 0 0 1px var(--frupo-orange); color: var(--frupo-ink); }
.quicklink svg { width: 26px; height: 26px; flex: none; color: var(--frupo-orange-dark); }
.quicklink strong { display: block; font-family: var(--frupo-font-head); }
.quicklink small { color: var(--frupo-muted); }

/* CTA */
.cta {
	background: var(--frupo-orange);
	color: var(--frupo-ink);
	border-radius: 24px;
	padding: clamp(36px, 6vw, 64px);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 30px;
	flex-wrap: wrap;
	position: relative;
	overflow: hidden;
}
.cta::before {
	content: "";
	position: absolute;
	right: -90px; top: -90px;
	width: 280px; height: 280px;
	border-radius: 50%;
	background: var(--frupo-ink);
	opacity: .10;
}
.cta > * { position: relative; }
.cta h2 { color: var(--frupo-ink); margin-bottom: .3em; }
.cta p { margin: 0; }
.cta__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.cta .btn { background: var(--frupo-ink); border-color: var(--frupo-ink); color: var(--frupo-bg); }
.cta .btn:hover { background: #2a2a2a; border-color: #2a2a2a; box-shadow: none; }
.cta .btn--ghost { background: transparent; color: var(--frupo-ink); border-color: var(--frupo-ink); }
.cta .btn--ghost:hover { background: var(--frupo-ink); color: var(--frupo-bg); }

/* ------------------------------------------------------------------
   Content (posts / pages)
------------------------------------------------------------------ */
.page-header {
	padding: 60px 0 44px;
	background:
		radial-gradient(circle at 90% 0%, rgba(237, 109, 35, .16), transparent 50%),
		var(--frupo-surface);
	border-bottom: 2px solid var(--frupo-orange);
}
.page-header h1 { margin: 0; font-size: clamp(1.8rem, 3.5vw, 2.6rem); }
.page-header .meta { margin-top: 8px; color: var(--frupo-muted); font-size: .9rem; }

.site-main { padding: 56px 0 80px; }
.content-narrow { max-width: 780px; margin: 0 auto; }

.entry-content > * + * { margin-top: 1.2em; }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; }
.entry-content img { border-radius: 10px; }
.entry-content blockquote {
	margin: 1.5em 0;
	padding: 4px 0 4px 22px;
	border-left: 4px solid var(--frupo-orange);
	color: var(--frupo-ink);
	font-style: italic;
}
.entry-content code, .entry-content pre {
	background: var(--frupo-surface);
	border: 1px solid var(--frupo-line);
	border-radius: 6px;
	font-size: .9em;
}
.entry-content code { padding: .1em .4em; }
.entry-content pre { padding: 1em; overflow-x: auto; }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: 10px; border-bottom: 1px solid var(--frupo-line); text-align: left; }
.entry-content th { color: var(--frupo-ink); }
.entry-content hr { border: 0; border-top: 1px solid var(--frupo-line); }
.alignwide { max-width: 1100px; margin-left: auto; margin-right: auto; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { margin-left: auto; margin-right: auto; }
.wp-caption-text, figcaption { font-size: .85rem; color: var(--frupo-muted); text-align: center; }

.post-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 28px; }
.post-card {
	background: var(--frupo-bg);
	border: 1px solid var(--frupo-line);
	border-radius: var(--frupo-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: border-color .2s, transform .2s, box-shadow .2s;
}
.post-card:hover { border-color: var(--frupo-orange); transform: translateY(-3px); box-shadow: var(--frupo-shadow); }
.post-card__thumb img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.post-card__body { padding: 22px 24px 26px; }
.post-card__meta { font-size: .8rem; color: var(--frupo-orange-text); margin-bottom: 6px; text-transform: uppercase; letter-spacing: .06em; }
.post-card h2 { font-size: 1.2rem; }
.post-card h2 a { color: var(--frupo-ink); }
.post-card h2 a:hover { color: var(--frupo-orange-text); }
.post-card p { color: var(--frupo-muted); }

.pagination, .nav-links { display: flex; justify-content: center; gap: 8px; margin-top: 48px; flex-wrap: wrap; }
.page-numbers {
	min-width: 42px; height: 42px;
	display: grid; place-items: center;
	padding: 0 12px;
	border-radius: 10px;
	border: 1px solid var(--frupo-line);
	color: var(--frupo-ink);
}
.page-numbers.current, .page-numbers:hover { background: var(--frupo-orange); border-color: var(--frupo-orange); color: var(--frupo-ink); }

/* Forms */
input[type="text"], input[type="email"], input[type="url"], input[type="search"],
input[type="tel"], input[type="password"], textarea, select {
	width: 100%;
	padding: .75em 1em;
	font: inherit;
	color: var(--frupo-ink);
	background: #ffffff;
	border: 1px solid #bdbdbd;
	border-radius: 10px;
	transition: border-color .2s, box-shadow .2s;
}
input::placeholder, textarea::placeholder { color: #767676; }
input:focus, textarea:focus, select:focus {
	outline: none;
	border-color: var(--frupo-orange);
	box-shadow: 0 0 0 3px rgba(237, 109, 35, .25);
}
.search-form { display: flex; gap: 8px; }

/* Comments */
.comments-area { margin-top: 60px; padding-top: 40px; border-top: 1px solid var(--frupo-line); }
.comment-list { list-style: none; padding: 0; }
.comment-list .children { list-style: none; padding-left: 28px; }
.comment-body { padding: 18px 0; border-bottom: 1px solid var(--frupo-line); }
.comment-meta { font-size: .85rem; color: var(--frupo-muted); }

/* 404 */
.error-404 { text-align: center; padding: 40px 0; }
.error-404 .big { font: 800 clamp(5rem, 16vw, 9rem)/1 var(--frupo-font-head); color: var(--frupo-orange-dark); }
.error-404 .search-form { max-width: 460px; margin: 24px auto 0; }

/* ------------------------------------------------------------------
   Footer (Gainsboro, so the plain logo stays readable)
------------------------------------------------------------------ */
.site-footer {
	background: var(--frupo-surface);
	color: var(--frupo-muted);
	padding: 64px 0 0;
	font-size: .95rem;
	border-top: 3px solid var(--frupo-orange);
}
.site-footer a { color: var(--frupo-text); }
.site-footer a:hover { color: var(--frupo-orange-text); }
.site-footer h2, .site-footer .widget-title {
	color: var(--frupo-ink);
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	margin-bottom: 16px;
}
.footer-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 40px;
	padding-bottom: 48px;
}
@media (max-width: 800px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-grid ul { list-style: none; margin: 0; padding: 0; }
.footer-grid li { margin-bottom: 8px; }
.footer-brand .custom-logo { max-height: 60px; width: auto; margin-bottom: 14px; }
.footer-contact li { display: flex; align-items: center; gap: 10px; }
.footer-contact svg { width: 16px; height: 16px; fill: var(--frupo-orange-dark); flex: none; }
.site-info {
	border-top: 1px solid var(--frupo-line);
	padding: 20px 0;
	font-size: .85rem;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

/* Cookie Law Info plugin: orange accept buttons (plugin sets inline colours). */
#cookie_action_close_header,
#cookie-law-info-bar .cli-plugin-main-button,
#wt-cli-privacy-save-btn {
	background-color: var(--frupo-orange) !important;
	border-color: var(--frupo-orange) !important;
	color: var(--frupo-ink) !important;
	font-weight: 600;
	border-radius: 999px;
}
#cookie_action_close_header:hover,
#cookie-law-info-bar .cli-plugin-main-button:hover,
#wt-cli-privacy-save-btn:hover {
	background-color: var(--frupo-orange-dark) !important;
	border-color: var(--frupo-orange-dark) !important;
}

/* Elementor / full-width template */
.frupo-fullwidth .site-main { padding: 0; }
