/* =========================================================
   RETEKLIMA — HOME STYLESHEET
   Collegato da riqualificazioni/index.html e contatti/index.html come: css/reteklima-azienda.css
   ========================================================= */

:root {
--rk-green: #67b14a;
--rk-green-dark: #4e9338;
--rk-green-soft: #edf6e9;
--rk-ink: #17211a;
--rk-text: #4d5650;
--rk-muted: #7e8880;
--rk-line: #e7ece8;
--rk-soft: #f7f9f7;
--rk-white: #ffffff;
--rk-dark: #101711;
--rk-shadow-sm: 0 8px 24px rgba(17, 31, 20, .07);
--rk-shadow-md: 0 18px 50px rgba(17, 31, 20, .11);
--rk-shadow-lg: 0 28px 80px rgba(7, 17, 10, .20);
--rk-radius: 18px;
--rk-ease: cubic-bezier(.2,.75,.2,1);
}

html {
scroll-behavior: smooth;
}

body {
color: var(--rk-text);
background: #fff;
}

body.rk-lightbox-open {
overflow: hidden;
}

/* ---------------------------------------------------------
HEADER / MOBILE CONTACT
--------------------------------------------------------- */
.mobile-whatsapp {
z-index: 9999;
transition: transform .25s var(--rk-ease), box-shadow .25s var(--rk-ease);
}

.mobile-whatsapp:hover {
transform: scale(1.06);
}

@media only screen and (max-width: 768px) {
.mobile-whatsapp {
right: 16px !important;
bottom: 18px !important;
width: 58px !important;
height: 58px !important;
}
}

/* ---------------------------------------------------------
HERO
--------------------------------------------------------- */
.rk-page-hero {
position: relative;
}

.rk-hero-copy {
max-width: 920px;
padding: 40px 0 30px;
}

.rk-eyebrow {
display: inline-flex;
align-items: center;
gap: 10px;
font-family: 'Montserrat', sans-serif;
font-size: 11px;
line-height: 1;
letter-spacing: .18em;
text-transform: uppercase;
font-weight: 700;
color: var(--rk-green-dark);
}

.rk-eyebrow::before {
content: '';
width: 28px;
height: 2px;
border-radius: 999px;
background: currentColor;
}

.rk-eyebrow.light {
color: #bce6aa;
}

.rk-hero-copy h1 {
max-width: 930px;
margin: 20px 0 20px;
font-family: 'Montserrat', sans-serif;
font-size: clamp(2.7rem, 5vw, 5.5rem);
line-height: .98;
letter-spacing: -.045em;
font-weight: 700;
}

.rk-hero-subtitle {
max-width: 720px;
margin: 0 0 30px;
color: rgba(255,255,255,.88);
font-size: clamp(1rem, 1.5vw, 1.3rem);
line-height: 1.7;
}

.rk-hero-cta {
display: inline-flex;
align-items: center;
gap: 14px;
padding: 13px 18px 13px 20px;
color: #fff !important;
background: rgba(255,255,255,.10);
border: 1px solid rgba(255,255,255,.28);
border-radius: 999px;
text-decoration: none !important;
font-family: 'Montserrat', sans-serif;
font-size: 12px;
font-weight: 700;
letter-spacing: .05em;
transition: background .25s ease, border-color .25s ease, transform .25s var(--rk-ease);
}

.rk-hero-cta:hover {
background: rgba(103,177,74,.95);
border-color: rgba(103,177,74,.95);
transform: translateY(-2px);
}

/* ---------------------------------------------------------
MAIN LAYOUT / INDEX
--------------------------------------------------------- */
.rk-section-wrap {
padding: 86px 0 105px;
background:
radial-gradient(circle at 12% 18%, rgba(103,177,74,.055), transparent 29%),
linear-gradient(180deg, #fff 0%, #fbfcfb 100%);
}

.rk-content-layout {
align-items: flex-start;
}

.rk-index-col {
position: relative;
}

.rk-index-card {
position: sticky;
top: 118px;
padding: 24px 23px 20px;
background: rgba(255,255,255,.85);
border: 1px solid var(--rk-line);
border-radius: 16px;
box-shadow: var(--rk-shadow-sm);
backdrop-filter: blur(8px);
}

.rk-index-label {
display: block;
margin-bottom: 14px;
color: var(--rk-muted);
font-family: 'Montserrat', sans-serif;
font-size: 10px;
font-weight: 700;
letter-spacing: .17em;
text-transform: uppercase;
}

.rk-index-card nav {
display: flex;
flex-direction: column;
}

.rk-index-card nav a {
display: flex;
align-items: center;
gap: 11px;
padding: 12px 9px;
color: #4a544c;
border-left: 2px solid transparent;
text-decoration: none !important;
font-family: 'Montserrat', sans-serif;
font-size: 13px;
font-weight: 600;
transition: color .2s ease, background .2s ease, border-color .2s ease, padding .2s ease;
}

.rk-index-card nav a span {
color: #abb4ad;
font-size: 10px;
font-weight: 700;
letter-spacing: .08em;
}

.rk-index-card nav a:hover,
.rk-index-card nav a.active {
color: var(--rk-green-dark);
background: var(--rk-green-soft);
border-left-color: var(--rk-green);
padding-left: 13px;
}

.rk-index-note {
display: flex;
gap: 10px;
margin-top: 18px;
padding-top: 17px;
border-top: 1px solid var(--rk-line);
color: #68716b;
font-size: 12px;
line-height: 1.6;
}

.rk-index-note i {
margin-top: 2px;
color: var(--rk-green);
}

/* ---------------------------------------------------------
CONTENT CHAPTERS
--------------------------------------------------------- */
.rk-main-copy {
max-width: 860px;
}

.rk-content-section {
scroll-margin-top: 110px;
}

.rk-content-section + .rk-content-section {
margin-top: 88px;
padding-top: 82px;
border-top: 1px solid var(--rk-line);
}

.rk-section-heading {
margin-bottom: 34px;
}

.rk-section-heading h2 {
margin: 17px 0 17px;
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: clamp(2rem, 3.2vw, 3.4rem);
line-height: 1.08;
letter-spacing: -.035em;
font-weight: 700;
}

.rk-lead {
max-width: 780px;
margin: 0;
color: #59625b;
font-size: 1.09rem;
line-height: 1.82;
}

.rk-benefit-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0,1fr));
gap: 16px;
margin: 32px 0;
}

