/*
Theme Name: Carlo Cini
Description: Tema figlio di Hello Elementor per carlocini.com
Author: Carlo Cini
Author URI: https://www.carlocini.com
Template: hello-elementor
Version: 2.2.9
Text Domain: hello-elementor-child
*/

/* Carlo Cini — CSS globale del tema */
:root {
    --brand: #009fad;
    --brand-on-dark: #3fd8c4;
    --ink-900: #242729;
    --gray-50: #fafafa;
    --gray-200: #e2e5e6;
    --gray-300: #d5d8da;
    --teal-50: #e6f7f8;
    --teal-300: #3fd8c4;
    --border-1: #d5d8da;
    --fg-2: #5f6b6d;
    --success: #1f9d63;
    --shadow-2: 0 4px 12px rgba(36, 39, 41, .08);
    --shadow-3: 0 16px 40px -8px rgba(36, 39, 41, .25);
    --hex-clip: polygon(25% 3%, 75% 3%, 100% 50%, 75% 97%, 25% 97%, 0 50%);
    --font-display: 'Sofia Sans Extra Condensed', sans-serif;
    --font-body: 'Sofia Sans', sans-serif;
    --font-mono: 'Space Mono', monospace
}

::selection {
    background: #3fd8c4;
    color: #242729
}

.elementor-heading-title {
    text-wrap: balance
}
.hfe-site-logo-container{display: flex;}
.cc-header {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px)
}

/* sfondo animato header */
.cc-head {
    position: relative;
    overflow: hidden
}

