/* ==========================================================================
   De Franco Costruzioni – stili del sito
   Il colore principale si cambia da Aspetto › Personalizza › Sito De Franco.
   ========================================================================== */

@font-face {
	font-family: 'Big Shoulders Display';
	src: url('../fonts/big-shoulders-display.woff') format('woff');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Inter Tight';
	src: url('../fonts/inter-tight.woff') format('woff');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

:root {
	--df-acc: #FFD400;
	--df-bg: #0D0E10;
	--df-bg2: #16181B;
	--df-ink: #F3F1EC;
	--df-mut: #A7AAB0;
	--df-mut2: #C4C6CA;
	--df-line: #2A2D32;
	--df-line2: #23262A;
	--df-ctl: #3A3E44;
	--df-light: #ECEAE4;
	--df-disp: 'Big Shoulders Display', Impact, 'Arial Narrow', sans-serif;
	--df-body: 'Inter Tight', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--df-bg);
	color: var(--df-ink);
	font-family: var(--df-body);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
a:hover { color: #fff; }
:focus-visible { outline: 3px solid var(--df-acc); outline-offset: 2px; }
[id] { scroll-margin-top: 24px; }
h1, h2, h3, p { margin: 0; }

.df-skip {
	position: absolute; left: 12px; top: -60px; z-index: 100;
	background: var(--df-acc); color: var(--df-bg); padding: 10px 14px; font-weight: 700;
}
.df-skip:focus { top: 12px; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

.df-wrap { width: 100%; max-width: 1360px; margin: 0 auto; padding: 0 24px; }
.df-narrow { max-width: 860px; }
.df-stack { display: flex; flex-direction: column; gap: 56px; }

/* ---------- Tipografia ---------- */
.df-h1, .df-h2, .df-h2-md, .df-h2-c, .df-h3,
.df-svc-num, .df-stat-n, .df-step-n, .df-tel, .df-bigword, .df-zones, .df-marq, .df-tag-big, .df-logo-name {
	font-family: var(--df-disp);
}
.df-h1, .df-h2, .df-h2-md, .df-h2-c, .df-h3, .df-zones { overflow-wrap: break-word; hyphens: manual; }
.df-h1 {
	font-weight: 900;
	font-size: clamp(60px, 7.8vw, 128px);
	line-height: 0.84;
	letter-spacing: -0.005em;
	text-transform: uppercase;
}
.df-h2 { font-weight: 900; font-size: clamp(56px, 7vw, 104px); line-height: 0.88; text-transform: uppercase; }
.df-h2-md { font-weight: 900; font-size: clamp(44px, 5.6vw, 84px); line-height: 0.9; text-transform: uppercase; }
.df-h3 { font-weight: 800; font-size: 34px; line-height: 1; text-transform: uppercase; }
.df-outline { color: transparent; -webkit-text-stroke: 2px var(--df-acc); }
.df-acc-txt { color: var(--df-acc); }

.df-kicker {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--df-mut);
}
.df-kicker::before { content: ""; flex: none; width: 32px; height: 3px; background: var(--df-acc); }
.df-lead { font-size: 19px; line-height: 1.6; color: var(--df-mut2); max-width: 500px; }
.df-lead-sm { font-size: 18px; line-height: 1.6; color: var(--df-mut2); max-width: 440px; }

/* ---------- Pulsanti ---------- */
.df-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 56px;
	padding: 18px 30px;
	border: 0;
	border-radius: 0;
	font-family: var(--df-body);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.1;
	text-decoration: none;
	cursor: pointer;
	transition: transform 0.15s ease;
}
.df-btn:hover { transform: translateY(-2px); }
.df-btn-acc, .df-btn-acc:hover { background: var(--df-acc); color: var(--df-bg); }
.df-btn-ghost, .df-btn-ghost:hover { background: transparent; color: var(--df-ink); border: 2px solid var(--df-ink); padding: 16px 28px; font-weight: 600; }
.df-btn-dark, .df-btn-dark:hover { background: var(--df-bg); color: var(--df-ink); min-height: 52px; padding: 16px 24px; }
.df-btn-sm { min-height: 44px; padding: 12px 22px; font-size: 15px; }
.df-btns { display: flex; flex-wrap: wrap; gap: 14px; }

/* ---------- Header ---------- */
.df-header { border-bottom: 1px solid var(--df-line2); position: relative; z-index: 20; background: var(--df-bg); }
.df-header-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-top: 16px; padding-bottom: 16px; }
.df-logo { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--df-ink); }
.df-logo:hover { color: var(--df-ink); }
.df-logo svg { flex: none; }
.df-logo-bg { fill: var(--df-acc); }
.df-logo-txt { display: flex; flex-direction: column; line-height: 0.95; }
.df-logo-name { font-weight: 900; font-size: 26px; letter-spacing: 0.02em; }
.df-logo-sub { font-size: 11px; font-weight: 600; letter-spacing: 0.34em; color: var(--df-mut); }
.df-logo-img img { max-height: 56px; width: auto; }

