/* UPIA — Global visual system
   Final consistency layer for mother, category and product templates.
*/

:root{
	--upia-heading-font:"EB Garamond",Garamond,Georgia,serif;
	--upia-body-font:"Montserrat",Arial,sans-serif;
	--upia-ink:#173d52;
	--upia-text:#4f6674;
	--upia-line:#dbe5e9;
	--upia-soft:#f5f8f9;
}

/* Typography */
.upia-main h1,
.upia-main h2,
.upia-main h3,
.upia-main h4,
.upia-main h5,
.upia-main h6,
.upia-product-unified .upia-preserved-product-inner h2,
.upia-product-unified .upia-preserved-product-inner h3,
.upia-product-unified .upia-preserved-product-inner h4{
	font-family:var(--upia-heading-font)!important;
	font-weight:600;
	letter-spacing:-.018em;
}
.upia-main p,
.upia-main li,
.upia-main a,
.upia-main button,
.upia-main summary,
.upia-main label,
.upia-main input,
.upia-main select,
.upia-main textarea{
	font-family:var(--upia-body-font);
}

/* Semantic lists: visible markers everywhere editorial content uses lists. */
.upia-mother-page ul,
.upia-category-page ul,
.upia-product-page ul{
	list-style:disc outside!important;
	padding-left:1.4rem!important;
}
.upia-mother-page ol,
.upia-category-page ol,
.upia-product-page ol{
	list-style:decimal outside!important;
	padding-left:1.55rem!important;
}
.upia-mother-page li,
.upia-category-page li,
.upia-product-page li{
	display:list-item!important;
}
.upia-mother-page li::marker,
.upia-category-page li::marker,
.upia-product-page li::marker{
	color:#2b789a;
}
.upia-market-access ul li::marker,
.upia-mother-checks ul li::marker,
.upia-category-data ul li::marker,
.upia-category-errors ul li::marker,
.upia-product-data ul li::marker,
.upia-product-errors ul li::marker,
.upia-request-band ul li::marker{
	color:#b8dceb;
}

/* Navigation/list structures are not editorial lists. */
.upia-main .upia-toc ul,
.upia-main .upia-toc-grid,
.upia-main .upia-related-links,
.upia-main .upia-category-related-links,
.upia-main .upia-product-related-links{
	list-style:none!important;
	padding-left:0!important;
}

/* Unified FAQ system — same accordion on every template. */
.upia-mother-faq,
.upia-category-faq,
.upia-product-faq,
.upia-legacy-faq{
	max-width:1180px;
}
.upia-mother-faq details,
.upia-category-faq details,
.upia-product-faq details,
.upia-legacy-faq details{
	margin:0!important;
	border:0!important;
	border-top:1px solid var(--upia-line)!important;
	border-radius:0!important;
	background:transparent!important;
	box-shadow:none!important;
}
.upia-mother-faq details:last-child,
.upia-category-faq details:last-child,
.upia-product-faq details:last-child,
.upia-legacy-faq details:last-child{
	border-bottom:1px solid var(--upia-line)!important;
}
.upia-mother-faq summary,
.upia-category-faq summary,
.upia-product-faq summary,
.upia-legacy-faq summary{
	display:flex!important;
	align-items:center;
	justify-content:space-between;
	gap:24px;
	width:100%;
	padding:22px 4px!important;
	cursor:pointer;
	list-style:none!important;
	color:var(--upia-ink)!important;
	font-family:var(--upia-body-font)!important;
	font-size:1rem!important;
	font-weight:700!important;
	line-height:1.45!important;
}
.upia-mother-faq summary::-webkit-details-marker,
.upia-category-faq summary::-webkit-details-marker,
.upia-product-faq summary::-webkit-details-marker,
.upia-legacy-faq summary::-webkit-details-marker{
	display:none;
}
.upia-mother-faq summary::after,
.upia-category-faq summary::after,
.upia-product-faq summary::after,
.upia-legacy-faq summary::after{
	content:"";
	flex:0 0 auto;
	width:.58rem;
	height:.58rem;
	margin-right:5px;
	border-right:2px solid #377998;
	border-bottom:2px solid #377998;
	transform:rotate(45deg);
	transition:transform .18s ease;
}
.upia-mother-faq details[open] summary::after,
.upia-category-faq details[open] summary::after,
.upia-product-faq details[open] summary::after,
.upia-legacy-faq details[open] summary::after{
	transform:rotate(225deg);
}
.upia-mother-faq details>p,
.upia-category-faq details>p,
.upia-product-faq details>p,
.upia-legacy-faq details>p,
.upia-legacy-faq .upia-faq-answer{
	max-width:940px!important;
	margin:0!important;
	padding:0 44px 24px 4px!important;
	color:var(--upia-text)!important;
	line-height:1.75!important;
}
.upia-legacy-faq .upia-faq-answer p:last-child,
.upia-legacy-faq .upia-faq-answer ul:last-child,
.upia-legacy-faq .upia-faq-answer ol:last-child{
	margin-bottom:0!important;
}

