:root {
  --black: #111416;
  --ink: #252426;
  --orange: #e59636;
  --gray: #686d6e;
  --cream: #f5f3ee;
  --white: #fff;
  --line: #ddd8cf;
}

* {
  box-sizing: border-box
}

html {
  scroll-behavior: smooth
}

body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: Manrope, Arial, sans-serif
}

a {
  color: inherit
}

.section,
header,
footer {
  width: min(100%, 1180px);
  margin: auto
}

.section {
  padding: 92px 64px;
  background-color: #f5f3ee;
}

.nav-wrap {
  height: 78px;
  background-color: #080A0B;
  display: flex;
  align-items: center;
  padding: 0 42px;
  position: relative;
  z-index: 10
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #fff;
  text-decoration: none;
  font-size: 18px
}

.brand-dots {
  display: flex;
  gap: 3px;
  align-items: flex-end
}

.brand-dots i {
  display: block;
  width: 7px;
  border-radius: 8px;
  background: var(--orange)
}

.brand-dots i:nth-child(1) {
  height: 18px;
  background: #f24c5b
}

.brand-dots i:nth-child(2) {
  height: 25px;
  background: #f5b332
}

.brand-dots i:nth-child(3) {
  height: 15px;
  background: #43b9a0
}

.main-nav {
  margin-left: auto;
  display: flex;
  gap: 30px;
  align-items: center
}

.main-nav a {
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .5px
}

.main-nav a:hover {
  color: var(--orange)
}

.contact-link {
  border: 1px solid #555;
  padding: 10px 16px
}

.menu-toggle {
  display: none;
  margin-left: auto;
  border: 0;
  background: transparent
}

.menu-toggle span {
  display: block;
  width: 25px;
  height: 2px;
  background: #fff;
  margin: 5px
}

.hero {
  height: 535px;
  background: #050505 url("assets/images/bg_hero_2.png") center center / cover no-repeat;
  position: relative;
  overflow: hidden
}

.hero:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, .1), rgba(0, 0, 0, .55));
  pointer-events: none
}

.hero-copy {
  position: absolute;
  z-index: 2;
  left: 9%;
  bottom: 65px;
  color: #fff;
  max-width: 650px
}

.eyebrow,
.section-kicker {
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 11px;
  font-weight: 800;
  color: var(--orange)
}

.hero-copy h1 {
  font-family: Montserrat, sans-serif;
  font-size: 66px;
  line-height: .95;
  margin: 13px 0 8px
}

.hero-copy p {
  font-size: 29px;
  margin: 0 0 27px;
  font-weight: 500
}

.btn {
  display: inline-flex;
  gap: 20px;
  align-items: center;
  background: var(--orange);
  padding: 14px 20px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase
}


.welcome {
  background: var(--cream)
}

.welcome-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
  margin-top: 22px
}

.welcome h2,
.section-heading h2,
.gallery h2,
.brands h2,
.contact h2 {
  font-family: Montserrat, sans-serif;
  margin: 0;
  font-size: 47px;
  line-height: 1.08
}

.welcome p {
  font-size: 17px;
  line-height: 1.65;
  margin: 0 0 24px
}

.text-link {
  font-size: 13px;
  text-decoration: none;
  font-weight: 800;
  border-bottom: 1px solid var(--orange);
  padding-bottom: 5px
}

.section-heading {
  display: flex;
  align-items: flex-end;
  gap: 35px
}

.section-heading .line {
  height: 2px;
  background: var(--orange);
  flex: 1;
  margin-bottom: 12px
}

.products-layout {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 55px;
  margin-top: 52px
}

.product-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px
}

.product-item {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 17px;
  border: 1px solid var(--line);
  transition: .25s
}

.product-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 25px rgba(0, 0, 0, .08)
}

.product-item img {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  object-fit: cover
}

.product-item span,
.feature-card figcaption span {
  font-size: 10px;
  color: var(--orange);
  font-weight: 800
}

.product-item h3 {
  font-size: 15px;
  text-transform: uppercase;
  margin: 5px 0 0;
  line-height: 1.2
}

.feature-card {
  margin: 0;
  position: relative;
  min-height: 465px;
  overflow: hidden
}

.feature-card>img {
  width: 100%;
  height: 100%;
  object-fit: cover
}

.feature-card figcaption {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  background: rgba(17, 20, 22, .92);
  color: #fff;
  padding: 24px
}

.feature-card strong {
  display: block;
  font-size: 24px;
  margin-top: 6px
}

.feature-card p {
  margin: 8px 0 0;
  color: #ccc;
  font-size: 14px
}

.services {
  padding-top: 25px
}

.services-wrap {
  position: relative;
  min-height: 570px
}

.services-bg,
.services-bg img {
  width: 100%;
  height: 570px
}

.services-bg img {
  object-fit: cover
}

.services-card {
  position: absolute;
  right: 5%;
  top: 50%;
  transform: translateY(-50%);
  width: 55%;
  background: #fff;
  padding: 46px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, .22)
}

.services-card h2 {
  font-family: Montserrat;
  font-size: 35px;
  margin: 10px 0 28px
}

.service-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--line)
}

.service-grid button {
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  text-align: left;
  padding: 17px 10px;
  cursor: pointer;
  font: inherit;
  text-transform: uppercase;
  font-weight: 800;
  font-size: 13px
}

.service-grid b {
  color: var(--orange);
  font-size: 19px;
  margin-right: 14px
}