.cc-head .cc-fx {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
    -webkit-mask-image: linear-gradient(100deg, rgba(0, 0, 0, .12) 25%, #000 70%);
    mask-image: linear-gradient(100deg, rgba(0, 0, 0, .12) 25%, #000 70%)
}

.cc-head>.e-con-inner>.elementor-widget-html:has(.cc-fx) {
    position: absolute !important;
    inset: 0;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    z-index: 0
}

/* badge */
.cc-badge {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    border-radius: 2px;
    background: #e6f7f8;
    color: #006e79;
    font: 11px var(--font-mono);
    letter-spacing: .08em;
    text-transform: uppercase
}

/* hero */
.cc-hero-title {
    font-family: var(--font-display);
    font-weight: 800;
    text-transform: uppercase;
    font-size: clamp(56px, 8vw, 108px);
    line-height: .92;
    margin: 0;
    color: #242729
}

.cc-hero-title>span {
    display: block
}

.cc-hero-title .w {
    display: inline-block;
    white-space: nowrap;
    margin-right: .2em
}

.cc-hero-title .slash {
    color: #009fad
}

.cc-hero-title .ch {
    display: inline-block;
    animation: cc-word .3s cubic-bezier(.2, .7, .2, 1) both
}

/* icone */
.ic {
    display: inline-block;
    flex: none;
    width: 20px;
    height: 20px;
    background: currentColor;
    -webkit-mask: var(--i) center/contain no-repeat;
    mask: var(--i) center/contain no-repeat
}

.ic-16 {
    width: 16px;
    height: 16px
}

.ic-24 {
    width: 24px;
    height: 24px
}

.ic-28 {
    width: 28px;
    height: 28px
}

.ic-32 {
    width: 32px;
    height: 32px
}

.ic-36 {
    width: 36px;
    height: 36px
}

.ic-brand {
    color: var(--brand)
}

.ic-arrow-right {
    --i: url(assets/icons/arrow-right.svg)
}

.ic-x {
    --i: url(assets/icons/x.svg)
}

.ic-lightbulb {
    --i: url(assets/icons/lightbulb.svg)
}

.ic-shopping-cart {
    --i: url(assets/icons/shopping-cart.svg)
}

.ic-shield-check {
    --i: url(assets/icons/shield-check.svg)
}

.ic-server {
    --i: url(assets/icons/server.svg)
}

.ic-code {
    --i: url(assets/icons/code.svg)
}

.ic-pen-tool {
    --i: url(assets/icons/pen-tool.svg)
}

.ic-lock {
    --i: url(assets/icons/lock.svg)
}

.ic-euro {
    --i: url(assets/icons/euro.svg)
}

.ic-user-check {
    --i: url(assets/icons/user-check.svg)
}

.ic-monitor-smartphone {
    --i: url(assets/icons/monitor-smartphone.svg)
}

.ic-database {
    --i: url(assets/icons/database.svg)
}

.ic-mail {
    --i: url(assets/icons/mail.svg)
}

.ic-message-circle {
    --i: url(assets/icons/message-circle.svg)
}

.ic-layout-template {
    --i: url(assets/icons/layout-template.svg)
}

.ic-bot {
    --i: url(assets/icons/bot.svg)
}

.ic-mouse-pointer-2 {
    --i: url(assets/icons/mouse-pointer-2.svg)
}

/* mock browser */
.mock-wrap {
    display: flex;
    justify-content: center;
    padding: 0 16px
}

.mock {
    position: relative;
    width: 100%;
    max-width: 580px;
    margin: 24px 0
}

.mock-frame {
    position: relative;
    background: #fff;
    border: 1px solid var(--border-1);
    border-radius: 8px;
    box-shadow: var(--shadow-3);
    overflow: hidden;
    animation: cc-up 0.40s cubic-bezier(.2, .7, .2, 1) 0.07s both
}

.mock-bar {
    height: 40px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 14px;
    border-bottom: 1px solid var(--border-1);
    background: var(--gray-50)
}

.mock-dots {
    display: flex;
    gap: 6px
}

.mock-dots i {
    width: 10px;
    height: 10px;
    border-radius: 99px;
    background: var(--gray-300)
}

.mock-url {
    flex: 1;
    height: 24px;
    border-radius: 2px;
    background: #fff;
    border: 1px solid var(--border-1);
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 10px;
    font: 12px var(--font-mono);
    color: var(--fg-2)
}

.mock-url .ic {
    width: 12px;
    height: 12px;
    color: var(--success)
}

.mock-type {
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    animation: cc-type 0.53s steps(17) 0.33s both
}

.mock-caret {
    width: 1px;
    height: 14px;
    background: var(--ink-900);
    animation: cc-blink 1s steps(1) infinite
}

.mock-body {
    position: relative;
    aspect-ratio: 16/10;
    background: #fff
}

.mock-body>* {
    position: absolute
}

.m-logo {
    left: 5%;
    top: 5.5%;
    width: 3.6%;
    aspect-ratio: 1;
    background: var(--brand);
    clip-path: var(--hex-clip);
    animation: cc-fade 0.27s cubic-bezier(.2, .7, .2, 1) 0.73s both
}

.gx {
    transform-origin: left center;
    border-radius: 2px
}

.m-brand {
    left: 10%;
    top: 6.8%;
    width: 12%;
    height: 2.4%;
    background: var(--ink-900);
    animation: cc-growx 0.33s cubic-bezier(.2, .7, .2, 1) 0.77s both
}

.m-n {
    top: 7.2%;
    width: 6%;
    height: 1.6%;
    background: var(--gray-300)
}

.m-n1 {
    left: 56%;
    animation: cc-growx 0.27s cubic-bezier(.2, .7, .2, 1) 0.80s both
}

.m-n2 {
    left: 64%;
    animation: cc-growx 0.27s cubic-bezier(.2, .7, .2, 1) 0.85s both
}

.m-n3 {
    left: 72%;
    animation: cc-growx 0.27s cubic-bezier(.2, .7, .2, 1) 0.91s both
}

.m-cta {
    left: 81%;
    top: 5.4%;
    width: 14%;
    height: 4.6%;
    background: var(--brand);
    animation: cc-growx 0.33s cubic-bezier(.2, .7, .2, 1) 0.97s both
}

.m-hero {
    left: 5%;
    top: 16%;
    width: 90%;
    height: 44%;
    background: var(--ink-900);
    border-radius: 3px;
    overflow: hidden;
    animation: cc-growx 0.47s cubic-bezier(.6, 0, .3, 1) 0.93s both
}

.m-hero>* {
    position: absolute
}

.m-ov {
    left: 5%;
    top: 18%;
    width: 16%;
    height: 4%;
    background: var(--teal-300);
    animation: cc-growx 0.27s cubic-bezier(.2, .7, .2, 1) 1.27s both
}

.m-t1 {
    left: 5%;
    top: 32%;
    width: 50%;
    height: 10%;
    background: #fff;
    animation: cc-growx 0.33s cubic-bezier(.2, .7, .2, 1) 1.33s both
}

.m-t2 {
    left: 5%;
    top: 46%;
    width: 36%;
    height: 10%;
    background: #fff;
    animation: cc-growx 0.33s cubic-bezier(.2, .7, .2, 1) 1.40s both
}

.m-btn {
    left: 5%;
    top: 66%;
    width: 18%;
    height: 14%;
    background: var(--teal-300);
    border-radius: 2px;
    animation: cc-fade 0.20s cubic-bezier(.2, .7, .2, 1) 1.53s both, cc-press 0.20s ease 2.87s both
}

.m-hex {
    right: 7%;
    top: 12%;
    height: 76%;
    overflow: visible
}

.m-hex polygon {
    stroke-dasharray: 100;
    animation: cc-draw 0.67s cubic-bezier(.6, 0, .3, 1) 1.47s both
}

.m-hex path {
    animation: cc-fade 0.27s ease 1.93s both
}

.m-card {
    top: 66%;
    width: 27.33%;
    height: 28%;
    border: 1px solid var(--border-1);
    border-radius: 3px;
    background: #fff;
    padding: 4%;
    display: flex;
    flex-direction: column;
    gap: 10%
}

.m-c1 {
    left: 5%;
    animation: cc-up 0.33s cubic-bezier(.2, .7, .2, 1) 1.73s both
}

.m-c2 {
    left: 36.33%;
    animation: cc-up 0.33s cubic-bezier(.2, .7, .2, 1) 1.83s both
}

.m-c3 {
    left: 67.66%;
    animation: cc-up 0.33s cubic-bezier(.2, .7, .2, 1) 1.93s both
}

.m-card i {
    width: 26px;
    height: 26px;
    border-radius: 2px;
    background: var(--teal-50);
    display: grid;
    place-items: center
}

.m-card i .ic {
    width: 14px;
    height: 14px;
    color: var(--brand)
}

.m-card b {
    height: 6px;
    width: 80%;
    background: var(--ink-900);
    border-radius: 2px
}

.m-card s {
    height: 5px;
    width: 60%;
    background: var(--gray-200);
    border-radius: 2px
}

.m-ripple {
    left: 17%;
    top: 47%;
    width: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    border-radius: 99px;
    border: 2px solid var(--teal-300);
    opacity: 0;
    animation: cc-ripple 0.40s ease-out 2.93s both
}

.m-cursor {
    z-index: 3;
    color: #fff;
    filter: drop-shadow(0 0 1px #242729) drop-shadow(0 2px 3px rgba(36, 39, 41, .35));
    animation: cc-cursor 1.00s cubic-bezier(.6, 0, .3, 1) 2.00s both
}

.m-cursor .ic {
    width: 22px;
    height: 22px
}

.m-badge {
    position: absolute;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #fff;
    border: 1px solid var(--border-1);
    border-radius: 4px;
    box-shadow: var(--shadow-2);
    font: 11px var(--font-mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap
}

.m-badge::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 99px;
    background: var(--success)
}

.m-b1 {
    left: -18px;
    top: 42%;
    animation: cc-up 0.33s cubic-bezier(.2, .7, .2, 1) 3.13s both
}

.m-b2 {
    right: -14px;
    top: 16%;
    animation: cc-up 0.33s cubic-bezier(.2, .7, .2, 1) 3.27s both
}

.m-b3 {
    right: 28px;
    bottom: -16px;
    animation: cc-up 0.33s cubic-bezier(.2, .7, .2, 1) 3.40s both
}

/* keyframes */
@keyframes cc-word {
    from {
        opacity: 0;
        transform: translateY(.35em)
    }

    to {
        opacity: 1;
        transform: none
    }
}

@keyframes cc-draw {
    from {
        stroke-dashoffset: 100
    }

    to {
        stroke-dashoffset: 0
    }
}

@keyframes cc-fade {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@keyframes cc-up {
    from {
        opacity: 0;
        transform: translateY(14px)
    }

    to {
        opacity: 1;
        transform: none
    }
}

@keyframes cc-growx {
    from {
        transform: scaleX(0)
    }

    to {
        transform: scaleX(1)
    }
}

@keyframes cc-type {
    from {
        width: 0
    }

    to {
        width: 17ch
    }
}

@keyframes cc-blink {
    50% {
        opacity: 0
    }
}

@keyframes cc-cursor {
    0% {
        left: 85%;
        top: 95%;
        opacity: 0
    }

    15% {
        opacity: 1
    }

    85% {
        left: 17%;
        top: 47%;
        transform: scale(1)
    }

    92% {
        transform: scale(.8)
    }

    100% {
        left: 17%;
        top: 47%;
        opacity: 1;
        transform: scale(1)
    }
}

@keyframes cc-press {

    0%,
    100% {
        transform: scale(1)
    }

    50% {
        transform: scale(.92);
        background: #62e2d1
    }
}

@keyframes cc-ripple {
    from {
        transform: scale(.2);
        opacity: 1
    }

    to {
        transform: scale(1.8);
        opacity: 0
    }
}

/* burger + off-canvas */
body .cc-burger {
    display: none;
    width: 40px;
    height: 40px;
    padding: 0 10px;
    border: 1px solid #c1c7c9;
    border-radius: 4px;
    background: transparent;
    cursor: pointer;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    gap: 4px
}

body .cc-burger span {
    display: block;
    height: 2px;
    background: #242729;
    border-radius: 2px
}

@media (max-width:1039px) {
    body .cc-burger {
        display: flex
    }

    body .cc-header .elementor-widget-button {
        display: none
    }
}

.cc-drawer-host {
    position: static !important;
    padding: 0 !important;
    min-height: 0 !important
}

.cc-drawer {
    position: fixed;
    inset: 0;
    z-index: 9999;
    pointer-events: none
}

.cc-drawer-ov {
    position: absolute;
    inset: 0;
    background: rgba(36, 39, 41, .55);
    backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity .36s cubic-bezier(.2, .7, .2, 1)
}

.cc-drawer-panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(88vw, 400px);
    background: #242729;
    color: #f5f5f5;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    transform: translateX(100%);
    visibility: hidden;
    transition: visibility 0s linear .36s, transform .36s cubic-bezier(.2, .7, .2, 1)
}

.cc-drawer.open {
    pointer-events: auto
}

.cc-drawer.open .cc-drawer-ov {
    opacity: 1
}

.cc-drawer.open .cc-drawer-panel {
    transform: none;
    visibility: visible;
    box-shadow: var(--shadow-3);
    transition: visibility 0s, transform .36s cubic-bezier(.2, .7, .2, 1)
}

.cc-drawer-top {
    height: 72px;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px 0 28px;
    border-bottom: 1px solid #3a4446
}

body .cc-x {
    width: 40px;
    height: 40px;
    border: 0;
    background: transparent;
    color: #f5f5f5;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    border-radius: 4px;
	display: inline-grid;
  place-items: center;
  padding: 0;
}

body .cc-x:hover {
    background: #3a4446
}

.cc-drawer-nav {
    display: flex;
    flex-direction: column;
    padding: 24px 28px 8px
}

.cc-drawer-nav a {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid #3a4446;
    text-decoration: none;
    color: #fff;
    opacity: 0;
    transform: translateX(24px);
    transition: opacity .3s ease, transform .36s cubic-bezier(.2, .7, .2, 1), color .12s
}

.cc-drawer-nav a:hover,
.cc-drawer-nav a.on {
    color: #3fd8c4
}

.cc-drawer-nav a span:first-child {
    font: 11px var(--font-mono);
    letter-spacing: .12em;
    color: #8a9597
}

.cc-drawer-nav a span:last-child {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 34px;
    line-height: 1;
    text-transform: uppercase
}

.cc-drawer.open .cc-drawer-nav a {
    opacity: 1;
    transform: none
}

.cc-drawer.open .cc-drawer-nav a:nth-child(1) {
    transition-delay: 60ms
}

.cc-drawer.open .cc-drawer-nav a:nth-child(2) {
    transition-delay: 100ms
}

.cc-drawer.open .cc-drawer-nav a:nth-child(3) {
    transition-delay: 140ms
}

.cc-drawer.open .cc-drawer-nav a:nth-child(4) {
    transition-delay: 180ms
}

.cc-drawer.open .cc-drawer-nav a:nth-child(5) {
    transition-delay: 220ms
}

.cc-drawer.open .cc-drawer-nav a:nth-child(6) {
    transition-delay: 260ms
}

.cc-drawer.open .cc-drawer-nav a:nth-child(7) {
    transition-delay: 300ms
}

.cc-drawer-foot {
    margin-top: auto;
    padding: 24px 28px 32px;
    display: flex;
    flex-direction: column;
    gap: 18px
}

.cc-drawer-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 54px;
    background: #3fd8c4;
    color: #242729 !important;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 22px;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 2px
}

.cc-drawer-contacts {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font: 12px var(--font-mono);
    color: #aeb7b9
}

.cc-drawer-contacts a {
    color: #f5f5f5;
    text-decoration: none
}

body.cc-lock {
    overflow: hidden
}

.cc-booking-ph {
    display: grid;
    place-items: center;
    min-height: 220px;
    border-radius: 4px;
    font: 11px var(--font-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #8a9597
}
.cc-booking-ph .elementor-shortcode {width:100%;}

@media (prefers-reduced-motion:reduce) {
    * {
        animation: none !important;
        transition: none !important
    }
}

/* Contact Form 7 — Prenota una call (su card ink) */
.cc-book{--cc-ink:#242729;--cc-ink-2:#33383b;--cc-line:#4a5255;--cc-fg:#fff;--cc-fg-2:#b9c0c2;--cc-brand:#3fd8c4;--cc-brand-2:#009fad;font-family:"Sofia Sans",sans-serif;color:var(--cc-fg)}
.cc-book p{margin:0}
.cc-book br{display:none}
.cc-book-step{margin-bottom:22px}
.cc-book-label{display:block;margin-bottom:10px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--cc-brand)}
.cc-book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.cc-book-grid .cc-full{grid-column:1/-1}
.cc-book-grid label{display:flex;flex-direction:column;gap:6px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cc-fg-2)}
.cc-book input[type=text],.cc-book input[type=email],.cc-book textarea{width:100%;box-sizing:border-box;padding:12px 14px;background:var(--cc-ink-2);border:1px solid var(--cc-line);border-radius:2px;color:var(--cc-fg);font:16px/1.4 "Sofia Sans",sans-serif;letter-spacing:0;text-transform:none;transition:border-color .12s cubic-bezier(.2,.7,.2,1),box-shadow .12s}
.cc-book textarea{resize:vertical;min-height:84px}
.cc-book input:focus,.cc-book textarea:focus{outline:none;border-color:var(--cc-brand);box-shadow:0 0 0 3px rgba(63,216,196,.25)}
/* Slot orari come chip */
.cc-book .cc-book-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.cc-book .cc-book-slots .wpcf7-list-item{margin:0}
.cc-book .cc-book-slots label{display:block;cursor:pointer}
.cc-book .cc-book-slots input{position:absolute;opacity:0;pointer-events:none}
.cc-book .cc-book-slots .wpcf7-list-item-label{display:block;padding:10px 0;text-align:center;border:1px solid var(--cc-line);border-radius:2px;font-family:"Space Mono",monospace;font-size:14px;color:var(--cc-fg);transition:all .12s cubic-bezier(.2,.7,.2,1)}
.cc-book .cc-book-slots label:hover .wpcf7-list-item-label{border-color:var(--cc-fg)}
.cc-book .cc-book-slots input:checked+.wpcf7-list-item-label{background:var(--cc-brand);border-color:var(--cc-brand);color:var(--cc-ink)}
.cc-book .cc-book-slots input:focus-visible+.wpcf7-list-item-label{box-shadow:0 0 0 3px rgba(63,216,196,.35)}
.cc-book-note{margin:4px 0 16px;font-size:14px;color:var(--cc-fg-2)}
.cc-book .wpcf7-acceptance .wpcf7-list-item{margin:0 0 20px;font-size:14px;color:var(--cc-fg-2)}
.cc-book .wpcf7-acceptance input{accent-color:var(--cc-brand);margin-right:8px}
.cc-book input[type=submit],.cc-book button.cc-submit{width:100%;padding:15px 22px;background:var(--cc-brand);border:0;border-radius:2px;color:var(--cc-ink);font:800 20px/1 "Sofia Sans Extra Condensed",sans-serif;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;transition:background .12s,transform .12s}
.cc-book button.cc-submit{display:flex;align-items:center;justify-content:center;gap:10px}
.cc-book button.cc-submit .ic{width:20px;height:20px}
.cc-book button.cc-submit:hover{background:var(--cc-brand-2);color:var(--cc-ink)}
.cc-book input[type=submit]:active,.cc-book button.cc-submit:active{transform:translateY(1px)}
.cc-book .wpcf7-spinner{display:block;margin:12px auto 0}
.cc-book .wpcf7-not-valid-tip{margin-top:6px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.06em;text-transform:none;color:#ff8a80}
.cc-book .wpcf7-not-valid{border-color:#ff8a80!important}
.cc-book .wpcf7-response-output{margin:16px 0 0!important;padding:12px 14px!important;border:1px solid var(--cc-line)!important;border-radius:2px;font-size:14px;color:var(--cc-fg)}
.cc-book.sent .wpcf7-response-output{border-color:var(--cc-brand)!important}
.cc-book.invalid .wpcf7-response-output,.cc-book.failed .wpcf7-response-output{border-color:#ffb74d!important}
/* Selettore giorno dinamico (giorni_call) */
.cc-book .cc-book-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.cc-book .cc-day{display:block;cursor:pointer;margin:0}
.cc-book .cc-day input{position:absolute;opacity:0;pointer-events:none}
.cc-book .cc-day-in{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 0;border:1px solid var(--cc-line);border-radius:2px;transition:all .12s cubic-bezier(.2,.7,.2,1)}
.cc-book .cc-day-dow{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cc-brand)}
.cc-book .cc-day-num{font:800 26px/1 "Sofia Sans Extra Condensed",sans-serif;color:var(--cc-fg)}
.cc-book .cc-day:hover .cc-day-in{border-color:var(--cc-brand)}
.cc-book .cc-day input:checked+.cc-day-in{background:var(--cc-brand);border-color:var(--cc-brand)}
.cc-book .cc-day input:checked+.cc-day-in .cc-day-dow,.cc-book .cc-day input:checked+.cc-day-in .cc-day-num{color:var(--cc-ink)}
.cc-book .cc-day input:focus-visible+.cc-day-in{box-shadow:0 0 0 3px rgba(63,216,196,.35)}
/* Prenota una call — campi in colonna (label avvolte da <p> di wpautop) */
.cc-book .cc-book-grid>p{display:contents;margin:0}
.cc-book .cc-book-grid .cc-book-label{grid-column:1/-1;margin-bottom:0}
.cc-book .cc-book-grid .wpcf7-form-control-wrap{display:block;width:100%}
.cc-book .cc-book-grid input:not([type=checkbox]):not([type=submit]):not([type=radio]),.cc-book .cc-book-grid textarea{width:100%;min-height:46px;background:var(--cc-ink-2);border:1px solid var(--cc-line);color:var(--cc-fg);border-radius:2px}
.cc-book .cc-book-grid textarea{min-height:110px;padding:12px 14px}
.cc-book .cc-book-note{font:14px/1.5 "Sofia Sans",sans-serif;letter-spacing:0;text-transform:none;color:var(--cc-fg-2)}
.cc-book .wpcf7-acceptance label{display:flex;align-items:flex-start;gap:8px;font:14px/1.4 "Sofia Sans",sans-serif;letter-spacing:0;text-transform:none;color:var(--cc-fg-2);margin:0}
/* Prenota una call — layout compatto a colonne (desktop) */
@media (min-width:768px){
.cc-book .wpcf7-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;align-items:start}
.cc-book .wpcf7-form>fieldset.hidden-fields-container{display:none}
.cc-book .wpcf7-form>*{grid-column:1/-1}
.cc-book .wpcf7-form>.cc-book-step:nth-of-type(1),.cc-book .wpcf7-form>.cc-book-step:nth-of-type(2){grid-column:auto}
.cc-book .cc-book-slots{grid-template-columns:repeat(auto-fill,minmax(68px,1fr))}
.cc-book .cc-day-in{box-sizing:border-box;height:64px;justify-content:center;padding:0}
.cc-book .cc-book-slots .wpcf7-list-item-label{box-sizing:border-box;height:64px;display:flex;align-items:center;justify-content:center;padding:0}
.cc-book .cc-book-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto}
.cc-book .cc-book-grid .cc-full{grid-column:2;grid-row:2/4}
.cc-book .cc-book-grid .cc-full .wpcf7-form-control-wrap,.cc-book .cc-book-grid .cc-full textarea{height:100%}
.cc-book .cc-book-grid .cc-full textarea{min-height:110px}
}
@media (max-width:600px){.cc-book-grid{grid-template-columns:1fr}}
/* Tablet: orari su 5 colonne */
@media (min-width:768px) and (max-width:1024px){.cc-book .cc-book-slots{grid-template-columns:repeat(5,minmax(0,1fr))}}

.cc-ai-section {
  background:
    radial-gradient(60% 80% at 85% 40%, rgba(0,159,173,.22) 0%, rgba(0,159,173,0) 70%),
    radial-gradient(50% 70% at 0% 100%, rgba(63,216,196,.08) 0%, rgba(63,216,196,0) 70%),
    linear-gradient(135deg, #242729 0%, #1c1f21 100%);
  background-color: #242729;
}

/* Ele Custom */
.elementor-button span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.ai-strumenti .elementor-icon-list-text {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 15px;
}
/* Accessibilità: focus visibile, aree di tocco, font minimi */
:root body :focus-visible {
    outline: 3px solid #009fad !important;
    outline-offset: 3px !important
}

:root body footer a,
:root body .elementor-heading-title a,
:root body .elementor-icon-list-item a {
    display: inline-block;
    min-height: 24px;
    line-height: 24px
}

:root body .elementor-icon-list-item a {
    display: inline-flex;
    align-items: center
}

.cc-book input[type=checkbox],
.cc-book input[type=radio] {
    width: 24px;
    height: 24px
}

@media (max-width:1024px) {

    :root body .cc-badge,
    :root body .mock-type,
    :root body .m-badge,
    :root body .cc-booking-ph,
    :root body .cc-book-label,
    :root body .cc-day-dow,
    :root body .cc-book label {
        font-size: 14px;
        letter-spacing: .08em
    }

    :root body .cc-book-note,
    :root body .cc-book .wpcf7-acceptance label {
        font-size: 14px
    }
}

:root body .cc-drawer-nav a span:first-child {
    font-size: 14px
}

:root body .cc-drawer-contacts a,
:root body .cc-drawer-contacts span {
    font-size: 14px;
    min-height: 24px;
    line-height: 24px
}

.cc-book input[type=checkbox],
.cc-book input[type=radio] {
    flex: 0 0 24px;
    min-width: 24px
}

/* Header fisso (UAE) */
:root body header#masthead {
    position: sticky;
    top: 0;
    z-index: 100
}

#masthead .main-title {
    display: none
}

:root body.admin-bar header#masthead {
    top: 32px
}

