/*
Theme Name: Gioria Serramenti by YUA SRL
Theme URI: https://www.gioriaserramenti.it
Author: YUA SRL
Author URI: https://www.yua.it
Description: Tema WordPress proprietario responsive per Gioria Serramenti. Modalita chiara/scura, Hero Gioria, Medium storici, servizi espandibili, galleria Flashbit, azienda e footer integrato.
Version: 1.10.21
Requires at least: 6.2
Tested up to: 6.7
Requires PHP: 8.0
Text Domain: gioria-yua
*/

:root{
  --gs-red:#e31b23;
  --gs-green:#1ca65a;
  --gs-blue:#1769aa;
  --gs-ink:#10151a;
  --gs-muted:#626970;
  --gs-bg:#fff;
  --gs-surface:#fff;
  --gs-soft:#f6f7f8;
  --gs-border:#e0e4e7;
  --gs-shadow:0 12px 28px rgba(18,26,33,.09);
  --gs-container:1460px;
  --gs-radius:7px;
  --gs-medium-card-w:clamp(128px,10.2vw,195px);
  --gs-medium-card-h:calc(var(--gs-medium-card-w) * 1.48);
  --gs-medium-gap:clamp(9px,.8vw,16px);
  --gs-medium-img-ratio:453 / 450;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--gs-bg);color:var(--gs-ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
button,input,textarea,select{font:inherit}
.gs-container{width:min(calc(100% - 56px),var(--gs-container));margin-inline:auto}
.gs-skip-link{position:fixed;left:14px;top:-80px;z-index:99999;background:#fff;color:#111;padding:10px 14px;border-radius:6px}
.gs-skip-link:focus{top:14px}
.gs-theme-dark{--gs-ink:#f5f7f8;--gs-muted:#b0b7bd;--gs-bg:#10161a;--gs-surface:#151c21;--gs-soft:#11181c;--gs-border:#303940;--gs-shadow:0 12px 32px rgba(0,0,0,.28)}

/* HEADER / NAVBAR */
.gs-site-header{position:absolute;inset:0 0 auto 0;z-index:500;color:#fff;transition:background-color .28s ease,box-shadow .28s ease,backdrop-filter .28s ease}
.gs-header-shell{display:grid;grid-template-columns:var(--gs-header-logo-w,205px) 1fr;gap:34px;align-items:start;padding-top:14px}
.gs-brand{position:relative;display:block;flex:0 0 auto;overflow:hidden;width:var(--gs-header-logo-w,205px);height:var(--gs-header-logo-render-h,88px)}
.gs-brand-main,.gs-brand-menu{display:block;max-width:100%;object-position:left top;transition:opacity .22s ease}
.gs-brand-menu{position:absolute;left:0;top:0;opacity:0;pointer-events:none}
.gs-header-main{display:flex;flex-direction:column;align-items:flex-end;gap:13px}
.gs-topline{display:flex;gap:27px;align-items:center;font-size:13px;white-space:nowrap;transition:max-height .24s ease,opacity .2s ease,padding .2s ease}
.gs-topline a,.gs-topline span{opacity:.98}
.gs-top-item{display:inline-flex;align-items:center;gap:6px}
.gs-top-item b{font-size:9px}
.gs-lang-top{margin-left:3px;display:flex;align-items:center;gap:5px;font-size:11px;font-weight:800;letter-spacing:.08em}
.gs-nav-row{display:flex;align-items:center;gap:14px}
.gs-desktop-nav{display:flex}
.gs-menu{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:27px}
.gs-menu li{margin:0}
.gs-menu a{display:block;padding:6px 0 8px;border-bottom:1px solid rgba(255,255,255,.35);font-size:13px}
.gs-menu .current-menu-item>a,.gs-menu a:hover{border-color:#fff}
.gs-header-actions{display:flex;align-items:center;gap:8px;margin-left:6px}
.gs-social-btn{width:32px;height:32px;display:grid;place-items:center;background:#36589a;color:#fff;border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.12);transition:transform .2s ease,filter .2s ease,box-shadow .2s ease}
.gs-social-btn:hover,.gs-social-btn:focus-visible{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 5px 14px rgba(0,0,0,.2);outline:0}
.gs-social-btn svg,.gs-social-square svg{width:17px;height:17px;display:block;fill:currentColor;color:#fff}
.gs-social-btn svg path,.gs-social-square svg path{fill:currentColor}
.gs-social-btn.is-disabled,.gs-social-square.is-disabled{opacity:.72;cursor:default}
.gs-header-actions .gs-linkedin{background:#2677b6}
.gs-social-btn.is-disabled{opacity:.8}
.gs-language-switch{display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid rgba(255,255,255,.28);background:rgba(0,0,0,.16);backdrop-filter:blur(5px);border-radius:4px}
.gs-language-switch a{display:flex;align-items:center;gap:5px;min-height:27px;padding:4px 7px;color:#fff;font-size:10px;font-weight:800;letter-spacing:.08em;border-radius:2px;opacity:.62;transition:background .18s ease,opacity .18s ease}
.gs-language-switch a:hover,.gs-language-switch a:focus-visible{opacity:1;background:rgba(255,255,255,.10);outline:0}
.gs-language-switch a.is-active{opacity:1;background:rgba(255,255,255,.16)}
.gs-flag-svg{width:20px;height:14px;display:block;box-shadow:0 0 0 1px rgba(255,255,255,.22)}
.gs-menu-toggle{display:none;width:var(--gs-mobile-hamburger-size,44px);height:var(--gs-mobile-hamburger-size,44px);padding:9px 8px;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:pointer}
.gs-menu-toggle span{display:block;width:28px;height:2px;margin:4px auto;border-radius:2px;background:var(--gs-mobile-hamburger-color,#fff);box-shadow:0 1px 3px rgba(0,0,0,.45);transform-origin:center;transition:transform .22s ease,opacity .18s ease}
.gs-menu-toggle.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.gs-menu-toggle.is-open span:nth-child(2){opacity:0}
.gs-menu-toggle.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.gs-mobile-scroll-brand{display:none;position:absolute;left:14px;top:50%;transform:translateY(-50%);z-index:1002;align-items:center;justify-content:flex-start;overflow:hidden}
.gs-mobile-scroll-brand img{display:block;max-width:100%;height:auto}
.gs-mobile-language-switch{display:none;position:absolute;right:calc(12px + var(--gs-mobile-hamburger-size,44px) + 10px);top:14px;z-index:1001}
.gs-mobile-language-row{padding:12px 0 18px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:6px}
.gs-mobile-language-row .gs-language-switch{background:rgba(255,255,255,.04);width:max-content}
.gs-mobile-social{display:flex;gap:10px;padding:20px 0 10px}
.gs-site-header.is-scrolled{position:fixed;top:0;left:0;right:0;background:rgba(8,10,12,.84);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(0,0,0,.18)}
.gs-site-header.is-scrolled .gs-header-shell{grid-template-columns:var(--gs-menu-logo-w,150px) 1fr;min-height:max(72px,calc(var(--gs-menu-logo-render-h,58px) + 18px));align-items:center}
.gs-site-header.is-scrolled .gs-topline{max-height:0;opacity:0;overflow:hidden;margin:0;padding:0;pointer-events:none}
.gs-site-header.is-scrolled .gs-brand{width:var(--gs-menu-logo-w,150px);height:var(--gs-menu-logo-render-h,58px)}
.gs-site-header.is-scrolled .gs-brand-main{opacity:0;pointer-events:none}
.gs-site-header.is-scrolled .gs-brand-menu{opacity:1;pointer-events:auto}
.admin-bar .gs-site-header.is-scrolled{top:32px}

/* MOBILE DRAWER */
.gs-mobile-panel[hidden]{display:none!important}
.gs-mobile-panel{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.58);backdrop-filter:blur(4px)}
.gs-mobile-panel-inner{margin-left:auto;width:min(var(--gs-mobile-panel-width,88vw),410px);height:100%;background:var(--gs-mobile-panel-bg,#11171b);color:#fff;padding:22px 24px 30px;overflow:auto;box-shadow:-18px 0 48px rgba(0,0,0,.28)}
.gs-mobile-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.14)}
.gs-mobile-head img{max-width:100%;object-position:left center}
.gs-mobile-close{border:0;background:transparent;color:#fff;font-size:38px;line-height:1;cursor:pointer}
.gs-mobile-nav,.gs-mobile-nav ul{width:100%}
.gs-mobile-nav .gs-mobile-menu,.gs-mobile-nav .gs-menu{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;width:100%;margin:22px 0 26px!important;padding:0!important;list-style:none!important}
.gs-mobile-nav .gs-mobile-menu li,.gs-mobile-nav .gs-menu li{display:block!important;width:100%!important;margin:0!important;border-bottom:1px solid rgba(255,255,255,.13)}
.gs-mobile-nav .gs-mobile-menu a,.gs-mobile-nav .gs-menu a{display:flex!important;align-items:center;justify-content:space-between;width:100%;padding:16px 2px!important;border:0!important;color:#fff!important;font-size:20px!important;line-height:1.25;font-weight:700;text-align:left}
.gs-mobile-nav .sub-menu{display:flex!important;flex-direction:column!important;position:static!important;width:100%!important;margin:0!important;padding:0 0 8px 16px!important;background:transparent!important;box-shadow:none!important}
.gs-mobile-nav .sub-menu a{font-size:16px!important;font-weight:500!important;padding:10px 2px!important;color:#d6dadd!important}
.gs-mobile-contact{display:grid;gap:10px;color:#cbd1d5;font-size:14px;padding-top:8px}
body.gs-mobile-menu-open{overflow:hidden}

/* HERO */
.gs-hero{position:relative;height:100svh;min-height:650px;background:#414141;overflow:hidden;isolation:isolate}
.gs-hero-visual{position:absolute;inset:0;z-index:1;background-image:var(--gs-hero-image);background-size:cover;background-position:center center;background-repeat:no-repeat}
.gs-hero-partners{position:absolute;left:17%;bottom:4.5%;z-index:325;display:flex;gap:14px;justify-content:flex-start;align-items:flex-end}
.gs-partner-logo{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;padding:0;flex:0 0 auto;overflow:visible}
.gs-partner-logo img{display:block;max-width:100%;height:auto;object-position:center}
.gs-mobile-hero-brand{display:none;position:absolute;z-index:340;top:var(--gs-mobile-hero-logo-top,14%);left:50%;transform:translateX(-50%);max-width:72vw;pointer-events:none}
.gs-mobile-hero-brand img{display:block;max-width:100%;height:auto}

/* MEDIUM - rail Gioria professionale.
   Desktop/tablet landscape: quattro card compatte nella Hero, in basso a destra.
   Hover senza spostamenti di layout: lift minimo, micro-zoom e accento tricolore.
   Mobile/tablet portrait: quattro card verticali con focus sobrio durante lo scroll. */
.gs-mediums{position:absolute;right:clamp(18px,2vw,38px);bottom:clamp(34px,6.5vh,70px);z-index:300;margin:0;padding:0;background:transparent}
.gs-medium-track{display:flex;align-items:flex-end;justify-content:flex-end;gap:var(--gs-medium-gap);width:auto;max-width:none;margin:0;perspective:1400px}
.gs-medium-card{position:relative;display:block;flex:0 0 var(--gs-medium-card-w);width:var(--gs-medium-card-w);height:var(--gs-medium-card-h);background:#fff;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.17);transition:transform var(--gs-medium-tilt-return,420ms) cubic-bezier(.22,.61,.36,1),box-shadow .34s ease,filter .34s ease;will-change:transform;transform-style:preserve-3d;backface-visibility:hidden}
.gs-medium-card:hover,.gs-medium-card:focus-visible{transform:translateY(calc(-1 * var(--gs-medium-tilt-lift,6px)));box-shadow:0 18px 34px rgba(0,0,0,.24);filter:saturate(1.025) contrast(1.015);outline:0}
.gs-medium-tilt-enabled .gs-medium-card.is-tilting{transform:perspective(var(--gs-medium-tilt-perspective,1100px)) translateY(calc(-1 * var(--gs-medium-tilt-lift,6px))) rotateX(var(--gs-tilt-x,0deg)) rotateY(var(--gs-tilt-y,0deg));transition:transform .1s ease-out,box-shadow .3s ease,filter .3s ease;box-shadow:0 22px 42px rgba(0,0,0,.26)}
.gs-medium-card:focus-visible{box-shadow:0 18px 34px rgba(0,0,0,.24),0 0 0 2px rgba(255,255,255,.92),0 0 0 4px rgba(227,27,35,.58)}
.gs-medium-media{position:absolute;z-index:2;inset:0 0 auto 0;width:100%;height:68%;overflow:hidden;background:#222;clip-path:polygon(0 0,100% 0,100% calc(100% - 5.3%),0 100%)}
.gs-medium-media img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .6s cubic-bezier(.22,.61,.36,1),filter .34s ease}
.gs-medium-card:hover .gs-medium-media img,.gs-medium-card:focus-visible .gs-medium-media img{transform:scale(1.025);filter:brightness(1.025)}
.gs-medium-title{position:absolute;z-index:1;left:0;right:0;top:63%;bottom:0;display:flex;align-items:center;justify-content:center;padding:calc(5.3% + 9px) 10px 13px;text-align:center;color:#090909;background:#fff;font-family:var(--gs-medium-title-font,Impact,"Anton","Oswald","Arial Narrow",sans-serif);font-weight:900;font-size:var(--gs-medium-title-size,18px);line-height:1.02;letter-spacing:.012em;text-transform:uppercase;overflow:hidden}
.gs-medium-title::after{content:"";position:absolute;left:50%;bottom:0;width:0;height:3px;background:linear-gradient(90deg,#159447 0 33.333%,#f3f3f3 33.333% 66.666%,#d81f2a 66.666% 100%);transform:translateX(-50%);transition:width .42s cubic-bezier(.22,.61,.36,1)}
.gs-medium-card:hover .gs-medium-title::after,.gs-medium-card:focus-visible .gs-medium-title::after{width:100%}
.gs-medium-title>span{display:-webkit-box;max-width:100%;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}

@media screen and (min-width:769px) and (max-width:1280px) and (orientation:landscape){
  :root{--gs-medium-card-w:clamp(112px,11vw,150px);--gs-medium-gap:clamp(7px,.75vw,11px)}
  .gs-hero{min-height:560px}
  .gs-mediums{right:1.7vw;bottom:5.5%}
  .gs-medium-title{font-size:var(--gs-medium-title-size,18px)}
}
@media screen and (min-width:1281px) and (max-width:1600px){:root{--gs-medium-card-w:clamp(132px,10vw,160px);--gs-medium-gap:12px}}
@media screen and (min-width:1601px) and (max-width:1920px){:root{--gs-medium-card-w:clamp(150px,9.4vw,181px);--gs-medium-gap:14px}}
@media screen and (min-width:1921px) and (max-width:2560px){:root{--gs-medium-card-w:clamp(168px,9.2vw,215px);--gs-medium-gap:16px}}
@media screen and (min-width:2561px){:root{--gs-medium-card-w:clamp(185px,8.2vw,235px);--gs-medium-gap:18px}.gs-mediums{right:2.5vw;bottom:5.5%}}

/* SHARED */
.gs-services,.gs-gallery-section,.gs-company{padding:22px 0}
.gs-kicker{display:flex;align-items:center;gap:9px;text-transform:uppercase;letter-spacing:.2em;font-size:11px;font-weight:800;margin-bottom:9px}
.gs-kicker:before{content:"";width:38px;height:2px;background:var(--gs-red);display:inline-block}
.gs-btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;height:42px;padding:0 20px;text-transform:uppercase;font-size:11px;font-weight:800;border:1px solid var(--gs-border);background:transparent}
.gs-btn svg{width:17px}
.gs-btn-red{background:var(--gs-red);border-color:var(--gs-red);color:#fff}
.gs-btn-ghost:hover{border-color:#8f989f}
.gs-section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:12px}
.gs-section-heading h2{font-size:29px;line-height:1.05;margin:0;font-weight:500}

/* SERVICES */
.gs-services{padding:22px 0 28px;background:var(--gs-bg);border-top:1px solid var(--gs-border)}
.gs-services-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:12px}
.gs-services-head .gs-kicker{margin:0}
.gs-services-toggle{cursor:pointer}
.gs-services-toggle svg{transition:transform .25s ease}
.gs-services-toggle[aria-expanded="true"] svg{transform:rotate(90deg)}
.gs-services-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--gs-border);border-bottom:1px solid var(--gs-border)}
.gs-service-tile{min-height:224px;padding:24px 18px 22px;border-left:1px solid var(--gs-border);display:grid;grid-template-rows:82px 56px minmax(50px,auto);align-items:start;justify-items:center;text-align:center}
.gs-service-tile:first-child{border-left:0}
.gs-service-icon{width:92px;height:76px;display:flex;align-items:center;justify-content:center;margin:0 auto 6px}
.gs-service-icon img{display:block;width:100%;height:100%;object-fit:contain}
.gs-service-tile h3{font-size:15px;line-height:1.18;margin:0;font-weight:800;max-width:220px;display:flex;align-items:center;justify-content:center;min-height:56px}
.gs-service-tile p{font-size:12px;line-height:1.45;color:var(--gs-muted);margin:0;max-width:220px;align-self:start}
.gs-services-details[hidden]{display:none}
.gs-services-details{overflow:hidden;border-bottom:1px solid var(--gs-border);background:var(--gs-surface);animation:gsReveal .32s ease both}
.gs-services-details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.gs-services-detail-column{padding:34px 36px;border-left:1px solid var(--gs-border)}
.gs-services-detail-column:first-child{border-left:0}
.gs-service-detail{display:grid;grid-template-rows:92px 64px auto;align-items:start}
.gs-service-detail+.gs-service-detail{margin-top:34px;padding-top:32px;border-top:1px solid var(--gs-border)}
.gs-service-detail-icon{display:flex;width:96px;height:82px;align-items:center;justify-content:center;margin:0 auto 10px}
.gs-service-detail-icon img{display:block;width:100%;height:100%;object-fit:contain}
.gs-service-detail h3{text-align:center;color:var(--gs-red);font-size:22px;line-height:1.15;margin:0;font-weight:800;min-height:64px;display:flex;align-items:center;justify-content:center}
.gs-service-detail p{display:grid;grid-template-columns:18px 1fr;gap:7px;margin:0 0 13px;font-size:14px;line-height:1.65;color:var(--gs-ink)}
.gs-service-dash{color:var(--gs-ink)}
.gs-theme-dark .gs-service-icon img,.gs-theme-dark .gs-service-detail-icon img{filter:invert(1)}
@keyframes gsReveal{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

/* GALLERY */
.gs-gallery-section{border-top:1px solid var(--gs-border);padding-top:14px;padding-bottom:14px}
.gs-plugin-gallery .fbg-gallery-wrapper{margin:0!important;padding:0!important;background:transparent!important;max-width:none!important}
.gs-plugin-gallery .fbg-header{display:none!important}
.gs-plugin-gallery .fbg-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}
.gs-plugin-gallery .fbg-cat-card{min-width:0!important;border-radius:4px!important;overflow:hidden!important;box-shadow:0 4px 12px rgba(0,0,0,.06)!important;border:1px solid var(--gs-border)!important;background:var(--gs-surface)!important}
.gs-plugin-gallery .fbg-cat-cover{padding-bottom:62%!important;background-position:center!important;background-size:cover!important}
.gs-plugin-gallery .fbg-cat-image,.gs-plugin-gallery .fbg-cat-thumb{aspect-ratio:1.4/1!important;height:auto!important}
.gs-plugin-gallery .fbg-cat-image img,.gs-plugin-gallery .fbg-cat-thumb img{width:100%!important;height:100%!important;object-fit:cover!important}
.gs-plugin-gallery .fbg-cat-footer{background:var(--gs-surface)!important;color:var(--gs-ink)!important;padding:10px 12px!important;min-height:42px!important}
.gs-plugin-gallery .fbg-cat-name{color:var(--gs-ink)!important;font-weight:800!important;font-size:11px!important;text-transform:uppercase;line-height:1.2}
.gs-plugin-gallery .fbg-cat-count{display:none!important}
.gs-plugin-placeholder{padding:24px;border:1px dashed var(--gs-border);border-radius:6px;color:var(--gs-muted);background:var(--gs-surface)}

/* COMPANY */
.gs-company{padding:0;background:var(--gs-bg)}
.gs-company-layout{display:grid;grid-template-columns:29% 51% 20%;min-height:218px;align-items:stretch}
.gs-company-copy{padding:18px 22px 18px 0;display:flex;flex-direction:column;justify-content:center}
.gs-company-copy h2{font-size:29px;line-height:1.05;margin:0 0 10px;font-weight:500;max-width:320px}
.gs-company-copy p{font-size:13px;line-height:1.45;color:var(--gs-muted);margin:0 0 18px;max-width:320px}
.gs-company-copy .gs-btn{align-self:flex-start}
.gs-company-media{min-height:218px;background-size:cover;background-position:center center}
/* SVG in Azienda: mantiene sempre le proporzioni e viene adattato all'area disponibile,
   evitando l'effetto "cover" che ingrandiva e tagliava loghi e grafiche vettoriali. */
.gs-company-media-svg{background-size:contain;background-repeat:no-repeat;background-position:center center}
.gs-company-stats{display:grid;grid-template-columns:1fr;background:var(--gs-surface);padding:8px 20px}
.gs-stat{display:grid;grid-template-columns:46px 1fr;gap:11px;align-items:center;border-bottom:1px solid var(--gs-border);padding:7px 0}
.gs-stat:last-child{border-bottom:0}
.gs-stat-icon{width:38px;height:38px;display:block}
.gs-stat-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.35;stroke-linecap:round;stroke-linejoin:round}
.gs-stat strong{display:block;font-size:14px;line-height:1.1}
.gs-stat small{display:block;margin-top:3px;color:var(--gs-muted);font-size:11px;line-height:1.3}
.gs-company-toggle{cursor:pointer}
.gs-company-toggle svg{transition:transform .25s ease}
.gs-company-toggle[aria-expanded="true"] svg{transform:rotate(90deg)}
.gs-company-details[hidden]{display:none}
.gs-company-details{padding-top:0;padding-bottom:34px;animation:gsReveal .32s ease both}
.gs-company-details-inner{border-top:1px solid var(--gs-border);border-bottom:1px solid var(--gs-border);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);background:var(--gs-surface)}
.gs-company-details-intro,.gs-company-details-body{padding:34px 38px}
.gs-company-details-body{border-left:1px solid var(--gs-border)}
.gs-company-details p{margin:0 0 18px;color:var(--gs-muted);font-size:14px;line-height:1.72}
.gs-company-details h3{margin:0 0 18px;font-size:19px;line-height:1.25}
.gs-company-detail-list{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:12px}
.gs-company-detail-list li{position:relative;padding-left:22px;color:var(--gs-muted);font-size:14px;line-height:1.65}
.gs-company-detail-list li:before{content:"_";position:absolute;left:0;top:0;color:var(--gs-ink)}

/* FOOTER */
.gs-footer{background:var(--gs-soft);color:var(--gs-ink);border-top:1px solid var(--gs-border)}
.gs-footer-main-grid{display:grid;grid-template-columns:190px 1.35fr 1.15fr 100px 140px;gap:34px;align-items:center;padding:22px 0 18px}
.gs-footer-logo-wrap{display:flex;align-items:center;overflow:hidden}
.gs-footer-logo{max-width:100%;object-position:left center}
.gs-footer-contact-list{display:grid;gap:7px;font-size:12px;line-height:1.35}
.gs-footer-meta{color:var(--gs-muted);font-size:10px;line-height:1.35}
.gs-footer-company-data,.gs-footer-note{font-weight:600}
.gs-footer-line{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start}
.gs-footer-symbol{font-size:11px;line-height:1.5}
.gs-footer-contact-list a:hover{color:var(--gs-red)}
.gs-footer-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}
.gs-footer-links a{font-size:12px}
.gs-footer-links a:hover{color:var(--gs-red)}
.gs-footer-social{display:flex;gap:7px;justify-content:flex-start}
.gs-social-square{width:36px;height:36px;display:grid;place-items:center;color:#fff;font-weight:800;border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.10)}
.gs-facebook{background:#36589a}
.gs-linkedin{background:#2677b6}
.gs-footer-italy{justify-self:end;display:flex;flex-direction:column;gap:7px;align-items:flex-start;font-size:12px;line-height:1.35}
.gs-footer-italy i{display:block;width:93px;height:4px;background:linear-gradient(90deg,#169b62 0 33.33%,#fff 33.33% 66.66%,#ce2b37 66.66%);border:1px solid #dfe3e6}
.gs-footer-bottom{display:flex;justify-content:space-between;gap:20px;padding:11px 0 15px;border-top:1px solid var(--gs-border);font-size:10px;color:var(--gs-muted)}
.gs-footer-powered{white-space:normal}
.gs-footer-powered a{font-weight:700;text-decoration:none;color:inherit;transition:color .2s ease}
.gs-footer-powered a:hover,.gs-footer-powered a:focus-visible{color:var(--gs-red);text-decoration:underline;text-underline-offset:2px}
.gs-footer-legal{display:flex;gap:0}
.gs-footer-legal a{padding:0 8px;border-right:1px solid var(--gs-border)}
.gs-footer-legal a:last-child{border-right:0;padding-right:0}
.gs-footer-access-item a{font-weight:700}
.gs-footer-access-item a::after{content:" →";margin-left:4px}
.gs-theme-dark .gs-footer{background:#12191d}
.gs-theme-dark .gs-footer-italy i{border-color:#303940}

/* GENERIC PAGES */
.gs-content{padding:145px 0 70px;min-height:65vh;background:var(--gs-bg)}
.gs-content .gs-container{max-width:1180px}
.gs-entry{background:var(--gs-surface);border:1px solid var(--gs-border);border-radius:10px;padding:34px}
.gs-entry h1{font-size:clamp(34px,5vw,58px);line-height:1.05;margin-top:0}
.gs-entry h2{font-size:30px}
.gs-entry p,.gs-entry li{color:var(--gs-muted)}

/* TABLET LANDSCAPE = DESKTOP */
@media (min-width:769px) and (max-width:1280px) and (orientation:landscape){
  .gs-container{width:min(calc(100% - 32px),var(--gs-container))}
  .gs-header-shell{gap:16px;padding-top:10px}
  .gs-topline{font-size:10px;gap:12px}
  .gs-menu{gap:14px}
  .gs-menu a{font-size:11px}
  .gs-header-actions{gap:6px}
  .gs-menu-toggle{display:none!important}
  .gs-mobile-scroll-brand{display:none!important}
  .gs-header-main{display:flex!important}
  .gs-brand{display:block!important}
  .gs-hero{height:390px;min-height:390px}
  .gs-service-tile{padding:16px 10px}
  .gs-footer-main-grid{grid-template-columns:150px 1.25fr 1.1fr 90px 115px;gap:16px}
}

/* MOBILE LAYOUT: phones + tablet portrait. */
@media (max-width:768px), (min-width:769px) and (max-width:1024px) and (orientation:portrait){
  .gs-container{width:min(calc(100% - 28px),var(--gs-container))}
  .gs-site-header{min-height:70px}
  .gs-header-shell{display:flex!important;justify-content:flex-end!important;align-items:flex-start!important;padding-top:12px;min-height:70px;width:100%}
  .gs-brand,.gs-header-main{display:none!important}
  .gs-mobile-language-switch{display:block}
  .gs-menu-toggle{display:flex!important;flex-direction:column;justify-content:center;align-items:stretch;margin-left:auto;position:relative;z-index:1001}
  .gs-site-header.is-scrolled .gs-header-shell{display:flex!important;min-height:70px;grid-template-columns:none!important}
  .gs-site-header.is-scrolled .gs-mobile-scroll-brand{display:flex!important}
  .gs-mobile-panel-inner{width:min(var(--gs-mobile-panel-width,88vw),390px);padding:20px 22px 28px}
  .gs-services-details-grid{grid-template-columns:1fr}
  .gs-services-detail-column{border-left:0;border-top:1px solid var(--gs-border);padding:28px 24px}
  .gs-services-detail-column:first-child{border-top:0}
  .gs-plugin-gallery .fbg-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gs-company-layout{grid-template-columns:1fr 1fr}
  .gs-company-copy{padding-right:28px}
  .gs-company-media{min-height:300px}
  .gs-company-stats{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));padding:0}
  .gs-stat{border-bottom:0;border-right:1px solid var(--gs-border);padding:15px}
  .gs-stat:last-child{border-right:0}
  .gs-company-details-inner{grid-template-columns:1fr}
  .gs-company-details-body{border-left:0;border-top:1px solid var(--gs-border)}
  .gs-company-details-intro,.gs-company-details-body{padding:26px 24px}
}

/* SMARTPHONE */
@media (max-width:767px){
  .gs-container{width:min(calc(100% - 24px),var(--gs-container))}
  .gs-menu-toggle{position:absolute!important;right:12px;top:12px;margin:0!important}
  .gs-hero{height:350px;min-height:350px}
  .gs-services,.gs-gallery-section{padding:28px 0}
  .gs-services-head{align-items:center;flex-direction:row;gap:12px}
  .gs-services-head .gs-kicker{font-size:10px;letter-spacing:.16em}
  .gs-services-head .gs-btn{height:40px;padding:0 13px;gap:10px;white-space:nowrap}

  /* Collapsed services: horizontal swipe. */
  .gs-services:not(.is-expanded) .gs-services-row{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;border-left:1px solid var(--gs-border);border-right:1px solid var(--gs-border)}
  .gs-services:not(.is-expanded) .gs-services-row::-webkit-scrollbar{display:none}
  .gs-services:not(.is-expanded) .gs-service-tile{flex:0 0 76vw;min-height:210px;border-left:1px solid var(--gs-border);border-top:0;scroll-snap-align:center}
  .gs-services:not(.is-expanded) .gs-service-tile:first-child{border-left:0}

  /* Expanded services: vertical list + full text below. */
  .gs-services.is-expanded .gs-services-row{display:grid;grid-template-columns:1fr;overflow:visible;border:1px solid var(--gs-border);border-bottom:0}
  .gs-services.is-expanded .gs-service-tile{min-height:140px;border-left:0;border-bottom:1px solid var(--gs-border);grid-template-rows:68px auto auto;padding:18px 16px}
  .gs-services.is-expanded .gs-service-icon{width:72px;height:60px}
  .gs-services.is-expanded .gs-service-tile h3{min-height:0;margin-bottom:6px}
  .gs-services.is-expanded .gs-service-tile p{min-height:0}
  .gs-services-detail-column{padding:24px 18px}
  .gs-service-detail h3{font-size:20px}
  .gs-section-heading{align-items:flex-start;flex-direction:column}
  .gs-plugin-gallery .fbg-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gs-company-layout{grid-template-columns:1fr}
  .gs-company-copy{padding:24px 0}
  .gs-company-media{min-height:250px}
  .gs-company-stats{grid-template-columns:1fr 1fr}
  .gs-stat{border-right:1px solid var(--gs-border);border-bottom:1px solid var(--gs-border)}
  .gs-stat:nth-child(even){border-right:0}
  .gs-stat:nth-last-child(-n+2){border-bottom:0}

  /* Footer mobile: versione compatta. Mantiene tutti i dati ma riduce l'altezza complessiva. */
  .gs-footer-main-grid{grid-template-columns:1fr;gap:min(var(--gs-mobile-footer-gap,14px),18px);padding:16px 0 10px;justify-items:center;text-align:center}
  .gs-footer-logo-wrap{justify-content:center;width:100%}
  .gs-footer-logo{object-position:center;max-width:132px;max-height:58px}
  .gs-footer-contact-list{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:11.5px;line-height:1.25;gap:4px 12px;max-width:430px}
  .gs-footer-line{grid-template-columns:16px auto;justify-content:center;text-align:left;flex:0 0 100%;gap:6px}
  .gs-footer-meta{font-size:9.5px;line-height:1.2}
  .gs-footer-menu{width:100%;max-width:320px}
  .gs-footer-links{grid-template-columns:repeat(var(--gs-mobile-footer-columns,2),minmax(0,1fr));gap:4px 12px;width:100%;text-align:center}
  .gs-footer-links a{display:block;padding:2px 0;font-size:11.5px;line-height:1.25}
  .gs-footer-access-item{display:none!important}
  .gs-footer-social{justify-content:center;width:100%;gap:6px}
  .gs-footer-social .gs-social-square{width:28px;height:28px}
  .gs-footer-italy{justify-self:center;align-items:center;text-align:center;gap:4px;font-size:10.5px;line-height:1.2}
  .gs-footer-italy i{width:78px;height:3px}
  .gs-footer-bottom{flex-direction:column;align-items:center;text-align:center;gap:4px;padding:7px 0 9px;font-size:9.5px;line-height:1.2}
  .gs-footer-legal{justify-content:center;flex-wrap:wrap}
  .gs-footer-legal a{padding:0 6px}
  .gs-content{padding-top:96px}
  .gs-entry{padding:23px}
  .gs-company-details-intro,.gs-company-details-body{padding:22px 16px}
  .gs-mobile-footer-left .gs-footer-main-grid{justify-items:start;text-align:left}
  .gs-mobile-footer-left .gs-footer-logo-wrap,.gs-mobile-footer-left .gs-footer-social{justify-content:flex-start}
  .gs-mobile-footer-left .gs-footer-contact-list{justify-content:flex-start;justify-items:start}
  .gs-mobile-footer-left .gs-footer-line{justify-content:start}
  .gs-mobile-footer-left .gs-footer-links{text-align:left}
  .gs-mobile-footer-left .gs-footer-italy{justify-self:start;align-items:flex-start;text-align:left}
  .gs-mobile-footer-left .gs-footer-bottom{align-items:flex-start;text-align:left}
}

/* Tablet landscape (>=768px) resta sempre desktop; smartphone fino a 767px usa il layout mobile. */
@media(max-width:782px){.admin-bar .gs-site-header.is-scrolled{top:46px}}



/* v1.9.0 - Partner visibility preferences. */
@media screen and (min-width:1025px), screen and (min-width:769px) and (max-width:1024px) and (orientation:landscape){
  .gs-partner-hide-desktop{display:none!important}
}

/* v1.9.0 - Mobile/tablet portrait: four MEDIUM cards vertically, no carousel. */
@media screen and (max-width:768px), screen and (min-width:769px) and (max-width:1024px) and (orientation:portrait){
  .gs-partner-hide-mobile{display:none!important}
  .gs-hero{height:auto;min-height:0;overflow:visible;background:#414141}
  .gs-hero-visual{position:relative;inset:auto;height:min(800px,100svh);min-height:620px;background-position:center center}
  .gs-hero-partners{left:0;right:0;bottom:5.5%;padding:0 22px;gap:12px;justify-content:flex-start;align-items:flex-end;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
  .gs-hero-partners::-webkit-scrollbar{display:none}
  .gs-mobile-hero-brand{display:block}
  .gs-mediums{position:relative;right:auto;bottom:auto;z-index:3;width:100%;padding:34px 18px 42px;background:var(--gs-mobile-medium-bg,#ecebea)}
  .gs-medium-track{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--gs-mobile-medium-gap,16px);width:100%;max-width:470px;margin:0 auto;overflow:visible;padding:0}
  .gs-medium-card,.gs-medium-card:hover,.gs-medium-card:focus-visible{flex:0 0 auto;width:min(82vw,var(--gs-mobile-medium-width,300px));height:auto;aspect-ratio:453/610;max-width:340px;border-radius:10px;box-shadow:0 10px 26px rgba(0,0,0,.13);transform:none;opacity:1;filter:none;transition:transform .38s cubic-bezier(.22,.61,.36,1),box-shadow .38s ease,opacity .3s ease,filter .3s ease}
  .gs-medium-card:active{transform:translateY(-2px);box-shadow:0 15px 32px rgba(0,0,0,.2)}
  .gs-medium-media{height:70%;border-radius:9px 9px 0 0}
  .gs-medium-title{top:65%;font-size:var(--gs-mobile-medium-title-size,var(--gs-medium-title-size,18px));border-radius:0 0 9px 9px;padding-inline:12px}
  .gs-medium-motion .gs-medium-card{will-change:transform,opacity,box-shadow;opacity:.90;transform:scale(.965);transform-origin:center center}
  .gs-medium-motion .gs-medium-card.is-inview{opacity:.95}
  .gs-medium-motion .gs-medium-card.is-focused{opacity:1;transform:translateY(-5px) scale(var(--gs-mobile-medium-focus-scale,1.06));box-shadow:0 22px 44px rgba(0,0,0,.22);filter:saturate(1.045) contrast(1.02);z-index:5}
  .gs-medium-motion .gs-medium-card.is-focused .gs-medium-media img{transform:scale(1.035)}
  .gs-medium-motion .gs-medium-card.is-focused .gs-medium-title::after{width:82%}
}

@media screen and (max-width:480px){
  .gs-hero-visual{height:min(800px,100svh);min-height:560px}
  .gs-mediums{padding:18px 14px 28px}
  .gs-medium-track{gap:14px}
  .gs-medium-card,.gs-medium-card:hover,.gs-medium-card:focus-visible{width:min(84vw,var(--gs-mobile-medium-width,300px));max-width:330px}
}


/* ==========================================================================
   v1.9.4 — Mobile multi-device hardening (iOS / Android / tablet portrait)
   Nessun device sniffing: layout basato su viewport, orientamento e safe-area.
   Tablet landscape (>=768px) continua a usare il layout desktop.
   ========================================================================== */
@media screen and (max-width:767px), screen and (min-width:768px) and (max-width:1024px) and (orientation:portrait){
  .gs-site-header{
    padding-top:env(safe-area-inset-top,0px);
  }
  .gs-header-shell{
    padding-left:max(12px,env(safe-area-inset-left,0px));
    padding-right:max(12px,env(safe-area-inset-right,0px));
  }
  .gs-menu-toggle{
    right:max(12px,env(safe-area-inset-right,0px));
    top:calc(12px + env(safe-area-inset-top,0px));
  }
  .gs-mobile-language-switch{
    right:calc(max(12px,env(safe-area-inset-right,0px)) + var(--gs-mobile-hamburger-size,44px) + 8px);
    top:calc(12px + env(safe-area-inset-top,0px));
  }
  .gs-mobile-panel-inner{
    padding-top:calc(20px + env(safe-area-inset-top,0px));
    padding-right:max(22px,calc(16px + env(safe-area-inset-right,0px)));
    padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));
    padding-left:max(22px,calc(16px + env(safe-area-inset-left,0px)));
    max-height:100dvh;
    max-height:100svh;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .gs-hero-visual{
    height:clamp(560px,128vw,800px);
    min-height:0;
    max-height:100svh;
    max-height:100dvh;
  }
  .gs-mobile-hero-brand{
    display:block;
    width:min(var(--gs-mobile-hero-logo-width,190px),calc(100vw - 40px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));
    max-width:78vw;
    top:var(--gs-mobile-hero-logo-top,15%);
  }
  .gs-mobile-hero-brand img{
    width:100%;
    max-width:100%;
    height:auto;
  }
  .gs-hero-partners{
    padding-left:max(18px,env(safe-area-inset-left,0px));
    padding-right:max(18px,env(safe-area-inset-right,0px));
  }
  .gs-footer-bottom{
    padding-bottom:calc(9px + env(safe-area-inset-bottom,0px));
  }
}

/* Piccoli telefoni (iPhone SE / Android compatti). */
@media screen and (max-width:380px){
  .gs-container{width:min(calc(100% - 20px),var(--gs-container))}
  .gs-hero-visual{height:clamp(520px,150vw,680px)}
  .gs-mobile-hero-brand{max-width:74vw}
  .gs-mobile-panel-inner{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
  .gs-services:not(.is-expanded) .gs-service-tile{flex-basis:82vw}
}

/* Telefoni larghi / pieghevoli in portrait: aumenta lo spazio senza passare al desktop. */
@media screen and (min-width:481px) and (max-width:767px) and (orientation:portrait){
  .gs-hero-visual{height:clamp(620px,118vw,800px)}
  .gs-mobile-hero-brand{max-width:62vw}
}

/* Tablet portrait: layout mobile spazioso, ma con misure controllate. */
@media screen and (min-width:768px) and (max-width:1024px) and (orientation:portrait){
  .gs-hero-visual{height:min(820px,100svh);height:min(820px,100dvh)}
  .gs-mobile-hero-brand{max-width:42vw}
  .gs-mobile-panel-inner{width:min(var(--gs-mobile-panel-width,88vw),460px)}
}


/* Accessibilita: niente animazioni MEDIUM per chi richiede movimento ridotto. */
@media (prefers-reduced-motion:reduce){
  .gs-medium-card,.gs-medium-media img,.gs-medium-title::after{transition:none!important;transform:none!important}
  .gs-medium-motion .gs-medium-card,.gs-medium-motion .gs-medium-card.is-focused{transform:none!important;opacity:1!important}
}

/* ==========================================================================
   1.9.6 - Google Maps footer experience
   ========================================================================== */

/* Address + Maps */
.gs-map-link{display:inline-flex;align-items:center;gap:6px;font-weight:inherit;text-decoration:none;text-underline-offset:3px}
.gs-map-link:hover,.gs-map-link:focus-visible{color:var(--gs-red);text-decoration:underline}
.gs-map-pin{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gs-map-link-icon{flex:0 0 auto;width:14px;height:14px;fill:none;stroke:var(--gs-red);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease}
.gs-map-link:hover .gs-map-link-icon,.gs-map-link:focus-visible .gs-map-link-icon{transform:translate(1px,-1px)}

.gs-map-modal[hidden]{display:none!important}
.gs-map-modal{position:fixed;inset:0;z-index:99990;display:grid;place-items:center;padding:24px}
.gs-map-modal-backdrop{position:absolute;inset:0;background:rgba(10,14,17,.72);backdrop-filter:blur(8px)}
.gs-map-modal-dialog{position:relative;z-index:1;width:min(920px,calc(100vw - 48px));max-height:calc(100dvh - 48px);overflow:auto;background:var(--gs-surface);color:var(--gs-ink);border:1px solid var(--gs-border);border-radius:14px;box-shadow:0 28px 90px rgba(0,0,0,.34)}
.gs-map-modal-copy{padding:28px 76px 20px 30px}
.gs-map-modal-copy h2{margin:0;font-size:clamp(24px,3vw,38px);line-height:1.15}
.gs-map-frame-wrap{margin:0 30px;height:min(54vh,470px);min-height:320px;border:1px solid var(--gs-border);overflow:hidden;background:#eceff1}
.gs-map-frame{display:block;width:100%;height:100%;border:0}
.gs-map-modal-actions{display:flex;gap:12px;align-items:center;justify-content:flex-end;padding:20px 30px 28px}
.gs-map-modal-close{position:absolute;top:18px;right:18px;width:44px;height:44px;border:0;border-radius:50%;display:grid;place-items:center;background:#171c20;color:#fff;cursor:pointer;transition:transform .2s ease,background .2s ease}
.gs-map-modal-close:hover,.gs-map-modal-close:focus-visible{background:var(--gs-red);transform:rotate(6deg)}
.gs-map-modal-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.gs-map-close-secondary{background:transparent;border:1px solid var(--gs-border);color:var(--gs-ink)}
body.gs-map-modal-open{overflow:hidden}

@media (max-width:767px), (min-width:768px) and (max-width:1024px) and (orientation:portrait){
  .gs-footer-address-line{align-items:flex-start}
  .gs-footer-phone-line,.gs-footer-email-line{width:min(100%,280px);margin-inline:auto;justify-content:start;text-align:left}
  .gs-map-modal{display:none!important}
}



/* ==========================================================================
   1.9.9 - Footer mobile + MEDIUM desktop tilt
   - Il link Maps usa una piccola icona dopo l'indirizzo, senza CTA testuale mobile.
   - Telefono ed email sono allineati a sinistra nel footer mobile/tablet portrait.
   - I MEDIUM desktop seguono il puntatore con un tilt 3D controllato.
   ========================================================================== */

/* ==========================================================================
   1.9.7 - HEADER LOGO DESKTOP FLUIDO
   Il logo iniziale non segue piu il max-width generale di .gs-container:
   resta ancorato a un gutter fluido del viewport e scala rispetto alla
   larghezza configurata nel Customizer. Tablet landscape resta desktop.
   ========================================================================== */
@media screen and (min-width:1281px){
  .gs-header-shell.gs-container{
    width:auto;
    max-width:none;
    margin-left:var(--gs-header-desktop-gutter,28px);
    margin-right:var(--gs-header-desktop-gutter,28px);
  }
  .gs-header-shell{
    grid-template-columns:var(--gs-header-logo-slot-w,var(--gs-header-logo-w,205px)) 1fr;
  }
  .gs-brand{
    width:clamp(var(--gs-header-logo-min-w,144px),var(--gs-header-logo-fluid-vw,12.2vw),var(--gs-header-logo-max-w,236px));
    height:auto;
    min-height:0;
    aspect-ratio:var(--gs-header-logo-aspect,205 / 88);
  }
  .gs-brand.gs-brand-force-height{
    height:var(--gs-header-logo-force-h,88px);
    aspect-ratio:auto;
  }
  .gs-brand-main{width:100%;height:auto;max-width:100%;object-fit:contain;object-position:left top}
  .gs-brand.gs-brand-force-height .gs-brand-main{height:100%;object-fit:contain}
  .gs-brand-menu{width:100%;height:100%;max-width:100%;object-fit:contain;object-position:left center}
  .gs-site-header.is-scrolled .gs-header-shell{
    grid-template-columns:var(--gs-menu-logo-w,150px) 1fr;
  }
  .gs-site-header.is-scrolled .gs-brand{
    width:var(--gs-menu-logo-w,150px);
    height:var(--gs-menu-logo-render-h,58px);
    aspect-ratio:auto;
  }
}

@media screen and (min-width:769px) and (max-width:1280px) and (orientation:landscape){
  .gs-header-shell.gs-container{
    width:auto;
    max-width:none;
    margin-left:16px;
    margin-right:16px;
  }
  .gs-header-shell{
    grid-template-columns:var(--gs-header-logo-slot-w,var(--gs-header-logo-w,205px)) 1fr;
  }
  .gs-brand{
    width:clamp(var(--gs-header-logo-min-w,144px),var(--gs-header-logo-fluid-vw,12.2vw),var(--gs-header-logo-max-w,236px));
    height:auto;
    min-height:0;
    aspect-ratio:var(--gs-header-logo-aspect,205 / 88);
  }
  .gs-brand.gs-brand-force-height{height:var(--gs-header-logo-force-h,88px);aspect-ratio:auto}
  .gs-brand-main{width:100%;height:auto;max-width:100%;object-fit:contain;object-position:left top}
  .gs-brand.gs-brand-force-height .gs-brand-main{height:100%;object-fit:contain}
  .gs-brand-menu{width:100%;height:100%;max-width:100%;object-fit:contain;object-position:left center}
  .gs-site-header.is-scrolled .gs-header-shell{grid-template-columns:var(--gs-menu-logo-w,150px) 1fr}
  .gs-site-header.is-scrolled .gs-brand{width:var(--gs-menu-logo-w,150px);height:var(--gs-menu-logo-render-h,58px);aspect-ratio:auto}
}

/* v1.9.8 - Tablet portrait usa lo stesso footer compatto dello smartphone. */
@media screen and (min-width:768px) and (max-width:1024px) and (orientation:portrait){
  .gs-footer-main-grid{grid-template-columns:1fr;gap:min(var(--gs-mobile-footer-gap,14px),18px);padding:16px 0 10px;justify-items:center;text-align:center}
  .gs-footer-logo-wrap{justify-content:center;width:100%}
  .gs-footer-logo{object-position:center;max-width:132px;max-height:58px}
  .gs-footer-contact-list{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;font-size:11.5px;line-height:1.25;gap:4px 12px;max-width:430px}
  .gs-footer-line{grid-template-columns:16px auto;justify-content:center;text-align:left;flex:0 0 100%;gap:6px}
  .gs-footer-meta{font-size:9.5px;line-height:1.2}
  .gs-footer-menu{width:100%;max-width:320px}
  .gs-footer-links{grid-template-columns:repeat(var(--gs-mobile-footer-columns,2),minmax(0,1fr));gap:4px 12px;width:100%;text-align:center}
  .gs-footer-links a{display:block;padding:2px 0;font-size:11.5px;line-height:1.25}
  .gs-footer-access-item{display:none!important}
  .gs-footer-social{justify-content:center;width:100%;gap:6px}
  .gs-footer-social .gs-social-square{width:28px;height:28px}
  .gs-footer-italy{justify-self:center;align-items:center;text-align:center;gap:4px;font-size:10.5px;line-height:1.2}
  .gs-footer-italy i{width:78px;height:3px}
  .gs-footer-bottom{flex-direction:column;align-items:center;text-align:center;gap:4px;padding:7px 0 calc(9px + env(safe-area-inset-bottom,0px));font-size:9.5px;line-height:1.2}
  .gs-footer-legal{justify-content:center;flex-wrap:wrap}
  .gs-footer-legal a{padding:0 6px}
  .gs-mobile-footer-left .gs-footer-main-grid{justify-items:start;text-align:left}
  .gs-mobile-footer-left .gs-footer-logo-wrap,.gs-mobile-footer-left .gs-footer-social{justify-content:flex-start}
  .gs-mobile-footer-left .gs-footer-contact-list{justify-content:flex-start;justify-items:start}
  .gs-mobile-footer-left .gs-footer-line{justify-content:start}
  .gs-mobile-footer-left .gs-footer-links{text-align:left}
  .gs-mobile-footer-left .gs-footer-italy{justify-self:start;align-items:flex-start;text-align:left}
  .gs-mobile-footer-left .gs-footer-bottom{align-items:flex-start;text-align:left}
}


/* ==========================================================================
   1.9.10 - Allineamento footer mobile + rotazione medium configurabile
   ========================================================================== */
@media screen and (max-width:767px), screen and (min-width:768px) and (max-width:1024px) and (orientation:portrait){
  /* La scelta del Customizer viene applicata all'intero footer, non solo al menu. */
  .gs-mobile-footer-left .gs-footer-main-grid{justify-items:start;text-align:left}
  .gs-mobile-footer-left .gs-footer-logo-wrap,
  .gs-mobile-footer-left .gs-footer-contact-list,
  .gs-mobile-footer-left .gs-footer-menu,
  .gs-mobile-footer-left .gs-footer-social{width:100%;max-width:none;margin-inline:0;justify-content:flex-start}
  .gs-mobile-footer-left .gs-footer-line,
  .gs-mobile-footer-left .gs-footer-phone-line,
  .gs-mobile-footer-left .gs-footer-email-line{width:100%;max-width:none;margin-inline:0;justify-content:start;text-align:left}
  .gs-mobile-footer-left .gs-footer-links{text-align:left}
  .gs-mobile-footer-left .gs-footer-italy{justify-self:start;align-items:flex-start;text-align:left}
  .gs-mobile-footer-left .gs-footer-bottom{align-items:flex-start;text-align:left}
  .gs-mobile-footer-left .gs-footer-legal{justify-content:flex-start}

  .gs-mobile-footer-center .gs-footer-main-grid{justify-items:center;text-align:center}
  .gs-mobile-footer-center .gs-footer-logo-wrap,
  .gs-mobile-footer-center .gs-footer-contact-list,
  .gs-mobile-footer-center .gs-footer-menu,
  .gs-mobile-footer-center .gs-footer-social{justify-content:center;margin-inline:auto}
  .gs-mobile-footer-center .gs-footer-phone-line,
  .gs-mobile-footer-center .gs-footer-email-line{margin-inline:auto}
  .gs-mobile-footer-center .gs-footer-links{text-align:center}
  .gs-mobile-footer-center .gs-footer-italy{justify-self:center;align-items:center;text-align:center}
  .gs-mobile-footer-center .gs-footer-bottom{align-items:center;text-align:center}
  .gs-mobile-footer-center .gs-footer-legal{justify-content:center}

  .gs-mobile-footer-right .gs-footer-main-grid{justify-items:end;text-align:right}
  .gs-mobile-footer-right .gs-footer-logo-wrap,
  .gs-mobile-footer-right .gs-footer-contact-list,
  .gs-mobile-footer-right .gs-footer-menu,
  .gs-mobile-footer-right .gs-footer-social{width:100%;max-width:none;margin-inline:0;justify-content:flex-end}
  .gs-mobile-footer-right .gs-footer-line,
  .gs-mobile-footer-right .gs-footer-phone-line,
  .gs-mobile-footer-right .gs-footer-email-line{width:100%;max-width:none;margin-inline:0;justify-content:end;text-align:right}
  .gs-mobile-footer-right .gs-footer-links{text-align:right}
  .gs-mobile-footer-right .gs-footer-italy{justify-self:end;align-items:flex-end;text-align:right}
  .gs-mobile-footer-right .gs-footer-bottom{align-items:flex-end;text-align:right}
  .gs-mobile-footer-right .gs-footer-legal{justify-content:flex-end}
}


/* ==========================================================================\n   1.9.11 - Footer contatti mobile + Medium 3D robusto\n   ========================================================================== */

/* Icone footer coerenti: stessa geometria/stroke per indirizzo, telefono, email. */
.gs-footer-symbol{width:18px;height:18px;display:grid;place-items:center;line-height:1;color:currentColor}
.gs-footer-symbol svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gs-footer-address-content{min-width:0;display:block}
.gs-footer-address-content .gs-map-link{max-width:100%;justify-content:flex-start;text-align:left}

/* Rotazione di sicurezza anche senza pointer tracking: su desktop un hover produce sempre un tilt visibile. */
@media (hover:hover) and (min-width:1025px), (hover:hover) and (min-width:768px) and (max-width:1024px) and (orientation:landscape){
  body.gs-medium-tilt-enabled .gs-medium-card{transform-origin:center center;transform-style:preserve-3d;backface-visibility:hidden}
  body.gs-medium-tilt-enabled .gs-medium-card:hover,
  body.gs-medium-tilt-enabled .gs-medium-card:focus-visible{
    transform:perspective(var(--gs-medium-tilt-perspective,1100px)) translateY(calc(-1 * var(--gs-medium-tilt-lift,6px))) rotateX(var(--gs-medium-tilt-x-neg,-4deg)) rotateY(var(--gs-medium-tilt-y-max,7deg));
  }
  body.gs-medium-tilt-enabled .gs-medium-card:nth-child(even):hover,
  body.gs-medium-tilt-enabled .gs-medium-card:nth-child(even):focus-visible{
    transform:perspective(var(--gs-medium-tilt-perspective,1100px)) translateY(calc(-1 * var(--gs-medium-tilt-lift,6px))) rotateX(var(--gs-medium-tilt-x-neg,-4deg)) rotateY(var(--gs-medium-tilt-y-neg,-7deg));
  }
  body.gs-medium-tilt-enabled .gs-medium-card.is-tilting{
    transform:perspective(var(--gs-medium-tilt-perspective,1100px)) translateY(calc(-1 * var(--gs-medium-tilt-lift,6px))) rotateX(var(--gs-tilt-x,0deg)) rotateY(var(--gs-tilt-y,0deg));
    transition:transform .085s linear,box-shadow .3s ease,filter .3s ease;
  }
}

/* Solo il blocco contatti mobile ha testo allineato a sinistra. Il resto del footer continua\n   a rispettare Sinistra/Centro/Destra scelto in Personalizza > Mobile > Footer mobile. */
@media screen and (max-width:767px), screen and (min-width:768px) and (max-width:1024px) and (orientation:portrait){
  .gs-footer-contact-list{
    display:grid;
    width:min(100%,320px);
    max-width:320px;
    gap:4px;
    justify-content:stretch;
    justify-items:stretch;
    align-items:start;
    text-align:left;
  }
  .gs-footer-line,
  .gs-footer-phone-line,
  .gs-footer-email-line,
  .gs-footer-address-line{
    display:grid;
    grid-template-columns:18px minmax(0,1fr);
    align-items:center;
    justify-content:stretch;
    width:100%;
    max-width:none;
    margin:0;
    gap:7px;
    text-align:left;
  }
  .gs-footer-line>a,
  .gs-footer-address-content,
  .gs-footer-address-content .gs-map-link{
    min-width:0;
    justify-self:start;
    text-align:left;
  }
  .gs-footer-meta{width:100%;text-align:center}

  .gs-mobile-footer-left .gs-footer-contact-list{margin-left:0;margin-right:auto}
  .gs-mobile-footer-center .gs-footer-contact-list{margin-left:auto;margin-right:auto}
  .gs-mobile-footer-right .gs-footer-contact-list{margin-left:auto;margin-right:0}

  /* Evita che le vecchie regole di allineamento globale ribaltino le tre righe contatto. */
  .gs-mobile-footer-left .gs-footer-line,
  .gs-mobile-footer-center .gs-footer-line,
  .gs-mobile-footer-right .gs-footer-line,
  .gs-mobile-footer-left .gs-footer-phone-line,
  .gs-mobile-footer-center .gs-footer-phone-line,
  .gs-mobile-footer-right .gs-footer-phone-line,
  .gs-mobile-footer-left .gs-footer-email-line,
  .gs-mobile-footer-center .gs-footer-email-line,
  .gs-mobile-footer-right .gs-footer-email-line{
    justify-content:stretch;
    text-align:left;
  }
}

/* ==========================================================================
   v1.10.0 - Medium Style 1: quattro card quadrate, semplici e compatte.
   La disposizione resta dentro la Hero su desktop/tablet landscape; mobile e
   tablet portrait mantengono autoresize e flusso verticale.
   ========================================================================== */
body.gs-medium-style-style1 .gs-medium-track{align-items:flex-end}
body.gs-medium-style-style1 .gs-medium-card{
  flex-basis:clamp(112px,8.6vw,164px);width:clamp(112px,8.6vw,164px);height:auto;aspect-ratio:1/1;
  border-radius:14px;background:rgba(255,255,255,.96);overflow:hidden;box-shadow:0 10px 26px rgba(0,0,0,.18)
}
body.gs-medium-style-style1 .gs-medium-media{inset:0;height:100%;clip-path:none;background:#1f3f78}
body.gs-medium-style-style1 .gs-medium-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,34,.06) 45%,rgba(8,18,34,.72) 100%);pointer-events:none}
body.gs-medium-style-style1 .gs-medium-media img{object-fit:cover;object-position:center;filter:saturate(.92) contrast(1.03)}
body.gs-medium-style-style1 .gs-medium-title{top:auto;left:0;right:0;bottom:0;height:auto;min-height:34%;padding:12px 9px 11px;align-items:flex-end;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.98) 42%);color:#101820;font-size:clamp(12px,var(--gs-medium-title-size,18px),18px);line-height:1.05}
body.gs-medium-style-style1 .gs-medium-title::after{height:2px}
body.gs-medium-style-style1.gs-theme-dark .gs-medium-card{background:#172028}
body.gs-medium-style-style1.gs-theme-dark .gs-medium-title{color:#f6f7f8;background:linear-gradient(180deg,rgba(23,32,40,0),rgba(23,32,40,.98) 42%)}
@media screen and (min-width:769px) and (max-width:1280px) and (orientation:landscape){
  body.gs-medium-style-style1 .gs-medium-card{flex-basis:clamp(104px,9vw,134px);width:clamp(104px,9vw,134px)}
}
@media screen and (min-width:1921px){body.gs-medium-style-style1 .gs-medium-card{flex-basis:clamp(150px,7.5vw,190px);width:clamp(150px,7.5vw,190px)}}
@media screen and (max-width:768px), screen and (min-width:769px) and (max-width:1024px) and (orientation:portrait){
  body.gs-medium-style-style1 .gs-medium-card,
  body.gs-medium-style-style1 .gs-medium-card:hover,
  body.gs-medium-style-style1 .gs-medium-card:focus-visible{
    width:min(72vw,var(--gs-mobile-medium-width,300px));max-width:300px;height:auto;aspect-ratio:1/1;border-radius:16px
  }
  body.gs-medium-style-style1 .gs-medium-media{height:100%;border-radius:16px}
  body.gs-medium-style-style1 .gs-medium-title{top:auto;min-height:31%;border-radius:0 0 16px 16px;font-size:var(--gs-mobile-medium-title-size,var(--gs-medium-title-size,18px))}
}


/* ========================================================================== 
   v1.10.1 - Correzione CTA azienda dark + Medium Style 2 / Style 3
   ========================================================================== */

/* Nel tema scuro "Scopri l'azienda" usa lo stesso trattamento rosso/bianco
   del pulsante "Tutti i servizi". Il tema chiaro resta invariato. */
body.gs-theme-dark .gs-company-copy .gs-company-toggle{
  background:var(--gs-red);
  border-color:var(--gs-red);
  color:#fff;
}
body.gs-theme-dark .gs-company-copy .gs-company-toggle:hover,
body.gs-theme-dark .gs-company-copy .gs-company-toggle:focus-visible{
  background:#c9161d;
  border-color:#c9161d;
  color:#fff;
  outline:0;
}

/* --------------------------------------------------------------------------
   STYLE 2 - quadrato come Style 1, titolo separato subito sotto.
   Desktop/tablet landscape: dentro Hero. Mobile/tablet portrait: autoresize.
   -------------------------------------------------------------------------- */
body.gs-medium-style-style2 .gs-medium-track{align-items:flex-start}
body.gs-medium-style-style2 .gs-medium-card{
  flex:0 0 clamp(112px,8.6vw,164px);
  width:clamp(112px,8.6vw,164px);
  height:auto;
  aspect-ratio:auto;
  background:transparent;
  overflow:visible;
  box-shadow:none;
}
body.gs-medium-style-style2 .gs-medium-card:hover,
body.gs-medium-style-style2 .gs-medium-card:focus-visible{
  box-shadow:none;
  filter:none;
}
body.gs-medium-style-style2 .gs-medium-media{
  position:relative;
  inset:auto;
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1/1;
  clip-path:none;
  border-radius:14px;
  overflow:hidden;
  background:#1f3f78;
  box-shadow:0 10px 26px rgba(0,0,0,.18);
}
body.gs-medium-style-style2 .gs-medium-media:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(8,18,34,.02),rgba(8,18,34,.16));
  pointer-events:none;
}
body.gs-medium-style-style2 .gs-medium-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
body.gs-medium-style-style2 .gs-medium-title{
  position:relative;
  inset:auto;
  display:flex;
  min-height:0;
  height:auto;
  align-items:flex-start;
  justify-content:center;
  padding:10px 4px 0;
  overflow:visible;
  background:transparent;
  color:#fff;
  text-shadow:0 1px 5px rgba(0,0,0,.55);
  font-size:clamp(12px,var(--gs-medium-title-size,18px),18px);
  line-height:1.08;
}
body.gs-medium-style-style2 .gs-medium-title::after{display:none}
body.gs-medium-style-style2 .gs-medium-title>span{-webkit-line-clamp:2}

/* --------------------------------------------------------------------------
   STYLE 3 - icone originali Gioria in linguaggio geometrico blu/bianco.
   -------------------------------------------------------------------------- */
body.gs-medium-style-style3 .gs-medium-track{align-items:flex-start}
body.gs-medium-style-style3 .gs-medium-card{
  flex:0 0 clamp(112px,8.6vw,164px);
  width:clamp(112px,8.6vw,164px);
  height:auto;
  aspect-ratio:auto;
  background:transparent;
  overflow:visible;
  box-shadow:none;
}
body.gs-medium-style-style3 .gs-medium-card:hover,
body.gs-medium-style-style3 .gs-medium-card:focus-visible{
  box-shadow:none;
  filter:none;
}
body.gs-medium-style-style3 .gs-medium-media{
  position:relative;
  inset:auto;
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1/1;
  clip-path:none;
  border-radius:18px;
  overflow:hidden;
  background:#28477e;
  box-shadow:0 10px 26px rgba(0,0,0,.18);
}
body.gs-medium-style-style3 .gs-medium-media:after{display:none}
body.gs-medium-style-style3 .gs-medium-media img.gs-medium-style3-icon{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  transform:none;
  filter:none;
}
body.gs-medium-style-style3 .gs-medium-card:hover .gs-medium-media img.gs-medium-style3-icon,
body.gs-medium-style-style3 .gs-medium-card:focus-visible .gs-medium-media img.gs-medium-style3-icon{
  transform:scale(1.035);
  filter:none;
}
body.gs-medium-style-style3 .gs-medium-title{
  position:relative;
  inset:auto;
  display:flex;
  min-height:0;
  height:auto;
  align-items:flex-start;
  justify-content:center;
  padding:10px 4px 0;
  overflow:visible;
  background:transparent;
  color:#fff;
  text-shadow:0 1px 5px rgba(0,0,0,.55);
  font-size:clamp(12px,var(--gs-medium-title-size,18px),18px);
  line-height:1.08;
}
body.gs-medium-style-style3 .gs-medium-title::after{display:none}
body.gs-medium-style-style3 .gs-medium-title>span{-webkit-line-clamp:2}

@media screen and (min-width:769px) and (max-width:1280px) and (orientation:landscape){
  body.gs-medium-style-style2 .gs-medium-card,
  body.gs-medium-style-style3 .gs-medium-card{flex-basis:clamp(104px,9vw,134px);width:clamp(104px,9vw,134px)}
}
@media screen and (min-width:1921px){
  body.gs-medium-style-style2 .gs-medium-card,
  body.gs-medium-style-style3 .gs-medium-card{flex-basis:clamp(150px,7.5vw,190px);width:clamp(150px,7.5vw,190px)}
}

@media screen and (max-width:768px), screen and (min-width:769px) and (max-width:1024px) and (orientation:portrait){
  body.gs-medium-style-style2 .gs-medium-card,
  body.gs-medium-style-style2 .gs-medium-card:hover,
  body.gs-medium-style-style2 .gs-medium-card:focus-visible,
  body.gs-medium-style-style3 .gs-medium-card,
  body.gs-medium-style-style3 .gs-medium-card:hover,
  body.gs-medium-style-style3 .gs-medium-card:focus-visible{
    width:min(64vw,var(--gs-mobile-medium-width,300px));
    max-width:260px;
    height:auto;
    aspect-ratio:auto;
    border-radius:0;
    background:transparent;
  }
  body.gs-medium-style-style2 .gs-medium-media,
  body.gs-medium-style-style3 .gs-medium-media{
    width:100%;
    height:auto;
    aspect-ratio:1/1;
    border-radius:16px;
  }
  body.gs-medium-style-style2 .gs-medium-title,
  body.gs-medium-style-style3 .gs-medium-title{
    top:auto;
    min-height:0;
    padding:9px 4px 0;
    border-radius:0;
    color:var(--gs-ink);
    text-shadow:none;
    font-size:var(--gs-mobile-medium-title-size,var(--gs-medium-title-size,18px));
  }
  body.gs-theme-dark.gs-medium-style-style2 .gs-medium-title,
  body.gs-theme-dark.gs-medium-style-style3 .gs-medium-title{color:var(--gs-ink)}
}

/* ========================================================================== 
   v1.10.2 - Azienda + servizi, Medium attention pulse, partner anchored
   ========================================================================== */

/* PARTNER: posizionamento base; il tablet landscape usa il layout a quattro slot qui sotto. */
.gs-hero-partners{
  left:var(--gs-partner-desktop-left,280px);
  right:auto;
  bottom:var(--gs-partner-desktop-bottom,42px);
  gap:var(--gs-partner-gap,14px);
  padding:0;
  max-width:calc(100% - var(--gs-partner-desktop-left,280px) - 18px);
}

/*
 * Tablet landscape, inclusi iPad Pro moderni oltre 1280 CSS px:
 * l'area partner viene suddivisa stabilmente in quattro slot. In questo modo
 * 1, 2, 3 o 4 loghi usano sempre lo stesso spazio senza invadere i MEDIUM.
 * Le dimensioni salvate nel Customizer restano valide su desktop; qui agiscono
 * come dimensioni massime e il logo viene ridotto solo quando necessario.
 */
@media screen and (min-width:769px) and (max-width:1280px) and (orientation:landscape),
       screen and (min-width:1281px) and (max-width:1500px) and (orientation:landscape) and (pointer:coarse){
  .gs-hero-partners{
    left:var(--gs-partner-tablet-left,72px);
    right:auto;
    bottom:var(--gs-partner-tablet-bottom,30px);
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    width:min(40vw,620px);
    max-width:calc(100% - var(--gs-partner-tablet-left,72px) - 18px);
    padding:0;
    gap:min(var(--gs-partner-gap,14px),14px);
    align-items:end;
    justify-content:stretch;
    overflow:visible;
  }
  .gs-hero-partners .gs-partner-logo{
    width:auto!important;
    max-width:100%;
    flex:initial!important;
    min-width:0;
    justify-content:flex-start;
    align-items:flex-end;
    overflow:hidden;
  }
  .gs-hero-partners .gs-partner-logo>a{
    display:flex;
    width:100%;
    max-width:100%;
    align-items:flex-end;
    justify-content:flex-start;
  }
  .gs-hero-partners .gs-partner-logo img{
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:clamp(48px,5.4vw,76px);
    object-fit:contain;
    object-position:left bottom;
  }
}

@media screen and (max-width:768px), screen and (min-width:769px) and (max-width:1024px) and (orientation:portrait){
  .gs-hero-partners{
    left:var(--gs-partner-mobile-left,18px);
    right:18px;
    bottom:var(--gs-partner-mobile-bottom,28px);
    padding:0;
    gap:var(--gs-partner-gap,14px);
    max-width:none;
    justify-content:flex-start;
    align-items:flex-end;
    overflow-x:auto;
    overflow-y:hidden;
  }
}

/* MEDIUM STYLE 4: stesso layout di Attuale, con richiamo visivo ciclico rosso/bianco. */
@keyframes gsMediumAttention{
  0%,58%,100%{opacity:0}
  66%{opacity:.28}
  74%{opacity:.95}
  83%{opacity:.18}
}
body.gs-medium-style-style4 .gs-medium-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:12;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.92);
  border-radius:inherit;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.92),inset 0 0 22px rgba(227,27,35,.48),0 0 0 1px rgba(227,27,35,.28),0 0 20px rgba(227,27,35,.72);
  opacity:0;
  animation:gsMediumAttention 3.2s ease-in-out infinite;
}
body.gs-medium-style-style4 .gs-medium-card:nth-child(2)::before{animation-delay:.42s}
body.gs-medium-style-style4 .gs-medium-card:nth-child(3)::before{animation-delay:.84s}
body.gs-medium-style-style4 .gs-medium-card:nth-child(4)::before{animation-delay:1.26s}

/* AZIENDA + SERVIZI: i cinque servizi ora vivono dentro l'espansione Azienda. */
.gs-company.is-expanded{border-bottom:1px solid var(--gs-border)}
.gs-company-services{margin-top:28px;border-top:1px solid var(--gs-border)}
.gs-company-services-head{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:26px 0 14px}
.gs-company-services-head .gs-kicker{margin:0}
.gs-company-services-head h2{margin:0;font-size:clamp(24px,2.1vw,32px);line-height:1.08;font-weight:600}
.gs-company-services-list{border:1px solid var(--gs-border);border-bottom:0;background:var(--gs-surface)}
.gs-company-service{border-bottom:1px solid var(--gs-border)}
.gs-company-service-toggle{width:100%;border:0;background:transparent;color:var(--gs-ink);display:grid;grid-template-columns:82px minmax(0,1fr) 38px;gap:18px;align-items:center;text-align:left;padding:18px 22px;cursor:pointer}
.gs-company-service-toggle:hover,.gs-company-service-toggle:focus-visible{background:var(--gs-soft);outline:0}
.gs-company-service-icon{width:72px;height:58px;display:flex;align-items:center;justify-content:center}
.gs-company-service-icon img{width:100%;height:100%;object-fit:contain}
.gs-company-service-copy{display:grid;gap:4px;min-width:0}
.gs-company-service-copy strong{font-size:18px;line-height:1.2;color:var(--gs-red)}
.gs-company-service-copy small{font-size:13px;line-height:1.45;color:var(--gs-muted);font-weight:400}
.gs-company-service-chevron{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--gs-border);font-size:24px;line-height:1;font-weight:300;transition:transform .22s ease,background .22s ease,color .22s ease}
.gs-company-service-toggle[aria-expanded="true"] .gs-company-service-chevron{background:var(--gs-red);border-color:var(--gs-red);color:#fff;transform:rotate(180deg)}
.gs-company-service-panel[hidden]{display:none}
.gs-company-service-panel{padding:4px 78px 22px 122px;animation:gsReveal .26s ease both;background:var(--gs-surface)}
.gs-company-service-panel p{display:grid;grid-template-columns:18px 1fr;gap:7px;margin:0 0 11px;color:var(--gs-muted);font-size:14px;line-height:1.65}
.gs-theme-dark .gs-company-service-icon img{filter:invert(1)}

@media screen and (max-width:768px), screen and (min-width:769px) and (max-width:1024px) and (orientation:portrait){
  .gs-company-services{margin-top:20px}
  .gs-company-services-head{padding:22px 2px 12px;align-items:flex-start;flex-direction:column;gap:5px}
  .gs-company-service-toggle{grid-template-columns:58px minmax(0,1fr) 32px;gap:12px;padding:14px 12px}
  .gs-company-service-icon{width:54px;height:46px}
  .gs-company-service-copy strong{font-size:16px}
  .gs-company-service-copy small{font-size:12px}
  .gs-company-service-chevron{width:30px;height:30px;font-size:21px}
  .gs-company-service-panel{padding:4px 14px 18px 84px}
  .gs-company-service-panel p{font-size:13px;line-height:1.58}
}
@media screen and (max-width:420px){
  .gs-company-service-toggle{grid-template-columns:48px minmax(0,1fr) 30px;gap:10px;padding:13px 9px}
  .gs-company-service-icon{width:44px;height:40px}
  .gs-company-service-panel{padding:3px 10px 17px 67px}
}

@media (prefers-reduced-motion:reduce){
  body.gs-medium-style-style4 .gs-medium-card::before{animation:none!important;opacity:.18}
}


/* ==========================================================================
   v1.10.3 - Medium Style 4
   ========================================================================== */
/* Style 4 eredita integralmente il layout Attuale; cambia solo il richiamo luminoso. */


/* ==========================================================================
   v1.10.4 - Medium Style 5 + Servizi orizzontali dentro Azienda
   ========================================================================== */

/* Azienda viene prima; i cinque servizi mantengono il comportamento della 1.10.1. */
.gs-company-services.gs-services{
  margin-top:28px;
  padding:22px 0 0;
  border-top:1px solid var(--gs-border);
  background:transparent;
}
.gs-company-services.gs-services .gs-services-head{margin-bottom:12px}

/* STYLE 5: tutti e quattro i Medium pulsano insieme, con una lieve sfalsatura. */
@keyframes gsMediumAttentionAll{
  0%,100%{opacity:.12}
  22%{opacity:.88}
  50%{opacity:.34}
  72%{opacity:.78}
}
body.gs-medium-style-style5 .gs-medium-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:12;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.94);
  border-radius:inherit;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.88),inset 0 0 20px rgba(227,27,35,.42),0 0 0 1px rgba(227,27,35,.26),0 0 22px rgba(227,27,35,.68);
  opacity:.12;
  animation:gsMediumAttentionAll 2.2s ease-in-out infinite;
}
body.gs-medium-style-style5 .gs-medium-card:nth-child(2)::before{animation-delay:.14s}
body.gs-medium-style-style5 .gs-medium-card:nth-child(3)::before{animation-delay:.28s}
body.gs-medium-style-style5 .gs-medium-card:nth-child(4)::before{animation-delay:.42s}

@media screen and (max-width:768px), screen and (min-width:769px) and (max-width:1024px) and (orientation:portrait){
  .gs-company-services.gs-services{margin-top:20px;padding-top:18px}
}

@media (prefers-reduced-motion:reduce){
  body.gs-medium-style-style5 .gs-medium-card::before{animation:none!important;opacity:.22}
}


/* ==========================================================================
   v1.10.5 - Azienda: autoresize SVG
   ========================================================================== */
@media (max-width:1024px){
  .gs-company-media-svg{background-size:contain;background-position:center center;background-repeat:no-repeat}
}

/* ==========================================================================
   v1.10.6 - CTA Azienda rosso + Medium Style 6 sotto la Hero
   ========================================================================== */

/* "Scopri l'azienda" usa sempre il trattamento istituzionale rosso/bianco,
   indipendentemente dal tema chiaro o scuro. */
.gs-company-copy .gs-company-toggle{
  background:var(--gs-red);
  border-color:var(--gs-red);
  color:#fff;
}
.gs-company-copy .gs-company-toggle:hover,
.gs-company-copy .gs-company-toggle:focus-visible{
  background:#c9161d;
  border-color:#c9161d;
  color:#fff;
  outline:0;
}

/* STYLE 6: quattro card editoriali immediatamente sotto la Hero. */
body.gs-medium-style-style6{
  --gs-style6-card-h:clamp(335px,26vw,460px);
  --gs-style6-gap:clamp(14px,1.25vw,24px);
}
body.gs-medium-style-style6 .gs-hero{
  overflow:visible;
  margin-bottom:calc(var(--gs-style6-card-h) + 54px);
}
body.gs-medium-style-style6 .gs-mediums{
  left:50%;
  right:auto;
  bottom:0;
  width:min(calc(100% - 40px),var(--gs-container));
  max-width:var(--gs-container);
  transform:translate(-50%,calc(100% + 24px));
  padding:0;
  background:transparent;
  z-index:360;
}
body.gs-medium-style-style6 .gs-medium-track{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  justify-content:stretch;
  gap:var(--gs-style6-gap);
  width:100%;
  max-width:none;
  perspective:1400px;
}
body.gs-medium-style-style6 .gs-medium-card,
body.gs-medium-style-style6 .gs-medium-card:hover,
body.gs-medium-style-style6 .gs-medium-card:focus-visible{
  display:flex;
  flex-direction:column;
  width:100%;
  height:var(--gs-style6-card-h);
  min-width:0;
  flex:initial;
  border:1px solid var(--gs-border);
  border-radius:7px;
  overflow:hidden;
  background:var(--gs-surface);
  color:var(--gs-ink);
  box-shadow:0 12px 30px rgba(16,21,26,.12);
}
body.gs-medium-style-style6 .gs-medium-card:hover,
body.gs-medium-style-style6 .gs-medium-card:focus-visible{
  box-shadow:0 20px 42px rgba(16,21,26,.18);
}
body.gs-medium-style-style6 .gs-medium-media{
  position:relative;
  inset:auto;
  width:100%;
  height:62%;
  flex:0 0 62%;
  overflow:hidden;
  background:#222;
  clip-path:none;
  border-radius:0;
}
body.gs-medium-style-style6 .gs-medium-media>img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
body.gs-medium-style-style6 .gs-medium-title{
  position:relative;
  inset:auto;
  display:block;
  min-height:0;
  padding:18px 22px 3px;
  overflow:visible;
  background:transparent;
  color:var(--gs-ink);
  text-align:left;
  font-family:var(--gs-medium-title-font,Impact,"Anton","Oswald","Arial Narrow",sans-serif);
  font-size:clamp(14px,var(--gs-medium-title-size,18px),22px);
  line-height:1.08;
  letter-spacing:.01em;
}
body.gs-medium-style-style6 .gs-medium-title::after{display:none}
body.gs-medium-style-style6 .gs-medium-title>span{
  display:block;
  overflow:visible;
  -webkit-line-clamp:unset;
}
body.gs-medium-style-style6 .gs-medium-style6-text{
  display:block;
  padding:4px 22px 12px;
  color:var(--gs-muted);
  font-size:clamp(12px,.9vw,15px);
  line-height:1.42;
}
body.gs-medium-style-style6 .gs-medium-style6-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:auto 22px 0;
  padding:13px 0 15px;
  border-top:1px solid var(--gs-border);
  color:var(--gs-ink);
  font-size:12px;
  line-height:1;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
}
body.gs-medium-style-style6 .gs-medium-style6-cta svg{
  width:19px;
  height:19px;
  flex:0 0 auto;
  transition:transform .24s ease;
}
body.gs-medium-style-style6 .gs-medium-card:hover .gs-medium-style6-cta svg,
body.gs-medium-style-style6 .gs-medium-card:focus-visible .gs-medium-style6-cta svg{
  transform:translateX(4px);
}
body.gs-medium-style-style6 .gs-medium-style6-icon{
  position:absolute;
  left:18px;
  bottom:14px;
  z-index:4;
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border:2px solid rgba(255,255,255,.94);
  border-radius:50%;
  background:rgba(18,22,26,.66);
  box-shadow:0 4px 16px rgba(0,0,0,.18);
}
body.gs-medium-style-style6 .gs-medium-style6-icon img,
body.gs-medium-style-style6 .gs-medium-card:hover .gs-medium-style6-icon img,
body.gs-medium-style-style6 .gs-medium-card:focus-visible .gs-medium-style6-icon img{
  width:68%!important;
  height:68%!important;
  object-fit:contain!important;
  transform:none!important;
  filter:none!important;
}
body.gs-theme-dark.gs-medium-style-style6 .gs-medium-card{
  border-color:rgba(255,255,255,.12);
  box-shadow:0 14px 34px rgba(0,0,0,.30);
}
body.gs-theme-dark.gs-medium-style-style6 .gs-medium-title,
body.gs-theme-dark.gs-medium-style-style6 .gs-medium-style6-cta{color:#fff}
body.gs-theme-dark.gs-medium-style-style6 .gs-medium-style6-text{color:#c9ced2}
body.gs-theme-dark.gs-medium-style-style6 .gs-medium-style6-cta{border-top-color:rgba(255,255,255,.15)}

/* Tablet portrait: due card per riga sotto la Hero. */
@media screen and (min-width:769px) and (max-width:1024px) and (orientation:portrait){
  body.gs-medium-style-style6{--gs-style6-card-h:360px}
  body.gs-medium-style-style6 .gs-hero{margin-bottom:0}
  body.gs-medium-style-style6 .gs-mediums{
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    width:100%;
    max-width:none;
    transform:none;
    padding:26px 22px 38px;
    background:var(--gs-bg);
  }
  body.gs-medium-style-style6 .gs-medium-track{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    max-width:900px;
    margin:0 auto;
  }
  body.gs-medium-style-style6 .gs-medium-card,
  body.gs-medium-style-style6 .gs-medium-card:hover,
  body.gs-medium-style-style6 .gs-medium-card:focus-visible{
    height:var(--gs-style6-card-h);
    max-width:none;
    aspect-ratio:auto;
  }
}

/* Smartphone: una card per riga, autoresize e immagini non deformate. */
@media screen and (max-width:768px){
  body.gs-medium-style-style6{--gs-style6-card-h:auto}
  body.gs-medium-style-style6 .gs-hero{margin-bottom:0}
  body.gs-medium-style-style6 .gs-mediums{
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    width:100%;
    max-width:none;
    transform:none;
    padding:22px 16px 34px;
    background:var(--gs-bg);
  }
  body.gs-medium-style-style6 .gs-medium-track{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
    width:100%;
    max-width:520px;
    margin:0 auto;
  }
  body.gs-medium-style-style6 .gs-medium-card,
  body.gs-medium-style-style6 .gs-medium-card:hover,
  body.gs-medium-style-style6 .gs-medium-card:focus-visible{
    width:100%;
    max-width:none;
    height:auto;
    aspect-ratio:auto;
    border-radius:7px;
  }
  body.gs-medium-style-style6 .gs-medium-media{
    width:100%;
    height:auto;
    flex:none;
    aspect-ratio:16/10;
    border-radius:0;
  }
  body.gs-medium-style-style6 .gs-medium-title{
    padding:16px 18px 3px;
    font-size:var(--gs-mobile-medium-title-size,var(--gs-medium-title-size,18px));
  }
  body.gs-medium-style-style6 .gs-medium-style6-text{padding:4px 18px 12px;font-size:14px}
  body.gs-medium-style-style6 .gs-medium-style6-cta{margin:0 18px;padding:13px 0 15px}
  body.gs-medium-style-style6 .gs-medium-style6-icon{left:14px;bottom:12px;width:52px;height:52px}
}

@media (prefers-reduced-motion:reduce){
  body.gs-medium-style-style6 .gs-medium-style6-cta svg{transition:none}
}

/* ================================================================
   MANUTENZIONE - banner informativo centrale
   ================================================================ */
.gs-maintenance-layer{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  place-items:center;
  padding:24px;
  pointer-events:none;
  isolation:isolate;
}
.gs-maintenance-backdrop{
  position:absolute;
  inset:0;
  z-index:-1;
  background:rgba(0,0,0,var(--gs-maintenance-overlay,.32));
}
.gs-maintenance-banner{
  width:min(var(--gs-maintenance-width,620px),calc(100vw - 32px));
  padding:clamp(20px,3vw,34px) clamp(22px,4vw,46px);
  border:1px solid rgba(255,255,255,.26);
  border-radius:10px;
  background:var(--gs-maintenance-bg,#c8102e);
  color:var(--gs-maintenance-text,#fff);
  box-shadow:0 18px 60px rgba(0,0,0,.28);
  font-size:clamp(22px,var(--gs-maintenance-font-size,38px),52px);
  font-weight:800;
  line-height:1.12;
  letter-spacing:.035em;
  text-align:center;
  text-transform:uppercase;
  overflow-wrap:anywhere;
}
@media (max-width:768px){
  .gs-maintenance-layer{padding:16px}
  .gs-maintenance-banner{
    width:min(var(--gs-maintenance-width,620px),calc(100vw - 24px));
    padding:20px 18px;
    border-radius:8px;
    font-size:clamp(20px,8vw,var(--gs-maintenance-font-size,38px));
  }
}
@media (prefers-reduced-motion:reduce){
  .gs-maintenance-layer,.gs-maintenance-banner{scroll-behavior:auto}
}

/* ==========================================================================
   1.10.9 - Footer qualita configurabile + immagine Azienda dark
   ========================================================================== */
.gs-footer-italy{font-size:var(--gs-footer-quality-font-size,12px)}
.gs-footer-italy.gs-footer-quality-align-left{justify-self:start;align-items:flex-start;text-align:left}
.gs-footer-italy.gs-footer-quality-align-center{justify-self:center;align-items:center;text-align:center}
.gs-footer-italy.gs-footer-quality-align-right{justify-self:end;align-items:flex-end;text-align:right}
@media (max-width:767px){.gs-footer-quality-hide-mobile{display:none!important}}
@media (min-width:768px) and (max-width:1024px) and (orientation:portrait){.gs-footer-quality-hide-mobile{display:none!important}}

/* ==========================================================================
   1.10.10 - Azienda: respiro verticale immagine dedicata tema scuro
   ========================================================================== */
/* La variante scura puo avere un viewBox piu stretto rispetto al logo chiaro.
   La sua area di disegno viene quindi inset di pochi pixel senza deformarla,
   mantenendo un margine visivo sopra il footer su desktop, tablet e mobile. */
.gs-company-media-dark.gs-company-media-svg{
  padding:8px 16px 20px;
  background-origin:content-box;
  background-clip:content-box;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center center;
}

@media screen and (max-width:768px), screen and (min-width:769px) and (max-width:1024px) and (orientation:portrait){
  .gs-company-media-dark.gs-company-media-svg{padding:8px 12px 18px}
}

/* ==========================================================================
   1.10.11 - Footer: credito realizzatore configurabile
   ========================================================================== */
.gs-footer-copyright-line{min-width:0}
@media(max-width:767px){
  .gs-footer-powered{display:inline}
}

/* ================================================================
   1.10.12 - Footer: Powered by sempre visibile quando abilitato
   - Fallback nome realizzatore: YUA SRL se il campo e vuoto.
   - Lettura robusta dei flag checkbox salvati dal Customizer.
   ================================================================ */

/* === 1.10.19 - Intro 1: crescita e sbriciolamento leggero sincronizzati ===
 * Nessun keyframe CSS in concorrenza e nessun blur/ombra animata.
 * Tutti i logo dedicati sono indipendenti dai logo del sito.
 */
.gs-hero-intro{
  position:fixed;inset:0;z-index:1200;pointer-events:none;
  overflow:hidden;visibility:hidden;opacity:0;
}
.gs-hero-intro.is-playing{visibility:visible;opacity:1}
.gs-hero-intro-center{
  position:absolute;
  left:var(--gs-intro-center-left,60%);
  top:var(--gs-intro-center-top,50%);
  width:min(var(--gs-intro-max-width,420px),74vw,56vh);
  opacity:0;
  transform:translate3d(-50%,-50%,0) scale(.24);
  transform-origin:50% 50%;will-change:transform,opacity;
  contain:layout style;
  backface-visibility:hidden;
}
.gs-hero-intro-center img,.gs-hero-intro-destination img{
  display:block;width:100%;height:100%;object-fit:contain;
}
.gs-hero-intro-destination{
  position:absolute;left:var(--gs-intro-end-left,28px);
  top:var(--gs-intro-end-top,14px);
  width:var(--gs-intro-end-width,205px);height:var(--gs-intro-end-height,88px);
  opacity:0;will-change:opacity;pointer-events:none;
}
body.gs-hero-intro-playing .gs-site-header:not(.is-scrolled) .gs-brand-main,
body.gs-hero-intro-playing .gs-mobile-hero-brand{
  opacity:0;transition:none;
}
@media (prefers-reduced-motion:reduce){
  .gs-hero-intro{display:none!important}
  body.gs-hero-intro-playing .gs-site-header .gs-brand-main,
  body.gs-hero-intro-playing .gs-mobile-hero-brand{opacity:1!important}
}

/* Disintegrazione: i tasselli contengono solo texture statica;
   a cambiare sono esclusivamente transform e opacity. */
.gs-hero-intro-shards{position:absolute;inset:0;pointer-events:none;overflow:visible;contain:layout style}
.gs-hero-intro-shard{position:absolute;display:block;backface-visibility:hidden;will-change:transform,opacity;transform:translateZ(0);background-repeat:no-repeat;pointer-events:none}