.df-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 30px; font-size: 15px; font-weight: 500; }
.df-menu { display: flex; flex-wrap: wrap; gap: 30px; margin: 0; padding: 0; list-style: none; }
.df-menu a { text-decoration: none; }
.df-menu .current-menu-item > a { color: var(--df-acc); }

.df-menu-btn {
	display: none;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 10px 14px;
	background: transparent;
	color: var(--df-ink);
	border: 2px solid var(--df-ctl);
	border-radius: 0;
	font-family: var(--df-body);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}
.df-menu-btn-bars, .df-menu-btn-bars::before, .df-menu-btn-bars::after {
	display: block; width: 18px; height: 2px; background: currentColor; position: relative; transition: transform 0.2s ease;
}
.df-menu-btn-bars::before, .df-menu-btn-bars::after { content: ""; position: absolute; left: 0; }
.df-menu-btn-bars::before { top: -6px; }
.df-menu-btn-bars::after { top: 6px; }
.df-menu-btn[aria-expanded="true"] .df-menu-btn-bars { background: transparent; }
.df-menu-btn[aria-expanded="true"] .df-menu-btn-bars::before { transform: translateY(6px) rotate(45deg); }
.df-menu-btn[aria-expanded="true"] .df-menu-btn-bars::after { transform: translateY(-6px) rotate(-45deg); }

/* ---------- Apertura ---------- */
.df-hero-in { display: flex; flex-wrap: wrap; gap: 48px; align-items: stretch; padding-top: 56px; padding-bottom: 72px; }
.df-hero-copy { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 30px; }
.df-hero-3d { flex: 1.45 1 560px; min-width: 0; }

