/* Homepage services, solution navigation and mobile contact actions. */
#esperienze-web, #esperienza-synerlab { scroll-margin-top: 7rem; }
.project-card__media--voce-spesa { background: #090d08; }
.project-card__media--voce-spesa img { inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.solutions-menu { position: relative; }
.solutions-menu > summary { min-height: 2.75rem; display: flex; align-items: center; gap: .45rem; cursor: pointer; color: var(--color-navy); font-size: .9rem; font-weight: 600; list-style: none; }
.solutions-menu > summary::-webkit-details-marker { display: none; }
.solutions-menu[open] > summary svg { transform: rotate(180deg); }
.solutions-menu__panel { position: absolute; top: calc(100% + 1.05rem); left: -9rem; width: 39rem; padding: .7rem; display: grid; grid-template-columns: 1.12fr 1fr; gap: .6rem; border: 1px solid var(--border); border-radius: 1.3rem; background: var(--background); color: var(--foreground); box-shadow: 0 1.5rem 4rem #0003; }
.solutions-menu__group { padding: .6rem; }
.solutions-menu__group--care { background: var(--secondary); border-radius: .85rem; }
.solutions-menu__label { margin: 0 .7rem .65rem; color: var(--muted-foreground); font-size: .77rem; font-weight: 600; }
.site-nav .solutions-menu__panel a { display: flex; align-items: flex-start; flex-direction: column; gap: .12rem; padding: .6rem .7rem; border-radius: .6rem; font-size: .95rem; line-height: 1.4; white-space: normal; }
.site-nav .solutions-menu__panel a:hover, .site-nav .solutions-menu__panel a:focus-visible { background: var(--secondary); }
.site-nav .solutions-menu__group--care a:hover { background: var(--background); }
.solutions-menu__panel a small { font-size: .77rem; color: var(--muted-foreground); font-weight: 400; }
.site-nav .solutions-menu__panel .solutions-menu__ai { border-left: 3px solid var(--color-yellow); border-radius: 0 .6rem .6rem 0; }
.solutions-menu__note { margin: 1rem .7rem .5rem; color: var(--muted-foreground); font-size: .85rem; line-height: 1.5; }
html[data-theme="dark"] .solutions-menu > summary { color: #f6f8fb; }
.hero__copy { width: min(60%, 45rem); }
.hero__subtitle { max-width: 34rem; }
.solutions-section { padding-bottom: clamp(4rem, 7vw, 6rem); }
.offer-label { color: var(--color-blue); font-size: .92rem; font-weight: 600; margin: 0 0 1rem; }
.ai-offer { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; position: relative; padding: clamp(1.5rem, 4vw, 3.25rem); border: 1px solid var(--border); border-radius: 1.25rem; background: var(--card); margin-top: 2.25rem; scroll-margin-top: 7rem; }
.ai-offer::before { content: ''; position: absolute; inset: 2.7rem auto 2.7rem 0; width: 4px; background: var(--color-yellow); }
.ai-offer h3 { margin: 0; max-width: 18ch; font-size: clamp(1.9rem, 3vw, 2.65rem); line-height: 1.15; letter-spacing: -.02em; }
.ai-offer__copy > p:not(.offer-label) { margin: 1.25rem 0 1.5rem; max-width: 44ch; }
.text-link { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: .4rem; }
.workflow-demo { border-left: 1px solid var(--border); padding-left: clamp(1.5rem, 3vw, 2.5rem); }
.workflow-demo__label { margin: 0 0 .85rem; font-size: .85rem; font-weight: 600; color: var(--muted-foreground); }
.workflow-tabs { display: flex; gap: .3rem; padding: .3rem; border: 1px solid var(--border); border-radius: .7rem; }
.workflow-tabs button { flex: 1; cursor: pointer; font: inherit; font-size: .84rem; padding: .5rem .4rem; border: 0; border-radius: .45rem; color: var(--foreground); background: transparent; }
.workflow-tabs button[aria-pressed="true"] { background: var(--color-navy); color: white; }
.workflow-caption { min-height: 3.1em; margin: 1rem 0 .7rem; font-weight: 600; line-height: 1.5; }
.workflow-steps { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; list-style: none; padding: 0; margin: 0; }
.workflow-steps li { position: relative; min-height: 5.7rem; border: 1px solid var(--border); border-radius: .5rem; padding: .6rem .75rem; background: var(--secondary); line-height: 1.4; font-size: .91rem; }
.workflow-steps li > span { display: block; margin-bottom: .3rem; font-size: .7rem; color: var(--muted-foreground); }
.workflow-steps .workflow-human { border-color: var(--color-yellow); box-shadow: inset 3px 0 var(--color-yellow); }
.workflow-footnote { min-height: 3em; margin: .8rem 0; font-size: .82rem; line-height: 1.5; }
.workflow-demo__disclaimer { font-size: .72rem; color: var(--muted-foreground); margin: 1rem 0 0; }
.care-section { background: var(--secondary); }
.care-layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 7vw, 6rem); }
.care-intro h2 { margin: 0 0 1.5rem; color: var(--color-navy); font-size: clamp(2rem, 3.8vw, 3.25rem); line-height: 1.12; letter-spacing: -.025em; }
.care-intro > p:not(.offer-label) { max-width: 44ch; }
.care-responsibility { padding-left: 1rem; border-left: 3px solid var(--color-yellow); font-size: .94rem; margin: 1.5rem 0; }
.care-services { border-top: 1px solid var(--border); align-self: center; }
.care-service { border-bottom: 1px solid var(--border); scroll-margin-top: 8rem; }
.care-service > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.7rem 0; cursor: pointer; }
.care-service > summary::-webkit-details-marker { display: none; }
.care-service summary strong { display: block; font: 600 clamp(1.3rem, 2.2vw, 1.75rem)/1.2 'Source Serif 4', Georgia, serif; color: var(--color-navy); }
.care-service summary span span { display: block; margin-top: .5rem; color: var(--muted-foreground); font-size: .95rem; }
.care-plus { display: grid; place-items: center; flex-shrink: 0; width: 2.2rem; height: 2.2rem; border: 1px solid var(--border); border-radius: 50%; font-size: 1.3rem; }
.care-service[open] .care-plus { transform: rotate(45deg); }
.care-service__content { padding: 0 2rem 1.4rem 0; font-size: .95rem; }
.care-service__content p { margin: 0 0 .7rem; }
.footer-services { display: flex; flex-direction: column; align-items: flex-start; gap: .35rem; font-size: .85rem; }
.footer-services p { font-weight: 600; margin: 0 0 .3rem; }
.footer-services a { min-height: 1.6rem; text-decoration: none; }
.footer-services a:hover { text-decoration: underline; }
html[data-theme="dark"] .offer-label { color: #afc2df; }
html[data-theme="dark"] .care-intro h2, html[data-theme="dark"] .care-service summary strong { color: var(--foreground); }
html[data-theme="dark"] .workflow-tabs button[aria-pressed="true"] { color: var(--color-navy); background: var(--color-yellow); }
@media (max-width: 1100px) {
  .site-nav { max-height: calc(100dvh - 6.25rem); overflow-y: auto; overscroll-behavior: contain; }
  .site-nav[data-open="true"] { max-height: calc(100dvh - 12.5rem - env(safe-area-inset-bottom)); }
  .solutions-menu > summary { padding: .75rem .85rem; font-size: 1rem; min-height: 3rem; justify-content: space-between; }
  .solutions-menu__panel { position: static; width: 100%; grid-template-columns: 1fr 1fr; box-shadow: none; padding: .4rem; margin: .2rem 0 .6rem; background: var(--background); }
  .solutions-menu__group { padding: .35rem; }
  .solutions-menu__label { margin: .3rem .45rem .65rem; }
  .site-nav .solutions-menu__panel a { padding: .6rem .45rem; }
  .solutions-menu__note { display: none; }
}
@media (max-width: 920px) {
  .hero__copy { width: min(100%, 42rem); }
  .ai-offer { grid-template-columns: 1fr; margin-top: 1.25rem; gap: 2rem; }
  .ai-offer__copy > p:not(.offer-label) { max-width: 60ch; }
  .ai-offer h3 { max-width: 24ch; }
  .workflow-demo { padding-left: 0; padding-top: 1.5rem; border-left: 0; border-top: 1px solid var(--border); }
  .workflow-steps { grid-template-columns: repeat(4, 1fr); }
  .workflow-caption, .workflow-footnote { min-height: 0; }
  .care-layout { grid-template-columns: 1fr; gap: 2rem; }
}
@media (max-width: 560px) {
  .solutions-menu__panel { grid-template-columns: 1fr; gap: 0; }
  .solutions-menu__label { font-size: .73rem; margin-bottom: .2rem; }
  .site-nav .solutions-menu__panel a { min-height: 2.5rem; padding: .5rem .65rem; font-size: .9rem; }
  .solutions-menu__panel a small { display: none; }
  .solutions-menu__group--care { margin-top: .5rem; padding-block: .7rem; }
  .ai-offer { padding: 1.5rem; }
  .ai-offer::before { inset-block: 1.5rem; }
  .ai-offer h3 { font-size: 1.95rem; }
  .ai-offer__copy > p:not(.offer-label) { font-size: .98rem; }
  .workflow-steps { grid-template-columns: 1fr 1fr; }
  .care-service summary { padding-block: 1.35rem; }
  .care-service summary strong { font-size: 1.4rem; }
  .care-intro h2 { font-size: 2.2rem; }
}

.mobile-booking { display: none; }
@media (max-width: 1100px) {
  .mobile-booking {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: .6rem;
    position: fixed;
    inset: auto 0 0;
    z-index: 90;
    padding: .75rem max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));
    background: var(--background);
    border-top: 1px solid var(--border);
    box-shadow: 0 -.5rem 2rem #00000012;
    opacity: 0;
    visibility: hidden;
    transform: translateY(calc(100% + 1rem));
    pointer-events: none;
    transition: transform 420ms cubic-bezier(.22, 1, .36, 1), opacity 280ms ease, visibility 0s linear 420ms;
  }
  .mobile-booking[data-visible="true"] {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
    transition-delay: 0s;
  }
  .mobile-booking__button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 3.75rem;
    padding: .7rem .6rem;
    border: 1px solid transparent;
    border-radius: .85rem;
    color: var(--color-navy);
    background: var(--color-yellow);
    text-decoration: none;
    text-align: center;
    font: 600 .92rem/1.35 'IBM Plex Sans', sans-serif;
  }
  .mobile-booking__button--project { background: transparent; color: var(--foreground); border-color: currentColor; }
  .mobile-booking__button:focus-visible { outline: 3px solid var(--foreground); outline-offset: 3px; }
  html { scroll-padding-bottom: 6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-booking { transition: none; transform: none; }
}

.mobile-booking__button:only-child { grid-column: 1 / -1; }

/* Keep the last footer links above the persistent mobile contact bar. */
@media (max-width: 1100px) {
  .site-footer { padding-bottom: calc(6.5rem + env(safe-area-inset-bottom)); }
}

/* Let the expanded AI heading use the available column width. */
.ai-section h2 { max-width: none; }
