/* caseo-overrides.css — layer di patch (build-level) v1 2026-09-28 */

/* 1) Titoli hero: via la riga "glow" duplicata (es. EQUIPMENT & SOLUTIONS ×2, CONSULTING & SOLUTIONS) */
h1 > span.text-primary-glow.scale-75 { display: none !important; }

/* 2) Tipografia: meno "muri" — respiro per i paragrafi, niente testo giustificato su mobile */
p.leading-relaxed { line-height: 1.72 !important; }
@media (max-width: 767px) {
  p.text-justify { text-align: left !important; }
}

/* 3) Calcolatore collassabile */
.caseo-collapsed { display: none !important; }
button.caseo-toggle {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .8rem;
  font-weight: 600;
  padding: .35rem .85rem;
  border-radius: 9999px;
  border: 1px solid rgba(0, 0, 0, .18);
  background: transparent;
  color: inherit;
  cursor: pointer;
  transition: background .2s ease;
}
button.caseo-toggle:hover { background: rgba(0, 0, 0, .06); }
button.caseo-toggle svg { transition: transform .25s ease; }
button.caseo-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

/* 4) Nota di spiegazione SDG */
.caseo-sdg-note {
  font-size: .8rem;
  line-height: 1.6;
  opacity: .75;
  margin-top: .5rem;
}

/* 5) Sezioni/valori rimossi su richiesta cliente */
.caseo-hidden { display: none !important; }

