/*
Theme Name:   LPL Soft (Astra child)
Theme URI:    https://lplsoft.com
Description:  Tema figlio di Astra per il sito LPL Soft.
Author:       LPL Soft
Template:     astra
Version:      1.1.2
Requires PHP: 8.0
Text Domain:  lplsoft-child
*/

:root {
	--lp-navy: #0b2340;
	--lp-navy-2: #0f3460;
	--lp-blue: #0a66a8;
	--lp-blue-2: #2272f2;
	--lp-sky: #e8f2fb;
	--lp-orange: #f0a030;
	--lp-orange-dark: #b86f0a;
	--lp-green: #a0d050;
	--lp-green-dark: #4f7d16;
	--lp-violet: #8e5cd6;
	--lp-ink: #0e1a2b;
	--lp-text: #3b4658;
	--lp-muted: #6a7486;
	--lp-line: #e2e8f0;
	--lp-soft: #f5f8fc;
	--lp-radius: 14px;
	--lp-shadow: 0 1px 2px rgba(14, 26, 43, .05), 0 10px 30px rgba(14, 26, 43, .07);
	--lp-wrap: 1200px;
	--lp-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

	--ast-global-color-0: var(--lp-blue);
	--ast-global-color-1: var(--lp-navy);
	--ast-global-color-2: var(--lp-ink);
	--ast-global-color-3: var(--lp-text);
	--ast-global-color-4: var(--lp-soft);
	--ast-global-color-5: #fff;
	--ast-global-color-6: var(--lp-line);
}

body,
button,
input,
select,
textarea {
	font-family: var(--lp-font);
}
body {
	color: var(--lp-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6,
.entry-content :where(h1, h2, h3, h4) {
	color: var(--lp-ink);
	font-family: var(--lp-font);
	letter-spacing: -.015em;
	line-height: 1.2;
}
a { color: var(--lp-blue); }
a:hover, a:focus { color: var(--lp-navy-2); }
:focus-visible { outline: 3px solid var(--lp-orange); outline-offset: 2px; }

/* ---------- Header ---------- */
.site-header .custom-logo { max-height: 46px; width: auto; }
.main-header-menu > .menu-item > .menu-link { font-weight: 600; color: var(--lp-ink); }
.main-header-menu > .menu-item.current-menu-item > .menu-link,
.main-header-menu > .menu-item > .menu-link:hover { color: var(--lp-blue); }
.main-header-menu .lp-menu-cta > .menu-link,
.ast-builder-menu .lp-menu-cta > a {
	background: var(--lp-blue);
	color: #fff !important;
	border-radius: 999px;
	padding: 8px 20px !important;
	margin-left: 10px;
	line-height: 1.4 !important;
}
.main-header-menu .lp-menu-cta > .menu-link:hover { background: var(--lp-navy-2); }
.main-header-menu .lp-menu-cta { align-items: center; }
.main-header-menu .lp-menu-cta > .menu-link { height: auto !important; align-self: center; }
/* Il logo contiene già il nome: niente titolo testuale accanto */
.site-header .ast-site-title-wrap { display: none; }
@media (min-width: 922px) and (max-width: 1180px) {
	.main-header-menu > .menu-item > .menu-link { padding-left: .55em !important; padding-right: .55em !important; }
}
.ast-header-break-point .main-header-menu .lp-menu-cta > .menu-link { display: inline-block; margin: 12px 20px; }

/* ---------- Pagine a sezioni a larghezza piena ---------- */
.lp-full .site-content > .ast-container,
.lp-full #primary {
	padding: 0;
	margin: 0;
	max-width: none;
}
.lp-full .ast-article-single,
.lp-full .ast-article-post {
	padding: 0 !important;
	margin: 0 !important;
	background: transparent;
	border: 0;
}
.lp-full .entry-content > .alignfull {
	margin: 0;
	width: 100%;
	max-width: none;
}
.lp-full .entry-content > *:not(.alignfull) {
	max-width: var(--lp-wrap);
	margin-inline: auto;
	padding-inline: 20px;
}

.lp-hero,
.lp-page-hero,
.lp-section {
	--lp-gutter: max(20px, calc((100% - var(--lp-wrap)) / 2 + 20px));
	padding-left: var(--lp-gutter) !important;
	padding-right: var(--lp-gutter) !important;
}
:is(.lp-hero, .lp-page-hero, .lp-section) > * { margin-left: 0; margin-right: 0; }
:is(.lp-hero, .lp-page-hero, .lp-section) > .wp-block-group__inner-container { max-width: none; }

.lp-section { padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(56px, 8vw, 96px); }
.lp-section--alt { background: var(--lp-soft); }
.lp-section h2 { font-size: clamp(26px, 3.2vw, 38px); margin: 0 0 16px; max-width: 820px; }
.lp-section h3 { font-size: 20px; margin: 0 0 8px; }

.lp-eyebrow,
.entry-content .lp-eyebrow {
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: 13px;
	font-weight: 700;
	color: var(--lp-blue);
	margin-bottom: 10px;
}
.lp-lead,
.entry-content .lp-lead {
	font-size: clamp(17px, 1.6vw, 20px);
	line-height: 1.6;
	max-width: 780px;
}

/* ---------- Pulsanti ---------- */
.entry-content .wp-block-button__link,
.lp-btn {
	background: var(--lp-blue);
	color: #fff;
	border: 2px solid var(--lp-blue);
	border-radius: 999px;
	padding: 12px 26px;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.3;
	text-decoration: none;
	transition: background .15s, color .15s, border-color .15s;
}
.entry-content .wp-block-button__link:hover,
.lp-btn:hover {
	background: var(--lp-navy-2);
	border-color: var(--lp-navy-2);
	color: #fff;
}
.entry-content .wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent !important;
	color: var(--lp-blue) !important;
	border-color: currentColor !important;
}
.entry-content .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--lp-blue) !important;
	color: #fff !important;
	border-color: var(--lp-blue) !important;
}
.entry-content .wp-block-buttons { gap: 12px; margin-top: 24px; }