.rk-benefit-card {
position: relative;
overflow: hidden;
min-height: 255px;
padding: 26px 24px 24px;
background: #fff;
border: 1px solid var(--rk-line);
border-radius: var(--rk-radius);
box-shadow: 0 4px 0 rgba(103,177,74,.03), var(--rk-shadow-sm);
transition: transform .28s var(--rk-ease), box-shadow .28s var(--rk-ease), border-color .28s ease;
}

.rk-benefit-card::after {
content: '';
position: absolute;
right: -30px;
bottom: -35px;
width: 130px;
height: 130px;
border-radius: 50%;
background: rgba(103,177,74,.06);
}

.rk-benefit-card:hover {
transform: translateY(-6px);
border-color: #dce9d8;
box-shadow: var(--rk-shadow-md);
}

.rk-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
margin-bottom: 24px;
color: var(--rk-green-dark);
background: var(--rk-green-soft);
border-radius: 14px;
font-size: 18px;
}

.rk-benefit-card h3,
.rk-process-step h3 {
margin: 0 0 10px;
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: 1.03rem;
font-weight: 700;
}

.rk-benefit-card p,
.rk-process-step p {
margin: 0;
color: #6b746d;
font-size: .94rem;
line-height: 1.72;
}

.rk-two-column-box {
display: grid;
grid-template-columns: 1.15fr .85fr;
gap: 22px;
align-items: stretch;
margin-top: 22px;
}

.rk-two-column-box > div {
padding: 26px;
background: #fff;
border: 1px solid var(--rk-line);
border-radius: 16px;
}

.rk-small-title {
display: inline-block;
margin-bottom: 15px;
color: var(--rk-muted);
font-family: 'Montserrat', sans-serif;
font-size: 10px;
font-weight: 700;
letter-spacing: .14em;
text-transform: uppercase;
}

.rk-check-list {
margin: 0;
padding: 0;
list-style: none;
}

.rk-check-list li {
display: flex;
gap: 10px;
align-items: flex-start;
margin: 0 0 13px;
color: #5a645c;
font-size: .93rem;
line-height: 1.58;
}

.rk-check-list li:last-child {
margin-bottom: 0;
}

.rk-check-list i {
flex: 0 0 auto;
margin-top: 4px;
color: var(--rk-green);
font-size: 12px;
}

.rk-callout {
display: flex;
flex-direction: column;
justify-content: center;
background: linear-gradient(140deg, #f7fbf6, #eef7ea) !important;
border-color: #dcebd6 !important;
}

.rk-callout p {
margin: 0;
color: #4d5a50;
font-size: 1.03rem;
line-height: 1.72;
}

.rk-process-list {
position: relative;
margin: 30px 0 0;
padding-left: 2px;
}

.rk-process-list::before {
content: '';
position: absolute;
left: 23px;
top: 23px;
bottom: 23px;
width: 1px;
background: linear-gradient(180deg, #cde4c5, #e8eee9 88%);
}

.rk-process-step {
position: relative;
display: grid;
grid-template-columns: 48px 1fr;
gap: 18px;
margin-bottom: 26px;
}

.rk-process-step:last-child {
margin-bottom: 0;
}

.rk-step-number {
position: relative;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
color: var(--rk-green-dark);
background: #fff;
border: 1px solid #cfe1ca;
border-radius: 50%;
box-shadow: 0 0 0 7px #fbfcfb;
font-family: 'Montserrat', sans-serif;
font-size: 11px;
font-weight: 700;
}

.rk-process-step h3 {
margin-top: 3px;
margin-bottom: 7px;
font-size: 1.06rem;
}

.rk-method-banner {
display: grid;
grid-template-columns: 58px 1fr;
gap: 18px;
margin-top: 34px;
padding: 25px;
background: var(--rk-dark);
border-radius: 18px;
color: #eff8ec;
box-shadow: var(--rk-shadow-md);
}

.rk-method-icon {
display: flex;
align-items: center;
justify-content: center;
width: 58px;
height: 58px;
color: #bfe5b0;
background: rgba(103,177,74,.12);
border: 1px solid rgba(180,225,166,.18);
border-radius: 16px;
font-size: 21px;
}

.rk-method-banner .rk-small-title {
margin-top: 3px;
color: #a9d69a;
}

.rk-method-banner p {
margin: 0;
color: rgba(255,255,255,.77);
font-size: .94rem;
line-height: 1.72;
}

.rk-testimonial-box {
position: relative;
margin-top: 28px;
padding: 28px 32px 26px;
background: #fff;
border-left: 4px solid var(--rk-green);
border-radius: 0 16px 16px 0;
box-shadow: var(--rk-shadow-sm);
}

.rk-testimonial-box p {
margin: 12px 0 10px;
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: clamp(1.1rem, 2vw, 1.45rem);
line-height: 1.55;
letter-spacing: -.015em;
}

.rk-signature {
color: var(--rk-green-dark);
font-family: 'Montserrat', sans-serif;
font-size: 11px;
font-weight: 700;
letter-spacing: .1em;
text-transform: uppercase;
}

/* ---------------------------------------------------------
PORTFOLIO INTRO / STATS
--------------------------------------------------------- */
.rk-project-heading {
margin-bottom: 26px;
}

.rk-stat-strip {
display: grid;
grid-template-columns: repeat(3, minmax(0,1fr));
gap: 0;
margin: 28px 0 32px;
overflow: hidden;
background: #fff;
border: 1px solid var(--rk-line);
border-radius: 16px;
box-shadow: var(--rk-shadow-sm);
}

.rk-stat-strip > div {
padding: 19px 22px;
}

.rk-stat-strip > div + div {
border-left: 1px solid var(--rk-line);
}

.rk-stat-strip strong,
.rk-stat-strip span {
display: block;
}

.rk-stat-strip strong {
margin-bottom: 6px;
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: 1.35rem;
line-height: 1;
}

.rk-stat-strip span {
color: var(--rk-muted);
font-size: 12px;
line-height: 1.5;
}

/* ---------------------------------------------------------
FEATURED PROJECT MOSAIC
--------------------------------------------------------- */
.rk-featured-projects {
display: grid;
grid-template-columns: minmax(0,1.28fr) minmax(270px,.72fr);
gap: 14px;
margin: 28px 0 24px;
}

.featured-main,
.featured-mini {
position: relative;
overflow: hidden;
cursor: pointer;
background: #131a14;
border-radius: 20px;
box-shadow: var(--rk-shadow-md);
}

.featured-main {
min-height: 480px;
}

.featured-main img,
.featured-mini img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
transition: transform .7s var(--rk-ease);
}

.featured-main::after,
.featured-mini::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(180deg, rgba(0,0,0,.02) 20%, rgba(5,12,7,.78) 100%);
pointer-events: none;
}

