/* Servizi Tecnici: hero, timeline, griglia, settori e modal riutilizzabile. */
.technical-body { background: #f8faf9; }
.technical-body .nav-dropdown[data-submenu-label="Servizi"]>.nav-dropdown-trigger>a { color: var(--waves-green); }
.technical-body .nav-dropdown[data-submenu-label="Servizi"]>.nav-dropdown-trigger>a::after { inset: auto 0 0; }
.technical-page { overflow: hidden; color: #111; background: #f8faf9; }
.technical-eyebrow { margin: 0 0 22px; color: var(--waves-green); font-size: 12px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.technical-section { padding: 105px 0; }
.technical-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 56px; padding: 0 22px; border: 1px solid var(--waves-green); border-radius: 15px; color: var(--waves-green); background: rgba(255,255,255,.70); font-size: 13px; font-weight: 700; transition: color .3s ease-out,background .3s ease-out,box-shadow .3s ease-out,transform .3s ease-out; }
.technical-button span { transition: transform .3s ease-out; }
.technical-button:hover { color: #fff; background: var(--waves-green); box-shadow: 0 14px 34px rgba(5,148,68,.17); transform: translateY(-2px); }
.technical-button:hover span { transform: translateX(4px); }
.technical-button-primary { color: #fff; background: var(--waves-green); }
.technical-button-primary:hover { background: #047f3a; }
.technical-button-link { border-color: transparent; background: transparent; }
.technical-button-link:hover { color: var(--waves-green); background: transparent; box-shadow: none; }

.technical-hero { position: relative; min-height: 100vh; min-height: 100svh; padding: 104px 0 30px; overflow: hidden; background: radial-gradient(circle at 84% 70%,rgba(5,148,68,.08),transparent 28%),linear-gradient(135deg,#fff,#f7faf9); }
.technical-hero::before { display:none; }
.technical-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0,44fr) minmax(0,56fr); align-items: center; min-height: calc(100svh - 134px); }
.technical-hero-copy { position: relative; z-index: 2; max-width: 650px; }
.technical-hero h1 { margin: 0; font-size: clamp(61px,5.1vw,76px); font-weight: 720; line-height: .99; letter-spacing: -.055em; }
.technical-hero h1 span { color: var(--waves-green); }
.technical-hero-copy>p:not(.technical-eyebrow) { max-width: 570px; margin: 30px 0 0; color: rgba(17,17,17,.66); font-size: 18px; line-height: 1.62; }
.technical-actions { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; margin-top: 38px; }
.technical-video-link { display: inline-flex; align-items: center; gap: 12px; min-height: 56px; color: #222; font-size: 13px; font-weight: 650; }
.technical-play { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid rgba(5,148,68,.35); border-radius: 50%; color: var(--waves-green); background: rgba(255,255,255,.72); box-shadow: 0 12px 30px rgba(0,0,0,.055); font-size: 11px; transition: color .3s ease-out,background .3s ease-out,transform .3s ease-out; }
.technical-video-link:hover .technical-play { color: #fff; background: var(--waves-green); transform: scale(1.05); }
.technical-hero-visual { position:absolute; z-index:0; inset:0; min-height:0; pointer-events:none; }
.technical-hero-visual img { width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; }
@keyframes technical-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

.technical-services { background: #fff; }
.technical-section-head { display: flex; justify-content: space-between; gap: 42px; align-items: end; margin-bottom: 55px; }
.technical-section-head>div { max-width: 900px; }
.technical-section-head .technical-eyebrow { margin-bottom: 16px; }
.technical-section-head h2 { margin: 0; font-size: clamp(40px,3.5vw,54px); line-height: 1.06; letter-spacing: -.045em; }
.technical-section-head-centered { justify-content: center; text-align: center; }

.technical-timeline { position: relative; display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; margin: 0 0 42px; padding: 22px; border: 1px solid rgba(5,148,68,.12); border-radius: 28px; background: rgba(255,255,255,.62); box-shadow: 0 20px 60px rgba(17,17,17,.055),inset 0 1px 0 rgba(255,255,255,.90); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.technical-timeline::before { position: absolute; top: 59px; right: 10%; left: 10%; height: 1px; background: linear-gradient(90deg,rgba(5,148,68,.55),rgba(17,17,17,.12) 38%,rgba(17,17,17,.08)); content: ""; }
.technical-step { position: relative; z-index: 1; min-height: 128px; padding: 12px; border: 1px solid transparent; border-radius: 20px; background: rgba(255,255,255,.42); text-align: center; cursor: default; transition: border-color .4s cubic-bezier(.22,.61,.36,1),background .4s cubic-bezier(.22,.61,.36,1),box-shadow .4s cubic-bezier(.22,.61,.36,1),transform .4s cubic-bezier(.22,.61,.36,1); }
.technical-step-icon { display: grid; place-items: center; width: 74px; height: 74px; margin: 0 auto 14px; border: 1px solid rgba(17,17,17,.07); border-radius: 20px; color: rgba(17,17,17,.38); background: rgba(255,255,255,.94); box-shadow: 0 14px 34px rgba(0,0,0,.06); }
.technical-step-icon svg { width: 37px; height: 37px; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.technical-step span { color: rgba(17,17,17,.42); font-size: 11px; font-weight: 700; }
.technical-step h3 { margin: 5px 0 0; color: rgba(17,17,17,.58); font-size: 14px; }
.technical-step.is-active .technical-step-icon,.technical-step.is-active span,.technical-step.is-active h3 { color: var(--waves-green); }
.technical-step.is-active { border-color: rgba(5,148,68,.14); background: rgba(5,148,68,.045); }
.technical-step.is-active h3::after { display: block; width: 90px; height: 2px; margin: 12px auto 0; background: var(--waves-green); content: ""; }

.technical-services-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; scroll-margin-top: 110px; }
.technical-services-stage { position: relative; }
.technical-service-card { position: relative; display: block; min-height: 285px; padding: 30px; overflow: hidden; border: 1px solid rgba(5,148,68,.12); border-radius: 26px; color: #111; background: linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.56)); box-shadow: 0 20px 70px rgba(17,17,17,.06),inset 0 1px 0 rgba(255,255,255,.85); backdrop-filter: blur(22px) saturate(145%); -webkit-backdrop-filter: blur(22px) saturate(145%); cursor: pointer; transition: border-color .5s cubic-bezier(.22,.61,.36,1),box-shadow .5s cubic-bezier(.22,.61,.36,1),transform .5s cubic-bezier(.22,.61,.36,1); }
.technical-service-card::after { position: absolute; right: 13%; bottom: 0; left: 13%; height: 3px; background: linear-gradient(90deg,transparent,var(--waves-green),transparent); content: ""; opacity: .35; transition: right .5s cubic-bezier(.22,.61,.36,1),left .5s cubic-bezier(.22,.61,.36,1),opacity .5s ease-out,box-shadow .5s ease-out; }
.technical-card-icon { display: grid; place-items: center; width: 62px; height: 62px; border: 1px solid rgba(5,148,68,.12); border-radius: 17px; color: var(--waves-green); background: rgba(255,255,255,.65); box-shadow: 0 12px 30px rgba(5,148,68,.08); }
.technical-card-icon svg { width: 34px; height: 34px; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.technical-service-card h3 { margin: 30px 0 12px; font-size: 23px; line-height: 1.16; letter-spacing: -.025em; }
.technical-service-card p { max-width: 42ch; margin: 0; color: rgba(17,17,17,.62); font-size: 15px; line-height: 1.58; }
.technical-card-hit { position: absolute; z-index: 4; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; border-radius: inherit; background: transparent; cursor: pointer; }
.technical-service-card:focus-within { border-color: rgba(5,148,68,.35); outline: 3px solid rgba(5,148,68,.20); outline-offset: 4px; }
.technical-training-card { border-color: rgba(255,122,38,.26); background: linear-gradient(135deg,rgba(255,150,70,.18),rgba(255,98,0,.10),rgba(255,255,255,.62)); }
.technical-training-card::after { background: linear-gradient(90deg,transparent,rgba(255,122,38,.65),transparent); }
.technical-training-card .technical-card-icon { border-color: rgba(255,122,38,.28); color: #e96612; }
.technical-modal-trigger:focus-visible { outline: none; }
.technical-micro { display: flex; justify-content: center; align-items: center; gap: 18px; max-width: 900px; margin: 38px auto 0; padding: 22px 26px; border: 1px solid rgba(5,148,68,.10); border-radius: 20px; color: rgba(17,17,17,.65); background: rgba(255,255,255,.62); box-shadow: 0 14px 42px rgba(17,17,17,.04); }
.technical-micro i { width: 8px; height: 8px; border-radius: 50%; background: var(--waves-green); box-shadow: 0 0 0 6px rgba(5,148,68,.08); }
.technical-micro div { flex: 1; }
.technical-micro strong { display: block; color: #111; font-size: 16px; }
.technical-micro p { margin: 5px 0 0; font-size: 13px; line-height: 1.45; }
.technical-micro .technical-button { flex: 0 0 auto; min-height: 48px; }

.technical-sectors { background: #f8faf9; }
.technical-sector-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 16px; }
.technical-sector-card { position: relative; padding-bottom: 20px; overflow: hidden; border: 1px solid rgba(17,17,17,.07); border-radius: 18px; background: rgba(255,255,255,.72); box-shadow: 0 18px 50px rgba(0,0,0,.045); text-align: center; transition: box-shadow .5s ease-out,transform .5s cubic-bezier(.22,.61,.36,1); }
.technical-sector-image { position: relative; height: 185px; overflow: hidden; }
.technical-sector-image::after { position: absolute; inset: 35% 0 0; background: linear-gradient(transparent,rgba(255,255,255,.96)); content: ""; }
.technical-sector-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.22,.61,.36,1); }
.technical-sector-icon { position: relative; z-index: 2; display: grid; place-items: center; width: 54px; height: 54px; margin: -28px auto 8px; border: 1px solid rgba(5,148,68,.12); border-radius: 16px; color: var(--waves-green); background: rgba(255,255,255,.88); box-shadow: 0 12px 28px rgba(5,148,68,.08); backdrop-filter: blur(12px); }
.technical-sector-icon svg { width: 29px; height: 29px; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.technical-sector-card h3 { margin: 0; font-size: 15px; }

.technical-final { padding-top: 60px; background: #f8faf9; }
.technical-final-card { display: grid; grid-template-columns: minmax(0,46fr) minmax(0,54fr); min-height: 520px; overflow: hidden; border: 1px solid rgba(17,17,17,.07); border-radius: 28px; background: rgba(255,255,255,.76); box-shadow: 0 30px 80px rgba(0,0,0,.055); }
.technical-final-copy { padding: 55px; }
.technical-final-copy h2 { margin: 0; font-size: clamp(43px,4vw,58px); line-height: 1.04; letter-spacing: -.05em; }
.technical-final-copy h2 span { color: var(--waves-green); }
.technical-final-copy ul { display: grid; gap: 12px; margin: 32px 0 0; padding: 0; list-style: none; }
.technical-final-copy li { position: relative; padding-left: 25px; color: rgba(17,17,17,.68); font-size: 15px; }
.technical-final-copy li::before { position: absolute; top: .15em; left: 0; display: grid; place-items: center; width: 16px; height: 16px; border: 1px solid var(--waves-green); border-radius: 50%; color: var(--waves-green); content: "✓"; font-size: 10px; }
.technical-final-copy .technical-actions { margin-top: 38px; }
.technical-final-visual { position: relative; overflow: hidden; }
.technical-final-visual::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,#fff 0,transparent 28%); content: ""; }
.technical-final-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; filter: brightness(1.08) contrast(.96); mix-blend-mode: multiply; }

@media (min-width:1024px) {
  .technical-services-stage { box-sizing: border-box; display: flex; align-items: stretch; height: 100vh; height: 100svh; padding: 110px 0 28px; }
  .technical-services-stage .technical-services-grid { flex: 1 1 auto; grid-template-columns: repeat(3,minmax(0,1fr)); grid-template-rows: repeat(3,minmax(0,1fr)); width: 100%; min-height: 0; }
  .technical-services-stage .technical-service-card { min-height: 0; }
  .technical-step:hover,.technical-step:focus-visible { border-color: rgba(5,148,68,.20); background: rgba(5,148,68,.055); box-shadow: 0 14px 30px rgba(5,148,68,.07); outline: none; transform: translateY(-3px); }
  .technical-step:hover .technical-step-icon,.technical-step:focus-visible .technical-step-icon { color: var(--waves-green); }
  .technical-service-card:hover { border-color: rgba(5,148,68,.22); box-shadow: 0 28px 75px rgba(17,17,17,.08),0 14px 40px rgba(5,148,68,.05); transform: translateY(-6px); }
  .technical-service-card:hover::after { right: 0; left: 0; opacity: 1; box-shadow: 0 0 24px 7px rgba(5,148,68,.18); }
  .technical-training-card:hover { border-color: rgba(255,122,38,.40); box-shadow: 0 28px 75px rgba(17,17,17,.08),0 14px 42px rgba(255,122,38,.13); }
  .technical-training-card:hover::after { box-shadow: 0 0 26px 8px rgba(255,122,38,.26); }
  .technical-sector-card:hover { box-shadow: 0 25px 65px rgba(0,0,0,.07); transform: translateY(-4px); }
  .technical-sector-card:hover img { transform: scale(1.04); }
  body.motion-ready .technical-page .reveal-section { opacity: 0; transform: translateY(24px); }
  body.motion-ready .technical-page .reveal-card { opacity: 0; transform: translateY(20px); }
  body.motion-ready .technical-page .reveal-section.is-revealed,body.motion-ready .technical-page .reveal-card.is-revealed { opacity: 1; transform: none; transition: opacity .65s cubic-bezier(.22,.61,.36,1),transform .65s cubic-bezier(.22,.61,.36,1); transition-delay: var(--reveal-delay,0ms); }
  body.motion-ready .technical-page .technical-service-card.reveal-card.is-revealed:hover { transform: translateY(-6px); }
  body.motion-ready .technical-page .technical-sector-card.reveal-card.is-revealed:hover { transform: translateY(-4px); }
}

@media (min-width:1024px) and (max-height:800px) {
  .technical-services-stage { padding: 96px 0 16px; }
  .technical-services-stage .technical-services-grid { gap: 12px; }
  .technical-services-stage .technical-service-card { padding: 16px 18px; border-radius: 20px; }
  .technical-services-stage .technical-card-icon { width: 42px; height: 42px; border-radius: 13px; }
  .technical-services-stage .technical-card-icon svg { width: 24px; height: 24px; }
  .technical-services-stage .technical-service-card h3 { margin: 12px 0 6px; font-size: 18px; line-height: 1.1; }
  .technical-services-stage .technical-service-card p { font-size: 12px; line-height: 1.35; }
}

.technical-home-cta { padding: 60px 0 100px; background: #f8faf9; }

body.technical-modal-open { overflow: hidden; }
.technical-modal-layer { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 14px; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .4s cubic-bezier(.22,.61,.36,1),visibility 0s linear .4s; }
.technical-modal-layer.is-open { opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
.technical-modal-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(16,20,18,.20); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.technical-modal { position: relative; z-index: 1; display: flex; flex-direction: column; width: min(1280px,calc(100% - 28px)); height: min(800px,calc(100vh - 28px)); overflow: hidden; border: 1px solid rgba(255,255,255,.65); border-radius: 30px; background: rgba(255,255,255,.82); box-shadow: 0 25px 70px rgba(0,0,0,.08),inset 0 1px 0 rgba(255,255,255,.9); backdrop-filter: blur(28px) saturate(140%); -webkit-backdrop-filter: blur(28px) saturate(140%); opacity: 0; transform: translateY(18px) scale(.985); transition: opacity .35s cubic-bezier(.22,.61,.36,1),transform .35s cubic-bezier(.22,.61,.36,1); }
.technical-modal-layer.is-open .technical-modal { opacity: 1; transform: translateY(0) scale(1); }
.technical-modal-header { flex: 0 0 62px; display: grid; grid-template-columns: 22px 1fr; align-items: center; gap: 20px; padding: 8px 28px; border-bottom: 1px solid rgba(0,0,0,.05); background: rgba(255,255,255,.72); backdrop-filter: blur(18px); }
.technical-modal-close { width: 16px; height: 16px; padding: 0; border: 1px solid rgba(173,43,37,.28); border-radius: 50%; background: #ff5f57; box-shadow: inset 0 -1px 1px rgba(0,0,0,.10); cursor: pointer; }
.technical-modal-close:focus-visible { outline: 3px solid rgba(5,148,68,.34); outline-offset: 4px; }
.technical-modal-heading { min-width: 0; }
.technical-modal-breadcrumb { display: flex; align-items: center; gap: 10px; min-width: 0; font-size: 15px; line-height: 1.2; }
.technical-modal-breadcrumb span,.technical-modal-count { color: #7a7a7a; font-weight: 500; }
.technical-modal-breadcrumb i { color: #b6bbb8; font-style: normal; font-weight: 400; }
.technical-modal-breadcrumb strong { overflow: hidden; color: #111; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.technical-modal-count { display: block; margin-top: 5px; font-size: 13px; }
.technical-modal-content { flex: 1 1 auto; display: grid; grid-template-rows: minmax(210px,1fr) auto auto; gap: 12px; min-height: 0; padding: 12px 20px; overflow: hidden; transition: opacity .18s ease-out,transform .18s ease-out; }
.technical-modal-content.is-leaving-next { opacity: 0; transform: translateX(-18px); }
.technical-modal-content.is-leaving-prev { opacity: 0; transform: translateX(18px); }
.technical-modal-content.is-entering-next { animation: technical-service-next .34s cubic-bezier(.22,.61,.36,1); }
.technical-modal-content.is-entering-prev { animation: technical-service-prev .34s cubic-bezier(.22,.61,.36,1); }
@keyframes technical-service-next { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: translateX(0); } }
@keyframes technical-service-prev { from { opacity: 0; transform: translateX(-18px); } to { opacity: 1; transform: translateX(0); } }
.technical-modal-hero { position: relative; display: grid; grid-template-columns: minmax(0,48%) minmax(0,52%); align-items: center; min-height: 0; overflow: hidden; border: 1px solid rgba(5,148,68,.055); border-radius: 24px; background: linear-gradient(118deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.96) 45%,rgba(248,253,250,.78) 100%); box-shadow: 0 12px 34px rgba(0,0,0,.025),inset 0 1px 0 rgba(255,255,255,.92); }
.technical-modal-hero::after { position: absolute; right: -7%; bottom: -34%; width: 53%; height: 78%; border-radius: 50%; background: repeating-radial-gradient(ellipse at center,transparent 0 15px,rgba(5,148,68,.09) 16px,transparent 17px 29px); content: ""; opacity: .36; pointer-events: none; transform: rotate(-6deg); }
.technical-modal-intro { position: relative; z-index: 2; padding: 24px 30px 24px 46px; }
.technical-modal-icon,.technical-detail-heading>span,.technical-bottom-icon { display: grid; place-items: center; color: var(--waves-green); border: 1px solid rgba(5,148,68,.12); background: rgba(255,255,255,.72); box-shadow: 0 14px 34px rgba(5,148,68,.08); }
.technical-modal-icon { width: 58px; height: 58px; margin-bottom: 14px; border-radius: 16px; }
.technical-modal-icon svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.technical-modal-intro h2 { max-width: 590px; margin: 0; font-size: clamp(35px,3.55vw,52px); font-weight: 700; line-height: .96; letter-spacing: -.046em; }
.technical-modal-intro h2 span { color: var(--waves-green); }
.technical-modal-intro h2::after { display: block; width: 36px; height: 2px; margin-top: 13px; background: var(--waves-green); content: ""; }
.technical-modal-intro p { max-width: 610px; margin: 14px 0 0; color: #4e4e4e; font-size: 13px; line-height: 1.7; }
.technical-modal-visual { position: relative; z-index: 1; align-self: stretch; min-height: 0; overflow: hidden; background: radial-gradient(circle at 54% 53%,rgba(5,148,68,.10),transparent 67%); }
.technical-modal-visual img { display: block; width: 100%; height: 100%; margin: 0; object-fit: contain; object-position: 50% 50%; filter: brightness(1.12) contrast(.93) saturate(.9); mix-blend-mode: multiply; }
.technical-modal[data-service="analisi-e-valutazione-dei-rischi"] .technical-modal-visual img { width: 100%; height: 100%; margin: 0; transform: scale(1.45); transform-origin: 50% 50%; }
.technical-modal-details { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 16px 8px; border: 1px solid rgba(5,148,68,.08); border-radius: 24px; background: rgba(255,255,255,.75); box-shadow: 0 14px 40px rgba(0,0,0,.025),inset 0 1px 0 rgba(255,255,255,.9); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.technical-modal-details article { padding: 0 20px; }
.technical-modal-details article+article { border-left: 1px solid rgba(17,17,17,.07); }
.technical-detail-heading { display: flex; align-items: center; gap: 10px; }
.technical-detail-heading>span { width: 36px; height: 36px; border-radius: 11px; font-size: 18px; }
.technical-detail-heading h3,.technical-modal-bottom h3 { margin: 0; color: #151816; font-size: 14px; font-weight: 700; }
.technical-modal-details ul { display: grid; gap: 6px; margin: 11px 0 0; padding: 0; list-style: none; }
.technical-modal-details li { position: relative; padding-left: 16px; color: #4e4e4e; font-size: 11px; line-height: 1.48; }
.technical-modal-details li::before { position: absolute; top: .62em; left: 3px; width: 5px; height: 5px; border-radius: 50%; background: #059444; content: ""; }
.technical-modal-bottom { display: grid; grid-template-columns: .9fr 1.1fr; gap: 0; overflow: hidden; border: 1px solid rgba(5,148,68,.11); border-radius: 22px; background: rgba(255,255,255,.76); box-shadow: 0 12px 36px rgba(0,0,0,.025),inset 0 1px 0 rgba(255,255,255,.9); backdrop-filter: blur(18px); }
.technical-importance,.technical-service-cta { display: flex; align-items: center; gap: 15px; padding: 15px 20px; border: 0; border-radius: 0; background: transparent; }
.technical-service-cta { border-left: 1px solid rgba(17,17,17,.065); }
.technical-bottom-icon { flex: 0 0 42px; width: 42px; height: 42px; border-radius: 13px; font-size: 20px; }
.technical-modal-bottom p { margin: 4px 0 0; color: #58605c; font-size: 11px; line-height: 1.4; }
.technical-service-cta { justify-content: space-between; }
.technical-service-cta .technical-button { flex: 0 0 auto; min-height: 42px; padding: 0 16px; font-size: 12px; white-space: nowrap; }
.technical-modal-footer { flex: 0 0 76px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; padding: 0 32px; border-top: 1px solid rgba(0,0,0,.06); background: #fff; }
.technical-modal-nav { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0; border: 0; color: #333; background: transparent; font: inherit; font-size: 17px; font-weight: 600; cursor: pointer; transition: color .35s cubic-bezier(.22,.61,.36,1); }
.technical-modal-next { justify-self: end; text-align: right; }
.technical-modal-nav:disabled { opacity: .28; cursor: default; }
.technical-modal-nav:not(:disabled):hover { color: var(--waves-green); }
.technical-modal-nav:focus-visible { border-radius: 8px; outline: 3px solid rgba(5,148,68,.22); outline-offset: 4px; }
.technical-modal-position { display: grid; justify-items: center; gap: 8px; color: #777; font-size: 13px; line-height: 1; }
.technical-modal-position>div { display: flex; gap: 8px; }
.technical-modal-position i { width: 7px; height: 7px; border-radius: 50%; background: #e1e3e2; }
.technical-modal-position i.is-active { background: var(--waves-green); transform: scale(1.18); }

@media (max-width:1100px) {
  .technical-hero-grid { grid-template-columns: 1fr 1fr; }
  .technical-hero h1 { font-size: clamp(50px,6.3vw,64px); }
  .technical-services-grid { grid-template-columns: repeat(2,1fr); }
  .technical-sector-grid { grid-template-columns: repeat(3,1fr); gap: 18px; }
  .technical-final-card { grid-template-columns: 1fr; }
  .technical-final-visual { min-height: 440px; }
}

@media (max-width:767px) {
  .technical-page * { animation: none!important; transition: none!important; }
  .technical-section { padding: 80px 0; }
  .technical-hero { min-height: auto; padding: 112px 0 58px; }
  .technical-hero-grid { grid-template-columns: 1fr; min-height: 0; }
  .technical-hero-copy { max-width: none; }
  .technical-hero h1 { font-size: clamp(38px,10.8vw,42px); line-height: 1.06; }
  .technical-hero-copy>p:not(.technical-eyebrow) { font-size: 17px; line-height: 1.58; }
  .technical-actions { display: grid; gap: 12px; }
  .technical-button,.technical-video-link { width: 100%; min-height: 56px; }
  .technical-video-link { justify-content: center; }
  .technical-hero-visual { position:relative; inset:auto; margin-top:34px; pointer-events:none; }
  .technical-hero-visual img { width:100%; height:auto; border-radius:20px; object-fit:contain; }
  .technical-section-head { display: block; margin-bottom: 38px; text-align: center; }
  .technical-section-head h2 { font-size: 36px; }
  .technical-section-head .technical-button { margin-top: 24px; }
  .technical-timeline { display: flex; gap: 12px; margin-inline: -20px; padding: 4px 20px 18px; overflow-x: auto; scroll-snap-type: x mandatory; }
  .technical-timeline::before { display: none; }
  .technical-step { flex: 0 0 128px; min-height: 145px; padding: 16px; border: 1px solid rgba(17,17,17,.06); border-radius: 18px; background: rgba(255,255,255,.8); scroll-snap-align: start; }
  .technical-step-icon { width: 56px; height: 56px; }
  .technical-step-icon svg { width: 29px; height: 29px; }
  .technical-step.is-active h3::after { width: 56px; margin-top: 8px; }
  .technical-services-grid { grid-template-columns: 1fr; gap: 18px; }
  .technical-services-stage { height: auto; padding: 0; }
  .technical-service-card { min-height: 265px; padding: 24px; border-radius: 20px; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .technical-service-card h3 { margin-top: 24px; font-size: 22px; }
  .technical-sector-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .technical-sector-card:last-child { grid-column: 1/-1; }
  .technical-sector-image { height: 135px; }
  .technical-sector-card { border-radius: 16px; }
  .technical-sector-card h3 { padding: 0 6px; font-size: 13px; }
  .technical-final { padding-top: 35px; }
  .technical-final-card { grid-template-columns: 1fr; min-height: 0; border-radius: 24px; }
  .technical-final-copy { padding: 32px 26px; }
  .technical-final-copy h2 { font-size: 39px; }
  .technical-final-copy .technical-actions { display: grid; }
  .technical-final-visual { min-height: 330px; }
  .technical-final-visual::before { background: linear-gradient(180deg,#fff 0,transparent 30%); }
  .technical-micro { display: grid; grid-template-columns: auto 1fr; gap: 14px; padding: 22px; text-align: left; }
  .technical-micro .technical-button { grid-column: 1/-1; width: 100%; }
  .technical-modal-layer { display: block; padding: 0; }
  .technical-modal { width: 100%; height: 100%; max-height: none; border: 0; border-radius: 0; background: #f9fbfa; transform: translateY(24px); }
  .technical-modal-header { min-height: 70px; padding: 12px 20px; }
  .technical-modal-content { padding: 18px 20px 26px; }
  .technical-modal-hero { display: flex; flex-direction: column; align-items: stretch; min-height: 0; }
  .technical-modal-intro { display: contents; }
  .technical-modal-icon { order: 0; width: 62px; height: 62px; margin: 25px 24px 16px; }
  .technical-modal-icon svg { width: 35px; height: 35px; }
  .technical-modal-intro h2 { order: 1; padding: 0 24px; font-size: 38px; line-height: 1.02; }
  .technical-modal-intro h2::after { margin-top: 16px; }
  .technical-modal-visual { order: 2; min-height: 230px; margin-top: 18px; }
  .technical-modal-visual img { width: 100%; height: 100%; margin: 0; object-fit: contain; }
  .technical-modal-intro p { order: 3; margin: 0; padding: 22px 24px 28px; font-size: 16px; }
  .technical-modal-details { grid-template-columns: 1fr; padding: 8px 22px; }
  .technical-modal-details article { padding: 24px 0; }
  .technical-modal-details article+article { border-top: 1px solid rgba(17,17,17,.07); border-left: 0; }
  .technical-modal-bottom { grid-template-columns: 1fr; }
  .technical-importance,.technical-service-cta { align-items: flex-start; padding: 22px; }
  .technical-service-cta { display: grid; }
  .technical-service-cta { border-top: 1px solid rgba(17,17,17,.065); border-left: 0; }
  .technical-service-cta .technical-button { width: 100%; }
  .technical-modal-footer { grid-template-columns: 1fr 1fr; min-height: 82px; padding: 12px 20px; }
  .technical-modal-position { display: none; }
  .technical-modal-nav { font-size: 13px; }
  .technical-modal-nav span:not([aria-hidden]) { max-width: 125px; }
}

@media (prefers-reduced-motion:reduce) {
  .technical-page * { animation:none!important; transition:none!important; }
  .technical-modal-layer,.technical-modal { transition:none!important; }
}

/* Revision 04 */
.technical-hero h1 { font-size:clamp(68px,6vw,88px); line-height:.93; }
.technical-hero-copy>p:not(.technical-eyebrow) { max-width:650px; text-align:left; }
.technical-hero-visual img { object-position:center center; }
.technical-step:hover,.technical-step:focus-visible,.technical-step.is-active { border-color:rgba(5,148,68,.2); color:var(--waves-green); background:rgba(5,148,68,.055); box-shadow:0 18px 40px rgba(5,148,68,.07); transform:translateY(-3px); }
.technical-step:hover .technical-step-icon,.technical-step:hover span,.technical-step:hover h3,.technical-step:focus-visible .technical-step-icon,.technical-step:focus-visible span,.technical-step:focus-visible h3 { color:var(--waves-green); }
.technical-service-card { display:grid; grid-template-columns:64px minmax(0,1fr); grid-template-rows:auto 1fr; column-gap:22px; align-content:start; min-height:260px; }
.technical-service-card .technical-card-icon { grid-row:1/3; }
.technical-service-card h3 { align-self:end; margin:6px 0 10px; }
.technical-service-card p { grid-column:2; max-width:none; text-align:left; }
@media (min-width:1024px) { .technical-services-grid.is-idle-wave .technical-service-card { animation:technical-card-wave 9s ease-in-out infinite; animation-delay:calc(var(--wave-index,0)*.42s); } @keyframes technical-card-wave { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} } }