.service-grid button:hover {
  background: #fff7ed
}

.gallery {
  background: var(--gray);
  color: #fff
}

.gallery-head {
  display: flex;
  justify-content: space-between;
  gap: 50px;
  align-items: end;
  margin-bottom: 40px
}

.gallery h2 {
  font-size: 38px;
  font-weight: 500
}

.gallery h2 b,
.brands h2 b {
  color: var(--orange)
}

.gallery-head p {
  max-width: 340px;
  color: #d9dddd
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 215px;
  gap: 14px
}

.gallery-grid figure {
  position: relative;
  margin: 0;
  overflow: hidden
}

.gallery-grid .large {
  grid-row: span 2
}

.gallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: .45s
}

.gallery-grid figure:hover img {
  transform: scale(1.04)
}

.gallery-grid figcaption {
  position: absolute;
  left: 14px;
  bottom: 13px;
  background: rgba(0, 0, 0, .7);
  padding: 8px 11px;
  font-size: 12px
}

.brands {
  text-align: center
}

.brands h2 {
  font-size: 36px;
  color: #5e6263;
  margin: 10px 0 45px
}

.contact {
  background: var(--black);
  color: #fff;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px
}

.contact h2 {
  font-size: 44px;
  margin: 10px 0 20px
}

.contact h2 em {
  color: var(--orange);
  font-style: normal
}

.contact p {
  color: #aaa;
  max-width: 470px
}

.contact-card {
  border-top: 1px solid #444
}

.contact-card>a,
.contact-card>div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px;
  border-bottom: 1px solid #444;
  padding: 21px 0;
  text-decoration: none
}

.contact-card small {
  grid-column: 1/-1;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 1px
}

.contact-card strong {
  font-size: 16px
}

footer {
  background: #080a0b;
  min-height: 90px;
  padding: 25px 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #888;
  font-size: 12px
}

footer>a:last-child {
  color: #fff;
  text-decoration: none
}

dialog {
  border: 0;
  padding: 38px;
  max-width: 480px;
  box-shadow: 0 20px 70px rgba(0, 0, 0, .4)
}

dialog::backdrop {
  background: rgba(0, 0, 0, .65)
}

dialog h2 {
  font: 700 32px Montserrat;
  margin: 10px 0
}

.dialog-close {
  position: absolute;
  right: 12px;
  top: 8px;
  border: 0;
  background: transparent;
  font-size: 28px;
  cursor: pointer
}

.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: .65s ease
}

.reveal.visible {
  opacity: 1;
  transform: none
}

@media(max-width:800px) {
  .section {
    padding: 65px 25px
  }

  .nav-wrap {
    padding: 0 20px
  }

  .menu-toggle {
    display: block
  }

  .main-nav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 78px;
    background: var(--black);
    padding: 22px;
    flex-direction: column;
    align-items: flex-start
  }

  .main-nav.open {
    display: flex
  }

  .hero {
    height: 470px
  }

  .hero-copy {
    left: 25px;
    right: 25px
  }

  .hero-copy h1 {
    font-size: 48px
  }

  .hero-copy p {
    font-size: 22px
  }

  .welcome-grid,
  .products-layout,
  .contact {
    grid-template-columns: 1fr;
    gap: 35px
  }

  .welcome-grid {
    gap: 25px
  }

  .services-card {
    position: relative;
    right: auto;
    top: auto;
    transform: none;
    width: 92%;
    margin: -100px auto 0
  }

  .gallery-head {
    display: block
  }

  .gallery-head p {
    max-width: none
  }

  .gallery-grid {
    grid-template-columns: 1fr 1fr
  }

  .brand-row {
    flex-wrap: wrap;
    justify-content: center
  }

  footer {
    gap: 20px;
    flex-wrap: wrap
  }
}

@media(max-width:500px) {
  .hero-copy h1 {
    font-size: 39px
  }

  .hero-copy p {
    font-size: 18px
  }

  .welcome h2,
  .section-heading h2,
  .contact h2 {
    font-size: 35px
  }

  .product-grid,
  .service-grid {
    grid-template-columns: 1fr
  }

  .product-item img {
    width: 65px;
    height: 65px
  }

  .services-card {
    padding: 28px 22px
  }

  .services-card h2 {
    font-size: 27px
  }

  .gallery-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 250px
  }

  .gallery-grid .large {
    grid-row: auto
  }

  .gallery h2 {
    font-size: 29px
  }

  .brand-row {
    font-size: 21px
  }
}

/* v1.0.1 — header fisso, logo GC e sottomenu */
header {
  padding-top: 78px
}

.nav-wrap {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(100%, 1180px);
  z-index: 1000;
  box-shadow: 0 7px 22px rgba(0, 0, 0, .16)
}

.brand-logo {
  width: 42px;
  height: 42px;
  object-fit: contain;
  flex: 0 0 auto
}

.main-nav .nav-item {
  position: relative
}

.main-nav .nav-link {
  appearance: none;
  border: 0;
  background: transparent;
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
  font: 800 12px Manrope, Arial, sans-serif;
  letter-spacing: .5px;
  padding: 10px 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 7px
}

.main-nav .nav-link:hover,
.main-nav .nav-link:focus-visible {
  color: var(--orange)
}

.main-nav .nav-link span {
  font-size: 14px;
  line-height: 1;
  transition: transform .2s ease
}

.has-submenu.open>.nav-link span {
  transform: rotate(180deg)
}

