/*
Theme Name: O.R.P. 2026
Theme URI: https://www.orppneus.it/
Author: O.R.P. s.r.l.
Description: Tema del sito O.R.P. – Orobica Riciclaggio Pneumatici (2026). Grafica scura con rosso del logo, titoli Anton e testi Space Grotesk.
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.4.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: orp-2026
*/

/* ---------- Base ---------- */
:root {
	--orp-black: #0D0D0D;
	--orp-grey: #1E1E1E;
	--orp-line: #2A2A2A;
	--orp-muted: #B8B4AD;
	--orp-cream: #F2EFEA;
	--orp-body: #D9D5CE;
	--orp-red: #A91834;
	--orp-red-text: #E0435E;
	--orp-ink-soft: #3A3835;
	--orp-max: 1360px;
	--orp-gutter: 24px;
}
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks > * + *, .orp-main > .wp-block-post-content > * , .orp-main > .wp-block-post-content > * + * { margin-block-start: 0; }
.orp-main { margin: 0; }
img { max-width: 100%; height: auto; }
a:focus-visible, .wp-block-button__link:focus-visible { outline: 3px solid var(--orp-red-text); outline-offset: 3px; }

/* Contenitore centrato */
.orp-wrap { max-width: var(--orp-max); margin-left: auto !important; margin-right: auto !important; padding-left: var(--orp-gutter); padding-right: var(--orp-gutter); box-sizing: border-box; }
.orp-section { padding-top: 96px; padding-bottom: 96px; }
.orp-section-sm { padding-top: 56px; padding-bottom: 56px; }

/* ---------- Tipografia ---------- */
.orp-display { font-size: clamp(64px, 12vw, 180px) !important; line-height: 0.88 !important; margin: 0; }
.orp-title { font-size: clamp(44px, 7vw, 104px) !important; line-height: 0.9 !important; margin: 0; }
.orp-subtitle { font-size: clamp(32px, 4vw, 48px) !important; line-height: 0.95 !important; margin: 0; }
.orp-eyebrow { font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--orp-muted); margin: 0; }
.orp-lead { font-size: 20px; line-height: 1.55; color: var(--orp-body); max-width: 720px; }
.orp-note { font-size: 14px; color: var(--orp-muted); }
.orp-cream .orp-lead, .orp-cream p { color: var(--orp-ink-soft); }
.has-red-text-color { color: var(--orp-red-text) !important; }
.orp-cream .has-red-text-color, .orp-red-num { color: var(--orp-red-text) !important; }
.orp-outline { color: transparent !important; -webkit-text-stroke: 2px var(--orp-cream); }

/* ---------- Pulsanti ---------- */
.wp-block-buttons { gap: 0 !important; }
.wp-block-button.is-style-orp-outline .wp-block-button__link { background: transparent; color: var(--orp-cream); box-shadow: inset 0 0 0 1px var(--orp-cream); }
.wp-block-button.is-style-orp-outline .wp-block-button__link:hover { background: var(--orp-cream); color: var(--orp-black); }
.wp-block-button.is-style-orp-light .wp-block-button__link { background: var(--orp-cream); color: var(--orp-black); }
.wp-block-button.is-style-orp-dark .wp-block-button__link { background: var(--orp-black); color: #fff; }

/* ---------- Intestazione ---------- */
.orp-header { border-bottom: 1px solid var(--orp-line); background: var(--orp-black); }
.orp-header-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-top: 14px; padding-bottom: 14px; }
.orp-brand { display: flex; align-items: center; gap: 14px; }
.orp-brand .orp-logo { margin: 0; }
.orp-brand .orp-logo img { height: 100px; width: auto; display: block; }
.home .orp-brand .orp-logo img { height: 120px; }
.orp-tagline { font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--orp-muted); line-height: 1.4; border-left: 1px solid #3A3A3A; padding-left: 14px; margin: 0; }
.orp-nav { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; gap: 4px 28px; }
.orp-nav a { text-decoration: none; padding: 12px 0; }
.orp-nav .current-menu-item > a, .orp-nav .current_page_item > a, .orp-nav a[aria-current="page"] { color: var(--orp-red-text); }
.orp-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--orp-black); color: var(--orp-cream); padding: 32px; }
.orp-header-cta .wp-block-button__link { padding: 14px 20px; }

