/* Public design tokens. BackOffice.Master and legacy /Admin consumers are excluded. */
.public-site {
    --ps-brand: #6e6060;
    --ps-brand-dark: #524747;
    --ps-accent: #81bf18;
    --ps-accent-ink: #18340b;
    --ps-primary: #285c1e;
    --ps-primary-hover: #1c4415;
    --ps-ink: #20312c;
    --ps-muted: #52635b;
    --ps-link: #164f85;
    --ps-surface: #fff;
    --ps-soft: #f4f7f2;
    --ps-border: #d8e0d7;
    --ps-control-border: #87968c;
    --ps-error: #941f2c;
    --ps-error-bg: #fff1f2;
    --ps-success: #245b30;
    --ps-success-bg: #edf7ef;
    --ps-space-1: .5rem;
    --ps-space-2: 1rem;
    --ps-space-3: 1.5rem;
    --ps-space-4: 2.5rem;
    --ps-radius: .75rem;
    --ps-radius-small: .4rem;
    --ps-shadow: 0 .35rem 1.25rem rgb(32 49 44 / 8%);
    --ps-shadow-hover: 0 .55rem 1.5rem rgb(32 49 44 / 13%);
    --ps-content-width: 75rem;
    --ps-reading-width: 72ch;
    --ps-header-height: 4.5rem;
    --ps-font: "Segoe UI", system-ui, -apple-system, sans-serif;
    --ps-duration: 160ms;
    --bs-body-font-family: var(--ps-font);
    --bs-body-color: var(--ps-ink);
    --bs-link-color: var(--ps-link);
    --bs-secondary-rgb: 110, 96, 96;
    font-family: var(--ps-font);
    font-size: 1.0625rem;
    line-height: 1.65;
    color: var(--ps-ink);
    background: var(--ps-surface);
}
@media (min-width: 1400px) {
    .public-site .container { max-width: var(--ps-content-width); }
}
.public-site .ps-header-spacer { height: var(--ps-header-height); }
.public-site .navbar-bg-giulio { background-color: var(--ps-brand) !important; }
.public-site .navbar[aria-label="Navigazione principale"] { min-height: var(--ps-header-height); padding: .7rem 1rem; box-shadow: 0 2px 12px rgb(32 49 44 / 12%); }
.public-site .navbar-brand { margin-right: 1.25rem; }
.public-site .navbar-brand img { display: block; width: 10.5rem; max-height: 2.5rem; height: auto; object-fit: contain; }
.public-site .navbar .nav-link { color: #fff; font-size: .96rem; font-weight: 500; white-space: nowrap; border-radius: var(--ps-radius-small); }
.public-site .navbar .nav-link:hover, .public-site .navbar .nav-link:focus { color: #fff; background: rgb(255 255 255 / 10%); }
.public-site .navbar button.nav-link:hover, .public-site .navbar button.nav-link:focus-visible { background-color: rgb(255 255 255 / 10%) !important; }
.public-site .navbar-toggler { min-width: 2.75rem; min-height: 2.75rem; border-color: #d4ccc9; }
.public-site .dropdown-menu { border: 1px solid var(--ps-border); border-radius: var(--ps-radius-small); box-shadow: var(--ps-shadow); padding: .5rem; }
.public-site .dropdown-item { color: var(--ps-ink); border-radius: .25rem; padding: .6rem .75rem; line-height: 1.45; }
.public-site .dropdown-item:hover, .public-site .dropdown-item:focus { color: var(--ps-primary); background: var(--ps-soft); }
.public-site .dropdown-item:active { color: #fff; background: var(--ps-primary); }
.public-site .dropdown-header { color: var(--ps-muted); }
.public-site main { padding-bottom: var(--ps-space-4); }
.public-site h1 { font-size: clamp(1.9rem, 3.1vw, 2.85rem); line-height: 1.15; font-weight: 700; letter-spacing: -.025em; color: var(--ps-ink); margin-bottom: 1rem; overflow-wrap: break-word; }
.public-site main h2 { font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.25; font-weight: 650; margin-bottom: 1rem; }
.public-site main h3 { line-height: 1.3; }
.public-site main p { max-width: var(--ps-reading-width); }
.public-site main .lead { font-size: 1.125rem; color: var(--ps-muted); }
.public-site main a:not(.btn):not(.dropdown-item):not(.button) { color: var(--ps-link); text-underline-offset: .2em; }
.public-site main a:not(.btn):not(.dropdown-item):not(.button):hover { text-decoration-thickness: 2px; }
.public-site a:focus-visible, .public-site button:focus-visible, .public-site [tabindex]:focus-visible { outline: 3px solid var(--ps-link); outline-offset: 3px; }
.public-site .navbar a:focus-visible, .public-site .navbar button:focus-visible, .public-site form > footer a:focus-visible, .public-site form > footer button:focus-visible { outline-color: #fff; }
.public-site .navbar .dropdown-item:focus-visible, .public-site form > footer .dropdown-item:focus-visible { outline-color: var(--ps-link); outline-offset: -3px; }
.public-site .btn { min-height: 2.75rem; padding: .6rem 1rem; font-size: .95rem; font-weight: 600; border-radius: var(--ps-radius-small); line-height: 1.4; transition: color var(--ps-duration), background-color var(--ps-duration), border-color var(--ps-duration), box-shadow var(--ps-duration); }
.public-site .btn-primary, .public-site .btn-success, .public-site .btn-gradient-green {
    --bs-btn-color: #fff; --bs-btn-bg: var(--ps-primary); --bs-btn-border-color: var(--ps-primary);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ps-primary-hover); --bs-btn-hover-border-color: var(--ps-primary-hover);
    --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ps-primary-hover); --bs-btn-active-border-color: var(--ps-primary-hover);
    background-image: none;
}
.public-site .btn-gradient-green { color: #fff; background-color: var(--ps-primary); border-color: var(--ps-primary); }
.public-site .btn-gradient-green:hover, .public-site .btn-gradient-green:focus { color: #fff; background-color: var(--ps-primary-hover); border-color: var(--ps-primary-hover); }
.public-site .btn-secondary { --bs-btn-bg: var(--ps-brand); --bs-btn-border-color: var(--ps-brand); --bs-btn-hover-bg: var(--ps-brand-dark); --bs-btn-hover-border-color: var(--ps-brand-dark); --bs-btn-active-bg: var(--ps-brand-dark); --bs-btn-active-border-color: var(--ps-brand-dark); }
.public-site .btn-outline-primary { --bs-btn-color: var(--ps-primary); --bs-btn-border-color: var(--ps-primary); --bs-btn-hover-bg: var(--ps-primary); --bs-btn-hover-border-color: var(--ps-primary); --bs-btn-active-bg: var(--ps-primary); --bs-btn-active-border-color: var(--ps-primary); }
.public-site .button { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: .6rem 1rem; border: 1px solid var(--ps-primary); border-radius: var(--ps-radius-small); background: var(--ps-primary); color: #fff; font: 600 .95rem/1.4 var(--ps-font); text-decoration: none; }
.public-site .button:hover, .public-site .button:focus { background: var(--ps-primary-hover); border-color: var(--ps-primary-hover); color: #fff; }
.public-site .btn:disabled, .public-site .btn.disabled, .public-site .button[aria-disabled="true"] { opacity: 1; background: #e3e9e3; color: #4a5b4e; border-color: #c3cec4; cursor: not-allowed; }
.public-site .ps-card, .public-site main .card, .public-site .ecommerce-plan { border: 1px solid var(--ps-border); border-radius: var(--ps-radius); background: var(--ps-surface); color: var(--ps-ink); box-shadow: var(--ps-shadow); }
.public-site .ps-service-card, .public-site main .card-body { padding: var(--ps-space-3); }
.public-site .ps-service-card { transition: border-color var(--ps-duration), box-shadow var(--ps-duration); }
.public-site .ps-service-card:hover, .public-site .ps-service-card:focus-within, .public-site .ps-project-card:hover, .public-site .ps-project-card:focus-within { border-color: var(--ps-control-border); box-shadow: var(--ps-shadow-hover); }
.public-site .ps-project-card { overflow: hidden; transition: border-color var(--ps-duration), box-shadow var(--ps-duration); }
.public-site .ps-project-card .inner { overflow: visible; }
.public-site .ps-project-card .inner img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; background: var(--ps-soft); }
.public-site .ps-project-card .caption2, .public-site .ps-project-card:hover .caption2 { position: static; right: auto; bottom: auto; padding: 1rem; margin: 0 !important; background: #fff; color: var(--ps-ink); line-height: 1.5; overflow-wrap: anywhere; transition: none; }
.public-site .ps-project-card .caption2 a { color: var(--ps-link); font-weight: 600; }
.public-site nav[aria-label="Percorso di navigazione"], .public-site nav[aria-label="Percorso articolo"] { padding: .75rem 0; font-size: .875rem; color: var(--ps-muted); line-height: 1.5; }
.public-site .form-control, .public-site .form-select { min-height: 2.75rem; border: 1px solid var(--ps-control-border); border-radius: var(--ps-radius-small); background-color: #fff; color: var(--ps-ink); font-family: var(--ps-font); line-height: 1.5; }
.public-site textarea.form-control { min-height: 9rem; }
.public-site .form-control::placeholder { color: #65746b; opacity: 1; }
.public-site .form-control:hover, .public-site .form-select:hover { border-color: #556b5c; }
.public-site .form-control:focus, .public-site .form-select:focus { border-color: var(--ps-primary); outline: 2px solid var(--ps-primary); outline-offset: 2px; box-shadow: none; }
.public-site .form-control:disabled, .public-site .form-select:disabled { opacity: 1; color: #4a5b4e; background: #e3e9e3; }
.public-site .form-control.is-invalid, .public-site .form-control[aria-invalid="true"] { border-color: var(--ps-error); outline-color: var(--ps-error); }
.public-site .text-danger { color: var(--ps-error) !important; background-color: var(--ps-error-bg); }
.public-site .pandora-form-feedback, .public-site .pandora-form-toast { border-radius: var(--ps-radius-small); font-size: 1rem; }
.public-site .pandora-form-feedback-success { color: var(--ps-success); background: var(--ps-success-bg); }
.public-site .pandora-form-feedback-error { color: var(--ps-error); background: var(--ps-error-bg); }
.public-site .modal-content { border: 1px solid var(--ps-border); border-radius: var(--ps-radius); color: var(--ps-ink); }
.public-site .modal-body { padding: var(--ps-space-3); }
.public-site .tooltip { --bs-tooltip-bg: var(--ps-brand-dark); --bs-tooltip-color: #fff; }
.public-site .banda.verde { background: var(--ps-accent); color: var(--ps-accent-ink); }
.public-site .verde h2, .public-site .verde h2 small { color: var(--ps-accent-ink); }
.public-site .verde a:not(.btn):not(.button) { color: var(--ps-accent-ink); }
.public-site .bg-secondary, .public-site .bg-secondary h2, .public-site .bg-secondary h3, .public-site .bg-secondary .lead { color: #fff; }
.public-site .bg-secondary a:not(.btn):not(.button) { color: #fff; text-decoration: underline; }
.public-site form > footer { background: var(--ps-brand); color: #fff; line-height: 1.6; }
.public-site form > footer h2 { font: 650 1.25rem/1.3 var(--ps-font); }
.public-site form > footer a:not(.dropdown-item):not(.btn) { color: #fff !important; }
.public-site form > footer .text-white-50 { color: #fff !important; }
.public-site form > footer .form-control { background: #fff; color: var(--ps-ink); }
.public-site .pagination a, .public-site .pagination span { border-radius: var(--ps-radius-small) !important; }
.public-site .pagination .aspNetDisabled { color: #52635b !important; background: #edf0ec !important; }
@media (max-width: 1199.98px) {
    .public-site #mainNavbar { max-height: calc(100dvh - var(--ps-header-height)); overflow-y: auto; padding: .75rem 0; }
    .public-site .navbar .navbar-nav { gap: .25rem; }
    .public-site .navbar .nav-link { padding: .6rem .75rem; }
    .public-site .navbar .dropdown-menu { box-shadow: none; }
    .public-site .navbar .btn { margin-top: .5rem; }
}
@media (prefers-reduced-motion: reduce) {
    .public-site *, .public-site *::before, .public-site *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
