/*
Theme Name: Studio Legale Cesca
Theme URI: https://www.studiolegalecesca.it/
Author: Andrea Federici
Description: Tema leggero su misura per Studio Legale Cesca. Riproduce l'aspetto del precedente tema Pillar senza WPBakery e senza framework esterni. Compatibile con Elementor (gratuito): header, menu, footer e news sono gestiti dal tema, i contenuti delle pagine da Elementor. Font self-hosted (nessuna chiamata a Google Fonts).
Version: 1.0.0
Requires at least: 6.4
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: cesca
*/

/* ==========================================================================
   Variabili
   ========================================================================== */
:root {
	--c-primary: #425cbb;
	--c-dark: #232323;
	--c-darker: #1e1e1e;
	--c-heading: #343434;
	--c-text: #767676;
	--c-body-bg: #f8f8f8;
	--c-secondary-bg: #f4f4f4;
	--c-white: #ffffff;
	--c-line: #ebebeb;
	--f-body: 'Lora', 'Helvetica', 'Arial', serif;
	--f-head: 'Montserrat', 'Helvetica', 'Arial', sans-serif;
	--container: 1170px;
	--header-h: 65px;
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
@media (max-width: 1024px) { html { font-size: 87.5%; } }
body {
	margin: 0;
	font-family: var(--f-body);
	font-size: 1em;
	line-height: 1.625em;
	font-weight: 400;
	color: var(--c-text);
	background: var(--c-body-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}
img { max-width: 100%; height: auto; vertical-align: middle; }
a { color: var(--c-dark); text-decoration: none; transition: color .2s linear, opacity .2s linear; }
a:hover { text-decoration: underline; }
p, ul, ol, pre, table, blockquote { margin: 0 0 1.625em; }
ul, ol { padding-left: 1.3em; }
strong, b { font-weight: 600; }
hr { border: 0; border-top: 1px solid var(--c-line); margin: 1.625em 0; }
blockquote { font-size: 1.4375em; line-height: 1.6956em; font-style: italic; color: var(--c-dark); margin-bottom: 1.13em; }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
	font-family: var(--f-head);
	color: var(--c-heading);
	font-weight: 600;
	margin: 0;
	font-variant-ligatures: common-ligatures;
}
h1, .h1 { font-size: 4em; line-height: 1.015625em; margin-bottom: .40625em; }
h2, .h2 { font-size: 2.8125em; line-height: 1.15555556em; margin-bottom: .5778em; }
h3, .h3 { font-size: 2em; line-height: 1.421875em; margin-bottom: .8125em; }
h4, .h4 { font-size: 1.4375em; line-height: 1.41304348em; margin-bottom: 1.1304em; }
h5, .h5 { font-size: 1em; line-height: 1.625em; margin-bottom: 1.625em; }
h6, .h6 { font-size: .625em; line-height: 2.6em; margin-bottom: 2.3636em; text-transform: uppercase; letter-spacing: 1px; font-weight: 400; }
.lead { font-size: 1.4375em; line-height: 1.69565217em; margin-bottom: 1.1304em; }
em, i { font-style: italic; }
h1 em, h2 em, h3 em, h4 em { font-family: var(--f-body); font-weight: 400; }
@media (max-width: 767px) {
	h1, .h1 { font-size: 2em; line-height: 1.421875em; }
	h2, .h2 { font-size: 2em; line-height: 1.421875em; }
	h3, .h3 { font-size: 1.4375em; line-height: 1.625em; }
	.lead { line-height: 1.41304348em; }
}
.text-center { text-align: center; }
.type--fine-print { font-size: .6875em; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 10px; left: 10px; z-index: 10000; width: auto; height: auto; clip: auto; background: #fff; padding: 10px 16px; }

/* Layout */
.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 15px; }
.section { padding: 6.5em 0 8.125em; }
@media (max-width: 767px) { .section { padding: 4.875em 0; } }
.bg--dark { background: var(--c-dark); }
.bg--dark, .bg--dark *:not(a) { color: #f5f5f5; }
.bg--dark a { color: #fff; }
.bg--secondary { background: var(--c-secondary-bg); }
.bg--primary { background: var(--c-primary); }
.bg--primary, .bg--primary p, .bg--primary span, .bg--primary li, .bg--primary h1, .bg--primary h2, .bg--primary h3,
.bg--primary h4, .bg--primary h5, .bg--primary h6, .bg--primary a, .bg--primary i { color: #fff; }
.bg--white { background: #fff; }
.boxed { position: relative; overflow: hidden; padding: 2.4375em; margin-bottom: 30px; }
@media (max-width: 767px) { .boxed { padding: 1.625em; margin-bottom: 15px; } }
.box-shadow { box-shadow: 0 0 30px 0 rgba(0,0,0,.05); }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header { position: sticky; top: 0; z-index: 999; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.nav-bar {
	display: flex; align-items: center;
	height: var(--header-h);
	padding: 0 0 0 3.25em;
	background: var(--c-body-bg);
	box-shadow: 0 0 30px 0 rgba(0,0,0,.05);
	transition: box-shadow .3s;
}
.site-header.is-scrolled .nav-bar { box-shadow: 0 0 60px 0 rgba(0,0,0,.07); }
.nav-bar__logo { display: flex; align-items: center; margin-right: 26px; height: 100%; }
.nav-bar__logo a { display: flex; align-items: center; height: 100%; }
.nav-bar__logo img, .nav-bar__logo .custom-logo { max-height: 26px; width: auto; }
.nav-bar__logo .site-title { font-family: var(--f-head); font-size: 20px; font-weight: 500; color: var(--c-dark); }
.nav-bar__menu { flex: 1 1 auto; height: 100%; }
.nav-bar__menu ul { list-style: none; margin: 0; padding: 0; display: flex; height: 100%; }
.nav-bar__menu li { position: relative; }
.nav-bar__menu > ul > li > a {
	display: flex; align-items: center; height: 100%;
	padding: 0 1.3em;
	font-family: var(--f-head); font-size: 10px; font-weight: 500;
	letter-spacing: 1px; text-transform: uppercase;
	color: var(--c-dark);
	opacity: .9;
}
.nav-bar__menu > ul > li > a:hover { text-decoration: none; opacity: 1; color: var(--c-primary); }
.nav-bar__menu .current-menu-item > a, .nav-bar__menu .current_page_item > a { opacity: 1; }
.nav-bar__menu .sub-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 220px; height: auto; flex-direction: column; background: #fff; box-shadow: 0 0 30px rgba(0,0,0,.08); padding: 10px 0; }
.nav-bar__menu li:hover > .sub-menu, .nav-bar__menu li:focus-within > .sub-menu { display: flex; }
.nav-bar__menu .sub-menu a { display: block; padding: 6px 20px; font-family: var(--f-head); font-size: 10px; letter-spacing: 1px; text-transform: uppercase; line-height: 1.8; }
.nav-bar__social { display: flex; align-items: center; height: 100%; padding: 0 3.25em 0 1.625em; border-left: 1px solid rgba(35,35,35,.08); }
.social-list { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.social-list li { opacity: .5; transition: opacity .2s linear; }
.social-list li:hover { opacity: 1; }
.social-list a { display: inline-flex; width: 20px; height: 20px; align-items: center; justify-content: center; color: var(--c-dark); }
.social-list a:hover { text-decoration: none; }
.social-list svg { width: 14px; height: 14px; fill: currentColor; }
.nav-toggle { display: none; margin-left: auto; margin-right: 15px; width: 44px; height: 44px; border: 0; background: none; cursor: pointer; padding: 10px; }
.nav-toggle span { display: block; height: 2px; background: var(--c-dark); margin: 5px 0; transition: transform .3s, opacity .3s; }
.nav-toggle span:nth-child(1) { width: 100%; }
.nav-toggle span:nth-child(2) { width: 75%; margin-left: auto; }
.nav-toggle span:nth-child(3) { width: 50%; margin-left: auto; }
@media (max-width: 1280px) { .nav-bar { padding-left: 15px; } .nav-bar__social { padding-right: 15px; } }
@media (max-width: 990px) {
	.nav-bar { flex-wrap: wrap; height: auto; min-height: 80px; padding: 0 0 0 15px; }
	.nav-bar__logo { height: 80px; }
	.nav-bar__logo img, .nav-bar__logo .custom-logo { max-height: 32px; }
	.nav-toggle { display: block; }
	.nav-bar__menu, .nav-bar__social { display: none; flex: 1 0 100%; height: auto; border: 0; padding: 0 15px 20px 0; }
	.nav-bar.is-open .nav-bar__menu, .nav-bar.is-open .nav-bar__social { display: block; }
	.nav-bar__menu ul { flex-direction: column; height: auto; }
	.nav-bar__menu > ul > li > a { padding: 10px 0; height: auto; font-size: 12px; }
	.nav-bar__menu .sub-menu { position: static; display: block; box-shadow: none; background: none; padding: 0 0 0 15px; }
	.nav-bar.is-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.nav-bar.is-open .nav-toggle span:nth-child(2) { opacity: 0; }
	.nav-bar.is-open .nav-toggle span:nth-child(3) { width: 100%; transform: translateY(-7px) rotate(-45deg); }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--c-dark); color: #f5f5f5; padding-top: 6.5em; }
.site-footer .footer__widgets { padding-bottom: 1.625em; }
.site-footer .footer__widgets:empty { display: none; }
.footer__lower { position: relative; margin-top: 4.875em; background: var(--c-darker); padding: 1.625em 0; }
.footer__lower .container { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.footer__lower .type--fine-print { opacity: .5; color: #f5f5f5; line-height: 26px; }
.footer__lower a { color: #fff; text-decoration: underline; }
.top-link { flex: 0 0 auto; width: 3.25em; height: 3.25em; border-radius: 50%; background: #3d3d3d; display: inline-flex; align-items: center; justify-content: center; position: relative; bottom: 3.25em; color: #fff; transition: background .2s ease; }
.top-link:hover { background: #4a4a4a; text-decoration: none; }
.top-link svg { width: 16px; height: 16px; fill: none; stroke: #fff; stroke-width: 1.5; }
@media (max-width: 990px) { .top-link { bottom: 0; } }
@media (max-width: 767px) { .footer__lower .container { flex-direction: column; text-align: center; } }

/* ==========================================================================
   Pagine standard (senza Elementor)
   ========================================================================== */
.page-title { padding: 6.5em 0 3.25em; }
.page-title h1 { margin: 0; }
.entry-content { padding: 6.5em 0 8.125em; }
.entry-content h5 { margin-top: 1.625em; margin-bottom: .8125em; }
.entry-content::after { content: ''; display: table; clear: both; }
.entry-content img.alignright, .alignright { float: right; margin: 0 0 1em 1.5em; }
.entry-content img.alignleft, .alignleft { float: left; margin: 0 1.5em 1em 0; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption-text { font-size: .875em; }
.elementor-page .site-main { padding: 0; }

/* ==========================================================================
   News: griglia card
   ========================================================================== */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 30px; align-items: start; }
.news-grid.is-masonry { display: block; position: relative; }
.news-grid.is-masonry .news-card { position: absolute; width: calc((100% - 60px) / 3); }
@media (max-width: 990px) { .news-grid { grid-template-columns: repeat(2, 1fr); } .news-grid.is-masonry .news-card { width: calc((100% - 30px) / 2); } }
@media (max-width: 767px) { .news-grid { grid-template-columns: 1fr; } .news-grid.is-masonry { display: grid; } .news-grid.is-masonry .news-card { position: static; width: auto; } }
.news-card { margin-bottom: 30px; }
.news-card a { display: block; color: inherit; }
.news-card a:hover { text-decoration: none; }
.news-card .boxed { margin: 0; transition: box-shadow .2s linear; }
.news-card a:hover .boxed { box-shadow: 0 0 40px 0 rgba(0,0,0,.09); }
.news-card__date { display: block; font-size: 1em; line-height: 20px; margin-bottom: 4px; color: var(--c-text); }
.news-card h5 { margin: 0; font-size: 1em; color: var(--c-dark); }
.news-card hr { margin: 1.625em 0; }
.news-card p { margin: 0; }
.pagination-container { margin-top: 3.25em; padding-top: 1.625em; border-top: 1px solid var(--c-line); text-align: center; }
.pagination-container .page-numbers { list-style: none; display: inline-flex; gap: 4px; padding: 0; margin: 0; }
.pagination-container a.page-numbers, .pagination-container span.page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	width: 35px; height: 35px; border-radius: 50%;
	font-family: var(--f-head); font-size: 10px; font-weight: 600; letter-spacing: 1px; color: var(--c-heading);
}
.pagination-container a.page-numbers:hover { background: #efefef; text-decoration: none; }
.pagination-container .current { background: #ececec; color: var(--c-dark); }
.pagination-container .prev, .pagination-container .next { opacity: .5; }

/* ==========================================================================
   Articolo singolo
   ========================================================================== */
.blog-post__title { padding: 9.75em 0 6.5em; text-align: center; }
.blog-post__title h1 { font-size: 2.8125em; line-height: 1.15555556em; margin: 0 auto 52px; max-width: 750px; }
.blog-post__author { font-family: var(--f-head); font-size: 10px; line-height: 29px; letter-spacing: 1px; text-transform: uppercase; }
.blog-post__body { max-width: 975px; margin: 0 auto; padding: 0 15px 8.125em; }
.blog-post__hero { margin-bottom: 3.25em; box-shadow: 0 0 30px 0 rgba(0,0,0,.08); }
.blog-post__hero img { width: 100%; display: block; }
.blog-post__columns { display: grid; grid-template-columns: minmax(0, 1fr) 214px; gap: 80px; }
@media (max-width: 990px) { .blog-post__columns { grid-template-columns: 1fr; gap: 3.25em; } }
.blog-post__content p + h5 { margin-top: 3.25em; }
.blog-post__share { margin-top: 3.25em; }
.post-navigation { margin-top: 3.25em; display: flex; justify-content: space-between; gap: 20px; font-family: var(--f-head); font-size: .75em; }
@media (max-width: 767px) { .blog-post__title { padding: 4.875em 0 3.25em; } .blog-post__title h1 { font-size: 2em; } }

/* Sidebar */
.sidebar .widget { margin-bottom: 3.25em; }
.sidebar .widget-title, .sidebar .wp-block-heading { font-family: var(--f-head); font-size: 12px; line-height: 26px; font-weight: 400; letter-spacing: 1px; text-transform: uppercase; color: var(--c-heading); margin: 0 0 1.625em; }
.sidebar ul { list-style: none; padding: 0; margin: 0; }
.sidebar li { padding: .8125em 0; border-top: 1px solid var(--c-line); }
.sidebar li:first-child { border-top: 0; padding-top: 0; }
.sidebar li a { color: var(--c-heading); }
.search-form { position: relative; }
.search-form input[type="search"] { width: 100%; padding: .8125em 1.3em .8125em 3em; border: 0; border-radius: 50px; background: #fff; font-family: var(--f-body); font-size: 14px; color: var(--c-text); box-shadow: 0 0 30px rgba(0,0,0,.05); }
.search-form::before { content: ''; position: absolute; left: 1.2em; top: 50%; width: 14px; height: 14px; transform: translateY(-50%); background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Ccircle cx='10.5' cy='10.5' r='7'/%3E%3Cpath d='M16 16l6 6'/%3E%3C/svg%3E"); }
.search-form button, .search-form input[type="submit"] { position: absolute; left: -9999px; }

/* ==========================================================================
   Moduli (Contact Form 7 e input generici)
   ========================================================================== */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="search"], input[type="password"], input[type="number"], textarea, select {
	font-family: var(--f-body); font-size: 1em; line-height: 1.625em; color: var(--c-text);
	padding: .8125em 1.625em; border: 0; border-radius: 5px; background: #fff; width: 100%; outline: none;
}
input::placeholder, textarea::placeholder { font-style: italic; color: #b5b5b5; opacity: 1; }
input:focus, textarea:focus, select:focus { box-shadow: 0 0 0 2px rgba(66,92,187,.25); }
textarea { display: block; height: 110px; min-height: 110px; resize: vertical; }
input[type="submit"], button.button, .button, .wpcf7-submit {
	display: inline-block; height: 52px; padding: 0 3.25em; border: 0; border-radius: 5px; cursor: pointer;
	background: var(--c-primary); color: #fff;
	font-family: var(--f-head); font-size: 10px !important; letter-spacing: 1px; text-transform: uppercase;
	transition: background .2s;
}
input[type="submit"]:hover, .wpcf7-submit:hover { background: #3a52a8; }
.cesca-form .cf-row { margin-bottom: 1.625em; }
.cesca-form .cf-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
@media (max-width: 767px) { .cesca-form .cf-2 { grid-template-columns: 1fr; gap: 1.625em; } }
.cesca-form .cf-icon { position: relative; }
.cesca-form .cf-icon input { padding-left: 4.0625em; }
.cesca-form .cf-icon::before { content: ''; position: absolute; left: 1.3em; top: 26px; transform: translateY(-50%); width: 22px; height: 22px; z-index: 2; background: no-repeat center/contain; opacity: .7; pointer-events: none; }
.cesca-form .cf-icon--user::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23232323' stroke-width='1'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20c.6-4 3.2-6.2 6.5-6.2s5.9 2.2 6.5 6.2'/%3E%3Ccircle cx='16.5' cy='7.5' r='3'/%3E%3Cpath d='M17 12.6c2.6.3 4.2 2.3 4.6 5.4'/%3E%3C/svg%3E"); }
.cesca-form .cf-icon--mail::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23232323' stroke-width='1'%3E%3Crect x='2.5' y='5' width='19' height='14' rx='1'/%3E%3Cpath d='M2.5 6l9.5 7 9.5-7'/%3E%3C/svg%3E"); }
.cesca-form .cf-icon--phone::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23232323' stroke-width='1'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M9.2 7.3l1.2 2.6-1.1 1.1c.7 1.6 2 2.9 3.6 3.6l1.1-1.1 2.6 1.2-.5 1.9c-4.6-.2-8.6-4.2-8.8-8.8z'/%3E%3C/svg%3E"); }
.cesca-form .wpcf7-quiz-label, .wpcf7 label { display: block; font-family: var(--f-head); font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: var(--c-heading); margin: 0 0 .5em 1.3em; }
.cesca-form .cf-quiz label { display: flex; align-items: center; gap: 16px; margin: 0; }
.cesca-form .cf-quiz .wpcf7-quiz-label { display: inline; margin: 0 0 0 2.6em; line-height: 52px; }
.cesca-form .cf-quiz input { max-width: 270px; }
.cesca-form .wpcf7-submit { width: 100%; }
.cesca-form .cf-row:last-child { margin-bottom: 0; }
.wpcf7-not-valid-tip { font-size: 12px; margin: 4px 0 0 1.3em; }
.wpcf7 form .wpcf7-response-output { margin: 1.625em 0 0; border-radius: 5px; font-size: 14px; }
.wpcf7-spinner { display: block; margin: 10px auto 0; }

/* ==========================================================================
   Elementor: componenti del tema riutilizzabili
   ========================================================================== */
.elementor-widget-text-editor > .elementor-widget-container > *:last-child,
.elementor-widget-text-editor > *:last-child { margin-bottom: 0; }
.cesca-text-dark, .cesca-text-dark * { color: #f5f5f5; }
.cesca-text-white, .cesca-text-white h1, .cesca-text-white h2, .cesca-text-white h3, .cesca-text-white h4, .cesca-text-white p { color: #fff !important; }
.cesca-text h1, .cesca-text h2, .cesca-text h3, .cesca-text h4 { color: var(--c-heading); }
.cesca-text-dark h2, .cesca-text-dark h4 { color: #f5f5f5; }

/* Riquadro "feature" (icon box) – varianti */
.elementor-widget-icon-box.cesca-feature .elementor-icon-box-wrapper { gap: 0; }
.elementor-widget-icon-box.cesca-feature .elementor-icon { font-size: 4em; }
.elementor-widget-icon-box.cesca-feature .elementor-icon-box-title { font-family: var(--f-head); font-weight: 600; margin: 0; }
.elementor-widget-icon-box.cesca-feature .elementor-icon-box-description { margin: 0; }

/* small: icona piccola, titolo maiuscoletto (Home – blu) */
.elementor-widget-icon-box.cesca-feature--small .elementor-icon-box-wrapper { text-align: left; }
.elementor-widget-icon-box.cesca-feature--small .elementor-icon { font-size: 45px; }
.elementor-widget-icon-box.cesca-feature--small .elementor-icon-box-title { font-size: 12px; line-height: 26px; font-weight: 400; letter-spacing: 1px; text-transform: uppercase; margin: 19px 0 19px; }
.elementor-widget-icon-box.cesca-feature--small .elementor-icon-box-description { line-height: 1.625em; min-height: 4.875em; }

/* boxed: card bianca centrata (Contatti) */
.elementor-widget-icon-box.cesca-feature--boxed .elementor-icon-box-wrapper { background: #fff; padding: 2.4375em; text-align: center; height: 100%; transition: box-shadow .2s linear; }
.elementor-widget-icon-box.cesca-feature--boxed .elementor-icon-box-wrapper:hover { box-shadow: 0 0 30px 0 rgba(0,0,0,.05); }
.elementor-widget-icon-box.cesca-feature--boxed .elementor-icon-box-title { font-size: 1.4375em; line-height: 1.41304348em; margin: 1.2308em 0; }
.elementor-widget-icon-box.cesca-feature--boxed .elementor-icon-box-description { min-height: 4.875em; }

/* boxed-icon: icona su fascia grigia + testo su bianco (Aree di attività) */
.elementor-widget-icon-box.cesca-feature--boxed-icon .elementor-icon-box-wrapper { background: #fff; text-align: left; transition: box-shadow .2s linear; }
.elementor-widget-icon-box.cesca-feature--boxed-icon .elementor-icon-box-wrapper:hover { box-shadow: 0 0 30px 0 rgba(0,0,0,.05); }
.elementor-widget-icon-box.cesca-feature--boxed-icon .elementor-icon-box-icon { display: block; width: 100%; margin: 0 !important; background: #f4f4f4; padding: 3.25em 0; text-align: center; }
.elementor-widget-icon-box.cesca-feature--boxed-icon .elementor-icon { font-size: 3em; }
.elementor-widget-icon-box.cesca-feature--boxed-icon .elementor-icon-box-content { padding: 2.4375em; }
.elementor-widget-icon-box.cesca-feature--boxed-icon .elementor-icon-box-title { font-size: 1em; line-height: 1.625em; margin: 0 0 1.625em; }

/* Blocco testo + immagine (metà / metà) */
.elementor.elementor .e-con > .elementor-widget.cesca-imageblock__text, .cesca-imageblock__text { max-width: 325px; }
@media (max-width: 767px) { .elementor.elementor .e-con > .elementor-widget.cesca-imageblock__text { max-width: none; } }

/* Mappa a tutta larghezza */
.elementor-widget-google_maps iframe { display: block; filter: grayscale(.15); }

/* Elementor: neutralizza i colori/font globali del kit per ereditare quelli del tema */
.elementor-widget-text-editor { color: inherit; font-family: inherit; }