@media (max-width:782px) {
    :root body.admin-bar header#masthead {
        top: 46px
    }
}

:root body .elementor-heading-title a {
    overflow-wrap: anywhere
}

/* Riga legale del footer: stessa grandezza di desktop su tutti i dispositivi */
:root body .cc-footer-legal a {
    min-height: 0;
    line-height: inherit
}

:root body .cc-footer-legal .elementor-icon-list-text {
    font-size: 11px;
    letter-spacing: 1.5px
}

/* Controllo anti-bot del modulo */
.cc-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden
}

.cc-ab-status:empty,
.cc-ab .wpcf7-form-control-wrap:empty {
    display: none
}

.cc-book .cc-ab-status,
.cc-book .cc-ab-nojs {
    margin: 0 0 16px;
    font: 14px/1.4 "Sofia Sans", sans-serif;
    letter-spacing: 0;
    text-transform: none;
    color: var(--cc-fg-2)
}

/* Tag come Elenco icone di Elementor (pagina Competenze) */
:root body .cc-tag-list .elementor-icon-list-items {
    display: flex;
    flex-wrap: wrap;
    gap: 8px
}

:root body .cc-tag-list .elementor-icon-list-item {
    display: inline-flex;
    align-items: center;
    height: 30px;
    margin: 0;
    padding: 0 12px;
    border: 1px solid #c1c7c9;
    border-radius: 999px;
    background: #fff
}