.featured-main:hover img,
.featured-mini:hover img {
transform: scale(1.045);
}

.featured-main-overlay,
.featured-mini-overlay {
position: absolute;
z-index: 2;
right: 0;
bottom: 0;
left: 0;
color: #fff;
}

.featured-main-overlay {
display: flex;
justify-content: space-between;
align-items: flex-end;
gap: 20px;
padding: 34px;
}

.featured-main-overlay h3 {
margin: 9px 0 7px;
color: #fff;
font-family: 'Montserrat', sans-serif;
font-size: clamp(1.55rem, 3vw, 2.5rem);
line-height: 1.05;
letter-spacing: -.035em;
}

.featured-main-overlay p {
margin: 0;
color: rgba(255,255,255,.78);
font-size: .91rem;
}

.featured-open {
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
width: 48px;
height: 48px;
color: #fff;
background: rgba(255,255,255,.12);
border: 1px solid rgba(255,255,255,.2);
border-radius: 50%;
backdrop-filter: blur(5px);
}

.featured-side {
display: grid;
grid-template-columns: repeat(2, minmax(0,1fr));
grid-template-rows: repeat(2, minmax(0,1fr));
gap: 14px;
}

.featured-mini {
min-height: 230px;
border-radius: 16px;
box-shadow: var(--rk-shadow-sm);
}

.featured-mini-overlay {
padding: 19px;
}

.featured-mini-overlay span,
.featured-mini-overlay strong,
.featured-mini-overlay em {
display: block;
}

.featured-mini-overlay span {
color: rgba(255,255,255,.74);
font-size: 10px;
letter-spacing: .08em;
text-transform: uppercase;
}

.featured-mini-overlay strong {
margin-top: 5px;
color: #fff;
font-family: 'Montserrat', sans-serif;
font-size: 14px;
line-height: 1.25;
}

.featured-mini-overlay em {
margin-top: 8px;
color: #ccebbf;
font-size: 11px;
font-style: normal;
}

/* ---------------------------------------------------------
FILTER TOOLBAR
--------------------------------------------------------- */
.rk-gallery-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
margin: 30px 0 20px;
}

.rk-filters {
display: flex;
flex-wrap: wrap;
gap: 7px;
}

.rk-filter {
appearance: none;
border: 1px solid #dfe6e0;
border-radius: 999px;
padding: 9px 13px;
color: #5c675f;
background: #fff;
font-family: 'Montserrat', sans-serif;
font-size: 10px;
font-weight: 700;
letter-spacing: .04em;
cursor: pointer;
transition: all .2s ease;
}

.rk-filter:hover,
.rk-filter.is-active {
color: #fff;
background: var(--rk-green-dark);
border-color: var(--rk-green-dark);
}

.rk-search {
position: relative;
display: flex;
align-items: center;
flex: 0 0 195px;
}

.rk-search i {
position: absolute;
left: 12px;
color: #9aa49d;
font-size: 12px;
pointer-events: none;
}

.rk-search input {
width: 100%;
height: 38px;
padding: 0 12px 0 34px;
color: #475149;
background: #fff;
border: 1px solid #dfe6e0;
border-radius: 999px;
outline: none;
font-size: 12px;
transition: border-color .2s ease, box-shadow .2s ease;
}

.rk-search input:focus {
border-color: #a9c79e;
box-shadow: 0 0 0 4px rgba(103,177,74,.10);
}

/* ---------------------------------------------------------
PROJECT GRID / CARDS
--------------------------------------------------------- */
.rk-projects-section .projects-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0,1fr));
gap: 16px;
margin-top: 18px;
}

.rk-projects-section .project-card {
position: relative;
display: flex;
flex-direction: column;
min-width: 0;
overflow: hidden;
padding: 0 !important;
background: #fff;
border: 1px solid var(--rk-line);
border-radius: 17px;
box-shadow: 0 5px 20px rgba(17,31,20,.045);
cursor: pointer;
transition: transform .28s var(--rk-ease), box-shadow .28s var(--rk-ease), border-color .28s ease;
}

.rk-projects-section .project-card:hover {
transform: translateY(-6px);
border-color: #d6e5d1;
box-shadow: var(--rk-shadow-md);
}