/* Shared component geometry. */
.upia-mother-card,
.upia-category-product-grid>a,
.upia-product-comparison-grid>a,
.upia-mother-note,
.upia-category-market-note,
.upia-product-market-note,
.upia-reference-box,
.upia-request-box{
	border-radius:14px!important;
}

/* Unified body alignment: no legacy forced justification. */
.upia-main p,
.upia-main li{
	text-align:left!important;
	text-justify:auto!important;
}

@media(max-width:760px){
	.upia-mother-faq summary,
	.upia-category-faq summary,
	.upia-product-faq summary,
	.upia-legacy-faq summary{
		padding:19px 2px!important;
		font-size:.96rem!important;
	}
	.upia-mother-faq details>p,
	.upia-category-faq details>p,
	.upia-product-faq details>p,
	.upia-legacy-faq details>p,
	.upia-legacy-faq .upia-faq-answer{
		padding-right:20px!important;
	}
}

/* =========================================================
   INTERNAL PAGE DEPTH SYSTEM
   Applies only to mother/category/product pages.
   Homepage remains untouched.
   ========================================================= */

.upia-mother-page,
.upia-category-page,
.upia-product-page{
	--upia-shadow-soft:0 18px 45px rgba(23,61,82,.07);
	--upia-shadow-card:0 14px 34px rgba(23,61,82,.08);
	--upia-shadow-hover:0 22px 48px rgba(23,61,82,.13);
	--upia-accent:#2d89ae;
	--upia-accent-soft:#dceff6;
}

/* Hero: stronger separation from the page without changing the approved image. */
.upia-mother-hero,
.upia-category-hero,
.upia-product-hero{
	border-bottom:1px solid #d4e0e5!important;
	box-shadow:0 16px 42px rgba(25,58,75,.07);
}
.upia-mother-hero::after,
.upia-category-hero::after,
.upia-product-hero::after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	height:5px;
	z-index:4;
	background:linear-gradient(90deg,#0f6ea2 0 22%,#62b3d1 22% 38%,transparent 38%);
	opacity:.75;
}

/* Audited small labels: at least 4.5:1 on white and hover backgrounds. */
.upia-mother-trust .upia-mother-trust-grid small,
.upia-category-trust .upia-category-trust-grid small,
.upia-product-trust .upia-product-trust-grid small {
    color: #4f6674;
}
.upia-institutional-contatti .upia-contact-service-card > span {
    color: #17698d;
}
/* Email links remain distinguishable without relying on colour alone. */
.upia-preserved-product-inner a[href^="mailto:"],
.upia-institutional-content-inner a[href^="mailto:"] {
    text-decoration: underline;
    text-underline-offset: .15em;
}

/* Trust strips become a real navigation/credibility band. */
.upia-mother-trust,
.upia-category-trust,
.upia-product-trust{
	position:relative;
	z-index:5;
	box-shadow:0 12px 28px rgba(20,55,73,.055);
}
.upia-mother-trust-grid>div,
.upia-category-trust-grid>div,
.upia-product-trust-grid>div{
	position:relative;
	transition:background .18s ease;
}
.upia-mother-trust-grid>div:hover,
.upia-category-trust-grid>div:hover,
.upia-product-trust-grid>div:hover{
	background:#f7fafb;
}