:root body .cc-tag-list .elementor-icon-list-text {
    padding: 0;
    line-height: 1
}

/* Hello applica .page-content a { text-decoration: underline } e batte quella di Elementor:
   i link dei widget (pulsanti, card, titoli) restano senza sottolineatura, quelli nei testi no. */
:root body .page-content .elementor a {
    text-decoration: none
}

:root body .page-content .elementor .elementor-widget-text-editor a {
    text-decoration: underline
}

/* avatar animato (Chi sono) */
.cc-avatar {
    position: relative;
    border-radius: 4px;
    overflow: hidden
}

.cc-avatar-toggle,
:root body .cc-avatar button.cc-avatar-toggle {
    position: absolute;
    right: 12px;
    bottom: 12px;
    width: 40px;
    height: 40px;
    min-width: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #c1c7c9;
    border-radius: 50%;
    background: #fff;
    color: #242729;
    box-shadow: none;
    cursor: pointer
}

:root body .cc-avatar button.cc-avatar-toggle:hover {
    border-color: #242729;
    background: #fff;
    color: #242729
}

.cc-avatar-toggle .cc-i-play,
.cc-avatar-toggle[aria-pressed="true"] .cc-i-pause {
    display: none
}

.cc-avatar-toggle[aria-pressed="true"] .cc-i-play {
    display: block
}