.rk-projects-section .project-card:focus-visible,
.featured-main:focus-visible,
.featured-mini:focus-visible {
outline: 3px solid rgba(103,177,74,.35);
outline-offset: 3px;
}

.rk-projects-section .project-card.is-hidden {
display: none;
}

.project-card-image {
position: relative;
height: 220px;
overflow: hidden;
background: #e9edea;
}

.project-card-image img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
transition: transform .65s var(--rk-ease), filter .35s ease;
}

.rk-projects-section .project-card:hover .project-card-image img {
transform: scale(1.07);
}

.project-card-image::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,.22) 100%);
pointer-events: none;
}

.project-badge {
position: absolute;
z-index: 3;
top: 12px;
right: 12px;
padding: 7px 10px;
color: #fff;
background: rgba(16,23,17,.75);
border: 1px solid rgba(255,255,255,.2);
border-radius: 999px;
font-family: 'Montserrat', sans-serif;
font-size: 9px;
font-weight: 700;
letter-spacing: .05em;
backdrop-filter: blur(8px);
}

.project-card-overlay {
position: absolute;
z-index: 4;
inset: auto 0 0;
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 13px 15px;
color: #fff;
opacity: 0;
transform: translateY(8px);
background: linear-gradient(180deg, transparent, rgba(8,15,10,.86));
transition: opacity .25s ease, transform .25s ease;
}

.rk-projects-section .project-card:hover .project-card-overlay,
.rk-projects-section .project-card:focus-visible .project-card-overlay {
opacity: 1;
transform: translateY(0);
}

.project-view {
font-family: 'Montserrat', sans-serif;
font-size: 10px;
font-weight: 700;
}

.project-view i {
margin-right: 6px;
color: #bde3af;
}

.project-view-type {
color: rgba(255,255,255,.7);
font-size: 9px;
text-transform: uppercase;
letter-spacing: .08em;
}

.project-card-body {
display: flex;
flex-direction: column;
flex: 1;
padding: 19px 17px 17px !important;
text-align: left !important;
}

.project-card-kicker {
margin-bottom: 7px;
color: var(--rk-muted);
font-family: 'Montserrat', sans-serif;
font-size: 9px;
font-weight: 700;
letter-spacing: .07em;
text-transform: uppercase;
}

.rk-projects-section .project-card-body h3 {
margin: 0;
min-height: 38px;
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: 14px;
line-height: 1.35;
font-weight: 700;
letter-spacing: -.01em;
}

.project-card-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-top: 18px;
padding-top: 13px;
border-top: 1px solid var(--rk-line);
color: #6e7870;
font-size: 11px;
}

.project-arrow {
display: inline-flex;
align-items: center;
justify-content: center;
width: 31px;
height: 31px;
flex: 0 0 auto;
color: var(--rk-green-dark);
background: var(--rk-green-soft);
border-radius: 50%;
transition: transform .2s var(--rk-ease), background .2s ease, color .2s ease;
}

.rk-projects-section .project-card:hover .project-arrow {
color: #fff;
background: var(--rk-green-dark);
transform: translateX(4px);
}

.rk-no-results {
display: none;
margin: 25px 0 0;
padding: 30px;
color: #717a73;
text-align: center;
background: #fff;
border: 1px dashed #d9e1db;
border-radius: 15px;
}

.rk-no-results.is-visible {
display: block;
}

/* ---------------------------------------------------------
LIGHTBOX
--------------------------------------------------------- */
.lightbox-overlay {
position: fixed;
inset: 0;
z-index: 10000;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
background: rgba(4,9,6,.88);
opacity: 0;
visibility: hidden;
pointer-events: none;
transition: opacity .3s ease, visibility .3s ease;
backdrop-filter: blur(10px);
}

.lightbox-overlay.active {
opacity: 1;
visibility: visible;
pointer-events: auto;
}

.lightbox-backdrop {
position: absolute;
inset: 0;
}

.lightbox-shell {
position: relative;
z-index: 2;
display: flex;
flex-direction: column;
width: min(1400px, 96vw);
max-height: 94vh;
padding: 20px 20px 14px;
overflow: hidden;
background: rgba(13,20,15,.93);
border: 1px solid rgba(255,255,255,.10);
border-radius: 24px;
box-shadow: var(--rk-shadow-lg);
transform: translateY(14px) scale(.985);
transition: transform .35s var(--rk-ease);
}

.lightbox-overlay.active .lightbox-shell {
transform: translateY(0) scale(1);
}

.lightbox-topbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
padding: 3px 3px 16px 4px;
}

.lightbox-kicker {
display: block;
margin-bottom: 5px;
color: #a6c99b;
font-family: 'Montserrat', sans-serif;
font-size: 9px;
font-weight: 700;
letter-spacing: .13em;
text-transform: uppercase;
}

.lightbox-topbar h3 {
margin: 0;
color: #fff;
font-family: 'Montserrat', sans-serif;
font-size: clamp(1rem, 2vw, 1.35rem);
line-height: 1.3;
}

.lightbox-close {
position: static !important;
display: inline-flex;
align-items: center;
justify-content: center;
width: 42px;
height: 42px;
flex: 0 0 auto;
padding: 0 !important;
color: rgba(255,255,255,.86) !important;
background: rgba(255,255,255,.07) !important;
border: 1px solid rgba(255,255,255,.10) !important;
border-radius: 50% !important;
font-size: 16px !important;
cursor: pointer;
transition: background .2s ease, color .2s ease, transform .2s ease;
}

.lightbox-close:hover {
color: #fff !important;
background: var(--rk-green) !important;
transform: rotate(4deg);
}

.lightbox-stage {
position: relative;
display: flex;
align-items: center;
min-height: 0;
flex: 1 1 auto;
}

.lightbox-media {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
min-height: 0;
}

