/* =========================================================
   Base heredada de modern.css (limpia, sin duplicados)
   Va ANTES del diseño v2 para respetar el orden de siempre
   ========================================================= */
body{ background:#f7f9fc; overflow-x:hidden; -moz-osx-font-smoothing:grayscale; }
h1,h2,h3{ color:#004aad; font-weight:700; }
h1{ font-size:clamp(26px,5vw,40px); }
h2{ font-size:clamp(22px,4.5vw,32px); }
h3{ font-size:clamp(20px,4vw,26px); }
img,iframe,video{ max-width:100%; height:auto; display:block; }
.navbar-brand{ font-size:1.25rem; }

/* WhatsApp flotante */
.whatsapp-float{ position:fixed; bottom:20px; right:20px; background:#25D366; border-radius:50%; padding:10px; z-index:1000;
  display:flex; align-items:center; justify-content:center; text-decoration:none; transition:transform .25s ease, box-shadow .25s ease; }
.whatsapp-float:hover{ transform:scale(1.08); box-shadow:0 0 15px rgba(0,0,0,.3); }
.whatsapp-tooltip{ position:absolute; right:70px; background:#004aad; color:#fff; padding:8px 12px; border-radius:20px; font-size:.9rem;
  white-space:nowrap; opacity:0; pointer-events:none; transform:translateX(10px); transition:opacity .3s ease, transform .3s ease; }
.whatsapp-float:hover .whatsapp-tooltip{ opacity:1; transform:translateX(0); }

/* Botón llamar flotante */
.call-float{ position:fixed; bottom:20px; left:20px; background:#004aad; color:#fff; border-radius:999px; padding:10px 14px; z-index:1000;
  display:inline-flex; align-items:center; gap:8px; text-decoration:none; transition:transform .25s ease, box-shadow .25s ease; box-shadow:0 8px 20px rgba(0,0,0,.18); }
.call-float:hover{ transform:translateY(-2px); box-shadow:0 12px 26px rgba(0,0,0,.24); }
.call-float__icon{ font-size:18px; line-height:1; }
.call-float__text{ font-weight:600; font-size:14px; }
@media (max-width:480px){ .call-float__text{ display:none; } .call-float{ border-radius:50%; padding:12px; } }
@media (max-width:768px){ .whatsapp-tooltip{ display:none; } }

/* Barra de cookies antigua */
.cookie-bar{ position:fixed; bottom:0; left:0; right:0; background:rgba(33,37,41,.95); color:#fff; padding:12px 16px; display:flex;
  justify-content:space-between; align-items:center; gap:12px; z-index:2000; box-shadow:0 -2px 10px rgba(0,0,0,.2); }

/* Imágenes y vídeos del contenido */
.contenido img,.page-content img,.post-content img,.article-content img,.entry-content img,figure.image img,.wp-block-image img{
  max-width:100%; height:auto; display:block; margin:12px auto; border-radius:10px; }
.contenido iframe,.page-content iframe,.post-content iframe,.article-content iframe,.entry-content iframe{
  width:100%; aspect-ratio:16/9; height:auto; display:block; border:none; margin:16px auto; border-radius:10px; }
.contenido,.page-content,.post-content,.article-content,.entry-content{ overflow-x:hidden; }

/* Editor (figure) */
figure.image{ margin:1rem auto; display:table; max-width:100%; }
figure.image.image-style-align-left{ float:left; margin:10px 20px 10px 0; }
figure.image.image-style-align-right{ float:right; margin:10px 0 10px 20px; }
figure.image.image-style-align-center{ margin-left:auto; margin-right:auto; float:none; text-align:center; }
img[style*="float:left"]{ float:left; margin:10px 20px 10px 0; }
img[style*="float:right"]{ float:right; margin:10px 0 10px 20px; }

/* Galería con lightbox */
h1.text-primary{ margin-bottom:2.5rem; }
.glightbox img{ display:block; width:100%; height:230px; object-fit:cover; border-radius:12px; transition:transform .3s ease, box-shadow .3s ease; }
.glightbox img:hover{ transform:scale(1.03); box-shadow:0 6px 16px rgba(0,0,0,.2); }

/* Móvil */
@media (max-width:768px){
  h1{ font-size:26px; } h2{ font-size:22px; } h3{ font-size:20px; }
  .btn{ width:100%; font-size:16px; }
  figure.image.image-style-align-left,figure.image.image-style-align-right,
  img[style*="float:left"],img[style*="float:right"]{ float:none !important; margin:12px auto !important; }
}
@media (max-width:576px){ .glightbox img{ height:160px; } }

/* FAQ de proyectos (arreglo antiguo) */
.proyecto-faq,.proyecto-faq *{ opacity:1 !important; filter:none !important; backdrop-filter:none !important; transform:none !important; }

/* Antes / después antiguo */
.rb-before-after{position:relative;aspect-ratio:16/9;overflow:hidden;background:#111827}
.rb-before-after__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rb-before-after__after{position:absolute;inset:0;width:55%;overflow:hidden}
.rb-before-after__range{position:absolute;left:12px;right:12px;bottom:12px;width:calc(100% - 24px);z-index:5}
.rb-before-after__label{position:absolute;top:12px;z-index:6;background:rgba(17,24,39,.75);color:#fff;padding:6px 10px;border-radius:999px;font-weight:700;font-size:.9rem;backdrop-filter:saturate(140%) blur(6px)}
.rb-before-after__label--before{left:12px}
.rb-before-after__label--after{right:12px}
.rb-before-after__divider{position:absolute;top:0;bottom:0;width:3px;background:#fff;opacity:.85;z-index:4;box-shadow:0 0 0 1px rgba(0,0,0,.25)}

/* =========================================================
   Reformas Bellido — Diseño premium v2
   ========================================================= */
:root{
  --rb-navy:#0f2742;
  --rb-navy-2:#1b4470;
  --rb-navy-3:#0a1c30;
  --rb-accent:#d9661f;
  --rb-accent-2:#bf5516;
  --rb-accent-soft:rgba(217,102,31,.10);
  --rb-ink:#13202f;
  --rb-muted:#5a6675;
  --rb-bg:#f6f3ee;
  --rb-line:rgba(15,39,66,.10);
  --rb-radius:18px;
  --rb-radius-lg:26px;
  --rb-shadow:0 10px 30px rgba(15,39,66,.08);
  --rb-shadow-lg:0 24px 60px rgba(15,39,66,.16);

  --bs-primary:#0f2742;
  --bs-primary-rgb:15,39,66;
  --bs-body-color:#13202f;
  --bs-body-font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --bs-link-color:#1b4470;
  --bs-link-color-rgb:27,68,112;
  --bs-link-hover-color:#d9661f;
  --bs-link-hover-color-rgb:217,102,31;
  --bs-border-radius:12px;
}

body{ font-family:var(--bs-body-font-family); color:var(--rb-ink); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{ letter-spacing:-.02em; }
::selection{ background:var(--rb-accent); color:#fff; }
img{ max-width:100%; }
.text-balance{ text-wrap:balance; }

/* ---------- Accesibilidad ---------- */
.skip-link{ position:absolute; left:-9999px; top:0; z-index:2000; }
.skip-link:focus{ left:1rem; top:1rem; background:#fff; padding:.6rem 1rem; border-radius:10px; box-shadow:var(--rb-shadow); }

/* ---------- Botones ---------- */
.btn{ --bs-btn-font-weight:700; --bs-btn-border-radius:12px; --bs-btn-padding-x:1.15rem; --bs-btn-padding-y:.6rem;
  transition:transform .15s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease; }
.btn-lg{ --bs-btn-padding-x:1.6rem; --bs-btn-padding-y:.9rem; --bs-btn-font-size:1.05rem; --bs-btn-border-radius:14px; }
.btn:hover{ transform:translateY(-1px); }
.btn-primary{
  --bs-btn-color:#fff; --bs-btn-bg:var(--rb-accent); --bs-btn-border-color:var(--rb-accent);
  --bs-btn-hover-color:#fff; --bs-btn-hover-bg:var(--rb-accent-2); --bs-btn-hover-border-color:var(--rb-accent-2);
  --bs-btn-active-color:#fff; --bs-btn-active-bg:var(--rb-accent-2); --bs-btn-active-border-color:var(--rb-accent-2);
  --bs-btn-disabled-bg:var(--rb-accent); --bs-btn-disabled-border-color:var(--rb-accent);
  --bs-btn-focus-shadow-rgb:217,102,31;
  box-shadow:0 8px 20px rgba(217,102,31,.28);
}
.btn-outline-primary{
  --bs-btn-color:var(--rb-navy); --bs-btn-border-color:rgba(15,39,66,.25);
  --bs-btn-hover-color:#fff; --bs-btn-hover-bg:var(--rb-navy); --bs-btn-hover-border-color:var(--rb-navy);
  --bs-btn-active-color:#fff; --bs-btn-active-bg:var(--rb-navy); --bs-btn-active-border-color:var(--rb-navy);
}
.btn-wa{
  --bs-btn-color:#fff; --bs-btn-bg:#128c4a; --bs-btn-border-color:#128c4a;
  --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#0e7a40; --bs-btn-hover-border-color:#0e7a40;
  --bs-btn-active-color:#fff; --bs-btn-active-bg:#0e7a40; --bs-btn-active-border-color:#0e7a40;
}
.btn-glass{
  --bs-btn-color:#fff; --bs-btn-bg:rgba(255,255,255,.08); --bs-btn-border-color:rgba(255,255,255,.35);
  --bs-btn-hover-color:var(--rb-navy); --bs-btn-hover-bg:#fff; --bs-btn-hover-border-color:#fff;
  --bs-btn-active-color:var(--rb-navy); --bs-btn-active-bg:#fff; --bs-btn-active-border-color:#fff;
}

/* ---------- Barra superior ---------- */
.rb-topbar{ background:var(--rb-navy-3); color:rgba(255,255,255,.75); font-size:.85rem; padding:.45rem 0; }
.rb-topbar a{ color:#fff; text-decoration:none; font-weight:700; }
.rb-topbar i{ color:var(--rb-accent); margin-right:.35rem; }

/* ---------- Menú ---------- */
.rb-nav{ background:rgba(255,255,255,.94); backdrop-filter:saturate(180%) blur(12px); -webkit-backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--rb-line); transition:box-shadow .2s ease; z-index:1030; }
.rb-nav.is-scrolled{ box-shadow:0 8px 24px rgba(15,39,66,.08); }
.rb-nav .navbar{ padding:.8rem 0; }
.rb-brand{ display:flex; align-items:center; gap:.65rem; text-decoration:none; }
.rb-brand__mark{ width:44px; height:44px; border-radius:12px; flex:none;
  background:linear-gradient(135deg,var(--rb-navy),var(--rb-navy-2)); color:#fff; font-weight:800; font-size:1.05rem;
  display:inline-flex; align-items:center; justify-content:center; letter-spacing:-.04em; box-shadow:inset 0 -4px 0 var(--rb-accent); }
.rb-brand__text{ font-size:1.15rem; line-height:1; color:var(--rb-navy); font-weight:600; }
.rb-brand__text strong{ font-weight:800; }
.rb-brand__text small{ display:block; font-size:.68rem; font-weight:700; color:var(--rb-muted); letter-spacing:.08em; text-transform:uppercase; margin-top:.3rem; }
.rb-nav .nav-link{ font-weight:600; color:var(--rb-ink); padding:.5rem .85rem !important; border-radius:10px; }
.rb-nav .nav-link:hover, .rb-nav .nav-link.active, .rb-nav .show > .nav-link{ color:var(--rb-accent); }
.rb-nav .dropdown-menu{ border:1px solid var(--rb-line); border-radius:16px; box-shadow:var(--rb-shadow-lg); padding:.6rem; margin-top:.5rem; }
.rb-nav .dropdown-item{ border-radius:10px; padding:.55rem .8rem; font-weight:500; color:var(--rb-ink); }
.rb-nav .dropdown-item:hover, .rb-nav .dropdown-item:focus{ background:var(--rb-accent-soft); color:var(--rb-navy); }
.rb-nav .dropdown-item i{ color:var(--rb-accent); }
.rb-nav .dropdown-header{ font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; font-weight:800; color:var(--rb-muted); }
@media (min-width:992px){ .rb-mega{ min-width:460px; } }
.rb-nav-tel{ display:flex; align-items:center; gap:.55rem; text-decoration:none; color:var(--rb-navy); font-weight:800; line-height:1.1; }
.rb-nav-tel small{ display:block; font-size:.7rem; font-weight:600; color:var(--rb-muted); }
.rb-nav-tel__icon{ width:40px; height:40px; border-radius:12px; background:var(--rb-accent-soft); color:var(--rb-accent);
  display:inline-flex; align-items:center; justify-content:center; }

/* ---------- Secciones ---------- */
.rb-section{ padding:clamp(3.5rem,7vw,6rem) 0; }
.rb-section--alt{ background:var(--rb-bg); }
.rb-section--tight{ padding:clamp(2rem,4vw,3rem) 0; }
.rb-head{ max-width:740px; margin:0 auto 2.75rem; text-align:center; }
.rb-head--left{ margin-left:0; text-align:left; }
.rb-kicker{ display:inline-block; font-size:.78rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--rb-accent); margin-bottom:.75rem; }
.rb-h2{ font-size:clamp(1.75rem,3.2vw,2.6rem); font-weight:800; line-height:1.15; margin-bottom:.75rem; color:var(--rb-navy); }
.rb-sub{ color:var(--rb-muted); font-size:1.08rem; margin:0; }

/* ---------- Hero ---------- */
.rb-hero{ position:relative; overflow:hidden; color:#fff;
  background:
    radial-gradient(900px 500px at 85% 10%, rgba(217,102,31,.24), transparent 60%),
    radial-gradient(700px 420px at 0% 100%, rgba(27,68,112,.85), transparent 60%),
    linear-gradient(160deg,var(--rb-navy-3),var(--rb-navy) 55%,var(--rb-navy-2));
  padding:clamp(3rem,7vw,5.5rem) 0 clamp(5rem,9vw,7.5rem); }
.rb-hero::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:linear-gradient(to bottom,#000,transparent 85%); mask-image:linear-gradient(to bottom,#000,transparent 85%); }
.rb-hero > .container{ position:relative; }
.rb-hero h1{ font-size:clamp(2.1rem,4.6vw,3.6rem); font-weight:800; line-height:1.07; letter-spacing:-.035em; margin-bottom:1.25rem; color:#fff; }
.rb-hero__lead{ font-size:clamp(1.05rem,1.6vw,1.22rem); color:rgba(255,255,255,.8); max-width:580px; margin-bottom:2rem; }
.rb-hero--page{ padding:clamp(2.25rem,5vw,4rem) 0 clamp(3rem,6vw,4.5rem); }
.rb-hero--page h1{ font-size:clamp(2rem,4vw,3rem); }
.rb-hero .breadcrumb{ --bs-breadcrumb-divider-color:rgba(255,255,255,.4); --bs-breadcrumb-item-active-color:rgba(255,255,255,.7); font-size:.88rem; margin-bottom:1.5rem; }
.rb-hero .breadcrumb a{ color:#fff; text-decoration:none; }
.rb-pill{ display:inline-flex; align-items:center; gap:.55rem; padding:.4rem .95rem .4rem .45rem; border-radius:50rem;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); font-size:.88rem; font-weight:600; color:#fff; margin-bottom:1.5rem; }
.rb-pill__dot{ width:28px; height:28px; border-radius:50%; background:var(--rb-accent); display:inline-flex; align-items:center; justify-content:center; font-size:.85rem; }
.rb-checks{ list-style:none; padding:0; margin:1.75rem 0 0; display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; color:rgba(255,255,255,.88); font-size:.95rem; font-weight:500; }
.rb-checks i{ color:#5fd38d; margin-right:.4rem; }
.rb-checks--dark{ color:var(--rb-muted); }
.rb-checks--dark i{ color:#1a9a55; }
.rb-rating{ display:inline-flex; align-items:center; gap:.6rem; margin-top:1.6rem; color:#fff; text-decoration:none; font-weight:600; font-size:.95rem; }
.rb-rating:hover{ color:#fff; text-decoration:underline; }
.rb-stars{ color:#ffc24b; letter-spacing:.08em; }
.rb-hero__media{ position:relative; }
.rb-hero__img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--rb-radius-lg);
  box-shadow:0 30px 80px rgba(0,0,0,.35); border:6px solid rgba(255,255,255,.08); }
.rb-hero__placeholder{ aspect-ratio:4/3; border-radius:var(--rb-radius-lg); background:linear-gradient(135deg,rgba(255,255,255,.1),rgba(255,255,255,.02));
  border:1px dashed rgba(255,255,255,.25); display:flex; align-items:center; justify-content:center; font-size:4rem; color:rgba(255,255,255,.35); }
.rb-float{ position:absolute; display:flex; align-items:center; gap:.75rem; background:#fff; color:var(--rb-ink); border-radius:16px;
  padding:.85rem 1.1rem; box-shadow:var(--rb-shadow-lg); font-size:.86rem; line-height:1.3; max-width:260px; }
.rb-float strong{ display:block; font-size:.98rem; color:var(--rb-navy); }
.rb-float__icon{ width:42px; height:42px; border-radius:12px; background:var(--rb-accent-soft); color:var(--rb-accent);
  display:inline-flex; align-items:center; justify-content:center; font-size:1.25rem; flex:none; }
.rb-float--a{ left:-1.25rem; bottom:2rem; }
.rb-float--b{ right:-1rem; top:1.5rem; }
@media (max-width:991.98px){ .rb-float--a{ left:.75rem; bottom:-1.25rem; } .rb-float--b{ display:none; } }
.rb-glass{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:var(--rb-radius-lg); padding:1.75rem; }
.rb-glass h2{ color:#fff; font-size:1.15rem; font-weight:800; margin-bottom:1rem; }
.rb-glass ul{ list-style:none; padding:0; margin:0; }
.rb-glass li{ display:flex; gap:.75rem; align-items:flex-start; padding:.6rem 0; color:rgba(255,255,255,.85); border-top:1px solid rgba(255,255,255,.08); }
.rb-glass li:first-child{ border-top:0; }
.rb-glass li i{ color:#ffb27a; font-size:1.1rem; }

/* ---------- Cifras ---------- */
.rb-stats{ position:relative; z-index:2; margin-top:-3.25rem; }
.rb-stats__inner{ background:#fff; border-radius:var(--rb-radius-lg); box-shadow:var(--rb-shadow-lg); display:grid; grid-template-columns:repeat(4,1fr); }
.rb-stat{ padding:1.6rem 1.25rem; text-align:center; }
.rb-stat + .rb-stat{ border-left:1px solid var(--rb-line); }
.rb-stat strong{ display:block; font-size:clamp(1.6rem,2.6vw,2.2rem); font-weight:800; color:var(--rb-navy); line-height:1; letter-spacing:-.03em; }
.rb-stat span{ display:block; margin-top:.45rem; font-size:.88rem; color:var(--rb-muted); font-weight:500; }
@media (max-width:767.98px){
  .rb-stats__inner{ grid-template-columns:repeat(2,1fr); }
  .rb-stat:nth-child(3){ border-left:0; }
  .rb-stat:nth-child(n+3){ border-top:1px solid var(--rb-line); }
}

/* ---------- Tarjetas ---------- */
.rb-card{ background:#fff; border:1px solid var(--rb-line); border-radius:var(--rb-radius); padding:1.75rem; height:100%;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
a.rb-card{ display:flex; flex-direction:column; color:inherit; text-decoration:none; }
a.rb-card:hover, .rb-card--hover:hover{ transform:translateY(-6px); box-shadow:var(--rb-shadow-lg); border-color:transparent; }
.rb-card h3{ font-size:1.12rem; font-weight:700; color:var(--rb-navy); margin-bottom:.5rem; }
.rb-card p{ color:var(--rb-muted); margin-bottom:0; }
.rb-icon{ width:54px; height:54px; border-radius:16px; display:inline-flex; align-items:center; justify-content:center;
  font-size:1.5rem; background:var(--rb-accent-soft); color:var(--rb-accent); margin-bottom:1.1rem; flex:none; }
.rb-card__link{ margin-top:auto; padding-top:1.1rem; font-weight:700; color:var(--rb-accent); display:inline-flex; align-items:center; gap:.4rem; }
.rb-card__link i{ transition:transform .2s ease; }
a.rb-card:hover .rb-card__link i{ transform:translateX(4px); }
.rb-card--feature{ background:linear-gradient(160deg,var(--rb-navy),var(--rb-navy-2)); color:#fff; border:0; display:flex; flex-direction:column; }
.rb-card--feature h3{ color:#fff; }
.rb-card--feature p{ color:rgba(255,255,255,.75); }

/* ---------- Proceso ---------- */
.rb-step{ position:relative; }
.rb-step__num{ width:48px; height:48px; border-radius:50%; background:var(--rb-navy); color:#fff; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center; margin-bottom:1rem; box-shadow:0 0 0 6px rgba(15,39,66,.08); position:relative; z-index:1; }
.rb-step h3{ font-size:1.1rem; font-weight:700; color:var(--rb-navy); }
.rb-step p{ color:var(--rb-muted); margin:0; }
@media (min-width:992px){
  .rb-step::after{ content:""; position:absolute; top:24px; left:62px; right:-12px; height:2px;
    background:repeating-linear-gradient(90deg,rgba(15,39,66,.18) 0 8px,transparent 8px 14px); }
  .rb-steps > div:last-child .rb-step::after{ display:none; }
}

/* ---------- Galería ---------- */
.rb-gallery__item{ position:relative; display:block; border-radius:var(--rb-radius); overflow:hidden; aspect-ratio:4/3; background:#e9e5de; }
.rb-gallery__item img{ width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .5s ease; }
.rb-gallery__item:hover img{ transform:scale(1.06); }
.rb-gallery__cap{ position:absolute; left:0; right:0; bottom:0; padding:2.5rem 1rem .9rem; color:#fff; font-weight:600; font-size:.92rem;
  background:linear-gradient(to top,rgba(10,28,48,.85),transparent); opacity:0; transform:translateY(8px); transition:opacity .3s ease, transform .3s ease; }
.rb-gallery__item:hover .rb-gallery__cap, .rb-gallery__item:focus .rb-gallery__cap{ opacity:1; transform:none; }
@media (hover:none){ .rb-gallery__cap{ opacity:1; transform:none; } }
.hover-zoom{ overflow:hidden; border-radius:var(--rb-radius); }
.hover-zoom img{ transition:transform .4s ease; }
.hover-zoom:hover img{ transform:scale(1.06); }

/* ---------- Antes / Después ---------- */
.rb-ba{ position:relative; overflow:hidden; border-radius:var(--rb-radius-lg); --pos:50%; user-select:none; box-shadow:var(--rb-shadow-lg); }
.rb-ba img{ display:block; width:100%; height:auto; min-height:280px; max-height:560px; object-fit:cover; }
.rb-ba__after{ position:absolute; inset:0; height:100%; clip-path:inset(0 0 0 var(--pos)); }
.rb-ba__line{ position:absolute; top:0; bottom:0; left:var(--pos); width:3px; background:#fff; transform:translateX(-50%);
  pointer-events:none; box-shadow:0 0 10px rgba(0,0,0,.3); }
.rb-ba__line::after{ content:"⟷"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:46px; height:46px;
  border-radius:50%; background:#fff; color:var(--rb-navy); display:flex; align-items:center; justify-content:center; font-weight:800; box-shadow:0 4px 14px rgba(0,0,0,.25); }
.rb-ba__range{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:col-resize; margin:0; }
.rb-ba__label{ position:absolute; top:1rem; background:rgba(10,28,48,.7); color:#fff; padding:.3rem .85rem; border-radius:50rem; font-size:.85rem; font-weight:600; pointer-events:none; }
.rb-ba__label--before{ left:1rem; }
.rb-ba__label--after{ right:1rem; }

/* ---------- Opiniones ---------- */
.rb-quote{ display:flex; flex-direction:column; margin:0; }
.rb-quote blockquote{ font-size:1.02rem; color:var(--rb-ink); margin:0 0 1.25rem; }
.rb-quote figcaption{ margin-top:auto; display:flex; align-items:center; gap:.75rem; font-size:.9rem; color:var(--rb-muted); }
.rb-quote figcaption strong{ display:block; color:var(--rb-navy); }
.rb-avatar{ width:42px; height:42px; border-radius:50%; background:var(--rb-navy); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:800; flex:none; }

/* ---------- Zonas ---------- */
.rb-chip{ display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1rem; border-radius:50rem; background:#fff;
  border:1px solid var(--rb-line); color:var(--rb-navy); font-weight:600; font-size:.92rem; text-decoration:none; transition:all .2s ease; }
.rb-chip i{ color:var(--rb-accent); }
a.rb-chip:hover{ background:var(--rb-navy); color:#fff; border-color:var(--rb-navy); }
a.rb-chip:hover i{ color:#ffb27a; }

/* ---------- Precio orientativo ---------- */
.rb-price{ display:flex; gap:1.1rem; align-items:flex-start; background:linear-gradient(135deg,#fff6ee,#fff);
  border:1px solid rgba(217,102,31,.25); border-radius:var(--rb-radius); padding:1.5rem 1.75rem; }
.rb-price h2{ font-size:1.15rem; font-weight:800; color:var(--rb-navy); margin-bottom:.35rem; }
.rb-price p{ margin:0; color:var(--rb-ink); }

/* ---------- FAQ ---------- */
.rb-faq{ max-width:860px; margin:0 auto;
  --bs-accordion-border-color:var(--rb-line); --bs-accordion-active-bg:#fff; --bs-accordion-active-color:var(--rb-navy);
  --bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(217,102,31,.2);
  --bs-accordion-btn-padding-y:1.15rem; --bs-accordion-btn-padding-x:1.35rem; --bs-accordion-body-padding-x:1.35rem; }
.rb-faq .accordion-item{ border:1px solid var(--rb-line); border-radius:14px !important; overflow:hidden; margin-bottom:.75rem; background:#fff; }
.rb-faq .accordion-item:not(:first-of-type){ border-top:1px solid var(--rb-line); }
.rb-faq .accordion-button{ font-weight:700; color:var(--rb-navy); font-size:1.02rem; border-radius:14px !important; }
.rb-faq .accordion-button:not(.collapsed){ box-shadow:none; }
.rb-faq .accordion-body{ color:var(--rb-muted); padding-top:0; }

/* ---------- Texto largo ---------- */
.contenido-page{ color:var(--rb-muted); line-height:1.75; }
.contenido-page h2, .contenido-page h3{ color:var(--rb-navy); margin-top:1.5rem; }
.rb-details summary{ cursor:pointer; font-weight:700; color:var(--rb-navy); }

/* ---------- CTA ---------- */
.rb-cta{ position:relative; overflow:hidden; border-radius:var(--rb-radius-lg); padding:clamp(2.5rem,5vw,4rem); color:#fff; text-align:center;
  background:radial-gradient(600px 300px at 100% 0%,rgba(217,102,31,.38),transparent 60%),linear-gradient(135deg,var(--rb-navy),var(--rb-navy-2)); }
.rb-cta h2{ font-size:clamp(1.7rem,3vw,2.4rem); font-weight:800; color:#fff; }
.rb-cta p{ color:rgba(255,255,255,.78); }

/* ---------- Footer ---------- */
.rb-footer{ background:var(--rb-navy-3); color:rgba(255,255,255,.7); padding:4.5rem 0 2rem; font-size:.95rem; }
.rb-footer h3{ color:#fff; font-size:.78rem; text-transform:uppercase; letter-spacing:.14em; font-weight:800; margin-bottom:1.1rem; }
.rb-footer a{ color:rgba(255,255,255,.72); text-decoration:none; }
.rb-footer a:hover{ color:#fff; }
.rb-footer ul{ list-style:none; padding:0; margin:0; }
.rb-footer li{ margin-bottom:.55rem; }
.rb-footer .rb-brand__text{ color:#fff; }
.rb-footer .rb-brand__text small{ color:rgba(255,255,255,.5); }
.rb-footer__zonas{ columns:2; column-gap:1.5rem; }
.rb-footer__bottom{ border-top:1px solid rgba(255,255,255,.1); margin-top:3rem; padding-top:1.5rem; font-size:.85rem; }
.rb-social a{ width:40px; height:40px; border-radius:12px; background:rgba(255,255,255,.08); display:inline-flex; align-items:center; justify-content:center; font-size:1.1rem; }
.rb-social a:hover{ background:var(--rb-accent); }

/* ---------- Barra fija móvil ---------- */
.rb-mobilebar{ position:fixed; left:0; right:0; bottom:0; z-index:1040; display:flex; box-shadow:0 -6px 20px rgba(0,0,0,.15); }
.rb-mobilebar a{ flex:1; text-align:center; padding:.85rem .4rem; font-weight:700; font-size:.95rem; text-decoration:none; color:#fff; }
.rb-mobilebar__tel{ background:var(--rb-navy); }
.rb-mobilebar__wa{ background:#128c4a; }
.rb-mobilebar__budget{ background:var(--rb-accent); }
@media (max-width:991.98px){ body{ padding-bottom:60px; } }
@media (min-width:992px){ .rb-mobilebar{ display:none !important; } }

/* ---------- Animaciones ---------- */
.js .rb-reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.js .rb-reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .js .rb-reveal{ opacity:1; transform:none; transition:none; }
  .btn:hover, a.rb-card:hover, .rb-card--hover:hover{ transform:none; }
}

/* ===== Página de trabajos (proyectos.php) ===== */
.rbp-hero{background:var(--rb-navy,#0f1f3a);color:#fff;padding:3.5rem 0 2.5rem}
.rbp-hero h1{color:#fff;font-weight:800;font-size:clamp(1.8rem,4vw,2.6rem);margin:.5rem 0 1rem}
.rbp-hero .lead{color:rgba(255,255,255,.85);max-width:720px}
.rbp-migas{font-size:.9rem;color:rgba(255,255,255,.7)}
.rbp-migas a{color:#fff;text-decoration:none}
.rbp-btns{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.rbp-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.4rem;border-radius:999px;font-weight:700;text-decoration:none;transition:transform .15s}
.rbp-btn:hover{transform:translateY(-2px)}
.rbp-btn-main{background:var(--rb-accent,#f57c00);color:#fff}
.rbp-btn-main:hover{color:#fff}
.rbp-btn-sec{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3)}
.rbp-btn-sec:hover{color:#fff}
.rbp-lista{padding:2.5rem 0 3.5rem;background:#f6f7fa}
.rbp-filtros{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:1.5rem}
.rbp-filtro{flex:0 0 auto;border:1px solid #d7dbe3;background:#fff;color:#1d2a44;border-radius:999px;padding:.5rem 1rem;font-weight:600;font-size:.95rem;cursor:pointer}
.rbp-filtro span{margin-left:.35rem;font-size:.8rem;opacity:.65}
.rbp-filtro.is-active{background:var(--rb-navy,#0f1f3a);border-color:var(--rb-navy,#0f1f3a);color:#fff}
.rbp-item[hidden]{display:none!important}
.rbp-card{height:100%;background:#fff;border-radius:var(--rb-radius,16px);overflow:hidden;box-shadow:var(--rb-shadow,0 6px 20px rgba(15,31,58,.08));transition:transform .2s,box-shadow .2s}
.rbp-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(15,31,58,.14)}
.rbp-card-link{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}
/* La foto se pega a los 4 bordes del hueco y lo rellena siempre */
.rbp-card-img{position:relative;flex:none;width:100%;aspect-ratio:4/3;height:auto;background:#e9ecf2;overflow:hidden}
.rbp-card-img img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;max-height:none;margin:0;object-fit:cover;aspect-ratio:auto;transition:transform .4s}
.rbp-card:hover .rbp-card-img img{transform:scale(1.05)}
.rbp-noimg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:2.5rem;color:#9aa3b5}
.rbp-badge{position:absolute;top:.75rem;left:.75rem;z-index:2;background:rgba(15,31,58,.85);color:#fff;font-size:.78rem;font-weight:700;padding:.3rem .7rem;border-radius:999px}
.rbp-card-body{display:flex;flex-direction:column;flex:1;padding:1.1rem 1.2rem 1.3rem}
.rbp-card-title{font-size:1.1rem;font-weight:800;margin:0 0 .4rem;color:#1d2a44}
.rbp-zona{font-size:.88rem;color:#5b6478;margin:0 0 .4rem}
.rbp-card-text{font-size:.93rem;color:#5b6478;margin:0 0 1rem;flex:1}
.rbp-more{font-weight:700;color:var(--rb-accent,#f57c00)}
.rbp-vacio{text-align:center;padding:3rem 1rem;color:#5b6478}
.rbp-cta{background:var(--rb-navy,#0f1f3a);color:#fff;border-radius:var(--rb-radius,16px);padding:2rem;margin-top:3rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem}
.rbp-cta h2{color:#fff;font-size:1.4rem;font-weight:800;margin:0 0 .3rem}
.rbp-cta p{margin:0;color:rgba(255,255,255,.8)}
@media (prefers-reduced-motion:reduce){.rbp-card,.rbp-card-img img,.rbp-btn{transition:none}.rbp-card:hover,.rbp-btn:hover{transform:none}}

/* ===== Ficha de trabajo (proyecto.php) ===== */
/* Portada: 16:10, máx. 320 px (280 px en móvil), con la misma foto difuminada de fondo */
.rbt-cover{position:relative;display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:16/10;height:auto;
  max-height:320px;overflow:hidden;border-radius:16px;background:#0f2742;margin-bottom:.75rem;
  box-shadow:var(--rb-shadow,0 6px 20px rgba(15,31,58,.08))}
@media (max-width:575.98px){.rbt-cover{max-height:280px;border-radius:12px}}
.rbt-cover::before{content:"";position:absolute;inset:-30px;background:var(--rbt-fondo) center/cover no-repeat;
  filter:blur(22px) brightness(.7);transform:scale(1.1);z-index:0}
.glightbox.rbt-cover img{position:relative;z-index:1;display:block;width:100%;height:100%;max-width:none;max-height:none;
  object-fit:cover;border-radius:0;aspect-ratio:auto}
/* Verticales y montajes: entera, sin recortar */
.glightbox.rbt-cover--entera img{object-fit:contain}
/* Pocos píxeles: a su tamaño real como máximo, sin estirarla */
.glightbox.rbt-cover--pequena img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.rbt-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-top:.75rem}
.rbt-fotos a{display:block;border-radius:12px;overflow:hidden}
.rbt-fotos img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .3s}
.rbt-fotos a:hover img{transform:scale(1.06)}
.rbt-texto{background:#fff;border-radius:var(--rb-radius,16px);box-shadow:var(--rb-shadow,0 6px 20px rgba(15,31,58,.08));padding:1.75rem;margin-top:1.5rem}
.rbt-texto h2,.rbt-faq h2,.rbt-cta h2,.rbt-rel h2{font-size:1.3rem;font-weight:800;color:#1d2a44;margin-bottom:1rem}
.rbt-texto p{color:#3d4659;line-height:1.7}
.rbt-tareas{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.55rem}
.rbt-tareas li{position:relative;padding-left:1.9rem;color:#3d4659;line-height:1.5}
.rbt-tareas li::before{content:"✓";position:absolute;left:0;top:0;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--rb-accent,#f57c00);color:#fff;font-size:.8rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.rbt-servicio{margin:1.25rem 0 0;padding-top:1rem;border-top:1px solid #e6e9ef;font-size:.95rem}
.rbt-servicio a{font-weight:700;color:var(--rb-accent,#f57c00)}
.rbt-aside{position:sticky;top:96px;display:grid;gap:1.25rem}
.rbt-cta{background:#fff;border-radius:var(--rb-radius,16px);box-shadow:var(--rb-shadow,0 6px 20px rgba(15,31,58,.08));padding:1.5rem;border-top:4px solid var(--rb-accent,#f57c00)}
.rbt-cta p{color:#5b6478;font-size:.95rem}
.rbt-btn-wa{background:#25d366;color:#fff}
.rbt-btn-wa:hover{color:#fff}
.rbt-btn-out{border:2px solid var(--rb-navy,#0f1f3a);color:var(--rb-navy,#0f1f3a);background:#fff}
.rbt-btn-out:hover{background:var(--rb-navy,#0f1f3a);color:#fff}
.rbt-faq .accordion-button{font-weight:600;font-size:.95rem}
.rbt-faq .accordion-button:not(.collapsed){background:#fff4ea;color:#1d2a44;box-shadow:none}
.rbt-rel{margin-top:3rem}
.rbt-todos{font-weight:700;color:var(--rb-accent,#f57c00);text-decoration:none}
@media (max-width:991px){.rbt-aside{position:static}}
@media (prefers-reduced-motion:reduce){.rbt-fotos img{transition:none}}

/* ===== Páginas legales ===== */
.rbl-texto{background:#fff;border-radius:var(--rb-radius,16px);box-shadow:var(--rb-shadow,0 6px 20px rgba(15,31,58,.08));padding:2rem;max-width:880px;margin:0 auto;color:#3d4659;line-height:1.7}
.rbl-texto h2{font-size:1.2rem;font-weight:800;color:#1d2a44;margin:1.75rem 0 .6rem}
.rbl-texto h2:first-child{margin-top:0}
.rbl-texto a{color:var(--rb-accent,#f57c00);font-weight:600}
.rbl-tabla{width:100%;border-collapse:collapse;font-size:.92rem;margin:.5rem 0 1rem;display:block;overflow-x:auto}
.rbl-tabla th,.rbl-tabla td{border:1px solid #e1e5ec;padding:.6rem .75rem;text-align:left;vertical-align:top}
.rbl-tabla th{background:#f3f5f9;color:#1d2a44}

/* ===== Banner de cookies ===== */
.rb-cookies{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:2000;max-width:560px;background:#fff;color:#1d2a44;border-radius:16px;box-shadow:0 12px 40px rgba(15,31,58,.25);padding:1.1rem 1.25rem;font-size:.92rem}
.rb-cookies[hidden]{display:none}
.rb-cookies p{margin:0 0 .8rem}
.rb-cookies a{color:var(--rb-accent,#f57c00);font-weight:600}
.rb-cookies-btns{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}
.rb-ck-btn{border:2px solid var(--rb-navy,#0f1f3a);background:#fff;color:var(--rb-navy,#0f1f3a);border-radius:999px;padding:.45rem 1.1rem;font-weight:700;cursor:pointer}
.rb-ck-main{background:var(--rb-navy,#0f1f3a);color:#fff}
.rb-cookies-panel{display:grid;gap:.5rem;margin-bottom:.8rem;padding:.75rem;background:#f6f7fa;border-radius:12px}
.rb-cookies-panel[hidden]{display:none}
@media (max-width:767px){.rb-cookies{bottom:5rem}} /* por encima de la barra móvil */

/* ===== Galería (galeria.php) ===== */
.rbg-card{display:flex;flex-direction:column}
.rbg-img{position:relative;display:block;aspect-ratio:4/3;background:#e9ecf2;overflow:hidden}
.rbg-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.rbg-card:hover .rbg-img img{transform:scale(1.05)}
.rbg-count{position:absolute;right:.75rem;bottom:.75rem;background:rgba(15,31,58,.85);color:#fff;font-size:.78rem;font-weight:700;padding:.3rem .65rem;border-radius:999px}
.rbg-zoom{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:#fff;background:rgba(15,31,58,.35);opacity:0;transition:opacity .2s}
.rbg-img:hover .rbg-zoom,.rbg-img:focus-visible .rbg-zoom{opacity:1}
.rbg-title{font-size:1rem;font-weight:800;color:#1d2a44;margin:0 0 .35rem}
.rbg-desc{font-size:.88rem;color:#5b6478;margin:0 0 .75rem;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rbg-intro{max-width:820px;margin:0 auto 2rem;color:#3d4659;text-align:center}
@media (max-width:575px){.rbg-desc{display:none}.rbg-title{font-size:.92rem}}

/* ===== Formularios (presupuesto.php y contacto.php) ===== */
.rbf-card{background:#fff;border-radius:var(--rb-radius,16px);box-shadow:var(--rb-shadow,0 6px 20px rgba(15,31,58,.08));padding:1.75rem}
.rbf-card .form-label{font-weight:600;color:#1d2a44;font-size:.93rem}
.rbf-card .form-control,.rbf-card .form-select{border-radius:12px;padding:.7rem .9rem;border-color:#d7dbe3}
.rbf-card .form-control:focus,.rbf-card .form-select:focus{border-color:var(--rb-accent,#d9661f);box-shadow:0 0 0 .2rem rgba(217,102,31,.15)}
.rbf-opt{font-weight:400;color:#8a92a3;font-size:.85rem}
.rbf-legal{font-size:.8rem;color:#6b7385;background:#f6f7fa;border-radius:12px;padding:.75rem 1rem}
.rbf-alert{border-radius:12px}
.rbf-pasos{list-style:none;padding:0;margin:0;display:grid;gap:.9rem;counter-reset:paso}
.rbf-pasos li{position:relative;padding-left:2.4rem;color:#3d4659;font-size:.93rem;counter-increment:paso}
.rbf-pasos li::before{content:counter(paso);position:absolute;left:0;top:0;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--rb-navy,#0f1f3a);color:#fff;font-weight:800;font-size:.85rem;display:flex;align-items:center;justify-content:center}
.rbf-datos{list-style:none;padding:0;margin:0;display:grid;gap:1rem}
.rbf-datos li{display:flex;gap:.8rem;align-items:flex-start;color:#3d4659}
.rbf-datos i{color:var(--rb-accent,#f57c00);font-size:1.2rem;margin-top:.15rem}
.rbf-datos small{color:#8a92a3}
.rbf-datos a{color:#1d2a44;font-weight:700;text-decoration:none}
@media (prefers-reduced-motion:reduce){.rbg-img img,.rbg-zoom{transition:none}.rbg-card:hover .rbg-img img{transform:none}}

/* ===== Lista con check sobre fondo claro (servicios.php, "Quién hace la obra") ===== */
.rb-checks--oscuro{
  list-style:none;
  margin:0;
  padding:1.4rem 1.5rem;
  background:#fff;
  border:1px solid var(--rb-line);
  border-radius:var(--rb-radius);
  box-shadow:var(--rb-shadow);
}
.rb-checks--oscuro li{
  display:flex;
  gap:.65rem;
  align-items:flex-start;
  color:var(--rb-navy);
  font-weight:600;
  font-size:1.05rem;
  line-height:1.4;
}
.rb-checks--oscuro li + li{ margin-top:.85rem; padding-top:.85rem; border-top:1px solid var(--rb-line); }
.rb-checks--oscuro li i{ color:#1a9a55; margin-top:.15rem; flex:none; }
