/* FSC Metalli — «Ferro su calce». Carta calce, inchiostro grafite, la lamiera spazzolata del cliente come
   targa rivettata, un solo accento «brace». Contrasti misurati (bianco su brace 4,96 · brace-ink su calce 5,67 ·
   muted su calce 6,19 · brace chiara su grafite 6,07). Il testo sulla targa si misura sul pixel (audit). */
:root {
  --calce: #F3F0EA; --calce-2: #E9E4DB; --carta: #FBFAF7; --line: #D9D2C6; --line-dark: rgba(255,255,255,.12);
  --ink: #1C1E21; --muted: #55595F; --graphite: #24272B; --graphite-2: #2E3237; --steel: #8A9097; --steel-lt: #C5CAD0;
  --ember: #C2481C; --ember-ink: #A63B12; --ember-lt: #F08A5D; --on-dark: #E7E9EC;
  --f-display: 'Marcellus', 'Manrope', Georgia, serif; /* cifre in Manrope: gli «1 0» di Marcellus si leggono «I O» (unicode-range in theme.json) */ --f-text: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --container: 1240px; --gutter: clamp(16px, 4vw, 40px); --section-y: clamp(64px, 7vw, 108px); --radius: 6px;
  --header-h: 84px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--header-h) + 12px); }
body { background: var(--calce); color: var(--ink); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .18em; text-decoration-thickness: 1px; }
:focus-visible { outline: 3px solid var(--ember); outline-offset: 3px; }
.wp-site-blocks { overflow-x: clip; }
.wp-block-post-content > * , .site-main > * { margin-block: 0; }
.wrap { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
.screen-reader-text:focus { z-index: 100000; }

h1, h2 { font-family: var(--f-display); font-weight: 400; letter-spacing: .004em; margin: 0; text-wrap: balance; }
h1 { font-size: clamp(1.9rem, 1.3rem + 1.6vw, 2.7rem); line-height: 1.12; }
h2 { font-size: clamp(1.65rem, 1.25rem + 1.2vw, 2.4rem); line-height: 1.16; }
h3 { font-family: var(--f-text); font-weight: 700; font-size: 1.08rem; line-height: 1.35; margin: 0; }
p { margin: 0; }
.prose > * + * { margin-top: 1em; }
.prose p, .lead { max-width: 68ch; }
.lead { font-size: 1.12rem; }
.muted { color: var(--muted); }
.over { font: 700 .78rem/1.2 var(--f-text); letter-spacing: .17em; text-transform: uppercase; color: var(--ember-ink); display: inline-flex; align-items: center; gap: .7em; }
.over::before { content: ''; width: 28px; height: 2px; background: var(--ember); flex: none; }

/* ---------- bottoni ---------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px 14px; align-items: center; }
.wp-block-button__link { display: inline-flex; align-items: center; gap: .55em; text-decoration: none; transition: background-color .2s, color .2s, border-color .2s, transform .2s; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--ink); border: 2px solid var(--ink); padding: .95em 1.45em; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--ink); color: var(--calce); }
.wp-block-button__link[href^="tel:"]::before { content: ''; width: 17px; height: 17px; background: currentColor; -webkit-mask: url(../icons/telefono.svg) center / contain no-repeat; mask: url(../icons/telefono.svg) center / contain no-repeat; flex: none; }

/* ---------- testata ---------- */
header.site-header-part { position: sticky; top: 0; z-index: 50; }
.site-header { background: var(--calce); border-bottom: 1px solid var(--line); } /* fondo PIENO: con .97 si leggevano in trasparenza H1 e testo */
.site-header__row { display: flex; align-items: center; gap: 24px; min-height: var(--header-h); }
.site-header__row > * { margin-block: 0; align-self: center; }
.brand { display: block; flex: none; line-height: 0; }
.brand img { display: block; height: 34px; width: auto; }
.site-nav { margin-left: auto; flex: 0 1 auto; }
.site-header .site-nav .wp-block-navigation__container { gap: 22px; flex-wrap: nowrap; }
.site-header .site-nav .wp-block-navigation-item__content { font: 600 .93rem/1 var(--f-text); padding: 10px 0; position: relative; text-decoration: none; white-space: nowrap; }
.site-header .site-nav .wp-block-navigation-item__content::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 2px; height: 2px; background: var(--ember); transition: right .25s; }
.site-header .site-nav .wp-block-navigation-item__content:hover::after,
.site-header .site-nav .wp-block-navigation-item__content[aria-current]::after { right: 0; }
.site-nav .nav-social, .site-nav .nav-call { display: none; }
.site-header .site-nav .is-menu-open .nav-call { display: flex; margin-top: 30px; }
.site-header .site-nav .wp-block-navigation__container > li:not(.wp-block-navigation-link) { display: none; }
.site-header .site-nav .is-menu-open .wp-block-navigation__container > li:not(.wp-block-navigation-link) { display: block; border-bottom: 0; }
.site-header__cta { flex: none; }
.site-header__cta .wp-block-button__link { padding: .85em 1.25em; }