.lightbox-media img {
display: block;
width: auto;
max-width: calc(100% - 110px);
max-height: 62vh;
object-fit: contain;
border-radius: 12px;
box-shadow: 0 25px 70px rgba(0,0,0,.44);
opacity: 0;
transition: opacity .2s ease;
}

.lightbox-media img.is-visible {
opacity: 1;
}

.lightbox-caption-wrap {
width: min(900px, 88%);
padding: 13px 5px 3px;
text-align: center;
}

.lightbox-caption {
margin: 0;
color: rgba(255,255,255,.9);
font-size: 13px;
line-height: 1.5;
}

.lightbox-counter {
display: inline-block;
margin-top: 4px;
color: rgba(255,255,255,.42);
font-family: 'Montserrat', sans-serif;
font-size: 9px;
font-weight: 700;
letter-spacing: .12em;
}

.lightbox-nav {
position: absolute;
top: 50%;
z-index: 3;
display: inline-flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
padding: 0 !important;
color: #fff;
background: rgba(255,255,255,.08);
border: 1px solid rgba(255,255,255,.14);
border-radius: 50%;
box-shadow: none;
transform: translateY(-50%);
cursor: pointer;
transition: background .2s ease, border-color .2s ease, transform .2s var(--rk-ease);
}

.lightbox-nav:hover {
background: var(--rk-green);
border-color: var(--rk-green);
transform: translateY(-50%) scale(1.06);
}

.lightbox-prev {
left: 13px;
}

.lightbox-next {
right: 13px;
}

.lightbox-thumbs {
display: flex;
gap: 8px;
min-height: 74px;
margin-top: 13px;
padding: 7px 4px 4px;
overflow-x: auto;
overscroll-behavior-x: contain;
scrollbar-width: thin;
scrollbar-color: rgba(255,255,255,.22) transparent;
}

.lightbox-thumb {
position: relative;
width: 76px;
height: 58px;
flex: 0 0 auto;
padding: 0;
overflow: hidden;
background: rgba(255,255,255,.04);
border: 1px solid rgba(255,255,255,.11);
border-radius: 9px;
opacity: .55;
cursor: pointer;
transition: opacity .2s ease, border-color .2s ease, transform .2s var(--rk-ease);
}

.lightbox-thumb:hover {
opacity: .9;
transform: translateY(-2px);
}

.lightbox-thumb.active {
opacity: 1;
border-color: #9ad686;
box-shadow: 0 0 0 2px rgba(103,177,74,.20);
}

.lightbox-thumb img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}

.lightbox-help {
display: flex;
justify-content: space-between;
gap: 12px;
padding: 6px 4px 0;
color: rgba(255,255,255,.34);
font-size: 9px;
}

.lightbox-help i {
margin-right: 5px;
}

/* ---------------------------------------------------------
FOOTER
--------------------------------------------------------- */
.custom-footer {
position: relative;
background: #fff;
border-top: 1px solid var(--rk-line);
color: #333;
}

.custom-footer .footer-logo {
max-width: 210px;
height: auto;
margin-bottom: 20px;
}

.custom-footer .social-icons-container {
display: flex;
align-items: center;
gap: 10px;
margin-top: 20px;
}

.custom-footer .social-circle-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 42px;
height: 42px;
border: 1px solid #bcd6b4;
border-radius: 50%;
color: var(--rk-green-dark);
background: #fff;
text-decoration: none !important;
transition: all .22s ease;
}

.custom-footer .social-circle-btn:hover {
color: #fff !important;
background: var(--rk-green);
border-color: var(--rk-green);
transform: translateY(-2px);
}

.custom-footer h4.footer-heading {
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: 1.08rem;
font-weight: 700;
margin-bottom: 18px;
letter-spacing: -.01em;
}

.custom-footer .nav-col {
padding-left: 30px;
}

.custom-footer ul.footer-links-list {
margin: 0;
padding: 0;
list-style: none;
}

.custom-footer ul.footer-links-list li {
margin-bottom: 10px;
}

.custom-footer ul.footer-links-list li a {
color: #59615b;
text-decoration: none;
font-size: .95rem;
transition: color .2s ease;
}

.custom-footer ul.footer-links-list li a:hover {
color: var(--rk-green-dark);
}

.custom-footer .contact-info-list {
display: flex;
flex-direction: column;
gap: 15px;
}

.custom-footer .contact-item {
display: flex;
align-items: flex-start;
font-size: .95rem;
color: #59615b;
}

.custom-footer .contact-item i {
color: var(--rk-green);
font-size: 1.08rem;
margin-right: 12px;
margin-top: 3px;
width: 20px;
text-align: center;
flex-shrink: 0;
}

.custom-footer .footer-bottom-bar {
border-top: 1px solid var(--rk-line);
}

/* ---------------------------------------------------------
RESPONSIVE
--------------------------------------------------------- */
@media only screen and (max-width: 1024px) {
.rk-section-wrap {
padding-top: 65px;
padding-bottom: 80px;
}

.rk-benefit-grid,
.rk-projects-section .projects-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
}

.rk-two-column-box {
    grid-template-columns: 1fr;
}

.rk-featured-projects {
    grid-template-columns: 1fr;
}

.featured-side {
    min-height: 220px;
}


}