/* ---------- Cantiere 3D ---------- */
.df3d { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--df-line); background: var(--df-bg); }
.df3d-top {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px;
	padding: 14px 18px; border-bottom: 1px solid var(--df-line);
	font-size: 12px; font-weight: 600; letter-spacing: 0.18em; color: var(--df-mut);
}
.df3d-tag, .df3d-hint { display: flex; align-items: center; gap: 10px; }
.df3d-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--df-acc); display: inline-block; }
.df3d-stage { position: relative; height: 540px; flex: 1 0 auto; }
.df3d-canvas { display: block; width: 100%; height: 100%; touch-action: pan-y; cursor: grab; }
.df3d-canvas:active { cursor: grabbing; }
.df3d-nogl { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 24px; text-align: center; color: var(--df-mut); font-size: 15px; }
.df3d-nogl[hidden] { display: none; }
.df3d-phase { position: absolute; left: 18px; top: 16px; display: flex; flex-direction: column; gap: 2px; pointer-events: none; }
.df3d-phase-num { font-family: var(--df-disp); font-weight: 900; font-size: 56px; line-height: 1; color: var(--df-acc); }
.df3d-phase-lbl { font-size: 12px; font-weight: 600; letter-spacing: 0.2em; color: var(--df-mut); }
.df3d-bottom { border-top: 1px solid var(--df-line); padding: 18px; display: flex; flex-direction: column; gap: 16px; }
.df3d-phases { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 120px), 1fr)); gap: 8px; }
.df3d button {
	display: flex; align-items: center; gap: 8px; margin: 0; border-radius: 0;
	font-family: var(--df-body); color: var(--df-ink); cursor: pointer;
}
.df3d-ph {
	min-height: 48px; padding: 10px 12px; background: transparent;
	border: 2px solid var(--df-ctl); font-size: 14px; font-weight: 600; text-align: left;
}
.df3d-ph:hover { border-color: var(--df-mut); }
.df3d .df3d-ph[aria-pressed="true"] { background: var(--df-acc); color: var(--df-bg); border-color: var(--df-acc); font-weight: 700; }
.df3d-ph-num { font-family: var(--df-disp); font-weight: 900; font-size: 18px; color: var(--df-mut); }
.df3d-ph[aria-pressed="true"] .df3d-ph-num { color: var(--df-bg); }
.df3d-info { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.df3d-text { flex: 1 1 280px; font-size: 15px; line-height: 1.55; color: var(--df-mut2); }
.df3d-text strong { color: var(--df-ink); font-weight: 700; }
.df3d-ctrls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.df3d-floors { display: flex; align-items: center; border: 2px solid var(--df-ctl); }
.df3d-minus, .df3d-plus { width: 44px; height: 44px; padding: 0; justify-content: center; background: transparent; border: 0; }
.df3d-floor-val { min-width: 84px; text-align: center; font-size: 14px; font-weight: 600; }
.df3d-floor-n { font-family: var(--df-disp); font-weight: 900; font-size: 20px; }
.df3d-replay { height: 48px; padding: 0 16px; background: transparent; border: 2px solid var(--df-ctl); font-size: 14px; font-weight: 600; }
.df3d-replay:hover { border-color: var(--df-mut); }

/* ---------- Striscia ---------- */
.df-marquee { background: var(--df-acc); color: var(--df-bg); overflow: hidden; }
.df-marq {
	display: flex; width: max-content; padding: 18px 0;
	font-weight: 900; font-size: 44px; line-height: 1; text-transform: uppercase; white-space: pre;
	animation: dfMarq 32s linear infinite;
}
.df-marq span { padding-right: 36px; }
@keyframes dfMarq { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- Sezioni ---------- */
.df-sec { padding: 112px 0; }
.df-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; }

/* Servizi */
.df-svc-grid {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
	gap: 1px; background: var(--df-line); border: 1px solid var(--df-line);
}
.df-svc {
	background: var(--df-bg); padding: 40px 34px; display: flex; flex-direction: column; gap: 18px; min-height: 280px;
	transition: background-color 0.25s ease, color 0.25s ease;
}
.df-svc-num { font-weight: 900; font-size: 72px; line-height: 1; }
.df-svc-txt { font-size: 16px; line-height: 1.6; color: var(--df-mut); transition: color 0.25s ease; }
.df-svc:hover { background: var(--df-acc); color: var(--df-bg); }
.df-svc:hover .df-svc-num { -webkit-text-stroke-color: var(--df-bg); }
.df-svc:hover .df-svc-txt { color: var(--df-bg); }

/* Chi siamo */
.df-light { background: var(--df-light); color: var(--df-bg); }
.df-light a:hover { color: var(--df-bg); }
.df-light .df-kicker { color: #4A4D52; font-weight: 700; }
.df-light .df-kicker::before { background: var(--df-bg); }
.df-about-in { display: flex; flex-wrap: wrap; gap: 64px; align-items: stretch; }
.df-about-photo {
	flex: 1 1 420px; min-height: 560px; padding: 24px;
	display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start;
	background-color: #D6D2C8; background-size: cover; background-position: center;
}
.df-phl { background-image: repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.05) 0 2px, transparent 2px 16px); }
.df-about-copy { flex: 1.2 1 480px; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 28px; }
.df-body { font-size: 18px; line-height: 1.7; color: #2E3135; max-width: 620px; }
.df-tag-big { display: inline-block; background: var(--df-acc); color: var(--df-bg); font-weight: 900; font-size: 30px; line-height: 1; padding: 10px 16px; text-transform: uppercase; }
.df-tag-cap { display: inline-block; background: var(--df-bg); color: var(--df-ink); font-size: 13px; font-weight: 500; padding: 8px 12px; }
.df-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #C9C5BB; border: 1px solid #C9C5BB; }
.df-stat { background: var(--df-light); padding: 22px 18px; display: flex; flex-direction: column; gap: 6px; }
.df-stat-n { font-weight: 900; font-size: 48px; line-height: 1; }
.df-stat-l { font-size: 14px; line-height: 1.4; color: #4A4D52; }
.df-badges { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 10px; }
.df-badges li { background: var(--df-bg); color: var(--df-ink); padding: 10px 14px; font-size: 14px; font-weight: 600; }

/* Lavori */
.df-link {
	display: inline-flex; align-items: center; gap: 10px; min-height: 44px;
	font-weight: 700; font-size: 16px; text-decoration: none; border-bottom: 2px solid var(--df-acc);
}
.df-work-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 32px; }
.df-work { display: flex; flex-direction: column; }
.df-work-link { display: flex; flex-direction: column; gap: 18px; text-decoration: none; color: inherit; }
.df-work-link:hover { color: inherit; }
.df-work-img {
	height: 420px; padding: 18px;
	display: flex; align-items: flex-end;
	background-color: #1C1F23; background-size: cover; background-position: center;
	transform: perspective(900px) rotateX(0deg) rotateY(0deg);
	transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.df-ph { background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.045) 0 2px, transparent 2px 16px); }