.submenu {
  position: absolute;
  top: calc(100% + 12px);
  left: -18px;
  min-width: 225px;
  padding: 9px;
  background: #fff;
  border: 1px solid #ece7df;
  box-shadow: 0 18px 38px rgba(0, 0, 0, .18);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-7px);
  transition: .2s ease;
  z-index: 1010
}

.submenu:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -13px;
  height: 13px
}

.submenu a {
  display: block !important;
  color: var(--ink) !important;
  text-transform: none !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  padding: 11px 12px;
  border-bottom: 1px solid #eee9e2
}

.submenu a:last-child {
  border-bottom: 0
}

.submenu a:hover,
.submenu a:focus-visible {
  background: #fff7ed;
  color: var(--orange) !important
}

.has-submenu:hover>.submenu,
.has-submenu:focus-within>.submenu,
.has-submenu.open>.submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0)
}

#prodotti,
#servizi,
#ispirazioni,
#contatti {
  scroll-margin-top: 92px
}

@media(max-width:800px) {
  .main-nav {
    max-height: calc(100vh - 78px);
    overflow: auto
  }

  .main-nav .nav-item {
    width: 100%
  }

  .main-nav .nav-link {
    width: 100%;
    justify-content: space-between;
    padding: 9px 0
  }

  .submenu {
    position: static;
    min-width: 0;
    width: 100%;
    margin-top: 3px;
    padding: 5px 0 5px 12px;
    border: 0;
    border-left: 2px solid var(--orange);
    box-shadow: none;
    background: #171b1d;
    display: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: none
  }

  .has-submenu:hover>.submenu,
  .has-submenu:focus-within>.submenu {
    display: none
  }

  .has-submenu.open>.submenu {
    display: block
  }

  .submenu a {
    color: #ddd !important;
    border-bottom: 1px solid #2a2e30;
    padding: 10px 12px
  }

  .submenu a:hover,
  .submenu a:focus-visible {
    background: #202527;
    color: var(--orange) !important
  }
}

