/* CatastoDigitale.it Portal v2.0 */
.public-body {
    --portal-ink: #10201e;
    --portal-muted: #60726f;
    --portal-border: #d9e5e2;
    --portal-surface: #ffffff;
    --portal-soft: #f1f7f5;
    --portal-accent: #0b665b;
    --portal-accent-2: #16a085;
    --portal-deep: #092f2b;
    --portal-warm: #f6f1e8;
    background: #fbfcfc;
    color: var(--portal-ink);
}
.public-body.portal-theme-geo {
    --portal-accent: #155f8a;
    --portal-accent-2: #1c87b9;
    --portal-deep: #0d3149;
    --portal-soft: #eef6fb;
    --portal-warm: #eef2f5;
}
.public-body.portal-theme-terra {
    --portal-accent: #526b3f;
    --portal-accent-2: #829862;
    --portal-deep: #2e3d25;
    --portal-soft: #f1f5ed;
    --portal-warm: #f5efe2;
}
.public-body .button-primary { background: var(--portal-accent); border-color: var(--portal-accent); }
.public-body .button-primary:hover { background: var(--portal-deep); border-color: var(--portal-deep); }
.public-body .eyebrow { color: var(--portal-accent); }
.portal-header { border-bottom-color: rgba(20,60,55,.10); }
.portal-header-inner { min-height: 76px; }
.portal-brand { font-size: 1.05rem; }
.portal-brand .brand-mark { background: var(--portal-accent); }
.portal-nav { align-items: center; }
.portal-nav a { padding: 8px 0; position: relative; }
.portal-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:2px; height:2px; background:var(--portal-accent); transition:right .2s ease; }
.portal-nav a:hover::after { right:0; }
.portal-nav .nav-map-cta { padding: 10px 15px; border-radius: 999px; color: #fff; background: var(--portal-accent); }
.portal-nav .nav-map-cta::after { display:none; }
.portal-mobile-menu { display: none; position: relative; }
.portal-mobile-menu summary { list-style: none; width: 42px; height: 42px; border: 1px solid var(--portal-border); background:#fff; border-radius:12px; display:grid; place-items:center; cursor:pointer; font-size:1.15rem; }
.portal-mobile-menu summary::-webkit-details-marker { display:none; }
.portal-mobile-menu nav { position:absolute; right:0; top:50px; min-width:250px; padding:10px; border:1px solid var(--portal-border); border-radius:16px; background:#fff; box-shadow:0 22px 55px rgba(20,50,45,.18); display:grid; gap:4px; }
.portal-mobile-menu nav a { padding:11px 12px; border-radius:10px; font-weight:700; }
.portal-mobile-menu nav a:hover { background:var(--portal-soft); color:var(--portal-accent); }

.portal-hero { position:relative; overflow:hidden; padding:86px 0 76px; background:radial-gradient(circle at 85% 5%, color-mix(in srgb, var(--portal-accent) 18%, transparent), transparent 36%), linear-gradient(140deg,#f8fbfa 0%,var(--portal-soft) 60%,#fff 100%); }
.portal-hero::before { content:""; position:absolute; width:460px; height:460px; border:1px solid color-mix(in srgb,var(--portal-accent) 18%,transparent); border-radius:50%; left:-260px; top:-260px; }
.portal-hero-grid { display:grid; grid-template-columns:minmax(0,1.03fr) minmax(390px,.97fr); gap:72px; align-items:center; }
.portal-hero-copy h1 { max-width:780px; margin-bottom:22px; font-size:clamp(2.7rem,5vw,5.1rem); line-height:.99; letter-spacing:-.055em; }
.portal-hero-lead { max-width:690px; margin:0; color:var(--portal-muted); font-size:1.14rem; line-height:1.7; }
.button-large { padding:14px 20px; min-height:50px; font-weight:800; }
.button-ghost { background:rgba(255,255,255,.68); border:1px solid var(--portal-border); color:var(--portal-ink); }
.button-ghost:hover { border-color:var(--portal-accent); color:var(--portal-accent); }
.hero-proof { display:flex; flex-wrap:wrap; gap:14px 24px; margin-top:28px; color:var(--portal-muted); font-size:.82rem; font-weight:700; }
.hero-proof span { display:flex; align-items:center; gap:7px; }
.hero-proof b { color:var(--portal-accent); font-size:.68rem; letter-spacing:.08em; }

.portal-map-preview { position:relative; min-height:430px; border:10px solid rgba(255,255,255,.84); border-radius:32px; overflow:hidden; background:#8c9d85; box-shadow:0 35px 80px rgba(22,65,57,.2); isolation:isolate; }
.preview-map-picture { position:absolute; inset:0; z-index:1; display:block; width:100%; height:100%; }
.preview-map-image { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.preview-satellite { position:absolute; inset:0; background:#68755d url(../img/satellite-preview.svg) center/cover no-repeat; filter:saturate(.86) contrast(1.04); transform:scale(1.02); }
.preview-satellite::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(15,35,28,.12)); mix-blend-mode:multiply; }
.preview-road { position:absolute; z-index:2; height:28px; background:#e2ddd0; border:4px solid #c5bca8; box-shadow:0 0 0 1px rgba(255,255,255,.7); }
.preview-road-a { width:120%; left:-10%; top:54%; rotate:-13deg; }
.preview-road-b { width:85%; left:34%; top:19%; rotate:67deg; }
.preview-parcel { position:absolute; z-index:3; border:3px solid #fff; background:rgba(11,102,91,.17); clip-path:polygon(8% 4%,92% 0,100% 76%,70% 100%,0 88%); display:grid; place-items:center; color:#fff; font-size:.72rem; font-weight:900; text-shadow:0 1px 4px rgba(0,0,0,.6); }
.preview-parcel-a { width:42%; height:33%; left:8%; top:9%; transform:rotate(-8deg); }
.preview-parcel-b { width:40%; height:34%; right:7%; top:35%; transform:rotate(7deg); border-color:#ffb75e; background:rgba(255,149,36,.23); }
.preview-parcel-c { width:37%; height:30%; left:17%; bottom:5%; transform:rotate(4deg); }
.preview-pin { position:absolute; z-index:5; right:25%; top:47%; width:48px; height:48px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--portal-accent); box-shadow:0 0 0 8px rgba(255,255,255,.5),0 15px 30px rgba(0,0,0,.25); font-size:1.4rem; }
.home-layout-map-first .portal-hero-grid { grid-template-columns:minmax(420px,1.15fr) minmax(0,.85fr); }
.home-layout-map-first .portal-map-preview { grid-column:1; grid-row:1; min-height:520px; }
.home-layout-map-first .portal-hero-copy { grid-column:2; grid-row:1; }
.home-layout-map-first .portal-hero-copy h1 { font-size:clamp(2.5rem,4.3vw,4.4rem); }
.home-layout-editorial .portal-hero-grid { grid-template-columns:1fr; text-align:center; }
.home-layout-editorial .portal-hero-copy { max-width:980px; margin-inline:auto; }
.home-layout-editorial .portal-hero-copy h1,.home-layout-editorial .portal-hero-lead { margin-inline:auto; }
.home-layout-editorial .hero-actions,.home-layout-editorial .hero-proof { justify-content:center; }
.home-layout-editorial .portal-map-preview { width:min(100%,1000px); min-height:390px; margin-inline:auto; }

.portal-trust-band { border-top:1px solid var(--portal-border); border-bottom:1px solid var(--portal-border); background:#fff; }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.trust-grid > div { min-height:112px; padding:22px 20px; display:flex; align-items:center; gap:14px; border-right:1px solid var(--portal-border); }
.trust-grid > div:last-child { border-right:0; }
.trust-icon { width:38px; height:38px; flex:0 0 38px; border-radius:10px; display:grid; place-items:center; background:var(--portal-soft); color:var(--portal-accent); font-weight:900; }
.trust-grid strong,.trust-grid small { display:block; }
.trust-grid strong { font-size:.9rem; margin-bottom:3px; }
.trust-grid small { color:var(--portal-muted); line-height:1.35; }

.portal-section { padding:88px 0; }
.portal-section-soft { background:var(--portal-soft); border-block:1px solid color-mix(in srgb,var(--portal-border) 85%,transparent); }
.portal-section-intro { padding-top:100px; }
.split-copy { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr); gap:80px; align-items:start; }
.split-copy h2,.portal-heading h2,.how-copy h2,.professional-copy h2,.faq-grid h2 { font-size:clamp(2rem,3.4vw,3.35rem); letter-spacing:-.045em; }
.prose-lead { color:var(--portal-muted); font-size:1.04rem; }
.prose-lead p:first-child { margin-top:0; }
.portal-heading { align-items:end; }
.text-link { color:var(--portal-accent); font-weight:800; }
.text-link:hover { text-decoration:underline; }
.feature-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.feature-card { position:relative; min-height:290px; padding:28px; border:1px solid var(--portal-border); border-radius:22px; background:#fff; display:flex; flex-direction:column; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.feature-card:hover { transform:translateY(-4px); border-color:color-mix(in srgb,var(--portal-accent) 35%,var(--portal-border)); box-shadow:0 22px 45px rgba(20,60,55,.09); }
.feature-number { color:var(--portal-accent); font-size:.7rem; font-weight:900; letter-spacing:.12em; }
.feature-card h3 { margin:34px 0 13px; font-size:1.35rem; }
.feature-card p { margin:0 0 22px; color:var(--portal-muted); }
.feature-card a { margin-top:auto; color:var(--portal-accent); font-weight:800; font-size:.88rem; }

.how-grid { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:90px; align-items:start; }
.how-copy { position:sticky; top:110px; }
.how-copy p { color:var(--portal-muted); margin-bottom:26px; }
.how-steps { list-style:none; margin:0; padding:0; display:grid; gap:0; border-top:1px solid var(--portal-border); }
.how-steps li { display:grid; grid-template-columns:74px 1fr; gap:20px; padding:30px 0; border-bottom:1px solid var(--portal-border); }
.how-steps li > span { width:48px; height:48px; border-radius:50%; display:grid; place-items:center; color:#fff; background:var(--portal-accent); font-weight:900; }
.how-steps strong { font-size:1.17rem; }
.how-steps p { margin:7px 0 0; color:var(--portal-muted); }

.professional-section { background:var(--portal-deep); color:#fff; }
.professional-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.professional-copy .eyebrow { color:#9edfd3; }
.professional-copy p { color:rgba(255,255,255,.7); }
.button-dark { background:#fff; border-color:#fff; color:var(--portal-deep); }
.professional-usecases { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.professional-usecases > div { padding:22px; border:1px solid rgba(255,255,255,.14); border-radius:18px; background:rgba(255,255,255,.055); }
.professional-usecases strong,.professional-usecases span { display:block; }
.professional-usecases strong { margin-bottom:8px; }
.professional-usecases span { color:rgba(255,255,255,.64); font-size:.9rem; }
.inline-links { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:22px; }
.inline-links a { color:var(--portal-accent); font-weight:800; }
.article-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.article-card { padding:26px; border:1px solid var(--portal-border); border-radius:20px; background:#fff; }
.article-card-top { display:flex; justify-content:space-between; gap:12px; color:var(--portal-muted); font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; font-weight:800; }
.article-card h3 { margin:24px 0 12px; font-size:1.28rem; }
.article-card p { color:var(--portal-muted); font-size:.93rem; }
.faq-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:80px; align-items:start; }
.faq-grid > div:first-child { position:sticky; top:110px; }
.faq-list { border-top:1px solid var(--portal-border); }
.faq-list details { border-bottom:1px solid var(--portal-border); padding:0; }
.faq-list summary { padding:22px 40px 22px 0; cursor:pointer; font-size:1.04rem; font-weight:800; position:relative; list-style:none; }
.faq-list summary::after { content:"+"; position:absolute; right:2px; top:18px; color:var(--portal-accent); font-size:1.35rem; }
.faq-list details[open] summary::after { content:"−"; }
.faq-list p { margin:0 0 22px; color:var(--portal-muted); }
.portal-cta-section { padding:0 0 88px; }
.portal-cta-box { padding:40px 44px; border-radius:26px; background:linear-gradient(120deg,var(--portal-accent),var(--portal-deep)); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:40px; }
.portal-cta-box .eyebrow { color:rgba(255,255,255,.72); }
.portal-cta-box h2 { margin:0 0 8px; font-size:clamp(1.8rem,3vw,2.8rem); }
.portal-cta-box p { margin:0; max-width:760px; color:rgba(255,255,255,.72); }
.button-light { background:#fff; color:var(--portal-deep); border-color:#fff; white-space:nowrap; }
.compact-cta { padding-top:20px; }

/* Pagine editoriali */
.content-hero,.article-hero { padding:72px 0 58px; background:linear-gradient(150deg,var(--portal-soft),#fff 72%); border-bottom:1px solid var(--portal-border); }
.content-hero-inner,.article-hero-inner { max-width:980px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin-bottom:30px; color:var(--portal-muted); font-size:.78rem; }
.breadcrumbs a:hover { color:var(--portal-accent); }
.content-hero h1,.article-hero h1 { max-width:980px; margin:0 0 20px; font-size:clamp(2.5rem,5vw,4.7rem); letter-spacing:-.055em; }
.content-lead { max-width:830px; margin:0; color:var(--portal-muted); font-size:1.15rem; line-height:1.7; }
.content-hero-technical { background:linear-gradient(135deg,#0d2623,var(--portal-deep)); color:#fff; }
.content-hero-technical .breadcrumbs,.content-hero-technical .content-lead { color:rgba(255,255,255,.68); }
.content-section { padding:72px 0 92px; }
.content-shell { display:grid; grid-template-columns:minmax(0,780px) minmax(250px,330px); justify-content:space-between; gap:70px; align-items:start; }
.page-layout-wide .content-shell,.page-layout-landing .content-shell { grid-template-columns:minmax(0,940px); justify-content:center; }
.page-layout-wide .content-aside,.page-layout-landing .content-aside { display:none; }
.prose-content { font-size:1.03rem; line-height:1.78; color:#283936; }
.prose-content > :first-child { margin-top:0; }
.prose-content h2 { margin:2.5em 0 .7em; font-size:clamp(1.65rem,2.5vw,2.35rem); color:var(--portal-ink); }
.prose-content h3 { margin:1.9em 0 .65em; font-size:1.35rem; color:var(--portal-ink); }
.prose-content p { margin:0 0 1.25em; }
.prose-content ul,.prose-content ol { padding-left:1.35em; margin:0 0 1.4em; }
.prose-content li { margin-bottom:.45em; }
.prose-content a { color:var(--portal-accent); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.prose-content blockquote { margin:2em 0; padding:18px 22px; border-left:4px solid var(--portal-accent); border-radius:0 12px 12px 0; background:var(--portal-soft); }
.prose-content table { width:100%; border-collapse:collapse; margin:1.8em 0; font-size:.91rem; }
.prose-content th,.prose-content td { padding:11px 12px; border:1px solid var(--portal-border); text-align:left; vertical-align:top; }
.prose-content th { background:var(--portal-soft); }
.prose-content code { padding:2px 5px; border-radius:5px; background:#eef2f1; }
.prose-content pre { overflow:auto; padding:16px; border-radius:13px; background:#10201e; color:#dff7f1; }
.page-layout-technical .prose-content h2 { padding-bottom:10px; border-bottom:1px solid var(--portal-border); }
.content-aside { display:grid; gap:18px; }
.sticky-cta-card { position:sticky; top:104px; padding:24px; border:1px solid var(--portal-border); border-radius:20px; background:#fff; box-shadow:0 18px 42px rgba(20,60,55,.08); }
.sticky-cta-card h2 { font-size:1.4rem; margin-bottom:10px; }
.sticky-cta-card p { color:var(--portal-muted); font-size:.9rem; }
.aside-links,.sidebar-card { padding:22px; border:1px solid var(--portal-border); border-radius:18px; background:var(--portal-soft); display:grid; gap:9px; }
.aside-links strong,.sidebar-card strong { margin-bottom:6px; }
.aside-links a,.sidebar-card a { color:#41524f; font-size:.88rem; }
.aside-links a:hover,.sidebar-card a:hover { color:var(--portal-accent); }

/* Blog */
.blog-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:60px; align-items:start; }
.blog-post-list { display:grid; gap:18px; }
.blog-list-card { padding:30px 0; border-bottom:1px solid var(--portal-border); }
.blog-list-card:first-child { padding-top:0; }
.blog-card-meta { display:flex; flex-wrap:wrap; gap:12px; color:var(--portal-muted); font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; font-weight:800; }
.blog-card-meta a { color:var(--portal-accent); }
.blog-list-card h2 { margin:13px 0 12px; font-size:clamp(1.55rem,2.5vw,2.25rem); }
.blog-list-card p { color:var(--portal-muted); max-width:760px; }
.blog-sidebar { display:grid; gap:18px; }
.blog-sidebar .sticky-cta-card { position:static; }
.sidebar-card a { display:flex; justify-content:space-between; gap:10px; padding:8px 0; border-bottom:1px solid color-mix(in srgb,var(--portal-border) 80%,transparent); }
.sidebar-card a:last-child { border-bottom:0; }
.article-hero-inner { max-width:900px; }
.article-byline { display:flex; flex-wrap:wrap; gap:8px; margin-top:26px; color:var(--portal-muted); font-size:.82rem; }
.article-shell { grid-template-columns:minmax(0,800px) 300px; }
.article-prose { font-size:1.05rem; }
.article-disclaimer { margin-top:54px; padding:20px 22px; border:1px solid var(--portal-border); border-radius:16px; background:var(--portal-soft); }
.article-disclaimer p { margin:.45em 0 0; font-size:.9rem; color:var(--portal-muted); }

/* Footer */
.portal-footer { padding:60px 0 0; background:#0f201e; color:rgba(255,255,255,.68); border:0; }
.portal-footer-grid { display:grid; grid-template-columns:1.7fr repeat(3,1fr); gap:50px; }
.portal-footer-grid > div { display:grid; align-content:start; gap:9px; }
.portal-footer-grid > div:first-child { max-width:430px; }
.portal-footer-grid strong { color:#fff; margin-bottom:10px; }
.portal-footer-grid a:hover { color:#fff; }
.portal-footer-brand { color:#fff; margin-bottom:10px; }
.portal-footer-brand .brand-mark { background:var(--portal-accent); }
.portal-footer-grid p { margin:0; font-size:.88rem; }
.footer-disclaimer { margin-top:8px !important; color:rgba(255,255,255,.5); }
.portal-footer-bottom { margin-top:48px; min-height:70px; border-top:1px solid rgba(255,255,255,.1); display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:.78rem; }

@media (max-width: 1050px) {
    .portal-hero-grid,.home-layout-map-first .portal-hero-grid { grid-template-columns:1fr 1fr; gap:42px; }
    .portal-hero-copy h1,.home-layout-map-first .portal-hero-copy h1 { font-size:clamp(2.5rem,5vw,4.1rem); }
    .portal-map-preview { min-height:390px; }
    .trust-grid { grid-template-columns:1fr 1fr; }
    .trust-grid > div:nth-child(2) { border-right:0; }
    .trust-grid > div:nth-child(-n+2) { border-bottom:1px solid var(--portal-border); }
    .feature-card-grid,.article-card-grid { grid-template-columns:1fr 1fr; }
    .content-shell,.article-shell { grid-template-columns:minmax(0,1fr) 280px; gap:42px; }
}
@media (max-width: 820px) {
    .portal-nav { display:none; }
    .portal-mobile-menu { display:block; }
    .portal-hero { padding:58px 0 50px; }
    .portal-hero-grid,.home-layout-map-first .portal-hero-grid { grid-template-columns:1fr; }
    .home-layout-map-first .portal-map-preview,.home-layout-map-first .portal-hero-copy { grid-column:1; }
    .home-layout-map-first .portal-hero-copy { grid-row:1; }
    .home-layout-map-first .portal-map-preview { grid-row:2; min-height:390px; }
    .portal-map-preview { min-height:360px; }
    .split-copy,.how-grid,.professional-grid,.faq-grid { grid-template-columns:1fr; gap:36px; }
    .how-copy,.faq-grid > div:first-child { position:static; }
    .feature-card-grid,.article-card-grid { grid-template-columns:1fr 1fr; }
    .professional-usecases { grid-template-columns:1fr 1fr; }
    .content-shell,.article-shell,.blog-layout { grid-template-columns:1fr; }
    .content-aside { grid-row:2; }
    .sticky-cta-card { position:static; }
    .blog-sidebar { grid-template-columns:1fr 1fr; }
    .portal-footer-grid { grid-template-columns:1.5fr 1fr 1fr; }
    .portal-footer-grid > div:last-child { grid-column:2 / -1; }
}
@media (max-width: 620px) {
    .portal-header-inner { min-height:68px; }
    .portal-hero-copy h1,.content-hero h1,.article-hero h1 { font-size:clamp(2.15rem,11vw,3.4rem); }
    .portal-hero-lead,.content-lead { font-size:1rem; }
    .portal-map-preview,.home-layout-editorial .portal-map-preview,.home-layout-map-first .portal-map-preview { min-height:305px; border-width:6px; border-radius:24px; }
    .hero-proof { gap:10px 16px; }
    .trust-grid,.feature-card-grid,.article-card-grid,.professional-usecases,.blog-sidebar { grid-template-columns:1fr; }
    .trust-grid > div { border-right:0; border-bottom:1px solid var(--portal-border); }
    .portal-section { padding:64px 0; }
    .portal-section-intro { padding-top:70px; }
    .split-copy h2,.portal-heading h2,.how-copy h2,.professional-copy h2,.faq-grid h2 { font-size:2.2rem; }
    .feature-card { min-height:0; }
    .portal-heading { align-items:flex-start; flex-direction:column; }
    .how-steps li { grid-template-columns:54px 1fr; gap:13px; }
    .how-steps li > span { width:42px; height:42px; }
    .portal-cta-box { padding:30px 26px; align-items:flex-start; flex-direction:column; }
    .portal-cta-box .button { width:100%; }
    .content-hero,.article-hero { padding:48px 0 40px; }
    .content-section { padding:52px 0 68px; }
    .prose-content { font-size:1rem; }
    .prose-content table { display:block; max-width:100%; overflow:auto; }
    .portal-footer-grid { grid-template-columns:1fr 1fr; gap:34px 26px; }
    .portal-footer-grid > div:first-child,.portal-footer-grid > div:last-child { grid-column:1 / -1; max-width:none; }
    .portal-footer-bottom { align-items:flex-start; flex-direction:column; justify-content:center; padding:18px 0; }
}

/* Blog cover */
.article-featured-wrap{padding-top:clamp(24px,4vw,48px)}
.article-featured-image{display:block;width:100%;max-height:620px;object-fit:cover;border-radius:28px;border:1px solid var(--portal-border);background:var(--portal-soft)}
@media (max-width:620px){.article-featured-image{border-radius:18px;max-height:420px}}

.pagination{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin:34px 0 0;padding-top:24px;border-top:1px solid var(--portal-border)}
.pagination a{font-weight:800;color:var(--portal-accent);text-decoration:none}.pagination span{color:var(--portal-muted);font-size:.9rem}

/* Territorial SEO hubs */
.territory-hero{padding:72px 0 64px;background:radial-gradient(circle at 88% 10%,color-mix(in srgb,var(--portal-accent) 15%,transparent),transparent 34%),linear-gradient(145deg,var(--portal-soft),#fff 72%);border-bottom:1px solid var(--portal-border)}
.territory-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:64px;align-items:center}.territory-hero h1{max-width:900px;margin:0 0 20px;font-size:clamp(2.55rem,5vw,4.8rem);line-height:1.02;letter-spacing:-.055em}.territory-summary-panel{padding:28px;border:1px solid var(--portal-border);border-radius:26px;background:rgba(255,255,255,.86);box-shadow:0 24px 56px rgba(20,60,55,.10)}.territory-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0 18px}.territory-summary-grid>div{padding:17px;border-radius:15px;background:var(--portal-soft);display:grid;gap:3px}.territory-summary-grid strong{font-size:1.55rem;letter-spacing:-.035em;color:var(--portal-ink)}.territory-summary-grid span{font-size:.75rem;color:var(--portal-muted);font-weight:800;text-transform:uppercase;letter-spacing:.05em}.territory-summary-grid .territory-stat-wide{grid-column:1/-1}.territory-summary-panel p{margin:0;color:var(--portal-muted);font-size:.88rem;line-height:1.65}.territory-layout-map-first .territory-summary-panel{border-color:color-mix(in srgb,var(--portal-accent) 35%,var(--portal-border));box-shadow:0 28px 70px color-mix(in srgb,var(--portal-accent) 16%,transparent)}.territory-layout-data{background:linear-gradient(145deg,#102724,var(--portal-deep));color:#fff}.territory-layout-data .breadcrumbs,.territory-layout-data .content-lead{color:rgba(255,255,255,.67)}.territory-layout-data .territory-summary-panel{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}.territory-layout-data .territory-summary-grid>div{background:rgba(255,255,255,.08)}.territory-layout-data .territory-summary-grid strong{color:#fff}.territory-layout-data .territory-summary-grid span,.territory-layout-data .territory-summary-panel p{color:rgba(255,255,255,.65)}
.territory-directory-section{background:#fff}.territory-region-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.territory-region-card{min-height:230px;padding:25px;border:1px solid var(--portal-border);border-radius:22px;background:#fff;display:flex;flex-direction:column;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.territory-region-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--portal-accent) 45%,var(--portal-border));box-shadow:0 20px 44px rgba(20,60,55,.09)}.territory-card-kicker{color:var(--portal-accent);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.territory-region-card h3{margin:12px 0 18px;font-size:1.65rem}.territory-card-stats{display:grid;gap:6px;color:var(--portal-muted);font-size:.84rem}.territory-card-stats b{color:var(--portal-ink)}.territory-card-link{margin-top:auto;padding-top:20px;color:var(--portal-accent);font-weight:900;font-size:.86rem}.territory-empty{padding:26px;border:1px dashed var(--portal-border);border-radius:18px;background:var(--portal-soft);color:var(--portal-muted)}.territory-seo-note{background:var(--portal-soft)}
.territory-copy-grid{display:grid;grid-template-columns:minmax(0,800px) 300px;gap:64px;align-items:start}.territory-side-card{position:sticky;top:104px;padding:24px;border:1px solid var(--portal-border);border-radius:20px;background:#fff;box-shadow:0 18px 42px rgba(20,60,55,.08)}.territory-side-card h2{font-size:1.4rem;margin:8px 0 10px}.territory-side-card p{color:var(--portal-muted);font-size:.9rem}.territory-side-links{display:grid;gap:8px;margin-top:18px;padding-top:18px;border-top:1px solid var(--portal-border)}.territory-side-links a{font-size:.84rem;color:var(--portal-accent);font-weight:750}.territory-municipalities,.territory-sheets-section{background:var(--portal-soft)}.territory-province-group{margin-top:38px}.territory-province-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:13px;padding-bottom:11px;border-bottom:1px solid var(--portal-border)}.territory-province-heading h3{margin:0;font-size:1.2rem}.territory-province-heading span{color:var(--portal-muted);font-size:.8rem}.territory-municipality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.territory-municipality-grid a{padding:15px 16px;border:1px solid var(--portal-border);border-radius:14px;background:#fff;display:grid;gap:4px}.territory-municipality-grid a:hover{border-color:var(--portal-accent)}.territory-municipality-grid strong{font-size:.93rem}.territory-municipality-grid span{font-size:.73rem;color:var(--portal-muted)}
.territory-sheet-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px}.territory-sheet-grid a{min-height:98px;padding:12px;border:1px solid var(--portal-border);border-radius:13px;background:#fff;display:grid;align-content:center;text-align:center}.territory-sheet-grid a:hover{border-color:var(--portal-accent);background:color-mix(in srgb,var(--portal-soft) 72%,#fff)}.territory-sheet-grid span,.territory-sheet-grid small{font-size:.67rem;color:var(--portal-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:800}.territory-sheet-grid strong{font-size:1.35rem;color:var(--portal-accent);margin:3px 0}.territory-related-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.territory-related-grid a{padding:17px;border:1px solid var(--portal-border);border-radius:15px;background:#fff;display:grid;gap:4px}.territory-related-grid span{font-size:.76rem;color:var(--portal-muted)}.territory-disclaimer-section{padding-top:24px}.territory-disclaimer{padding:20px 22px;border:1px solid var(--portal-border);border-radius:17px;background:var(--portal-soft)}.territory-disclaimer p{margin:.45em 0 0;color:var(--portal-muted);font-size:.9rem;line-height:1.65}
@media(max-width:1050px){.territory-region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.territory-municipality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.territory-sheet-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.territory-related-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.territory-hero-grid,.territory-copy-grid{grid-template-columns:1fr;gap:36px}.territory-side-card{position:static}.territory-sheet-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.territory-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.territory-hero{padding:48px 0 42px}.territory-hero h1{font-size:clamp(2.15rem,11vw,3.4rem)}.territory-summary-panel{padding:19px;border-radius:20px}.territory-region-grid,.territory-municipality-grid,.territory-related-grid{grid-template-columns:1fr}.territory-region-card{min-height:0}.territory-sheet-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.territory-sheet-grid a{min-height:88px;padding:9px}.territory-province-heading{align-items:flex-start;flex-direction:column;gap:4px}}

/* 2.2.0 — ricerca territoriale home + hub provinciali */
.home-territory-search-section{padding:34px 0 8px;background:#fff}.home-territory-search-shell{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:34px;align-items:center;padding:30px;border:1px solid var(--portal-border);border-radius:26px;background:linear-gradient(135deg,var(--portal-soft),#fff 58%);box-shadow:0 18px 44px rgba(20,60,55,.07)}.home-territory-search-copy h2{margin:7px 0 10px;font-size:clamp(1.65rem,3vw,2.45rem);letter-spacing:-.04em;line-height:1.08}.home-territory-search-copy p{margin:0;color:var(--portal-muted);line-height:1.7}.home-territory-search{min-width:0}.home-territory-search-fields{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(230px,1.35fr);gap:12px}.home-territory-search-fields label{display:grid;gap:7px}.home-territory-search-fields label>span{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--portal-muted)}.home-territory-search-fields select,.home-territory-search-fields input{width:100%;min-width:0;border:1px solid var(--portal-border);border-radius:14px;background:#fff;padding:13px 14px;font:inherit;color:var(--portal-ink);outline:none}.home-territory-search-fields select:focus,.home-territory-search-fields input:focus{border-color:var(--portal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-accent) 13%,transparent)}.home-territory-search-fields input:disabled{background:color-mix(in srgb,var(--portal-soft) 74%,#fff);cursor:not-allowed}.home-territory-search-status{min-height:22px;padding:9px 2px 0;color:var(--portal-muted);font-size:.78rem}.home-territory-results{margin-top:9px;border:1px solid var(--portal-border);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 18px 40px rgba(20,60,55,.09)}.home-territory-result{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid var(--portal-border);color:var(--portal-ink)}.home-territory-result:last-child{border-bottom:0}.home-territory-result:hover{background:var(--portal-soft)}.home-territory-result>span{display:grid;gap:2px}.home-territory-result strong{font-size:.91rem}.home-territory-result small{font-size:.7rem;color:var(--portal-muted)}.home-territory-result>b{color:var(--portal-accent);font-size:1rem}
.home-territory-explore{background:linear-gradient(180deg,#fff,var(--portal-soft))}.home-territory-explore .portal-heading p{max-width:780px;color:var(--portal-muted)}.home-territory-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:24px 0}.home-territory-metrics>div{padding:17px 18px;border:1px solid var(--portal-border);border-radius:16px;background:#fff;display:grid;gap:2px}.home-territory-metrics strong{font-size:1.45rem;letter-spacing:-.035em;color:var(--portal-accent)}.home-territory-metrics span{font-size:.69rem;font-weight:850;text-transform:uppercase;letter-spacing:.065em;color:var(--portal-muted)}.home-region-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.home-region-card{min-height:150px;padding:18px;border:1px solid var(--portal-border);border-radius:17px;background:#fff;display:flex;flex-direction:column;gap:7px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.home-region-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--portal-accent) 45%,var(--portal-border));box-shadow:0 15px 34px rgba(20,60,55,.07)}.home-region-code{font-size:.62rem;font-weight:900;letter-spacing:.08em;color:var(--portal-accent)}.home-region-card strong{font-size:1.08rem;letter-spacing:-.025em}.home-region-card small{color:var(--portal-muted);font-size:.72rem}.home-region-card em{margin-top:auto;color:var(--portal-accent);font-style:normal;font-weight:850;font-size:.76rem}
.territory-province-heading>div{display:grid;gap:3px}.territory-province-heading>a{font-size:.76rem;color:var(--portal-accent);font-weight:850}.territory-province-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.territory-province-card{padding:18px;border:1px solid var(--portal-border);border-radius:16px;background:#fff;display:grid;gap:5px}.territory-province-card:hover{border-color:var(--portal-accent)}.territory-province-card>span{font-size:.65rem;font-weight:900;color:var(--portal-accent);letter-spacing:.07em}.territory-province-card>strong{font-size:1rem}.territory-province-card>small{color:var(--portal-muted);font-size:.72rem}.territory-municipality-grid-large a small{font-size:.66rem;color:var(--portal-accent);font-weight:800}.territory-related-section{background:#fff}
@media(max-width:1050px){.home-region-grid,.territory-province-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.home-territory-search-shell{grid-template-columns:1fr}.home-territory-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.home-region-grid,.territory-province-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.home-territory-search-section{padding-top:18px}.home-territory-search-shell{padding:19px;border-radius:20px;gap:22px}.home-territory-search-fields{grid-template-columns:1fr}.home-territory-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.home-territory-metrics>div{padding:14px}.home-region-grid,.territory-province-card-grid{grid-template-columns:1fr}.home-region-card{min-height:0}.territory-province-heading>a{margin-top:3px}}

/* 2.3.0 — ricerca globale, pagine Foglio e navigazione SEO locale */
.home-global-search-shell{grid-template-columns:minmax(290px,.8fr) minmax(0,1.2fr)}
.home-search-examples{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.home-search-examples span{padding:6px 9px;border:1px solid var(--portal-border);border-radius:999px;background:#fff;color:var(--portal-muted);font-size:.68rem;font-weight:750}
.home-global-search-field{display:grid;gap:7px}.home-global-search-field>span{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--portal-muted)}.home-global-search-field>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.home-global-search-field input{width:100%;min-width:0;border:1px solid var(--portal-border);border-radius:14px;background:#fff;padding:14px 15px;font:inherit;color:var(--portal-ink);outline:none}.home-global-search-field input:focus{border-color:var(--portal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-accent) 13%,transparent)}.home-global-search-field button{border:0;border-radius:13px;background:var(--portal-accent);color:#fff;padding:0 18px;font:inherit;font-size:.82rem;font-weight:850;cursor:pointer}.home-global-search-field button:hover{filter:brightness(.94)}
.home-global-search .home-territory-result{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.home-search-result-type{display:inline-flex;align-items:center;justify-content:center;min-width:76px;padding:5px 7px;border-radius:999px;background:var(--portal-soft);color:var(--portal-accent);font-size:.6rem;font-weight:900;letter-spacing:.07em}.home-search-result-main{display:grid;gap:3px}.home-global-search .home-territory-result>b{font-size:.7rem;white-space:nowrap}.home-territory-result-sheet .home-search-result-type{background:color-mix(in srgb,var(--portal-accent) 12%,#fff)}.home-territory-result-parcel .home-search-result-type{background:color-mix(in srgb,var(--portal-accent) 19%,#fff);color:var(--portal-ink)}
.territory-sheet-hero .territory-summary-panel{align-self:stretch}.territory-sheet-navigation-section,.territory-municipality-navigation-section{background:var(--portal-soft)}.territory-sheet-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.territory-sheet-navigation>a{padding:20px;border:1px solid var(--portal-border);border-radius:17px;background:#fff;display:grid;gap:5px}.territory-sheet-navigation>a:hover{border-color:var(--portal-accent);box-shadow:0 14px 32px rgba(20,60,55,.07)}.territory-sheet-navigation>a.is-next{text-align:right}.territory-sheet-navigation span{font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.055em;color:var(--portal-accent)}.territory-sheet-navigation strong{font-size:1.08rem}.territory-sheet-navigation small{font-size:.72rem;color:var(--portal-muted)}
.territory-municipality-navigation a strong{font-size:1rem}.territory-sheet-grid a{position:relative}.territory-sheet-grid a:after{content:'Apri scheda';font-size:.56rem;font-weight:850;color:var(--portal-accent);opacity:0;transform:translateY(3px);transition:.15s ease}.territory-sheet-grid a:hover:after{opacity:1;transform:none}
@media(max-width:820px){.home-global-search-shell{grid-template-columns:1fr}.home-global-search .home-territory-result{grid-template-columns:auto minmax(0,1fr)}.home-global-search .home-territory-result>b{grid-column:2}.territory-sheet-navigation{grid-template-columns:1fr}.territory-sheet-navigation>a.is-next{text-align:left}}
@media(max-width:620px){.home-global-search-field>div{grid-template-columns:1fr}.home-global-search-field button{min-height:44px}.home-search-examples{display:none}.home-search-result-type{min-width:64px}.home-global-search .home-territory-result{padding:11px}.territory-sheet-grid a:after{display:none}}

/* 2.3.1 — contatti, dati societari e trasparenza copertura */
.portal-footer-legal{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.75rem;color:rgba(255,255,255,.62)}
.portal-footer-legal strong{width:100%;color:#fff;font-size:.8rem}.footer-email{word-break:break-all}
.contact-section{background:linear-gradient(180deg,#fff,var(--portal-soft))}.contact-grid{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);gap:34px;align-items:start}.contact-info-card,.contact-form-card{border:1px solid var(--portal-border);border-radius:24px;background:#fff;padding:28px;box-shadow:0 18px 46px rgba(20,60,55,.06)}.contact-info-card{position:sticky;top:96px}.contact-info-card h2{margin:8px 0 12px;font-size:clamp(1.6rem,3vw,2.35rem);letter-spacing:-.04em}.contact-info-card>p{color:var(--portal-muted);line-height:1.7}.contact-email-link{display:inline-flex;margin:12px 0 22px;font-size:1.06rem;font-weight:900;color:var(--portal-accent)}.company-data-card{display:grid;gap:7px;padding-top:20px;border-top:1px solid var(--portal-border);font-size:.82rem;color:var(--portal-muted)}.company-data-card strong{color:var(--portal-ink);line-height:1.45}.contact-form-card{display:grid;gap:18px}.contact-form-card .form-grid{gap:14px}.contact-form-card input,.contact-form-card textarea{width:100%;border:1px solid var(--portal-border);border-radius:13px;background:#fff;padding:12px 13px;font:inherit;color:var(--portal-ink);outline:none}.contact-form-card input:focus,.contact-form-card textarea:focus{border-color:var(--portal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-accent) 13%,transparent)}.contact-privacy{display:flex;align-items:flex-start;gap:9px;color:var(--portal-muted);font-size:.78rem;line-height:1.5}.contact-privacy input{width:auto;margin-top:3px}.contact-privacy-note{margin:-8px 0 0;color:var(--portal-muted);font-size:.72rem;line-height:1.55}.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.territory-coverage-exception{margin-top:24px;padding:18px 20px;border:1px dashed color-mix(in srgb,var(--portal-accent) 38%,var(--portal-border));border-radius:16px;background:color-mix(in srgb,var(--portal-soft) 70%,#fff);color:var(--portal-muted);font-size:.8rem;line-height:1.65}.territory-coverage-exception strong{color:var(--portal-ink)}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}.contact-info-card{position:static}.portal-footer-legal{display:grid;gap:6px}.portal-footer-legal strong{width:auto}}

/* 2.7.0 - pagamenti, carte e pagine servizi */
.payment-option-divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:var(--muted);font-size:.78rem;text-transform:uppercase;font-weight:800}
.payment-option-divider::before,.payment-option-divider::after{content:"";height:1px;background:var(--line);flex:1}
.card-fields-grid,.card-billing-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.card-field-wide{grid-column:1/-1}
.card-fields-grid label,.card-billing-grid label{display:grid;gap:6px;font-size:.82rem;font-weight:750}
.hosted-card-field{min-height:46px;border:1px solid #cbd8d5;border-radius:10px;background:#fff;padding:4px 8px}
.order-bank-details{display:grid;gap:0;margin:16px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.order-bank-details>div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:11px 13px;border-bottom:1px solid var(--line)}
.order-bank-details>div:last-child{border-bottom:0}
.order-bank-details dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--muted)}
.order-bank-details dd{margin:0;overflow-wrap:anywhere}
.service-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.service-card{display:flex;flex-direction:column;align-items:flex-start;padding:24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 28px rgba(27,55,50,.05)}
.service-card h2{font-size:1.3rem;margin-bottom:10px}.service-card p{color:var(--muted);flex:1}.service-price{font-size:1.35rem;margin:8px 0 18px;color:var(--primary-dark)}
.content-note{margin-top:24px;padding:20px 22px;background:var(--surface-2);border:1px solid var(--line);border-radius:14px}.content-note p{margin-bottom:0;color:var(--muted)}
.public-price-table{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
@media(max-width:900px){.service-cards-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.service-cards-grid,.card-fields-grid,.card-billing-grid{grid-template-columns:1fr}.card-field-wide{grid-column:auto}.order-bank-details>div{grid-template-columns:1fr;gap:3px}}

/* Immagini caricate dall'editor contenuti: sempre fluide e leggere nel layout. */
.prose-content figure{margin:1.75rem 0}.prose-content figure img,.prose-content>img{display:block;max-width:100%;height:auto;border-radius:16px}.prose-content figcaption{margin-top:.5rem;color:var(--muted);font-size:.88rem;text-align:center}.article-featured-image{width:100%;height:auto;max-height:680px;object-fit:cover}

/* Documento tecnico - pagina pubblica di verifica */
.verification-page{max-width:820px;padding-top:56px;padding-bottom:72px}
.verification-success{display:flex;flex-direction:column;gap:5px;margin:24px 0;padding:18px 20px;border:1px solid #b9ded5;border-left:5px solid #0b665b;border-radius:10px;background:#f2faf7;color:#123a35}
.verification-success strong{font-size:18px}
.verification-success span{font-size:14px;color:#47625f}
.verification-details{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 22px}
.verification-details>div{padding:14px 16px;border:1px solid #e0e7e5;border-radius:9px;background:#fff}
.verification-details dt{margin:0 0 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#667976}
.verification-details dd{margin:0;font-weight:700;color:#182e2b;overflow-wrap:anywhere}
@media (max-width:640px){.verification-details{grid-template-columns:1fr}}

/* 2.9.2 - prezzi sempre sulla stessa riga */
.service-price,
.public-price-table td:nth-child(3),
.public-price-table td:nth-child(3) strong,
.service-detail-price,
.order-price {
    white-space: nowrap;
}
.public-price-table td:nth-child(3) { min-width: 105px; }

/* 2.9.9 - blocco SEO consultazione gratuita mappe catastali */
.home-free-map-section{padding-top:72px;padding-bottom:72px;background:#fff}
.home-free-map-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:54px;align-items:center}
.home-free-map-figure{margin:0;border:1px solid var(--portal-border);border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 18px 46px rgba(20,60,55,.08)}
.home-free-map-figure picture,.home-free-map-figure img{display:block;width:100%}
.home-free-map-figure img{height:auto;aspect-ratio:3/2;object-fit:cover}
.home-free-map-figure figcaption{padding:12px 16px;border-top:1px solid var(--portal-border);color:var(--portal-muted);font-size:.76rem;line-height:1.5}
.home-free-map-copy h2{margin:10px 0 18px;font-size:clamp(2rem,3.3vw,3.25rem);letter-spacing:-.045em;line-height:1.05}
.home-free-map-copy p{color:var(--portal-muted);font-size:1rem;line-height:1.72}
.home-free-map-copy p strong{color:var(--portal-ink)}
.home-free-map-actions{margin-top:24px;align-items:center}
@media(max-width:900px){.home-free-map-grid{grid-template-columns:1fr;gap:32px}.home-free-map-copy{max-width:760px}.home-free-map-section{padding-top:58px;padding-bottom:58px}}
@media(max-width:620px){.home-free-map-figure{border-radius:18px}.home-free-map-actions{display:grid}.home-free-map-actions .button{width:100%;justify-content:center;text-align:center}}


/* 2.9.18 — metadati amministrativi e territoriali dei Comuni */
.municipality-metadata-section{background:linear-gradient(180deg,#fff,var(--portal-soft))}
.municipality-metadata-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.municipality-metadata-grid>div{min-width:0;padding:18px 19px;border:1px solid var(--portal-border);border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(20,60,55,.045)}
.municipality-metadata-grid span,.municipality-official-links span{display:block;margin-bottom:6px;color:var(--portal-muted);font-size:.68rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}
.municipality-metadata-grid strong{display:block;color:var(--portal-ink);font-size:1rem;line-height:1.35;overflow-wrap:anywhere}
.municipality-official-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.municipality-official-links a{min-width:0;padding:16px 19px;border:1px solid var(--portal-border);border-radius:16px;background:#fff;color:var(--portal-ink)}
.municipality-official-links a:hover{border-color:var(--portal-accent);box-shadow:0 12px 30px rgba(20,60,55,.06)}
.municipality-official-links strong{display:block;color:var(--portal-accent);font-size:.86rem;line-height:1.4;overflow-wrap:anywhere}
.municipality-altitude-note{margin:18px 0 0;color:var(--portal-muted);font-size:.82rem;line-height:1.6}
.municipality-altitude-note strong{color:var(--portal-ink)}
.municipality-data-source{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--portal-border);color:var(--portal-muted);font-size:.72rem;line-height:1.6}
@media(max-width:980px){.municipality-metadata-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.municipality-metadata-grid,.municipality-official-links{grid-template-columns:1fr}.municipality-metadata-grid>div,.municipality-official-links a{padding:15px 16px}}


/* 3.0.4 — tempi di evasione catalogo */
.service-time-badge{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:.75rem 0;padding:.55rem .7rem;border-radius:.65rem;background:rgba(15,23,42,.045);font-size:.82rem}.service-time-badge span{color:var(--muted,#64748b)}.service-time-badge strong{font-size:.84rem;text-align:right}.service-time-pill{display:inline-flex;align-items:center;padding:.42rem .7rem;border-radius:999px;background:rgba(15,23,42,.06);font-size:.86rem;font-weight:700}.home-service-time{display:block}.order-service-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:.75rem 0 0}.order-service-facts>div{padding:.65rem .75rem;border-radius:.65rem;background:rgba(15,23,42,.045)}.order-service-facts dt{font-size:.74rem;color:var(--muted,#64748b);text-transform:uppercase;letter-spacing:.03em}.order-service-facts dd{margin:.15rem 0 0;font-weight:700}@media(max-width:680px){.order-service-facts{grid-template-columns:1fr}.public-price-table th:nth-child(3),.public-price-table td:nth-child(3){min-width:130px}}


/* 3.0.5 — tempistiche su tutti i servizi, gerarchia visiva */
.home-service-copy{display:flex;min-width:0;flex:1;flex-direction:column;align-items:flex-start}.home-service-name{display:block;color:var(--portal-ink);font-weight:720}.home-service-time{display:block;margin-top:.28rem;color:var(--portal-accent-2);font-size:.70rem;font-weight:800;line-height:1.3;opacity:1}.home-service-time span{color:var(--portal-muted);font-weight:700}.home-service-group a:hover .home-service-name{color:var(--portal-accent)}.home-service-group a:hover .home-service-time{color:var(--portal-accent)}.service-card-time{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:.12rem;margin:-.08rem 0 .72rem;padding-left:.68rem;border-left:3px solid var(--portal-accent-2);line-height:1.3}.service-card-time span{color:var(--portal-muted);font-size:.68rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}.service-card-time strong{color:var(--portal-accent);font-size:.82rem;font-weight:850}.service-card .service-card-time+p{margin-top:0}@media(max-width:680px){.home-service-group a{align-items:flex-start}.home-service-time{font-size:.68rem}.service-card-time{margin-bottom:.65rem}}
/* 3.0.54 PSI/accessibility */
.home-service-time{color:var(--portal-accent)}
.home-service-time span{color:var(--portal-ink)}
.portal-nav .nav-map-cta:hover{color:#fff;background:var(--portal-accent)}