@media only screen and (max-width: 768px) {
.rk-hero-copy {
padding-top: 25px;
}

.rk-hero-copy h1 {
    margin-top: 15px;
    font-size: clamp(2.15rem, 10vw, 3.7rem);
}

.rk-hero-subtitle {
    font-size: .98rem;
    line-height: 1.65;
}

.rk-section-wrap {
    padding: 52px 0 65px;
}

.rk-content-section + .rk-content-section {
    margin-top: 64px;
    padding-top: 60px;
}

.rk-benefit-grid,
.rk-projects-section .projects-grid {
    grid-template-columns: 1fr;
}

.rk-stat-strip {
    grid-template-columns: 1fr;
}

.rk-stat-strip > div + div {
    border-top: 1px solid var(--rk-line);
    border-left: 0;
}

.rk-featured-projects {
    margin-top: 22px;
}

.featured-main {
    min-height: 350px;
}

.featured-main-overlay {
    padding: 23px;
}

.featured-side {
    grid-template-columns: 1fr 1fr;
}

.featured-mini {
    min-height: 175px;
}

.rk-gallery-toolbar {
    align-items: stretch;
    flex-direction: column;
}

.rk-search {
    flex-basis: auto;
    width: 100%;
}

.project-card-image {
    height: 225px;
}

.project-card-overlay {
    opacity: 1;
    transform: translateY(0);
}

.lightbox-overlay {
    padding: 8px;
}

.lightbox-shell {
    width: 100%;
    max-height: 98vh;
    padding: 12px 12px 10px;
    border-radius: 17px;
}

.lightbox-media img {
    max-width: calc(100% - 70px);
    max-height: 56vh;
    border-radius: 9px;
}

.lightbox-nav {
    width: 38px;
    height: 38px;
}

.lightbox-prev { left: 2px; }
.lightbox-next { right: 2px; }

.lightbox-thumbs {
    min-height: 63px;
}

.lightbox-thumb {
    width: 64px;
    height: 49px;
}

.lightbox-help {
    display: none;
}

.custom-footer .nav-col {
    padding-left: 0 !important;
    margin-top: 30px;
}


}

@media only screen and (max-width: 520px) {
.featured-side {
grid-template-columns: 1fr;
}

.featured-mini {
    min-height: 190px;
}

.rk-method-banner {
    grid-template-columns: 1fr;
}

.rk-method-icon {
    width: 50px;
    height: 50px;
}

.rk-testimonial-box {
    padding: 24px 20px 22px;
}

.rk-process-step {
    grid-template-columns: 43px 1fr;
    gap: 13px;
}

.rk-process-list::before {
    left: 21px;
}

.rk-step-number {
    width: 43px;
    height: 43px;
}


}

/* =========================================================
ReteKlima — Contatti / Contact page
Uses the same visual system as the Riqualificazioni page.
========================================================= */

.rk-contact-hero .rk-hero-copy {
max-width: 900px;
}

.rk-hero-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 12px;
}

.rk-hero-cta-secondary {
background: rgba(255,255,255,.04);
}

.rk-contact-section {
position: relative;
padding: 92px 0 100px;
background: #fff;
}

.rk-contact-section + .rk-contact-section {
border-top: 1px solid var(--rk-line);
}

.rk-contact-overview {
padding-top: 86px;
}

.rk-section-kicker {
display: inline-flex;
align-items: center;
gap: 9px;
margin-bottom: 13px;
color: var(--rk-green-dark);
font-family: 'Montserrat', sans-serif;
font-size: 10px;
line-height: 1.2;
font-weight: 700;
letter-spacing: .18em;
text-transform: uppercase;
}

.rk-section-kicker::before {
content: '';
width: 25px;
height: 2px;
border-radius: 99px;
background: currentColor;
}

.rk-section-kicker-light {
color: #bfe7ae;
}

.rk-section-title {
margin: 0 auto 18px;
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: clamp(2rem, 3.3vw, 3.15rem);
line-height: 1.08;
letter-spacing: -.035em;
font-weight: 700;
}

.rk-section-lead {
max-width: 800px;
margin: 0 auto;
color: var(--rk-text);
font-size: 1.04rem;
line-height: 1.82;
}

.rk-contact-cards {
margin-top: 45px;
}

.rk-contact-card {
position: relative;
height: 100%;
min-height: 330px;
display: flex;
flex-direction: column;
padding: 35px 31px 29px;
overflow: hidden;
background:
linear-gradient(180deg, #fff 0%, #fbfdfb 100%);
border: 1px solid var(--rk-line);
border-radius: var(--rk-radius);
box-shadow: var(--rk-shadow-sm);
transition:
transform .28s var(--rk-ease),
box-shadow .28s var(--rk-ease),
border-color .28s ease;
}

.rk-contact-card::after {
content: '';
position: absolute;
left: 0;
right: 0;
top: 0;
height: 4px;
background: linear-gradient(90deg, var(--rk-green), #98cb82);
transform: scaleX(.35);
transform-origin: left;
transition: transform .35s var(--rk-ease);
}

.rk-contact-card:hover {
transform: translateY(-7px);
border-color: #d6e4d2;
box-shadow: var(--rk-shadow-md);
}

.rk-contact-card:hover::after {
transform: scaleX(1);
}

.rk-contact-card-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 58px;
height: 58px;
margin-bottom: 22px;
color: var(--rk-green-dark);
background: var(--rk-green-soft);
border: 1px solid #d7eacc;
border-radius: 16px;
font-size: 22px;
}

.rk-contact-card-label,
.rk-mini-label {
display: block;
margin-bottom: 8px;
color: var(--rk-muted);
font-family: 'Montserrat', sans-serif;
font-size: 10px;
line-height: 1.3;
font-weight: 700;
letter-spacing: .14em;
text-transform: uppercase;
}

.rk-contact-card h3 {
margin: 0 0 14px;
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: 1.35rem;
line-height: 1.2;
font-weight: 700;
}

.rk-contact-card p {
margin: 0 0 24px;
color: var(--rk-text);
font-size: .97rem;
line-height: 1.7;
}

.rk-contact-card-link {
margin-top: auto;
color: var(--rk-green-dark) !important;
text-decoration: none !important;
font-family: 'Montserrat', sans-serif;
font-size: .88rem;
font-weight: 700;
line-height: 1.4;
word-break: break-word;
}

.rk-contact-card-link i {
margin-left: 5px;
transition: transform .2s ease;
}

.rk-contact-card-link:hover i {
transform: translateX(4px);
}

.rk-contact-quick {
padding: 0 0 12px;
background: #fff;
}

.rk-contact-quick-inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 28px;
padding: 23px 25px;
background: #f7faf6;
border: 1px solid #dfeade;
border-radius: 16px;
}