/* v1.0.5 — pagina Colori a campione */
.submenu a.is-current { background:#fff7ed; color:var(--orange)!important; }
.inner-header { padding-top:78px; height:78px; }
.section-wide { width:min(100%,1180px); margin:auto; }
.sample-page { width:100%; }
.sample-hero { height:430px; position:relative; overflow:hidden; background:var(--black); }
.sample-hero>img { width:100%; height:100%; object-fit:cover; display:block; }
.sample-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.63)); }
.sample-hero-overlay { position:absolute; left:64px; bottom:48px; z-index:2; color:#fff; }
.sample-hero-overlay span { color:var(--orange); text-transform:uppercase; letter-spacing:2px; font-size:11px; font-weight:800; }
.sample-hero-overlay h1 { margin:8px 0 0; font:800 48px/1.05 Montserrat,sans-serif; }
.sample-title-row h2 { margin:9px 0 0; font:700 42px/1.12 Montserrat,sans-serif; text-transform:uppercase; }
.sample-title-row h2 em { font:400 30px/1.2 Manrope,sans-serif; text-transform:lowercase; color:var(--gray); margin-left:8px; }
.sample-lead { font-size:17px; font-weight:700; margin:28px 0 34px; padding-top:22px; border-top:2px solid var(--orange); }
.sample-media-row { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:38px; }
.sample-media-row>img,.sample-logo-placeholder,.sample-logo-tile { width:100%; height:170px; object-fit:cover; }
.sample-logo-placeholder { background:var(--black); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:18px; }
.sample-logo-placeholder span { font:700 20px Montserrat,sans-serif; text-transform:uppercase; }
.sample-logo-placeholder small { color:var(--orange); text-transform:uppercase; letter-spacing:1.5px; margin-top:6px; }
.sample-logo-tile { background:#000; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; padding:12px; overflow:hidden; }
.sample-logo-tile img { width:100%; height:100%; object-fit:contain; display:block; }
.sample-copy { max-width:980px; }
.sample-copy p { font-size:16px; line-height:1.65; margin:0 0 18px; }
.sample-steps { padding-top:70px; }
.sample-heading { align-items:center; }
.sample-heading h2 { margin:7px 0 0; font:600 39px/1.15 Montserrat,sans-serif; }
.steps-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:38px; }
.step-card { background:#fff; border:1px solid var(--line); overflow:hidden; }
.step-card img { display:block; width:100%; height:220px; object-fit:cover; }
.step-card div { padding:23px 24px 27px; }
.step-card span { font-size:10px; font-weight:800; color:var(--orange); }
.step-card h3 { margin:6px 0 8px; font:800 17px Montserrat,sans-serif; text-transform:uppercase; }
.step-card p { margin:0; color:var(--gray); line-height:1.55; font-size:14px; }
.sample-design { display:grid; grid-template-columns:.68fr 1.32fr; gap:54px; align-items:center; }
.sample-design-copy h2 { margin:8px 0 16px; font:600 40px/1.12 Montserrat,sans-serif; }
.sample-design-copy p { color:var(--gray); line-height:1.7; }
.sample-design-image { margin:0; }
.sample-design-image img { display:block; width:100%; height:420px; object-fit:cover; }
.sample-design-image figcaption { color:#888; font-size:11px; margin-top:8px; }
.sample-design-image code { font-family:inherit; }
@media(max-width:800px){
  .inner-header { height:78px; }
  .sample-hero { height:360px; }
  .sample-hero-overlay { left:25px; right:25px; bottom:32px; }
  .sample-hero-overlay h1 { font-size:38px; }
  .sample-media-row { grid-template-columns:1fr 1fr; }
  .sample-title-row h2,.sample-heading h2,.sample-design-copy h2 { font-size:32px; }
  .sample-title-row h2 em { display:block; margin:5px 0 0; font-size:24px; }
  .steps-grid,.sample-design { grid-template-columns:1fr; }
  .sample-design { gap:28px; }
}
@media(max-width:500px){
  .sample-hero { height:300px; }
  .sample-hero-overlay h1 { font-size:31px; }
  .sample-media-row { grid-template-columns:1fr; }
  .sample-media-row>img,.sample-logo-placeholder,.sample-logo-tile { height:190px; }
  .step-card img { height:200px; }
  .sample-design-image img { height:300px; }
}

/* v1.0.6 — pagina Pitture/Smalti/Vernici + pannello contatti */
.paint-intro-grid { display:grid; grid-template-columns:1.22fr .78fr; gap:52px; align-items:start; margin-top:34px; }
.paint-copy p,.paint-section-copy p { font-size:16px; line-height:1.7; margin:0 0 18px; }
.paint-side-image { margin:0; }
.paint-side-image img { width:100%; height:330px; display:block; object-fit:cover; }
.paint-side-image figcaption { margin-top:7px; color:#8c8c8c; font-size:11px; }
.paint-dark { background:#303435; color:#fff; }
.paint-category-head { display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:end; margin-bottom:40px; }
.paint-category-head h2,.paint-section-copy h2 { font:700 37px/1.12 Montserrat,sans-serif; margin:8px 0 0; }
.paint-category-head>p { margin:0; line-height:1.6; color:#d5d7d7; }
.paint-advice-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; }
.advice-card { padding:28px; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.035); }
.advice-card>span { color:var(--orange); font-size:11px; font-weight:800; }
.advice-card h3 { margin:8px 0 14px; font:700 18px Montserrat,sans-serif; text-transform:uppercase; }
.advice-card p { color:#d9dddd; line-height:1.65; font-size:14px; margin:0 0 12px; }
.paint-split { display:grid; grid-template-columns:1fr 1fr; gap:55px; align-items:center; }
.paint-split.reverse { grid-template-columns:.9fr 1.1fr; }
.paint-split>img { display:block; width:100%; height:390px; object-fit:cover; }
.paint-products-line { margin-top:22px!important; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-weight:700; }
.paint-metal { background:#ece9e3; }

.contact-drawer-backdrop { position:fixed; inset:0; z-index:1990; background:rgba(0,0,0,.56); opacity:0; visibility:hidden; transition:.28s ease; }
.contact-drawer { position:fixed; z-index:2000; top:0; right:0; width:min(520px,100%); height:100vh; background:#fff; box-shadow:-20px 0 55px rgba(0,0,0,.22); transform:translateX(105%); transition:transform .32s ease; overflow:auto; }
body.contact-panel-open { overflow:hidden; }
body.contact-panel-open .contact-drawer-backdrop { opacity:1; visibility:visible; }
body.contact-panel-open .contact-drawer { transform:translateX(0); }
.contact-drawer-inner { min-height:100%; padding:42px 44px 50px; }
.contact-drawer-close { position:absolute; top:19px; right:21px; width:38px; height:38px; border:1px solid #ded9d0; background:#fff; cursor:pointer; font-size:24px; line-height:1; }
.contact-drawer h2 { font:700 38px/1.1 Montserrat,sans-serif; margin:10px 0 12px; }
.contact-drawer-intro { color:var(--gray); line-height:1.6; margin:0 0 28px; }
.contact-drawer-details { display:grid; gap:0; margin-bottom:30px; border-top:1px solid var(--line); }
.contact-drawer-details a,.contact-drawer-details div { display:block; text-decoration:none; padding:14px 0; border-bottom:1px solid var(--line); }
.contact-drawer-details small { display:block; color:#8c8c8c; text-transform:uppercase; letter-spacing:1px; margin-bottom:4px; }
.contact-drawer-details strong { font-size:14px; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.contact-form label { display:flex; flex-direction:column; gap:7px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.45px; }
.contact-form label.full { grid-column:1/-1; }
.contact-form input,.contact-form textarea { width:100%; border:1px solid #d9d4cc; background:#faf9f6; padding:13px 14px; border-radius:0; font:400 14px Manrope,Arial,sans-serif; color:var(--ink); outline:none; }
.contact-form input:focus,.contact-form textarea:focus { border-color:var(--orange); box-shadow:0 0 0 2px rgba(229,150,54,.12); }
.contact-form textarea { min-height:130px; resize:vertical; }
.contact-form .privacy { grid-column:1/-1; flex-direction:row; align-items:flex-start; text-transform:none; letter-spacing:0; font-weight:500; line-height:1.45; }
.contact-form .privacy input { width:auto; margin-top:3px; }
.contact-form button { grid-column:1/-1; border:0; background:var(--orange); color:#fff; padding:15px 18px; cursor:pointer; font:800 12px Manrope,Arial,sans-serif; text-transform:uppercase; letter-spacing:.5px; }
.contact-form-note { font-size:11px; color:#888; margin:10px 0 0; }

@media(max-width:800px){
  .paint-intro-grid,.paint-category-head,.paint-split,.paint-split.reverse { grid-template-columns:1fr; gap:28px; }
  .paint-advice-grid { grid-template-columns:1fr; }
  .paint-side-image img,.paint-split>img { height:310px; }
  .paint-category-head h2,.paint-section-copy h2 { font-size:31px; }
  .paint-category-head { align-items:start; }
  .contact-drawer-inner { padding:38px 25px 42px; }
}
@media(max-width:500px){
  .paint-hero .sample-hero-overlay h1 { font-size:29px; }
  .contact-form { grid-template-columns:1fr; }
  .contact-form label.full,.contact-form .privacy,.contact-form button { grid-column:auto; }
  .contact-drawer h2 { font-size:31px; }
}


/* v1.0.7 — pagina Cartongesso */
.drywall-page { width:100%; }
.drywall-hero>img { object-position:center 52%; }
.drywall-feature { display:grid; grid-template-columns:.9fr 1.1fr; gap:46px; align-items:stretch; margin-top:42px; background:#2e3234; color:#fff; }
.drywall-feature-copy { padding:48px 0 48px 48px; display:flex; flex-direction:column; justify-content:center; }
.drywall-feature-copy h3 { margin:10px 0 18px; font:700 34px/1.15 Montserrat,sans-serif; text-transform:uppercase; }
.drywall-feature-copy h3 strong { display:block; color:var(--orange); font-weight:800; margin-top:7px; }
.drywall-feature-copy p { margin:0; color:#d9dddd; line-height:1.7; max-width:470px; }
.drywall-feature img { width:100%; height:360px; object-fit:cover; display:block; }

.drywall-solutions { background:#686d6e; color:#fff; }
.drywall-solutions-head { display:grid; grid-template-columns:1.08fr .92fr; gap:58px; align-items:end; margin-bottom:42px; }
.drywall-solutions-head h2 { margin:8px 0 0; font:700 38px/1.15 Montserrat,sans-serif; }
.drywall-solutions-head>p { margin:0; color:#f1f1f1; line-height:1.7; }
.drywall-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; }
.drywall-gallery figure { margin:0; background:#fff; color:var(--ink); }
.drywall-gallery img { width:100%; height:245px; object-fit:cover; display:block; }
.drywall-gallery figcaption { padding:15px 17px; text-transform:uppercase; font-size:12px; font-weight:800; letter-spacing:.5px; border-top:3px solid var(--orange); }

.drywall-types { background:#ece9e3; }
.drywall-types-copy { max-width:780px; margin-bottom:38px; }
.drywall-types-copy h2 { margin:8px 0 16px; font:700 38px/1.14 Montserrat,sans-serif; }
.drywall-types-copy p { margin:0; color:var(--gray); line-height:1.7; }
.drywall-type-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.drywall-type-grid article { background:#fff; padding:27px 23px; border-top:3px solid var(--orange); min-height:215px; }
.drywall-type-grid article>span { color:var(--orange); font-size:11px; font-weight:800; }
.drywall-type-grid h3 { margin:8px 0 12px; font:700 17px/1.25 Montserrat,sans-serif; text-transform:uppercase; }
.drywall-type-grid p { margin:0; color:var(--gray); line-height:1.6; font-size:14px; }

.drywall-system { background:#f5f3ee; }

@media(max-width:800px){
  .drywall-feature,.drywall-solutions-head,.drywall-type-grid { grid-template-columns:1fr; }
  .drywall-feature-copy { padding:34px 30px 12px; }
  .drywall-feature img { height:310px; }
  .drywall-solutions-head { gap:20px; }
  .drywall-solutions-head h2,.drywall-types-copy h2 { font-size:31px; }
  .drywall-gallery { grid-template-columns:1fr; }
  .drywall-gallery img { height:300px; }
}


/* v1.0.9 — carosello partner */
.partner-carousel-wrap {
  position: relative;
  width: 100%;
  margin-top: 30px;
  padding: 0 40px;
  box-sizing: border-box;
}
.partner-carousel {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  cursor: grab;
  scrollbar-width: thin;
  scrollbar-color: rgba(30,30,30,.28) transparent;
  touch-action: pan-x;
  overscroll-behavior-inline: contain;
  scroll-behavior: auto;
  -webkit-overflow-scrolling: touch;
}
.partner-carousel::-webkit-scrollbar { height: 6px; }
.partner-carousel::-webkit-scrollbar-track { background: transparent; }
.partner-carousel::-webkit-scrollbar-thumb { background: rgba(30,30,30,.25); border-radius: 999px; }
.partner-carousel.is-dragging { cursor: grabbing; user-select: none; }
.partner-track {
  display: flex;
  align-items: center;
  gap: 22px;
  width: max-content;
  min-width: max-content;
  padding: 4px 2px 12px;
}
.partner-card {
  width: 158px;
  height: 82px;
  flex: 0 0 158px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 3px;
  padding: 13px 16px;
  box-sizing: border-box;
}
.partner-card img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}
.partner-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-58%);
  z-index: 3;
  width: 32px;
  height: 48px;
  border: 0;
  border-radius: 3px;
  background: rgba(33,33,33,.86);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.partner-arrow:hover { background: var(--orange); }
.partner-prev { left: 0; }
.partner-next { right: 0; }
@media (max-width: 700px) {
  .partner-carousel-wrap { padding: 0; }
  .partner-arrow { display: none; }
}

/* contenuto variabile del popup servizi */
#dialog-copy p {
  margin: 0;
  color: var(--gray);
  line-height: 1.7;
}


/* v1.1.0 — Isolamento, social, partner link e menu mobile evoluto */
.partner-card {
  text-decoration: none;
  color: inherit;
}
.partner-card:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 3px;
}


/* Menu hamburger animato */
.menu-toggle {
  position:relative;
  width:44px;
  height:44px;
  padding:9px;
  cursor:pointer;
  z-index:1100;
}
.menu-toggle span {
  position:absolute;
  left:9px;
  width:26px;
  height:2px;
  margin:0;
  background:#fff;
  transform-origin:center;
  transition:transform .28s ease, opacity .18s ease, top .28s ease;
}
.menu-toggle span:nth-child(1){ top:13px; }
.menu-toggle span:nth-child(2){ top:21px; }
.menu-toggle span:nth-child(3){ top:29px; }
.menu-toggle[aria-expanded="true"] span:nth-child(1){
  top:21px;
  transform:rotate(45deg);
}
.menu-toggle[aria-expanded="true"] span:nth-child(2){
  opacity:0;
  transform:scaleX(0);
}
.menu-toggle[aria-expanded="true"] span:nth-child(3){
  top:21px;
  transform:rotate(-45deg);
}
body.mobile-menu-open { overflow:hidden; }

/* Pagina Isolamento */
.insulation-page { width:100%; }
.insulation-hero>img { object-position:center 45%; }
.insulation-intro-grid {
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:52px;
  align-items:center;
  margin-top:34px;
}
.insulation-intro-grid p,
.insulation-copy p {
  font-size:16px;
  line-height:1.72;
  margin:0 0 18px;
}
.insulation-intro-media { margin:0; }
.insulation-intro-media img {
  width:100%;
  height:330px;
  object-fit:cover;
  display:block;
}
.insulation-zone { padding-top:78px; }
.insulation-inside { background:#686d6e; color:#fff; }
.insulation-outside { background:#ece9e3; }
.insulation-zone-head {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:54px;
  align-items:end;
  margin-bottom:38px;
}
.insulation-zone-head h2 {
  margin:8px 0 0;
  font:700 38px/1.15 Montserrat,sans-serif;
}
.insulation-zone-head>p {
  margin:0;
  line-height:1.65;
}
.insulation-inside .insulation-zone-head>p { color:#eef0f0; }
.insulation-cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:17px;
  margin-bottom:38px;
}
.insulation-cards article {
  background:#fff;
  color:var(--ink);
  overflow:hidden;
}
.insulation-cards img {
  width:100%;
  height:230px;
  object-fit:cover;
  display:block;
}
.insulation-cards h3 {
  margin:0;
  padding:16px 18px;
  border-top:3px solid var(--orange);
  text-transform:uppercase;
  font:800 13px/1.25 Montserrat,sans-serif;
}
.insulation-copy {
  max-width:980px;
}
.insulation-inside .insulation-copy p { color:#f1f2f2; }
.insulation-copy h3 {
  margin:26px 0 12px;
  font:800 19px Montserrat,sans-serif;
  text-transform:uppercase;
}
.insulation-closing {
  padding-top:18px;
  border-top:1px solid rgba(0,0,0,.14);
  font-size:18px!important;
}
.insulation-wide-image {
  display:block;
  width:100%;
  height:390px;
  object-fit:cover;
  margin-top:34px;
}

/* Mobile full screen nav */
@media(max-width:800px){
  .main-nav {
    position:fixed;
    inset:0;
    top:0;
    width:100vw;
    height:100dvh;
    max-height:none;
    padding:112px 28px 42px;
    background:rgba(17,20,22,.985);
    overflow-y:auto;
    z-index:1050;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .main-nav.open { display:flex; }
  .main-nav > a,
  .main-nav .nav-link {
    width:100%;
    min-height:56px;
    padding:14px 4px;
    justify-content:space-between;
    font-size:20px;
    line-height:1.2;
    letter-spacing:.2px;
    border-bottom:1px solid rgba(255,255,255,.10);
  }
  .main-nav .nav-item { width:100%; }
  .main-nav .submenu {
    margin:0 0 8px;
    padding:7px 0 7px 16px;
    border-left:2px solid var(--orange);
    background:transparent;
  }
  .main-nav .submenu a {
    padding:14px 10px;
    font-size:16px!important;
    line-height:1.35;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .main-nav .contact-link {
    margin-top:8px;
    justify-content:center;
    border:1px solid var(--orange);
    background:var(--orange);
    color:#fff;
    text-align:center;
  }
  footer {
    align-items:flex-start;
  }
  .insulation-intro-grid,
  .insulation-zone-head {
    grid-template-columns:1fr;
    gap:24px;
  }
  .insulation-cards {
    grid-template-columns:1fr;
  }
  .insulation-cards img { height:280px; }
  .insulation-zone-head h2 { font-size:31px; }
  .insulation-intro-media img,
  .insulation-wide-image { height:310px; }
}

@media(max-width:500px){
  .main-nav { padding:102px 22px 32px; }
  .main-nav > a,
  .main-nav .nav-link { font-size:19px; }
  .main-nav .submenu a { font-size:15px!important; }
  .insulation-cards img { height:230px; }
}


/* v1.1.1 — Rivestimenti decorativi e aggiornamenti richiesti */
.decor-page { width:100%; }
.decor-hero>img { object-position:center 58%; }
.decor-intro { padding-top:72px; padding-bottom:70px; }
.decor-title-row h2 { margin:8px 0 0; font:500 43px/1.12 Montserrat,sans-serif; text-transform:uppercase; letter-spacing:.04em; }
.decor-title-row h2 em { font:400 30px/1.2 Manrope,sans-serif; text-transform:lowercase; color:var(--gray); letter-spacing:0; }
.decor-rule { height:2px; background:var(--orange); width:100%; margin:24px 0 34px; }
.decor-copy { text-align:center; max-width:920px; margin:0 auto; }
.decor-copy h3 { margin:0 0 4px; font:800 24px/1.3 Montserrat,sans-serif; }
.decor-copy p { margin:0; font-size:22px; line-height:1.42; }
.decor-copy .decor-products { margin-top:26px; font-size:20px; }
.decor-showroom { padding-top:72px; padding-bottom:78px; background:#fff; }
.decor-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; background:#676b6c; padding:44px; }
.decor-gallery img { display:block; width:100%; aspect-ratio:1/1.12; object-fit:cover; }
.decor-showroom-caption { text-align:center; margin:38px 0 0; font-size:15px; font-weight:600; }
.decor-showroom-caption strong { font-weight:800; }
@media(max-width:900px) {
  .decor-title-row h2 { font-size:34px; }
  .decor-title-row h2 em { font-size:25px; }
  .decor-copy h3 { font-size:21px; }
  .decor-copy p,.decor-copy .decor-products { font-size:18px; }
  .decor-gallery { padding:26px; gap:12px; }
}
@media(max-width:620px) {
  .decor-title-row h2 { font-size:29px; line-height:1.18; }
  .decor-title-row h2 em { display:block; margin-top:5px; font-size:23px; }
  .decor-copy { text-align:left; }
  .decor-copy h3 { font-size:19px; }
  .decor-copy p,.decor-copy .decor-products { font-size:16px; }
  .decor-copy br { display:none; }
  .decor-gallery { grid-template-columns:1fr; padding:18px; }
  .decor-gallery img { aspect-ratio:4/3; }
  .decor-showroom-caption { font-size:13px; line-height:1.6; }
}

/* v1.1.2 — continuità visiva pagina Rivestimenti decorativi */
.decor-page .decor-intro {
  margin-bottom: 0;
}

.decor-page .decor-showroom {
  margin-top: 0;
  padding: 44px 44px 34px;
  background: #676b6c;
}

.decor-page .decor-gallery {
  width: 100%;
  margin: 0;
  padding: 0;
  gap: 16px;
  background: transparent;
}

.decor-page .decor-showroom-caption {
  margin: 28px 0 0;
  padding: 0;
  color: #fff;
}

@media(max-width:900px) {
  .decor-page .decor-showroom { padding: 30px 30px 28px; }
  .decor-page .decor-gallery { gap: 12px; }
  .decor-page .decor-showroom-caption { margin-top: 22px; }
}

@media(max-width:620px) {
  .decor-page .decor-showroom { padding: 18px 18px 22px; }
  .decor-page .decor-gallery { gap: 12px; }
  .decor-page .decor-showroom-caption { margin-top: 18px; }
}

/* v1.1.3 — uniformità titoli + Risanamento Edilizio */
/* Rivestimenti decorativi: l'H2 usa ora esattamente il componente .sample-title-row già usato nel sito. */

.restoration-page { width:100%; }
.restoration-hero>img { object-position:center 48%; }
.restoration-intro { padding-top:72px; padding-bottom:70px; }
.restoration-rule { height:2px; background:var(--orange); width:100%; margin:24px 0 34px; }
.restoration-copy { max-width:980px; margin:0; }
.restoration-copy h3 { margin:0 0 4px; font:800 22px/1.3 Montserrat,sans-serif; }
.restoration-copy h3:not(:first-child) { margin-top:24px; }
.restoration-copy p { margin:0; font-size:19px; line-height:1.45; }

.restoration-showroom { margin-top:0; padding:44px 44px 34px; background:#676b6c; }
.restoration-gallery { display:grid; grid-template-columns:repeat(2,1fr); gap:20px 28px; width:100%; }
.restoration-gallery figure { margin:0; background:#fff; color:var(--ink); overflow:hidden; }
.restoration-gallery img { display:block; width:100%; height:280px; object-fit:cover; }
.restoration-gallery figcaption { min-height:62px; padding:12px 15px 10px; text-transform:uppercase; font:800 14px/1.12 Montserrat,sans-serif; letter-spacing:.1px; }
.restoration-showroom-caption { text-align:center; margin:28px 0 0; color:#fff; font-size:15px; font-weight:600; }
.restoration-showroom-caption strong { font-weight:800; }

@media(max-width:900px) {
  .restoration-copy h3 { font-size:20px; }
  .restoration-copy p { font-size:17px; }
  .restoration-showroom { padding:30px 30px 28px; }
  .restoration-gallery { gap:16px; }
  .restoration-gallery img { height:240px; }
  .restoration-gallery figcaption { font-size:12px; }
  .restoration-showroom-caption { margin-top:22px; }
}
@media(max-width:620px) {
  .restoration-intro { padding-top:52px; padding-bottom:52px; }
  .restoration-copy br { display:none; }
  .restoration-copy h3 { font-size:18px; }
  .restoration-copy p { font-size:16px; }
  .restoration-showroom { padding:18px 18px 22px; }
  .restoration-gallery { grid-template-columns:1fr; gap:12px; }
  .restoration-gallery img { height:auto; aspect-ratio:4/3; }
  .restoration-gallery figcaption { min-height:0; font-size:12px; line-height:1.2; }
  .restoration-showroom-caption { margin-top:18px; font-size:13px; line-height:1.6; }
}

/* v1.1.6 — privacy, cookie banner e form contatti */
.footer-links{display:flex;align-items:center;gap:20px}.footer-links a{color:#fff;text-decoration:none}.footer-links .footer-privacy{color:#aaa}.footer-links .footer-privacy:hover{color:var(--orange)}
.contact-form .privacy a{color:var(--orange);font-weight:800;text-decoration:underline;text-underline-offset:2px}.contact-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.contact-form-status{grid-column:1/-1;margin:0!important;font-size:13px!important;font-weight:700}.contact-form-status.is-success{color:#27733c}.contact-form-status.is-error{color:#b83232}.contact-form button:disabled{opacity:.6;cursor:wait}
.privacy-dialog{width:min(920px,calc(100vw - 30px));height:min(780px,calc(100vh - 30px));max-width:none;padding:0;background:#fff;border:0;overflow:hidden}.privacy-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(2px)}.privacy-dialog iframe{width:100%;height:100%;border:0;background:#fff}.privacy-dialog-close{position:absolute;right:16px;top:16px;z-index:2;width:42px;height:42px;border:0;border-radius:50%;background:#080a0b;color:#fff;font-size:27px;line-height:1;cursor:pointer;box-shadow:0 4px 20px #0004}.privacy-dialog-close:hover{background:var(--orange)}
.cookie-banner{position:fixed;z-index:200;left:24px;right:24px;bottom:24px;max-width:1180px;margin:auto;background:#0b0d0e;color:#fff;border:1px solid #ffffff20;box-shadow:0 18px 60px #0007;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:26px;transform:translateY(calc(100% + 50px));opacity:0;visibility:hidden;transition:.28s ease}.cookie-banner.is-visible{transform:translateY(0);opacity:1;visibility:visible}.cookie-copy{max-width:720px}.cookie-copy strong{display:block;font:800 18px/1.25 Montserrat,sans-serif;margin-bottom:5px}.cookie-copy p{margin:0 0 8px;color:#d3d5d5;font-size:13px;line-height:1.55}.cookie-policy-link{color:var(--orange);font-size:12px;font-weight:800;text-decoration:none}.cookie-actions{display:flex;gap:10px;flex-shrink:0}.cookie-btn{border:0;background:var(--orange);color:#fff;padding:12px 15px;font:800 11px/1 Manrope,sans-serif;text-transform:uppercase;cursor:pointer}.cookie-btn.secondary{background:#262a2c}.cookie-btn:hover{filter:brightness(1.08)}
.legal-page{background:#f6f5f2;color:#252426;min-height:100vh}.legal-header{background:#080a0b;color:#fff;padding:22px 34px;display:flex;align-items:center;gap:12px}.legal-header img{width:44px;height:44px;object-fit:contain}.legal-header strong{font-size:18px}.legal-content{max-width:920px;margin:0 auto;padding:58px 34px 80px}.legal-content .section-kicker{display:block;margin-bottom:8px}.legal-content h1{font:800 clamp(32px,5vw,52px)/1.05 Montserrat,sans-serif;margin:0 0 14px}.legal-content .legal-updated{color:#777;font-size:13px;margin-bottom:36px}.legal-content h2{font:800 21px/1.25 Montserrat,sans-serif;margin:32px 0 8px}.legal-content p,.legal-content li{font-size:15px;line-height:1.75;color:#46494a}.legal-content ul{padding-left:20px}.legal-content a{color:#b76b19}.legal-note{border-left:3px solid var(--orange);background:#fff;padding:16px 18px;margin:26px 0}
@media(max-width:760px){footer{align-items:flex-start}.footer-links{flex-direction:column;align-items:flex-end;gap:9px}.cookie-banner{left:12px;right:12px;bottom:12px;padding:18px;display:block}.cookie-actions{margin-top:16px;display:grid;grid-template-columns:1fr 1fr}.cookie-btn{padding:13px 10px}.privacy-dialog{width:calc(100vw - 16px);height:calc(100vh - 16px)}.legal-header{padding:16px 20px}.legal-content{padding:40px 22px 60px}}
@media(max-width:520px){.footer-links{align-items:center}.cookie-actions{grid-template-columns:1fr}.cookie-copy strong{font-size:16px}}

/* v1.1.9 - recapiti telefonici */
.footer-phones{display:flex;align-items:center;gap:18px;white-space:nowrap}.footer-phones a{color:#fff;text-decoration:none;font-weight:700}.footer-phones small{color:#999;font-weight:600}@media(max-width:900px){footer{flex-wrap:wrap;gap:18px}.footer-phones{order:3;width:100%;justify-content:center}}@media(max-width:520px){.footer-phones{flex-direction:column;gap:7px;align-items:center}}

/* v1.2.0 footer company data */
.footer-company-data{display:inline-block;margin-top:5px;color:#aaa;font-size:.82rem}.footer-company-data a{color:#aaa;text-decoration:none}.footer-company-data a:hover{color:var(--orange)}


/* v1.2.1 — contatti: email e mappa Google Maps 16:9 */
.contact-map {
  width:100%;
  aspect-ratio:16 / 9;
  margin-top:24px;
  overflow:hidden;
  background:#ece9e3;
  border:1px solid var(--line);
}
.contact-map iframe {
  display:block;
  width:100%;
  height:100%;
  border:0;
}