/* ---------- Copertina Home ---------- */
.orp-hero-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 48px !important; border-top: 1px solid var(--orp-line); gap: 0 !important; }
.orp-hero-grid > * { margin: 0 !important; }
.orp-hero-text { padding: 32px 32px 32px 0; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; }
.orp-hero-stat { padding: 32px 0 32px 32px; display: flex; flex-direction: column; justify-content: flex-end; }
.orp-hero-stat .orp-bignum { font-family: var(--wp--preset--font-family--display); font-size: 96px; line-height: 0.9; color: var(--orp-red-text); margin: 0; }
.orp-hero-stat .orp-label { margin: 8px 0 0; }

/* Immagine / segnaposto foto */
.orp-photo { margin: 0 !important; min-height: 360px; background: var(--orp-grey); position: relative; overflow: hidden; }
.orp-photo img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.orp-hero-grid .orp-photo { border-left: 1px solid var(--orp-line); border-right: 1px solid var(--orp-line); }

/* ---------- Fascia rossa ---------- */
.orp-band { background: var(--orp-red); color: #fff; margin-top: 64px !important; }
.orp-band p { font-family: var(--wp--preset--font-family--display); font-size: 30px; text-transform: uppercase; letter-spacing: 0.03em; text-align: center; margin: 0; padding: 22px var(--orp-gutter); word-spacing: 0.2em; }

/* ---------- Numeri ---------- */
.orp-stats { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--orp-line); gap: 0 !important; }
.orp-stats > * { margin: 0 !important; padding: 48px 24px; border-right: 1px solid var(--orp-line); }
.orp-stats > *:first-child { padding-left: 0; }
.orp-stats > *:last-child { border-right: 0; padding-right: 0; }
.orp-stat-num { font-family: var(--wp--preset--font-family--display); font-size: 104px; line-height: 0.9; margin: 0 0 10px; }
.orp-label { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--orp-muted); margin: 0; }

/* ---------- Sezioni chiare ---------- */
.orp-cream { background: var(--orp-cream); color: var(--orp-black); }
.orp-cream a { color: var(--orp-black); }
.orp-head-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 56px !important; }
.orp-head-row > * { margin: 0 !important; }
.orp-steps { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 4px solid var(--orp-black); gap: 0 !important; }
.orp-steps > * { margin: 0 !important; padding: 28px 24px 0; }
.orp-steps > *:first-child { padding-left: 0; }
.orp-steps > *:last-child { padding-right: 0; }
.orp-step-num { font-family: var(--wp--preset--font-family--display); font-size: 56px; line-height: 1; color: var(--orp-red); margin: 0 0 14px; }
.orp-dark .orp-step-num { color: var(--orp-red-text); }
.orp-step-title { font-family: var(--wp--preset--font-family--body) !important; font-size: 22px !important; font-weight: 700 !important; letter-spacing: 0.04em; line-height: 1.2 !important; margin: 0 0 14px !important; }
.orp-steps p { font-size: 16px; line-height: 1.6; margin: 0; }

/* ---------- Riquadri a tutta larghezza ---------- */
.orp-tiles { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 !important; }
.orp-tile { margin: 0 !important; min-height: 520px; padding: 32px; display: flex; flex-direction: column; justify-content: flex-end; background-color: var(--orp-grey); background-size: cover; background-position: center; color: #fff; position: relative; border-right: 1px solid var(--orp-black); }
.orp-tile:last-child { border-right: 0; }
.orp-tile::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(13,13,13,0.92) 0%, rgba(13,13,13,0.55) 45%, rgba(13,13,13,0) 75%); }
.orp-tile > * { position: relative; margin: 0 !important; }
.orp-tile h3 { font-size: 44px; line-height: 0.95; margin-bottom: 10px !important; }
.orp-tile p { font-size: 16px; line-height: 1.55; color: var(--orp-body); }
.orp-tile-pista { background-image: url(assets/images/pista-atletica.jpg); }
.orp-tile-parco { background-image: url(assets/images/parco-giochi.jpg); }
.orp-tile-asfalto { background-image: url(assets/images/strada-bagnata.jpg); }
.orp-tiles-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--orp-black); }
.orp-tile-acustica { background-image: url(assets/images/lastre-acustiche.jpg); }
.orp-tile-stampaggio { background-image: url(assets/images/stampaggio.jpg); }

/* ---------- Blocchi a due colonne ---------- */
.orp-split { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--orp-line); gap: 0 !important; }
.orp-split > * { margin: 0 !important; }
.orp-split-text { padding: 56px 48px; display: flex; flex-direction: column; gap: 20px; }
.orp-split-text > * { margin: 0 !important; }
.orp-split .orp-photo { min-height: 520px; }
.orp-box { border: 1px solid var(--orp-cream); padding: 18px 20px; font-size: 15px; }
.orp-box p { margin: 0; }
.orp-box p + p { color: var(--orp-muted); }

