/* Editorial sections share the landing's type, spacing and restrained colour. */
.dev2-eyebrow{margin:0 0 30px;font:11px/1.5 monospace;letter-spacing:.12em;text-transform:uppercase}
.dev2-practice{margin-top:40px;--practice-entry:.2}
.dev2-editorial{width:min(1320px,88%);margin-inline:auto;padding-block:clamp(85px,10vw,160px);scroll-margin-top:110px}
.dev2-editorial h2{margin:0;font:400 clamp(42px,5.5vw,82px)/1.02 Dev2 Cabinet,Arial,sans-serif;letter-spacing:-.045em}
.dev2-about-contact{display:inline-flex;align-items:center;gap:40px;margin-top:-40px;color:#f6f6f2;padding:0 0 8px;border-bottom:1px solid #ffffff50;font-size:18px}
.dev2-about-contact:hover{color:#c9ff6b}
.dev2-skip-link{position:fixed;z-index:10000;left:20px;top:16px;padding:12px 20px;color:#171717;background:#c9ff6b;transform:translateY(-200%)}
.dev2-skip-link:focus{transform:none}
.dev2-service-card[data-service-href]{cursor:pointer}
.dev2-service-heading a{display:inline;text-decoration:none;color:inherit}
.dev2-card-service-link{display:inline-flex;gap:35px;align-items:center;border-bottom:1px solid currentColor;padding:0 0 6px;margin-top:10px;font-size:20px}
.dev2-faq{display:grid;grid-template-columns:1fr 1.2fr;gap:9%;border-bottom:1px solid #ffffff30}
.dev2-section-intro>p:last-child{max-width:340px;margin:28px 0 0;color:#a3a39d;font-size:20px;line-height:1.4;letter-spacing:-.015em}
.dev2-faq details{border-top:1px solid #ffffff30}
.dev2-faq details:last-child{border-bottom:1px solid #ffffff30}
.dev2-faq summary{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:26px 0;list-style:none;cursor:pointer;font-size:clamp(20px,2vw,28px);line-height:1.15;letter-spacing:-.025em}
.dev2-faq summary::-webkit-details-marker{display:none}
.dev2-faq summary span{position:relative;flex:0 0 20px;width:20px;height:20px}
.dev2-faq summary span::before,.dev2-faq summary span::after{content:'';position:absolute;top:9px;left:1px;width:18px;height:1.5px;background:currentColor;transition:transform .3s}
.dev2-faq summary span::after{transform:rotate(90deg)}
.dev2-faq details[open] summary span::after{transform:rotate(0)}
.dev2-faq summary:focus-visible{outline:2px solid #c9ff6b;outline-offset:6px}
.dev2-faq-answer p{margin:0;padding:0 35px 30px 0;color:#b4b4ad;font-size:18px;line-height:1.5;letter-spacing:-.015em;max-width:620px}
.dev2-contact h2{position:relative;max-width:1120px;font-size:clamp(58px,8.7vw,132px);line-height:.97;letter-spacing:-.055em}
.dev2-contact-bottom{display:grid;grid-template-columns:1.4fr 1fr;gap:14%;align-items:end;margin-top:65px}
.dev2-contact-description{max-width:610px;margin:0;font-size:clamp(24px,2.8vw,38px);line-height:1.1;letter-spacing:-.03em}
.dev2-contact-note{max-width:500px;margin:24px 0 32px;font-size:18px;line-height:1.45;color:var(--contact-muted,#a3a39d)}
.dev2-primary-link{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:19px 24px;border-radius:100px;background:var(--contact-button-bg,#c9ff6b);color:var(--contact-button-ink,#171717);font-size:18px;line-height:1.2;transition:transform .25s}
.dev2-primary-link:hover{transform:translateY(-3px)}
.dev2-contact-methods{display:flex;align-items:flex-start;flex-direction:column;gap:23px;padding-bottom:15px;font-size:clamp(17px,1.6vw,23px)}
.dev2-contact-methods a{border-bottom:1px solid #ffffff45;padding-bottom:6px}
.dev2-contact-methods a:hover{opacity:.7}
@media(max-width:860px){
 .dev2-faq{grid-template-columns:1fr;gap:45px}
 .dev2-section-intro>p:last-child{max-width:450px}
 .dev2-contact-bottom{grid-template-columns:1fr;gap:45px;margin-top:45px}
 .dev2-contact h2{max-width:90%;font-size:clamp(52px,9vw,82px)}
}
@media(prefers-reduced-motion:no-preference){
 .dev2-reveal-pending [data-dev2-reveal]{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform 1s cubic-bezier(.22,.75,.18,1)}
 .dev2-reveal-pending [data-dev2-reveal].is-revealed{opacity:1;transform:none}
}
/* Astro ClientRouter morphs the selected card into the full service hero. */
.dev2-service-card:not(.dev2-navigation-source){view-transition-name:none!important}
::view-transition-group(dev2-service-siti-web),
::view-transition-group(dev2-service-app-e-prodotti-digitali),
::view-transition-group(dev2-service-webapp-e-gestionali),
::view-transition-group(dev2-service-strumenti-di-lavoro),
::view-transition-group(dev2-service-seo-e-geo),
::view-transition-group(dev2-service-immagini-e-illustrazioni-ai){animation-duration:1100ms;animation-timing-function:cubic-bezier(.22,.75,.18,1);z-index:5}
::view-transition-image-pair(dev2-service-siti-web),
::view-transition-image-pair(dev2-service-app-e-prodotti-digitali),
::view-transition-image-pair(dev2-service-webapp-e-gestionali),
::view-transition-image-pair(dev2-service-strumenti-di-lavoro),
::view-transition-image-pair(dev2-service-seo-e-geo),
::view-transition-image-pair(dev2-service-immagini-e-illustrazioni-ai){isolation:isolate;overflow:clip;animation:dev2-expand-corners 1100ms both}
::view-transition-old(dev2-service-siti-web),
::view-transition-old(dev2-service-app-e-prodotti-digitali),
::view-transition-old(dev2-service-webapp-e-gestionali),
::view-transition-old(dev2-service-strumenti-di-lavoro),
::view-transition-old(dev2-service-seo-e-geo),
::view-transition-old(dev2-service-immagini-e-illustrazioni-ai){height:100%;object-fit:cover;object-position:top left;mix-blend-mode:normal;animation:dev2-card-away 1100ms both}
::view-transition-new(dev2-service-siti-web),
::view-transition-new(dev2-service-app-e-prodotti-digitali),
::view-transition-new(dev2-service-webapp-e-gestionali),
::view-transition-new(dev2-service-strumenti-di-lavoro),
::view-transition-new(dev2-service-seo-e-geo),
::view-transition-new(dev2-service-immagini-e-illustrazioni-ai){height:100%;object-fit:cover;object-position:top left;mix-blend-mode:normal;animation:dev2-page-arrive 1100ms both}
::view-transition-old(root){animation:dev2-root-away 1100ms both}
::view-transition-new(root){animation:dev2-page-arrive 1100ms both}
.dev2-navigation-source{background:var(--service-color);border-radius:8px}
@keyframes dev2-expand-corners{0%,25%{border-radius:8px}100%{border-radius:0}}
@keyframes dev2-card-away{0%,100%{opacity:1}}
@keyframes dev2-page-arrive{0%,60%{opacity:0}100%{opacity:1}}
@keyframes dev2-root-away{0%,85%{opacity:1}100%{opacity:0}}
[data-dev2-returning]::view-transition-image-pair(*){animation-direction:reverse}
[data-dev2-returning]::view-transition-old(root){animation:dev2-return-root-away 260ms both}
[data-dev2-returning]::view-transition-new(root){animation:none}
@keyframes dev2-return-root-away{to{opacity:0}}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:1ms!important}}

.dev2-gallery-promise{padding:80px 7vw;text-align:center}
.dev2-gallery-promise p{max-width:850px;margin:0 auto;font-size:clamp(25px,3vw,44px);font-weight:400;line-height:1.1;letter-spacing:-.04em}
:is(.dev2-animated, :where(html[data-dev2-preparing]) .dev2-hero) .dev2-gallery-promise{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:0 6vw;pointer-events:none;visibility:hidden;opacity:0}
@media(max-width:700px){.dev2-gallery-promise p{max-width:88vw;font-size:clamp(22px,5vw,28px)}}

@media(min-width:701px){:is(.dev2-animated, :where(html[data-dev2-preparing]) .dev2-hero) .dev2-gallery-image{width:min(20%,30vh)}}

.dev2-contact-form-wrap{margin-top:clamp(60px,8vw,110px);padding-top:45px;border-top:1px solid color-mix(in srgb,currentColor 22%,transparent);scroll-margin-top:115px}
.dev2-contact-form-wrap h3{margin:0 0 38px;font-size:clamp(30px,3vw,44px);font-weight:400;line-height:1.1;letter-spacing:-.035em}
.dev2-contact-form{max-width:980px}
.dev2-contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.dev2-contact-form label{display:flex;flex-direction:column;gap:12px;margin-bottom:32px;font-size:17px}
.dev2-contact-form input,.dev2-contact-form textarea{width:100%;box-sizing:border-box;min-width:0;border:0;border-bottom:1px solid color-mix(in srgb,currentColor 35%,transparent);border-radius:0;padding:12px 0 16px;background:transparent;color:inherit;font:inherit;font-size:clamp(20px,2vw,26px);line-height:1.4;outline-offset:5px}
.dev2-contact-form textarea{resize:vertical;min-height:150px}
.dev2-contact-form textarea::placeholder{color:var(--contact-muted,#a3a39d);opacity:.7}
.dev2-contact-form input:focus,.dev2-contact-form textarea:focus{outline:1px solid currentColor}
.dev2-contact-form-note{margin:0 0 26px;color:var(--contact-muted,#a3a39d);font-size:14px;line-height:1.5}
.dev2-contact-form button{border:0;cursor:pointer;font-family:inherit}
.dev2-contact-form button:disabled{opacity:.6;cursor:wait}
.dev2-contact-form-status{min-height:1.5em;margin:24px 0 0;max-width:650px;font-size:18px;line-height:1.45}
@media(max-width:600px){.dev2-contact-fields{grid-template-columns:1fr;gap:0}.dev2-contact-form-wrap{padding-top:32px}.dev2-contact-form label{margin-bottom:25px}}

.dev2-contact-form-intro{max-width:650px;margin:-12px 0 40px;color:var(--contact-muted,#a3a39d);font-size:18px;line-height:1.5}
.dev2-contact-field-hint{margin:-16px 0 32px;color:var(--contact-muted,#a3a39d);font-size:14px;line-height:1.45}
.dev2-field-optional{display:inline;font-size:14px;color:var(--contact-muted,#a3a39d)}