/* menu a scomparsa: sotto 1280px (il breakpoint WP di 600px non basta per 6 voci + marchio + CTA: misurato, a 1240 sborda di 8px) */
@media (max-width: 1279px) {
  .site-header .site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .site-header .site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.site-header .wp-block-navigation__responsive-container-open { width: 44px; height: 44px; border: 1.5px solid var(--ink); border-radius: 50%; align-items: center; justify-content: center; }
.site-header .wp-block-navigation__responsive-container-open svg { width: 22px; height: 22px; }
.site-header .site-nav:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
  background: var(--graphite); color: #fff; height: 100vh; height: 100dvh; max-height: 100dvh; overflow-y: auto; padding: 20px var(--gutter) 40px;
}
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; padding-top: 72px; gap: 0; }
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: 0; width: 100%; }
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--line-dark); align-items: flex-start !important; }
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font: 400 clamp(1.5rem, 1.2rem + 1.5vw, 2rem)/1.2 var(--f-display); padding: 16px 0; width: 100%; text-align: left; color: #fff; }
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content[aria-current] { color: var(--ember-lt); }
.site-header .site-nav .wp-block-navigation__responsive-container-close { top: 22px; right: var(--gutter); width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.5); color: #fff; display: grid; place-items: center; }
.site-header .site-nav .is-menu-open .nav-social { display: flex; gap: 12px; margin-top: 28px; }
.site-header .site-nav .is-menu-open .nav-social .wp-social-link { background: transparent !important; color: #fff !important; border: 1px solid rgba(255,255,255,.35); width: 48px; height: 48px; display: grid; place-items: center; }
.site-header .site-nav .is-menu-open .nav-social .wp-social-link-whatsapp { color: #25D366 !important; }

/* ---------- targa in lamiera spazzolata (texture del cliente) ---------- */
.plate, .cta-band--plate .cta-band__grid { position: relative; border-radius: 4px; color: var(--ink);
  background: linear-gradient(180deg, rgba(255,255,255,.44), rgba(255,255,255,.24) 45%, rgba(255,255,255,.16)), url(../img/lamiera-spazzolata.jpg) center / cover;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), inset 0 -1px 0 rgba(0,0,0,.25), 0 30px 60px -32px rgba(28,30,33,.55); }
.plate::before, .cta-band--plate .cta-band__grid::before { content: ''; position: absolute; inset: 14px; pointer-events: none;
  --r: radial-gradient(circle at 50% 50%, #fafbfc 0 1.2px, #8d939a 1.8px 3.4px, rgba(0,0,0,.28) 3.9px, transparent 4.6px);
  background: var(--r) left top / 10px 10px no-repeat, var(--r) right top / 10px 10px no-repeat, var(--r) left bottom / 10px 10px no-repeat, var(--r) right bottom / 10px 10px no-repeat; }
.plate .over { color: var(--ink); }
.plate > *, .cta-band--plate .cta-band__grid > * { position: relative; }

/* ---------- hero ---------- */
.hero { padding: clamp(24px, 3.5vw, 52px) 0 clamp(52px, 6vw, 84px); }
.hero__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; }
.hero__media { grid-column: 6 / 13; grid-row: 1; height: clamp(440px, 42vw, 620px); position: relative; border-radius: var(--radius); overflow: hidden; background: var(--graphite); }
.hero__media .hero-slide { position: absolute; inset: 0; margin: 0; }
.hero__media .hero-slide img { width: 100%; height: 100%; object-fit: cover; }
.hero__media .hero-slide:not(:first-child) { opacity: 0; animation: fsc-slide 28s linear infinite backwards; }
.hero__media .hero-slide:nth-child(2) { animation-delay: 7s; }
.hero__media .hero-slide:nth-child(3) { animation-delay: 14s; }
.hero__media .hero-slide:nth-child(4) { animation-delay: 21s; }
@keyframes fsc-slide { 0% { opacity: 0; } 5% { opacity: 1; } 25% { opacity: 1; } 30% { opacity: 0; } 100% { opacity: 0; } }
.hero__plate { grid-column: 1 / 8; grid-row: 1; padding: clamp(34px, 3.6vw, 56px); z-index: 2; }
.hero__plate h1 { margin: 16px 0 18px; font-size: clamp(1.6rem, 1.12rem + 1.8vw, 2.6rem); }
.hero__plate p { max-width: 56ch; }
.hero__small { font-weight: 700; margin-top: 12px; }
.hero__cta { margin-top: 26px; }

/* ---------- tre punti ---------- */
.points { background: var(--graphite); color: #fff; }
.points__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.point { display: flex; align-items: center; gap: 18px; padding: 30px 28px; border-left: 1px solid var(--line-dark); }
.point:first-child { border-left: 0; padding-left: 0; }
.point::before { content: ''; width: 46px; height: 46px; flex: none; background: var(--ember-lt); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.point--pronto { --ico: url(../icons/pronto-intervento.svg); }
.point--preventivi { --ico: url(../icons/preventivi-gratuiti.svg); }
.point--pagamenti { --ico: url(../icons/pagamenti-personalizzati.svg); }
.point h3 { font-size: 1.05rem; color: #fff; }

/* ---------- sezioni ---------- */
.section { padding: var(--section-y) 0; }
.section--alt { background: var(--calce-2); }
.intro { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.intro--top { align-items: start; margin-bottom: 44px; }
.intro--flip { grid-template-columns: .95fr 1.05fr; }
.intro__media { margin: 0; }
.intro__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius); display: block; }
.intro + .gal-head, .intro + .wp-block-gallery { margin-top: clamp(44px, 5vw, 72px); }
.intro__kicker { font: 700 .82rem/1.2 var(--f-text); letter-spacing: .16em; text-transform: uppercase; color: var(--ember-ink); }
.brand-logo { margin: 22px 0 0; }
.brand-logo img { width: 135px; height: auto; display: block; }
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 48px; counter-reset: duo; }
.card { background: var(--carta); border: 1px solid var(--line); border-radius: var(--radius); padding: 30px 30px 32px; }
.card::before { counter-increment: duo; content: '0' counter(duo); display: block; font: 400 2.1rem/1 var(--f-display); color: var(--ember-ink); margin-bottom: 16px; }
.card h3 { margin-bottom: 10px; }
.card p { color: var(--muted); }
.head { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 60px; align-items: end; margin-bottom: 40px; }
.gal-title { margin-bottom: 32px; letter-spacing: .04em; }
.gal-head { display: flex; flex-direction: column; gap: 12px; margin-bottom: 30px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.gal-head h2 { letter-spacing: .05em; }
.chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 34px; }
.intro + .chips { margin-top: 40px; }
.chips + .intro { margin-top: 36px; }
.chips a { display: inline-block; font: 700 .8rem/1 var(--f-text); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; padding: .95em 1.35em; border-radius: 999px; background: var(--carta); border: 1px solid var(--line); transition: border-color .2s, background-color .2s; }
.chips a:hover { border-color: var(--ink); }
.chips a::after { content: ' ↓'; color: var(--ember-ink); }

/* ---------- tessere gallerie ---------- */
.tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.tile { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden; isolation: isolate; display: flex; align-items: flex-end; padding: 20px 22px; }
.tile .tile__img { position: absolute; inset: 0; margin: 0; z-index: -2; }
.tile .tile__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.tile::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20,22,25,0) 35%, rgba(20,22,25,.86)); }
.tile:hover .tile__img img { transform: scale(1.05); }
.tile__label { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; font: 400 1.5rem/1.15 var(--f-display); color: #fff; }
.tile__label a { color: #fff; text-decoration: none; }
.tile__label a::after { content: ''; position: absolute; inset: 0; z-index: 2; }
.tile__label::after { content: ''; width: 44px; height: 44px; border-radius: 50%; flex: none; transition: transform .25s;
  background: var(--ember) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 20px no-repeat; }
.tile:hover .tile__label::after { transform: translateX(4px); }
.tile:focus-within { outline: 3px solid var(--ember); outline-offset: 3px; }
.tile__label a:focus-visible { outline: none; }

/* ---------- gallerie (blocco nativo + lightbox nativa) ---------- */
.wp-block-gallery.has-nested-images.fsc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 15.5vw, 232px); grid-auto-flow: dense; gap: 12px; }
.wp-block-gallery.has-nested-images.fsc-grid--tall { grid-auto-rows: clamp(190px, 21vw, 300px); }
.wp-block-gallery.has-nested-images.fsc-grid figure.wp-block-image:not(#individual-image) { width: auto; margin: 0; height: 100%; border-radius: 4px; overflow: hidden; background: var(--calce-2); }
.wp-block-gallery.has-nested-images.fsc-grid figure.wp-block-image.fsc-big:not(#individual-image) { grid-column: span 2; grid-row: span 2; }
.wp-block-gallery.has-nested-images.fsc-grid figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.wp-block-gallery.has-nested-images.fsc-grid figure.wp-block-image:hover img { transform: scale(1.04); }
.fsc-more.is-collapsed figure.is-extra { display: none !important; }
.fsc-more__wrap { display: flex; justify-content: center; margin-top: 30px; }
.fsc-more__btn { font: 700 .95rem/1 var(--f-text); padding: .95em 1.6em; border-radius: 999px; border: 2px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; transition: background-color .2s, color .2s; }
.fsc-more__btn:hover { background: var(--ink); color: var(--calce); }
.wp-block-gallery.has-nested-images.fsc-small { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.wp-block-gallery.has-nested-images.fsc-small figure.wp-block-image:not(#individual-image) { width: auto; margin: 0; aspect-ratio: 3 / 2; border-radius: 4px; overflow: hidden; }
.wp-block-gallery.has-nested-images.fsc-small figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.slides2 { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 64px); align-items: start; }
.slide-set__title { font-size: clamp(1.3rem, 1.05rem + .7vw, 1.75rem); margin-bottom: 22px; max-width: 30ch; }
.slide-set .fsc-small { max-width: 560px; }

/* ---------- bande CTA ---------- */
.cta-band { background: var(--graphite); color: #fff; padding: clamp(60px, 7vw, 100px) 0; }
/* banda senza foto prima del piè (grafite): diventa una TARGA su calce, così non si fonde col piè */
.cta-band.cta-band--plate { background: var(--calce); color: var(--ink); padding: 0 0 var(--section-y); }
.section + .cta-band--plate, .section--alt + .cta-band--plate { padding-top: 0; }
.cta-band--plate .cta-band__grid { padding: clamp(36px, 4.6vw, 64px) clamp(26px, 4.6vw, 68px); }
.cta-band--plate h2 { color: var(--ink) !important; }
.cta-band--plate p { color: var(--ink) !important; }
.wp-block-cover.cta-band, .wp-block-cover.made { min-height: 0; padding: clamp(64px, 7vw, 104px) 0; align-items: stretch; }
.wp-block-cover.cta-band .wp-block-cover__inner-container, .wp-block-cover.made .wp-block-cover__inner-container { width: 100%; color: #fff; }
.cta-band__grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 28px 48px; align-items: end; }
.cta-band__text { display: flex; flex-direction: column; gap: 14px; }
.cta-band h2 { color: #fff; max-width: 24ch; }
.cta-band p { color: var(--on-dark); max-width: 56ch; }
.cta-band__text p:first-of-type { font-weight: 700; color: #fff; }
.cta-band__cta { justify-self: end; }
.made__grid { display: grid; grid-template-columns: auto 1fr auto; gap: 28px 56px; align-items: center; }
.made__big { font-size: clamp(2.4rem, 1.5rem + 2.8vw, 4.2rem); line-height: 1; color: var(--ember-lt); }
.made__text p { color: var(--on-dark); }
.made__text p + p { margin-top: .45em; }
.made__text strong { color: #fff; }

/* ---------- testata pagine interne ---------- */
.page-head { padding: clamp(22px, 3vw, 40px) 0 0; }
.page-head__plate, .subhead__plate { padding: clamp(36px, 4.6vw, 68px) clamp(26px, 4.6vw, 68px); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: end; }
.page-head__text { display: flex; flex-direction: column; gap: 14px; }
.page-head h1 { max-width: 26ch; }
.page-head__cta { justify-self: end; }
.subhead { padding: clamp(48px, 5vw, 72px) 0 0; }
.subhead h2 { max-width: 26ch; }
.h-sub { display: block; font: 700 .82rem/1.3 var(--f-text); letter-spacing: .17em; text-transform: uppercase; margin-top: 14px; color: var(--ink); }

/* ---------- recensioni ---------- */
.reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 40px; }
.wp-block-quote.review { margin: 0; background: var(--carta); border: 1px solid var(--line); border-radius: var(--radius); padding: 30px 28px 24px; display: flex; flex-direction: column; gap: 18px; }
.wp-block-quote.review::before { content: '“'; display: block; font: 400 3.4rem/.55 var(--f-display); color: var(--ember); margin-bottom: -8px; }
.wp-block-quote.review p { font-size: 1.02rem; }
.wp-block-quote.review cite { margin-top: auto; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border-top: 1px solid var(--line); padding-top: 14px; font: 700 .92rem/1.3 var(--f-text); font-style: normal; }
.review__src { color: var(--muted); font-weight: 600; font-size: .8rem; letter-spacing: .09em; text-transform: uppercase; }

/* ---------- contatti ---------- */
.contact { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(28px, 4vw, 64px); align-items: start; }
.info { display: grid; }
.info__item { position: relative; padding: 22px 0 22px 64px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 6px; }
.info__item:last-child { border-bottom: 1px solid var(--line); }
.info__item::before { content: ''; position: absolute; left: 0; top: 22px; width: 44px; height: 44px; border-radius: 50%; background: var(--graphite); }
.info__item::after { content: ''; position: absolute; left: 12px; top: 34px; width: 20px; height: 20px; background: var(--ember-lt); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.info--dove { --ico: url(../icons/indirizzo.svg); }
.info--contatti { --ico: url(../icons/telefono.svg); }
.info--orari { --ico: url(../icons/orari.svg); }
.info__item h3 { font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.info__cta { margin: 6px 0; }
.info__social { margin-top: 6px; }
.info__social.wp-block-social-links .wp-social-link { background: var(--graphite) !important; color: #25D366 !important; border-radius: 999px; }
.info__social.wp-block-social-links .wp-social-link a { padding: 9px 16px 9px 12px; gap: 8px; }
.info__social.wp-block-social-links .wp-block-social-link-label { color: #fff; font: 700 .88rem/1 var(--f-text); }
.wp-block-table.orari { margin: 0; }
.wp-block-table.orari table { border-collapse: collapse; width: auto; }
.wp-block-table.orari td { border: 0; padding: 3px 22px 3px 0; vertical-align: top; }
.wp-block-table.orari td:first-child { font-weight: 700; }
.form-card { background: var(--carta); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(24px, 3vw, 40px); }
.form-card h3 { font: 400 clamp(1.3rem, 1.1rem + .5vw, 1.55rem)/1.25 var(--f-display); margin-bottom: 6px; }
.form-card .req { font-size: .86rem; color: var(--muted); margin-bottom: 22px; }
.fsc-form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.fsc-form .field { display: grid; gap: 6px; margin: 0 0 14px; }
.fsc-form label { font: 700 .74rem/1.2 var(--f-text); letter-spacing: .13em; text-transform: uppercase; }
.fsc-form input[type=text], .fsc-form input[type=email], .fsc-form input[type=tel], .fsc-form textarea { font: inherit; width: 100%; padding: 12px 14px; border: 1.5px solid #CFC7B9; border-radius: 4px; background: #fff; color: var(--ink); }
.fsc-form input:disabled, .fsc-form textarea:disabled { background: #F4F1EC; cursor: not-allowed; }
.fsc-form .check { display: flex; gap: 10px; align-items: flex-start; margin: 6px 0; }
.fsc-form .check input { margin-top: 4px; width: 18px; height: 18px; flex: none; }
.fsc-form .check label { font: 400 .92rem/1.5 var(--f-text); letter-spacing: 0; text-transform: none; }
.fsc-form .form-actions { margin-top: 18px; }
.fsc-form .form-notice { margin-top: 16px; padding: 13px 16px; border-left: 3px solid var(--ember); background: #F6EDE7; font-size: .93rem; }
.fsc-form .form-notice a { font-weight: 700; }

/* ---------- informativa ---------- */
.legal { max-width: 78ch; }
.legal h2 { font-size: clamp(1.3rem, 1.1rem + .6vw, 1.65rem); margin-top: 1.6em; }
.legal h2:first-child { margin-top: 0; }

/* ---------- piè ---------- */
.site-footer { background: var(--graphite); color: var(--on-dark); padding: 64px 0 28px; font-size: .95rem; position: relative; }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.15fr .95fr; gap: 36px; }
.footer-logo img { height: 66px; width: auto; display: block; }
.site-footer h3 { font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--steel-lt); margin-bottom: 14px; }
.footer-col p + p { margin-top: 6px; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--ember-lt); text-decoration: underline; }
.site-footer .footer-social { margin-top: 22px; gap: 10px; }
.site-footer .footer-social.wp-block-social-links .wp-social-link { background: transparent !important; color: #fff !important; border: 1px solid rgba(255,255,255,.28); }
.site-footer .footer-social.wp-block-social-links .wp-social-link a { padding: 10px; }
.site-footer .footer-menu .wp-block-navigation__container { gap: 8px; }
.site-footer .footer-menu .wp-block-navigation-item__content { padding: 2px 0; }
.footer-legal { margin-top: 48px; padding-top: 20px; border-top: 1px solid var(--line-dark); display: flex; justify-content: space-between; align-items: center; gap: 14px 24px; flex-wrap: wrap; color: #BDC2C8; font-size: .86rem; }
.footer-legal a { text-decoration: underline; text-underline-offset: .2em; }
.powered { display: inline-flex; align-items: center; gap: 8px; font-size: .86rem; line-height: 1.2; color: #C9CDD2; }
.powered a { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; font-weight: 600; color: #E7E9EC; line-height: 1.2; }
.powered img { width: 18px; height: 18px; padding: 4px; box-sizing: content-box; background: var(--calce); border-radius: 50%; display: block; flex: none; }
.site-footer .powered a:hover { color: #fff; text-decoration: underline; text-underline-offset: .2em; }
.wa-float.wp-block-social-links { position: fixed; right: 18px; bottom: 18px; z-index: 45; margin: 0; }
.wa-float.wp-block-social-links .wp-social-link { background: var(--graphite) !important; color: #25D366 !important; width: 54px; height: 54px; box-shadow: 0 10px 24px -8px rgba(0,0,0,.45); display: grid; place-items: center; transition: transform .2s; }
.wa-float.wp-block-social-links .wp-social-link:hover { transform: scale(1.06); }
.wa-float.wp-block-social-links .wp-social-link svg { width: 28px; height: 28px; }

/* ---------- torna su (creato dal JS: senza JS non esiste) ---------- */
.to-top { position: fixed; right: 21px; bottom: 84px; z-index: 46; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,.22); background: var(--graphite); color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: 0 10px 24px -8px rgba(0,0,0,.45);
  opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .25s, transform .25s, visibility 0s linear .25s; }
.to-top.is-shown { opacity: 1; visibility: visible; transform: none; transition: opacity .25s, transform .25s, visibility 0s; }
.to-top:hover { background: var(--ember-ink); }
.to-top svg { width: 22px; height: 22px; }
.to-top:focus-visible { outline: 3px solid var(--ember-lt); outline-offset: 3px; }

/* ---------- comparse (fail-visible: senza JS tutto resta visibile; il reveal MUOVE, non sfuma) ---------- */
.js .reveal { transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.js .reveal:not(.is-visible) { transform: translateY(26px); }
@media (prefers-reduced-motion: reduce) {
  .js .reveal, .js .reveal:not(.is-visible) { transform: none; transition: none; }
  .hero__media .hero-slide:not(:first-child) { animation: none; opacity: 0; }
  .tile .tile__img img, .wp-block-gallery.fsc-grid figure img, .wp-block-button__link { transition: none; }
  html { scroll-behavior: auto; }
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  .footer-grid { grid-template-columns: 1fr 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  :root { --header-h: 68px; }
  .brand img { height: 26px; }
  .hero__grid { grid-template-columns: 1fr; }
  .hero__media { grid-column: 1; grid-row: 1; height: clamp(260px, 62vw, 420px); }
  .hero__plate { grid-column: 1; grid-row: 2; margin: -52px 10px 0; padding: 30px 22px 32px; }
  .plate { background-image: linear-gradient(180deg, rgba(255,255,255,.44), rgba(255,255,255,.24) 45%, rgba(255,255,255,.16)), url(../img/lamiera-spazzolata-960.jpg); }
  .points__grid { grid-template-columns: 1fr; }
  .point { border-left: 0; border-top: 1px solid var(--line-dark); padding: 20px 0; }
  .point:first-child { border-top: 0; }
  .intro, .intro--flip, .head, .contact, .cta-band__grid, .made__grid, .slides2, .page-head__plate, .subhead__plate { grid-template-columns: 1fr; }
  .intro--flip .intro__media { order: 2; }
  .cta-band__cta, .page-head__cta { justify-self: start; }
  .duo, .reviews { grid-template-columns: 1fr; }
  .tiles { grid-template-columns: 1fr 1fr; gap: 10px; }
  .tile { padding: 12px 12px; }
  .tile__label { font-size: 1.12rem; }
  .tile__label::after { width: 32px; height: 32px; background-size: 16px; }
  .wp-block-gallery.has-nested-images.fsc-grid, .wp-block-gallery.has-nested-images.fsc-grid--tall { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(140px, 42vw, 260px); gap: 8px; }
  .wp-block-cover.cta-band .wp-block-cover__background, .wp-block-cover.made .wp-block-cover__background { background: rgba(22,24,27,.9) !important; }
  .fsc-form .row { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .site-header__row { gap: 10px; }
  .site-header__cta .wp-block-button__link { width: 44px; height: 44px; padding: 0; justify-content: center; font-size: 0; gap: 0; }
  .site-header__cta .wp-block-button__link::before { width: 19px; height: 19px; }
  .tile { aspect-ratio: 4 / 5; padding: 10px; }
  .tile__label { font-size: 1.02rem; gap: 8px; }
  .tile__label::after { width: 28px; height: 28px; background-size: 14px; }
  .footer-legal { flex-direction: column; align-items: flex-start; }
  .site-footer { padding-bottom: 150px; } /* a fondo pagina i due pulsanti flottanti stanno sul vuoto, non sui link */
}

/* =====================================================================================================
   GIRO 2 (21/10) — direzione A+B scelta dall'owner: bande di marca «Forgia» scure (controluce brace,
   tagli diagonali, lastre flottanti) alternate a sezioni chiare «Luce d'acciaio» (calce modulata, piani
   sovrapposti, titoli a sfumatura grafite→brace). La lamiera spazzolata resta come GRANA al 7% nelle bande.
   Regole sotto = sovrascrivono la base sopra.
   ===================================================================================================== */
:root { --forge-0: #101214; --forge-1: #16181C; --forge-2: #1E2125; --glow: rgba(255,140,80,.40); --glow-soft: rgba(194,72,28,.16); }
.forge-bg, .hero, .page-head, .subhead, .gallerie, .cta-band--plate .cta-band__grid {
  background:
    radial-gradient(52% 72% at 82% 26%, var(--glow) 0%, var(--glow-soft) 40%, transparent 70%),
    radial-gradient(38% 60% at 4% 100%, rgba(120,132,145,.24), transparent 70%),
    linear-gradient(165deg, var(--forge-2) 0%, #131518 55%, #1B120D 100%);
  color: #fff; position: relative; isolation: isolate; }
/* grana di lamiera spazzolata (texture del materiale) appena accennata */
.hero::after, .page-head::before, .subhead::before, .gallerie::before, .cta-band--plate .cta-band__grid::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; border-radius: inherit;
  background: url(../img/lamiera-spazzolata-960.jpg) center / cover; opacity: .07; mix-blend-mode: overlay; }
.plate::before { display: none; }
.plate { box-shadow: none; border-radius: 0; }

/* ---------- testata scura ---------- */
.site-header { background: #141619; border-bottom: 1px solid rgba(255,255,255,.07); color: #fff; }
.site-header .site-nav .wp-block-navigation-item__content { color: #E9EBEE; }
.site-header .wp-block-navigation__responsive-container-open { border-color: rgba(255,255,255,.55); color: #fff; }
.site-header__cta .wp-block-button__link { background: linear-gradient(135deg, #E26732, #B33D16); }

/* ---------- hero Home ---------- */
.hero { overflow: hidden; padding: clamp(44px, 5vw, 76px) 0 clamp(150px, 13vw, 210px); clip-path: polygon(0 0, 100% 0, 100% calc(100% - 7vw), 0 100%); }
.hero::before { content: ''; position: absolute; inset: 0 0 0 52%; z-index: -1; pointer-events: none; opacity: .85;
  background: radial-gradient(1.6px 1.6px at 12% 20%, #FFD2A8, transparent 70%), radial-gradient(1.2px 1.2px at 28% 64%, #FFB27A, transparent 70%),
    radial-gradient(2px 2px at 40% 38%, #FFC79A, transparent 70%), radial-gradient(1.4px 1.4px at 6% 78%, #FF9F66, transparent 70%),
    radial-gradient(1.2px 1.2px at 82% 72%, #FFD2A8, transparent 70%), radial-gradient(1.8px 1.8px at 92% 14%, #FFB27A, transparent 70%);
  animation: fsc-sparks 5s ease-in-out infinite alternate; } /* scintille solo nella metà della foto: mai sul testo */
@keyframes fsc-sparks { from { opacity: .35; transform: translateY(6px); } to { opacity: .95; transform: translateY(-6px); } }
.hero .hero__plate { background: none; padding: 0 clamp(0px, 2vw, 32px) 0 0; grid-column: 1 / 8; color: #fff; }
.hero .hero__plate .over, .page-head .over, .subhead .over, .gallerie .over { color: #FFB089; font-weight: 800; }
.hero .over::before, .page-head .over::before, .gallerie .over::before { width: 44px; background: linear-gradient(90deg, #FF9B66, rgba(255,155,102,0)); }
.hero .hero__plate h1 { font-size: clamp(2rem, 1.15rem + 2.45vw, 3.35rem); line-height: 1.05; color: #fff; margin: 18px 0 22px; }
.hero .hero__lead { color: #CBD0D6; font-size: 1.1rem; }
.hero .hero__small { color: #fff; }
.forge-btns .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.hero .wp-block-button:not(.is-style-outline) .wp-block-button__link, .page-head .wp-block-button__link, .subhead .wp-block-button__link, .cta-band .wp-block-button__link {
  background: linear-gradient(135deg, #E26732, #B33D16); color: #fff; box-shadow: 0 14px 32px -12px rgba(232,110,55,.7); }
.hero .is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.6); }
.hero .is-style-outline .wp-block-button__link:hover { background: #fff; color: #141619; }
.hero .hero__media { grid-column: 8 / 13; height: clamp(470px, 44vw, 650px); border-radius: 999px 999px 28px 28px; background: #0E0F11;
  box-shadow: 0 0 0 1px rgba(255,255,255,.08), 0 0 0 10px rgba(255,255,255,.025), 0 60px 130px -30px rgba(240,120,60,.6); }
.hero .hero__media::after { content: ''; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: linear-gradient(180deg, rgba(17,19,22,0) 55%, rgba(17,19,22,.5)), linear-gradient(140deg, rgba(226,103,50,.2), rgba(226,103,50,0) 45%); }

/* ---------- 3 punti: lastre scure flottanti a cavallo del taglio ---------- */
.points { background: transparent; margin-top: calc(-1 * clamp(118px, 10.5vw, 160px)); position: relative; z-index: 3; }
.points__grid { gap: 16px; }
.points .point, .points .point:first-child { background: linear-gradient(160deg, rgba(44,48,54,.97), rgba(22,24,28,.97)); border: 1px solid rgba(255,255,255,.09);
  border-radius: 20px; padding: 26px; box-shadow: 0 34px 60px -30px rgba(0,0,0,.6); position: relative; overflow: hidden; isolation: isolate; }
.points .point::after { content: ''; position: absolute; z-index: -1; right: -25%; bottom: -70%; width: 75%; aspect-ratio: 1; background: radial-gradient(circle, rgba(240,138,93,.30), transparent 65%); transition: transform .6s; }
.points .point:hover::after { transform: scale(1.25); }
.points .point::before { width: 50px; height: 50px; background: linear-gradient(140deg, #FFC49E, #F08A5D 55%, #D9562A); filter: drop-shadow(0 0 12px rgba(240,138,93,.45)); }
.points .point h3 { font-size: 1.1rem; }

/* ---------- sezioni chiare modulate («Luce d'acciaio») ---------- */
.section { background: radial-gradient(45% 55% at 100% 0%, rgba(240,138,93,.12), transparent 70%), radial-gradient(40% 50% at 0% 100%, rgba(150,164,180,.16), transparent 70%), linear-gradient(180deg, #F6F3EE, #F1ECE4); }
.section--alt { background: radial-gradient(45% 60% at 0% 0%, rgba(150,164,180,.22), transparent 70%), radial-gradient(40% 55% at 100% 100%, rgba(240,138,93,.14), transparent 70%), linear-gradient(180deg, #ECE6DC, #F4F0E9); }
.section h2:not(.made__big):not(.slide-set__title), .gal-head h2 { font-size: clamp(1.9rem, 1.3rem + 1.8vw, 3rem); }
.section .legal h2 { font-size: clamp(1.3rem, 1.1rem + .6vw, 1.65rem); }
.grad-title, .section > .wrap > h2, .section .gal-title, .section .head h2, .section .intro--top h2, .section .gal-head h2 {
  background: linear-gradient(100deg, #1C1E21 0%, #2A2D31 50%, #A63B12 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.intro__media { position: relative; }
.intro__media img { border-radius: 24px; position: relative; z-index: 1; box-shadow: 0 34px 60px -38px rgba(28,30,33,.6); }
.intro__media::before { content: ''; position: absolute; inset: 22px -22px -22px 22px; border-radius: 28px; background: linear-gradient(150deg, #2B2E33 0%, #4E2F22 55%, #C2481C 100%); opacity: .9; }
.intro--flip .intro__media::before { inset: 22px 22px -22px -22px; }
.card { border-radius: 22px; border: 1px solid rgba(28,30,33,.08); background: linear-gradient(180deg, rgba(255,255,255,.85), rgba(251,250,247,.7)); box-shadow: 0 24px 50px -34px rgba(28,30,33,.45); position: relative; overflow: hidden; transition: transform .4s, box-shadow .4s; }
.card::after { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, #C2481C, #F08A5D 60%, rgba(240,138,93,0)); }
.card:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -30px rgba(194,72,28,.4); }
.card::before { font-size: 2.6rem; background: linear-gradient(135deg, #A63B12, #C2481C); -webkit-background-clip: text; background-clip: text; color: transparent; }
.wp-block-quote.review { border-radius: 22px; border: 1px solid rgba(28,30,33,.07); background: linear-gradient(180deg, #FFFFFF, #FBF9F5); box-shadow: 0 24px 50px -36px rgba(28,30,33,.5); transition: transform .4s; }
.wp-block-quote.review:hover { transform: translateY(-4px); }
.wp-block-quote.review::before { font-size: 4.2rem; background: linear-gradient(135deg, #F08A5D, #A63B12); -webkit-background-clip: text; background-clip: text; color: transparent; }
.form-card { border-radius: 24px; border: 1px solid rgba(28,30,33,.08); background: linear-gradient(180deg, #FFFFFF, #FBF9F5); box-shadow: 0 30px 60px -40px rgba(28,30,33,.5); }
.info__item::before { background: linear-gradient(140deg, #2B2E33, #1A1C1F); box-shadow: 0 10px 20px -10px rgba(0,0,0,.4); }
.chips a { border-radius: 999px; background: #fff; box-shadow: 0 8px 18px -12px rgba(28,30,33,.4); }
.chips a:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.chips a:hover::after { color: #FFB089; }

/* la banda gallerie è anche .section--alt: il fondo scuro va dichiarato dopo */
.section.gallerie { background:
    radial-gradient(48% 60% at 92% 8%, rgba(194,72,28,.30), transparent 70%), radial-gradient(40% 50% at 0% 100%, rgba(120,132,145,.16), transparent 70%),
    linear-gradient(180deg, #1A1D21, #111316); }
/* ---------- gallerie a tessere: banda scura obliqua, bento, duotone SOLO con puntatore ---------- */
.gallerie { clip-path: polygon(0 5vw, 100% 0, 100% 100%, 0 100%); padding-top: calc(var(--section-y) + 5vw); }
.gallerie .muted { color: #C3C8CE; }
.gallerie h2 { font-size: clamp(2rem, 1.3rem + 2vw, 3.1rem); color: #fff; }
.tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(170px, 16vw, 250px); gap: 14px; }
.tiles .tile { aspect-ratio: auto; border-radius: 22px; padding: 22px 24px; }
.tiles .tile:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.tiles .tile:nth-child(2), .tiles .tile:nth-child(5), .tiles .tile:nth-child(6) { grid-column: span 2; }
.tiles .tile::after { background: linear-gradient(185deg, rgba(17,19,22,0) 40%, rgba(17,19,22,.82) 100%); }
.tiles .tile .tile__img img { transition: filter .7s, transform .9s cubic-bezier(.2,.7,.2,1); }
.tiles .tile__label { font-size: clamp(1.3rem, 1rem + .9vw, 1.9rem); position: relative; z-index: 2; }
.tiles .tile:nth-child(1) .tile__label { font-size: clamp(1.8rem, 1.2rem + 1.6vw, 2.7rem); }
.tiles .tile__label::after { background-color: transparent; border: 1.5px solid rgba(255,255,255,.75); }
.tiles .tile:is(:hover, :focus-within) .tile__label::after { background-color: var(--ember); border-color: var(--ember); }
@media (hover: hover) and (pointer: fine) {
  .tiles .tile .tile__img img { filter: grayscale(.88) contrast(1.08) brightness(.86); }
  .tiles .tile::after { background: linear-gradient(200deg, rgba(214,90,40,.40) 0%, rgba(17,19,22,.05) 45%, rgba(17,19,22,.9) 100%); }
  .tiles .tile::before { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(115deg, transparent 38%, rgba(255,205,170,.24) 50%, transparent 62%); transform: translateX(-130%); transition: transform 1s; }
  .tiles .tile:hover::before { transform: translateX(130%); }
}
.tiles .tile:is(:hover, :focus-within) .tile__img img { filter: none; transform: scale(1.07); }

/* ---------- gallerie di pagina: angoli morbidi, ingresso a tendina scaglionato (≥980px, con movimento) ---------- */
.wp-block-gallery.has-nested-images.fsc-grid figure.wp-block-image:not(#individual-image) { border-radius: 14px; }
/* tendina: un SIPARIO colorato si ritira sopra la foto. Non si ritaglia l'immagine: un'immagine con area dipinta
   nulla non viene scaricata (lazy) e la tendina scoprirebbe un riquadro vuoto. */
@media (min-width: 980px) and (prefers-reduced-motion: no-preference) {
  .js .fsc-grid.fsc-enter figure.wp-block-image::after { content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none; transform-origin: 50% 0;
    background: linear-gradient(160deg, #2B2E33, #4E2F22 60%, #C2481C); transform: scaleY(1); transition: transform .85s cubic-bezier(.7,0,.2,1); }
  .js .fsc-grid.fsc-enter.is-in figure.wp-block-image::after { transform: scaleY(0); }
  .js .fsc-grid.fsc-enter.is-in figure:nth-child(2)::after { transition-delay: .06s; } .js .fsc-grid.fsc-enter.is-in figure:nth-child(3)::after { transition-delay: .12s; }
  .js .fsc-grid.fsc-enter.is-in figure:nth-child(4)::after { transition-delay: .18s; } .js .fsc-grid.fsc-enter.is-in figure:nth-child(5)::after { transition-delay: .24s; }
  .js .fsc-grid.fsc-enter.is-in figure:nth-child(6)::after { transition-delay: .30s; } .js .fsc-grid.fsc-enter.is-in figure:nth-child(7)::after { transition-delay: .36s; }
  .js .fsc-grid.fsc-enter.is-in figure:nth-child(8)::after { transition-delay: .42s; } .js .fsc-grid.fsc-enter.is-in figure:nth-child(9)::after { transition-delay: .48s; }
  .js .fsc-grid.fsc-enter.is-in figure:nth-child(n+10)::after { transition-delay: .54s; }
  .js .fsc-more:not(.is-collapsed).fsc-enter figure.is-extra::after { transition: none; transform: scaleY(0); }
}
}

/* ---------- nastro scorrevole dei lavori (fermo con movimento ridotto) ---------- */
.ribbon { overflow: hidden; padding: clamp(36px, 4vw, 56px) 0; background: linear-gradient(180deg, #F1ECE4, #F6F3EE); }
.wp-block-gallery.has-nested-images.fsc-ribbon { display: flex; flex-wrap: nowrap; gap: 14px; width: max-content; margin: 0; }
.wp-block-gallery.has-nested-images.fsc-ribbon figure.wp-block-image:not(#individual-image) { width: clamp(200px, 18vw, 280px); height: clamp(140px, 12.5vw, 196px); flex: none; margin: 0; border-radius: 16px; overflow: hidden; }
.wp-block-gallery.has-nested-images.fsc-ribbon figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
@media (prefers-reduced-motion: no-preference) {
  .js .fsc-ribbon.is-looping { animation: fsc-ribbon 70s linear infinite; }
  .js .ribbon:hover .fsc-ribbon.is-looping { animation-play-state: paused; }
}
@keyframes fsc-ribbon { to { transform: translateX(-50%); } }

/* ---------- testate interne scure col taglio diagonale ---------- */
.page-head { padding: clamp(44px, 5vw, 76px) 0 clamp(96px, 9vw, 140px); clip-path: polygon(0 0, 100% 0, 100% calc(100% - 5vw), 0 100%); overflow: hidden; }
.page-head::after { content: ''; position: absolute; right: -8vw; top: -30%; width: 46vw; aspect-ratio: 1; border-radius: 50%; z-index: -1; pointer-events: none; border: 1.5px solid rgba(255,155,102,.22); box-shadow: inset 0 0 0 50px rgba(255,255,255,.02); }
.page-head__plate, .subhead__plate { background: none; padding: 0; }
.page-head h1 { color: #fff; font-size: clamp(1.8rem, 1.25rem + 1.6vw, 2.85rem); line-height: 1.08; max-width: 30ch; }
.page-head + .section { margin-top: -5vw; padding-top: calc(var(--section-y) + 2vw); }
.subhead { padding: clamp(64px, 7vw, 104px) 0; clip-path: polygon(0 4vw, 100% 0, 100% calc(100% - 4vw), 0 100%); overflow: hidden; }
.subhead h2 { color: #fff; font-size: clamp(1.9rem, 1.3rem + 1.5vw, 2.7rem); }
.subhead .h-sub { color: #FFB089; }

/* ---------- bande CTA ---------- */
.wp-block-cover.cta-band, .wp-block-cover.made { clip-path: polygon(0 4vw, 100% 0, 100% calc(100% - 4vw), 0 100%); padding: calc(clamp(64px, 7vw, 104px) + 4vw) 0; }
.cta-band.cta-band--plate { background: transparent; padding: 0 0 var(--section-y); }
.cta-band--plate .cta-band__grid { border-radius: 28px; padding: clamp(36px, 4.6vw, 64px) clamp(26px, 4.6vw, 68px); overflow: hidden; box-shadow: 0 40px 80px -40px rgba(28,30,33,.7); }
.cta-band--plate h2, .cta-band--plate p { color: #fff !important; }
.cta-band--plate .cta-band__text p:first-of-type { color: #fff !important; }
.cta-band--plate .cta-band__text p:not(:first-of-type) { color: #CBD0D6 !important; }
.wp-block-cover.made { margin-bottom: clamp(40px, 5vw, 72px); }
.made__big { background: linear-gradient(100deg, #FFC49E, #F08A5D 60%, #E26732); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------- piè ---------- */
.site-footer { background: linear-gradient(180deg, #121417, #0E1012); }
.site-footer::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, rgba(240,138,93,0), #E26732 30%, #F08A5D 60%, rgba(240,138,93,0)); }

@media (max-width: 900px) {
  .hero { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 44px), 0 100%); padding-bottom: 120px; }
  .hero::before { inset: 0 0 60% 0; }
  .hero .hero__media { grid-column: 1; grid-row: 1; height: clamp(300px, 80vw, 440px); border-radius: 999px 999px 24px 24px; margin: 0 6vw; }
  .hero .hero__plate { grid-column: 1; grid-row: 2; padding: 30px 0 0; margin: 0; }
  .points { margin-top: -96px; }
  .points .point, .points .point:first-child { padding: 18px 20px; border-top: 1px solid rgba(255,255,255,.09); }
  .gallerie { clip-path: polygon(0 28px, 100% 0, 100% 100%, 0 100%); padding-top: calc(var(--section-y) + 28px); }
  .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 44vw, 230px); gap: 10px; }
  .tiles .tile:nth-child(1), .tiles .tile:nth-child(6) { grid-column: span 2; grid-row: span 1; }
  .tiles .tile:nth-child(2), .tiles .tile:nth-child(5) { grid-column: span 1; }
  .tiles .tile { padding: 14px; border-radius: 16px; aspect-ratio: auto; }
  .tiles .tile__label { font-size: 1.08rem; }
  .tiles .tile:nth-child(1) .tile__label { font-size: 1.5rem; }
  .page-head { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 32px), 0 100%); padding-bottom: 84px; }
  .page-head::after { width: 90vw; right: -50vw; top: -20%; }
  .page-head + .section { margin-top: -32px; }
  .subhead { clip-path: polygon(0 24px, 100% 0, 100% calc(100% - 24px), 0 100%); }
  .wp-block-cover.cta-band, .wp-block-cover.made { clip-path: polygon(0 24px, 100% 0, 100% calc(100% - 24px), 0 100%); padding: calc(56px + 24px) 0; }
  .intro__media::before { inset: 14px -10px -14px 14px; }
  .intro--flip .intro__media::before { inset: 14px 14px -14px -10px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero::before { animation: none; display: none; }
  .card, .wp-block-quote.review, .tiles .tile .tile__img img { transition: none; }
}
.section.gallerie .head h2 { background: none; -webkit-background-clip: border-box; background-clip: border-box; color: #fff; }

/* firma centrata (owner 21/10): P.IVA e link legali + «Powered by Dgitaly» su una riga centrata, stessa mediana;
   sotto i 900px uno sotto l'altro, centrati */
.footer-legal { justify-content: center; align-items: center; text-align: center; gap: 10px 28px; }
.footer-legal > p { margin: 0; line-height: 1.5; }
.footer-legal .powered { line-height: 1.5; }
@media (max-width: 900px) {
  .footer-legal { flex-direction: column; align-items: center; }
}

/* giro 2b (verifica orchestratore): «Scopri di più» VISIBILE sotto il titolo di ogni riquadro; la freccia passa lì */
.tiles .tile { flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 10px; }
.tiles .tile__label { display: block; width: auto; }
.tiles .tile__label::after { display: none; }
.tile__more { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 10px; margin: 0; color: #fff; font: 700 .84rem/1 var(--f-text); letter-spacing: .04em; }
.tile__more::after { content: ''; width: 34px; height: 34px; border-radius: 50%; flex: none; border: 1.5px solid rgba(255,255,255,.8); transition: background-color .25s, border-color .25s, transform .25s;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 16px no-repeat; }
.tiles .tile:is(:hover, :focus-within) .tile__more::after { background-color: var(--ember); border-color: var(--ember); transform: translateX(4px); }
@media (max-width: 900px) { .tile__more { font-size: .76rem; gap: 8px; } .tile__more::after { width: 28px; height: 28px; background-size: 14px; } }

/* giro 2b: Carpenteria, ascensori (4 foto) | scivoli (2 foto) senza vuoti: colonne 2:1, gli scivoli impilati riempiono
   l'altezza della colonna accanto (le foto da 530px restano sotto i ~400px di larghezza) */
.slides2 { grid-template-columns: 2fr 1fr; align-items: stretch; }
.slide-set { display: flex; flex-direction: column; }
.slide-set .fsc-small { max-width: none; flex: 1 1 auto; }
.wp-block-gallery.has-nested-images.fsc-small--2 { grid-template-columns: minmax(0, 1fr); grid-template-rows: 1fr 1fr; }
.wp-block-gallery.has-nested-images.fsc-small--2 figure.wp-block-image:not(#individual-image) { aspect-ratio: auto; height: auto; min-height: 140px; }
.wp-block-gallery.has-nested-images.fsc-small--2 figure.wp-block-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) {
  .slides2 { grid-template-columns: 1fr; }
  .wp-block-gallery.has-nested-images.fsc-small--2 { grid-template-rows: none; }
  .wp-block-gallery.has-nested-images.fsc-small--2 figure.wp-block-image:not(#individual-image) { aspect-ratio: 3 / 2; min-height: 0; }
}
/* il titolo ora sta più in alto (sopra «Scopri di più»): il buio SEGUE il testo, solo nella metà bassa */
.tiles .tile::after { background: linear-gradient(0deg, rgba(17,19,22,.9) 0%, rgba(17,19,22,.72) 34%, rgba(17,19,22,.35) 58%, rgba(17,19,22,0) 78%); }
@media (hover: hover) and (pointer: fine) {
  .tiles .tile::after { background: linear-gradient(0deg, rgba(17,19,22,.92) 0%, rgba(17,19,22,.74) 34%, rgba(17,19,22,.36) 58%, rgba(17,19,22,0) 78%), linear-gradient(200deg, rgba(214,90,40,.40) 0%, rgba(214,90,40,0) 45%); }
}
.tiles .tile__label, .tile__more { text-shadow: 0 1px 14px rgba(0,0,0,.45); }
