/* Ajustes de la portada local. */
section, footer { scroll-margin-top: 110px; }
.header-2 .header-btn span a { font-size: 14px; }

p, h2, h3, h4, .gt-theme-btn, .theme-btn-2 { text-transform: none; }

/* El título traducido conserva tres líneas y las miniaturas de 112 px. */
@media (min-width: 1400px) {
  .hero-2 .hero-items .hero-title { font-size: 80px; line-height: 1.5; }
  .hero-2 .hero-items .hero-title .hero-text,
  .hero-2 .hero-items .hero-title .hero-text-2,
  .hero-2 .hero-items .hero-title .hero-text-3 {
    display: block;
    width: max-content;
    padding-right: 152px;
    white-space: nowrap;
  }
  .hero-2 .hero-items .hero-title .hero-text .small-img,
  .hero-2 .hero-items .hero-title .hero-text-2 .small-img2,
  .hero-2 .hero-items .hero-title .hero-text-3 .small-img3 {
    right: 0;
    top: 50%;
    transform: translateY(-50%);
  }
}
@media (min-width: 1601px) {
  .hero-2 .hero-items .hero-title { font-size: 110px; line-height: 1.4; }
}

/* Identidad local en lugar del contador ficticio de experiencia. */
.about-page .about-wrapper-4 .about-content h2.about-place { font-size: clamp(48px, 6vw, 90px); }
.about-page .feature-content .feature-item .content span { display: block; }

/* El visor de imágenes debe quedar por encima de la cabecera fija. */
.about-page .mfp-bg { z-index: 100000; }
.about-page .mfp-wrap { z-index: 100001; }

/* La ficha de testimonio original utiliza un avatar de 32 × 32 px. */
.about-page .testimonial-box-items .client-info img {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  object-fit: cover;
}

/* Contacto: fotografía y contraste para conservar la ficha original. */
.contact-page .information-box .shape::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.65); }
.contact-page .form-clt label { display:block; font-size:16px; font-weight:500; margin-bottom:10px; color:#000; }
.contact-page .contact-note { font-size:14px; line-height:1.6; margin-top:20px; }
.contact-page button:disabled { cursor:default; opacity:.65; }

/* Galería de inspiración: aviso y visor sobre la cabecera fija. */
.inspiration-page .inspiration-note { margin-bottom: 30px; max-width: 850px; }
.inspiration-page .mfp-bg { z-index:100000; }
.inspiration-page .mfp-wrap { z-index:100001; }
.inspiration-page .project-image::before { content:""; position:absolute; inset:35% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.78)); z-index:1; pointer-events:none; }
.inspiration-page .project-image .project-content { z-index:2; right:24px; }

/* Los títulos de proyecto pueden ocupar varias líneas en pantallas pequeñas. */
.project-details-page .breadcrumb-items { flex-wrap:wrap; }

.service-details-page .breadcrumb-items { flex-wrap:wrap; }

/* El estado del formulario debe poder ocupar varias líneas en móvil. */
.contact-page .contact-form-box .theme-btn {
  height: auto;
  min-height: 58px;
  max-width: 100%;
  padding: 16px 20px;
  line-height: 1.4;
  white-space: normal;
}

/* Marca tipográfica: una misma familia y una sola línea, sin separación. */
.brand-wordmark { display:inline-flex; align-items:baseline; gap:0; white-space:nowrap; color:#000; font-family:"Inter",sans-serif; font-size:32px; line-height:1.15; letter-spacing:-1.2px; text-transform:none; font-style:normal; }
.brand-wordmark .brand-name { font-weight:800; }
.brand-wordmark .brand-suffix { font-weight:200; }
.offcanvas__logo .brand-wordmark { font-size:28px; }
.footer-logo .brand-wordmark { font-size:clamp(48px,11.8vw,180px); letter-spacing:-.045em; }
@media(max-width:575px) { .header-left .brand-wordmark { font-size:27px; letter-spacing:-1px; } .offcanvas__logo .brand-wordmark { font-size:25px; } }

/* Cabeceras interiores: columnas separadas y texto apilado en móvil. */
.breadcrumb-wrapper .page-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.6fr);
  gap:30px;
}
.breadcrumb-wrapper .page-heading > .content { min-width:0; }
.breadcrumb-wrapper .page-heading .content h1 {
  padding-right:0;
  overflow-wrap:break-word;
}
.breadcrumb-wrapper .page-heading > p {
  width:100%;
  min-width:0;
  justify-self:end;
}
.breadcrumb-wrapper .page-heading .breadcrumb-items { flex-wrap:wrap; }
@media(max-width:991px) {
  .breadcrumb-wrapper .page-heading {
    grid-template-columns:minmax(0,1fr);
    gap:24px;
  }
  .breadcrumb-wrapper .page-heading > p {
    max-width:100%;
    justify-self:start;
  }
}

/* Páginas legales basadas en FAQ, con texto continuo. */
.legal-page .breadcrumb-items { flex-wrap:wrap; }
.legal-content { line-height:1.8; overflow-wrap:anywhere; }
.legal-content h2 { font-size:clamp(24px,3vw,32px); line-height:1.25; margin:34px 0 14px; }
.legal-content p { margin-bottom:18px; }
.legal-content a { text-decoration:underline; text-underline-offset:4px; }
.legal-content .legal-date { color:#555; font-size:14px; margin-bottom:26px; }
.map-consent { min-height:420px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:35px 22px; text-align:center; background:#edece7; }
.map-consent p { max-width:650px; margin:12px 0 20px; }
.map-consent-actions { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; }
.map-consent button, .map-withdraw { padding:12px 18px; border:1px solid #111; background:white; color:#111; line-height:1.5; cursor:pointer; }
.map-withdraw { display:block; margin:18px auto; }
[hidden] { display:none !important; }

/* Pie común: cuatro columnas, con los enlaces legales en tercera posición. */
.footer-widget-wrapper-2::before, .footer-widget-wrapper-2::after { display:none; }
.footer-widget-wrapper-2 .footer-widget-wrap { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.footer-widget-wrapper-2 .footer-widget-items { margin-top:0; padding:30px 24px 0; min-width:0; overflow-wrap:anywhere; }
.footer-widget-wrapper-2 .footer-widget-items:first-child { padding-left:0; }
.footer-widget-wrapper-2 .footer-widget-items + .footer-widget-items { border-left:1px solid rgba(0,0,0,.2); }
@media(max-width:991px) {
 .footer-widget-wrapper-2 .footer-widget-wrap { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:30px; }
 .footer-widget-wrapper-2 .footer-widget-items:nth-child(odd) { border-left:0; padding-left:0; }
}
@media(max-width:374px) {
 .footer-widget-wrapper-2 .footer-widget-wrap { grid-template-columns:minmax(0,1fr); row-gap:18px; }
 .footer-widget-wrapper-2 .footer-widget-items { border-left:0 !important; padding:20px 0 0; }
}