.df-work:hover .df-work-img { transform: perspective(900px) rotateX(5deg) rotateY(-8deg) scale(1.02); }
.df-tag-sm { display: inline-block; align-self: flex-start; background: var(--df-acc); color: var(--df-bg); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; padding: 7px 10px; }
.df-work-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.df-work-meta .df-h3 { font-size: 30px; }
.df-work-loc { font-size: 14px; color: var(--df-mut); white-space: nowrap; }

/* Metodo */
.df-dark2 { background: var(--df-bg2); border-top: 1px solid var(--df-line2); border-bottom: 1px solid var(--df-line2); }
.df-steps { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 40px; }
.df-step { display: flex; flex-direction: column; gap: 14px; border-top: 4px solid var(--df-acc); padding-top: 24px; }
.df-step-n { font-weight: 900; font-size: 22px; letter-spacing: 0.1em; color: var(--df-mut); text-transform: uppercase; }
.df-step-txt { font-size: 16px; line-height: 1.6; color: var(--df-mut2); }

/* Zone */
.df-zone-in { display: flex; flex-direction: column; gap: 32px; padding-top: 96px; padding-bottom: 96px; }
.df-zones { font-weight: 900; font-size: clamp(40px, 5.4vw, 80px); line-height: 1.02; text-transform: uppercase; color: #5C6067; }
.df-z-hi { color: var(--df-ink); }
.df-z-acc { color: var(--df-acc); }

/* Contatti */
.df-contatti { padding-bottom: 112px; }
.df-contact-in { display: flex; flex-wrap: wrap; }
.df-contact-card {
	flex: 1 1 420px; min-width: 0; background: var(--df-acc); color: var(--df-bg);
	padding: 48px 40px; display: flex; flex-direction: column; gap: 28px;
}
.df-contact-card a:hover { color: var(--df-bg); }
.df-contact-card .df-btn-dark { align-self: flex-start; }
.df-contact-card .df-btn-dark:hover { color: var(--df-ink); }
.df-h2-c { font-weight: 900; font-size: clamp(56px, 6vw, 92px); line-height: 0.86; text-transform: uppercase; }
.df-card-txt { font-size: 18px; line-height: 1.55; font-weight: 500; }
.df-contacts { display: flex; flex-direction: column; gap: 18px; }
.df-contacts > div { display: flex; flex-direction: column; gap: 2px; }
.df-lbl { font-size: 12px; font-weight: 700; letter-spacing: 0.2em; }
.df-tel { font-weight: 900; font-size: 36px; line-height: 1.05; text-decoration: none; }
.df-mail { font-size: 20px; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.df-addr { font-size: 18px; font-weight: 500; line-height: 1.45; }

/* Modulo */
.df-form { flex: 1.3 1 520px; min-width: 0; background: var(--df-bg2); padding: 48px 40px; display: flex; flex-direction: column; gap: 22px; }
.df-form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 22px; }
.df-field { display: flex; flex-direction: column; gap: 8px; }
.df-field label { font-size: 13px; font-weight: 600; letter-spacing: 0.08em; color: var(--df-mut2); }
.df-form input[type="text"],
.df-form input[type="tel"],
.df-form input[type="email"],
.df-form select,
.df-form textarea {
	width: 100%; min-height: 50px; padding: 12px 14px;
	background: var(--df-bg); border: 2px solid var(--df-ctl); border-radius: 0;
	color: var(--df-ink); font-family: var(--df-body); font-size: 16px;
}
.df-form textarea { resize: vertical; min-height: 140px; }
.df-form input:focus, .df-form select:focus, .df-form textarea:focus { border-color: var(--df-acc); outline: none; }
.df-check { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: var(--df-mut2); }
.df-check input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--df-acc); }
.df-check a { color: var(--df-ink); }
.df-form-note { font-size: 13px; color: var(--df-mut); }
.df-form .df-btn { align-self: flex-start; }
.df-form-msg { padding: 14px 16px; font-size: 15px; font-weight: 600; line-height: 1.45; }
.df-form-msg-ok { background: var(--df-acc); color: var(--df-bg); }
.df-form-msg-err { border: 2px solid #FF8A80; color: #FFD3CF; }
.df-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Footer */
.df-footer { border-top: 1px solid var(--df-line2); }
.df-footer-in { display: flex; flex-direction: column; gap: 40px; padding-top: 56px; padding-bottom: 40px; }
.df-bigword { font-weight: 900; font-size: clamp(64px, 11vw, 168px); line-height: 0.82; text-transform: uppercase; color: #1E2125; }
.df-foot-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px; font-size: 14px; line-height: 1.6; color: var(--df-mut); }
.df-foot-info strong { color: var(--df-ink); font-weight: 600; }
.df-foot-nav { display: flex; flex-wrap: wrap; gap: 24px; }
.df-foot-nav a { color: var(--df-mut); }
.df-foot-nav a:hover { color: var(--df-ink); }
.df-credit { font-size: 13px; color: #5C6067; }

/* ---------- Pagine interne ---------- */
.df-page-top { padding-top: 72px; }
.df-back { align-self: flex-start; font-size: 15px; font-weight: 600; color: var(--df-mut); text-decoration: none; }
.df-single-head { display: flex; flex-direction: column; gap: 18px; }
.df-single-img { margin: 0; }
.df-single-img img { width: 100%; }
.df-single-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; padding: 32px; border: 1px solid var(--df-line); }
.df-narrow .df-h2-md { margin-bottom: 40px; }
.df-list { display: flex; flex-direction: column; gap: 40px; }
.df-list-item { display: flex; flex-direction: column; gap: 12px; padding-bottom: 32px; border-bottom: 1px solid var(--df-line); }
.df-list-item a { text-decoration: none; }

.df-content { font-size: 18px; line-height: 1.7; color: var(--df-mut2); max-width: 760px; }
.df-content > * + * { margin-top: 1.1em; }
.df-content h2, .df-content h3 { font-family: var(--df-disp); font-weight: 800; color: var(--df-ink); text-transform: uppercase; line-height: 1; }
.df-content h2 { font-size: 40px; margin-top: 1.4em; }
.df-content h3 { font-size: 28px; margin-top: 1.2em; }
.df-content a { color: var(--df-acc); }
.df-content ul, .df-content ol { padding-left: 1.3em; }
.df-content .wp-block-gallery, .df-content .wp-block-image, .df-content figure { max-width: none; }
.df-content .wp-block-gallery { gap: 12px; }
.df-content figcaption { font-size: 14px; color: var(--df-mut); margin-top: 8px; }

.df-pager .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.df-pager .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px;
	border: 2px solid var(--df-ctl); text-decoration: none; font-weight: 600;
}
.df-pager .page-numbers.current { background: var(--df-acc); border-color: var(--df-acc); color: var(--df-bg); }