/* Section heading signature. */
.upia-mother-page .upia-section-heading h2,
.upia-category-page .upia-section-heading h2,
.upia-product-page .upia-section-heading h2,
.upia-mother-intro-copy h2,
.upia-category-market h2,
.upia-product-market h2{
	position:relative;
	padding-bottom:18px;
}
.upia-mother-page .upia-section-heading h2::after,
.upia-category-page .upia-section-heading h2::after,
.upia-product-page .upia-section-heading h2::after,
.upia-mother-intro-copy h2::after,
.upia-category-market h2::after,
.upia-product-market h2::after{
	content:"";
	position:absolute;
	left:0;
	bottom:0;
	width:64px;
	height:3px;
	border-radius:999px;
	background:linear-gradient(90deg,#17698d,#74bfd9);
}

/* Elevated informational panels. */
.upia-mother-intro,
.upia-mother-note,
.upia-category-market-note,
.upia-product-market-note,
.upia-reference-box,
.upia-product-law-note,
.upia-category-law-note,
.upia-product-note{
	box-shadow:var(--upia-shadow-soft);
}
.upia-mother-intro{
	position:relative;
	margin-top:74px;
	margin-bottom:74px;
	padding:56px 54px!important;
	border:1px solid #dde7eb;
	border-radius:22px;
	background:
		radial-gradient(circle at 90% 8%,rgba(72,164,199,.10),transparent 28%),
		linear-gradient(145deg,#fff,#f8fbfc);
}
.upia-mother-intro::before{
	content:"";
	position:absolute;
	top:0;
	left:54px;
	width:88px;
	height:4px;
	border-radius:0 0 8px 8px;
	background:#2e8db3;
}

/* Alternating visual rhythm on mother pages. */
.upia-guide-intro{
	position:relative;
	padding-left:42px!important;
	padding-right:42px!important;
	border-left:1px solid #dbe6ea;
	border-right:1px solid #dbe6ea;
}
.upia-normativa,
.upia-data-errors,
.upia-mother-process,
.upia-mother-faq{
	position:relative;
}
.upia-normativa::before,
.upia-data-errors::before,
.upia-mother-process::before,
.upia-mother-faq::before{
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:72px;
	height:3px;
	border-radius:999px;
	background:#83bfd5;
}

/* Cards: less flat, same sober institutional language. */
.upia-mother-card,
.upia-category-product-grid>a,
.upia-product-comparison-grid>a,
.upia-product-law-grid article,
.upia-product-scheme-grid>div,
.upia-product-parties-grid>div,
.upia-three-grid article,
.upia-category-structure-grid article,
.upia-category-schemes-grid>div{
	position:relative;
	overflow:hidden;
	border-color:#d7e3e8!important;
	background:linear-gradient(180deg,#fff 0%,#fbfdfe 100%)!important;
	box-shadow:var(--upia-shadow-card);
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease!important;
}
.upia-mother-card::before,
.upia-category-product-grid>a::before,
.upia-product-comparison-grid>a::before,
.upia-product-law-grid article::before,
.upia-product-scheme-grid>div::before,
.upia-product-parties-grid>div::before,
.upia-three-grid article::before,
.upia-category-structure-grid article::before,
.upia-category-schemes-grid>div::before{
	content:"";
	position:absolute;
	top:0;
	left:0;
	right:0;
	height:4px;
	background:linear-gradient(90deg,#17698d,#71bfdc);
	opacity:.85;
}
.upia-mother-card:hover,
.upia-category-product-grid>a:hover,
.upia-product-comparison-grid>a:hover{
	transform:translateY(-5px)!important;
	border-color:#abcbd8!important;
	box-shadow:var(--upia-shadow-hover)!important;
}

/* Category pages: alternate pale and white bands with stronger separators. */
.upia-category-market,
.upia-category-foundation,
.upia-category-data,
.upia-category-errors{
	position:relative;
	overflow:hidden;
}
.upia-category-market{
	background:
		radial-gradient(circle at 84% 14%,rgba(58,151,187,.11),transparent 30%),
		linear-gradient(180deg,#f6fafb,#f1f7f9)!important;
}
.upia-category-foundation{
	background:
		linear-gradient(135deg,rgba(235,245,248,.72),rgba(255,255,255,.95))!important;
}
.upia-category-products{
	background:#fff;
}
.upia-category-structure{
	background:
		linear-gradient(180deg,#fff,#f8fbfc)!important;
	border-top:1px solid #e2eaed;
	border-bottom:1px solid #e2eaed;
}
.upia-category-process-grid>div{
	background:linear-gradient(180deg,#fff,#f9fbfc);
}
.upia-category-process-grid>div:nth-child(2n){
	background:#f6fafb;
}

/* Product pages: more contrast between explanatory and technical zones. */
.upia-product-market{
	background:
		radial-gradient(circle at 86% 12%,rgba(58,151,187,.12),transparent 30%),
		linear-gradient(180deg,#f5f9fa,#eef5f7)!important;
}
.upia-product-foundation,
.upia-product-comparison,
.upia-product-amount,
.upia-product-text,
.upia-product-faq{
	position:relative;
}
.upia-product-foundation::before,
.upia-product-comparison::before,
.upia-product-amount::before,
.upia-product-text::before,
.upia-product-faq::before{
	content:"";
	position:absolute;
	top:0;
	left:50%;
	width:min(1180px,calc(100% - 40px));
	height:1px;
	background:linear-gradient(90deg,transparent,#dce6ea 18%,#dce6ea 82%,transparent);
	transform:translateX(-50%);
}
.upia-product-law,
.upia-product-duration,
.upia-product-parties{
	background:
		linear-gradient(135deg,#f8fbfc 0%,#f2f7f9 100%)!important;
}

/* Dark technical bands gain depth without becoming decorative. */
.upia-mother-checks,
.upia-market-access,
.upia-category-data,
.upia-category-errors,
.upia-product-function,
.upia-product-data,
.upia-product-errors,
.upia-request-band{
	position:relative;
	overflow:hidden;
	background-image:
		radial-gradient(circle at 88% 14%,rgba(102,190,220,.15),transparent 28%),
		linear-gradient(135deg,#14394c,#173d52)!important;
}
.upia-mother-checks::after,
.upia-market-access::after,
.upia-category-data::after,
.upia-category-errors::after,
.upia-product-function::after,
.upia-product-data::after,
.upia-product-errors::after,
.upia-request-band::after{
	content:"";
	position:absolute;
	inset:auto -80px -100px auto;
	width:300px;
	height:300px;
	border:1px solid rgba(255,255,255,.08);
	border-radius:50%;
	pointer-events:none;
}

/* Request band: enforce accessible contrast on every internal template. */
.upia-request-band .upia-request-intro,
.upia-request-band .upia-request-intro h2,
.upia-request-band .upia-request-intro h3,
.upia-request-band .upia-request-intro p,
.upia-request-band .upia-request-intro li{
	color:#f7fbfd!important;
}
.upia-request-band .upia-request-intro .upia-kicker,
.upia-request-band .upia-request-intro .upia-kicker-light{
	color:#86cde7!important;
}
.upia-request-band .upia-request-intro ul{
	color:#f7fbfd!important;
}
.upia-request-band .upia-request-intro li::marker{
	color:#79c7e4!important;
}
.upia-request-band .upia-request-box{
	position:relative;
	z-index:2;
	background:#fff!important;
	color:#173d52!important;
	box-shadow:0 18px 42px rgba(4,25,36,.20)!important;
}
.upia-request-band .upia-request-box small{
	color:#1176a2!important;
}
.upia-request-band .upia-request-box h2,
.upia-request-band .upia-request-box h3{
	color:#173d52!important;
}
.upia-request-band .upia-request-box p,
.upia-request-band .upia-request-box li{
	color:#4f6674!important;
}
.upia-request-band .upia-request-box .upia-button,
.upia-request-band .upia-request-box .upia-button-light{
	background:#0f79aa!important;
	color:#fff!important;
	border-color:#0f79aa!important;
}

/* Homepage only: restore the approved light request band for legibility. */
body.home .upia-request-band,
body.page-id-80 .upia-request-band{
	background-image:
		radial-gradient(circle at 92% 18%,rgba(21,155,211,.10),transparent 28%),
		linear-gradient(90deg,#dceffd 0%,#eef8fd 58%,#f7fbfe 100%)!important;
	color:#123f7b!important;
}
body.home .upia-request-band::after,
body.page-id-80 .upia-request-band::after{
	border-color:rgba(15,121,170,.12)!important;
}
body.home .upia-request-band .upia-request-intro,
body.home .upia-request-band .upia-request-intro h2,
body.home .upia-request-band .upia-request-intro h3,
body.page-id-80 .upia-request-band .upia-request-intro,
body.page-id-80 .upia-request-band .upia-request-intro h2,
body.page-id-80 .upia-request-band .upia-request-intro h3{
	color:#123f7b!important;
}
body.home .upia-request-band .upia-request-intro p,
body.page-id-80 .upia-request-band .upia-request-intro p{
	color:#4b6277!important;
}
body.home .upia-request-band .upia-request-intro ul,
body.home .upia-request-band .upia-request-intro li,
body.page-id-80 .upia-request-band .upia-request-intro ul,
body.page-id-80 .upia-request-band .upia-request-intro li{
	color:#294d69!important;
}
body.home .upia-request-band .upia-request-intro .upia-kicker,
body.home .upia-request-band .upia-request-intro .upia-kicker-light,
body.page-id-80 .upia-request-band .upia-request-intro .upia-kicker,
body.page-id-80 .upia-request-band .upia-request-intro .upia-kicker-light{
	color:#0b6fa8!important;
}
body.home .upia-request-band .upia-request-intro li::before,
body.home .upia-request-band .upia-request-intro li::marker,
body.page-id-80 .upia-request-band .upia-request-intro li::before,
body.page-id-80 .upia-request-band .upia-request-intro li::marker{
	color:#0b78b5!important;
}

/* Notes/callouts get a visible identity. */
.upia-mother-note,
.upia-category-market-note,
.upia-product-market-note,
.upia-reference-box,
.upia-product-law-note,
.upia-category-law-note,
.upia-product-note{
	position:relative;
	border-left:4px solid #4b9dbc!important;
	background:linear-gradient(145deg,#fff,#f4f9fb)!important;
}
.upia-mother-note::after,
.upia-category-market-note::after,
.upia-product-market-note::after,
.upia-reference-box::after{
	content:"";
	position:absolute;
	top:18px;
	right:18px;
	width:34px;
	height:34px;
	border:1px solid #d8e8ee;
	border-radius:50%;
	background:radial-gradient(circle,#cbe7f1 0 28%,transparent 30%);
	opacity:.8;
}

/* Process blocks become an intentional visual sequence without decorative numbers. */
.upia-process-steps,
.upia-category-process-grid,
.upia-product-process-grid{
	box-shadow:var(--upia-shadow-soft);
}
.upia-process-steps>div,
.upia-category-process-grid>div,
.upia-product-process-grid>div{
	position:relative;
}
.upia-process-steps>div::before,
.upia-category-process-grid>div::before,
.upia-product-process-grid>div::before{
	content:"";
	position:absolute;
	left:0;
	top:0;
	bottom:0;
	width:3px;
	background:#6eb7d2;
	opacity:.7;
}

/* FAQ area becomes a deliberate closing block rather than plain text. */
.upia-mother-faq,
.upia-category-faq,
.upia-product-faq,
.upia-legacy-faq{
	padding-left:34px!important;
	padding-right:34px!important;
	border:1px solid #dce6ea;
	border-radius:20px;
	background:
		linear-gradient(180deg,#fff,#f9fbfc);
	box-shadow:var(--upia-shadow-soft);
}
.upia-mother-faq details,
.upia-category-faq details,
.upia-product-faq details,
.upia-legacy-faq details{
	background:rgba(255,255,255,.72)!important;
}

/* Related links look like navigation cards, not plain links. */
.upia-category-related-links a,
.upia-product-related-links a{
	border-color:#d7e3e8!important;
	box-shadow:0 8px 20px rgba(23,61,82,.05);
	transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.upia-category-related-links a:hover,
.upia-product-related-links a:hover{
	transform:translateY(-2px);
	border-color:#b6d2dd!important;
	box-shadow:0 14px 28px rgba(23,61,82,.09);
}

/* Internal request band: light version. Homepage intentionally excluded. */
.upia-mother-page .upia-request-band,
.upia-category-page .upia-request-band,
.upia-product-page .upia-request-band{
	background:
		radial-gradient(circle at 88% 18%,rgba(72,164,199,.12),transparent 30%),
		linear-gradient(135deg,#f7fbfc 0%,#eaf5f8 100%)!important;
	border-top:1px solid #d8e6eb;
	border-bottom:1px solid #d8e6eb;
	color:#173d52!important;
}
.upia-mother-page .upia-request-band::after,
.upia-category-page .upia-request-band::after,
.upia-product-page .upia-request-band::after{
	border-color:rgba(45,137,174,.14)!important;
}
.upia-mother-page .upia-request-band .upia-request-intro,
.upia-category-page .upia-request-band .upia-request-intro,
.upia-product-page .upia-request-band .upia-request-intro,
.upia-mother-page .upia-request-band .upia-request-intro h2,
.upia-category-page .upia-request-band .upia-request-intro h2,
.upia-product-page .upia-request-band .upia-request-intro h2,
.upia-mother-page .upia-request-band .upia-request-intro h3,
.upia-category-page .upia-request-band .upia-request-intro h3,
.upia-product-page .upia-request-band .upia-request-intro h3{
	color:#173d52!important;
}
.upia-mother-page .upia-request-band .upia-request-intro p,
.upia-category-page .upia-request-band .upia-request-intro p,
.upia-product-page .upia-request-band .upia-request-intro p,
.upia-mother-page .upia-request-band .upia-request-intro li,
.upia-category-page .upia-request-band .upia-request-intro li,
.upia-product-page .upia-request-band .upia-request-intro li{
	color:#526b78!important;
}
.upia-mother-page .upia-request-band .upia-request-intro .upia-kicker,
.upia-category-page .upia-request-band .upia-request-intro .upia-kicker,
.upia-product-page .upia-request-band .upia-request-intro .upia-kicker,
.upia-mother-page .upia-request-band .upia-request-intro .upia-kicker-light,
.upia-category-page .upia-request-band .upia-request-intro .upia-kicker-light,
.upia-product-page .upia-request-band .upia-request-intro .upia-kicker-light{
	color:#0f6f95!important;
}
.upia-mother-page .upia-request-band .upia-request-intro li::marker,
.upia-category-page .upia-request-band .upia-request-intro li::marker,
.upia-product-page .upia-request-band .upia-request-intro li::marker{
	color:#2d89ae!important;
}
.upia-mother-page .upia-request-band .upia-request-box,
.upia-category-page .upia-request-band .upia-request-box,
.upia-product-page .upia-request-band .upia-request-box{
	border:1px solid #d7e5ea!important;
	background:#fff!important;
	box-shadow:0 18px 40px rgba(23,61,82,.10)!important;
}
.upia-mother-page .upia-request-band .upia-request-box::before,
.upia-category-page .upia-request-band .upia-request-box::before,
.upia-product-page .upia-request-band .upia-request-box::before{
	content:"";
	position:absolute;
	left:0;
	top:0;
	bottom:0;
	width:4px;
	border-radius:14px 0 0 14px;
	background:linear-gradient(180deg,#177ba5,#6ab6d1);
}
.upia-mother-page .upia-request-band .upia-request-box .upia-button,
.upia-category-page .upia-request-band .upia-request-box .upia-button,
.upia-product-page .upia-request-band .upia-request-box .upia-button{
	box-shadow:0 8px 18px rgba(15,121,170,.16);
}

@media(max-width:980px){
	.upia-mother-intro{
		margin-top:48px;
		margin-bottom:48px;
		padding:40px 34px!important;
	}
}

@media(max-width:760px){
	.upia-mother-intro{
		margin-top:28px;
		margin-bottom:28px;
		padding:30px 22px!important;
		border-radius:16px;
	}
	.upia-mother-intro::before{
		left:22px;
	}
	.upia-guide-intro{
		padding-left:0!important;
		padding-right:0!important;
		border-left:0;
		border-right:0;
	}
	.upia-mother-faq,
	.upia-category-faq,
	.upia-product-faq,
	.upia-legacy-faq{
		padding-left:18px!important;
		padding-right:18px!important;
		border-radius:16px;
	}
}
