@font-face { font-family: "PW Source Sans 3"; src: url("fonts/SourceSans3-Variable.ttf") format("truetype"); font-style: normal; font-weight: 200 900; font-display: swap; }
@font-face { font-family: "PW Nunito Sans"; src: url("fonts/NunitoSans-Variable.ttf") format("truetype"); font-style: normal; font-weight: 200 1000; font-display: swap; }
@font-face { font-family: "PW Atkinson"; src: url("fonts/AtkinsonHyperlegible-Regular.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "PW Atkinson"; src: url("fonts/AtkinsonHyperlegible-Bold.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "PW Quattrocento Sans"; src: url("fonts/QuattrocentoSans-Regular.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "PW Quattrocento Sans"; src: url("fonts/QuattrocentoSans-Bold.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }

:root {
    --pro-primary: #236b50;
    --pro-on-primary: #ffffff;
    --pro-primary-dark: color-mix(in srgb, var(--pro-primary), #07130e 42%);
    --pro-background: #f5f3ec;
    --pro-surface: #ffffff;
    --pro-text: #17231e;
    --pro-muted: #66736d;
    --pro-line: color-mix(in srgb, var(--pro-text), transparent 84%);
    --pro-header-bg: var(--pro-background);
    --pro-footer-bg: #101914;
    --pro-footer-text: #dae6e0;
    --pro-footer-link: var(--pro-primary);
    --pro-radius: 28px;
    --pro-shell: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html { --pro-transition-duration: .38s; }
html.transition-speed-fast { --pro-transition-duration: .22s; }
html.transition-speed-slow { --pro-transition-duration: .62s; }
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: var(--pro-transition-duration); animation-timing-function: cubic-bezier(.22,.75,.2,1); }
html.transition-none::view-transition-old(root), html.transition-none::view-transition-new(root) { animation: none; }
html.transition-fade::view-transition-old(root) { animation-name: pro-page-fade-out; }
html.transition-fade::view-transition-new(root) { animation-name: pro-page-fade-in; }
html.transition-slide::view-transition-old(root) { animation-name: pro-page-slide-out; }
html.transition-slide::view-transition-new(root) { animation-name: pro-page-slide-in; }
html.transition-zoom::view-transition-old(root) { animation-name: pro-page-zoom-out; }
html.transition-zoom::view-transition-new(root) { animation-name: pro-page-zoom-in; }
@keyframes pro-page-fade-out { to { opacity: 0; } }
@keyframes pro-page-fade-in { from { opacity: 0; } }
@keyframes pro-page-slide-out { to { opacity: 0; transform: translateX(-18px); } }
@keyframes pro-page-slide-in { from { opacity: 0; transform: translateX(22px); } }
@keyframes pro-page-zoom-out { to { opacity: 0; transform: scale(.985); } }
@keyframes pro-page-zoom-in { from { opacity: 0; transform: scale(1.018); } }
body { margin: 0; color: var(--pro-text); background: var(--pro-background); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.pro-body { display: flex; min-height: 100vh; flex-direction: column; }
.pro-body > main { flex: 1 0 auto; }
.pro-body > .pro-footer { flex-shrink: 0; }
.scheme-dark.palette-auto { --pro-background: #0c1410; --pro-surface: #142019; --pro-text: #edf5f0; --pro-muted: #b2c0b8; --pro-line: rgba(237,245,240,.18); --pro-header-bg: #0c1410; --pro-footer-bg: #08100c; --pro-footer-text: #dae6e0; color-scheme: dark; }
.scheme-dark.palette-custom { color-scheme: dark; }
a { color: inherit; }
img { display: block; max-width: 100%; }
.pro-shell { width: min(var(--pro-shell), calc(100% - 48px)); margin-inline: auto; }
.width-compact { --pro-shell: 980px; }
.width-wide { --pro-shell: 1360px; }
.font-editorial { font-family: Georgia, "Times New Roman", serif; }
.font-classic { font-family: Arial, Helvetica, sans-serif; }
.font-clinical { font-family: "PW Source Sans 3", "Segoe UI", Arial, sans-serif; }
.font-accessible { font-family: "PW Atkinson", "Segoe UI", Arial, sans-serif; }
.font-wellness { font-family: "PW Nunito Sans", "Trebuchet MS", sans-serif; }
.font-quattrocento { font-family: "PW Quattrocento Sans", "Trebuchet MS", sans-serif; }
.buttons-square .pro-button { border-radius: var(--pro-button-radius,14px); }
.cards-minimal .pro-service-grid article, .cards-minimal .pro-cta, .cards-minimal .pro-split-image, .cards-minimal .pro-gallery-grid figure, .cards-minimal .pro-testimonial-grid blockquote, .cards-minimal .pro-profile figure, .cards-minimal .pro-pricing-grid article { border-radius: 5px; box-shadow: none; }
.motion-subtle main > section, .motion-subtle main > .pro-block { animation: pro-enter .55s ease both; }
.motion-none *, .motion-none *::before, .motion-none *::after { animation: none !important; transition: none !important; }
@keyframes pro-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
body.transition-fade > main { animation: pro-page-fade-in var(--pro-transition-duration) ease both; }
body.transition-slide > main { animation: pro-page-slide-in var(--pro-transition-duration) ease both; }
body.transition-zoom > main { animation: pro-page-zoom-in var(--pro-transition-duration) ease both; }
@supports (view-transition-name: none) {
    body.transition-fade > main, body.transition-slide > main, body.transition-zoom > main { animation: none; }
}
@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root), ::view-transition-new(root), body > main { animation: none !important; }
}
/* Nei monopagina le sezioni entrano progressivamente durante lo scorrimento. */
body.site-onepage:not(.motion-none).section-reveal-ready main > .pro-block { animation: none; opacity: 0; transition: opacity .7s ease,transform .7s cubic-bezier(.22,.75,.2,1); }
body.site-onepage.motion-fade.section-reveal-ready main > .pro-block { transform: none; }
body.site-onepage.motion-rise.section-reveal-ready main > .pro-block,
body.site-onepage.motion-subtle.section-reveal-ready main > .pro-block { transform: translateY(40px) scale(.992); }
body.site-onepage.motion-slide.section-reveal-ready main > .pro-block { transform: translateX(-56px); }
body.site-onepage:not(.motion-none).section-reveal-ready main > .pro-block.is-visible { opacity: 1; transform: none; }
.site-onepage main > .pro-block { position: relative; scroll-margin-top: 88px; }
.site-onepage main > .pro-block + .pro-block::before { content: ""; position: absolute; z-index: 4; top: 0; right: max(24px,calc((100% - var(--pro-shell))/2)); left: max(24px,calc((100% - var(--pro-shell))/2)); height: 1px; background: linear-gradient(90deg,transparent,color-mix(in srgb,var(--pro-primary) 42%,var(--pro-line)),transparent); pointer-events: none; }
.pro-narrow { max-width: 820px; }
.pro-anchor { position: relative; top: -105px; visibility: hidden; }
.preview-bar { position: relative; z-index: 30; display: flex; min-height: 42px; align-items: center; justify-content: center; gap: 14px; padding: 8px 24px; color: #d8ede3; background: #0d1b15; font-size: 12px; }
.preview-bar strong { color: #84d6aa; letter-spacing: .07em; text-transform: uppercase; }
.preview-bar a { position: absolute; right: 24px; color: #fff; text-decoration: none; font-weight: 750; }
.pro-header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--pro-line); background: color-mix(in srgb, var(--pro-header-bg), transparent 8%); backdrop-filter: blur(18px); }
.header-static .pro-header { position: relative; }
.pro-header-inner { display: flex; min-height: 86px; align-items: center; justify-content: space-between; gap: 30px; }
.header-height-compact .pro-header-inner { min-height: 68px; }
.header-height-tall .pro-header-inner { min-height: 118px; }
.pro-brand { max-width: 460px; overflow: hidden; font-size: 18px; font-weight: 850; letter-spacing: -.025em; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.pro-brand img { width: auto; max-width: 250px; height: 52px; object-fit: contain; }
.header-height-compact .pro-brand img { max-width: 210px; height: 40px; }
.header-height-tall .pro-brand img { max-width: 340px; height: 82px; }
.pro-header nav { display: flex; align-items: center; gap: 6px; }
.pro-menu-entry { position: relative; display: inline-flex; align-items: center; }
.pro-menu-entry > button { margin-left: -9px; padding: 8px 8px 9px 2px; border: 0; color: var(--pro-muted); background: transparent; cursor: pointer; }
.pro-menu-entry.active > a { color: var(--pro-text); background: var(--pro-surface); box-shadow: 0 6px 25px rgba(25,42,34,.08); }
.pro-submenu { position: absolute; z-index: 20; top: 100%; left: 0; display: none; min-width: 190px; padding: 7px; border: 1px solid var(--pro-line); border-radius: 11px; background: var(--pro-surface); box-shadow: 0 14px 34px rgba(0,0,0,.12); }
.pro-submenu a { display: block; padding: 8px 10px !important; border-radius: 7px !important; font-size: 11px !important; font-weight: 650; letter-spacing: .025em; line-height: 1.25; white-space: nowrap; }
.pro-header nav .pro-submenu a + a::before { display: none; }
.pro-menu-entry.has-submenu:hover .pro-submenu, .pro-menu-entry.has-submenu:focus-within .pro-submenu, .pro-menu-entry.has-submenu.open .pro-submenu { display: grid; }
.menu-align-center .pro-header-inner { display: grid; grid-template-columns: minmax(160px,1fr) auto minmax(160px,1fr); }
.menu-align-center .pro-header nav { grid-column: 2; }
.menu-align-center .pro-menu-button { grid-column: 3; justify-self: end; }
.pro-header nav a { padding: 10px 13px; border-radius: 999px; color: var(--pro-muted); font-size: 13px; font-weight: 700; text-decoration: none; }
.menu-size-small .pro-header nav a { font-size: 11px; }
.menu-size-normal .pro-header nav a { font-size: 13px; }
.menu-size-large .pro-header nav a { font-size: 15px; }
.menu-size-xlarge .pro-header nav a { font-size: 17px; }
.menu-weight-regular .pro-header nav :is(a,button) { font-weight: 400; }
.menu-weight-medium .pro-header nav :is(a,button) { font-weight: 500; }
.menu-weight-semibold .pro-header nav :is(a,button) { font-weight: 600; }
.menu-weight-bold .pro-header nav :is(a,button) { font-weight: 700; }
.menu-weight-heavy .pro-header nav :is(a,button) { font-weight: 800; }
.menu-color-custom .pro-header nav :is(a,button),
.menu-color-custom .pro-header nav :is(a,button):hover,
.menu-color-custom .pro-header nav a.active,
.menu-color-custom .pro-menu-entry.active > a { color: var(--pro-menu-color); }
.menu-case-uppercase .pro-header nav a { text-transform: uppercase; letter-spacing: .055em; }
.menu-separator-dot .pro-header nav,
.menu-separator-line .pro-header nav,
.menu-separator-slash .pro-header nav { gap: 24px; }
.menu-separator-dot .pro-header nav a,
.menu-separator-line .pro-header nav a,
.menu-separator-slash .pro-header nav a { position: relative; }
.menu-separator-dot .pro-header nav a + a::before,
.menu-separator-line .pro-header nav a + a::before,
.menu-separator-slash .pro-header nav a + a::before { position: absolute; left: -12px; top: 50%; color: var(--pro-muted); font-size: .85em; font-weight: 500; transform: translate(-50%,-50%); opacity: .7; }
.menu-separator-dot .pro-header nav a + a::before { content: "•"; }
.menu-separator-line .pro-header nav a + a::before { content: ""; width: 1px; height: 16px; background: var(--pro-line); }
.menu-separator-slash .pro-header nav a + a::before { content: "/"; }
.menu-separator-dot .pro-header nav > .pro-menu-entry + .pro-menu-entry::before,
.menu-separator-line .pro-header nav > .pro-menu-entry + .pro-menu-entry::before,
.menu-separator-slash .pro-header nav > .pro-menu-entry + .pro-menu-entry::before { position: absolute; left: -12px; top: 50%; color: var(--pro-muted); font-size: .85em; font-weight: 500; transform: translate(-50%,-50%); opacity: .7; }
.menu-separator-dot .pro-header nav > .pro-menu-entry + .pro-menu-entry::before { content: "•"; }
.menu-separator-line .pro-header nav > .pro-menu-entry + .pro-menu-entry::before { content: ""; width: 1px; height: 16px; background: var(--pro-line); }
.menu-separator-slash .pro-header nav > .pro-menu-entry + .pro-menu-entry::before { content: "/"; }
.pro-header nav a:hover, .pro-header nav a.active { color: var(--pro-text); background: var(--pro-surface); box-shadow: 0 6px 25px rgba(25,42,34,.08); }
.menu-underline .pro-header nav a, .menu-minimal .pro-header nav a { border-radius: 0; background: transparent; box-shadow: none; }
.menu-underline .pro-header nav a { position: relative; }
.menu-underline .pro-header nav a::after { content: ""; position: absolute; left: 13px; right: 13px; bottom: 4px; height: 2px; background: var(--pro-primary); transform: scaleX(0); transition: transform .2s ease; }
.menu-underline .pro-header nav a:hover::after, .menu-underline .pro-header nav a.active::after { transform: scaleX(1); }
.menu-minimal .pro-header nav { gap: 18px; }
.menu-minimal .pro-header nav a { padding-inline: 0; }
.menu-minimal.menu-separator-dot .pro-header nav,
.menu-minimal.menu-separator-line .pro-header nav,
.menu-minimal.menu-separator-slash .pro-header nav { gap: 24px; }
.pro-menu-button { display: none; align-items: center; gap: 9px; min-height: 42px; border: 1px solid color-mix(in srgb,var(--pro-primary) 35%,var(--pro-line)); border-radius: 999px; padding: 9px 14px; color: var(--pro-text); background: color-mix(in srgb,var(--pro-surface) 94%,var(--pro-primary) 6%); box-shadow: 0 7px 20px rgba(0,0,0,.08); font: inherit; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: color .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease; }
.pro-menu-button::before { content: ""; width: 17px; height: 12px; background: linear-gradient(var(--pro-primary),var(--pro-primary)) 0 0 / 100% 2px no-repeat,linear-gradient(var(--pro-primary),var(--pro-primary)) 0 50% / 72% 2px no-repeat,linear-gradient(var(--pro-primary),var(--pro-primary)) 0 100% / 100% 2px no-repeat; transition: transform .2s ease; }
.pro-menu-button:hover, .pro-menu-button:focus-visible { border-color: var(--pro-primary); color: var(--pro-primary); box-shadow: 0 9px 24px color-mix(in srgb,var(--pro-primary) 17%,transparent); outline: none; }
.pro-menu-open .pro-menu-button { color: var(--pro-surface); border-color: var(--pro-primary); background: var(--pro-primary); }
.pro-menu-open .pro-menu-button::before { background: linear-gradient(45deg,transparent 43%,var(--pro-surface) 43%,var(--pro-surface) 57%,transparent 57%),linear-gradient(-45deg,transparent 43%,var(--pro-surface) 43%,var(--pro-surface) 57%,transparent 57%); transform: none; }
.pro-hero { overflow: hidden; padding: 94px 0 82px; }
.pro-hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: clamp(45px, 7vw, 100px); }
.pro-eyebrow { margin: 0 0 17px; color: var(--pro-primary); font-size: 11px; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }
.pro-eyebrow-hidden .pro-eyebrow { display: none !important; }
.pro-hero .pro-eyebrow { font-size: 13px; font-weight: 650; letter-spacing: .105em; line-height: 1.1; }
.pro-hero h1 { max-width: 760px; margin: 0; font-size: clamp(48px, 6vw, 83px); line-height: .98; letter-spacing: -.065em; }
.pro-hero.hero-title-size-small h1 { font-size: clamp(30px,3.5vw,46px); }
.pro-hero.hero-title-size-medium h1 { font-size: clamp(38px,4.6vw,62px); }
.pro-hero.hero-title-size-large h1 { font-size: clamp(48px,6vw,83px); }
.pro-hero.hero-title-size-xlarge h1 { font-size: clamp(58px,7.2vw,102px); }
.pro-hero.hero-title-weight-normal h1 { font-weight: 400; }
.pro-hero.hero-title-weight-semibold h1 { font-weight: 600; }
.pro-hero.hero-title-weight-bold h1 { font-weight: 700; }
.pro-hero.hero-title-weight-heavy h1 { font-weight: 900; }
.pro-hero.hero-title-width-narrow h1 { max-width: 500px; }
.pro-hero.hero-title-width-medium h1 { max-width: 760px; }
.pro-hero.hero-title-width-wide h1 { max-width: 1040px; }
.pro-hero.hero-title-color-text h1 { color: var(--pro-text); }
.pro-hero.hero-title-color-primary h1 { color: var(--pro-primary); }
.pro-hero.hero-title-color-white h1 { color: #fff; }
.pro-hero.hero-title-color-custom h1 { color: var(--pro-hero-title-color); }
.pro-hero h1.pro-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; border: 0 !important; }
.pro-hero-heading { display: inline-flex; max-width: 100%; flex-direction: column; align-items: center; }
.pro-hero-heading.mode-logo-text { gap: 20px; }
.pro-hero-heading.mode-logo-text h1 { max-width: 100%; margin: 0; font-size: clamp(27px,3vw,42px); line-height: 1.08; letter-spacing: -.03em; text-align: center; text-wrap: balance; }
.pro-hero-heading.mode-logo-text .pro-hero-title-image.size-small { width: min(120px,42vw); max-height: 120px; }
.pro-hero-heading.mode-logo-text .pro-hero-title-image.size-medium { width: min(170px,50vw); max-height: 170px; }
.pro-hero-heading.mode-logo-text .pro-hero-title-image.size-large { width: min(230px,60vw); max-height: 230px; }
.pro-hero-heading.mode-logo-text .pro-hero-title-image.size-xlarge { width: min(320px,72vw); max-height: 320px; }
.pro-hero-heading.mode-logo-text .pro-hero-title-image.size-maximum { width: min(420px,82vw); max-height: 390px; }
.pro-hero-heading.mode-logo-side { flex-direction: row; gap: clamp(22px,3vw,46px); }
.pro-hero-heading.mode-logo-side h1 { min-width: 0; max-width: 430px; margin: 0; line-height: 1.15; letter-spacing: -.025em; text-align: left; text-wrap: balance; }
.pro-hero-heading.mode-logo-side .pro-hero-title-image.size-small { width: min(110px,24vw); max-height: 110px; }
.pro-hero-heading.mode-logo-side .pro-hero-title-image.size-medium { width: min(160px,30vw); max-height: 160px; }
.pro-hero-heading.mode-logo-side .pro-hero-title-image.size-large { width: min(220px,36vw); max-height: 220px; }
.pro-hero-heading.mode-logo-side .pro-hero-title-image.size-xlarge { width: min(300px,42vw); max-height: 300px; }
.pro-hero-heading.mode-logo-side .pro-hero-title-image.size-maximum { width: min(390px,48vw); max-height: 360px; }
.pro-hero-heading.title-size-small h1 { font-size: clamp(20px,2vw,29px); font-weight: 500; }
.pro-hero-heading.title-size-medium h1 { font-size: clamp(27px,3vw,42px); }
.pro-hero-heading.title-size-large h1 { font-size: clamp(36px,4vw,58px); }
.pro-hero-title-image { display: block; width: auto; max-width: 100%; max-height: 240px; object-fit: contain; object-position: left center; }
.pro-hero-title-image.size-small { width: min(240px, 70vw); }
.pro-hero-title-image.size-medium { width: min(380px, 78vw); }
.pro-hero-title-image.size-large { width: min(560px, 86vw); }
.pro-hero-title-image.size-xlarge { width: min(760px, 90vw); max-height: 330px; }
.pro-hero-title-image.size-maximum { width: min(980px, 94vw); max-height: 420px; }
.pro-hero-heading.logo-shadow-soft .pro-hero-title-image { filter: drop-shadow(0 6px 10px rgba(0,0,0,.28)); }
.pro-hero-heading.logo-shadow-strong .pro-hero-title-image { filter: drop-shadow(0 8px 15px rgba(0,0,0,.55)); }
.pro-hero-heading.logo-shadow-light .pro-hero-title-image { filter: drop-shadow(0 0 9px rgba(255,255,255,.92)) drop-shadow(0 0 22px rgba(255,255,255,.55)); }
.pro-hero-heading.logo-shadow-dark .pro-hero-title-image { filter: drop-shadow(0 0 9px rgba(0,0,0,.82)) drop-shadow(0 0 22px rgba(0,0,0,.48)); }
.hero-pos-center-center .pro-hero-heading, .hero-pos-center-bottom .pro-hero-heading, .hero-centered .pro-hero-heading { display: flex; width: fit-content; margin-inline: auto; }
.hero-pos-center-center .pro-hero-title-image, .hero-pos-center-bottom .pro-hero-title-image, .hero-centered .pro-hero-title-image { object-position: center; }
.hero-pos-right-center .pro-hero-heading, .hero-pos-right-bottom .pro-hero-heading { display: flex; width: fit-content; margin-left: auto; }
.hero-pos-right-center .pro-hero-title-image, .hero-pos-right-bottom .pro-hero-title-image { object-position: right center; }
.pro-lead { max-width: 660px; margin: 27px 0 32px; color: var(--pro-muted); font-size: clamp(18px, 2vw, 22px); line-height: 1.6; }
.pro-hero.hero-no-title .pro-lead { margin-top: 16px; }
.pro-button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 12px; padding: 12px 22px; border-radius: var(--pro-button-radius,14px); color: var(--pro-on-primary); background: var(--pro-primary); box-shadow: 0 10px 24px color-mix(in srgb,var(--pro-primary),transparent 78%); font-family: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size: 12px; font-weight: 760; line-height: 1.15; letter-spacing: .075em; text-decoration: none; text-transform: uppercase; }
.pro-button:hover { transform: translateY(-2px); box-shadow: 0 14px 30px color-mix(in srgb,var(--pro-primary),transparent 72%); }
.pro-hero.hero-button-custom .pro-button { color: var(--pro-hero-button-text); background: var(--pro-hero-button-bg); box-shadow: 0 10px 24px color-mix(in srgb,var(--pro-hero-button-bg),transparent 72%); }
.pro-hero.hero-button-custom .pro-button:hover { color: var(--pro-hero-button-text); background: var(--pro-hero-button-hover); box-shadow: 0 14px 30px color-mix(in srgb,var(--pro-hero-button-hover),transparent 68%); }
.pro-button > span { transition: transform .2s ease; }
.pro-button:hover > span { transform: translateX(3px); }
.pro-hero h1 + .pro-button { margin-top: 32px; }
.pro-button.light { color: var(--pro-primary-dark); background: #fff; }
.pro-visual { position: relative; min-height: 500px; overflow: hidden; border-radius: 42% 42% 22% 22%; background: linear-gradient(145deg, var(--pro-primary-dark), var(--pro-primary)); box-shadow: 0 35px 70px color-mix(in srgb, var(--pro-primary), transparent 70%); }
.pro-visual::before, .pro-visual::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; }
.pro-visual::before { width: 330px; height: 330px; right: -60px; top: -50px; }
.pro-visual::after { width: 230px; height: 230px; left: -50px; bottom: -60px; }
.pro-visual i { position: absolute; border-radius: 999px; background: rgba(255,255,255,.14); transform: rotate(-25deg); }
.pro-visual i:nth-child(1) { width: 70%; height: 28px; left: 15%; top: 23%; }
.pro-visual i:nth-child(2) { width: 52%; height: 28px; left: 30%; top: 34%; }
.pro-visual i:nth-child(3) { width: 62%; height: 28px; left: 12%; top: 45%; }
.pro-visual span { position: absolute; right: 11%; bottom: 8%; color: rgba(255,255,255,.84); font-size: 92px; font-weight: 900; letter-spacing: -.09em; }
.pro-hero-image { min-height: 500px; margin: 0; overflow: hidden; border-radius: var(--pro-radius); box-shadow: 0 30px 70px rgba(20,35,28,.18); }
.pro-hero-image img { width: 100%; height: 100%; min-height: 500px; object-fit: cover; }
.pro-hero-image.focus-left img { object-position: left center; }
.pro-hero-image.focus-center img { object-position: center; }
.pro-hero-image.focus-right img { object-position: right center; }
.pro-hero.hero-height-compact { padding-block: 58px; }
.pro-hero.hero-height-screen .pro-hero-grid { min-height: calc(100vh - 87px); }
.pro-hero.hero-image_first .pro-hero-image { order: -1; }
.pro-hero.hero-centered .pro-hero-grid { grid-template-columns: 1fr; justify-items: center; text-align: center; }
.pro-hero.hero-centered .pro-hero-copy { max-width: 900px; }
.pro-hero.hero-centered .pro-lead { margin-inline: auto; }
.pro-hero.hero-centered .pro-hero-image { width: min(100%, 1040px); }
.pro-hero.no-image.hero-centered .pro-visual { display: none; }
.pro-hero.no-image.hero-centered .pro-hero-grid { min-height: 0; gap: 0; }
.pro-hero.hero-cover { position: relative; min-height: 680px; padding: 0; color: #fff; background: var(--pro-background); }
.pro-hero.hero-cover.hero-height-short { min-height: 480px; }
.pro-hero.hero-cover.hero-height-compact { min-height: 600px; }
.pro-hero.hero-cover.hero-height-standard { min-height: 720px; }
.pro-hero.hero-cover.hero-height-screen { min-height: max(720px,calc(100svh - 87px)); }
.pro-hero.hero-cover .pro-hero-grid { width: 100%; max-width: none; min-height: inherit; grid-template-columns: 1fr; }
.pro-hero.hero-cover .pro-hero-image { position: absolute; inset: 0; min-height: inherit; border-radius: 0; opacity: 1; box-shadow: none; }
.pro-hero.hero-cover .pro-hero-image img { min-height: inherit; filter: brightness(.68); }
.pro-hero.hero-cover .pro-eyebrow { display: inline-flex; padding: 7px 11px; border-radius: 5px; color: var(--pro-on-primary); background: var(--pro-primary); font-size: 13px; font-weight: 650; letter-spacing: .105em; line-height: 1.1; text-shadow: none; }
.pro-hero.hero-cover .pro-hero-copy { position: absolute; z-index: 2; left: max(24px,calc((100vw - var(--pro-shell))/2)); top: 50%; width: min(680px,calc(100% - 48px)); margin: 0; transform: translateY(-50%); }
.pro-hero.hero-cover .pro-lead { color: rgba(255,255,255,.8); }
.pro-hero.hero-cover.hero-copy-narrow .pro-hero-copy { width: min(500px,calc(100% - 48px)); }
.pro-hero.hero-cover.hero-copy-wide .pro-hero-copy { width: min(980px,calc(100% - 48px)); }
.pro-hero.hero-cover.hero-edge-wide .pro-hero-copy { left: max(60px,calc((100vw - var(--pro-shell) + 120px)/2)); }
.pro-hero.hero-cover.hero-edge-edge .pro-hero-copy { left: 24px; }
.pro-hero.hero-cover.hero-pos-left-bottom .pro-hero-copy { top: auto; bottom: 7vh; transform: none; }
.pro-hero.hero-cover.hero-pos-center-center .pro-hero-copy,
.pro-hero.hero-cover.hero-pos-center-bottom .pro-hero-copy { left: 50%; text-align: center; transform: translate(-50%,-50%); }
.pro-hero.hero-cover.hero-pos-center-bottom .pro-hero-copy { top: auto; bottom: 7vh; transform: translateX(-50%); }
.pro-hero.hero-cover.hero-pos-center-center .pro-lead,
.pro-hero.hero-cover.hero-pos-center-bottom .pro-lead { margin-inline: auto; }
.pro-hero.hero-cover.hero-pos-right-center .pro-hero-copy,
.pro-hero.hero-cover.hero-pos-right-bottom .pro-hero-copy { right: max(24px,calc((100vw - var(--pro-shell))/2)); left: auto; text-align: right; }
.pro-hero.hero-cover.hero-pos-right-center .pro-lead,
.pro-hero.hero-cover.hero-pos-right-bottom .pro-lead { margin-left: auto; }
.pro-hero.hero-cover.hero-pos-right-bottom .pro-hero-copy { top: auto; bottom: 7vh; transform: none; }
.pro-hero.hero-cover.hero-edge-wide.hero-pos-right-center .pro-hero-copy,
.pro-hero.hero-cover.hero-edge-wide.hero-pos-right-bottom .pro-hero-copy { right: max(60px,calc((100vw - var(--pro-shell) + 120px)/2)); }
.pro-hero.hero-cover.hero-edge-edge.hero-pos-right-center .pro-hero-copy,
.pro-hero.hero-cover.hero-edge-edge.hero-pos-right-bottom .pro-hero-copy { right: 24px; }
.pro-hero.hero-cover.hero-panel-glass .pro-hero-copy { padding: clamp(24px,4vw,48px); border: 1px solid rgba(255,255,255,.22); border-radius: var(--pro-radius); background: rgba(5,9,7,.48); backdrop-filter: blur(15px); }
.pro-hero.hero-cover.hero-panel-solid .pro-hero-copy { padding: clamp(24px,4vw,48px); color: var(--pro-text); background: var(--pro-surface); }
.pro-hero.hero-cover.hero-panel-solid .pro-lead { color: var(--pro-muted); }
.pro-body .pro-hero.hero-cover.hero-panel-none .pro-hero-copy { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; }
.pro-body .pro-hero.hero-cover.hero-decoration-clean { border: 0; background: var(--pro-background); }
.pro-body .pro-hero.hero-cover.hero-decoration-clean .pro-hero-image { transform: none; border: 0; border-radius: 0; box-shadow: none; }
.pro-body .pro-hero.hero-cover.hero-decoration-clean .pro-hero-image img { transform: none; }

.pro-slider { position: relative; overflow: hidden; color: #fff; background: #101512; }
.pro-slider.height-standard { height: 600px; }
.pro-slider.height-large { height: 760px; }
.pro-slider.height-screen { height: calc(100vh - 87px); min-height: 650px; }
.pro-slider-track, .pro-slide { width: 100%; height: 100%; }
.pro-slide { position: absolute; inset: 0; visibility: hidden; opacity: 0; transition: visibility .8s, opacity .8s ease; }
.pro-slide.active { visibility: visible; opacity: 1; }
.pro-slide > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.045); }
.pro-slide.active > img { animation: pro-slide-image 8s ease-out both; }
@keyframes pro-slide-image { from { transform: scale(1.045); } to { transform: scale(1); } }
.pro-slide-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(5,9,7,.82),rgba(5,9,7,.18) 72%); }
.overlay-light .pro-slide-shade { background: linear-gradient(90deg,rgba(5,9,7,.58),rgba(5,9,7,.08) 72%); }
.overlay-strong .pro-slide-shade { background: linear-gradient(90deg,rgba(5,9,7,.92),rgba(5,9,7,.38) 78%); }
.pro-slide-content { position: relative; z-index: 2; display: flex; height: 100%; flex-direction: column; justify-content: center; align-items: flex-start; padding-block: 85px; }
.pro-slide-content h1 { max-width: 900px; margin: 0; font-size: clamp(52px,7vw,106px); line-height: .92; letter-spacing: -.065em; text-wrap: balance; }
.pro-slide-content > p:not(.pro-eyebrow) { max-width: 680px; margin: 25px 0 31px; color: rgba(255,255,255,.8); font-size: clamp(17px,2vw,22px); line-height: 1.55; }
.pro-slider.align-center .pro-slide-content { align-items: center; text-align: center; }
.pro-slider.align-right .pro-slide-content { align-items: flex-end; text-align: right; }
.pro-slider-controls { position: absolute; z-index: 5; right: max(24px,calc((100vw - var(--pro-shell))/2)); bottom: 30px; display: flex; align-items: center; gap: 14px; }
.pro-slider-controls > button { display: grid; width: 45px; height: 45px; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; color: #fff; background: rgba(0,0,0,.28); cursor: pointer; }
.pro-slider-dots { display: flex; gap: 7px; }
.pro-slider-dots button { width: 28px; height: 3px; padding: 0; border: 0; background: rgba(255,255,255,.35); cursor: pointer; }
.pro-slider-dots button.active { background: #fff; }
.pro-section { padding-block: 72px; }
.pro-block { display: block; }
.pro-block-spacing-compact > .pro-section { padding-block: 18px; }
.pro-block-spacing-normal > .pro-section { padding-block: 36px; }
.pro-block-spacing-wide > .pro-section { padding-block: 58px; }
.pro-block-spacing-compact > .pro-hero { padding-block: 36px; }
.pro-block-spacing-normal > .pro-hero { padding-block: 72px; }
.pro-block-spacing-wide > .pro-hero { padding-block: 116px; }
main > .pro-block:first-of-type.pro-block-spacing-compact > .pro-section { padding-top: 36px; }
main > .pro-block:first-of-type.pro-block-spacing-normal > .pro-section { padding-top: 72px; }
main > .pro-block:first-of-type.pro-block-spacing-wide > .pro-section { padding-top: 116px; }
main > .pro-block:last-of-type.pro-block-spacing-compact > .pro-section { padding-bottom: 36px; }
main > .pro-block:last-of-type.pro-block-spacing-normal > .pro-section { padding-bottom: 72px; }
main > .pro-block:last-of-type.pro-block-spacing-wide > .pro-section { padding-bottom: 116px; }
.pro-block-tone-alternate > :is(.pro-section,.pro-hero) { color: var(--pro-text); background: var(--pro-surface); }
.pro-block-tone-soft > :is(.pro-section,.pro-hero) { color: var(--pro-text); background: color-mix(in srgb, var(--pro-text) 6%, var(--pro-background)); }
.pro-block-tone-soft > :is(.pro-section,.pro-hero) .pro-richtext { color: color-mix(in srgb, var(--pro-text), transparent 22%); }
.pro-block-tone-primary > :is(.pro-section,.pro-hero) { color: var(--pro-on-primary); background: var(--pro-primary); }
.pro-block-tone-primary > :is(.pro-section,.pro-hero) .pro-eyebrow, .pro-block-tone-primary > :is(.pro-section,.pro-hero) a { color: var(--pro-on-primary); }
.pro-block-tone-primary > :is(.pro-section,.pro-hero) p, .pro-block-tone-primary > :is(.pro-section,.pro-hero) .pro-richtext, .pro-block-tone-primary > :is(.pro-section,.pro-hero) h3 { color: color-mix(in srgb, var(--pro-on-primary), transparent 10%); }
.pro-block-tone-dark > :is(.pro-section,.pro-hero) { color: #f5faf7; background: var(--pro-primary-dark); }
.pro-block-tone-dark > :is(.pro-section,.pro-hero) .pro-eyebrow { color: color-mix(in srgb, var(--pro-primary), #fff 55%); }
.pro-block-tone-dark > :is(.pro-section,.pro-hero) p, .pro-block-tone-dark > :is(.pro-section,.pro-hero) .pro-richtext, .pro-block-tone-dark > :is(.pro-section,.pro-hero) h3 { color: rgba(245,250,247,.82); }
.pro-block-tone-transparent > :is(.pro-section,.pro-hero) { background: transparent; }
.pro-section h2 { margin: 0 0 23px; font-size: clamp(36px, 5vw, 62px); line-height: 1.04; letter-spacing: -.055em; }
.pro-text.center { text-align: center; }
.pro-richtext { color: var(--pro-muted); font-size: clamp(17px, 2vw, 20px); line-height: 1.8; }
.pro-richtext > :first-child { margin-top: 0; }
.pro-richtext > :last-child { margin-bottom: 0; }
.pro-richtext p { margin: 0 0 1.15em; }
.pro-richtext h2, .pro-richtext h3 { margin: 1.6em 0 .55em; color: inherit; line-height: 1.2; letter-spacing: -.025em; }
.pro-richtext h2 { font-size: 1.55em; }
.pro-richtext h3 { font-size: 1.25em; }
.pro-richtext ul, .pro-richtext ol { margin: .7em 0 1.2em; padding-left: 1.45em; }
.pro-richtext li + li { margin-top: .35em; }
.pro-richtext a { color: var(--pro-primary); font-weight: 650; text-underline-offset: 3px; }
.pro-richtext blockquote { margin: 1.3em 0; padding-left: 1.1em; border-left: 3px solid var(--pro-primary); font-style: italic; }
.pro-text.text-title-size-small h2 { font-size: clamp(28px,3.4vw,42px); }
.pro-text.text-title-size-normal h2 { font-size: clamp(36px,5vw,62px); }
.pro-text.text-title-size-large h2 { font-size: clamp(46px,6vw,76px); }
.pro-text.text-title-size-xlarge h2 { font-size: clamp(56px,7.5vw,96px); }
.pro-text.text-body-size-small .pro-richtext { font-size: clamp(14px,1.4vw,16px); }
.pro-text.text-body-size-normal .pro-richtext { font-size: clamp(17px,2vw,20px); }
.pro-text.text-body-size-large .pro-richtext { font-size: clamp(20px,2.5vw,27px); }
.pro-text.text-line-compact .pro-richtext { line-height: 1.45; }
.pro-text.text-line-normal .pro-richtext { line-height: 1.7; }
.pro-text.text-line-relaxed .pro-richtext { line-height: 2; }

/* Pagine offerte: i blocchi informativi diventano schede editoriali coordinate. */
.pro-block-type-text.pro-block-variant-commercial + .pro-block-type-text.pro-block-variant-commercial .pro-commercial-text { padding-top: 6px; }
.pro-block-variant-commercial .pro-commercial-text { padding-block: clamp(14px,2.4vw,28px); }
.pro-commercial-text .pro-narrow { max-width: 780px; }
.pro-commercial-card { position: relative; overflow: hidden; padding: clamp(24px,3vw,38px); border: 1px solid color-mix(in srgb,var(--pro-primary),transparent 74%); border-radius: clamp(16px,1.8vw,24px); background: linear-gradient(145deg,color-mix(in srgb,var(--pro-primary),#fff 98%),var(--pro-surface)); box-shadow: 0 14px 38px color-mix(in srgb,var(--pro-primary-dark),transparent 94%); }
.pro-commercial-mark { position: absolute; inset: 0 auto 0 0; width: 4px; background: linear-gradient(180deg,var(--pro-primary),color-mix(in srgb,var(--pro-primary),transparent 78%)); }
.pro-commercial-card h2 { max-width: 720px; margin-bottom: clamp(18px,2.2vw,26px); font-size: clamp(30px,3.5vw,46px); }
.pro-commercial-lines { display: grid; gap: 0; }
.pro-commercial-lines p { display: grid; grid-template-columns: 25px minmax(0,1fr); gap: 10px; align-items: start; margin: 0; padding: 10px 0; border-bottom: 1px solid color-mix(in srgb,var(--pro-text),transparent 91%); color: var(--pro-text); font-size: clamp(15px,1.15vw,17px); line-height: 1.5; }
.pro-commercial-lines p:last-child { border-bottom: 0; }
.pro-commercial-lines p > span { display: grid; width: 20px; height: 20px; margin-top: .08em; place-items: center; border-radius: 50%; color: var(--pro-on-primary); background: var(--pro-primary); font-size: 11px; font-weight: 850; line-height: 1; }
.commercial-price .pro-commercial-card { border-color: color-mix(in srgb,var(--pro-primary),transparent 62%); background: linear-gradient(135deg,color-mix(in srgb,var(--pro-primary),#fff 96%),var(--pro-surface) 72%); }
.commercial-price .pro-commercial-lines { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.commercial-price .pro-commercial-lines p { padding: 15px 16px; border: 1px solid color-mix(in srgb,var(--pro-primary),transparent 82%); border-radius: 12px; background: color-mix(in srgb,var(--pro-background),transparent 28%); }
.commercial-price .pro-commercial-lines p:last-child:nth-child(odd) { grid-column: 1 / -1; }
.commercial-notice .pro-commercial-card { background: color-mix(in srgb,var(--pro-primary),var(--pro-background) 95%); box-shadow: none; }
.commercial-notice .pro-commercial-lines p > span { color: var(--pro-primary-dark); background: color-mix(in srgb,var(--pro-primary),#fff 78%); }
.pro-contact-form-section { background: color-mix(in srgb,var(--pro-primary),var(--pro-background) 96%); }
.pro-contact-form-layout { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr); gap: clamp(36px,7vw,110px); align-items: start; }
.pro-contact-form-copy { position: sticky; top: 130px; }
.pro-contact-form-copy h2 { margin: 12px 0 20px; font-size: clamp(40px,5.4vw,74px); }
.pro-contact-form-copy > p:last-child { color: var(--pro-muted); font-size: clamp(17px,1.5vw,20px); line-height: 1.7; }
.pro-contact-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; padding: clamp(24px,4vw,48px); border: 1px solid color-mix(in srgb,var(--pro-primary),transparent 70%); border-radius: clamp(22px,2.5vw,34px); background: var(--pro-surface); box-shadow: 0 24px 70px color-mix(in srgb,var(--pro-primary-dark),transparent 91%); }
.pro-contact-form label { display: grid; gap: 8px; color: var(--pro-text); font-size: 14px; font-weight: 750; }
.pro-contact-form label small { color: var(--pro-muted); font-weight: 500; }
.pro-contact-form input:not([type="checkbox"]), .pro-contact-form textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--pro-line); border-radius: 13px; padding: 14px 15px; color: var(--pro-text); background: var(--pro-background); font: inherit; font-weight: 450; }
.pro-contact-form input:focus, .pro-contact-form textarea:focus { outline: 3px solid color-mix(in srgb,var(--pro-primary),transparent 75%); border-color: var(--pro-primary); }
.pro-contact-form .span-2 { grid-column: 1 / -1; }
.pro-contact-form .pro-form-consent { display: flex; grid-template-columns: none; gap: 11px; align-items: flex-start; font-weight: 500; line-height: 1.5; }
.pro-form-consent input { flex: 0 0 auto; margin-top: 4px; accent-color: var(--pro-primary); }
.pro-form-consent a { color: var(--pro-primary-dark); }
.pro-form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.pro-form-status:empty { display: none; }
.pro-form-status { padding: 13px 16px; border-radius: 12px; font-weight: 700; }
.pro-form-status.success { color: #155d36; background: #dff6e9; }
.pro-form-status.error { color: #8b2525; background: #fde7e7; }
.pro-contact-form .pro-button { justify-self: start; border: 0; cursor: pointer; }
.pro-contact-form .pro-button:disabled { opacity: .5; cursor: not-allowed; }
@media (max-width: 700px) {
    .pro-commercial-card { padding: 23px 20px 25px; border-radius: 18px; }
    .commercial-price .pro-commercial-lines { grid-template-columns: 1fr; }
    .commercial-price .pro-commercial-lines p:last-child:nth-child(odd) { grid-column: auto; }
    .pro-contact-form-layout { grid-template-columns: 1fr; }
    .pro-contact-form-copy { position: static; }
    .pro-contact-form { grid-template-columns: 1fr; padding: 24px 20px; }
    .pro-contact-form .span-2 { grid-column: auto; }
}

/* Contenuti provenienti dai siti legacy: adattamento prudente senza riscrivere l'HTML originale. */
.pro-legacy-html { color: var(--pro-text); }
.pro-legacy-html .pro-shell { overflow-wrap: anywhere; }
.pro-legacy-html img,
.pro-legacy-html video,
.pro-legacy-html iframe { max-width: 100%; height: auto; }
.pro-legacy-html table { width: 100%; max-width: 100%; border-collapse: collapse; }
.pro-legacy-html a { color: var(--pro-primary); }
.pro-split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(42px, 7vw, 100px); }
.pro-split.image-right .pro-split-image { order: 2; }
.pro-split-image { display: grid; min-height: 520px; overflow: hidden; place-items: center; border-radius: var(--pro-radius); color: var(--pro-muted); background: color-mix(in srgb, var(--pro-primary), #fff 84%); }
.pro-split-image img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.pro-therapy { width: 100%; padding: 0; }
.pro-therapy-grid { display: grid; min-height: 560px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.therapy-layout-dominant.therapy-image-left .pro-therapy-grid,
.therapy-layout-blend.therapy-image-left .pro-therapy-grid { grid-template-columns: minmax(0,2fr) minmax(300px,1fr); }
.therapy-layout-dominant.therapy-image-right .pro-therapy-grid,
.therapy-layout-blend.therapy-image-right .pro-therapy-grid { grid-template-columns: minmax(300px,1fr) minmax(0,2fr); }
.therapy-width-contained { padding: 36px 0; }
.therapy-width-contained .pro-therapy-grid { width: min(var(--pro-shell),calc(100% - 48px)); margin-inline: auto; overflow: hidden; border-radius: var(--pro-radius); }
.therapy-height-short .pro-therapy-grid { min-height: 260px; }
.therapy-height-compact .pro-therapy-grid { min-height: 340px; }
.therapy-height-tall .pro-therapy-grid { min-height: 680px; }
.pro-therapy-image { position: relative; min-width: 0; margin: 0; overflow: hidden; background: var(--pro-primary-dark); }
.therapy-image-right .pro-therapy-image { order: 2; }
.therapy-layout-blend { --therapy-panel: var(--pro-primary); }
.therapy-layout-blend.therapy-panel-light { --therapy-panel: var(--pro-background); }
.therapy-layout-blend.therapy-panel-dark { --therapy-panel: var(--pro-primary-dark); }
.therapy-layout-blend.therapy-panel-alternate { --therapy-panel: var(--pro-surface); }
.therapy-layout-blend .pro-therapy-image::before { content: ""; position: absolute; z-index: 1; top: 0; bottom: 0; width: clamp(80px,16vw,230px); pointer-events: none; }
.therapy-layout-blend.therapy-image-left .pro-therapy-image::before { right: 0; background: linear-gradient(to right,transparent,var(--therapy-panel)); }
.therapy-layout-blend.therapy-image-right .pro-therapy-image::before { left: 0; background: linear-gradient(to left,transparent,var(--therapy-panel)); }
.pro-therapy-image::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent,rgba(0,0,0,.78)); pointer-events: none; }
.pro-therapy-image img { width: 100%; height: 100%; min-height: inherit; object-fit: cover; object-position: center; }
.therapy-focus-left .pro-therapy-image img { object-position: left center; }
.therapy-focus-right .pro-therapy-image img { object-position: right center; }
.therapy-focus-top .pro-therapy-image img { object-position: center top; }
.therapy-focus-bottom .pro-therapy-image img { object-position: center bottom; }
.pro-therapy-image figcaption { position: absolute; z-index: 1; right: clamp(24px,5vw,70px); bottom: clamp(24px,5vw,54px); left: clamp(24px,5vw,70px); color: #fff; font-size: clamp(34px,4.2vw,62px); font-weight: 400; letter-spacing: .035em; line-height: 1; text-align: center; text-transform: uppercase; text-wrap: balance; }
.pro-therapy-copy { display: flex; min-width: 0; flex-direction: column; align-items: center; justify-content: center; padding: clamp(42px,7vw,105px); text-align: center; }
.therapy-align-left .pro-therapy-copy { align-items: flex-start; text-align: left; }
.pro-therapy-copy .pro-richtext { color: inherit; font-size: clamp(18px,2vw,25px); line-height: 1.65; }
.pro-therapy-copy .pro-button { margin-top: 26px; }
.therapy-height-compact .pro-therapy-copy { padding: clamp(28px,3vw,48px); }
.therapy-height-compact .pro-therapy-copy .pro-richtext { font-size: clamp(16px,1.35vw,19px); line-height: 1.55; }
.therapy-line-compact .pro-therapy-copy .pro-richtext { line-height: 1.4; }
.therapy-line-normal .pro-therapy-copy .pro-richtext { line-height: 1.65; }
.therapy-line-relaxed .pro-therapy-copy .pro-richtext { line-height: 1.9; }
.therapy-height-compact .pro-therapy-copy .pro-button { min-height: 44px; margin-top: 20px; padding-block: 9px; }
.therapy-height-compact .pro-therapy-image figcaption { bottom: clamp(20px,3vw,36px); font-size: clamp(29px,3.2vw,46px); }
.therapy-panel-primary .pro-therapy-copy { color: var(--pro-on-primary); background: var(--pro-primary); }
.therapy-panel-primary .pro-therapy-copy .pro-button { color: var(--pro-primary); background: var(--pro-on-primary); box-shadow: none; }
.therapy-panel-dark .pro-therapy-copy { color: #f5faf7; background: var(--pro-primary-dark); }
.therapy-panel-dark .pro-therapy-copy .pro-button { color: var(--pro-primary-dark); background: #fff; box-shadow: none; }
.therapy-panel-light .pro-therapy-copy { color: var(--pro-text); background: var(--pro-background); }
.therapy-panel-alternate .pro-therapy-copy { color: var(--pro-text); background: var(--pro-surface); }
.therapy-layout-banner .pro-therapy-grid { display: flex; min-height: 0; flex-direction: column; }
.therapy-layout-banner .pro-therapy-image { order: 0; z-index: 0; height: 420px; min-height: 0; flex: 0 0 420px; }
.therapy-layout-banner.therapy-height-short .pro-therapy-image { height: 210px; flex-basis: 210px; }
.therapy-layout-banner.therapy-height-compact .pro-therapy-image { height: 300px; flex-basis: 300px; }
.therapy-layout-banner.therapy-height-tall .pro-therapy-image { height: 560px; flex-basis: 560px; }
.therapy-layout-banner .pro-therapy-image img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.therapy-layout-banner .pro-therapy-image::after { inset: 35% 0 0; background: linear-gradient(transparent,rgba(0,0,0,.72)); }
.therapy-layout-banner .pro-therapy-copy { order: 1; z-index: 2; width: 100%; min-height: 0; align-items: flex-start; padding: clamp(26px,3vw,46px) max(24px,calc((100vw - var(--pro-shell))/2)); text-align: left; }
.therapy-layout-banner .pro-therapy-copy > * { width: min(100%,760px); max-width: 760px; }
.therapy-layout-banner .pro-therapy-image figcaption { right: max(24px,calc((100vw - var(--pro-shell))/2)); left: max(24px,calc((100vw - var(--pro-shell))/2)); max-width: none; text-align: left; text-shadow: 0 2px 14px rgba(0,0,0,.45); }
.therapy-layout-banner.therapy-height-short .pro-therapy-image figcaption { bottom: 18px; font-size: clamp(27px,3vw,42px); }
.therapy-layout-banner.therapy-width-contained .pro-therapy-copy { padding-inline: clamp(28px,5vw,72px); }
.therapy-layout-banner.therapy-width-contained .pro-therapy-image figcaption { right: clamp(28px,5vw,72px); left: clamp(28px,5vw,72px); }
.pro-services { color: #f5faf7; background: var(--pro-primary-dark); }
.pro-services .pro-eyebrow { color: #8cddb3; }
.pro-section-heading { max-width: 760px; margin-bottom: 43px; }
.pro-services.services-title-full .pro-section-heading { width: 100%; max-width: none; }
.pro-section-heading > p:last-child { color: #b5c8bf; font-size: 18px; line-height: 1.65; }
.pro-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pro-services.services-columns-1 .pro-service-grid { grid-template-columns: 1fr; }
.pro-services.services-columns-2 .pro-service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.pro-services.services-columns-3 .pro-service-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.pro-services.services-list .pro-service-grid { grid-template-columns: 1fr; }
.pro-service-grid article { position: relative; min-height: 180px; padding: 25px; border: 1px solid rgba(255,255,255,.13); border-radius: 20px; background: rgba(255,255,255,.055); }
.pro-service-grid article span { color: #8cddb3; font-size: 11px; font-weight: 850; }
.pro-service-grid h3 { max-width: 260px; margin: 35px 0 0; font-size: 20px; line-height: 1.25; }
.pro-service-grid article i { position: absolute; right: 22px; top: 20px; color: #8cddb3; font-style: normal; }
.services-list .pro-service-grid { grid-template-columns: 1fr; gap: 0; border-top: 1px solid rgba(255,255,255,.2); }
.services-list .pro-service-grid article { display: grid; min-height: 105px; grid-template-columns: 70px 1fr auto; align-items: center; padding: 20px 5px; border: 0; border-bottom: 1px solid rgba(255,255,255,.2); border-radius: 0; background: transparent; }
.services-list .pro-service-grid h3 { max-width: none; margin: 0; font-size: clamp(24px,3vw,38px); }
.services-list .pro-service-grid article i { position: static; font-size: 24px; }
.services-compact .pro-service-grid { grid-template-columns: repeat(4,1fr); gap: 1px; background: rgba(255,255,255,.16); }
.services-compact .pro-service-grid article { min-height: 135px; border: 0; border-radius: 0; }
.services-compact .pro-service-grid h3 { margin-top: 25px; font-size: 17px; }
.pro-cta { display: flex; align-items: center; justify-content: space-between; gap: 35px; padding: clamp(32px, 6vw, 66px); border-radius: var(--pro-radius); color: #fff; background: linear-gradient(135deg, var(--pro-primary-dark), var(--pro-primary)); }
.pro-cta h2 { margin-bottom: 12px; }
.pro-cta p:not(.pro-eyebrow) { max-width: 650px; color: rgba(255,255,255,.75); line-height: 1.6; }
.pro-cta .pro-eyebrow { color: #b7ebce; }
.pro-cta.cta-eyebrow-small .pro-eyebrow { font-size: 9px; }
.pro-cta.cta-eyebrow-large .pro-eyebrow { font-size: 15px; letter-spacing: .14em; }
.pro-cta.cta-eyebrow-color-white .pro-eyebrow { color: #fff; }
.pro-cta.cta-eyebrow-color-primary .pro-eyebrow { color: var(--pro-primary); }
.pro-contacts { background: var(--pro-surface); }
.pro-contacts .pro-section-heading { max-width: none; }
.pro-contacts .pro-section-heading > p:not(.pro-eyebrow) { grid-column: 1 / -1; width: 100%; max-width: none; }
.pro-contact-layout { display: grid; grid-template-columns: minmax(0,.85fr) minmax(420px,1.15fr); gap: clamp(30px,5vw,76px); align-items: stretch; }
.pro-contact-grid { display: grid; grid-template-columns: 1fr; align-content: center; border-top: 1px solid var(--pro-line); }
.pro-contact-grid > * { display: flex; align-items: center; gap: 18px; min-width: 0; padding: 22px 4px; border-bottom: 1px solid var(--pro-line); color: inherit; text-decoration: none; transition: color .2s ease, transform .2s ease; }
.pro-contact-grid > a:hover { color: var(--pro-primary); transform: translateX(4px); }
.pro-contact-grid > * > span:last-child { display: grid; gap: 6px; min-width: 0; }
.pro-contact-grid small { color: var(--pro-muted); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.pro-contact-grid strong { overflow-wrap: anywhere; font-size: 18px; line-height: 1.4; }
.pro-contact-icon { display: grid; flex: 0 0 46px; width: 46px; height: 46px; place-items: center; border: 1px solid color-mix(in srgb,var(--pro-primary),transparent 65%); border-radius: 50%; color: var(--pro-primary); background: color-mix(in srgb,var(--pro-primary),transparent 92%); }
.pro-contact-icon svg { width: 22px; height: 22px; }
.pro-contact-map { position: relative; min-height: 500px; overflow: hidden; border-radius: var(--pro-radius); background: color-mix(in srgb,var(--pro-primary),transparent 92%); box-shadow: 0 22px 54px rgba(24,35,30,.12); }
.pro-contact-map iframe { display: block; width: 100%; height: 100%; min-height: inherit; border: 0; }
.pro-contact-map > a { position: absolute; right: 14px; bottom: 14px; padding: 10px 14px; border-radius: 999px; color: var(--pro-text); background: color-mix(in srgb,var(--pro-surface),transparent 8%); box-shadow: 0 5px 20px rgba(0,0,0,.16); font-size: 12px; font-weight: 700; text-decoration: none; backdrop-filter: blur(8px); }
.pro-contact-map > .pro-contact-map-image { position: absolute; inset: 0; display: block; padding: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; }
.pro-contact-map-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pro-contact-map > .pro-contact-map-action { z-index: 2; }
.contacts-map-compact .pro-contact-map { min-height: 360px; }
.contacts-map-tall .pro-contact-map { min-height: 620px; }
.contacts-layout-stacked .pro-contact-layout { grid-template-columns: 1fr; }
.contacts-layout-stacked .pro-contact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.contacts-layout-stacked .pro-contact-grid > *:nth-child(odd) { padding-right: 26px; }
.contacts-layout-stacked .pro-contact-grid > *:nth-child(even) { padding-left: 26px; border-left: 1px solid var(--pro-line); }
.pro-opening-hours { background: color-mix(in srgb,var(--pro-surface),var(--pro-primary) 3%); }
.pro-opening-hours .pro-section-heading { max-width: none; margin-inline: 0; text-align: left; }
.layout-industrial .pro-opening-hours .pro-section-heading { display: block; }
.pro-hours-list { display: grid; width: min(100%,900px); margin-inline: auto; gap: 0; overflow: hidden; border: 1px solid var(--pro-line); border-radius: var(--pro-radius); background: var(--pro-surface); }
.pro-hours-list article { display: grid; grid-template-columns: minmax(150px,.7fr) minmax(220px,1.3fr); gap: 24px; align-items: center; padding: 18px clamp(20px,3vw,38px); border-bottom: 1px solid var(--pro-line); }
.pro-hours-list article:last-child { border-bottom: 0; }
.pro-hours-list strong { font-size: 16px; }
.pro-hours-list span { color: var(--pro-muted); font-size: 17px; line-height: 1.45; }
.pro-hours-list .is-closed span { color: color-mix(in srgb,var(--pro-muted),transparent 18%); font-style: italic; }
.hours-layout-cards .pro-hours-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; border: 0; background: transparent; }
.hours-layout-cards .pro-hours-list article { grid-template-columns: 1fr; gap: 7px; min-height: 105px; border: 1px solid var(--pro-line); background: var(--pro-surface); }
.hours-layout-cards .pro-hours-list article:nth-child(even) { border-left: 0; }
.hours-layout-cards .pro-hours-list article:nth-child(n+3) { border-top: 0; }
.pro-hours-note { max-width: 760px; margin: 22px auto 0; color: var(--pro-muted); font-size: 15px; line-height: 1.6; text-align: center; }
.pro-empty { min-height: 68vh; display: grid; place-items: center; padding: 70px 24px; text-align: center; }
.pro-empty span { color: var(--pro-primary); font-weight: 800; text-transform: uppercase; }
.pro-empty h1 { margin: 12px 0; font-size: clamp(45px, 7vw, 78px); }
.pro-empty p { margin-bottom: 28px; color: var(--pro-muted); }
.pro-footer { --pro-footer-logo-size: 100px; padding: clamp(36px,5vw,68px) 0; color: var(--pro-footer-text); background: var(--pro-footer-bg); }
.pro-footer.footer-spacing-compact { padding-block: 32px; }
.pro-footer.footer-spacing-wide { padding-block: clamp(70px,7vw,104px); }
.pro-footer > .pro-shell { display: grid; grid-template-columns: minmax(180px,.9fr) minmax(240px,1.1fr); align-items: start; gap: 32px clamp(42px,8vw,110px); }
.pro-footer strong { font-size: 19px; }
.pro-footer p { margin: 0; color: color-mix(in srgb, var(--pro-footer-text), transparent 34%); line-height: 1.55; }
.pro-footer-identity, .pro-footer-contact { display: grid; gap: 15px; }
.pro-footer-contact { justify-items: end; text-align: right; font-size: 14px; line-height: 1.55; }
.pro-footer-contact address { color: inherit; font-style: normal; }
.pro-footer-copy { max-width: 520px; }
.pro-footer-logo { display: block; width: auto; height: auto; max-width: var(--pro-footer-logo-size); max-height: var(--pro-footer-logo-size); object-fit: contain; }
.footer-logo-small { --pro-footer-logo-size: 72px; }
.footer-logo-large { --pro-footer-logo-size: 140px; }
.footer-layout-balanced > .pro-shell { grid-template-rows: auto auto auto; row-gap: 15px; }
.footer-layout-balanced .pro-footer-identity { display: contents; }
.footer-layout-balanced .pro-footer-identity > :is(.pro-footer-logo,strong) { grid-column: 1; grid-row: 1; }
.footer-layout-balanced .pro-footer-copy { grid-column: 1; grid-row: 2; align-self: start; }
.footer-layout-balanced .pro-footer-contact { grid-column: 2; grid-row: 2; display: flex; flex-wrap: wrap; align-self: start; align-items: baseline; justify-content: flex-end; gap: 8px 22px; padding-top: 0; }
.footer-layout-balanced .pro-footer-contact .pro-legal-links { column-gap: 18px; }
.footer-layout-balanced .pro-footer-contact .pro-legal-links > * + * { margin-left: 0; }
.footer-layout-balanced:not(:has(.pro-footer-copy)) .pro-footer-contact { grid-row: 1; }
.footer-layout-balanced .pro-footer-bottom { grid-row: 3; margin-top: 17px; }
.pro-footer-bottom { grid-column: 1/-1; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; padding-top: 25px; border-top: 1px solid color-mix(in srgb,var(--pro-footer-text),transparent 80%); }
.pro-footer-copyright { color: color-mix(in srgb,var(--pro-footer-text),transparent 24%); font-size: 13px; }
.footer-copy-left .pro-footer-copyright { grid-column: 1; justify-self: start; text-align: left; }
.footer-copy-center .pro-footer-copyright { grid-column: 2; justify-self: center; text-align: center; }
.footer-copy-right .pro-footer-copyright { grid-column: 3; justify-self: end; text-align: right; }
.pro-footer-bottom .pro-social-links { grid-column: 3; justify-self: end; }
.footer-copy-right.footer-has-social .pro-footer-bottom .pro-social-links { grid-column: 1; justify-self: start; }
.pro-footer a { color: var(--pro-footer-link); }
.pro-legal-links { display: flex; flex-wrap: wrap; justify-content: flex-end; row-gap: 8px; }
.pro-legal-links > * + * { margin-left: 16px; }
.pro-social-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; margin: 0; }
.pro-social-links a { display: inline-flex; align-items: center; gap: 7px; color: inherit; font-size: 13px; font-weight: 700; text-decoration: none; }
.pro-social-links a span { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid currentColor; border-radius: 50%; opacity: .9; }
.pro-social-links a svg { width: 19px; height: 19px; }
.pro-social-links.social-style-icons a b { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pro-social-links a:hover { color: var(--pro-primary); }
.pro-social-showcase .pro-section-heading { margin-inline: auto; text-align: center; }
.pro-social-showcase-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(28px,6vw,78px); }
.pro-social-showcase-grid a { display: flex; width: clamp(120px,15vw,190px); flex-direction: column; align-items: center; gap: 16px; color: var(--pro-primary); text-decoration: none; }
.pro-social-showcase.social-color-primary .pro-social-showcase-grid a { color: var(--pro-primary); }
.pro-social-showcase.social-color-text .pro-social-showcase-grid a { color: var(--pro-text); }
.pro-social-showcase.social-color-custom .pro-social-showcase-grid a { color: var(--pro-social-color); }
.pro-block-tone-primary .pro-social-showcase.social-color-auto .pro-social-showcase-grid a { color: var(--pro-on-primary); }
.pro-block-tone-dark .pro-social-showcase.social-color-auto .pro-social-showcase-grid a { color: #f5faf7; }
.pro-social-showcase-grid a > span { display: grid; width: clamp(88px,9vw,118px); aspect-ratio: 1; place-items: center; border: 1px solid color-mix(in srgb,currentColor 34%,transparent); border-radius: 50%; background: color-mix(in srgb,currentColor 7%,transparent); transition: transform .22s ease,border-color .22s ease,background .22s ease; }
.pro-social-showcase-grid svg { width: 48%; height: 48%; }
.pro-social-showcase-grid strong { color: currentColor; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
.pro-social-showcase-grid a:hover > span, .pro-social-showcase-grid a:focus-visible > span { border-color: currentColor; background: color-mix(in srgb,currentColor 14%,transparent); transform: translateY(-5px); }
.pro-social-showcase-grid a:focus-visible { outline: none; }
.footer-layout-original > .pro-shell { grid-template-columns: minmax(120px,1fr) minmax(300px,1fr); }
.footer-layout-original .pro-footer-contact { justify-items: end; text-transform: uppercase; }
.footer-layout-original .pro-footer-copy { display: none; }
.footer-layout-original .pro-footer-bottom { display: grid; justify-items: center; justify-content: center; text-align: center; }
.footer-layout-original .pro-social-links { justify-content: center; }
.footer-layout-original .pro-footer-logo { max-width: 105px; max-height: 105px; }
.footer-layout-centered > .pro-shell { grid-template-columns: 1fr; justify-items: center; text-align: center; }
.footer-layout-centered .pro-footer-identity, .footer-layout-centered .pro-footer-contact { justify-items: center; }
.footer-layout-centered .pro-footer-bottom { flex-direction: column; justify-content: center; }
.footer-layout-centered .pro-social-links, .footer-layout-centered .pro-legal-links { justify-content: center; }
.pro-legal-links a, .pro-legal-links button { padding: 0; border: 0; color: inherit; background: none; font: inherit; text-decoration: underline; cursor: pointer; }
.pro-cookie-banner { position: fixed; z-index: 100; left: 22px; right: 22px; bottom: 22px; display: flex; max-width: 980px; margin-inline: auto; align-items: center; justify-content: space-between; gap: 28px; padding: 22px; border: 1px solid rgba(255,255,255,.16); border-radius: 16px; color: #edf7f1; background: #101914; box-shadow: 0 22px 70px rgba(0,0,0,.35); }
.pro-cookie-banner[hidden] { display: none; }
.pro-cookie-banner strong { font-size: 17px; }
.pro-cookie-banner p { max-width: 650px; margin: 7px 0; color: #b9c8c0; font-size: 14px; line-height: 1.5; }
.pro-cookie-banner span { display: flex; gap: 14px; font-size: 12px; }
.pro-back-to-top { position: fixed; z-index: 90; right: 26px; bottom: 26px; display: grid; width: 50px; height: 50px; place-items: center; padding: 0; border: 1px solid color-mix(in srgb,var(--pro-primary),#fff 22%); border-radius: 50%; color: var(--pro-on-primary); background: var(--pro-primary); box-shadow: 0 14px 34px color-mix(in srgb,var(--pro-primary),transparent 68%); cursor: pointer; opacity: 0; pointer-events: none; transform: translateY(12px); transition: opacity .2s ease,transform .2s ease,background .2s ease; }
.pro-back-to-top.visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.pro-back-to-top:hover { background: var(--pro-primary-dark); }
.pro-back-to-top:focus-visible { outline: 3px solid color-mix(in srgb,var(--pro-primary),#fff 50%); outline-offset: 3px; }
.pro-back-to-top svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.buttons-square .pro-back-to-top { border-radius: 7px; }
.pro-cookie-actions { display: flex; flex: 0 0 auto; gap: 9px; }
.pro-cookie-actions button { min-height: 42px; padding: 9px 16px; border: 1px solid #52645a; border-radius: 8px; color: #edf7f1; background: transparent; cursor: pointer; font-weight: 750; }
.pro-cookie-actions .accept { border-color: var(--pro-primary); color: var(--pro-on-primary); background: var(--pro-primary); }
.pro-single-image figure { margin: 0; }
.pro-single-image img { display: block; width: 100%; height: auto; }
.pro-single-image.width-small figure { width: min(100%, 360px); }
.pro-single-image.width-medium figure { width: min(100%, 640px); }
.pro-single-image.width-large figure { width: min(100%, 960px); }
.pro-single-image.width-full figure { width: 100%; }
.pro-single-image.align-left figure { margin-right: auto; }
.pro-single-image.align-center figure { margin-inline: auto; }
.pro-single-image.align-right figure { margin-left: auto; }
.pro-single-image figcaption { max-width: 760px; margin: 20px auto 0; color: var(--pro-text); font-size: clamp(18px, 2vw, 25px); font-weight: 700; line-height: 1.35; text-align: center; text-wrap: balance; }
.pro-single-image.caption-size-small figcaption { font-size: 16px; }
.pro-single-image.caption-size-large figcaption { font-size: clamp(25px, 3vw, 36px); }
.pro-single-image.caption-size-xlarge figcaption { max-width: 960px; font-size: clamp(32px, 4.5vw, 54px); }
.pro-single-image.caption-font-modern figcaption { font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
.pro-single-image.caption-font-editorial figcaption { font-family: Georgia, "Times New Roman", serif; }
.pro-single-image.caption-font-classic figcaption { font-family: Arial, Helvetica, sans-serif; }
.pro-single-image.caption-weight-400 figcaption { font-weight: 400; }
.pro-single-image.caption-weight-600 figcaption { font-weight: 600; }
.pro-single-image.caption-weight-700 figcaption { font-weight: 700; }
.pro-single-image.caption-weight-800 figcaption { font-weight: 800; }
.pro-single-image.caption-align-left figcaption { text-align: left; }
.pro-single-image.caption-align-center figcaption { text-align: center; }
.pro-single-image.caption-align-right figcaption { text-align: right; }
.pro-single-image.caption-spacing-compact figcaption { margin-top: 10px; }
.pro-single-image.caption-spacing-wide figcaption { margin-top: 34px; }
.pro-single-image.caption-color-primary figcaption { color: var(--pro-primary); }
.pro-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.columns-2 .pro-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.columns-4 .pro-gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pro-gallery-grid figure { margin: 0; overflow: hidden; border-radius: var(--pro-radius); background: var(--pro-surface); }
.pro-gallery-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .35s ease; }
.ratio-square .pro-gallery-grid img { aspect-ratio: 1; }
.ratio-portrait .pro-gallery-grid img { aspect-ratio: 3 / 4; }
.ratio-original .pro-gallery-grid img { height: auto; aspect-ratio: auto; }
.fit-contain .pro-gallery-grid img { object-fit: contain; background: color-mix(in srgb, var(--pro-text), transparent 94%); }
.captions-hide .pro-gallery-grid figcaption { display: none; }
.layout-masonry .pro-gallery-grid { display: block; column-count: 3; column-gap: 14px; }
.layout-masonry.columns-2 .pro-gallery-grid { column-count: 2; }
.layout-masonry.columns-4 .pro-gallery-grid { column-count: 4; }
.layout-masonry .pro-gallery-grid figure { break-inside: avoid; margin-bottom: 14px; }
.layout-masonry .pro-gallery-grid img { height: auto; aspect-ratio: auto; object-fit: contain; }
.pro-gallery-grid figure:hover img { transform: scale(1.025); }
.pro-gallery-grid figcaption { padding: 12px 15px; color: var(--pro-muted); font-size: 13px; }
.pro-testimonials { background: var(--pro-surface); }
.pro-testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.pro-testimonial-grid blockquote { display: flex; min-height: 245px; flex-direction: column; justify-content: space-between; margin: 0; padding: 28px; border: 1px solid var(--pro-line); border-radius: var(--pro-radius); background: var(--pro-background); }
.pro-testimonial-grid blockquote > p { margin: 0 0 35px; font-size: 18px; line-height: 1.65; }
.pro-testimonial-grid footer { display: grid; gap: 4px; }
.pro-testimonial-grid footer span { color: var(--pro-muted); font-size: 13px; }
.pro-stats { color: #fff; background: var(--pro-primary-dark); }
.pro-stats .pro-eyebrow { color: #a8e5c4; }
.pro-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.18); border-left: 1px solid rgba(255,255,255,.18); }
.pro-stat-grid > div { display: grid; min-height: 180px; align-content: center; gap: 9px; padding: 28px; border-right: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.pro-stat-grid strong { font-size: clamp(42px, 5vw, 68px); line-height: 1; letter-spacing: -.06em; }
.pro-stat-grid span { color: rgba(255,255,255,.68); }
.pro-faq-list { border-top: 1px solid var(--pro-line); }
.pro-faq-list details { border-bottom: 1px solid var(--pro-line); }
.pro-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 0; cursor: pointer; font-size: 18px; font-weight: 750; list-style: none; }
.pro-faq-list summary::-webkit-details-marker { display: none; }
.pro-faq-list summary span { color: var(--pro-primary); font-size: 24px; transition: transform .2s ease; }
.pro-faq-list details[open] summary span { transform: rotate(45deg); }
.pro-faq-list details > div { padding: 0 45px 25px 0; color: var(--pro-muted); line-height: 1.7; }
.pro-profile-grid { display: grid; grid-template-columns: .82fr 1.18fr; align-items: start; gap: clamp(42px, 8vw, 115px); }
.pro-profile-content > h2 { margin-top: 0; }
.pro-profile figure { display: grid; min-height: 560px; overflow: hidden; place-items: center; margin: 0; border-radius: var(--pro-radius); color: var(--pro-muted); background: color-mix(in srgb, var(--pro-primary), var(--pro-surface) 84%); }
.pro-profile figure img { width: 100%; height: 100%; min-height: 560px; object-fit: cover; }
.pro-profile.profile-image-size-small .pro-profile-grid { grid-template-columns: minmax(240px,.58fr) minmax(0,1.42fr); gap: clamp(38px,6vw,85px); }
.pro-profile.profile-image-size-small figure,
.pro-profile.profile-image-size-small figure img { min-height: 430px; max-height: 500px; }
.pro-profile.profile-image-size-large .pro-profile-grid { grid-template-columns: 1fr 1fr; }
.pro-profile.profile-image-size-large figure,
.pro-profile.profile-image-size-large figure img { min-height: 680px; }
.pro-profile.profile-image-bg-transparent figure { background: transparent; }
.pro-profile.profile-image-bg-soft figure { background: color-mix(in srgb, var(--pro-text) 6%, var(--pro-background)); }
.pro-profile.profile-image-fit-contain figure img { object-fit: contain; }
.pro-profile figure img { filter: drop-shadow(0 13px 11px rgba(20,31,26,.065)); -webkit-mask-image: linear-gradient(to bottom,#000 0%,#000 76%,rgba(0,0,0,.96) 84%,rgba(0,0,0,.72) 93%,transparent 100%); mask-image: linear-gradient(to bottom,#000 0%,#000 76%,rgba(0,0,0,.96) 84%,rgba(0,0,0,.72) 93%,transparent 100%); }
.pro-profile.profile-bio-size-small .pro-richtext { font-size: clamp(14px,1.25vw,16px); }
.pro-profile.profile-bio-size-normal .pro-richtext { font-size: clamp(16px,1.55vw,19px); }
.pro-profile.profile-bio-size-large .pro-richtext { font-size: clamp(18px,1.9vw,22px); }
.pro-profile.profile-bio-line-compact .pro-richtext { line-height: 1.45; }
.pro-profile.profile-bio-line-normal .pro-richtext { line-height: 1.7; }
.pro-profile.profile-bio-line-relaxed .pro-richtext { line-height: 1.95; }
.pro-profile.profile-bio-color-text .pro-richtext { color: var(--pro-text); }
.pro-profile.profile-bio-color-primary .pro-richtext { color: var(--pro-primary); }
.pro-profile-content { min-width: 0; }
.pro-profile-registration { display: inline-flex; max-width: 100%; flex-direction: column; gap: 3px; margin: 0 0 24px; padding: 11px 15px; border-left: 4px solid var(--pro-primary); border-radius: 0 10px 10px 0; background: color-mix(in srgb,var(--pro-primary) 9%,transparent); }
.pro-profile-registration span { color: var(--pro-primary); font-size: 10px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.pro-profile-registration strong { font-size: 15px; line-height: 1.4; }
.pro-profile-cv { margin-top: 32px; }
.pro-profile-cv > h3, .pro-profile-specializations > h3 { margin: 0 0 13px; color: var(--pro-text); font-size: 12px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.pro-profile-cv > div { border-top: 1px solid var(--pro-line); }
.pro-profile-cv article { display: grid; grid-template-columns: minmax(75px,110px) 1fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--pro-line); }
.pro-profile-cv article span { color: var(--pro-primary); font-size: 13px; font-weight: 800; }
.pro-profile-cv article p { margin: 0; color: var(--pro-text); font-size: 15px; line-height: 1.5; }
.pro-profile-cv article.without-period p { grid-column: 1 / -1; }
.pro-profile-specializations { margin-top: 30px; }
.pro-profile-specializations > div { border-top: 1px solid var(--pro-line); }
.pro-profile-specializations article { display: grid; grid-template-columns: 9px minmax(0,1fr); align-items: start; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--pro-line); }
.pro-profile-specializations article > span { width: 7px; height: 7px; margin-top: .48em; border-radius: 50%; background: var(--pro-primary); }
.pro-profile-specializations article p { margin: 0; color: var(--pro-text); font-size: 15px; font-weight: 650; line-height: 1.45; }
.pro-profile h3 { margin: -8px 0 28px; color: var(--pro-primary); font-size: 18px; }
.pro-pricing { background: var(--pro-surface); }
.pro-pricing .pro-section-heading { max-width: 1080px; }
.pro-pricing .pro-section-heading h2 { max-width: 980px; text-wrap: balance; }
.pro-pricing .pro-section-heading > p:last-child { max-width: 900px; }
.pro-pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.pro-pricing-grid.columns-1 { grid-template-columns: minmax(0, 680px); }
.pro-pricing-grid.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pro-pricing-grid article { position: relative; display: flex; min-height: 410px; flex-direction: column; padding: 32px; border: 1px solid var(--pro-line); border-radius: var(--pro-radius); background: var(--pro-background); }
.pro-pricing-grid article.featured { border-color: var(--pro-primary); box-shadow: 0 18px 45px color-mix(in srgb, var(--pro-primary), transparent 86%); }
.pro-pricing-badge { align-self: flex-start; margin: -10px 0 24px; padding: 6px 9px; border-radius: 6px; color: var(--pro-primary-dark); background: color-mix(in srgb,var(--pro-primary),var(--pro-background) 86%); font-family: Inter,ui-sans-serif,system-ui,sans-serif; font-size: 10px; font-weight: 750; line-height: 1; letter-spacing: .1em; text-transform: uppercase; }
.pricing-badge-style-outline .pro-pricing-badge { border: 1px solid color-mix(in srgb,var(--pro-primary),transparent 35%); color: var(--pro-primary-dark); background: transparent; }
.pricing-badge-style-solid .pro-pricing-badge { color: var(--pro-on-primary); background: var(--pro-primary); }
.pricing-badges-hide .pro-pricing-grid article { padding-top: 36px; }
.pro-pricing-grid h3 { margin: 0 0 12px; font-size: 20px; }
.pro-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; margin-bottom: 20px; }
.pro-price strong { color: var(--pro-primary); font-size: 35px; letter-spacing: -.045em; }
.pro-price span { color: var(--pro-muted); font-size: 14px; font-weight: 700; }
.pro-pricing-description { min-height: 48px; margin: 0 0 24px; color: var(--pro-muted); line-height: 1.55; }
.pro-pricing-grid ul { display: grid; flex: 1; align-content: start; gap: 11px; margin: 0 0 28px; padding: 0; color: var(--pro-muted); list-style: none; }
.pro-pricing-grid li::before { content: "✓"; margin-right: 9px; color: var(--pro-primary); font-weight: 900; }
.pro-pricing-grid .pro-button { align-self: flex-start; }
.pro-pricing-note { width: 100%; max-width: none; margin: 24px 0 0; color: var(--pro-muted); font-size: 14px; line-height: 1.65; }

.pro-price-list-groups { display: grid; gap: 18px; }
.pro-price-list-groups article { padding: clamp(22px, 3vw, 34px); border: 1px solid var(--pro-line); border-radius: var(--pro-radius); background: var(--pro-surface); }
.pro-price-list-groups h3 { margin: 0 0 17px; color: var(--pro-primary); font-size: clamp(18px, 2vw, 24px); text-transform: uppercase; letter-spacing: .04em; }
.pro-price-list-groups article > div { display: grid; }
.pro-price-list-groups p { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: baseline; margin: 0; padding: 13px 0; border-top: 1px solid var(--pro-line); }
.pro-price-list-groups p span { color: var(--pro-text); }
.pro-price-list-groups p strong { color: var(--pro-text); white-space: nowrap; }
.price-list-cards .pro-price-list-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.pro-price-list-note { max-width: 900px; margin: 24px 0 0; color: var(--pro-muted); font-size: 14px; line-height: 1.65; }

.pro-manifesto .pro-shell { padding-block: clamp(20px,5vw,70px); }
.pro-manifesto-statement { max-width: 1180px; margin: 0; font-size: clamp(47px,8vw,120px); font-weight: 800; line-height: .94; letter-spacing: -.07em; text-wrap: balance; }
.pro-manifesto-text { max-width: 680px; margin-top: 35px; color: var(--pro-muted); font-size: 19px; line-height: 1.7; }
.pro-manifesto.align-center { text-align: center; }
.pro-manifesto.align-center .pro-manifesto-statement, .pro-manifesto.align-center .pro-manifesto-text { margin-inline: auto; }
.pro-manifesto.style-accent { color: var(--pro-on-primary); background: var(--pro-primary); }
.pro-manifesto.style-accent .pro-eyebrow, .pro-manifesto.style-accent .pro-manifesto-text { color: color-mix(in srgb,var(--pro-on-primary),transparent 25%); }
.pro-manifesto.style-outline .pro-manifesto-statement { color: transparent; -webkit-text-stroke: 2px var(--pro-text); }
.pro-manifesto.style-boxed .pro-shell { padding: clamp(35px,7vw,90px); border: 1px solid var(--pro-line); background: var(--pro-surface); }

.pro-process-list { position: relative; display: grid; gap: 0; }
.pro-process-list article { display: grid; grid-template-columns: 110px 1fr; gap: 28px; padding: 35px 0; border-top: 1px solid var(--pro-line); }
.pro-process-list article > span { color: var(--pro-primary); font-size: 13px; font-weight: 900; letter-spacing: .14em; }
.pro-process-list h3 { margin: 0 0 10px; font-size: clamp(24px,3vw,38px); }
.pro-process-list p { max-width: 720px; margin: 0; color: var(--pro-muted); font-size: 17px; line-height: 1.65; }
.process-steps .pro-process-list { grid-template-columns: repeat(3,1fr); gap: 14px; }
.process-steps .pro-process-list article { display: block; min-height: 270px; padding: 28px; border: 1px solid var(--pro-line); background: var(--pro-surface); }
.process-steps .pro-process-list h3 { margin-top: 60px; }
.process-alternating .pro-process-list article { width: 70%; }
.process-alternating .pro-process-list article:nth-child(even) { margin-left: auto; }

.pro-timeline-list { position: relative; margin-top: 18px; }
.pro-timeline-list::before { content: ""; position: absolute; top: 9px; bottom: 9px; left: 148px; width: 2px; background: color-mix(in srgb, var(--pro-primary) 38%, var(--pro-line)); }
.pro-timeline-list article { position: relative; display: grid; grid-template-columns: 118px 20px minmax(0,1fr); gap: 20px; align-items: start; padding: 0 0 34px; }
.pro-timeline-list article:last-child { padding-bottom: 0; }
.pro-timeline-period { padding-top: 17px; color: var(--pro-primary); font-size: 13px; font-weight: 900; letter-spacing: .08em; text-align: right; text-transform: uppercase; }
.pro-timeline-marker { z-index: 1; width: 14px; height: 14px; margin: 18px auto 0; border: 3px solid var(--pro-background); border-radius: 50%; background: var(--pro-primary); box-shadow: 0 0 0 2px var(--pro-primary); }
.pro-timeline-card { padding: 22px 25px; border: 1px solid var(--pro-line); border-radius: var(--pro-radius); background: var(--pro-surface); }
.pro-timeline-card h3 { margin: 0 0 8px; font-size: clamp(21px,2.5vw,30px); }
.pro-timeline-card p { max-width: 800px; margin: 0; color: var(--pro-muted); line-height: 1.65; }
.pro-timeline-card a { display: inline-flex; gap: 8px; margin-top: 15px; color: var(--pro-primary); font-weight: 800; text-decoration: none; }
.timeline-compact .pro-timeline-list::before, .timeline-compact .pro-timeline-marker { display: none; }
.timeline-compact .pro-timeline-list article { grid-template-columns: 130px minmax(0,1fr); gap: 24px; padding: 0; border-top: 1px solid var(--pro-line); }
.timeline-compact .pro-timeline-period { padding: 24px 0; text-align: left; }
.timeline-compact .pro-timeline-card { padding: 20px 0 24px; border: 0; background: transparent; }
.timeline-alternating .pro-timeline-list::before { left: 50%; }
.timeline-alternating .pro-timeline-list article { grid-template-columns: minmax(0,1fr) 28px minmax(0,1fr); gap: 26px; }
.timeline-alternating .pro-timeline-period { grid-column: 1; text-align: right; }
.timeline-alternating .pro-timeline-marker { grid-column: 2; }
.timeline-alternating .pro-timeline-card { grid-column: 3; }
.timeline-alternating .pro-timeline-list article:nth-child(even) .pro-timeline-period { grid-column: 3; grid-row: 1; text-align: left; }
.timeline-alternating .pro-timeline-list article:nth-child(even) .pro-timeline-marker { grid-column: 2; grid-row: 1; }
.timeline-alternating .pro-timeline-list article:nth-child(even) .pro-timeline-card { grid-column: 1; grid-row: 1; text-align: right; }

.pro-feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.pro-features.columns-2 .pro-feature-grid { grid-template-columns: repeat(2,1fr); }
.pro-feature-grid article { min-height: 260px; padding: 30px; border: 1px solid var(--pro-line); border-radius: var(--pro-radius); background: var(--pro-surface); }
.pro-feature-grid article > span { color: var(--pro-primary); font-size: 11px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.pro-feature-grid h3 { margin: 55px 0 14px; font-size: clamp(23px,3vw,36px); line-height: 1.05; }
.pro-feature-grid p { margin: 0; color: var(--pro-muted); line-height: 1.65; }
.features-mosaic .pro-feature-grid .item-1, .features-mosaic .pro-feature-grid .item-5 { grid-column: span 2; }
.features-mosaic .pro-feature-grid .item-1 h3, .features-mosaic .pro-feature-grid .item-5 h3 { max-width: 720px; font-size: clamp(31px,4vw,52px); }
.features-lines .pro-feature-grid { gap: 0; border-top: 1px solid var(--pro-line); }
.features-lines .pro-feature-grid article { min-height: 210px; border: 0; border-bottom: 1px solid var(--pro-line); border-radius: 0; background: transparent; }

.pro-logo-grid { display: grid; grid-template-columns: repeat(5,1fr); align-items: stretch; gap: 12px; }
.pro-logos.columns-3 .pro-logo-grid { grid-template-columns: repeat(3,1fr); }
.pro-logos.columns-4 .pro-logo-grid { grid-template-columns: repeat(4,1fr); }
.pro-logos.columns-6 .pro-logo-grid { grid-template-columns: repeat(6,1fr); }
.pro-logo-grid figure { display: grid; min-height: 145px; place-items: center; gap: 12px; margin: 0; padding: 20px; border: 1px solid transparent; }
.pro-logo-grid img { width: 100%; height: 65px; object-fit: contain; }
.pro-logo-grid figcaption { color: var(--pro-muted); font-size: 12px; text-align: center; }
.logos-mono .pro-logo-grid img { filter: grayscale(1); opacity: .62; }
.logos-mono .pro-logo-grid figure:hover img { filter: none; opacity: 1; }
.logos-cards .pro-logo-grid figure { border-color: var(--pro-line); border-radius: var(--pro-radius); background: var(--pro-surface); }

/* Editoriale: ritmo da rivista, geometrie nette e titoli classici. */
.theme-editorial { --pro-radius: 3px; }
.theme-editorial .pro-header { background: var(--pro-header-bg); backdrop-filter: none; }
.theme-editorial .pro-header-inner { min-height: 104px; }
.theme-editorial .pro-header nav a { border-radius: 0; font-size: 11px; letter-spacing: .13em; text-transform: uppercase; }
.theme-editorial .pro-header nav a:hover,
.theme-editorial .pro-header nav a.active { background: transparent; box-shadow: inset 0 -1px var(--pro-primary); }
.theme-editorial .pro-hero { padding: 120px 0 105px; }
.theme-editorial .pro-hero-grid { grid-template-columns: .92fr 1.08fr; }
.theme-editorial .pro-hero h1,
.theme-editorial .pro-section h2,
.theme-editorial .pro-empty h1,
.theme-editorial .pro-pricing-grid article > strong,
.theme-editorial .pro-single-image figcaption { font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.04em; }
.theme-editorial .pro-hero h1 { line-height: 1.03; }
.theme-editorial .pro-eyebrow { letter-spacing: .24em; }
.theme-editorial .pro-hero-image,
.theme-editorial .pro-split-image { border-radius: 0; box-shadow: none; }
.theme-editorial .pro-button { border-radius: var(--pro-button-radius,14px); box-shadow: none; font-family: Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.theme-editorial .pro-service-grid { gap: 1px; background: rgba(255,255,255,.16); }
.theme-editorial .pro-service-grid article { border: 0; border-radius: 0; }
.theme-editorial .pro-gallery-grid { gap: 3px; }
.theme-editorial .pro-footer { background: var(--pro-footer-bg); }

/* Studio: composizione grafica, titoli forti e contrasti decisi. */
.theme-studio { --pro-radius: 16px; }
.theme-studio .pro-header { border-bottom: 3px solid var(--pro-primary); background: var(--pro-header-bg); backdrop-filter: none; }
.theme-studio .pro-header nav a { border-radius: 5px; text-transform: uppercase; letter-spacing: .06em; }
.theme-studio .pro-hero { padding: 76px 0; }
.theme-studio .pro-hero-grid { gap: 22px; }
.theme-studio .pro-hero-copy { position: relative; z-index: 1; padding: clamp(30px,5vw,70px); border: 2px solid var(--pro-text); background: var(--pro-surface); box-shadow: 14px 14px 0 var(--pro-primary); }
.theme-studio .pro-hero h1,
.theme-studio .pro-section h2,
.theme-studio .pro-empty h1 { font-weight: 900; line-height: .92; letter-spacing: -.075em; text-transform: uppercase; }
.theme-studio .pro-hero-image { border-radius: 4px; box-shadow: none; }
.theme-studio .pro-visual { border-radius: 4px; box-shadow: none; }
.theme-studio .pro-button { border-radius: var(--pro-button-radius,14px); box-shadow: 6px 6px 0 var(--pro-text); letter-spacing: .06em; text-transform: uppercase; }
.theme-studio .pro-button:hover { transform: translate(-2px,-2px); box-shadow: 8px 8px 0 var(--pro-text); }
.theme-studio .pro-services { color: #fff; background: #111713; }
.theme-studio .pro-service-grid { gap: 0; border-top: 1px solid rgba(255,255,255,.25); border-left: 1px solid rgba(255,255,255,.25); }
.theme-studio .pro-service-grid article { border: 0; border-right: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); border-radius: 0; background: transparent; }
.theme-studio .pro-gallery-grid { gap: 6px; }
.theme-studio .pro-pricing-grid article { border-width: 2px; box-shadow: 8px 8px 0 color-mix(in srgb, var(--pro-primary), transparent 25%); }

/* Layout indipendenti dal tema: cambiano composizione, proporzioni e ritmo. */
.layout-editorial .pro-header-inner { min-height: 110px; }
.layout-editorial .pro-hero { padding-block: 135px 115px; }
.layout-editorial .pro-hero-grid { grid-template-columns: .8fr 1.2fr; gap: 9vw; }
.layout-editorial .pro-hero h1 { font-family: Georgia, serif; font-size: clamp(54px, 7vw, 104px); font-weight: 400; }
.layout-editorial .pro-section-heading { max-width: 920px; }
.layout-editorial .pro-service-grid { grid-template-columns: 1fr; }
.layout-editorial .pro-service-grid article { grid-template-columns: 70px 1fr auto; min-height: 110px; align-items: center; }

.layout-portfolio .pro-header { position: absolute; width: 100%; background: linear-gradient(#111b, transparent); color: #fff; }
.layout-portfolio .pro-header nav a, .layout-portfolio .pro-brand { color: #fff; }
.layout-portfolio .pro-hero { position: relative; padding: 0; }
.layout-portfolio .pro-hero-grid { width: 100%; max-width: none; grid-template-columns: 1fr; }
.layout-portfolio .pro-hero-image { order: -1; min-height: 82vh; border-radius: 0; }
.layout-portfolio .pro-hero-image img { min-height: 82vh; }
.layout-portfolio .pro-hero-copy { position: absolute; z-index: 2; left: max(5vw,24px); bottom: 8vh; max-width: 720px; padding: 34px; color: #fff; background: #090b0dba; backdrop-filter: blur(12px); }
.layout-portfolio .pro-gallery-grid { gap: 3px; }

.layout-atelier .pro-hero-grid { grid-template-columns: .68fr 1.32fr; align-items: end; gap: 8vw; }
.layout-atelier .pro-hero-copy { padding-bottom: 55px; }
.layout-atelier .pro-hero h1 { font-size: clamp(48px, 6.4vw, 92px); font-weight: 500; }
.layout-atelier .pro-hero-image, .layout-atelier .pro-service-grid article { border-radius: 0; box-shadow: none; }
.layout-atelier .pro-section:nth-child(even) .pro-shell { width: min(980px,calc(100% - 48px)); }

.layout-lifestyle { --pro-radius: 42px; }
.layout-lifestyle .pro-header-inner { min-height: 102px; }
.layout-lifestyle .pro-hero { padding-top: 80px; }
.layout-lifestyle .pro-hero-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
.layout-lifestyle .pro-hero-image { min-height: 620px; border-radius: 48% 48% 28px 28px; }
.layout-lifestyle .pro-service-grid article:nth-child(even) { transform: translateY(28px); }
.layout-lifestyle .pro-button { border-radius: var(--pro-button-radius,14px); }

.layout-performance { --pro-radius: 2px; }
.layout-performance .pro-header { border-bottom-color: color-mix(in srgb,var(--pro-primary),transparent 35%); }
.layout-performance .pro-hero { overflow: hidden; padding-block: 75px; background: linear-gradient(115deg,var(--pro-background) 0 58%,var(--pro-primary) 58% 61%,#080a0c 61%); }
.layout-performance .pro-hero h1 { font-size: clamp(58px,8vw,118px); font-style: italic; line-height: .88; text-transform: uppercase; }
.layout-performance .pro-hero-image { transform: skewX(-3deg); border: 2px solid var(--pro-primary); box-shadow: 22px 22px 0 #050607; }
.layout-performance .pro-stat-grid strong { font-size: clamp(58px,8vw,105px); }
.layout-performance .pro-service-grid article { border-left: 4px solid var(--pro-primary); }

.layout-industrial { --pro-radius: 0; }
.layout-industrial .pro-header { border-bottom: 4px solid var(--pro-primary); }
.layout-industrial .pro-hero-grid { grid-template-columns: 1.1fr .9fr; }
.layout-industrial .pro-hero h1 { text-transform: uppercase; letter-spacing: -.055em; }
.layout-industrial .pro-hero-image { border: 1px solid var(--pro-line); box-shadow: 18px 18px 0 color-mix(in srgb,var(--pro-primary),transparent 10%); }
.layout-industrial .pro-section-heading { display: grid; grid-template-columns: .35fr 1fr; column-gap: 40px; align-items: end; }
.layout-industrial .pro-section-heading .pro-eyebrow { grid-column: 1; }
.layout-industrial .pro-section-heading h2 { grid-column: 1 / -1; }
.layout-industrial .pro-service-grid article { border-top: 5px solid var(--pro-primary); }
.theme-studio .pro-cta { border: 2px solid var(--pro-text); border-radius: 5px; }
.theme-studio .pro-footer { border-top: 6px solid var(--pro-primary); }

@media (max-width: 820px) {
    .preview-bar { justify-content: flex-start; padding-right: 15px; }
    .preview-bar span { display: none; }
    .preview-bar a { position: static; margin-left: auto; }
    .pro-shell { width: min(100% - 30px, var(--pro-shell)); }
    .pro-section { padding-block: 28px; }
    .pro-block-spacing-compact > .pro-section { padding-block: 16px; }
    .pro-block-spacing-normal > .pro-section { padding-block: 28px; }
    .pro-block-spacing-wide > .pro-section { padding-block: 42px; }
    .pro-block-spacing-compact > .pro-hero { padding-block: 32px; }
    .pro-block-spacing-normal > .pro-hero { padding-block: 56px; }
    .pro-block-spacing-wide > .pro-hero { padding-block: 84px; }
    main > .pro-block:first-of-type.pro-block-spacing-compact > .pro-section { padding-top: 32px; }
    main > .pro-block:first-of-type.pro-block-spacing-normal > .pro-section { padding-top: 56px; }
    main > .pro-block:first-of-type.pro-block-spacing-wide > .pro-section { padding-top: 84px; }
    main > .pro-block:last-of-type.pro-block-spacing-compact > .pro-section { padding-bottom: 32px; }
    main > .pro-block:last-of-type.pro-block-spacing-normal > .pro-section { padding-bottom: 56px; }
    main > .pro-block:last-of-type.pro-block-spacing-wide > .pro-section { padding-bottom: 84px; }
    .pro-menu-button { display: inline-flex; }
    .menu-align-center .pro-header-inner { display: flex; }
    .pro-header nav { position: absolute; top: 86px; left: 15px; right: 15px; display: none; padding: 13px; border: 1px solid var(--pro-line); border-radius: 15px; background: var(--pro-surface); box-shadow: 0 18px 45px rgba(0,0,0,.13); }
    .pro-menu-entry { display: grid; grid-template-columns: minmax(0,1fr) 42px; }
    .pro-menu-entry > a { min-width: 0; }
    .pro-menu-entry > button { margin: 0; padding: 8px; font-size: 18px; }
    .pro-menu-entry.has-submenu:hover .pro-submenu, .pro-menu-entry.has-submenu:focus-within .pro-submenu { display: none; }
    .pro-menu-entry.has-submenu.open .pro-submenu { display: grid; }
    .pro-submenu { position: static; grid-column: 1 / -1; min-width: 0; margin: 2px 0 7px 14px; padding: 5px; border-radius: 10px; box-shadow: none; }
    .menu-separator-dot .pro-header nav, .menu-separator-line .pro-header nav, .menu-separator-slash .pro-header nav { gap: 6px; }
    .menu-separator-dot .pro-header nav a + a::before, .menu-separator-line .pro-header nav a + a::before, .menu-separator-slash .pro-header nav a + a::before,
    .menu-separator-dot .pro-header nav > .pro-menu-entry + .pro-menu-entry::before, .menu-separator-line .pro-header nav > .pro-menu-entry + .pro-menu-entry::before, .menu-separator-slash .pro-header nav > .pro-menu-entry + .pro-menu-entry::before { display: none; }
    .pro-menu-open .pro-header nav { display: grid; }
    .pro-news-grid, .pro-news-list.columns-2 .pro-news-grid { grid-template-columns: 1fr; }
    .pro-hero { padding-top: 60px; }
    .pro-hero.hero-height-screen .pro-hero-grid { min-height: auto; }
    .pro-hero.hero-cover { min-height: 680px; }
    .pro-hero.hero-cover.hero-height-short { min-height: 500px; }
    .pro-hero.hero-cover.hero-height-compact { min-height: 600px; }
    .pro-hero.hero-cover.hero-height-standard { min-height: 680px; }
    .pro-hero.hero-cover.hero-height-screen { min-height: max(680px,calc(100svh - 72px)); }
    .pro-hero.hero-cover .pro-hero-copy,
    .pro-hero.hero-cover.hero-edge-wide .pro-hero-copy,
    .pro-hero.hero-cover.hero-edge-edge .pro-hero-copy { left: 15px; width: calc(100% - 30px); }
    .pro-hero.hero-cover.hero-pos-center-center .pro-hero-copy,
    .pro-hero.hero-cover.hero-pos-center-bottom .pro-hero-copy { left: 50%; }
    .pro-hero.hero-cover.hero-pos-right-center .pro-hero-copy,
    .pro-hero.hero-cover.hero-pos-right-bottom .pro-hero-copy,
    .pro-hero.hero-cover.hero-edge-wide.hero-pos-right-center .pro-hero-copy,
    .pro-hero.hero-cover.hero-edge-wide.hero-pos-right-bottom .pro-hero-copy,
    .pro-hero.hero-cover.hero-edge-edge.hero-pos-right-center .pro-hero-copy,
    .pro-hero.hero-cover.hero-edge-edge.hero-pos-right-bottom .pro-hero-copy { right: 15px; left: auto; }
    .pro-slider.height-standard, .pro-slider.height-large, .pro-slider.height-screen { height: min(760px,calc(100vh - 42px)); min-height: 610px; }
    .pro-slide-content { padding: 75px 15px 120px; }
    .pro-slide-content h1 { font-size: clamp(43px,13vw,72px); }
    .pro-slider-controls { right: 15px; bottom: 24px; }
    .pro-hero-grid, .pro-split { grid-template-columns: 1fr; }
    .theme-editorial .pro-hero { padding-block: 70px; }
    .theme-studio .pro-hero-copy { box-shadow: 8px 8px 0 var(--pro-primary); }
    .layout-editorial .pro-header-inner { min-height: 86px; }
    .layout-editorial .pro-hero { padding-block: 72px 58px; }
    .layout-editorial .pro-hero-grid,
    .layout-atelier .pro-hero-grid,
    .layout-lifestyle .pro-hero-grid,
    .layout-industrial .pro-hero-grid { grid-template-columns: 1fr; gap: 34px; }
    .layout-editorial .pro-service-grid article { display: block; min-height: 0; }
    .layout-portfolio .pro-header { position: absolute; }
    .layout-portfolio .pro-hero-image,
    .layout-portfolio .pro-hero-image img { min-height: 78vh; }
    .layout-portfolio .pro-hero-copy { left: 15px; right: 15px; bottom: 26px; max-width: none; padding: 24px; }
    .layout-atelier .pro-hero-copy { padding-bottom: 0; }
    .layout-lifestyle .pro-header-inner { min-height: 86px; }
    .layout-lifestyle .pro-hero-image { min-height: 460px; border-radius: 42% 42% 24px 24px; }
    .layout-lifestyle .pro-service-grid article:nth-child(even) { transform: none; }
    .layout-performance .pro-hero { padding-block: 58px; background: var(--pro-background); }
    .layout-performance .pro-hero-image { transform: none; box-shadow: 10px 10px 0 #050607; }
    .layout-industrial .pro-hero-image { box-shadow: 8px 8px 0 color-mix(in srgb,var(--pro-primary),transparent 10%); }
    .layout-industrial .pro-section-heading { display: block; }
    .pro-visual, .pro-hero-image, .pro-hero-image img { min-height: 390px; }
    .pro-split.image-right .pro-split-image { order: 0; }
    .pro-therapy-grid { min-height: 0; grid-template-columns: 1fr; }
    .therapy-layout-dominant.therapy-image-left .pro-therapy-grid,
    .therapy-layout-blend.therapy-image-left .pro-therapy-grid,
    .therapy-layout-dominant.therapy-image-right .pro-therapy-grid,
    .therapy-layout-blend.therapy-image-right .pro-therapy-grid { grid-template-columns: 1fr; }
    .therapy-layout-blend.therapy-image-left .pro-therapy-image::before,
    .therapy-layout-blend.therapy-image-right .pro-therapy-image::before { top: auto; right: 0; bottom: 0; left: 0; width: auto; height: 110px; background: linear-gradient(to bottom,transparent,var(--therapy-panel)); }
    .therapy-image-right .pro-therapy-image { order: 0; }
    .pro-therapy-image { min-height: 430px; }
    .therapy-height-compact .pro-therapy-image { min-height: 300px; }
    .therapy-height-short .pro-therapy-image { min-height: 240px; }
    .therapy-height-tall .pro-therapy-image { min-height: 520px; }
    .pro-therapy-copy { min-height: 330px; padding: 42px 28px; }
    .therapy-height-compact .pro-therapy-copy { min-height: 0; padding: 32px 24px; }
    .therapy-layout-banner .pro-therapy-grid { min-height: 0; }
    .therapy-layout-banner .pro-therapy-image { height: 300px; min-height: 0; flex-basis: 300px; }
    .therapy-layout-banner.therapy-height-short .pro-therapy-image { height: 180px; min-height: 0; flex-basis: 180px; }
    .therapy-layout-banner.therapy-height-compact .pro-therapy-image { height: 240px; min-height: 0; flex-basis: 240px; }
    .therapy-layout-banner.therapy-height-tall .pro-therapy-image { height: 420px; min-height: 0; flex-basis: 420px; }
    .therapy-layout-banner .pro-therapy-copy { min-height: 0; justify-content: flex-start; padding: 28px 24px; }
    .therapy-layout-banner .pro-therapy-copy > * { width: 100%; max-width: none; }
    .therapy-layout-banner .pro-therapy-image figcaption { right: 22px; bottom: 16px; left: 22px; max-width: none; font-size: clamp(25px,8vw,38px); text-align: left; }
    .therapy-width-contained { padding: 24px 0; }
    .therapy-width-contained .pro-therapy-grid { width: min(var(--pro-shell),calc(100% - 32px)); }
    .pro-service-grid { grid-template-columns: 1fr; }
    .pro-services.services-columns-1 .pro-service-grid,
    .pro-services.services-columns-2 .pro-service-grid,
    .pro-services.services-columns-3 .pro-service-grid { grid-template-columns: 1fr; }
    .services-compact .pro-service-grid { grid-template-columns: repeat(2,1fr); }
    .services-list .pro-service-grid article { grid-template-columns: 45px 1fr auto; }
    .pro-gallery-grid, .columns-2 .pro-gallery-grid, .columns-4 .pro-gallery-grid { grid-template-columns: 1fr; }
    .layout-masonry .pro-gallery-grid, .layout-masonry.columns-2 .pro-gallery-grid, .layout-masonry.columns-4 .pro-gallery-grid { column-count: 1; }
    .pro-testimonial-grid, .pro-pricing-grid, .pro-pricing-grid.columns-1, .pro-pricing-grid.columns-2, .price-list-cards .pro-price-list-groups { grid-template-columns: 1fr; }
    .process-steps .pro-process-list, .pro-feature-grid, .pro-features.columns-2 .pro-feature-grid { grid-template-columns: 1fr; }
    .process-alternating .pro-process-list article { width: 100%; }
    .pro-process-list article { grid-template-columns: 55px 1fr; gap: 15px; }
    .pro-timeline-list::before, .timeline-alternating .pro-timeline-list::before { left: 7px; }
    .pro-timeline-list article, .timeline-alternating .pro-timeline-list article { grid-template-columns: 16px minmax(0,1fr); gap: 14px; padding-bottom: 24px; }
    .pro-timeline-period, .timeline-alternating .pro-timeline-period, .timeline-alternating .pro-timeline-list article:nth-child(even) .pro-timeline-period { grid-column: 2; grid-row: 1; padding: 0; text-align: left; white-space: nowrap; overflow-wrap: normal; word-break: normal; }
    .pro-timeline-marker, .timeline-alternating .pro-timeline-marker, .timeline-alternating .pro-timeline-list article:nth-child(even) .pro-timeline-marker { grid-column: 1; grid-row: 1; margin-top: 2px; }
    .pro-timeline-card, .timeline-alternating .pro-timeline-card, .timeline-alternating .pro-timeline-list article:nth-child(even) .pro-timeline-card { grid-column: 2; grid-row: 2; padding: 18px; text-align: left; }
    .timeline-compact .pro-timeline-list article { grid-template-columns: 1fr; gap: 0; }
    .timeline-compact .pro-timeline-period, .timeline-compact .pro-timeline-card { grid-column: 1; }
    .features-mosaic .pro-feature-grid .item-1, .features-mosaic .pro-feature-grid .item-5 { grid-column: auto; }
    .pro-logo-grid, .pro-logos.columns-3 .pro-logo-grid, .pro-logos.columns-4 .pro-logo-grid, .pro-logos.columns-6 .pro-logo-grid { grid-template-columns: repeat(2,1fr); }
    .pro-stat-grid { grid-template-columns: repeat(2, 1fr); }
    .pro-profile-grid { grid-template-columns: 1fr; }
    .pro-profile figure, .pro-profile figure img { min-height: 390px; }
    .pro-profile.profile-image-size-small .pro-profile-grid, .pro-profile.profile-image-size-large .pro-profile-grid { grid-template-columns: 1fr; }
    .pro-profile.profile-image-size-small figure, .pro-profile.profile-image-size-small figure img { min-height: 320px; max-height: 390px; }
    .pro-profile.profile-image-size-large figure, .pro-profile.profile-image-size-large figure img { min-height: 480px; }
    .pro-profile.profile-image-bg-transparent.profile-image-fit-contain figure { width: min(76vw,300px); height: clamp(250px,74vw,330px); min-height: 0; max-height: none; justify-self: center; border-radius: 0; }
    .pro-profile.profile-image-bg-transparent.profile-image-fit-contain figure img,
    .pro-profile.profile-image-bg-transparent.profile-image-fit-contain.profile-image-size-small figure img,
    .pro-profile.profile-image-bg-transparent.profile-image-fit-contain.profile-image-size-large figure img { width: 100%; height: 100%; min-height: 0; max-height: none; }
    .pro-profile-cv article { grid-template-columns: 75px 1fr; gap: 14px; }
    .pro-cta { align-items: flex-start; flex-direction: column; }
    .pro-footer > .pro-shell, .footer-layout-original > .pro-shell { grid-template-columns: 1fr; gap: 26px; }
    .footer-layout-balanced > .pro-shell { grid-template-rows: auto; row-gap: 26px; }
    .footer-layout-balanced .pro-footer-identity { display: grid; }
    .footer-layout-balanced .pro-footer-identity > :is(.pro-footer-logo,strong), .footer-layout-balanced .pro-footer-copy,
    .footer-layout-balanced .pro-footer-contact, .footer-layout-balanced .pro-footer-bottom { grid-column: 1; grid-row: auto; margin-top: 0; }
    .pro-contact-layout { grid-template-columns: 1fr; }
    .pro-contact-map, .contacts-map-tall .pro-contact-map { min-height: 420px; }
    .contacts-map-compact .pro-contact-map { min-height: 320px; }
    .contacts-layout-stacked .pro-contact-grid { grid-template-columns: 1fr; }
    .contacts-layout-stacked .pro-contact-grid > *:nth-child(n) { padding-inline: 4px; border-left: 0; }
    .hours-layout-cards .pro-hours-list { grid-template-columns: 1fr; }
    .hours-layout-cards .pro-hours-list article:nth-child(n) { border: 1px solid var(--pro-line); border-top: 0; }
    .hours-layout-cards .pro-hours-list article:first-child { border-top: 1px solid var(--pro-line); }
    .pro-hours-list article { grid-template-columns: 1fr; gap: 6px; padding: 17px 20px; }
    .pro-footer-contact, .footer-layout-original .pro-footer-contact { justify-items: start; justify-content: flex-start; padding-top: 0; text-align: left; }
    .pro-footer-bottom { grid-template-columns: 1fr; align-items: flex-start; }
    .footer-copy-left .pro-footer-copyright, .footer-copy-center .pro-footer-copyright, .footer-copy-right .pro-footer-copyright,
    .pro-footer-bottom .pro-social-links, .footer-copy-right.footer-has-social .pro-footer-bottom .pro-social-links { grid-column: 1; justify-self: start; text-align: left; }
    .footer-layout-original .pro-footer-bottom { justify-items: start; justify-content: start; text-align: left; }
    .pro-social-links, .footer-layout-original .pro-social-links { justify-content: flex-start; }
    .pro-social-showcase-grid { gap: 28px 12px; }
    .pro-social-showcase-grid a { width: 100px; }
    .pro-legal-links { justify-content: flex-start; }
    .pro-cookie-banner { left: 12px; right: 12px; bottom: 12px; align-items: stretch; flex-direction: column; gap: 16px; }
    .pro-back-to-top { right: 16px; bottom: 16px; width: 46px; height: 46px; }
    .pro-cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

/* Varianti avanzate della griglia Servizi. Collocate dopo temi e layout per mantenere le scelte dell'editor. */
.pro-services.services-eyebrow-auto .pro-eyebrow { color: rgba(255,255,255,.7); }
.pro-services.services-eyebrow-text .pro-eyebrow { color: #fff; }
.pro-services.services-eyebrow-primary .pro-eyebrow { color: var(--pro-primary); }
.pro-services .pro-service-grid article > :not(.pro-service-bg,.pro-service-shade,.pro-service-card-link) { position: relative; z-index: 2; }
.pro-services .pro-service-bg { display: none; position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.pro-services .pro-service-shade { display: none; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg,rgba(4,10,8,.02) 30%,rgba(4,10,8,.66) 100%); }
.pro-services.services-overlay-light .pro-service-shade { background: linear-gradient(180deg,transparent 38%,rgba(4,10,8,.48) 100%); }
.pro-services.services-overlay-strong .pro-service-shade { background: linear-gradient(180deg,rgba(4,10,8,.08) 18%,rgba(4,10,8,.8) 100%); }
.pro-services .pro-service-card-link { position: absolute; z-index: 3; inset: 0; }
.pro-news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(18px,2.4vw,32px); }
.pro-news-list.columns-2 .pro-news-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.pro-news-grid article { overflow: hidden; border: 1px solid var(--pro-line); border-radius: 18px; background: var(--pro-surface); box-shadow: 0 14px 38px rgba(18,33,26,.07); }
.pro-news-image { display: block; aspect-ratio: 3/2; overflow: hidden; background: color-mix(in srgb,var(--pro-primary),transparent 90%); }
.pro-news-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; image-rendering: auto; }
.pro-news-grid article > div { padding: 22px; }
.pro-news-grid time { color: var(--pro-primary); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.pro-news-grid h3 { margin: 9px 0 11px; font-size: clamp(20px,2vw,28px); line-height: 1.08; }
.pro-news-grid h3 a { color: var(--pro-text); text-decoration: none; }
.pro-news-grid p { margin: 0 0 18px; color: var(--pro-muted); line-height: 1.6; }
.pro-news-more { color: var(--pro-primary); font-size: 13px; font-weight: 800; text-decoration: none; }
.pro-news-hero { position: relative; overflow: hidden; padding: clamp(75px,10vw,145px) 0 clamp(60px,8vw,115px); background: color-mix(in srgb,var(--pro-primary),var(--pro-background) 88%); }
.pro-news-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pro-news-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(4,12,9,.78),rgba(4,12,9,.25)); opacity: 0; }
.pro-news-hero.has-image .pro-news-hero-shade { opacity: 1; }
.pro-news-hero .pro-shell { position: relative; z-index: 1; }
.pro-news-hero.has-image .pro-shell { color: #fff; }
.pro-news-hero h1 { max-width: 900px; margin: 0; font-size: clamp(42px,6vw,78px); line-height: 1; letter-spacing: -.045em; text-wrap: balance; }
.pro-news-hero .pro-shell > p:last-child { max-width: 720px; margin: 24px 0 0; font-size: clamp(18px,2vw,24px); line-height: 1.5; }
.pro-news-body { width: min(820px,calc(100% - 48px)); padding-block: clamp(48px,7vw,90px); color: var(--pro-text); font-size: clamp(17px,1.4vw,20px); font-weight: 400; line-height: 1.75; }
.pro-news-body p, .pro-news-body li, .pro-news-body blockquote { font-weight: 400; }
.pro-news-body > :first-child { margin-top: 0; }
.pro-news-body > :last-child { margin-bottom: 0; }
.pro-news-body p { margin: 0 0 1.25em; }
.pro-news-body h2 { margin: 1.8em 0 .6em; font-size: clamp(28px,3.2vw,42px); line-height: 1.12; letter-spacing: -.025em; }
.pro-news-body h3 { margin: 1.6em 0 .55em; font-size: clamp(22px,2.3vw,30px); line-height: 1.2; }
.pro-news-body ul, .pro-news-body ol { margin: 0 0 1.4em; padding-left: 1.4em; }
.pro-news-body li + li { margin-top: .4em; }
.pro-news-body a { color: var(--pro-primary); text-decoration-thickness: .08em; text-underline-offset: .14em; }
.pro-news-body blockquote { margin: 1.8em 0; padding: .2em 0 .2em 1.2em; border-left: 4px solid var(--pro-primary); color: var(--pro-muted); font-size: 1.08em; }
@media (max-width: 760px) { .pro-news-body { width: min(100% - 32px,820px); padding-block: 38px 52px; } }
.pro-services.services-numbers-hide .pro-service-grid article > span { display: none; }
.pro-services.services-arrows-hide .pro-service-grid article > i { display: none; }

/* Controlli tipografici condivisi per il testo corrente di tutti i blocchi. */
.pro-block.pro-copy-size-small { --pro-copy-font-size: 14px; }
.pro-block.pro-copy-size-normal { --pro-copy-font-size: 17px; }
.pro-block.pro-copy-size-large { --pro-copy-font-size: clamp(19px,1.7vw,22px); }
.pro-block.pro-copy-size-xlarge { --pro-copy-font-size: clamp(22px,2.1vw,28px); }
.pro-block.pro-copy-line-compact { --pro-copy-line-height: 1.35; }
.pro-block.pro-copy-line-normal { --pro-copy-line-height: 1.65; }
.pro-block.pro-copy-line-relaxed { --pro-copy-line-height: 1.9; }
.pro-block.pro-copy-color-text { --pro-block-copy-color: var(--pro-text); }
.pro-block.pro-copy-color-primary { --pro-block-copy-color: var(--pro-primary); }
.pro-block.pro-copy-color-white { --pro-block-copy-color: #fff; }
.pro-block :where(
    .pro-section-heading > p:not(.pro-eyebrow),
    .pro-lead,
    .pro-richtext,
    .pro-slide-content > p:not(.pro-eyebrow),
    .pro-cta > div > p:not(.pro-eyebrow),
    .pro-testimonial-grid blockquote > p,
    .pro-faq-list details > div,
    .pro-profile-cv article p,
    .pro-profile-specializations article p,
    .pro-pricing-description,
    .pro-pricing-grid li,
    .pro-pricing-note,
    .pro-price-list-note,
    .pro-manifesto-text,
    .pro-process-list article p,
    .pro-timeline-card p,
    .pro-feature-grid article p,
    .pro-stat-grid span,
    .pro-gallery-grid figcaption
) { font-size: var(--pro-copy-font-size) !important; line-height: var(--pro-copy-line-height) !important; }
.pro-block:not(.pro-copy-color-auto) :where(
    .pro-section-heading > p:not(.pro-eyebrow),
    .pro-lead,
    .pro-richtext,
    .pro-slide-content > p:not(.pro-eyebrow),
    .pro-cta > div > p:not(.pro-eyebrow),
    .pro-testimonial-grid blockquote > p,
    .pro-faq-list details > div,
    .pro-profile-cv article p,
    .pro-profile-specializations article p,
    .pro-pricing-description,
    .pro-pricing-grid li,
    .pro-pricing-note,
    .pro-price-list-note,
    .pro-manifesto-text,
    .pro-process-list article p,
    .pro-timeline-card p,
    .pro-feature-grid article p,
    .pro-stat-grid span,
    .pro-gallery-grid figcaption
) { color: var(--pro-block-copy-color) !important; }

/* Hero interna: fotografia panoramica vincolata e contenuto nella fascia successiva. */
.pro-body .pro-hero.hero-banner { padding: 0; overflow: visible; }
.pro-body .pro-hero.hero-banner .pro-hero-grid { display: flex; width: 100%; max-width: none; flex-direction: column; gap: 0; }
.pro-body .pro-hero.hero-banner .pro-hero-image { position: relative; order: 0; width: 100%; height: 420px; min-height: 0; margin: 0; border-radius: 0; box-shadow: none; }
.pro-body .pro-hero.hero-banner.hero-height-short .pro-hero-image { height: 210px; }
.pro-body .pro-hero.hero-banner.hero-height-compact .pro-hero-image { height: 300px; }
.pro-body .pro-hero.hero-banner.hero-height-screen .pro-hero-image { height: min(68vh,720px); }
.pro-body .pro-hero.hero-banner .pro-hero-image img { width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.pro-body .pro-hero.hero-banner .pro-hero-copy { order: 1; width: min(var(--pro-shell),calc(100% - 48px)); max-width: none; margin-inline: auto; padding: clamp(30px,5vw,64px) 0; border: 0; background: transparent; box-shadow: none; text-align: left; }
.pro-body .pro-hero.hero-banner .pro-hero-copy h1 { font-size: clamp(38px,5vw,68px); }
.pro-body .pro-hero.hero-banner .pro-lead { margin-bottom: 0; }
@media (max-width: 760px) {
    .pro-body .pro-hero.hero-banner .pro-hero-image { height: 300px; }
    .pro-body .pro-hero.hero-banner.hero-height-short .pro-hero-image { height: 180px; }
    .pro-body .pro-hero.hero-banner.hero-height-compact .pro-hero-image { height: 240px; }
    .pro-body .pro-hero.hero-banner .pro-hero-copy { width: min(var(--pro-shell),calc(100% - 32px)); padding-block: 28px 38px; }
}
.pro-services.services-numbers-hide .pro-service-grid h3 { margin-top: 12px; }
.pro-services.services-look-refined .pro-service-grid { gap: 18px; background: transparent; }
.pro-services.services-look-refined .pro-service-grid article { border: 1px solid rgba(255,255,255,.18); border-radius: 24px; background: linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.045)); box-shadow: 0 18px 45px rgba(4,10,8,.11); transition: transform .25s ease,border-color .25s ease,background .25s ease; }
.pro-services.services-look-refined .pro-service-grid article:hover { transform: translateY(-5px); border-color: rgba(255,255,255,.34); background: linear-gradient(145deg,rgba(255,255,255,.15),rgba(255,255,255,.065)); }
.pro-services.services-look-photo .pro-service-grid { gap: 18px; background: transparent; }
.pro-services.services-look-photo .pro-service-grid article { display: flex; min-height: 250px; flex-direction: column; justify-content: flex-end; overflow: hidden; padding: 28px; border: 1px solid rgba(255,255,255,.14); border-radius: 24px; color: #fff; background: rgba(255,255,255,.07); box-shadow: 0 20px 50px rgba(4,10,8,.2); }
.pro-services.services-look-photo .pro-service-grid article.has-image .pro-service-bg,
.pro-services.services-look-photo .pro-service-grid article.has-image .pro-service-shade { display: block; }
.pro-services.services-look-photo .pro-service-grid article:hover .pro-service-bg { transform: scale(1.045); }
.pro-services.services-look-photo .pro-service-grid h3 { max-width: 90%; margin: 18px 0 0; color: #fff; font-size: clamp(21px,2vw,29px); text-shadow: 0 2px 3px rgba(0,0,0,.82),0 7px 18px rgba(0,0,0,.3); }
.pro-services.services-look-photo .pro-service-grid article > span,
.pro-services.services-look-photo .pro-service-grid article > i { color: rgba(255,255,255,.82); }
.pro-services.services-height-compact .pro-service-grid article { min-height: 135px; }
.pro-services.services-height-tall .pro-service-grid article { min-height: 280px; }
.pro-services.services-look-photo.services-height-compact .pro-service-grid article { min-height: 190px; }
.pro-services.services-look-photo.services-height-tall .pro-service-grid article { min-height: 340px; }

/* Ombreggiatura configurabile per Servizi e Piani e prezzi. */
.pro-services[data-shadow="none"] .pro-service-grid article,
.pro-services[data-shadow="none"] .pro-button,
.pro-pricing[data-shadow="none"] .pro-pricing-grid article,
.pro-pricing[data-shadow="none"] .pro-button,
.pro-pricing[data-shadow="none"] .pro-button:hover { box-shadow: none !important; }
.pro-services[data-shadow="custom"] .pro-service-grid article,
.pro-pricing[data-shadow="custom"] .pro-pricing-grid article {
    box-shadow: 0 16px var(--pro-card-shadow-blur) color-mix(in srgb,var(--pro-card-shadow-color) var(--pro-card-shadow-opacity),transparent) !important;
}
.pro-services[data-shadow="custom"] .pro-button,
.pro-pricing[data-shadow="custom"] .pro-button,
.pro-pricing[data-shadow="custom"] .pro-button:hover {
    box-shadow: 0 10px var(--pro-card-shadow-blur) color-mix(in srgb,var(--pro-card-shadow-color) var(--pro-card-shadow-opacity),transparent) !important;
}

@media (max-width: 760px) {
    .pro-services.services-look-photo .pro-service-grid article { min-height: 220px; }
    .pro-services.services-look-photo.services-height-compact .pro-service-grid article { min-height: 170px; }
    .pro-services.services-look-photo.services-height-tall .pro-service-grid article { min-height: 290px; }
}

/* Le scelte esplicite dell'editor Hero prevalgono su tema e layout. */
.pro-body .pro-hero.hero-title-size-small h1 { font-size: clamp(30px,3.5vw,46px); }
.pro-body .pro-hero.hero-title-size-medium h1 { font-size: clamp(38px,4.6vw,62px); }
.pro-body .pro-hero.hero-title-size-large h1 { font-size: clamp(48px,6vw,83px); }
.pro-body .pro-hero.hero-title-size-xlarge h1 { font-size: clamp(58px,7.2vw,102px); }
.pro-body .pro-hero.hero-title-weight-normal h1 { font-weight: 400; }
.pro-body .pro-hero.hero-title-weight-semibold h1 { font-weight: 600; }
.pro-body .pro-hero.hero-title-weight-bold h1 { font-weight: 700; }
.pro-body .pro-hero.hero-title-weight-heavy h1 { font-weight: 900; }
.pro-body .pro-hero.hero-title-width-narrow h1 { max-width: 500px; }
.pro-body .pro-hero.hero-title-width-medium h1 { max-width: 760px; }
.pro-body .pro-hero.hero-title-width-wide h1 { max-width: 1040px; }
.pro-body .pro-hero.hero-title-color-text h1 { color: var(--pro-text); }
.pro-body .pro-hero.hero-title-color-primary h1 { color: var(--pro-primary); }
.pro-body .pro-hero.hero-title-color-white h1 { color: #fff; }
.pro-body .pro-hero.hero-title-color-custom h1 { color: var(--pro-hero-title-color); }

/* Margini Hero indipendenti: prevalgono sulla spaziatura generale del blocco. */
.pro-body .pro-hero:not(.hero-cover).hero-space-top-compact { padding-top: 46px; }
.pro-body .pro-hero:not(.hero-cover).hero-space-top-normal { padding-top: 94px; }
.pro-body .pro-hero:not(.hero-cover).hero-space-top-wide { padding-top: 142px; }
.pro-body .pro-hero:not(.hero-cover).hero-space-bottom-compact { padding-bottom: 40px; }
.pro-body .pro-hero:not(.hero-cover).hero-space-bottom-normal { padding-bottom: 82px; }
.pro-body .pro-hero:not(.hero-cover).hero-space-bottom-wide { padding-bottom: 126px; }

@media (max-width: 820px) {
    .pro-body .pro-hero:not(.hero-cover).hero-space-top-compact { padding-top: 28px; }
    .pro-body .pro-hero:not(.hero-cover).hero-space-top-normal { padding-top: 56px; }
    .pro-body .pro-hero:not(.hero-cover).hero-space-top-wide { padding-top: 84px; }
    .pro-body .pro-hero:not(.hero-cover).hero-space-bottom-compact { padding-bottom: 28px; }
    .pro-body .pro-hero:not(.hero-cover).hero-space-bottom-normal { padding-bottom: 52px; }
    .pro-body .pro-hero:not(.hero-cover).hero-space-bottom-wide { padding-bottom: 80px; }
}