/* avatar: contenitore, esagono tratteggiato e pallino in posizione assoluta dietro all'avatar */
.cc-avatar-wrap {
    position: relative;
    width: 100%;
    --cc-hx: 14%;
    --cc-hy: 9%
}

.cc-avatar-wrap .cc-avatar {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: none;
    margin: 0;
    box-shadow: 0 2px 6px rgba(36, 39, 41, .08), 0 14px 32px -10px rgba(36, 39, 41, .25)
}

.cc-avatar-orbit {
    position: absolute;
    z-index: 0;
    left: calc(var(--cc-hx) * -1);
    right: calc(var(--cc-hx) * -1);
    top: calc(var(--cc-hy) * -1);
    bottom: calc(var(--cc-hy) * -1);
    pointer-events: none
}

.cc-avatar-hex {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible
}

.cc-avatar-hex polygon {
    fill: none;
    stroke: #b9bec1;
    stroke-width: 3;
    stroke-dasharray: 9 9;
    vector-effect: non-scaling-stroke
}

.cc-avatar-dot {
    position: absolute;
    left: 61%;
    top: 3%;
    width: 14px;
    height: 14px;
    margin: -7px 0 0 -7px;
    border-radius: 50%;
    background: #009fad;
    box-shadow: 0 0 0 7px rgba(0, 159, 173, .14), 0 0 22px 8px rgba(63, 216, 196, .45)
}

@media (max-width: 1024px) {
    .cc-avatar-wrap {
        --cc-hx: 8%;
        --cc-hy: 6%
    }
}

@media (max-width: 767px) {
    .cc-avatar-wrap {
        --cc-hx: min(5%, 18px);
        --cc-hy: 5%;
        box-sizing: border-box;
        padding: 20px
    }
}

/* Servizi su tablet: titolo a tutta larghezza, poi "Cosa include" a sinistra e descrizione a destra, allineate */
@media (min-width:768px) and (max-width:1024px) {
    .cc-svc > :nth-child(1) { grid-column: 1 / -1 }
    .cc-svc > :nth-child(3) { grid-column: 1; grid-row: 2 }
    .cc-svc > :nth-child(2) { grid-column: 2; grid-row: 2 }
}