.orp-three { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 !important; }
.orp-three > * { margin: 0 !important; padding: 48px; display: flex; flex-direction: column; gap: 16px; }
.orp-three > * > * { margin: 0 !important; }
.orp-three h3 { font-size: 36px; line-height: 0.95; }
.orp-bg-red { background: var(--orp-red); color: #fff; }
.orp-bg-red .orp-step-num { color: #fff; }
.orp-bg-grey { background: var(--orp-grey); }
.orp-bg-cream { background: var(--orp-cream); color: var(--orp-black); }
.orp-bg-cream p { color: var(--orp-ink-soft); }

.orp-mini-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--orp-line); border-left: 1px solid var(--orp-line); gap: 0 !important; }
.orp-mini-grid > * { margin: 0 !important; padding: 16px; border-right: 1px solid var(--orp-line); border-bottom: 1px solid var(--orp-line); }
.orp-mini-grid h4 { font-size: 26px; margin: 0 0 4px; }
.orp-mini-grid p { font-size: 13px; color: var(--orp-muted); margin: 0; }

/* ---------- Righe (storia, autorizzazioni, specifiche) ---------- */
.orp-rows { border-top: 1px solid var(--orp-line); }
.orp-rows.is-strong { border-top: 4px solid var(--orp-cream); }
.orp-row { display: flex !important; flex-wrap: wrap; align-items: center; gap: 16px 40px; padding: 32px 0; border-bottom: 1px solid var(--orp-line); margin: 0 !important; }
.orp-row > * { margin: 0 !important; }
.orp-row-key { flex: 0 0 240px; }
.orp-row-body { flex: 1 1 420px; min-width: 0; }
.orp-row-year { font-family: var(--wp--preset--font-family--display); font-size: 88px; line-height: 0.9; }
.orp-row-tag { font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--orp-red-text); }
.orp-row-title { font-family: var(--wp--preset--font-family--display); font-size: 32px; text-transform: uppercase; line-height: 1.05; margin: 0 0 4px !important; }
.orp-row-body p { margin: 0; font-size: 19px; line-height: 1.55; color: var(--orp-body); }
.orp-row-body p.orp-note { font-size: 15px; color: var(--orp-muted); }

.orp-spec { border-top: 1px solid var(--orp-line); }
.orp-spec-row { display: flex !important; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--orp-line); margin: 0 !important; }
.orp-spec-row > * { margin: 0 !important; font-size: 16px; }
.orp-spec-row > *:first-child { color: var(--orp-muted); }
.orp-spec-row > *:last-child { font-weight: 700; text-align: right; }

/* Partner */
.orp-partners { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 1px solid var(--orp-black); border-left: 1px solid var(--orp-black); gap: 0 !important; margin-top: 32px !important; }
.orp-partners > * { margin: 0 !important; border-right: 1px solid var(--orp-black); border-bottom: 1px solid var(--orp-black); padding: 28px 20px; min-height: 110px; display: flex; align-items: center; justify-content: center; text-align: center; font-weight: 700; }
.orp-partners img { max-height: 56px; width: auto; }