/* ---------- Hero ---------- */
.lp-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(900px 480px at 92% 0%, rgba(34, 114, 242, .45), transparent 60%),
		linear-gradient(140deg, var(--lp-navy) 0%, var(--lp-navy-2) 55%, var(--lp-blue) 100%);
	color: #fff;
	padding-top: clamp(56px, 9vw, 110px);
	padding-bottom: clamp(56px, 9vw, 110px);
}
.lp-hero::after {
	content: "";
	position: absolute;
	inset: auto -80px -120px auto;
	width: 360px;
	height: 360px;
	border: 46px solid rgba(255, 255, 255, .05);
	transform: rotate(45deg);
	border-radius: 28px;
	pointer-events: none;
}
.lp-hero h1 {
	color: #fff;
	font-size: clamp(32px, 4.8vw, 54px);
	margin: 0 0 18px;
	max-width: 640px;
}
.lp-hero .lp-eyebrow { color: #8fc4ff; }
.lp-hero .lp-lead, .lp-hero p { color: rgba(255, 255, 255, .88); }
.lp-hero__cols { align-items: center !important; gap: clamp(32px, 5vw, 72px) !important; margin: 0 !important; position: relative; z-index: 1; }
.lp-hero__cols > .wp-block-column:first-child { flex: 0 0 52% !important; }
.lp-hero__cols > .wp-block-column:last-child { flex: 1 1 0 !important; min-width: 0; }
.lp-hero .wp-block-image { margin: 0; }
.lp-hero .wp-block-image img {
	border-radius: 14px;
	box-shadow: 0 30px 60px rgba(0, 0, 0, .35);
	width: 100%;
	height: auto;
}
.lp-hero .wp-block-button__link { background: #fff; color: var(--lp-navy); border-color: #fff; }
.lp-hero .wp-block-button__link:hover { background: var(--lp-sky); border-color: var(--lp-sky); color: var(--lp-navy); }
.lp-hero .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff !important; border-color: rgba(255, 255, 255, .7) !important; }
.lp-hero .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff !important; color: var(--lp-navy) !important; border-color: #fff !important; }

/* Hero prodotto: telefono a destra, logo bianco in alto */
.lp-hero--studio, .lp-hero--service, .lp-hero--academy { background: linear-gradient(140deg, var(--lp-navy) 0%, var(--lp-navy-2) 70%, #134a85 100%); }
.lp-hero--studio { box-shadow: inset 0 -6px 0 var(--lp-orange); }
.lp-hero--service { box-shadow: inset 0 -6px 0 var(--lp-green); }
.lp-hero--academy { box-shadow: inset 0 -6px 0 var(--lp-violet); }
.lp-hero--academy .wp-block-button__link { background: var(--lp-violet); border-color: var(--lp-violet); color: #fff; }
.lp-hero--studio .wp-block-button__link { background: var(--lp-orange); border-color: var(--lp-orange); color: var(--lp-ink); }
.lp-hero--service .wp-block-button__link { background: var(--lp-green); border-color: var(--lp-green); color: var(--lp-ink); }
.lp-hero:is(.lp-hero--studio, .lp-hero--service, .lp-hero--academy) .wp-block-button__link:hover { filter: brightness(1.05); }
.lp-hero .lp-product__logo--hero {
	display: inline-block;
	margin: 0 0 28px;
	padding: 14px 22px;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .25);
}
.lp-hero .lp-product__logo--hero img {
	display: block;
	width: auto !important;
	height: 56px !important;
	max-width: none;
	max-height: none;
	box-shadow: none;
	border-radius: 0;
}
@media (max-width: 600px) {
	.lp-hero .lp-product__logo--hero img { height: 42px !important; }
}
.lp-hero:is(.lp-hero--studio, .lp-hero--service, .lp-hero--academy) h1 { font-size: clamp(28px, 3.6vw, 42px); }
.lp-hero:is(.lp-hero--studio, .lp-hero--service, .lp-hero--academy) .wp-block-column:last-child { text-align: center; }
.lp-hero:is(.lp-hero--studio, .lp-hero--service, .lp-hero--academy) .wp-block-column:last-child img { max-width: 320px; }

/* Hero delle pagine interne */
.lp-page-hero {
	background:
		radial-gradient(700px 360px at 95% 0%, rgba(34, 114, 242, .14), transparent 60%),
		var(--lp-sky);
	padding-top: clamp(48px, 7vw, 88px);
	padding-bottom: clamp(40px, 6vw, 72px);
	border-bottom: 1px solid var(--lp-line);
}
.lp-page-hero h1 { font-size: clamp(30px, 4.2vw, 48px); margin: 0 0 14px; max-width: 860px; }

/* ---------- Componenti ---------- */
.lp-products, .lp-cards, .lp-features, .lp-pricing { gap: 24px !important; margin-top: 32px; }
.lp-products > .wp-block-column,
.lp-cards > .wp-block-column {
	background: #fff;
	border: 1px solid var(--lp-line);
	border-radius: var(--lp-radius);
	padding: 32px;
	box-shadow: var(--lp-shadow);
}
.lp-products > .wp-block-column { border-top: 5px solid var(--lp-orange); }
.lp-products > .wp-block-column:nth-child(2) { border-top-color: var(--lp-green); }
.lp-products > .wp-block-column:nth-child(3) { border-top-color: var(--lp-violet); }
.lp-products > .wp-block-column { display: flex; flex-direction: column; }
.lp-products > .wp-block-column > .wp-block-buttons { margin-top: auto; padding-top: 20px; }
.lp-product__logo img { max-height: 48px; width: auto; }
.lp-products .wp-block-buttons { margin-top: 20px; }
.lp-cards ul { margin: 8px 0 0 1.1em; }
.lp-cards li { margin-bottom: 6px; }
.lp-section--alt .lp-cards > .wp-block-column { box-shadow: none; }

.lp-features > .wp-block-column { padding: 4px; }
.lp-feature__icon { margin: 0 0 14px; }
.lp-feature__icon img {
	width: 56px;
	height: 56px;
	object-fit: contain;
	padding: 10px;
	background: #fff;
	border-radius: 14px;
	box-shadow: var(--lp-shadow);
}
.lp-section:not(.lp-section--alt) .lp-feature__icon img { background: var(--lp-sky); box-shadow: none; }

.lp-split { align-items: center !important; gap: clamp(28px, 5vw, 64px) !important; }
.lp-split .wp-block-image img { border-radius: var(--lp-radius); height: auto; }
.lp-split--media-left > .wp-block-column:first-child { flex-basis: 38% !important; }

.lp-checklist { list-style: none; margin: 24px 0 0 !important; padding: 0; display: grid; gap: 14px; }
.lp-checklist li {
	position: relative;
	padding: 16px 18px 16px 52px;
	background: var(--lp-soft);
	border-radius: 12px;
	max-width: 900px;
}
.lp-checklist li::before {
	content: "";
	position: absolute;
	left: 18px;
	top: 18px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--lp-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 14px no-repeat;
}
.lp-shots { margin-top: 36px; gap: 20px !important; }
.lp-shot img { border-radius: 10px; border: 1px solid var(--lp-line); box-shadow: var(--lp-shadow); height: auto; }

.lp-stores { gap: 12px !important; margin-top: 20px; max-width: 360px; }
.lp-stores .wp-block-column { flex-basis: auto !important; }
.lp-store { margin: 0; }
.lp-store img { height: 44px; width: auto; }

/* Prezzi */
.lp-pricing > .wp-block-column {
	background: #fff;
	border: 1px solid var(--lp-line);
	border-radius: var(--lp-radius);
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
}
.lp-pricing > .wp-block-column:nth-child(2) { border: 2px solid var(--lp-blue); box-shadow: var(--lp-shadow); }
.lp-price__name { font-weight: 800; letter-spacing: .12em; font-size: 14px; color: var(--lp-blue); margin: 0 0 8px; }
.lp-price__amount { margin: 0; color: var(--lp-ink); }
.lp-price__amount strong { font-size: 40px; letter-spacing: -.02em; }
.lp-price__amount span { color: var(--lp-muted); margin-left: 4px; }
.lp-price__note { font-size: 13px; color: var(--lp-muted); margin: 4px 0 16px; }
.lp-price__list { list-style: none; margin: 0 0 8px !important; padding: 16px 0 0; border-top: 1px solid var(--lp-line); flex: 1; }
.lp-price__list li { padding: 5px 0 5px 24px; position: relative; font-size: 15px; }
.lp-price__list li::before { content: "✓"; position: absolute; left: 0; color: var(--lp-blue); font-weight: 800; }
.lp-price__list li:last-child { color: var(--lp-green-dark); }
.lp-pricing .wp-block-buttons { margin-top: 16px; }
.lp-pricing .wp-block-button, .lp-pricing .wp-block-button__link { width: 100%; text-align: center; }

/* CTA finale */
.lp-cta { background: linear-gradient(120deg, var(--lp-blue) 0%, var(--lp-blue-2) 100%); color: #fff; padding-top: 56px !important; padding-bottom: 56px !important; }
.lp-cta h2 { color: #fff; margin-bottom: 8px; }
.lp-cta p { color: rgba(255, 255, 255, .9); margin: 0; }
.lp-cta__cols { align-items: center !important; margin: 0 !important; }
.lp-cta__cols > .wp-block-column:last-child { flex-grow: 0 !important; flex-basis: auto !important; }
.lp-cta .wp-block-buttons { margin-top: 0; flex-wrap: nowrap; }
.lp-cta .wp-block-button__link { background: #fff; color: var(--lp-blue); border-color: #fff; white-space: nowrap; }
.lp-cta .wp-block-button__link:hover { background: var(--lp-navy); border-color: var(--lp-navy); color: #fff; }
.lp-cta .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff !important; border-color: rgba(255, 255, 255, .8) !important; }

.lp-callout {
	margin-top: 32px !important;
	padding: 20px 24px;
	border-left: 5px solid var(--lp-orange);
	background: #fff7ea;
	border-radius: 0 12px 12px 0;
	font-size: 18px;
}

/* Testo lungo (privacy, chi siamo) */
.lp-prose > :is(p, ul, h2, h3, .wp-block-buttons) { max-width: 860px; }
.lp-prose h2 { margin-top: 40px; }
.lp-prose h2:first-child { margin-top: 0; }

/* Contatti */
.lp-contacts { list-style: none; margin: 0 0 24px !important; padding: 0; display: grid; gap: 14px; }
.lp-contacts__item { display: grid; gap: 2px; padding: 14px 18px; background: var(--lp-soft); border-radius: 12px; }
.lp-contacts__label { font-size: 13px; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; color: var(--lp-muted); }
.lp-contacts__value { color: var(--lp-ink); font-weight: 600; }

/* ---------- Footer ---------- */
.lp-footer { background: var(--lp-navy); color: rgba(255, 255, 255, .78); font-size: 15px; }
.lp-footer a { color: #fff; text-decoration: none; }
.lp-footer a:hover { color: #8fc4ff; text-decoration: underline; }
.lp-footer__top {
	max-width: var(--lp-wrap);
	margin: 0 auto;
	padding: 64px 20px 40px;
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
	gap: 40px;
}
.lp-footer__logo img { width: 210px; height: auto; margin-bottom: 16px; }
.lp-footer__title { color: #fff; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: 13px; margin: 0 0 14px; }
.lp-footer ul { list-style: none; margin: 0; padding: 0; }
.lp-footer li { margin-bottom: 8px; }
.lp-footer__bottom {
	max-width: var(--lp-wrap);
	margin: 0 auto;
	padding: 20px;
	border-top: 1px solid rgba(255, 255, 255, .12);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 24px;
	font-size: 14px;
}
.lp-footer__bottom p { margin: 0; }
@media (max-width: 900px) {
	.lp-footer__top { grid-template-columns: 1fr 1fr; }
	.lp-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
	.lp-footer__top { grid-template-columns: 1fr; }
}

/* ---------- Archivio News ---------- */
.lp-archive-hero { padding: 24px 0 32px; border-bottom: 1px solid var(--lp-line); margin-bottom: 32px; }
.lp-archive-hero h1 { font-size: clamp(30px, 4vw, 44px); margin: 0 0 10px; }
.lp-empty { font-size: 18px; color: var(--lp-muted); }

/* ---------- Responsive ---------- */
@media (max-width: 781px) {
	.lp-hero__cols > .wp-block-column:first-child { flex-basis: 100% !important; }
	.lp-cta__cols > .wp-block-column:last-child { flex-basis: 100% !important; }
	.lp-cta .wp-block-buttons { flex-wrap: wrap; }
	.lp-products > .wp-block-column, .lp-cards > .wp-block-column { padding: 24px; }
	.lp-stores { flex-wrap: nowrap !important; }
}