/* ---- extra: sito statico ---- */
.caseo-lang-menu {
  position: absolute; top: 110%; right: 0; background: #fff; border: 1px solid rgba(0,0,0,.1);
  border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.12); padding: 6px; min-width: 130px; z-index: 200;
}
.caseo-lang-item { display: block; padding: 8px 12px; border-radius: 8px; font-size: .9rem; color: #111; text-decoration: none; }
.caseo-lang-item:hover { background: rgba(0,0,0,.06); }
.caseo-lang-item.active { font-weight: 700; }
.caseo-mobile { padding-left: 1rem; padding-right: 1rem; }
.caseo-mobile a { text-decoration: none; }
.caseo-lightbox {
  position: fixed; inset: 0; background: rgba(0,0,0,.88); z-index: 999; display: flex; align-items: center; justify-content: center; cursor: zoom-out; padding: 2vmax;
}
.caseo-lightbox img { max-width: 100%; max-height: 100%; border-radius: 8px; }
.caseo-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 999; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.caseo-modal { background: #fff; border-radius: 14px; max-width: 640px; width: 100%; max-height: 85vh; overflow: auto; padding: 24px; }
.caseo-modal h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: 14px; }
.caseo-sdg-list { display: grid; gap: 10px; }
.caseo-sdg-row { display: flex; gap: 12px; align-items: flex-start; font-size: .9rem; }
.caseo-sdg-dot { min-width: 30px; height: 30px; border-radius: 999px; color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; font-size: .8rem; }
.caseo-modal-close { margin-top: 18px; padding: 8px 18px; border-radius: 999px; border: 1px solid rgba(0,0,0,.15); background: transparent; cursor: pointer; font-weight: 600; }

/* ---- transizioni fluide (stile invariato) ---- */
@keyframes caseoFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes caseoSlideDown { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@keyframes caseoPopIn { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }

.caseo-lang-menu, .caseo-mobile { animation: caseoSlideDown .2s ease-out; }
.caseo-lightbox, .caseo-modal-overlay { animation: caseoFadeIn .2s ease-out; }
.caseo-lightbox img, .caseo-modal { animation: caseoPopIn .22s ease-out; }

.caseo-acc-panel { overflow: hidden; transition: max-height .32s cubic-bezier(.4,0,.2,1); }

.caseo-calc-body { overflow: hidden; transition: max-height .35s cubic-bezier(.4,0,.2,1), opacity .3s ease; max-height: 5000px; opacity: 1; }
.caseo-calc-body.caseo-calc-closed { max-height: 0 !important; opacity: 0; }

/* ---- hero gradient un po' più scuro (solo dove non c'è immagine) ---- */
:root { --gradient-hero: linear-gradient(135deg, hsl(220 26% 14% / .66), hsl(197 92% 55% / .32)); }

/* ---- calcolatore: la barra è UN MEGA PULSANTONE (full-width, col titolo dentro) ---- */
.caseo-calc-bar {
  cursor: pointer;
  user-select: none;
  /* full-bleed: annulla il padding della card e ci mette il proprio */
  margin: -1.5rem -1.5rem 0 !important;
  padding: 1.35rem 1.5rem;
  border-radius: 8px 8px 0 0;
  border-bottom: 1px solid transparent;
  transition: background .18s ease, border-color .18s ease;
}
@media (min-width: 768px) {
  .caseo-calc-bar { margin: -2rem -2rem 0 !important; padding: 1.6rem 2rem; }
}
.caseo-calc-bar:hover { background: rgba(0, 0, 0, .045); }
.caseo-calc-bar:active { background: rgba(0, 0, 0, .075); }
.caseo-calc-bar:focus-visible { outline: 2px solid hsl(197 92% 55% / .6); outline-offset: -2px; }
.caseo-calc-bar[aria-expanded="true"] { border-bottom-color: rgba(0, 0, 0, .07); }
.caseo-calc-bar .caseo-chev { margin-left: auto; flex: none; transition: transform .3s cubic-bezier(.4,0,.2,1); opacity: .55; }
.caseo-calc-bar:hover .caseo-chev { opacity: .9; }
.caseo-calc-bar[aria-expanded="true"] .caseo-chev { transform: rotate(180deg); }

/* spazio sopra il contenuto quando è aperto (margine interno, non altezza) */
.caseo-calc-body > *:first-child { margin-top: 1.5rem; }

/* ---- transizioni fluide (stile invariato) ---- */
@keyframes caseoFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes caseoSlideDown { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@keyframes caseoPopIn { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }

.caseo-lang-menu, .caseo-mobile { animation: caseoSlideDown .2s ease-out; }
.caseo-lightbox, .caseo-modal-overlay { animation: caseoFadeIn .2s ease-out; }
.caseo-lightbox img, .caseo-modal { animation: caseoPopIn .22s ease-out; }

.caseo-acc-panel { overflow: hidden; transition: max-height .32s cubic-bezier(.4,0,.2,1); }

.caseo-calc-body { overflow: hidden; transition: max-height .35s cubic-bezier(.4,0,.2,1), opacity .3s ease; max-height: 5000px; opacity: 1; }
.caseo-calc-body.caseo-calc-closed { max-height: 0 !important; opacity: 0; }

/* ---- hero gradient un po' più scuro (solo dove non c'è immagine) ---- */
:root { --gradient-hero: linear-gradient(135deg, hsl(220 26% 14% / .66), hsl(197 92% 55% / .32)); }

/* ---- calcolatore: barra cliccabile (via il bottoncino laterale) ---- */
.caseo-calc-bar { cursor: pointer; border-radius: 12px; transition: background .2s ease; }
.caseo-calc-bar:hover { background: rgba(0, 0, 0, .035); }
.caseo-calc-bar:focus-visible { outline: 2px solid hsl(197 92% 55% / .6); outline-offset: 3px; }
.caseo-calc-bar .caseo-chev { margin-left: auto; flex: none; transition: transform .3s cubic-bezier(.4,0,.2,1); opacity: .6; }
.caseo-calc-bar[aria-expanded="true"] .caseo-chev { transform: rotate(180deg); }


/* ---- team: layout equilibrato con 4 membri ---- */
@media (min-width: 768px) { .caseo-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .caseo-team-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Delivery requests, part 2: existing type, colors and cards retained. */
.caseo-consultancy-grid { display:grid; gap:1.5rem; align-items:start; }
@media(min-width:1024px){.caseo-consultancy-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.caseo-service-heading { padding:1.5rem 1.5rem 0; }
.caseo-service-content > div { padding:1.5rem; }
.caseo-service-content .mb-8 { margin-bottom:1.25rem; }
.caseo-service-content h3 { font-size:1rem; line-height:1.6; margin-bottom:0; }
.caseo-service-list { list-style:disc; padding-left:1.2rem; color:hsl(var(--muted-foreground)); }
.caseo-service-list li + li { margin-top:.65rem; }
.caseo-paragraphs > p + p { margin-top:1rem; }
.caseo-sdg-heading { flex-wrap:wrap; }
.caseo-sdg-heading h3 { flex-basis:100%; }
.caseo-equipment-brighter { filter:brightness(1.18); }
.caseo-portrait-frame { position:relative; }
.caseo-portrait-frame img.caseo-rotate-photo { position:absolute; left:50%; top:50%; width:56.25%; height:177.7778%; max-width:none; object-fit:contain; transform:translate(-50%,-50%) rotate(90deg); }
.caseo-lightbox img.caseo-rotate-photo { transform:rotate(90deg); max-width:90vh; max-height:90vw; }

/* Client refinement: clear service labels, audience panel, readable team reasons. */
.caseo-provide-label { margin:1.1rem 0 .65rem; color:hsl(var(--primary)); font-size:.9rem; font-weight:600; }
.caseo-audience { margin-top:3rem; padding:2rem; border:1px solid hsl(var(--primary) / .22); border-left:4px solid hsl(var(--primary)); border-radius:1rem; background:linear-gradient(125deg,hsl(var(--primary) / .07),hsl(var(--background))); box-shadow:0 8px 28px hsl(var(--foreground) / .04); }
.caseo-audience-title { margin:0 0 1.5rem; color:hsl(var(--foreground)); font-size:1.75rem; font-weight:700; line-height:1.25; }
.caseo-audience-list { display:grid; gap:.85rem 2rem; margin:0; padding:0; list-style:none; }
.caseo-audience-list li { display:flex; align-items:baseline; gap:.8rem; font-size:1rem; color:hsl(var(--foreground) / .85); line-height:1.65; }
.caseo-audience-list li::before { content:""; width:.45rem; height:.45rem; flex:0 0 .45rem; border-radius:50%; background:hsl(var(--primary)); }
.caseo-team-reasons-wrap { max-width:72rem; }
.caseo-team-reasons { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
.caseo-team-reason-card { display:flex; align-items:flex-start; gap:1.25rem; padding:1.75rem; background:hsl(var(--card)); border:1px solid hsl(var(--border)); border-radius:1rem; box-shadow:0 6px 24px hsl(var(--foreground) / .045); }
.caseo-reason-icon { display:flex; align-items:center; justify-content:center; flex:0 0 3rem; width:3rem; height:3rem; border-radius:.85rem; background:hsl(var(--primary) / .1); color:hsl(var(--primary)); }
.caseo-reason-icon svg { width:1.65rem; height:1.65rem; }
.caseo-reason-content h3 { margin:0 0 .65rem; color:hsl(var(--foreground)); font-size:1.25rem; line-height:1.35; font-weight:700; }
.caseo-reason-content p { margin:0; color:hsl(var(--muted-foreground)); font-size:1rem; line-height:1.75; }
@media(min-width:768px){ .caseo-audience { padding:2.25rem 2.5rem; } .caseo-audience-list,.caseo-team-reasons { grid-template-columns:repeat(2,minmax(0,1fr)); } .caseo-audience-list li:last-child { grid-column:1/-1; } }
@media(max-width:479px){ .caseo-team-reason-card { padding:1.35rem; gap:1rem; } .caseo-reason-icon { flex-basis:2.5rem; width:2.5rem; height:2.5rem; } }
.caseo-service-heading h3 { color:hsl(var(--primary)); }
#services [data-caseo-service-gradient] {
  background-image: none;
  color: hsl(var(--accent));
}
[data-caseo-lab-intro] { margin-bottom: 4rem; }
.caseo-project-copy p,
.caseo-project-copy li,
.caseo-project-copy .grid span {
  font-size: 1rem;
  line-height: 1.75;
}

/* Match the desktop Consultancy header; mobile/tablet retain their existing layout. */
@media (min-width: 1024px) {
  .caseo-desktop-hero {
    height: 32.25rem;
    min-height: 32.25rem;
  }
  .caseo-project-hero > .container {
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  .caseo-project-hero .aspect-video {
    aspect-ratio: auto;
    flex: 1;
    min-height: 0;
    margin-bottom: 0;
  }
}

/* Client request 2026-11-02: solid orange text and original Home brand mark. */
.caseo-text-orange {
  background-image: none;
  color: hsl(var(--accent));
  -webkit-text-fill-color: currentColor;
}
.caseo-home-logo-hero { padding-block: 6rem; }
.caseo-home-hero-logo {
  display: block;
  width: clamp(12rem, 25vw, 19rem);
  max-width: 75%;
  height: auto;
  margin: 0 auto clamp(1rem, 2vw, 1.5rem);
  object-fit: contain;
}

/* Client request 2026-11-02: the complete Home headline below the logo is white. */
.caseo-home-logo-hero h1 > .caseo-text-orange {
  color: #fff;
}

/* Navbar: one fixed surface crossfades; no animated geometry, border or blur. */
nav.fixed.caseo-nav {
  isolation: isolate;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  transition: none;
}
nav.caseo-nav::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: hsl(var(--background));
  box-shadow: 0 3px 12px rgb(0 0 0 / .08);
  opacity: 0;
  pointer-events: none;
}
nav.caseo-nav[data-caseo-surface="light"]::before { opacity: 1; }
nav.caseo-nav[data-caseo-ready="1"]::before { transition: opacity .24s ease-in-out; }
nav.caseo-nav .caseo-nav-inner { height: 5rem; transition: none; }
nav.caseo-nav .caseo-nav-logo { height: 2.5rem; transition: none; }
nav.caseo-nav a, nav.caseo-nav button { transition: none; }
nav.caseo-nav[data-caseo-ready="1"] a, nav.caseo-nav[data-caseo-ready="1"] button {
  transition-property: color, background-color, opacity;
  transition-duration: .24s;
  transition-timing-function: ease-in-out;
}
nav.caseo-nav button[aria-haspopup="menu"]:hover,
nav.caseo-nav button[aria-haspopup="menu"][aria-expanded="true"] {
  background-color: hsl(var(--muted));
  color: hsl(var(--foreground));
}
nav.caseo-nav .caseo-mobile {
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
}
@media (prefers-reduced-motion: reduce) {
  nav.caseo-nav[data-caseo-ready="1"]::before,
  nav.caseo-nav[data-caseo-ready="1"] a, nav.caseo-nav[data-caseo-ready="1"] button { transition: none; }
}

/* Prevent page-edge rubber banding; keep the exposed browser canvas dark. */
html, body {
  overscroll-behavior-y: none;
  background-color: hsl(var(--foreground));
}
#root {
  min-height: 100vh;
  background-color: hsl(var(--background));
}

/* Selected navigation item: short, discreet orange underline. */
nav.caseo-nav a.caseo-nav-active { position: relative; }
nav.caseo-nav a.caseo-nav-active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  width: 45%;
  max-width: 28px;
  height: 1px;
  border-radius: 1px;
  background-color: hsl(var(--accent));
  opacity: .8;
  transform: translateX(-50%);
  pointer-events: none;
}
nav.caseo-nav .caseo-mobile a.caseo-nav-active { width: fit-content; }
nav.caseo-nav .caseo-mobile a.caseo-nav-active::after { bottom: 4px; }