.rk-contact-quick-title {
display: flex;
flex-direction: column;
align-items: flex-start;
min-width: 200px;
}

.rk-contact-quick-title .rk-section-kicker {
margin-bottom: 6px;
}

.rk-contact-quick-title strong {
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: 1.05rem;
}

.rk-contact-quick-actions {
display: flex;
align-items: center;
justify-content: flex-end;
flex-wrap: wrap;
gap: 10px;
}

.rk-contact-pill {
display: inline-flex;
align-items: center;
gap: 11px;
min-height: 52px;
padding: 9px 15px;
color: var(--rk-ink) !important;
background: #fff;
border: 1px solid #dfe8dc;
border-radius: 13px;
text-decoration: none !important;
box-shadow: 0 4px 14px rgba(17,31,20,.035);
transition: transform .22s var(--rk-ease), box-shadow .22s ease, border-color .22s ease;
}

.rk-contact-pill:hover {
transform: translateY(-2px);
border-color: #c4dabc;
box-shadow: 0 10px 20px rgba(17,31,20,.07);
}

.rk-contact-pill > i {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
color: var(--rk-green-dark);
background: var(--rk-green-soft);
border-radius: 50%;
}

.rk-contact-pill span {
display: flex;
flex-direction: column;
font-family: 'Open Sans', sans-serif;
font-weight: 700;
font-size: .82rem;
}

.rk-contact-pill small {
margin-bottom: 2px;
color: var(--rk-muted);
font-family: 'Montserrat', sans-serif;
font-size: 8px;
font-weight: 700;
letter-spacing: .12em;
text-transform: uppercase;
}

.rk-contact-pill-whatsapp > i {
color: #1da851;
background: #eaf8ee;
}

.rk-location-section {
background:
radial-gradient(circle at 15% 20%, rgba(103,177,74,.06), transparent 28%),
linear-gradient(180deg, #fbfcfb 0%, #fff 100%);
}

.rk-location-grid {
align-items: center;
}

.rk-location-copy {
max-width: 590px;
}

.rk-location-copy .rk-section-title {
margin-left: 0;
margin-right: 0;
}

.rk-location-copy .rk-section-lead {
margin-left: 0;
margin-right: 0;
max-width: 590px;
}

.rk-address-card,
.rk-hours-card {
display: flex;
align-items: flex-start;
gap: 17px;
padding: 21px 20px;
margin-top: 24px;
background: #fff;
border: 1px solid var(--rk-line);
border-radius: 15px;
box-shadow: var(--rk-shadow-sm);
}

.rk-address-icon,
.rk-hours-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
flex: 0 0 44px;
color: var(--rk-green-dark);
background: var(--rk-green-soft);
border-radius: 12px;
font-size: 17px;
}

.rk-address-card strong,
.rk-hours-card strong {
display: block;
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: .98rem;
line-height: 1.4;
}

.rk-address-card p,
.rk-hours-card p {
margin: 4px 0 0;
color: var(--rk-text);
font-size: .95rem;
line-height: 1.65;
}

.rk-primary-button {
display: inline-flex;
align-items: center;
gap: 9px;
margin-top: 25px;
padding: 13px 18px;
color: #fff !important;
background: var(--rk-green);
border: 1px solid var(--rk-green);
border-radius: 999px;
text-decoration: none !important;
font-family: 'Montserrat', sans-serif;
font-size: .79rem;
font-weight: 700;
letter-spacing: .03em;
box-shadow: 0 10px 22px rgba(103,177,74,.18);
transition: transform .22s var(--rk-ease), background .22s ease, box-shadow .22s ease;
}

.rk-primary-button:hover {
color: #fff !important;
background: var(--rk-green-dark);
border-color: var(--rk-green-dark);
transform: translateY(-2px);
box-shadow: 0 14px 28px rgba(78,147,56,.22);
}

.rk-map-card {
overflow: hidden;
background: #fff;
border: 1px solid var(--rk-line);
border-radius: 20px;
box-shadow: var(--rk-shadow-md);
}

.rk-map-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
padding: 18px 20px;
border-bottom: 1px solid var(--rk-line);
}

.rk-map-header .rk-section-kicker {
margin-bottom: 5px;
}

.rk-map-header strong {
display: block;
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: 1rem;
}

.rk-map-header > a {
display: inline-flex;
align-items: center;
justify-content: center;
width: 38px;
height: 38px;
flex: 0 0 38px;
color: var(--rk-green-dark) !important;
background: var(--rk-green-soft);
border-radius: 50%;
text-decoration: none !important;
transition: transform .2s ease, background .2s ease;
}

.rk-map-header > a:hover {
color: #fff !important;
background: var(--rk-green);
transform: translateY(-2px);
}

.rk-map-frame {
line-height: 0;
}

.rk-map-frame iframe {
display: block;
width: 100%;
min-height: 510px;
border: 0;
filter: saturate(.86);
}

.rk-help-section {
background: #fff;
}

.rk-help-grid {
margin-top: 45px;
}

.rk-help-item {
position: relative;
height: 100%;
min-height: 260px;
padding: 29px 25px 24px;
background: #fff;
border: 1px solid var(--rk-line);
border-radius: 16px;
box-shadow: var(--rk-shadow-sm);
transition: transform .25s var(--rk-ease), box-shadow .25s ease;
}

.rk-help-item:hover {
transform: translateY(-5px);
box-shadow: var(--rk-shadow-md);
}

.rk-help-number {
position: absolute;
top: 19px;
right: 21px;
color: #dcebd6;
font-family: 'Montserrat', sans-serif;
font-size: 2.1rem;
line-height: 1;
font-weight: 700;
}

