/**
 * GDS Fullcreative — Main Styles
 *
 * Design system minimo: layout, tipografia, componenti, blocchi Gutenberg.
 *
 * @package GDS_Fullcreative
 * @since   1.0.0
 */

/** #0.1 Design tokens */

:root {
	--gds-color-primary: var(--wp--preset--color--primary, #0f172a);
	--gds-color-background: var(--wp--preset--color--background, #ffffff);
	--gds-color-surface: var(--wp--preset--color--surface, #f8fafc);
	--gds-color-accent: var(--wp--preset--color--accent, #00d084);
	--gds-color-accent-hover: #05b373;
	--gds-color-orange: var(--wp--preset--color--orange, #ff6900);
	--gds-color-error: var(--wp--preset--color--error, #cc0000);
	--gds-color-muted: #475569;
	--gds-font-family: var(--wp--preset--font-family--montserrat, "Montserrat", sans-serif);
	--gds-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	--gds-content-size: 780px;
	--gds-wide-size: 1320px;
	--gds-gutter: clamp(1rem, 3vw, 1.5rem);
	--gds-flow: 1.5rem;
	--gds-radius: 8px;
	--gds-radius-pill: 30px;
	--gds-border: 1px solid #e2e8f0;
	--gds-shadow: 0 1px 2px color-mix(in srgb, var(--gds-color-primary) 8%, transparent);
}

/** #0.2 Base */

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

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {

	html {
		scroll-behavior: auto;
	}
}

body {
	margin: 0;
	background-color: var(--gds-color-surface);
	color: var(--gds-color-primary);
	font-family: var(--gds-font-family);
	font-size: var(--wp--preset--font-size--medium, 1rem);
	line-height: 1.6;
}

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

.gds-icon {
	display: block;
	flex-shrink: 0;
}

a {
	color: var(--gds-color-accent);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

a:hover,
a:focus-visible {
	color: var(--gds-color-primary);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--gds-font-family);
	font-weight: 600;
	line-height: 1.25;
	margin-block: 0 0.5em;
}

p {
	margin-block: 0 1em;
}

/** #0.3 Layout */

.site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site-main {
	flex: 1;
	width: 100%;
	max-width: var(--gds-wide-size);
	margin-inline: auto;
	padding: var(--gds-flow) var(--gds-gutter);
}

body:not(.no-sidebar) .site-main {
	max-width: var(--gds-content-size);
}

@media (min-width: 782px) {

	body:not(.no-sidebar) .site {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 280px;
		grid-template-areas:
			"header header"
			"main sidebar"
			"footer footer";
		gap: 0 2rem;
		align-items: start;
		max-width: var(--gds-wide-size);
		margin-inline: auto;
		padding-inline: var(--gds-gutter);
	}

	body:not(.no-sidebar) .site-header,
	body:not(.no-sidebar) .site-footer {
		grid-column: 1 / -1;
	}

	body:not(.no-sidebar) .site-main {
		grid-area: main;
		max-width: none;
		margin-inline: 0;
		padding-inline: 0;
	}

	body:not(.no-sidebar) .widget-area {
		grid-area: sidebar;
		padding-block: var(--gds-flow);
	}
}

/** #1.0 Header BikeGo (top bar + navbar — BikeRent) */

.bikego-top-bar {
	background-color: var(--gds-color-primary);
	color: var(--gds-color-background);
	font-size: 0.8125rem;
	font-weight: 500;
}

.bikego-top-bar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	max-width: var(--gds-wide-size);
	margin-inline: auto;
	padding: 0.5rem var(--gds-gutter);
}

.bikego-top-bar__info,
.bikego-top-bar__aside {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1.25rem;
}

.bikego-top-bar__item {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.bikego-top-bar__item a {
	color: inherit;
	text-decoration: none;
}

.bikego-top-bar__item a:hover,
.bikego-top-bar__item a:focus-visible {
	color: var(--gds-color-accent);
}

.bikego-top-bar__icon {
	flex-shrink: 0;
	opacity: 0.9;
}

.bikego-top-bar__badge {
	color: var(--gds-color-accent);
	font-weight: 700;
}

.bikego-top-bar__socials {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.bikego-top-bar__social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	color: var(--gds-color-background);
	text-decoration: none;
	transition: var(--gds-transition);
}

.bikego-top-bar__social .gds-icon {
	display: block;
}

.bikego-top-bar__social:hover,
.bikego-top-bar__social:focus-visible {
	color: var(--gds-color-accent);
}

.site-header--bikego {
	position: sticky;
	top: 0;
	z-index: 1000;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	border-bottom: var(--gds-border);
	background-color: color-mix(in srgb, var(--gds-color-background) 90%, transparent);
	backdrop-filter: blur(10px);
}

.site-header--bikego .site-header__bar {
	width: 100%;
}

.site-header--bikego .site-header__container {
	display: flex;
	align-items: center;
	gap: 1rem 1.5rem;
	max-width: var(--gds-wide-size);
	margin-inline: auto;
	padding: 0.875rem var(--gds-gutter);
}

.site-header--bikego .site-branding {
	margin-inline-end: auto;
}

.site-header--bikego .site-description {
	display: none;
}

.site-header--bikego .site-title {
	margin: 0;
	font-family: var(--gds-font-family);
	font-size: 1.5rem;
	font-weight: 800;
	line-height: 1.2;
}

.site-header--bikego .site-title a {
	color: var(--gds-color-primary);
	text-decoration: none;
}

.site-header--bikego .site-title a:hover,
.site-header--bikego .site-title a:focus-visible {
	color: var(--gds-color-accent);
}

.site-header--bikego .site-logo a,
.site-header--bikego .site-logo img {
	display: block;
	max-height: 52px;
	width: auto;
}

.site-header--bikego .site-header__inner {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	margin: 0;
	flex-shrink: 0;
}

.site-header__cta {
	display: inline-flex;
	align-items: center;
	padding: 0.625rem 1.25rem;
	border-radius: var(--gds-radius-pill);
	background-color: var(--gds-color-accent);
	box-shadow: 0 4px 10px color-mix(in srgb, var(--gds-color-accent) 25%, transparent);
	color: var(--gds-color-background);
	font-size: 0.9375rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	transition: var(--gds-transition);
}

.site-header__cta:hover,
.site-header__cta:focus-visible {
	background-color: var(--gds-color-accent-hover);
	color: var(--gds-color-background);
	transform: translateY(-2px);
}

/** #1.1 Navigazione */

.site-header--bikego .main-navigation {
	position: relative;
	display: flex;
	align-items: center;
}

.site-header--bikego .menu-toggle {
	display: none;
	flex-direction: column;
	gap: 6px;
	padding: 5px;
	border: 0;
	background: none;
	color: var(--gds-color-primary);
	cursor: pointer;
}

.site-header--bikego .menu-toggle__bar {
	display: block;
	width: 25px;
	height: 3px;
	border-radius: 2px;
	background-color: currentColor;
	transition: var(--gds-transition);
}

.site-header--bikego .main-navigation .primary-menu,
.site-header--bikego .main-navigation ul {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.25rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-header--bikego .main-navigation a {
	position: relative;
	display: block;
	padding: 0.5rem 0;
	color: var(--gds-color-primary);
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
}

.site-header--bikego .main-navigation a::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 3px;
	border-radius: 2px;
	background-color: var(--gds-color-accent);
	transition: var(--gds-transition);
}

.site-header--bikego .main-navigation a:hover,
.site-header--bikego .main-navigation a:focus-visible,
.site-header--bikego .main-navigation .current-menu-item > a {
	color: var(--gds-color-accent);
}

.site-header--bikego .main-navigation .current-menu-item > a::after,
.site-header--bikego .main-navigation a:hover::after,
.site-header--bikego .main-navigation a:focus-visible::after {
	width: 100%;
}

@media (max-width: 991px) {

	.bikego-top-bar__info span:not(:first-child) {
		display: none;
	}

	.site-header--bikego .site-header__container {
		flex-wrap: wrap;
		position: relative;
	}

	.site-header--bikego .menu-toggle {
		display: flex;
	}

	.site-header--bikego .main-navigation {
		flex: 1 1 auto;
		justify-content: flex-end;
	}

	.site-header--bikego .main-navigation .primary-menu,
	.site-header--bikego .main-navigation ul {
		display: none;
		position: absolute;
		top: calc(100% + 0.5rem);
		inset-inline: var(--gds-gutter);
		z-index: 20;
		flex-direction: column;
		gap: 0;
		padding: 1rem;
		border: var(--gds-border);
		border-radius: var(--gds-radius);
		background-color: var(--gds-color-background);
		box-shadow: 0 10px 25px color-mix(in srgb, var(--gds-color-primary) 12%, transparent);
	}

	.site-header--bikego .main-navigation.toggled .primary-menu,
	.site-header--bikego .main-navigation.toggled ul {
		display: flex;
	}

	.site-header--bikego .main-navigation a {
		padding: 0.625rem 0;
		border-bottom: var(--gds-border);
	}

	.site-header--bikego .main-navigation li:last-child a {
		border-bottom: 0;
	}

	.site-header__cta {
		display: none;
	}
}

@media (max-width: 576px) {

	.bikego-top-bar__badge {
		display: none;
	}
}

/** Legacy header (fallback se classi bikego assenti) */

.site-header:not(.site-header--bikego) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	max-width: var(--gds-wide-size);
	margin-inline: auto;
	padding: 1rem var(--gds-gutter);
	border-bottom: var(--gds-border);
	background-color: var(--gds-color-background);
}

.site-header:not(.site-header--bikego) .site-branding {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.site-header:not(.site-header--bikego) .site-title {
	margin: 0;
	font-family: var(--gds-font-family);
	font-size: var(--wp--preset--font-size--large, 1.25rem);
	font-weight: 600;
	line-height: 1.2;
}

.site-header:not(.site-header--bikego) .site-title a {
	color: var(--gds-color-primary);
	text-decoration: none;
}

.site-header:not(.site-header--bikego) .site-description {
	margin: 0;
	color: var(--gds-color-muted);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.site-logo img {
	max-height: 60px;
	width: auto;
}

.site-header:not(.site-header--bikego) .site-header__inner {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem 1.25rem;
	margin-inline-start: auto;
	flex-shrink: 0;
}

.site-header:not(.site-header--bikego) .main-navigation {
	position: relative;
	display: flex;
	align-items: center;
}

.site-header:not(.site-header--bikego) .menu-toggle {
	display: none;
	padding: 0.5rem 0.875rem;
	border: var(--gds-border);
	border-radius: var(--gds-radius);
	background-color: var(--gds-color-background);
	color: var(--gds-color-primary);
	font: inherit;
	cursor: pointer;
}

@media (max-width: 781px) {

	.site-header:not(.site-header--bikego) .site-header__inner {
		width: 100%;
	}

	.site-header:not(.site-header--bikego) .menu-toggle {
		display: block;
	}

	.site-header:not(.site-header--bikego) .main-navigation ul {
		display: none;
		flex-direction: column;
		width: 100%;
		margin-top: 0.75rem;
		padding: 0.75rem;
		border: var(--gds-border);
		border-radius: var(--gds-radius);
		background-color: var(--gds-color-surface);
	}

	.site-header:not(.site-header--bikego) .main-navigation.toggled ul {
		display: flex;
	}
}

/** #1.2 Carrello header (WooCommerce) */

.gds-header-cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	padding: 0.35rem;
	border-radius: var(--gds-radius);
	color: var(--gds-color-primary);
	text-decoration: none;
	white-space: nowrap;
}

.gds-header-cart:hover,
.gds-header-cart:focus-visible {
	color: var(--gds-color-accent);
	outline: 2px solid color-mix(in srgb, var(--gds-color-accent) 35%, transparent);
	outline-offset: 2px;
}

.gds-header-cart .gds-icon {
	display: block;
	flex-shrink: 0;
}

.gds-header-cart__count {
	position: absolute;
	top: 0;
	inset-inline-end: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.125rem;
	height: 1.125rem;
	padding: 0 0.2rem;
	border-radius: 999px;
	background-color: var(--gds-color-orange);
	color: var(--gds-color-background);
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1;
	transform: translate(35%, -35%);
}

.gds-header-cart__count.is-empty {
	display: none;
}

/** #2.0 Contenuto */

.page-header,
.entry-header {
	margin-bottom: var(--gds-flow);
}

.page-title,
.entry-title {
	margin-block: 0 0.5em;
}

.entry-title a {
	color: inherit;
	text-decoration: none;
}

.entry-title a:hover,
.entry-title a:focus-visible {
	color: var(--gds-color-accent);
}

.entry-meta,
.entry-footer {
	color: var(--gds-color-muted);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.entry-meta span + span::before {
	content: " · ";
}

.entry-thumbnail {
	margin-bottom: var(--gds-flow);
}

.entry-thumbnail img {
	border-radius: var(--gds-radius);
}

.entry-content,
.entry-summary {
	margin-bottom: var(--gds-flow);
}

.entry-content > * + *,
.entry-summary > * + * {
	margin-top: var(--gds-flow);
}

.site-main:not(.site-main--front) article + article,
.site-main:not(.site-main--front) article + section {
	margin-top: calc(var(--gds-flow) * 2);
	padding-top: calc(var(--gds-flow) * 2);
	border-top: var(--gds-border);
}

.posts-navigation,
.post-navigation {
	margin-top: calc(var(--gds-flow) * 2);
	padding-top: var(--gds-flow);
	border-top: var(--gds-border);
}

.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
}

/** #2.1 Sidebar e widget */

.widget-area {
	padding-block: var(--gds-flow);
}

.widget {
	margin-bottom: var(--gds-flow);
	padding: 1rem;
	border: var(--gds-border);
	border-radius: var(--gds-radius);
	background-color: var(--gds-color-surface);
}

.widget-title {
	margin-block: 0 0.75rem;
	font-size: var(--wp--preset--font-size--large, 1.25rem);
}

.widget ul {
	margin: 0;
	padding-inline-start: 1.25rem;
}

/** #2.2 Ricerca */

.search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	max-width: 32rem;
}

.search-form label {
	flex: 1 1 12rem;
}

.search-field {
	width: 100%;
	padding: 0.625rem 0.75rem;
	border: var(--gds-border);
	border-radius: var(--gds-radius);
	background-color: var(--gds-color-background);
	color: var(--gds-color-primary);
	font: inherit;
}

.search-field:focus-visible {
	border-color: var(--gds-color-accent);
	outline: 2px solid color-mix(in srgb, var(--gds-color-accent) 35%, transparent);
	outline-offset: 1px;
}

.search-submit {
	padding: 0.625rem 1rem;
	border: 0;
	border-radius: var(--gds-radius);
	background-color: var(--gds-color-accent);
	color: var(--gds-color-background);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.search-submit:hover,
.search-submit:focus-visible {
	background-color: var(--gds-color-primary);
}

/** #3.0 Footer */

.site-footer {
	margin-top: auto;
	border-top: var(--gds-border);
	background-color: var(--gds-color-surface);
}

.site-info {
	max-width: var(--gds-wide-size);
	margin-inline: auto;
	padding: calc(var(--gds-flow) * 1.5) var(--gds-gutter);
}

.footer-widgets {
	margin-bottom: var(--gds-flow);
}

.footer-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	margin: 0 0 var(--gds-flow);
	padding: 0;
	list-style: none;
}

.footer-navigation a {
	color: var(--gds-color-primary);
	text-decoration: none;
}

.footer-navigation a:hover,
.footer-navigation a:focus-visible {
	color: var(--gds-color-accent);
}

.site-copyright {
	margin: 0;
	color: var(--gds-color-muted);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

/** #4.0 Commenti */

.comments-area {
	margin-top: calc(var(--gds-flow) * 2);
	padding-top: calc(var(--gds-flow) * 2);
	border-top: var(--gds-border);
}

.comment-list {
	margin: 0 0 var(--gds-flow);
	padding: 0;
	list-style: none;
}

.comment-body {
	margin-bottom: var(--gds-flow);
	padding: 1rem;
	border: var(--gds-border);
	border-radius: var(--gds-radius);
	background-color: var(--gds-color-surface);
}

/** #5.0 Blocchi Gutenberg (frontend + editor parity) */

.alignwide {
	max-width: var(--gds-wide-size);
	margin-inline: auto;
}

.alignfull {
	width: 100%;
	max-width: none;
}

.wp-block-image img,
.wp-block-video video,
.wp-block-embed iframe {
	border-radius: var(--gds-radius);
}

.wp-block-quote {
	margin-inline: 0;
	padding: 1rem 1.25rem;
	border-left: 4px solid var(--gds-color-accent);
	background-color: var(--gds-color-surface);
}

.wp-block-quote cite {
	display: block;
	margin-top: 0.75rem;
	color: color-mix(in srgb, var(--gds-color-primary) 60%, transparent);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	font-style: normal;
}

.wp-block-button__link,
.wp-element-button {
	padding: 0.625rem 1.25rem;
	border-radius: var(--gds-radius);
	background-color: var(--gds-color-accent);
	color: var(--gds-color-background);
	font-weight: 600;
	text-decoration: none;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
.wp-element-button:hover,
.wp-element-button:focus-visible {
	background-color: var(--gds-color-primary);
	color: var(--gds-color-background);
}

.wp-block-table {
	overflow-x: auto;
}

.wp-block-table table {
	width: 100%;
	border-collapse: collapse;
}

.wp-block-table th,
.wp-block-table td {
	padding: 0.625rem 0.75rem;
	border: var(--gds-border);
}

.wp-block-table th {
	background-color: var(--gds-color-surface);
}

.wp-block-separator {
	border: 0;
	border-top: var(--gds-border);
}

.wp-block-group.has-background,
.wp-block-columns.has-background {
	padding: var(--gds-flow);
	border-radius: var(--gds-radius);
}

.is-style-gds-highlight {
	border-left-width: 6px;
}

.is-style-gds-outline .wp-block-button__link {
	border: 2px solid var(--gds-color-accent);
	background-color: transparent;
	color: var(--gds-color-accent);
}

.is-style-gds-outline .wp-block-button__link:hover,
.is-style-gds-outline .wp-block-button__link:focus-visible {
	background-color: var(--gds-color-accent);
	color: var(--gds-color-background);
}

/** #6.0 WordPress Generated Classes */

/* Allineamenti */
.alignleft {
	float: left;
	margin-right: 1.5em;
	margin-bottom: 1em;
}

.alignright {
	float: right;
	margin-left: 1.5em;
	margin-bottom: 1em;
}

.aligncenter {
	display: block;
	margin-right: auto;
	margin-left: auto;
	margin-bottom: 1em;
}

/* Captions */
.wp-caption {
	max-width: 100%;
	margin-bottom: 1em;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	width: 100%;
}

.wp-caption-text {
	font-size: 0.875em;
	text-align: center;
	margin-top: 0.5em;
}

/* Gallery */
.gallery-caption {
	display: block;
	font-size: 0.875em;
}

/* Post sticky */
.sticky {
	display: block;
}

/* Commenti autore */
.bypostauthor {
	display: block;
}

/* Screen reader */
.screen-reader-text {
	border: 0;
	clip: rect( 1px, 1px, 1px, 1px );
	clip-path: inset( 50% );
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus,
.skip-link:focus {
	background-color: var(--gds-color-background);
	border-radius: var(--gds-radius);
	box-shadow: var(--gds-shadow);
	clip: auto !important;
	clip-path: none;
	color: var(--gds-color-accent);
	display: block;
	font-size: 0.875em;
	font-weight: 700;
	height: auto;
	left: var(--gds-gutter);
	line-height: normal;
	padding: 0.875rem 1rem;
	text-decoration: none;
	top: 0.5rem;
	width: auto;
	z-index: 100000;
}
