:root {
    --teal: #00a68f;
    --teal-dark: #007d6e;
    --teal-deep: #00665b;
    --teal-soft: #e8f7f4;
    --grey: #728087;
    --grey-dark: #53636b;
    --charcoal: #202b31;
    --charcoal-2: #2b3940;
    --ink: #26343a;
    --muted: #68777d;
    --line: #dce4e3;
    --soft: #f4f7f6;
    --white: #fff;
    --shadow-sm: 0 12px 30px rgba(26, 48, 55, .08);
    --shadow-md: 0 22px 58px rgba(26, 48, 55, .14);
    --shadow-lg: 0 35px 90px rgba(14, 32, 38, .22);
    --radius-sm: 12px;
    --radius: 20px;
    --radius-lg: 30px;
    --container: 1240px;
    --header-height: 88px;
    --ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--white);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
svg { width: 1.2em; height: 1.2em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { padding: 104px 0; }
.section--soft { background: var(--soft); }
.section--dark { color: var(--white); background: var(--charcoal); }
.section-heading { max-width: 760px; margin: 0 auto 54px; text-align: center; }
.section-heading--split { max-width: none; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: 72px; align-items: end; text-align: left; }
.section-heading--split > p { margin: 0 0 7px; color: var(--muted); font-size: 1.08rem; }
.section-heading--light p { color: rgba(255,255,255,.7); }
.section-heading h2, .entry-header h1, .inner-hero h1, .project-detail-hero h1 {
    margin: 0;
    color: var(--charcoal);
    font-size: clamp(2.15rem, 4.3vw, 4rem);
    line-height: 1.08;
    letter-spacing: -.045em;
}
.section-heading--light h2 { color: var(--white); }
.section-heading > p:not(.eyebrow), .entry-header > p:not(.eyebrow) { margin: 20px auto 0; color: var(--muted); font-size: 1.08rem; }
.eyebrow { margin: 0 0 15px; color: #a6fff2; font-size: .77rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow--dark { color: var(--teal-dark); }

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 54px;
    padding: 0 24px;
    border: 1px solid var(--teal);
    border-radius: 10px;
    color: var(--white);
    background: var(--teal);
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 12px 28px rgba(0, 166, 143, .21);
    transition: transform .25s var(--ease), background .25s, border-color .25s, box-shadow .25s;
}
.button:hover, .button:focus-visible { color: var(--white); background: var(--teal-dark); border-color: var(--teal-dark); transform: translateY(-2px); box-shadow: 0 18px 35px rgba(0, 125, 110, .25); }
.button--small { min-height: 46px; padding: 0 18px; font-size: .88rem; }
.button--outline { color: var(--teal-dark); background: transparent; border-color: rgba(0, 125, 110, .35); box-shadow: none; }
.button--outline:hover, .button--outline:focus-visible { color: var(--white); background: var(--teal-dark); }
.button--glass { color: var(--white); background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.42); box-shadow: none; backdrop-filter: blur(14px); }
.button--glass:hover, .button--glass:focus-visible { color: var(--charcoal); background: var(--white); border-color: var(--white); }
.button--light { color: var(--charcoal); background: var(--white); border-color: var(--white); box-shadow: none; }
.button--light:hover, .button--light:focus-visible { color: var(--white); background: var(--teal-dark); border-color: var(--teal-dark); }
.button--outline-light { min-height: 47px; color: var(--white); background: transparent; border-color: rgba(255,255,255,.28); box-shadow: none; }
.button--outline-light:hover { border-color: var(--teal); }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--teal-dark); font-weight: 800; text-decoration: none; }
.text-link svg, .service-v3-card__body > a svg, .project-v3-card__body > a svg, .solution-card > a svg { transition: transform .25s var(--ease); }
.text-link:hover svg, .service-v3-card__body > a:hover svg, .project-v3-card__body > a:hover svg, .solution-card > a:hover svg { transform: translateX(5px); }