.rk-help-item > i {
display: block;
margin-bottom: 19px;
color: var(--rk-green);
font-size: 24px;
}

.rk-help-item h3 {
margin: 0 0 12px;
color: var(--rk-ink);
font-family: 'Montserrat', sans-serif;
font-size: 1.2rem;
font-weight: 700;
}

.rk-help-item p {
margin: 0;
color: var(--rk-text);
font-size: .94rem;
line-height: 1.68;
}

.rk-contact-final {
padding: 92px 0 98px;
background:
radial-gradient(circle at 20% 20%, rgba(126,181,101,.18), transparent 27%),
radial-gradient(circle at 90% 90%, rgba(255,255,255,.08), transparent 26%),
linear-gradient(135deg, #132015 0%, #243a27 48%, #18261a 100%);
color: #fff;
}

.rk-contact-final .rk-section-kicker {
margin-bottom: 12px;
}

.rk-contact-final h2 {
max-width: 820px;
margin: 0 auto 18px;
color: #fff;
font-family: 'Montserrat', sans-serif;
font-size: clamp(2rem, 3.4vw, 3.45rem);
line-height: 1.08;
letter-spacing: -.035em;
font-weight: 700;
}

.rk-contact-final p {
max-width: 720px;
margin: 0 auto;
color: rgba(255,255,255,.78);
font-size: 1rem;
line-height: 1.78;
}

.rk-final-actions {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 12px;
margin-top: 29px;
}

.rk-final-button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 9px;
min-width: 205px;
padding: 14px 20px;
border-radius: 999px;
text-decoration: none !important;
font-family: 'Montserrat', sans-serif;
font-size: .78rem;
font-weight: 700;
letter-spacing: .03em;
transition: transform .23s var(--rk-ease), background .23s ease, border-color .23s ease;
}

.rk-final-button:hover {
transform: translateY(-2px);
}

.rk-final-button-solid {
color: #183018 !important;
background: #fff;
border: 1px solid #fff;
}

.rk-final-button-solid:hover {
color: #183018 !important;
background: #ecf6e8;
border-color: #ecf6e8;
}

.rk-final-button-outline {
color: #fff !important;
background: rgba(255,255,255,.05);
border: 1px solid rgba(255,255,255,.35);
}

.rk-final-button-outline:hover {
color: #fff !important;
background: rgba(103,177,74,.95);
border-color: rgba(103,177,74,.95);
}

/* =========================================================
FLEXBOX LAYOUT FIX - Desktop spacing corrections
========================================================= /
.rk-contact-cards,
.rk-help-grid {
display: flex;
flex-wrap: wrap;
gap: 25px; / Sostituisce il margin-bottom manuale e gestisce la spaziatura uniforme */
}

.rk-contact-cards > [class*="column"],
.rk-help-grid > [class*="column"] {
flex: 1 1 0%; /* Forza la larghezza uguale per tutti gli elementi ignorando i contenuti /
width: auto !important; / Sovrascrive le classi fisse del framework base (es: width-3) /
min-width: 300px; / Assicura che le card vadano a capo automaticamente su tablet/mobile */
max-width: 100%;
margin-bottom: 0;
}

@media only screen and (max-width: 1024px) {
.rk-contact-quick-inner {
align-items: flex-start;
flex-direction: column;
}

.rk-contact-quick-actions {
    width: 100%;
    justify-content: flex-start;
}

.rk-map-frame iframe {
    min-height: 440px;
}

.rk-location-copy {
    max-width: none;
    margin-bottom: 28px;
}


}

@media only screen and (max-width: 768px) {
.rk-contact-section {
padding: 63px 0 72px;
}

.rk-contact-overview {
    padding-top: 60px;
}

.rk-section-title {
    font-size: clamp(1.9rem, 8vw, 2.7rem);
}

.rk-section-lead {
    font-size: .97rem;
    line-height: 1.72;
}

.rk-contact-card {
    min-height: 0;
    padding: 29px 25px 25px;
}

.rk-contact-quick {
    padding-left: 0;
    padding-right: 0;
}

.rk-contact-quick-inner {
    padding: 21px 18px;
    border-radius: 14px;
}

.rk-contact-quick-actions {
    flex-direction: column;
    align-items: stretch;
}

.rk-contact-pill {
    width: 100%;
}

.rk-location-copy .rk-section-title,
.rk-location-copy .rk-section-lead {
    margin-left: 0;
    margin-right: 0;
}

.rk-address-card,
.rk-hours-card {
    padding: 18px 16px;
}

.rk-map-frame iframe {
    min-height: 360px;
}

.rk-help-item {
    min-height: 0;
}

.rk-contact-final {
    padding: 67px 0 75px;
}

.rk-final-actions {
    flex-direction: column;
    align-items: stretch;
    padding: 0 20px;
}

.rk-final-button {
    width: 100%;
}


}

@media only screen and (max-width: 520px) {
.rk-hero-actions {
align-items: stretch;
flex-direction: column;
width: 100%;
max-width: 330px;
}

.rk-hero-cta {
    justify-content: center;
    width: 100%;
}

.rk-contact-card h3 {
    font-size: 1.2rem;
}

.rk-contact-pill {
    min-height: 56px;
}

.rk-address-card,
.rk-hours-card {
    gap: 12px;
}

.rk-map-card {
    border-radius: 15px;
}


/* Correzione sovrapposizione Header / Hero Title */
.rk-page-hero .tms-content-inner {
    padding-top: 120px !important; /* <--- MODIFICA QUESTO NUMERO */
    padding-bottom: 20px !important;
    vertical-align: top !important;
}

/* Regolazione per Smartphone e Tablet */
@media (max-width: 960px) {
    .rk-page-hero .tms-content-inner {
        padding-top: 10000px !important; /* <--- MODIFICA QUESTO PER MOBILE */
    }
}
}