/* ---------- Tablet / telefono ---------- */
@media (max-width: 1024px) {
	.df-sec { padding: 88px 0; }
	.df-about-in { gap: 40px; }
}
@media (max-width: 860px) {
	.df-menu-btn { display: inline-flex; }
	.df-nav {
		display: none;
		position: absolute; left: 0; right: 0; top: 100%;
		flex-direction: column; align-items: stretch; gap: 0;
		background: var(--df-bg); border-bottom: 1px solid var(--df-line2);
		padding: 8px 16px 20px;
	}
	.df-menu-aperto .df-nav { display: flex; }
	.df-menu { flex-direction: column; gap: 0; }
	.df-menu a { display: block; padding: 14px 0; font-size: 18px; border-bottom: 1px solid var(--df-line2); }
	.df-nav .df-btn { margin-top: 16px; justify-content: center; }
}
@media (max-width: 767px) {
	.df-wrap { padding: 0 16px; }
	.df-logo-name { font-size: 22px; }
	.df-hero-in { padding-top: 32px; padding-bottom: 48px; gap: 32px; }
	.df3d-stage { height: 380px; }
	.df3d-phase-num { font-size: 40px; }
	.df-marq { font-size: 32px; padding: 14px 0; }
	.df-sec { padding: 72px 0; }
	.df-stack { gap: 40px; }
	.df-svc { padding: 32px 24px; min-height: 0; }
	.df-about-photo { min-height: 360px; }
	.df-stat-n { font-size: 34px; }
	.df-stat { padding: 18px 12px; }
	.df-work-img { height: 320px; }
	.df-work-meta { flex-wrap: wrap; }
	.df-zone-in { padding-top: 64px; padding-bottom: 64px; }
	.df-contatti { padding-bottom: 72px; }
	.df-contact-card, .df-form { padding: 36px 22px; }
	.df-tel { font-size: 30px; }
	.df-page-top { padding-top: 48px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.df-marq { animation: none; }
	.df-work:hover .df-work-img, .df-btn:hover { transform: none; }
}