.skip-link { position: fixed; z-index: 9999; top: 8px; left: 8px; padding: 12px 18px; color: var(--white); background: var(--charcoal); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header { position: relative; z-index: 1000; }
.topbar { color: var(--white); background: var(--charcoal); font-size: .78rem; }
.topbar__inner { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.topbar__locations, .topbar__right { display: flex; align-items: center; gap: 25px; }
.topbar a, .topbar__schedule { display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,.9); text-decoration: none; }
.topbar a:hover { color: #a7fff3; }
.topbar svg { width: 15px; height: 15px; }
.topbar__whatsapp { font-weight: 800; }
.nav-shell { position: relative; background: rgba(255,255,255,.97); border-bottom: 1px solid rgba(114,128,135,.16); transition: box-shadow .25s, transform .25s; backdrop-filter: blur(18px); }
.site-header.is-scrolled .nav-shell { position: fixed; top: 0; right: 0; left: 0; box-shadow: 0 14px 40px rgba(31,45,51,.12); }
.nav-shell__inner { min-height: var(--header-height); display: flex; align-items: center; gap: 34px; }
.site-branding { flex: 0 0 172px; }
.revalora-logo-link, .custom-logo-link { display: inline-flex; align-items: center; text-decoration: none; }
.revalora-logo-link img, .custom-logo { width: auto; max-width: 164px; max-height: 72px; object-fit: contain; }
.primary-navigation { margin-left: auto; }
.revalora-menu { display: flex; align-items: center; gap: 30px; margin: 0; padding: 0; list-style: none; }
.revalora-menu a { position: relative; display: block; padding: 31px 0 28px; color: var(--ink); font-size: .91rem; font-weight: 720; text-decoration: none; }
.revalora-menu a::after { position: absolute; right: 0; bottom: 19px; left: 0; height: 2px; content: ""; background: var(--teal); transform: scaleX(0); transform-origin: right; transition: transform .25s var(--ease); }
.revalora-menu a:hover::after, .revalora-menu .current-menu-item > a::after { transform: scaleX(1); transform-origin: left; }
.nav-cta { flex: 0 0 auto; }
.menu-toggle { display: none; width: 46px; height: 46px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 10px; color: var(--charcoal); background: var(--white); }
.menu-toggle svg { width: 24px; height: 24px; }
.menu-toggle__close { display: none; }
.menu-open .menu-toggle__open { display: none; }
.menu-open .menu-toggle__close { display: inline-flex; }

.hero-v3 { position: relative; min-height: min(770px, calc(100vh - 126px)); overflow: hidden; color: var(--white); background: var(--charcoal); }
.hero-v3__media { position: absolute; inset: 0; background-image: var(--hero-image); background-position: center; background-size: cover; transform: scale(1.01); }
.hero-v3__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,31,36,.93) 0%, rgba(20,31,36,.76) 42%, rgba(20,31,36,.28) 70%, rgba(20,31,36,.18) 100%), linear-gradient(0deg, rgba(0,104,91,.23), transparent 55%); }
.hero-v3__layout { position: relative; z-index: 2; min-height: inherit; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); gap: clamp(50px, 8vw, 112px); align-items: center; padding-top: 80px; padding-bottom: 82px; }
.hero-v3__copy { max-width: 790px; }
.hero-v3 h1 { max-width: 820px; margin: 0; font-size: clamp(3.1rem, 6.3vw, 6.25rem); line-height: .98; letter-spacing: -.058em; text-wrap: balance; }
.hero-v3__text { max-width: 690px; margin: 28px 0 0; color: rgba(255,255,255,.84); font-size: clamp(1.05rem, 1.8vw, 1.3rem); line-height: 1.55; }
.hero-v3__actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 35px; }
.hero-v3__promises { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 30px; color: rgba(255,255,255,.83); font-size: .85rem; font-weight: 700; }
.hero-v3__promises span { display: inline-flex; align-items: center; gap: 7px; }
.hero-v3__promises svg { color: #7ff0df; }
.hero-contact { align-self: end; padding: 22px; border: 1px solid rgba(255,255,255,.22); border-radius: var(--radius); background: rgba(20,31,36,.78); box-shadow: var(--shadow-lg); backdrop-filter: blur(22px); }
.hero-contact__intro { margin: 0 0 12px; font-size: .79rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.hero-contact__zone { display: grid; grid-template-columns: 44px minmax(0, 1fr) 22px; gap: 12px; align-items: center; padding: 15px 12px; border-top: 1px solid rgba(255,255,255,.12); color: var(--white); text-decoration: none; transition: background .2s, transform .2s; }
.hero-contact__zone:hover { background: rgba(255,255,255,.06); transform: translateX(3px); }
.hero-contact__zone > svg { color: #7ff0df; }
.hero-contact__icon { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #8df6e7; background: rgba(0,166,143,.17); }
.hero-contact__zone small, .hero-contact__zone strong { display: block; }
.hero-contact__zone small { color: rgba(255,255,255,.7); font-size: .75rem; }
.hero-contact__zone strong { margin-top: 2px; font-size: 1.15rem; letter-spacing: .01em; }
.hero-contact__whatsapp { display: flex; gap: 12px; align-items: center; margin-top: 10px; padding: 15px; border-radius: 12px; color: var(--charcoal); background: var(--white); text-decoration: none; }
.hero-contact__whatsapp > svg { flex: 0 0 29px; width: 29px; height: 29px; color: var(--teal-dark); }
.hero-contact__whatsapp strong, .hero-contact__whatsapp small { display: block; }
.hero-contact__whatsapp small { color: var(--muted); font-size: .73rem; }
.hero-contact__note { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 15px 0 0; color: rgba(255,255,255,.64); font-size: .72rem; }

.proof-bar { position: relative; z-index: 4; background: var(--white); border-bottom: 1px solid var(--line); }
.proof-bar__grid { min-height: 122px; display: grid; grid-template-columns: 1.5fr repeat(3, .5fr); gap: 28px; align-items: center; }
.proof-bar__lead { display: flex; align-items: center; gap: 17px; padding-right: 30px; border-right: 1px solid var(--line); }
.proof-bar__lead > span { flex: 0 0 47px; width: 47px; height: 47px; display: inline-flex; align-items: center; justify-content: center; border-radius: 14px; color: var(--teal-dark); background: var(--teal-soft); }
.proof-bar__lead p { margin: 0; color: var(--muted); line-height: 1.45; }
.proof-bar__lead strong { color: var(--ink); }
.proof-bar__metric { text-align: center; }
.proof-bar__metric strong { display: block; color: var(--teal-dark); font-size: 2rem; line-height: 1; }
.proof-bar__metric span { display: block; margin-top: 7px; color: var(--muted); font-size: .78rem; line-height: 1.25; }

.solution-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.solution-card { position: relative; padding: 34px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s; }
.solution-card:hover { transform: translateY(-7px); box-shadow: var(--shadow-md); }
.solution-card--featured { color: var(--white); background: var(--charcoal); border-color: var(--charcoal); }
.solution-card--featured::before { position: absolute; right: -80px; bottom: -100px; width: 260px; height: 260px; content: ""; border-radius: 50%; background: radial-gradient(circle, rgba(0,166,143,.42), transparent 68%); }
.solution-card__badge { position: absolute; top: 20px; right: 20px; padding: 6px 9px; border-radius: 99px; color: var(--teal-deep); background: #b4fff4; font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.solution-card__number { color: #b8c2c6; font-size: .75rem; font-weight: 800; letter-spacing: .12em; }
.solution-card__icon { width: 62px; height: 62px; display: inline-flex; align-items: center; justify-content: center; margin: 24px 0; border-radius: 18px; color: var(--teal-dark); background: var(--teal-soft); }
.solution-card--featured .solution-card__icon { color: #8affee; background: rgba(0,166,143,.15); }
.solution-card__icon svg { width: 30px; height: 30px; }
.solution-card h3 { margin: 0; color: var(--charcoal); font-size: 1.55rem; letter-spacing: -.025em; }
.solution-card--featured h3 { color: var(--white); }
.solution-card p { margin: 14px 0; color: var(--muted); }
.solution-card--featured p, .solution-card--featured li { color: rgba(255,255,255,.7); }
.solution-card ul { margin: 18px 0 25px; padding-left: 19px; color: var(--grey-dark); font-size: .88rem; }
.solution-card li + li { margin-top: 6px; }
.solution-card > a { display: inline-flex; align-items: center; gap: 8px; color: var(--teal-dark); font-weight: 800; text-decoration: none; }
.solution-card--featured > a { color: #86f5e5; }

.services-v3-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.service-v3-card { overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: var(--white); box-shadow: 0 10px 30px rgba(26,48,55,.06); transition: transform .3s var(--ease), box-shadow .3s; }
.service-v3-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.service-v3-card__image { position: relative; aspect-ratio: 1.48; overflow: hidden; background: #dfe7e6; }
.service-v3-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s var(--ease); }
.service-v3-card:hover .service-v3-card__image img { transform: scale(1.045); }
.service-v3-card__image > span { position: absolute; top: 15px; left: 15px; padding: 7px 10px; border-radius: 7px; color: var(--charcoal); background: rgba(255,255,255,.9); font-size: .68rem; font-weight: 800; box-shadow: 0 7px 18px rgba(20,31,36,.12); }
.service-v3-card__body { position: relative; padding: 28px; }
.service-v3-card__icon { position: absolute; top: -27px; right: 22px; width: 54px; height: 54px; display: inline-flex; align-items: center; justify-content: center; border: 5px solid var(--white); border-radius: 50%; color: var(--white); background: var(--teal); }
.service-v3-card__icon svg { width: 23px; height: 23px; }
.service-v3-card h3 { margin: 0; color: var(--charcoal); font-size: 1.22rem; }
.service-v3-card p { min-height: 74px; margin: 12px 0 18px; color: var(--muted); font-size: .91rem; }
.service-v3-card__body > a { display: inline-flex; align-items: center; gap: 7px; color: var(--teal-dark); font-size: .86rem; font-weight: 800; text-decoration: none; }

.projects-v3 { background: linear-gradient(180deg, #fff, #f9fbfa); }
.projects-v3-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 23px; }
.project-v3-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s; }
.project-v3-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.project-v3-card__media { position: relative; aspect-ratio: 1.42; overflow: hidden; background: #dbe4e3; }
.project-v3-card__media > img { width: 100%; height: 100%; object-fit: cover; }
.project-v3-card__type { position: absolute; z-index: 4; top: 15px; left: 15px; padding: 7px 10px; border-radius: 7px; color: var(--charcoal); background: rgba(255,255,255,.92); font-size: .68rem; font-weight: 800; }
.project-v3-card__body { padding: 26px; }
.project-v3-card__location { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; color: var(--teal-dark); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.project-v3-card__location svg { width: 15px; height: 15px; }
.project-v3-card h3 { margin: 0; color: var(--charcoal); font-size: 1.42rem; line-height: 1.2; letter-spacing: -.025em; }
.project-v3-card h3 a { text-decoration: none; }
.project-v3-card__body > p:not(.project-v3-card__location) { min-height: 53px; margin: 13px 0 18px; color: var(--muted); font-size: .91rem; }
.project-v3-card__body > a { display: inline-flex; align-items: center; gap: 7px; color: var(--teal-dark); font-size: .86rem; font-weight: 800; text-decoration: none; }
.section-action { margin-top: 36px; text-align: center; }

.before-after { position: relative; width: 100%; height: 100%; overflow: hidden; background: var(--charcoal); }
.before-after img { width: 100%; height: 100%; object-fit: cover; display: block; }
.before-after__after { position: absolute; inset: 0; }
.before-after__before { position: absolute; inset: 0; z-index: 1; overflow: hidden; clip-path: inset(0 calc(100% - var(--compare)) 0 0); }
.before-after__before img { width: 100%; height: 100%; object-fit: cover; max-width: none; }
.before-after__range { position: absolute; z-index: 5; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.before-after__handle { position: absolute; z-index: 4; top: 0; bottom: 0; left: var(--compare); width: 2px; background: var(--white); transform: translateX(-1px); pointer-events: none; box-shadow: 0 0 0 1px rgba(0,0,0,.12); }
.before-after__handle i { position: absolute; top: 50%; left: 50%; width: 42px; height: 42px; border: 2px solid var(--white); border-radius: 50%; background: rgba(0,125,110,.92); transform: translate(-50%, -50%); box-shadow: 0 8px 22px rgba(0,0,0,.25); }
.before-after__handle i::before, .before-after__handle i::after { position: absolute; top: 50%; width: 7px; height: 7px; content: ""; border-top: 2px solid var(--white); border-left: 2px solid var(--white); }
.before-after__handle i::before { left: 9px; transform: translateY(-50%) rotate(-45deg); }
.before-after__handle i::after { right: 9px; transform: translateY(-50%) rotate(135deg); }
.before-after__label { position: absolute; z-index: 3; bottom: 12px; padding: 5px 8px; border-radius: 5px; color: var(--charcoal); background: rgba(255,255,255,.9); font-size: .64rem; font-weight: 800; text-transform: uppercase; }
.before-after__label--before { left: 12px; }
.before-after__label--after { right: 12px; }

.company-v3 { overflow: hidden; }
.company-v3__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); gap: clamp(45px, 8vw, 110px); align-items: center; }
.company-v3__visual { position: relative; min-height: 580px; }
.company-v3__visual > img { width: 100%; height: 580px; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.company-v3__visual::before { position: absolute; z-index: -1; top: -26px; right: -28px; width: 58%; height: 58%; content: ""; border-radius: var(--radius-lg); background: var(--teal-soft); }
.company-v3__stamp { position: absolute; right: -26px; bottom: 34px; width: min(285px, 62%); padding: 20px; border-radius: 16px; color: var(--white); background: var(--charcoal); box-shadow: var(--shadow-md); }
.company-v3__stamp > span { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 11px; border-radius: 12px; color: #8df8e8; background: rgba(0,166,143,.17); }
.company-v3__stamp strong, .company-v3__stamp small { display: block; }
.company-v3__stamp strong { font-size: 1rem; }
.company-v3__stamp small { color: rgba(255,255,255,.62); }
.company-v3__copy h2 { margin: 0; color: var(--charcoal); font-size: clamp(2.2rem, 4vw, 3.85rem); line-height: 1.08; letter-spacing: -.045em; }
.company-v3__lead { margin: 25px 0 32px; color: var(--muted); font-size: 1.08rem; }
.company-v3__benefits { margin-bottom: 30px; }
.company-v3__benefits article { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 15px; padding: 18px 0; border-top: 1px solid var(--line); }
.company-v3__benefits article > span { width: 45px; height: 45px; display: inline-flex; align-items: center; justify-content: center; border-radius: 13px; color: var(--teal-dark); background: var(--teal-soft); }
.company-v3__benefits h3 { margin: 0; color: var(--charcoal); font-size: 1rem; }
.company-v3__benefits p { margin: 4px 0 0; color: var(--muted); font-size: .88rem; }

.process-v3 { position: relative; overflow: hidden; }
.process-v3::before { position: absolute; top: -230px; right: -150px; width: 560px; height: 560px; content: ""; border-radius: 50%; background: radial-gradient(circle, rgba(0,166,143,.32), transparent 67%); }
.process-v3__grid { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius); overflow: hidden; background: rgba(255,255,255,.1); }
.process-v3__grid article { position: relative; min-height: 305px; padding: 33px 27px; background: var(--charcoal); }
.process-v3__grid article:not(:last-child)::after { position: absolute; top: 50%; right: -10px; z-index: 2; width: 19px; height: 19px; content: ""; border-top: 1px solid rgba(255,255,255,.2); border-right: 1px solid rgba(255,255,255,.2); background: var(--charcoal); transform: translateY(-50%) rotate(45deg); }
.process-v3__number { display: block; color: rgba(255,255,255,.26); font-size: .75rem; font-weight: 800; letter-spacing: .14em; }
.process-v3__icon { width: 55px; height: 55px; display: inline-flex; align-items: center; justify-content: center; margin: 36px 0 25px; border-radius: 16px; color: #87f6e6; background: rgba(0,166,143,.14); }
.process-v3__icon svg { width: 27px; height: 27px; }
.process-v3__grid h3 { margin: 0; color: var(--white); font-size: 1.15rem; }
.process-v3__grid p { margin: 12px 0 0; color: rgba(255,255,255,.6); font-size: .88rem; }

.zones-v3 { background: var(--soft); }
.zones-v3__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 23px; }
.zone-v3-card { position: relative; min-height: 400px; display: flex; align-items: flex-end; overflow: hidden; border-radius: var(--radius); color: var(--white); background-color: var(--charcoal); box-shadow: var(--shadow-md); }
.zone-v3-card::before, .zone-v3-card::after { position: absolute; inset: 0; content: ""; }
.zone-v3-card::before { background-position: center; background-size: cover; transition: transform .8s var(--ease); }
.zone-v3-card--malaga::before { background-image: url('../img/project-living.webp'); }
.zone-v3-card--barcelona::before { background-image: url('../img/project-home.webp'); }
.zone-v3-card::after { background: linear-gradient(0deg, rgba(22,33,38,.94), rgba(22,33,38,.2) 78%); }
.zone-v3-card:hover::before { transform: scale(1.045); }
.zone-v3-card__content { position: relative; z-index: 2; width: 100%; padding: 34px; }
.zone-v3-card__region { display: inline-flex; padding: 6px 9px; border-radius: 6px; color: #8ef5e6; background: rgba(0,166,143,.18); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.zone-v3-card h3 { margin: 13px 0 6px; color: var(--white); font-size: clamp(1.7rem, 3vw, 2.5rem); letter-spacing: -.03em; }
.zone-v3-card p { max-width: 530px; margin: 0 0 24px; color: rgba(255,255,255,.71); }
.zone-v3-card__phone { display: inline-flex; align-items: center; gap: 12px; color: var(--white); text-decoration: none; }
.zone-v3-card__phone > svg { width: 30px; height: 30px; color: #8df7e8; }
.zone-v3-card__phone small, .zone-v3-card__phone strong { display: block; }
.zone-v3-card__phone small { color: rgba(255,255,255,.62); font-size: .72rem; }
.zone-v3-card__phone strong { font-size: 1.18rem; }

.faq-v3__grid { display: grid; grid-template-columns: minmax(270px, .7fr) minmax(0, 1.3fr); gap: clamp(50px, 8vw, 110px); align-items: start; }
.faq-v3__intro { position: sticky; top: 120px; }
.faq-v3__intro h2 { margin: 0; color: var(--charcoal); font-size: clamp(2.3rem, 4vw, 3.8rem); line-height: 1.08; letter-spacing: -.04em; }
.faq-v3__intro > p:not(.eyebrow) { margin: 22px 0 26px; color: var(--muted); }
.faq-v3__list details { border-top: 1px solid var(--line); }
.faq-v3__list details:last-child { border-bottom: 1px solid var(--line); }
.faq-v3__list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 25px 0; color: var(--charcoal); font-size: 1.06rem; font-weight: 800; cursor: pointer; list-style: none; }
.faq-v3__list summary::-webkit-details-marker { display: none; }
.faq-v3__list summary span { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 50%; color: var(--teal-dark); background: var(--teal-soft); transition: transform .25s; }
.faq-v3__list details[open] summary span { transform: rotate(180deg); }
.faq-v3__list details p { margin: -8px 58px 25px 0; color: var(--muted); }

.lead-v3 { position: relative; overflow: hidden; color: var(--white); background: var(--charcoal); }
.lead-v3::before { position: absolute; top: -300px; left: -300px; width: 720px; height: 720px; content: ""; border-radius: 50%; background: radial-gradient(circle, rgba(0,166,143,.32), transparent 68%); }
.lead-v3__grid { position: relative; display: grid; grid-template-columns: minmax(290px, .72fr) minmax(0, 1.28fr); gap: clamp(45px, 8vw, 100px); align-items: center; }
.lead-v3__copy h2 { margin: 0; color: var(--white); font-size: clamp(2.5rem, 4.4vw, 4.4rem); line-height: 1.05; letter-spacing: -.05em; }
.lead-v3__copy > p:not(.eyebrow) { margin: 25px 0 30px; color: rgba(255,255,255,.69); font-size: 1.04rem; }
.lead-v3__contact-list { border-top: 1px solid rgba(255,255,255,.13); }
.lead-v3__contact-list a { display: grid; grid-template-columns: 47px minmax(0, 1fr); gap: 14px; align-items: center; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.13); color: var(--white); text-decoration: none; }
.lead-v3__contact-list a > span { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 13px; color: #8bf7e8; background: rgba(0,166,143,.14); }
.lead-v3__contact-list small, .lead-v3__contact-list strong { display: block; }
.lead-v3__contact-list small { color: rgba(255,255,255,.58); font-size: .72rem; }
.lead-v3__contact-list strong { font-size: 1rem; }
.lead-v3__assurance { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; margin-top: 25px; color: rgba(255,255,255,.75); }
.lead-v3__assurance > svg { width: 29px; height: 29px; color: #8af4e5; }
.lead-v3__assurance p { margin: 0; }
.lead-v3__assurance strong, .lead-v3__assurance span { display: block; }
.lead-v3__assurance span { color: rgba(255,255,255,.5); font-size: .76rem; }
.lead-v3__form-card { padding: clamp(25px, 4vw, 46px); border-radius: var(--radius-lg); color: var(--ink); background: var(--white); box-shadow: var(--shadow-lg); }
.form-message { margin-bottom: 20px; padding: 14px 16px; border-radius: 9px; font-size: .9rem; }
.form-message--success { color: #115f50; background: #dcf8f2; }
.form-message--error { color: #8a2e2e; background: #ffe7e7; }
.lead-wizard__header { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; margin-bottom: 29px; }
.lead-wizard__header > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.lead-wizard__header strong { color: var(--charcoal); font-size: 1.1rem; }
.lead-wizard__header span { color: var(--muted); font-size: .74rem; font-weight: 700; }
.lead-wizard__progress { height: 7px; overflow: hidden; border-radius: 99px; background: #e6eceb; }
.lead-wizard__progress span { display: block; width: 33.333%; height: 100%; border-radius: inherit; background: var(--teal); transition: width .3s var(--ease); }
.lead-wizard__step { display: none; }
.lead-wizard__step.is-active { display: block; animation: wizardIn .35s var(--ease); }
@keyframes wizardIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.lead-wizard__step h3 { margin: 0 0 22px; color: var(--charcoal); font-size: 1.45rem; letter-spacing: -.02em; }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-bottom: 21px; }
.choice-card { position: relative; cursor: pointer; }
.choice-card input { position: absolute; opacity: 0; pointer-events: none; }
.choice-card > span { min-height: 112px; display: grid; grid-template-columns: 39px minmax(0,1fr); column-gap: 12px; align-content: center; padding: 17px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); transition: border-color .2s, box-shadow .2s, background .2s; }
.choice-card svg { grid-row: span 2; align-self: center; width: 30px; height: 30px; color: var(--grey); }
.choice-card strong { color: var(--charcoal); font-size: .9rem; }
.choice-card small { color: var(--muted); font-size: .71rem; }
.choice-card input:checked + span { border-color: var(--teal); background: var(--teal-soft); box-shadow: 0 0 0 3px rgba(0,166,143,.1); }
.choice-card input:checked + span svg { color: var(--teal-dark); }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.lead-wizard label:not(.choice-card):not(.privacy-check) { display: block; margin-bottom: 15px; color: var(--ink); font-size: .79rem; font-weight: 800; }
.lead-wizard input[type="text"], .lead-wizard input[type="tel"], .lead-wizard input[type="email"], .lead-wizard select, .lead-wizard textarea {
    width: 100%; margin-top: 7px; padding: 13px 14px; border: 1px solid #cfd9d7; border-radius: 9px; color: var(--ink); background: #fbfcfc; outline: none; transition: border-color .2s, box-shadow .2s, background .2s;
}
.lead-wizard textarea { resize: vertical; }
.lead-wizard input:focus, .lead-wizard select:focus, .lead-wizard textarea:focus { border-color: var(--teal); background: var(--white); box-shadow: 0 0 0 3px rgba(0,166,143,.11); }
.form-tip { display: flex; align-items: center; gap: 8px; margin: 0; padding: 12px 13px; border-radius: 8px; color: var(--grey-dark); background: var(--soft); font-size: .75rem; }
.form-tip svg { color: var(--teal-dark); }
.privacy-check { display: flex; align-items: flex-start; gap: 10px; margin: 17px 0; color: var(--muted); font-size: .74rem; font-weight: 500; }
.privacy-check input { margin-top: 4px; accent-color: var(--teal-dark); }
.privacy-check a { color: var(--teal-dark); font-weight: 700; }
.lead-wizard__actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.lead-wizard__actions .button { min-height: 50px; }
.form-honeypot { position: absolute; left: -9999px; }

.final-v3 { padding: 70px 0; color: var(--white); background: linear-gradient(105deg, var(--teal-dark), var(--teal)); }
.final-v3__inner { display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.final-v3 h2 { max-width: 750px; margin: 0; color: var(--white); font-size: clamp(2rem, 3.8vw, 3.7rem); line-height: 1.08; letter-spacing: -.045em; }
.final-v3__actions { display: flex; flex-wrap: wrap; gap: 11px; flex: 0 0 auto; }

.site-footer { padding: 78px 0 0; color: rgba(255,255,255,.72); background: #182229; }
.footer-grid { display: grid; grid-template-columns: 1.35fr .85fr .85fr 1fr; gap: 55px; padding-bottom: 55px; }
.footer-brand .revalora-logo-link img, .footer-brand .custom-logo { max-width: 145px; filter: brightness(0) invert(1); opacity: .92; }
.footer-brand p { max-width: 330px; margin: 20px 0; }
.site-footer h2 { margin: 0 0 19px; color: var(--white); font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li + li { margin-top: 8px; }
.site-footer a { color: rgba(255,255,255,.72); text-decoration: none; }
.site-footer a:hover { color: #8bf3e4; }
.site-footer p { font-size: .86rem; }
.social-links { display: flex; flex-wrap: wrap; gap: 13px; font-size: .8rem; font-weight: 700; }
.footer-bottom { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.1); font-size: .75rem; }
.footer-bottom p { margin: 0; }
.footer-bottom div { display: flex; gap: 20px; }

.floating-whatsapp { position: fixed; z-index: 500; right: 22px; bottom: 24px; display: inline-flex; align-items: center; gap: 9px; padding: 12px 16px; border-radius: 99px; color: var(--white); background: #159c67; box-shadow: 0 15px 35px rgba(12,76,51,.3); font-size: .82rem; font-weight: 800; text-decoration: none; transition: transform .25s; }
.floating-whatsapp:hover { color: var(--white); transform: translateY(-3px); }
.floating-whatsapp svg { width: 24px; height: 24px; }
.mobile-contact-bar { display: none; }

.content-shell { padding: 90px 0 110px; }
.content-narrow { max-width: 900px; }
.entry-header { margin-bottom: 42px; }
.entry-hero { margin-bottom: 45px; overflow: hidden; border-radius: var(--radius); }
.entry-hero img { width: 100%; display: block; }
.entry-content { color: #34444a; font-size: 1.04rem; }
.entry-content h2, .entry-content h3 { color: var(--charcoal); line-height: 1.2; }
.entry-content h2 { margin-top: 2.2em; font-size: 2rem; }
.entry-content a { color: var(--teal-dark); }
.entry-content img { border-radius: 12px; }
.content-card { display: grid; grid-template-columns: 260px minmax(0,1fr); gap: 28px; padding: 25px 0; border-bottom: 1px solid var(--line); }
.content-card__image { overflow: hidden; border-radius: 12px; }
.content-card__image img { width: 100%; height: 180px; object-fit: cover; }
.content-card h2 { margin: 0; color: var(--charcoal); }
.content-card h2 a { text-decoration: none; }
.content-card__meta { margin: 0 0 8px; color: var(--teal-dark); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.empty-state { padding: 100px 20px; text-align: center; }
.empty-state h1 { font-size: clamp(2.5rem, 5vw, 5rem); }
.empty-state .button { margin: 7px; }

.inner-hero, .project-detail-hero { padding: 92px 0; color: var(--white); background: linear-gradient(115deg, var(--charcoal), #30434a); }
.inner-hero h1, .project-detail-hero h1 { color: var(--white); }
.inner-hero p:last-child { max-width: 720px; color: rgba(255,255,255,.68); }
.project-detail-hero__grid { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.project-detail-hero__location { display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.7); }
.project-detail-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(250px,.6fr); gap: 36px; align-items: start; }
.project-detail-main-image, .before-after--large { width: 100%; min-height: 600px; max-height: 720px; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow-md); }
.project-facts { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-sm); }
.project-facts h2 { margin: 0 0 22px; color: var(--charcoal); font-size: 1.35rem; }
.project-facts p { margin: 0; padding: 15px 0; border-top: 1px solid var(--line); }
.project-facts span, .project-facts strong { display: block; }
.project-facts span { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.project-facts strong { margin-top: 4px; color: var(--ink); }
.project-story-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; }
.project-story-grid article { padding: 35px; border-radius: var(--radius); background: var(--white); }
.project-story-grid h2 { color: var(--charcoal); }
.project-entry-content { margin-top: 45px; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1100px) {
    :root { --container: 1040px; }
    .topbar__schedule { display: none; }
    .nav-shell__inner { gap: 18px; }
    .revalora-menu { gap: 20px; }
    .nav-cta { display: none; }
    .hero-v3__layout { grid-template-columns: minmax(0, 1.15fr) minmax(300px, .65fr); gap: 42px; }
    .hero-v3 h1 { font-size: clamp(3rem, 6.5vw, 5.2rem); }
    .proof-bar__grid { grid-template-columns: 1.25fr repeat(3,.5fr); }
    .services-v3-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .company-v3__grid { gap: 55px; }
    .process-v3__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .process-v3__grid article:nth-child(2)::after { display: none; }
    .lead-v3__grid { gap: 55px; }
    .footer-grid { grid-template-columns: 1.35fr 1fr 1fr; }
    .footer-grid > div:last-child { grid-column: 2 / 4; }
}

@media (max-width: 880px) {
    :root { --header-height: 76px; }
    .section { padding: 78px 0; }
    .topbar__inner { min-height: 35px; }
    .topbar__locations a span strong { display: none; }
    .topbar__locations { gap: 14px; }
    .primary-navigation { position: fixed; z-index: 999; top: 111px; right: 0; bottom: 0; left: 0; display: none; margin: 0; padding: 23px 20px 110px; overflow-y: auto; background: var(--white); }
    .site-header.is-scrolled .primary-navigation { top: 76px; }
    .menu-open .primary-navigation { display: block; }
    .revalora-menu { display: block; }
    .revalora-menu a { padding: 17px 7px; border-bottom: 1px solid var(--line); font-size: 1.05rem; }
    .revalora-menu a::after { display: none; }
    .menu-toggle { display: inline-flex; margin-left: auto; }
    .hero-v3 { min-height: auto; }
    .hero-v3__shade { background: linear-gradient(90deg, rgba(20,31,36,.94), rgba(20,31,36,.65)); }
    .hero-v3__layout { grid-template-columns: 1fr; padding-top: 88px; padding-bottom: 62px; }
    .hero-v3__copy { max-width: 700px; }
    .hero-contact { align-self: auto; max-width: 580px; }
    .proof-bar__grid { grid-template-columns: 1fr repeat(3,.33fr); gap: 18px; }
    .proof-bar__lead p { font-size: .84rem; }
    .solution-grid, .projects-v3-grid { grid-template-columns: 1fr; }
    .solution-card { padding: 29px; }
    .section-heading--split { grid-template-columns: 1fr; gap: 18px; }
    .company-v3__grid, .faq-v3__grid, .lead-v3__grid { grid-template-columns: 1fr; }
    .company-v3__visual { min-height: 480px; }
    .company-v3__visual > img { height: 480px; }
    .company-v3__stamp { right: 18px; }
    .faq-v3__intro { position: static; }
    .zones-v3__grid { grid-template-columns: 1fr; }
    .final-v3__inner { display: grid; }
    .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .footer-grid > div:last-child { grid-column: auto; }
    .project-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    body { padding-bottom: 66px; }
    .container { width: min(calc(100% - 28px), var(--container)); }
    .section { padding: 66px 0; }
    .section-heading { margin-bottom: 38px; }
    .topbar__inner { justify-content: center; }
    .topbar__right { display: none; }
    .topbar__locations { width: 100%; justify-content: space-between; }
    .topbar__locations a { font-size: .71rem; }
    .site-branding { flex-basis: 135px; }
    .revalora-logo-link img, .custom-logo { max-width: 126px; max-height: 60px; }
    .hero-v3__layout { padding-top: 65px; }
    .hero-v3 h1 { font-size: clamp(2.75rem, 12vw, 4.35rem); }
    .hero-v3__text { font-size: 1rem; }
    .hero-v3__actions { display: grid; }
    .hero-v3__actions .button { width: 100%; }
    .hero-v3__promises { display: grid; gap: 9px; }
    .hero-contact { padding: 16px; }
    .proof-bar__grid { grid-template-columns: repeat(3,1fr); min-height: auto; padding-top: 20px; padding-bottom: 20px; }
    .proof-bar__lead { grid-column: 1 / -1; padding: 0 0 18px; border-right: 0; border-bottom: 1px solid var(--line); }
    .proof-bar__metric strong { font-size: 1.55rem; }
    .proof-bar__metric span { font-size: .67rem; }
    .solution-grid, .services-v3-grid, .projects-v3-grid, .process-v3__grid, .project-story-grid { grid-template-columns: 1fr; }
    .service-v3-card p, .project-v3-card__body > p:not(.project-v3-card__location) { min-height: 0; }
    .process-v3__grid article { min-height: auto; }
    .process-v3__grid article::after { display: none !important; }
    .company-v3__visual { min-height: 390px; }
    .company-v3__visual > img { height: 390px; }
    .company-v3__stamp { right: 12px; bottom: 18px; width: 72%; }
    .zone-v3-card { min-height: 360px; }
    .zone-v3-card__content { padding: 25px; }
    .faq-v3__list summary { font-size: .96rem; }
    .faq-v3__list details p { margin-right: 0; }
    .lead-v3__form-card { padding: 22px 18px; border-radius: 18px; }
    .choice-grid, .form-row { grid-template-columns: 1fr; }
    .choice-card > span { min-height: 88px; }
    .lead-wizard__actions { justify-content: stretch; }
    .lead-wizard__actions .button { flex: 1; padding-inline: 12px; }
    .final-v3__actions { display: grid; }
    .final-v3__actions .button { width: 100%; }
    .footer-grid { grid-template-columns: 1fr; gap: 35px; }
    .footer-bottom { align-items: flex-start; flex-direction: column; justify-content: center; padding: 20px 0; }
    .floating-whatsapp { display: none; }
    .mobile-contact-bar { position: fixed; z-index: 900; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: 1fr 1.25fr 1fr; min-height: 66px; color: var(--white); background: var(--charcoal); box-shadow: 0 -10px 30px rgba(0,0,0,.18); }
    .mobile-contact-bar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: var(--white); font-size: .65rem; font-weight: 700; text-decoration: none; }
    .mobile-contact-bar a + a { border-left: 1px solid rgba(255,255,255,.1); }
    .mobile-contact-bar svg { width: 20px; height: 20px; }
    .mobile-contact-bar__main { background: var(--teal-dark); }
    .content-card { grid-template-columns: 1fr; }
    .project-detail-hero__grid { align-items: flex-start; flex-direction: column; }
    .project-detail-main-image, .before-after--large { min-height: 380px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .reveal { opacity: 1; transform: none; }
}

/* REVALORA 3.1 Premium */
.hero-premium .hero-v3__media { background-position: var(--hero-position, center); }
.hero-premium .hero-v3__layout { grid-template-columns: minmax(0, 1.3fr) minmax(320px, .62fr); }
.hero-premium .hero-v3__copy { max-width: 720px; }
.hero-premium h1 { max-width: 720px; font-size: clamp(3rem, 5.35vw, 5.35rem); line-height: 1.01; }
.hero-premium .hero-v3__text { max-width: 650px; }

.trust-ribbon { position: relative; z-index: 5; border-bottom: 1px solid var(--line); background: var(--white); }
.trust-ribbon__grid { min-height: 132px; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); align-items: stretch; }
.trust-ribbon article { display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 14px; align-items: center; padding: 25px 24px; border-right: 1px solid var(--line); }
.trust-ribbon article:first-child { border-left: 1px solid var(--line); }
.trust-ribbon article > span { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; border-radius: 14px; color: var(--teal-dark); background: var(--teal-soft); }
.trust-ribbon article > span svg { width: 24px; height: 24px; }
.trust-ribbon strong, .trust-ribbon small { display: block; }
.trust-ribbon strong { color: var(--charcoal); font-size: .91rem; }
.trust-ribbon small { margin-top: 5px; color: var(--muted); font-size: .72rem; line-height: 1.45; }

.projects-premium .project-v3-card:first-child { grid-column: span 1; }
.project-v3-card__facts { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 17px; }
.project-v3-card__facts span { padding: 5px 8px; border-radius: 6px; color: var(--grey-dark); background: var(--soft); font-size: .67rem; font-weight: 750; }

.maintenance-premium { position: relative; overflow: hidden; padding: 72px 0; color: var(--white); background: linear-gradient(120deg, var(--teal-deep), var(--teal) 60%, #00bba0); }
.maintenance-premium::after { position: absolute; right: -150px; top: -230px; width: 520px; height: 520px; content: ""; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.04), 0 0 0 140px rgba(255,255,255,.025); }
.maintenance-premium__grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); gap: 70px; align-items: center; }
.maintenance-premium h2 { margin: 0; max-width: 740px; color: var(--white); font-size: clamp(2.2rem,4vw,4rem); line-height: 1.05; letter-spacing: -.045em; }
.maintenance-premium p:not(.eyebrow) { max-width: 780px; margin: 20px 0 0; color: rgba(255,255,255,.8); font-size: 1.04rem; }
.maintenance-premium__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 19px; }
.text-link--light { color: var(--white); }

.zone-v3-card::before { background-image: var(--zone-image) !important; }
.zone-v3-card__buttons { display: flex; align-items: center; gap: 14px; }
.zone-v3-card__wa { width: 50px; height: 50px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; color: var(--white); background: rgba(0,166,143,.28); }
.zone-v3-card__wa svg { width: 24px; height: 24px; }

.testimonials-premium { background: var(--soft); }
.testimonials-premium__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.testimonial-card { position: relative; padding: 34px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-sm); }
.testimonial-card__quote { position: absolute; top: 20px; right: 26px; color: var(--teal-soft); font-size: 5rem; font-weight: 900; line-height: 1; }
.testimonial-card__text { position: relative; color: var(--ink); font-size: 1.02rem; }
.testimonial-card__text p { margin: 0; }
.testimonial-card footer { margin-top: 27px; padding-top: 20px; border-top: 1px solid var(--line); }
.testimonial-card footer strong, .testimonial-card footer span, .testimonial-card footer small { display: block; }
.testimonial-card footer strong { color: var(--charcoal); }
.testimonial-card footer span { margin-top: 3px; color: var(--muted); font-size: .78rem; }
.testimonial-card footer small { margin-top: 7px; color: var(--teal-dark); font-size: .72rem; font-weight: 800; }

.outcomes-premium { background: linear-gradient(180deg,#fff,var(--soft)); }
.outcomes-premium__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.outcomes-premium__grid article { padding: 35px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-sm); }
.outcomes-premium__grid article > span { width: 58px; height: 58px; display: inline-flex; align-items: center; justify-content: center; border-radius: 17px; color: var(--teal-dark); background: var(--teal-soft); }
.outcomes-premium__grid article > span svg { width: 28px; height: 28px; }
.outcomes-premium__grid h3 { margin: 24px 0 9px; color: var(--charcoal); font-size: 1.25rem; }
.outcomes-premium__grid p { margin: 0; color: var(--muted); }

.file-drop { position: relative; min-height: 205px; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 7px; margin-bottom: 22px !important; padding: 25px; border: 1.5px dashed #a9b9b6; border-radius: 14px; color: var(--ink); background: var(--soft); text-align: center; cursor: pointer; transition: border-color .2s, background .2s; }
.file-drop:hover, .file-drop:focus-within { border-color: var(--teal); background: var(--teal-soft); }
.file-drop input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.file-drop__icon { width: 56px; height: 56px; display: inline-flex; align-items: center; justify-content: center; border-radius: 16px; color: var(--teal-dark); background: var(--white); box-shadow: var(--shadow-sm); }
.file-drop__icon svg { width: 27px; height: 27px; }
.file-drop strong { color: var(--charcoal); font-size: .98rem; }
.file-drop small { color: var(--muted); font-size: .72rem; font-weight: 500; }
.file-drop__names { position: relative; z-index: 2; max-width: 100%; margin-top: 8px; color: var(--teal-deep); font-size: .7rem; font-weight: 700; overflow-wrap: anywhere; pointer-events: none; }
.lead-wizard__submit.is-loading { opacity: .65; cursor: wait; }
.lead-wizard__progress span { width: 25%; }

@media (max-width: 1080px) {
    .trust-ribbon__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .trust-ribbon article:nth-child(2) { border-right: 0; }
    .maintenance-premium__grid { grid-template-columns: 1fr; gap: 34px; }
    .maintenance-premium__actions { flex-direction: row; flex-wrap: wrap; align-items: center; }
}

@media (max-width: 780px) {
    .hero-premium h1 { font-size: clamp(2.7rem,12vw,4rem); }
    .trust-ribbon__grid { grid-template-columns: 1fr; }
    .trust-ribbon article, .trust-ribbon article:first-child { border: 0; border-bottom: 1px solid var(--line); }
    .testimonials-premium__grid, .outcomes-premium__grid { grid-template-columns: 1fr; }
    .maintenance-premium { padding: 58px 0; }
    .maintenance-premium__actions { align-items: stretch; }
    .maintenance-premium__actions .button { width: 100%; }
    .zone-v3-card__buttons { align-items: flex-end; justify-content: space-between; }
    .file-drop { min-height: 180px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
.project-client-quote { position: relative; max-width: 900px; margin-top: 54px; padding: 36px 42px; border-left: 4px solid var(--teal); border-radius: 0 var(--radius) var(--radius) 0; background: var(--white); box-shadow: var(--shadow-sm); }
.project-client-quote > span { position: absolute; top: 8px; right: 28px; color: var(--teal-soft); font-size: 6rem; font-weight: 900; line-height: 1; }
.project-client-quote blockquote { position: relative; margin: 0; color: var(--charcoal); font-size: clamp(1.25rem,2vw,1.7rem); font-weight: 700; line-height: 1.5; }
.project-client-quote small { display: block; margin-top: 14px; color: var(--teal-dark); font-weight: 800; }
.zone-page-hero { position: relative; min-height: 650px; display: flex; align-items: center; overflow: hidden; color: var(--white); background: var(--charcoal); }
.zone-page-hero::before, .zone-page-hero::after { position: absolute; inset: 0; content: ""; }
.zone-page-hero::before { background-image: var(--zone-page-image); background-position: center; background-size: cover; }
.zone-page-hero::after { background: linear-gradient(90deg,rgba(20,31,36,.94),rgba(20,31,36,.58) 60%,rgba(20,31,36,.34)); }
.zone-page-hero__grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(280px,.55fr); gap: 90px; align-items: center; padding-block: 90px; }
.zone-page-hero h1 { max-width: 800px; margin: 0; color: var(--white); font-size: clamp(3rem,6vw,6rem); line-height: 1; letter-spacing: -.055em; }
.zone-page-hero__grid > div > p:not(.eyebrow) { max-width: 650px; color: rgba(255,255,255,.8); font-size: 1.15rem; }
.zone-page-hero aside { padding: 28px; border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius); background: rgba(20,31,36,.72); backdrop-filter: blur(18px); }
.zone-page-hero aside > span { width: 52px; height: 52px; display: inline-flex; align-items: center; justify-content: center; border-radius: 15px; color: #8df7e8; background: rgba(0,166,143,.18); }
.zone-page-hero aside strong { display: block; margin-top: 18px; }
.zone-page-hero aside p { color: rgba(255,255,255,.7); }
.zone-page-hero aside a { display: inline-flex; align-items: center; gap: 8px; color: #9ff8ec; font-weight: 800; text-decoration: none; }
.zone-page-content { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(320px,.8fr); gap: 80px; align-items: start; }
.zone-page-services { display: grid; gap: 14px; }
.zone-page-services article { padding: 25px; border: 1px solid var(--line); border-radius: 15px; background: var(--white); box-shadow: var(--shadow-sm); }
.zone-page-services article > svg { color: var(--teal-dark); }
.zone-page-services h2 { display: inline; margin-left: 10px; color: var(--charcoal); font-size: 1.15rem; }
.zone-page-services p { margin: 8px 0 0; color: var(--muted); }
.zone-page-empty { grid-column: 1/-1; padding: 26px; border: 1px dashed var(--line); border-radius: var(--radius); color: var(--muted); text-align: center; }
@media(max-width:900px){.zone-page-hero__grid,.zone-page-content{grid-template-columns:1fr;gap:40px}.zone-page-hero{min-height:auto}.zone-page-hero__grid{padding-block:70px}}

/* 3.2 SEO local: bloque editorial de zona, integrado con el diseño existente. */
.local-seo-copy__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:clamp(34px,7vw,90px);align-items:start}
.local-seo-copy h2{margin:0;color:var(--charcoal);font-size:clamp(2rem,3.8vw,3.4rem);line-height:1.08;letter-spacing:-.04em}
.local-seo-copy h3{margin:28px 0 10px;color:var(--charcoal);font-size:1.15rem}
.local-seo-copy p,.local-seo-copy li{color:var(--muted);line-height:1.75}
.local-seo-copy ul{padding-left:20px}
.local-seo-copy aside{padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft)}
.local-seo-copy aside h3{margin-top:0}
@media(max-width:800px){.local-seo-copy__grid{grid-template-columns:1fr}}

/* 3.3 — proyectos reales y foco Málaga fachadas */
.malaga-facades{background:linear-gradient(180deg,#fff,#f5f9f8)}
.malaga-facades__grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(42px,7vw,95px);align-items:center}
.malaga-facades__copy h2{margin:0;color:var(--charcoal);font-size:clamp(2.5rem,4.6vw,4.6rem);line-height:1.02;letter-spacing:-.05em}
.malaga-facades__lead{margin:24px 0 0;color:var(--muted);font-size:1.08rem;line-height:1.7}
.malaga-facades__points{display:grid;gap:12px;margin:28px 0}
.malaga-facades__points article{display:grid;grid-template-columns:46px 1fr;gap:14px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}
.malaga-facades__points article>span{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:13px;color:var(--teal-dark);background:var(--teal-soft)}
.malaga-facades__points strong,.malaga-facades__points small{display:block}.malaga-facades__points strong{color:var(--charcoal)}.malaga-facades__points small{margin-top:3px;color:var(--muted)}
.malaga-facades__actions{display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.malaga-facades__visual{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(200px,.55fr);gap:16px;min-height:600px}
.malaga-facades__visual figure{position:relative;margin:0;overflow:hidden;border-radius:18px;background:#dfe7e6;box-shadow:var(--shadow-sm)}
.malaga-facades__visual img{width:100%;height:100%;object-fit:cover}
.malaga-facades__main img{min-height:600px}
.malaga-facades__pair{display:grid;grid-template-rows:1fr 1fr;gap:16px}
.malaga-facades__pair img{min-height:292px}
.malaga-facades__visual figcaption{position:absolute;left:14px;bottom:14px;padding:7px 10px;border-radius:7px;color:var(--charcoal);background:rgba(255,255,255,.92);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.vertical-video{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:42px;align-items:center;margin-top:54px;padding-top:42px;border-top:1px solid var(--line)}
.vertical-video__copy h3{margin:0;color:var(--charcoal);font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.12}.vertical-video__copy p:not(.eyebrow){color:var(--muted);line-height:1.65}
.vertical-video video{width:100%;max-height:520px;border-radius:18px;background:#111;box-shadow:var(--shadow-md)}
.commercial-case{background:#fff}
.commercial-case__timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:34px}
.commercial-case__timeline figure{margin:0;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--white);box-shadow:var(--shadow-sm)}
.commercial-case__timeline figure>div{aspect-ratio:1.2;overflow:hidden;background:#e9eeee}.commercial-case__timeline img{width:100%;height:100%;object-fit:cover;display:block}
.commercial-case__timeline figcaption{display:grid;grid-template-columns:38px 1fr;padding:20px;column-gap:12px}.commercial-case__timeline figcaption span{grid-row:1/3;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;background:var(--teal);font-size:.75rem;font-weight:800}.commercial-case__timeline strong{color:var(--charcoal)}.commercial-case__timeline small{color:var(--muted);margin-top:2px}
.commercial-case__cta{display:flex;justify-content:space-between;gap:26px;align-items:center;margin-top:26px;padding:24px 28px;border-radius:15px;background:var(--soft)}.commercial-case__cta p{margin:0;color:var(--muted)}.commercial-case__cta strong{color:var(--charcoal)}
@media(max-width:980px){.malaga-facades__grid,.vertical-video{grid-template-columns:1fr}.malaga-facades__visual{min-height:500px}.commercial-case__timeline{grid-template-columns:1fr 1fr}.commercial-case__timeline figure:last-child{grid-column:1/-1}.commercial-case__cta{align-items:flex-start;flex-direction:column}}
@media(max-width:650px){.malaga-facades__visual{grid-template-columns:1fr;min-height:auto}.malaga-facades__main img{min-height:430px}.malaga-facades__pair{grid-template-columns:1fr 1fr;grid-template-rows:none}.malaga-facades__pair img{min-height:220px}.commercial-case__timeline{grid-template-columns:1fr}.commercial-case__timeline figure:last-child{grid-column:auto}}
.facade-page-hero{position:relative;min-height:650px;display:flex;align-items:center;color:#fff;background:#17252b;overflow:hidden}.facade-page-hero::before,.facade-page-hero::after{position:absolute;inset:0;content:""}.facade-page-hero::before{background-image:var(--facade-hero);background-size:cover;background-position:center}.facade-page-hero::after{background:linear-gradient(90deg,rgba(20,31,36,.93),rgba(20,31,36,.56) 62%,rgba(20,31,36,.28))}.facade-page-hero__inner{position:relative;z-index:2;padding-block:90px}.facade-page-hero h1{max-width:900px;margin:0;font-size:clamp(3rem,6vw,6rem);line-height:.98;letter-spacing:-.055em}.facade-page-hero__inner>p:not(.eyebrow){max-width:720px;font-size:1.18rem;color:rgba(255,255,255,.84)}
.facade-page-intro__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:70px}.facade-page-intro h2{margin:0;color:var(--charcoal);font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.08;letter-spacing:-.045em}.facade-page-intro p{color:var(--muted);line-height:1.75}.facade-page-intro aside{display:grid;gap:10px;padding:28px;border-radius:18px;background:var(--charcoal);color:#fff}.facade-page-intro aside a{color:#9ff8ec;font-weight:800;text-decoration:none}.facade-real-project__compare{display:grid;grid-template-columns:1fr 1fr;gap:18px}.facade-real-project__compare figure{position:relative;margin:0;overflow:hidden;border-radius:18px;background:#ddd}.facade-real-project__compare img{width:100%;height:620px;object-fit:cover}.facade-real-project__compare figcaption{position:absolute;left:16px;bottom:16px;padding:8px 12px;border-radius:7px;background:rgba(255,255,255,.92);color:var(--charcoal);font-weight:800;text-transform:uppercase}.facade-page-vertical__grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:50px;align-items:center}.facade-page-vertical h2{margin:0;color:#fff;font-size:clamp(2.3rem,4vw,4rem);line-height:1.05}.facade-page-vertical p:not(.eyebrow){color:rgba(255,255,255,.72);line-height:1.7}.facade-page-vertical video{width:100%;max-height:560px;border-radius:18px;background:#000;box-shadow:var(--shadow-lg)}@media(max-width:850px){.facade-page-intro__grid,.facade-page-vertical__grid{grid-template-columns:1fr}.facade-real-project__compare{grid-template-columns:1fr}.facade-real-project__compare img{height:auto}.facade-page-hero{min-height:auto}}


/* =========================================================
   REVALORA 3.3.1 — reparación responsive móvil
   Estas reglas van al final a propósito para prevalecer sobre
   los estilos desktop heredados de 3.1/3.3.
   ========================================================= */
html, body { max-width: 100%; overflow-x: hidden; }
.hero-v3__copy, .hero-contact, .hero-contact__zone > span { min-width: 0; }

@media (max-width: 880px) {
    .hero-premium .hero-v3__layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 30px;
        align-items: start;
        padding-top: 52px;
        padding-bottom: 52px;
    }
    .hero-premium .hero-v3__copy {
        width: 100%;
        max-width: none;
    }
    .hero-premium h1 {
        width: 100%;
        max-width: 100%;
        margin: 0;
        font-size: clamp(2.55rem, 9.6vw, 4.1rem) !important;
        line-height: 1.02;
        letter-spacing: -.045em;
        text-wrap: balance;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
    }
    .hero-premium .hero-v3__text {
        width: 100%;
        max-width: 100%;
        margin-top: 20px;
        font-size: 1.02rem;
        line-height: 1.55;
    }
    .hero-v3__actions {
        margin-top: 26px;
    }
    .hero-contact {
        position: static;
        width: 100%;
        max-width: none;
        align-self: stretch;
        margin: 0;
    }
    .hero-v3__promises {
        margin-top: 24px;
    }
    .trust-ribbon__grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
    }
    .trust-ribbon article,
    .trust-ribbon article:first-child {
        border-left: 0;
    }
    .trust-ribbon article:nth-child(2n) {
        border-right: 0;
    }
}

@media (max-width: 640px) {
    body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
    .topbar { display: none; }
    .primary-navigation,
    .site-header.is-scrolled .primary-navigation { top: 76px; }
    .nav-shell__inner { min-height: 76px; }
    .site-branding { flex-basis: auto; }
    .revalora-logo-link img, .custom-logo {
        max-width: 102px;
        max-height: 54px;
    }

    .hero-v3 { min-height: 0; }
    .hero-v3__media { background-position: 58% center; }
    .hero-v3__shade {
        background: linear-gradient(180deg, rgba(20,31,36,.92) 0%, rgba(20,31,36,.82) 58%, rgba(20,31,36,.90) 100%);
    }
    .hero-premium .hero-v3__layout {
        gap: 26px;
        padding-top: 36px;
        padding-bottom: 42px;
    }
    .hero-v3 .eyebrow {
        margin-bottom: 12px;
        font-size: .68rem;
        line-height: 1.35;
    }
    .hero-premium h1 {
        font-size: clamp(2.2rem, 10.6vw, 3.15rem) !important;
        line-height: 1.01;
        letter-spacing: -.042em;
        text-wrap: pretty;
    }
    .hero-premium .hero-v3__text {
        margin-top: 17px;
        font-size: .98rem;
        line-height: 1.55;
    }
    .hero-v3__actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 22px;
    }
    .hero-v3__actions .button {
        width: 100%;
        min-height: 52px;
        justify-content: center;
        padding: 0 18px;
        font-size: .96rem;
    }
    .hero-v3__promises {
        display: grid;
        grid-template-columns: 1fr;
        gap: 9px;
        margin-top: 21px;
        font-size: .8rem;
    }

    .hero-contact {
        padding: 16px;
        border-radius: 18px;
        backdrop-filter: blur(13px);
    }
    .hero-contact__intro {
        margin-bottom: 8px;
        font-size: .72rem;
    }
    .hero-contact__zone {
        grid-template-columns: 38px minmax(0,1fr) 18px;
        gap: 10px;
        min-height: 68px;
        padding: 11px 7px;
    }
    .hero-contact__icon {
        width: 38px;
        height: 38px;
    }
    .hero-contact__zone small {
        font-size: .68rem;
        line-height: 1.25;
    }
    .hero-contact__zone strong {
        margin-top: 3px;
        font-size: 1.05rem;
        line-height: 1.2;
    }
    .hero-contact__whatsapp {
        gap: 10px;
        margin-top: 9px;
        padding: 13px;
        border-radius: 12px;
    }
    .hero-contact__whatsapp > svg {
        flex-basis: 25px;
        width: 25px;
        height: 25px;
    }
    .hero-contact__whatsapp strong { font-size: .9rem; }
    .hero-contact__whatsapp small { font-size: .68rem; line-height: 1.35; }
    .hero-contact__note { margin-top: 12px; font-size: .66rem; }

    .trust-ribbon__grid {
        grid-template-columns: 1fr;
        min-height: 0;
    }
    .trust-ribbon article,
    .trust-ribbon article:first-child,
    .trust-ribbon article:nth-child(2n) {
        grid-template-columns: 46px minmax(0,1fr);
        gap: 14px;
        padding: 20px 14px;
        border: 0;
        border-bottom: 1px solid var(--line);
    }
    .trust-ribbon article:last-child { border-bottom: 0; }

    .mobile-contact-bar {
        min-height: 68px;
        padding-bottom: env(safe-area-inset-bottom);
        grid-template-columns: 1fr 1.22fr 1fr;
    }
    .mobile-contact-bar a {
        min-width: 0;
        gap: 4px;
        font-size: .64rem;
    }
    .mobile-contact-bar svg { width: 19px; height: 19px; }

    /* El tema ya incorpora CTA fijo: ocultamos botones flotantes comunes de plugins
       para evitar los círculos superpuestos vistos en iPhone. */
    #callnowbutton,
    .call-now-button,
    .joinchat,
    .joinchat__button,
    .ht-ctc-chat,
    .qlwapp,
    #qlwapp,
    .floating-wpp,
    #whatsapp-chat { display: none !important; }

    .malaga-facades__copy h2 { font-size: clamp(2.1rem, 10vw, 3rem); }
    .malaga-facades__main img { min-height: 380px; }
    .vertical-video { margin-top: 38px; padding-top: 32px; }
    .commercial-case__timeline figure > div { aspect-ratio: 1.35; }
    .facade-page-hero h1 { font-size: clamp(2.35rem, 11vw, 3.5rem); }
}

@media (max-width: 480px) {
    .container { width: min(calc(100% - 24px), var(--container)); }
    .hero-premium h1 { font-size: clamp(2.08rem, 10.2vw, 2.8rem) !important; }
    .hero-contact { padding: 14px; }
    .malaga-facades__pair { grid-template-columns: 1fr; }
    .malaga-facades__pair img { min-height: 300px; }
    .commercial-case__timeline { gap: 14px; }
    .commercial-case__timeline figcaption { padding: 17px; }
}

/* 3.3.2 — archivo de proyectos reales */
.projects-archive-real__heading { margin-bottom: 34px; }
.projects-archive-real__heading > p { max-width: 620px; }
.project-v3-card--curated .project-v3-card__media { display:block; text-decoration:none; }
.project-v3-card__video-badge { position:absolute; z-index:4; right:15px; bottom:15px; display:inline-flex; align-items:center; gap:6px; padding:8px 11px; border-radius:999px; color:#fff; background:rgba(20,31,36,.88); font-size:.72rem; font-weight:800; backdrop-filter:blur(8px); }
.projects-archive-managed { border-top:1px solid var(--line); }
@media (max-width: 650px) {
  .projects-archive-real__heading { margin-bottom: 24px; }
  .projects-archive-real__grid { gap:18px; }
  .project-v3-card--curated .project-v3-card__body { padding:22px 20px; }
  .project-v3-card--curated h3 { font-size:1.24rem; }
}

/* V3.3.3: the site already has a WhatsApp plugin. Avoid duplicate theme floater. */
.floating-whatsapp{display:none!important;}


/* 3.3.4 — Public copy and organic patio video */
.vertical-video{grid-template-columns:minmax(0,1fr) minmax(300px,.62fr)}
.vertical-video__media{position:relative;width:min(100%,420px);justify-self:end;overflow:hidden;border-radius:22px;background:var(--charcoal);box-shadow:var(--shadow-md);aspect-ratio:9/16}
.vertical-video__media video{width:100%;height:100%;max-height:none;object-fit:cover;border-radius:0;background:transparent;box-shadow:none;display:block}
.vertical-video__caption{position:absolute;left:18px;bottom:18px;padding:8px 12px;border:1px solid rgba(255,255,255,.26);border-radius:999px;color:#fff;background:rgba(20,31,36,.68);backdrop-filter:blur(10px);font-size:.75rem;font-weight:800}
.vertical-video__points{display:grid;gap:10px;margin-top:22px}
.vertical-video__points span{position:relative;padding-left:24px;color:var(--grey-dark);font-size:.9rem;font-weight:700}
.vertical-video__points span::before{position:absolute;left:0;top:.55em;width:8px;height:8px;content:"";border-radius:50%;background:var(--teal)}
.facade-page-vertical__grid{grid-template-columns:minmax(0,1fr) minmax(300px,.58fr)}
.facade-page-vertical__media{position:relative;width:min(100%,420px);justify-self:end;overflow:hidden;border-radius:22px;background:#101719;box-shadow:var(--shadow-md);aspect-ratio:9/16}
.facade-page-vertical__media video{width:100%;height:100%;max-height:none;object-fit:cover;display:block;border-radius:0;background:transparent;box-shadow:none}
.facade-page-vertical__media span{position:absolute;left:18px;bottom:18px;padding:8px 12px;border-radius:999px;color:#fff;background:rgba(20,31,36,.72);font-size:.75rem;font-weight:800}
@media(max-width:980px){.vertical-video,.facade-page-vertical__grid{grid-template-columns:1fr}.vertical-video__media,.facade-page-vertical__media{justify-self:center;width:min(100%,420px)}}
@media(max-width:650px){.vertical-video__media,.facade-page-vertical__media{width:min(100%,360px);border-radius:16px}.vertical-video__caption,.facade-page-vertical__media span{left:12px;bottom:12px}.vertical-video__points{margin-top:18px}}


/* V3.3.5 — Mobile navigation hardening */
@media (max-width: 640px) {
    /* On iPhone, keep the header itself pinned while the drawer is open. */
    body.menu-open .nav-shell,
    body.menu-open .site-header.is-scrolled .nav-shell {
        position: fixed !important;
        z-index: 1200;
        top: 0;
        right: 0;
        left: 0;
        width: 100%;
        margin: 0;
        background: #fff;
        box-shadow: 0 8px 28px rgba(20,31,36,.12);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    body.menu-open .nav-shell__inner {
        min-height: 76px;
        height: 76px;
    }

    /* Absolute to the fixed nav-shell: avoids iOS/backdrop-filter fixed-position bugs. */
    body.menu-open .primary-navigation,
    body.menu-open .site-header.is-scrolled .primary-navigation {
        position: absolute !important;
        z-index: 1199;
        top: 100% !important;
        right: 0;
        bottom: auto;
        left: 0;
        display: block;
        width: 100vw;
        height: calc(100dvh - 76px);
        min-height: calc(100vh - 76px);
        margin: 0;
        padding: 8px 24px calc(28px + env(safe-area-inset-bottom));
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        background: #fff;
    }

    body.menu-open .revalora-menu {
        display: block;
        width: 100%;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    body.menu-open .revalora-menu > li {
        margin: 0;
        padding: 0;
    }

    body.menu-open .revalora-menu a {
        display: flex;
        align-items: center;
        min-height: 68px;
        padding: 18px 12px;
        border-bottom: 1px solid var(--line);
        color: var(--charcoal);
        font-size: 1.08rem;
        font-weight: 760;
        line-height: 1.25;
        background: transparent;
    }

    body.menu-open .revalora-menu li:last-child > a {
        border-bottom: 0;
    }

    body.menu-open .mobile-contact-bar {
        display: none !important;
    }

    body.menu-open main,
    body.menu-open .site-footer {
        pointer-events: none;
    }

    .menu-toggle {
        position: relative;
        z-index: 1202;
        flex: 0 0 48px;
        width: 48px;
        height: 48px;
        border-radius: 13px;
    }
}


/* V3.4.0 — Mobile polish across the site */
@media (max-width: 980px) {
  .section { padding-block: 72px; }
  .section-heading--split { display: grid; gap: 14px; }
  .services-v3-grid, .projects-v3-grid, .testimonials-premium__grid, .outcomes-premium__grid, .process-v3__grid, .zones-v3__grid, .company-v3__grid, .maintenance-premium__grid, .lead-v3__grid, .faq-v3__grid, .solution-grid, .choice-grid { grid-template-columns: 1fr; }
  .company-v3__media, .lead-v3__form-card, .lead-v3__copy { max-width: none; }
  .commercial-case__cta, .final-v3__inner { grid-template-columns: 1fr; gap: 18px; }
}

@media (max-width: 760px) {
  .section { padding-block: 58px; }
  .section-heading h2, .section-heading--split h2, .malaga-facades__copy h2, .company-v3__copy h2, .lead-v3__copy h2, .faq-v3__intro h2, .final-v3__inner h2 {
    font-size: clamp(1.95rem, 7.8vw, 2.6rem) !important;
    line-height: 1.06;
    letter-spacing: -.035em;
  }
  .section-heading p, .section-heading--split p, .malaga-facades__lead, .company-v3__lead, .lead-v3__copy > p, .faq-v3__intro > p {
    font-size: .98rem;
    line-height: 1.6;
  }
  .hero-premium .hero-v3__layout { gap: 24px; padding-top: 28px; padding-bottom: 34px; }
  .hero-premium h1 { font-size: clamp(1.96rem, 9.2vw, 2.7rem) !important; line-height: 1.02; }
  .hero-premium .hero-v3__text { font-size: .95rem; line-height: 1.58; }
  .hero-v3__actions .button { min-height: 50px; font-size: .94rem; }
  .hero-v3__promises { gap: 8px; }
  .hero-contact { padding: 14px; border-radius: 16px; }
  .hero-contact__intro { font-size: .69rem; }
  .hero-contact__zone { grid-template-columns: 36px minmax(0,1fr) 16px; min-height: 62px; padding: 10px 6px; }
  .hero-contact__zone strong { font-size: 1rem; }
  .hero-contact__whatsapp { padding: 12px; }
  .trust-ribbon { margin-top: 0; }
  .trust-ribbon article, .trust-ribbon article:first-child, .trust-ribbon article:nth-child(2n) { padding: 18px 12px; }
  .service-v3-card__body, .project-v3-card__body, .testimonial-card, .solution-card, .zone-v3-card__content, .choice-card, .faq-v3__list details, .lead-v3__form-card { padding: 20px; }
  .project-v3-card__media { aspect-ratio: 4 / 3; }
  .company-v3__stamp { position: static; margin-top: 12px; width: 100%; max-width: none; }
  .company-v3__features { gap: 10px; }
  .malaga-facades__grid, .vertical-video, .commercial-case__cta { grid-template-columns: 1fr !important; gap: 22px; }
  .malaga-facades__visual { order: 2; }
  .malaga-facades__main img { min-height: 300px; }
  .malaga-facades__pair { grid-template-columns: 1fr; gap: 12px; }
  .malaga-facades__pair img { min-height: 240px; }
  .vertical-video__media, .facade-page-vertical__media { justify-self: stretch; width: 100%; max-width: 380px; margin-inline: auto; }
  .vertical-video__points { gap: 8px; }
  .commercial-case__timeline { grid-template-columns: 1fr; gap: 14px; }
  .commercial-case__timeline figure > div { aspect-ratio: 4/3; }
  .lead-v3__contact-list { gap: 10px; }
  .lead-v3__assurance { grid-template-columns: 1fr; gap: 8px; }
  .lead-wizard__header { flex-direction: column; align-items: flex-start; gap: 8px; }
  .form-row { grid-template-columns: 1fr; gap: 14px; }
  .file-drop { padding: 18px; }
  .faq-v3__list details summary { padding-right: 28px; }
  .faq-v3__list details p { font-size: .95rem; }
  .final-v3__actions { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .footer-columns { grid-template-columns: 1fr; gap: 20px; }
}

@media (max-width: 520px) {
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .container { width: min(calc(100% - 20px), var(--container)); }
  .section { padding-block: 48px; }
  .hero-premium .hero-v3__layout { padding-top: 22px; padding-bottom: 28px; }
  .hero-premium h1 { font-size: clamp(1.82rem, 9.1vw, 2.35rem) !important; }
  .hero-v3 .eyebrow { font-size: .66rem; }
  .hero-premium .hero-v3__text { font-size: .92rem; }
  .hero-v3__actions { gap: 9px; }
  .hero-v3__actions .button { min-height: 48px; padding-inline: 16px; }
  .hero-v3__promises { margin-top: 18px; font-size: .78rem; }
  .hero-contact__zone { min-height: 58px; }
  .hero-contact__zone small { font-size: .64rem; }
  .hero-contact__zone strong { font-size: .96rem; }
  .hero-contact__whatsapp strong { font-size: .87rem; }
  .hero-contact__whatsapp small { font-size: .66rem; }
  .trust-ribbon article, .trust-ribbon article:first-child, .trust-ribbon article:nth-child(2n) { grid-template-columns: 40px minmax(0,1fr); gap: 12px; }
  .service-v3-card__image, .project-v3-card__media { aspect-ratio: 1.18; }
  .process-v3__grid, .services-v3-grid, .projects-v3-grid, .testimonials-premium__grid, .outcomes-premium__grid { gap: 14px; }
  .lead-v3__form-card, .service-v3-card__body, .project-v3-card__body, .testimonial-card, .solution-card, .zone-v3-card__content, .choice-card, .faq-v3__list details { padding: 18px; }
  .mobile-contact-bar { min-height: 70px; grid-template-columns: 1fr 1.15fr 1fr; }
  .mobile-contact-bar a { font-size: .62rem; line-height: 1.15; }
  .mobile-contact-bar svg { width: 18px; height: 18px; }
  .vertical-video__media, .facade-page-vertical__media { max-width: 320px; border-radius: 16px; }
  .vertical-video__caption, .facade-page-vertical__media span { font-size: .69rem; }
  .commercial-case__timeline figcaption { padding: 16px; }
  .lead-wizard__actions { grid-template-columns: 1fr; gap: 10px; }
  .lead-wizard__back, .lead-wizard__next, .lead-wizard__submit { width: 100%; }
}

@media (max-width: 380px) {
  .menu-toggle { width: 44px; height: 44px; }
  .revalora-logo-link img, .custom-logo { max-width: 96px; max-height: 48px; }
  .hero-premium h1 { font-size: clamp(1.7rem, 8.8vw, 2.1rem) !important; }
  .section-heading h2, .section-heading--split h2, .malaga-facades__copy h2, .company-v3__copy h2, .lead-v3__copy h2, .faq-v3__intro h2, .final-v3__inner h2 { font-size: clamp(1.75rem, 7.5vw, 2.1rem) !important; }
  .hero-contact__zone { grid-template-columns: 34px minmax(0,1fr) 15px; gap: 8px; }
  .hero-contact__icon { width: 34px; height: 34px; }
  .mobile-contact-bar a { font-size: .58rem; }
}


/* V3.4.1 — Mobile-first hero: real image first, contact zones separated */
.mobile-zone-contact { display: none; }

@media (max-width: 760px) {
    /* The desktop hero remains untouched. Mobile gets a dedicated visual rhythm. */
    .hero-v3 {
        display: block;
        min-height: 0;
        background: var(--charcoal);
        overflow: visible;
    }
    .hero-v3__media {
        position: relative;
        inset: auto;
        width: 100%;
        height: clamp(360px, 52svh, 520px);
        background-image: url('../img/real/mobile-hero-patio.png') !important;
        background-position: 50% 48% !important;
        background-size: cover;
        transform: none;
    }
    .hero-v3__media::after {
        position: absolute;
        inset: 0;
        content: "";
        background: linear-gradient(180deg, rgba(20,31,36,.05) 42%, rgba(20,31,36,.62) 100%);
        pointer-events: none;
    }
    .hero-v3__shade { display: none; }
    .hero-premium .hero-v3__layout {
        display: block !important;
        width: min(calc(100% - 28px), var(--container));
        margin-inline: auto;
        padding: 28px 0 34px;
        background: transparent;
    }
    .hero-v3__copy { width: 100%; }
    .hero-v3 .eyebrow { margin-bottom: 10px; color: #87f2e4; }
    .hero-premium h1 {
        max-width: 100%;
        font-size: clamp(2rem, 9.2vw, 2.75rem) !important;
        line-height: 1.03;
        letter-spacing: -.04em;
        text-wrap: balance;
    }
    .hero-premium .hero-v3__text {
        max-width: 100%;
        margin-top: 16px;
        color: rgba(255,255,255,.84);
        font-size: .96rem;
        line-height: 1.58;
    }
    .hero-v3__actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 22px;
    }
    .hero-v3__actions .button {
        width: 100%;
        min-height: 50px;
        justify-content: center;
    }
    /* The benefits are repeated immediately below in the trust ribbon. Keep the hero clean. */
    .hero-v3__promises { display: none !important; }
    /* Desktop contact card is replaced by a dedicated section below the hero on mobile. */
    .hero-v3 .hero-contact { display: none !important; }

    .mobile-zone-contact {
        display: block;
        padding: 34px 0 38px;
        background: #f5f8f8;
        border-bottom: 1px solid var(--line);
    }
    .mobile-zone-contact__heading { margin-bottom: 16px; }
    .mobile-zone-contact__heading .eyebrow { margin-bottom: 6px; }
    .mobile-zone-contact__heading h2 {
        margin: 0;
        color: var(--charcoal);
        font-size: clamp(1.65rem, 7.2vw, 2.15rem);
        line-height: 1.08;
        letter-spacing: -.035em;
    }
    .mobile-zone-contact .hero-contact {
        display: block !important;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 10px 16px 16px;
        border: 1px solid rgba(20,31,36,.10);
        border-radius: 18px;
        color: var(--white);
        background: var(--charcoal);
        box-shadow: 0 14px 34px rgba(20,31,36,.12);
        backdrop-filter: none;
    }
    .mobile-zone-contact .hero-contact__zone {
        min-height: 64px;
        padding: 10px 4px;
    }
    .mobile-zone-contact .hero-contact__whatsapp {
        margin-top: 10px;
        padding: 13px;
    }
    .mobile-zone-contact .hero-contact__note { display: none; }

    /* Keep the next trust section concise; it now follows a contact card rather than competing with the hero. */
    .trust-ribbon article,
    .trust-ribbon article:first-child,
    .trust-ribbon article:nth-child(2n) {
        padding-block: 17px;
    }
}

@media (max-width: 430px) {
    .hero-v3__media {
        height: clamp(330px, 48svh, 440px);
        background-position: 54% 40% !important;
    }
    .hero-premium .hero-v3__layout {
        width: min(calc(100% - 24px), var(--container));
        padding-top: 24px;
        padding-bottom: 28px;
    }
    .hero-premium h1 { font-size: clamp(1.88rem, 8.9vw, 2.35rem) !important; }
    .hero-premium .hero-v3__text { font-size: .92rem; }
    .mobile-zone-contact { padding: 28px 0 32px; }
    .mobile-zone-contact .hero-contact { padding-inline: 13px; }
    .mobile-zone-contact .hero-contact__zone {
        grid-template-columns: 35px minmax(0,1fr) 16px;
        gap: 9px;
        min-height: 60px;
    }
    .mobile-zone-contact .hero-contact__icon { width: 35px; height: 35px; }
    .mobile-zone-contact .hero-contact__zone small { font-size: .65rem; }
    .mobile-zone-contact .hero-contact__zone strong { font-size: .98rem; }
}


/* V3.4.3 — Mobile hero overlay: copy integrated into the selected real photo */
@media (max-width: 760px) {
    .hero-v3 {
        position: relative;
        display: block;
        min-height: max(720px, calc(100svh - 76px));
        overflow: hidden;
        color: #fff;
        background: var(--charcoal);
    }

    .hero-v3__media {
        position: absolute !important;
        inset: 0 !important;
        width: 100%;
        height: 100% !important;
        background-image: url('../img/real/mobile-hero-patio.png') !important;
        background-size: cover !important;
        background-position: 52% 43% !important;
        transform: none !important;
    }

    .hero-v3__media::after {
        display: none !important;
    }

    .hero-v3__shade {
        position: absolute;
        z-index: 1;
        inset: 0;
        display: block !important;
        pointer-events: none;
        background:
            linear-gradient(180deg,
                rgba(11,22,27,.03) 0%,
                rgba(11,22,27,.08) 27%,
                rgba(11,22,27,.30) 43%,
                rgba(11,22,27,.73) 61%,
                rgba(11,22,27,.94) 78%,
                rgba(11,22,27,.98) 100%);
    }

    .hero-premium .hero-v3__layout {
        position: relative;
        z-index: 2;
        display: flex !important;
        flex-direction: column;
        justify-content: flex-end;
        width: min(calc(100% - 28px), var(--container));
        min-height: max(720px, calc(100svh - 76px));
        margin-inline: auto;
        padding: clamp(285px, 41svh, 390px) 0 30px !important;
        background: transparent;
    }

    .hero-v3__copy {
        width: 100%;
        max-width: 100%;
        margin: 0;
    }

    .hero-v3 .eyebrow {
        margin: 0 0 10px;
        color: #8cf6e8;
        font-size: .68rem;
        line-height: 1.35;
        letter-spacing: .18em;
        text-shadow: 0 2px 14px rgba(0,0,0,.25);
    }

    .hero-premium h1 {
        width: 100%;
        max-width: 100%;
        margin: 0;
        color: #fff;
        font-size: clamp(2.02rem, 9vw, 2.75rem) !important;
        line-height: 1.02;
        letter-spacing: -.044em;
        text-wrap: balance;
        text-shadow: 0 3px 20px rgba(0,0,0,.28);
    }

    .hero-premium .hero-v3__text {
        width: 100%;
        max-width: 100%;
        margin: 15px 0 0;
        color: rgba(255,255,255,.88);
        font-size: .94rem;
        line-height: 1.55;
        text-shadow: 0 2px 14px rgba(0,0,0,.22);
    }

    .hero-v3__actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 9px;
        margin-top: 20px;
    }

    .hero-v3__actions .button {
        width: 100%;
        min-height: 50px;
        justify-content: center;
        padding-inline: 16px;
        font-size: .94rem;
        box-shadow: none;
    }

    .hero-v3__actions .button--glass {
        color: #fff;
        border-color: rgba(255,255,255,.52);
        background: rgba(13,26,31,.28);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }

    .hero-v3__promises { display: none !important; }
    .hero-v3 .hero-contact { display: none !important; }

    /* Contact options remain as their own clean section below the visual hero. */
    .mobile-zone-contact {
        display: block;
        position: relative;
        z-index: 3;
        padding: 30px 0 34px;
        background: #f5f8f8;
        border-bottom: 1px solid var(--line);
    }
}

@media (min-width: 521px) and (max-width: 760px) {
    .hero-v3__actions {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 430px) {
    .hero-v3,
    .hero-premium .hero-v3__layout {
        min-height: max(690px, calc(100svh - 76px));
    }

    .hero-v3__media {
        background-position: 53% 41% !important;
    }

    .hero-premium .hero-v3__layout {
        width: min(calc(100% - 24px), var(--container));
        padding: clamp(255px, 38svh, 335px) 0 24px !important;
    }

    .hero-v3 .eyebrow { font-size: .64rem; }

    .hero-premium h1 {
        font-size: clamp(1.88rem, 8.8vw, 2.35rem) !important;
        line-height: 1.03;
    }

    .hero-premium .hero-v3__text {
        margin-top: 13px;
        font-size: .90rem;
        line-height: 1.52;
    }

    .hero-v3__actions {
        margin-top: 18px;
        gap: 8px;
    }

    .hero-v3__actions .button {
        min-height: 48px;
        font-size: .91rem;
    }

    .mobile-zone-contact { padding: 26px 0 30px; }
}

@media (max-width: 380px) {
    .hero-v3,
    .hero-premium .hero-v3__layout {
        min-height: max(660px, calc(100svh - 72px));
    }

    .hero-premium .hero-v3__layout {
        padding-top: clamp(235px, 35svh, 300px) !important;
    }

    .hero-premium h1 {
        font-size: clamp(1.72rem, 8.5vw, 2.06rem) !important;
    }
}

/* V3.5 — SEO Málaga internal navigation */
.zone-v3-card__seo{margin-top:16px;color:#b9fff5}.zone-v3-card__seo:hover{color:#fff}.local-seo-copy__links{display:grid;gap:10px;margin-top:24px}.project-real-video{margin-top:36px}.project-real-video video{width:min(100%,900px);max-height:640px;display:block;margin:auto;border-radius:18px;background:#101719;box-shadow:var(--shadow-md)}.project-related-services{margin-top:42px;padding-top:30px;border-top:1px solid var(--line)}.project-related-services>div{display:flex;gap:22px;flex-wrap:wrap}.malaga-facades__actions{flex-wrap:wrap}.zone-page-services .text-link{margin-top:10px}
@media(max-width:650px){.project-related-services>div{display:grid;gap:12px}.project-real-video{margin-top:26px}.project-real-video video{border-radius:14px}.malaga-facades__actions{display:grid;gap:12px}.malaga-facades__actions .button,.malaga-facades__actions .text-link{width:100%;justify-content:center;text-align:center}}

/* V3.5.2 — Pintura Málaga: landings alineadas con la web */
.paint-page-hero{position:relative;min-height:650px;display:flex;align-items:center;overflow:hidden;color:#fff;background:#17252b}.paint-page-hero::before,.paint-page-hero::after{position:absolute;inset:0;content:""}.paint-page-hero::before{background-image:var(--paint-hero);background-size:cover;background-position:center 36%}.paint-page--interior .paint-page-hero::before{background-position:center 34%}.paint-page-hero::after{background:linear-gradient(90deg,rgba(20,31,36,.94) 0%,rgba(20,31,36,.70) 48%,rgba(20,31,36,.26) 100%)}.paint-page-hero__inner{position:relative;z-index:2;padding-block:96px}.paint-page-hero h1{max-width:900px;margin:0;font-size:clamp(3rem,6vw,5.8rem);line-height:.98;letter-spacing:-.055em}.paint-page-hero__lead{max-width:720px;margin:24px 0 0;color:rgba(255,255,255,.84);font-size:1.17rem;line-height:1.65}.paint-page-hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.paint-page-hero__facts{display:flex;gap:24px;flex-wrap:wrap;margin-top:30px;color:#e6fbf7;font-size:.83rem;font-weight:800}.paint-page-hero__facts span{display:inline-flex;align-items:center;gap:8px}.paint-page-hero__facts svg{width:19px;height:19px;color:#73e9d7}
.paint-intro__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:72px;align-items:start}.paint-intro h2{margin:0;color:var(--charcoal);font-size:clamp(2.3rem,4vw,3.8rem);line-height:1.06;letter-spacing:-.045em}.paint-intro p{color:var(--muted);line-height:1.75}.paint-contact-card{display:grid;gap:10px;padding:28px;border-radius:20px;background:var(--charcoal);color:#fff;box-shadow:var(--shadow-md)}.paint-contact-card__label{color:#87eadc;font-size:.73rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.paint-contact-card strong{font-size:1.35rem;line-height:1.2}.paint-contact-card p{margin:0 0 6px;color:rgba(255,255,255,.7)}.paint-contact-card a{color:#a5f7eb;font-size:1.1rem;font-weight:900;text-decoration:none}.paint-contact-card__wa{margin-top:8px;padding-top:14px;border-top:1px solid rgba(255,255,255,.13)}
.paint-services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}.paint-service-card{padding:30px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 14px 32px rgba(20,31,36,.06)}.paint-service-card>span{display:grid;width:48px;height:48px;place-items:center;margin-bottom:18px;border-radius:14px;color:var(--teal-dark);background:rgba(0,166,143,.1)}.paint-service-card svg{width:24px;height:24px}.paint-service-card h3{margin:0 0 10px;font-size:1.27rem}.paint-service-card p{margin:0;color:var(--muted);line-height:1.65}
.paint-process__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:34px}.paint-process__grid article{padding:25px;border-top:2px solid var(--teal);background:#fff}.paint-process__grid article>span,.paint-difference__grid article>span{display:block;margin-bottom:18px;color:var(--teal-dark);font-size:.73rem;font-weight:900;letter-spacing:.13em}.paint-process__grid h3{margin:0 0 8px}.paint-process__grid p{margin:0;color:var(--muted);line-height:1.6}
.paint-real__grid,.paint-height__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:55px;align-items:center}.paint-real__media,.paint-height__media{overflow:hidden;border-radius:22px;box-shadow:var(--shadow-lg)}.paint-real__media img,.paint-height__media img{width:100%;height:600px;object-fit:cover}.paint-real__copy h2,.paint-height__copy h2{margin:0;color:#fff;font-size:clamp(2.3rem,4vw,4rem);line-height:1.04;letter-spacing:-.045em}.paint-real__copy p,.paint-height__copy p{color:rgba(255,255,255,.72);line-height:1.7}.paint-real__copy ul{display:grid;gap:10px;margin:22px 0 28px;padding:0;list-style:none;color:#e6f5f2}.paint-real__copy li::before{content:"✓";margin-right:10px;color:#72e9d6}.paint-height__links{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:26px}
.paint-related__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}.paint-related__grid a{position:relative;display:grid;gap:9px;min-height:190px;padding:26px 52px 26px 26px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--charcoal);text-decoration:none;transition:transform .2s,box-shadow .2s}.paint-related__grid a:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.paint-related__grid a>span{color:var(--teal-dark);font-size:.73rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.paint-related__grid strong{font-size:1.15rem;line-height:1.4}.paint-related__grid svg{position:absolute;right:22px;bottom:24px;width:22px;color:var(--teal-dark)}
.paint-faq__grid{display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);gap:70px}.paint-faq h2{margin:0;color:var(--charcoal);font-size:clamp(2.25rem,4vw,3.6rem);line-height:1.05;letter-spacing:-.045em}.paint-faq__list{display:grid;gap:10px}.paint-faq__list details{padding:0 22px;border:1px solid var(--line);border-radius:15px;background:#fff}.paint-faq__list summary{padding:20px 34px 20px 0;color:var(--charcoal);font-weight:850;cursor:pointer}.paint-faq__list p{padding:0 0 20px;margin:0;color:var(--muted);line-height:1.65}
.paint-before-after .facade-real-project__compare{margin-top:32px}.paint-difference__grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px}.paint-difference__grid article{padding:30px;border:1px solid var(--line);border-radius:20px;background:#fff}.paint-difference__grid h3{margin:0 0 10px;font-size:1.4rem}.paint-difference__grid p{color:var(--muted);line-height:1.7}
@media(max-width:980px){.paint-intro__grid,.paint-real__grid,.paint-height__grid,.paint-faq__grid{grid-template-columns:1fr}.paint-services__grid{grid-template-columns:1fr 1fr}.paint-process__grid{grid-template-columns:1fr 1fr}.paint-related__grid{grid-template-columns:1fr}.paint-real__media img,.paint-height__media img{height:auto;max-height:560px}.paint-contact-card{max-width:560px}}
@media(max-width:650px){.paint-page-hero{min-height:560px;align-items:flex-end}.paint-page-hero::before{background-position:center center}.paint-page--interior .paint-page-hero::before{background-position:54% center}.paint-page-hero::after{background:linear-gradient(180deg,rgba(20,31,36,.18) 0%,rgba(20,31,36,.55) 42%,rgba(20,31,36,.94) 100%)}.paint-page-hero__inner{padding-block:52px 46px}.paint-page-hero h1{font-size:clamp(2.25rem,10vw,3.25rem);line-height:1.01}.paint-page-hero__lead{margin-top:16px;font-size:.98rem;line-height:1.55}.paint-page-hero__actions{display:grid;grid-template-columns:1fr;margin-top:22px}.paint-page-hero__actions .button{width:100%;justify-content:center}.paint-page-hero__facts{display:grid;grid-template-columns:1fr;gap:8px;margin-top:22px}.paint-intro__grid{gap:28px}.paint-intro h2,.paint-faq h2{font-size:clamp(2rem,9vw,2.65rem)}.paint-services__grid,.paint-process__grid,.paint-difference__grid{grid-template-columns:1fr}.paint-service-card,.paint-difference__grid article{padding:22px}.paint-process__grid article{padding:22px}.paint-real__grid,.paint-height__grid{gap:28px}.paint-real__copy h2,.paint-height__copy h2{font-size:clamp(2rem,9vw,2.8rem)}.paint-related__grid a{min-height:150px}.paint-contact-card{padding:22px}.paint-faq__grid{gap:28px}}