/* Contatti */
.orp-contact-big { font-family: var(--wp--preset--font-family--display); font-size: 56px; line-height: 1; margin: 0; }
.orp-contact-big a { text-decoration: none; }
.orp-contact-mid { font-family: var(--wp--preset--font-family--display); font-size: 40px; line-height: 1; margin: 0; }
.orp-form { background: var(--orp-cream); color: var(--orp-black); padding: 56px 48px; }
.orp-form input[type=text], .orp-form input[type=email], .orp-form input[type=tel], .orp-form textarea, .orp-form select { width: 100%; border: 0; border-bottom: 2px solid var(--orp-black); background: transparent; padding: 12px 0; font: inherit; font-size: 18px; color: var(--orp-black); }
.orp-form input[type=submit], .orp-form button { background: var(--orp-red); color: #fff; border: 0; padding: 20px 32px; font: inherit; font-weight: 700; font-size: 15px; letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer; }
.orp-map { min-height: 260px; background: var(--orp-grey); }
.orp-map iframe { width: 100%; height: 300px; border: 0; filter: grayscale(1) invert(0.9); }

/* CTA finale */
.orp-cta-title { font-size: clamp(56px, 9vw, 140px) !important; line-height: 0.88 !important; margin: 0 0 40px !important; }
.orp-chips { display: flex !important; flex-wrap: wrap; gap: 0 !important; margin-top: 32px !important; }
.orp-chips > * { margin: 0 !important; border: 1px solid var(--orp-line); padding: 12px 18px; font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }

/* ---------- Piè di pagina ---------- */
.orp-footer { background: var(--orp-cream); color: var(--orp-black); }
.orp-footer a { color: var(--orp-black); }
.orp-footer-cols { display: grid !important; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 32px !important; padding-top: 56px; font-size: 15px; line-height: 1.6; }
.orp-footer-cols > * { margin: 0 !important; }
.orp-footer-cols p { margin: 0; }
.orp-footer .orp-logo img { height: 140px; width: auto; }
.orp-footer .orp-label { color: #6B6862; margin-bottom: 6px; }
.orp-footer-bottom { display: flex !important; flex-wrap: wrap; justify-content: space-between; gap: 12px; border-top: 1px solid var(--orp-black); margin-top: 40px !important; padding-top: 20px; padding-bottom: 28px; font-size: 13px; color: var(--orp-ink-soft); }
.orp-footer-bottom > * { margin: 0 !important; }

/* ---------- Telefono e tablet ---------- */
@media (max-width: 1100px) {
	.orp-stats, .orp-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.orp-stats > *:nth-child(2) { border-right: 0; }
	.orp-steps > * { padding: 28px 24px 0 0 !important; }
	.orp-partners { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.orp-footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
	.orp-hero-grid, .orp-tiles, .orp-split, .orp-three { grid-template-columns: 1fr; }
	.orp-hero-text, .orp-hero-stat { padding-left: 0; padding-right: 0; }
	.orp-hero-grid .orp-photo { border: 0; }
	.orp-split-text, .orp-three > *, .orp-form { padding: 40px var(--orp-gutter); }
	.orp-tile { min-height: 420px; border-right: 0; border-bottom: 1px solid var(--orp-black); }
	.orp-section { padding-top: 64px; padding-bottom: 64px; }
	.orp-brand .orp-logo img, .home .orp-brand .orp-logo img { height: 72px; }
	.orp-tagline { display: none; }
	.orp-band p { font-size: 22px; }
	.orp-stat-num { font-size: 72px; }
	.orp-row-key { flex-basis: 100%; }
}
@media (max-width: 560px) {
	.orp-stats, .orp-steps, .orp-footer-cols, .orp-mini-grid { grid-template-columns: 1fr; }
	.orp-stats > * { border-right: 0; border-bottom: 1px solid var(--orp-line); padding-left: 0; }
	.orp-partners { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.orp-contact-big { font-size: 40px; }
	.orp-contact-mid { font-size: 28px; }
}

/* ---------- Ritocchi ---------- */
.orp-header-right { gap: 28px; }
.orp-three > .orp-photo { padding: 0; min-height: 440px; }
.orp-steps-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 40px !important; }
.orp-band-cta { padding: 40px 0; }
.orp-band-cta .orp-head-row { margin-bottom: 0 !important; align-items: center; }
.orp-intro-cols { margin-top: 56px !important; border-top: 1px solid var(--orp-line); padding-top: 40px; gap: 40px !important; }
.orp-split-text p { color: var(--orp-body); }
.orp-split-text .orp-row-tag, .orp-split-text .orp-lead { color: inherit; }
.orp-split-text .orp-row-tag { color: var(--orp-red-text); margin-top: 16px !important; }
.orp-cream h2, .orp-cream h3 { color: var(--orp-black); }
.orp-row .wp-block-buttons { margin: 0; }
.orp-hero-text .wp-block-buttons, .orp-section .wp-block-buttons { margin-top: 0; }
.orp-cta-title + .wp-block-buttons { margin-top: 0 !important; }
.orp-display + .orp-lead { margin-top: 40px !important; }
.orp-eyebrow + .orp-display { margin-top: 16px !important; }
.orp-title + .orp-rows { margin-top: 56px !important; }
.orp-footer .orp-logo { margin: 0 0 12px; }
@media (max-width: 860px) {
	.orp-steps-3 { grid-template-columns: 1fr; }
	.orp-header-right { gap: 12px; }
}

/* ---------- Selettore lingua IT/EN ---------- */
.orp-lang { margin: 0 !important; font-size: 13px; font-weight: 700; letter-spacing: 0.12em; }
.orp-lang:empty { display: none; }
.orp-lang a { display: inline-block; padding: 6px 10px; border: 1px solid var(--orp-line); color: var(--orp-cream); text-decoration: none; line-height: 1; }
.orp-lang a:hover, .orp-lang a:focus { border-color: var(--orp-red-text, #E0435E); color: #fff; }
