/* ---------------------------------------------------
   Guerrero Suárez Abogados y Economistas
   Paleta: granate + crema · retícula editorial (Swiss)
   Patrón de layout: secciones "wrap" (contenidas, 1180px)
   alternando con secciones "bleed" (ancho completo, margen mínimo)
--------------------------------------------------- */

:root{
  --maroon: #7c2020;
  --maroon-dark: #5a1717;
  --maroon-darker: #3d1010;
  --cream: #faf6f1;
  --cream-alt: #f3ebe3;
  --ink: #121016;
  --ink-soft: #4a4650;
  --text-muted: #6b6259;
  --border: #e6dcd2;
  --radius: 4px;
  --radius-lg: 6px;
  --wrap: 1180px;
  --gutter: clamp(16px, 4vw, 40px);
  --danger: #a3342a;
  --shadow: 0 18px 40px -20px rgba(40, 20, 10, .35);
  --shadow-soft: 0 10px 28px -16px rgba(40, 20, 10, .28);
  --dark-section-bg: var(--maroon-darker);
  --accent-light: #f0d7c8;
  --serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --ease: cubic-bezier(.4,0,.2,1);
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; font-size: 112.5%; }
body{
  margin:0;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--cream);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
ul, ol{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,h5,h6{ font-family: var(--serif); font-weight:700; margin:0 0 .5em; color: var(--ink); letter-spacing:-.01em; line-height:1.15; }
p{ margin:0 0 1em; color: var(--ink-soft); }

/* contenedor centrado clásico */
.wrap{ max-width: var(--wrap); margin:0 auto; padding: 0 24px; }
/* contenedor a sangre: ancho completo con un margen mínimo constante */
.bleed{ padding-inline: var(--gutter); }

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--maroon); color:#fff;
  padding:10px 16px; z-index:200; border-radius: 0 0 8px 0;
}
.skip-link:focus{ left:0; }

/* -------- Barra de contacto -------- */
.topbar{ background: var(--maroon-darker); border-top:1px solid rgba(255,255,255,.32); }
.topbar-inner{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap: 10px 36px; padding: 18px 24px; font-size:1rem;
}
.topbar-item{
  display:inline-flex; align-items:center; gap:8px;
  color: rgba(255,255,255,.85); font-weight:500; white-space:nowrap;
}
.topbar-item svg{ flex:none; width:16px; height:16px; opacity:.8; }
a.topbar-item{ transition: color .2s var(--ease); }
a.topbar-item:hover{ color:#fff; }
@media (max-width:900px){
  .topbar-inner{ gap: 8px 32px; padding: 9px 24px; font-size:.8rem; }
  .topbar-item svg{ width:14px; height:14px; }
}
@media (max-width:560px){
  .topbar-inner{ justify-content:center; gap:6px 18px; padding:8px 16px; font-size:.74rem; }
  .topbar-item--address{ display:none; }
}

/* -------- Header -------- */
.site-header{
  position: sticky; top:0; z-index:100;
  background: #fff;
  border-bottom: 1px solid var(--border);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:80px;
}
.logo{ display:flex; align-items:center; font-family: var(--serif); font-size:1.3rem; font-weight:700; letter-spacing:.2px; white-space:nowrap; }
.logo span{ display:block; font-family: var(--sans); font-size:.6rem; letter-spacing:2px; color: var(--maroon); font-weight:700; margin-top:2px; }
.logo img{ height:56px; width:auto; display:block; }

.main-nav{ display:flex; align-items:center; gap:30px; }
.main-nav > a{ position:relative; font-size:1.02rem; font-weight:700; color: var(--ink); padding-bottom:4px; }
.main-nav > a::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--maroon);
  transform:scaleX(0); transform-origin:left; transition: transform .25s var(--ease);
}
.main-nav > a:hover{ color: var(--maroon); }
.main-nav > a:hover::after{ transform:scaleX(1); }

/* Desplegable "Áreas" */
.nav-dropdown{ position:relative; }
.nav-dropdown summary{
  cursor:pointer; list-style:none; display:flex; align-items:center; gap:6px;
  font-size:1.02rem; font-weight:700; color: var(--ink); transition: color .2s var(--ease);
}
.nav-dropdown summary::-webkit-details-marker{ display:none; }
.nav-dropdown summary::after{ content:''; width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s var(--ease); }
.nav-dropdown:hover summary, .nav-dropdown[open] summary{ color: var(--maroon); }
.nav-dropdown[open] summary::after{ transform: rotate(225deg) translateY(2px); }
.nav-dropdown-panel{
  position:absolute; top:calc(100% + 18px); left:0;
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg);
  box-shadow: var(--shadow); padding:10px; display:grid; grid-template-columns:1fr 1fr; gap:2px;
  min-width:440px; z-index:50;
}
.nav-dropdown-panel a{
  padding:11px 14px; border-radius:8px; font-weight:600; font-size:.9rem; color: var(--ink-soft);
  white-space:nowrap; transition: all .15s var(--ease);
}
.nav-dropdown-panel a:hover{ background: var(--cream-alt); color: var(--maroon); }

.header-actions{ display:flex; align-items:center; gap:14px; }
.phone-pill{
  display:inline-flex; align-items:center; gap:7px;
  background: var(--maroon); color:#fff; padding:10px 18px; border-radius:999px;
  font-weight:600; font-size:.9rem; white-space:nowrap;
  transition: background .2s var(--ease);
}
.phone-pill:hover{ background: var(--maroon-dark); }
.phone-pill svg{ width:15px; height:15px; flex:none; }

.nav-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:40px; height:40px; background:none; border:0; cursor:pointer;
}
.nav-toggle span{ display:block; height:2px; width:22px; background: var(--ink); transition:.25s var(--ease); }

/* -------- Buttons -------- */
.btn{
  display:inline-block; padding:14px 26px; border-radius:999px;
  font-weight:600; font-size:.95rem; transition: all .2s var(--ease); border:1px solid transparent;
  cursor:pointer;
}
.btn:hover{ transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.btn:active{ transform: translateY(0); }
.btn:focus-visible{ outline:none; box-shadow: 0 0 0 3px rgba(124,32,32,.4), var(--shadow-soft); }
.btn--primary{ background: var(--maroon); color:#fff; }
.btn--primary:hover{ background: var(--maroon-dark); }
.btn--outline{ background: transparent; color: var(--ink); border-color: var(--border); }
.btn--outline:hover{ background: #fff; border-color: var(--maroon); color: var(--maroon); }
.btn--ghost-dark{ background: transparent; color:#fff; border-color: rgba(255,255,255,.6); }
.btn--ghost-dark:hover{ background: rgba(255,255,255,.12); }

/* -------- Eyebrow (etiqueta numerada estilo Swiss) -------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:8px; font-size:.72rem; letter-spacing:1.6px; text-transform:uppercase;
  font-weight:700; color: var(--maroon); margin-bottom:20px;
}
.eyebrow::before{ content:''; width:22px; height:1px; background: var(--maroon); }
.eyebrow--light{ color:#f2d9c8; }
.eyebrow--light::before{ background:#f2d9c8; }

/* -------- Hero: foto de fondo a pantalla completa -------- */
.hero{
  position:relative; min-height: 640px; display:flex; align-items:center;
  background-size: cover; background-position: center 32%; background-color: var(--maroon-darker);
}
.hero-overlay{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 900px 640px at 18% 48%, rgba(8,5,5,.75) 0%, rgba(8,5,5,0) 70%),
    linear-gradient(100deg, rgba(12,7,7,.92) 0%, rgba(35,13,13,.78) 45%, rgba(70,20,20,.42) 100%);
}
/* .wrap es un flex-item de .hero; sin width:100% se encoge al contenido
   (max-width:700px de .hero-content) y el bloque entero queda centrado
   en vez de pegado a la izquierda. */
.hero-grid{
  position:relative; width:100%;
  display:grid; grid-template-columns: 1.15fr .85fr; align-items:center; gap: clamp(32px, 5vw, 72px);
  padding-top:104px; padding-bottom:56px;
}
.hero-content{ max-width: 620px; }
.hero h1{ color:#fff; font-size: clamp(2.4rem, 4.8vw, 3.6rem); line-height:1.08; margin-bottom:22px; }
.hero h1 em{ font-style: italic; font-weight:500; color:#f0d7c8; }
.hero-lead{ color: rgba(255,255,255,.9); font-size:1.1rem; max-width:560px; }
.hero-ctas{ display:flex; gap:16px; flex-wrap:wrap; margin: 30px 0 0; }

.hero-trust{
  display:flex; align-items:center; gap:8px; margin: 18px 0 0;
  font-size:.86rem; font-weight:600; color: rgba(255,255,255,.85);
}

.hero-stats-panel{
  display:inline-block; margin-top:36px; padding: 22px 28px;
  background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
  border-radius: var(--radius-lg); box-shadow: var(--shadow);
  backdrop-filter: blur(6px);
}
.hero-stats{ display:flex; gap:0; }
.hero-stats li{ display:flex; flex-direction:column; padding:0 28px; }
.hero-stats li:first-child{ padding-left:0; }
.hero-stats li:last-child{ padding-right:0; }
.hero-stats li + li{ border-left:1px solid rgba(255,255,255,.22); }
.hero-stats strong{ font-family: var(--serif); font-size:2rem; color:#fff; line-height:1; }
.hero-stats span{ font-size:.8rem; color: rgba(255,255,255,.8); margin-top:6px; white-space:nowrap; }

/* Panel derecho: áreas de práctica */
.hero-areas{
  background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16);
  border-radius: var(--radius-lg); padding: 6px 30px; backdrop-filter: blur(6px);
}
.hero-areas-title{
  margin:0; padding: 22px 0 16px; font-family: var(--serif); font-style: italic;
  font-size:1.05rem; font-weight:500; color:#f0d7c8;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.hero-areas-list{ display:flex; flex-direction:column; }
.hero-areas-list li{ display:flex; align-items:center; gap:14px; }
.hero-areas-list li + li{ border-top:1px solid rgba(255,255,255,.12); }
.hero-areas-list a{
  flex:1; display:block; padding:14px 0; font-size:.9rem; font-weight:600;
  color: rgba(255,255,255,.88); transition: color .2s var(--ease), transform .2s var(--ease);
}
.hero-areas-list a:hover, .hero-areas-list a:focus-visible{ color:#fff; transform: translateX(4px); }
.hero-areas-icon{ flex:none; width:18px; height:18px; color:#f0d7c8; opacity:.85; }

/* Entrada suave del contenido del hero. El <h1> queda fuera a propósito
   para no retrasar su LCP; solo se anima el contenido secundario. */
@keyframes heroFadeUp{
  from{ opacity:0; transform: translateY(14px); }
  to{ opacity:1; transform: translateY(0); }
}
.hero .eyebrow--light,
.hero-lead,
.hero-ctas,
.hero-trust,
.hero-stats-panel,
.hero-areas{
  animation: heroFadeUp .6s var(--ease) both;
}
.hero .eyebrow--light{ animation-delay: 0s; }
.hero-areas{ animation-delay: .1s; }
.hero-lead{ animation-delay: .08s; }
.hero-ctas{ animation-delay: .16s; }
.hero-trust{ animation-delay: .22s; }
.hero-stats-panel{ animation-delay: .28s; }

/* -------- Sections -------- */
.section{ padding: clamp(64px,9vw,120px) 0; }
.section--alt{ background: var(--cream-alt); }
.section-head{ max-width: 680px; margin: 0 auto 56px; text-align:center; }
.section-head h2{ font-size: clamp(1.9rem, 3.8vw, 2.6rem); font-weight:800; }
.section-lead{ font-size: 1.05rem; }

/* -------- Por qué elegirnos -------- */
.why-section{
  position:relative; background-size:cover; background-position:center; background-color: var(--cream-alt);
}
.why-overlay{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(250,246,241,.94) 0%, rgba(250,246,241,.98) 42%, var(--cream-alt) 100%);
}
.why-inner{ position:relative; max-width: 1500px; padding-top: clamp(72px,9vw,132px); padding-bottom: clamp(72px,9vw,132px); }

.why-head{ max-width: 760px; margin: 0 auto 68px; text-align:center; }
.why-divider{ display:flex; align-items:center; justify-content:center; gap:16px; color: var(--maroon); margin-bottom:24px; }
.why-divider span{ width:60px; height:1px; background: var(--maroon); opacity:.5; }
.why-divider svg{ width:26px; height:26px; flex:none; }
.why-head h2{ font-size: clamp(2.5rem, 4.4vw, 3.5rem); line-height:1.12; margin-bottom:18px; letter-spacing:-.01em; }
.why-head h2 em{ font-style:normal; color: var(--maroon); }
.why-kicker{
  font-family: var(--serif); font-style:italic; font-weight:500;
  color: var(--ink-soft); font-size:1.18rem; margin:0 0 24px;
}
.why-desc{ font-size:1.05rem; line-height:1.75; color: var(--ink-soft); max-width:600px; margin:0 auto; }

.why-cards{
  display:grid; grid-template-columns: repeat(5, 1fr); gap:16px; margin-bottom:32px;
}
.why-card{
  display:flex; flex-direction:column; align-items:flex-start;
  background:#fff; border-radius:18px;
  box-shadow: 0 18px 40px -24px rgba(61,16,16,.30), 0 2px 8px -2px rgba(61,16,16,.06);
  padding: 36px 18px 30px; text-align:left;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.why-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 26px 54px -22px rgba(61,16,16,.34), 0 4px 12px -2px rgba(61,16,16,.08);
}
.why-card-icon{
  align-self:flex-start; flex:none;
  display:flex; align-items:center; justify-content:center;
  width:52px; height:52px; border-radius:50%; background: var(--cream-alt);
  color: var(--maroon); margin-bottom:22px;
}
.why-card-icon svg{ width:24px; height:24px; }
.why-card h3{ width:100%; font-size:1.14rem; line-height:1.38; font-weight:700; margin:0; }
.why-card h3::after{
  content:''; display:block; width:38px; height:1px; background: var(--border);
  margin:18px 0;
}
.why-card p{ width:100%; font-size:.95rem; line-height:1.7; color: var(--ink-soft); margin:0; flex:1 0 auto; }
.why-card p.why-card-highlight{
  flex:none; color: var(--maroon); font-weight:700; font-size:.86rem; line-height:1.55;
  margin-top:18px;
}
.why-card p.why-card-highlight::before{ content:'→ '; }

.why-footer{
  background:#fff; border-radius:18px; box-shadow: 0 16px 40px -26px rgba(61,16,16,.22);
  padding: 34px 40px; display:flex; align-items:center; gap:32px; flex-wrap:wrap;
}
.why-footer-item{ display:flex; align-items:flex-start; gap:16px; flex:1; min-width:240px; }
.why-footer-icon{
  display:flex; align-items:center; justify-content:center; flex:none;
  width:46px; height:46px; border-radius:50%; background: var(--cream-alt); color: var(--maroon);
}
.why-footer-icon svg{ width:20px; height:20px; }
.why-footer-item h4{ font-family: var(--serif); font-weight:700; font-size:1.05rem; margin:0 0 5px; color: var(--ink); }
.why-footer-item p{ font-size:.9rem; margin:0; color: var(--ink-soft); line-height:1.55; }
.why-footer-divider{ width:1px; align-self:stretch; background: var(--border); }
.why-footer-cta{
  white-space:nowrap; display:inline-flex; align-items:center; gap:10px;
  padding:16px 30px; font-size:1rem;
  box-shadow: 0 14px 30px -12px rgba(124,32,32,.5);
}
.why-footer-cta:hover{ box-shadow: 0 18px 36px -12px rgba(124,32,32,.55); }

/* -------- Áreas / pills -------- */
.area-pills{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:52px; }
.area-pills a{
  background:#fff; border:1px solid var(--border); padding:9px 18px; border-radius:999px;
  font-size:.88rem; font-weight:600; color: var(--ink-soft); transition: all .2s var(--ease);
}
.area-pills a:hover{ background: var(--maroon); border-color: var(--maroon); color:#fff; }

.services-grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap: var(--gutter);
  max-width: 1440px; margin: 0 auto;
  counter-reset: service;
}
.service-card{
  position:relative; display:block;
  background:#fff; border-radius: var(--radius-lg); overflow:hidden;
  border:1px solid var(--border); scroll-margin-top: 100px;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
  counter-increment: service;
}
.service-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow); border-color: transparent; }
.service-card:hover .service-more{ color: var(--maroon-dark); gap:8px; }
.service-card:focus-visible{ outline: 2px solid var(--maroon); outline-offset: 2px; }
.service-card::before{
  content: counter(service, decimal-leading-zero);
  position:absolute; top:12px; left:12px; z-index:2;
  background: rgba(250,246,241,.92); color: var(--maroon);
  font-family: var(--serif); font-size:.78rem; font-weight:700;
  padding:3px 9px; border-radius:999px;
}
.service-card img{ aspect-ratio: 800/500; object-fit: cover; width:100%; height:auto; }
.service-body{ padding:18px 20px 22px; }
.service-body h3{ font-size:1.05rem; margin-bottom:.4em; font-weight:700; }
.service-body p{ font-size:.88rem; margin-bottom:0; }
.service-more{
  display:inline-flex; align-items:center; gap:4px; margin-top:14px;
  font-size:.82rem; font-weight:700; color: var(--maroon); transition: all .2s var(--ease);
}
.service-stat{
  margin:14px 0 0; font-size:.85rem; font-weight:600; color: var(--maroon);
  padding-top:14px; border-top:1px dashed var(--border);
}

/* -------- Equipo -------- */
.team-grid{
  display:grid; grid-template-columns: .8fr 1.2fr; gap:56px; align-items:start;
}
.team-photo{ position:relative; }
.team-photo img{ width:100%; height:auto; border-radius: var(--radius-lg); box-shadow: var(--shadow); aspect-ratio:1/1; object-fit:cover; }
.team-photo img.team-photo-small{
  position:absolute; width:48%; height:auto; bottom:-28px; right:-28px;
  border:6px solid var(--cream); border-radius: var(--radius-lg); aspect-ratio:4/3; object-fit:cover;
}
.team-role{ color: var(--maroon); font-weight:600; font-size:.92rem; margin-bottom:1.2em; }
.team-bio p{ font-size:.96rem; }
.credentials{ display:flex; flex-direction:column; gap:10px; margin: 4px 0 0; }
.credentials li{
  position:relative; padding-left:26px; font-size:.9rem; color: var(--ink-soft);
}
.credentials li::before{
  content:'✓'; position:absolute; left:0; top:0; color: var(--maroon); font-weight:700;
}
.team-quote{ font-family: var(--serif); font-style: italic; font-size:1.15rem; color: var(--ink); margin-top:1.4em; }

/* -------- FAQ -------- */
.faq-list{ max-width: 820px; margin: 0 auto; display:flex; flex-direction:column; gap:14px; }
.faq-item{
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg);
  padding: 18px 22px; box-shadow: var(--shadow-soft);
}
.faq-item + .faq-item{ margin-top:0; }
.faq-item summary{
  cursor:pointer; list-style:none; font-weight:700; font-size:1rem; color: var(--ink);
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:'+'; flex:none; font-size:1.4rem; line-height:1; color: var(--maroon); font-weight:400;
  transition: transform .2s var(--ease);
}
.faq-item[open] summary::after{ transform: rotate(45deg); }
.faq-item p{ margin:14px 0 0; font-size:.92rem; }

/* -------- Formulario de contacto -------- */
.contact-form-card{
  background:#fff; border-radius: var(--radius-lg); box-shadow: var(--shadow);
  padding: 32px clamp(20px,3vw,36px);
}
.contact-form-eyebrow{ color: var(--maroon); font-weight:700; font-size:.78rem; text-transform:uppercase; letter-spacing:1.4px; margin-bottom:8px; }
.contact-form-card h3{ font-size:1.5rem; margin-bottom:.3em; }
.contact-form-note{ font-size:.92rem; margin-bottom:20px; }
.contact-form{ display:flex; flex-direction:column; gap:16px; }
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
.contact-form label{ display:flex; flex-direction:column; gap:6px; font-size:.85rem; font-weight:600; color: var(--ink); }
.field-label span[aria-hidden]{ color: var(--maroon); margin-left:2px; }
.contact-form input, .contact-form textarea{
  font: inherit; font-size:.95rem; padding:11px 13px; border-radius: var(--radius);
  border:1px solid var(--border); background: var(--cream); color: var(--ink);
  transition: border-color .2s var(--ease), background .2s var(--ease);
}
.contact-form input:hover, .contact-form textarea:hover{
  border-color: #c9b8ab;
}
.contact-form input:focus, .contact-form textarea:focus{
  outline:none; border-color: var(--maroon); background:#fff;
}
.contact-form input:user-invalid, .contact-form textarea:user-invalid{
  border-color: var(--danger);
}
.contact-form textarea{ resize: vertical; min-height:100px; }
.contact-form .form-consent{
  flex-direction:row; align-items:flex-start; gap:10px; font-weight:400; font-size:.82rem; color: var(--text-muted);
}
.form-consent input{ margin-top:3px; flex:none; width:16px; height:16px; accent-color: var(--maroon); }
.contact-form .btn{ align-self:flex-start; margin-top:4px; }

/* -------- CTA final -------- */
.cta-final{
  position:relative; overflow:hidden;
  background: linear-gradient(120deg, var(--maroon-darker), var(--maroon));
  color:#fff; padding: clamp(64px,8vw,110px) 0; text-align:center;
}
/* Marca de agua decorativa: emblema del logo corporativo (img/logo-mark-*.png,
   recorte sin texto), a gran tamaño y muy transparente, evita que el bloque
   quede como una franja de color plana. */
.cta-final-decor{
  position:absolute; top:50%; right:clamp(-20px,0vw,30px);
  width:clamp(260px,30vw,420px); height:clamp(160px,18vw,260px);
  transform: translateY(-50%); opacity:.1; pointer-events:none;
}
.cta-final-decor img{
  width:100%; height:100%; object-fit:contain; object-position:center;
  filter: brightness(0) invert(1);
}
.cta-final .wrap{ position:relative; }
.cta-final .eyebrow{ justify-content:center; margin-bottom:14px; }
.cta-final h2{ color:#fff; font-size: clamp(1.9rem, 4vw, 2.8rem); }
.cta-final p{ color: rgba(255,255,255,.85); max-width:640px; margin:0 auto 8px; }
.cta-final .hero-ctas{ justify-content:center; }
@media (max-width:720px){
  .cta-final-decor{ width:260px; height:160px; right:-50px; }
}

/* -------- CTA compacto oscuro --------
   Franja corta en color corporativo oscuro: eyebrow + título + texto breve + botón.
   Pensada para promocionar contenido ampliado en otra página sin ocupar mucho alto. */
.cta-compact{
  background: var(--dark-section-bg); padding: clamp(30px,4vw,48px) 0; text-align:center;
}
.cta-compact .eyebrow{ color: var(--accent-light); }
.cta-compact .eyebrow::before{ background: var(--accent-light); }
.cta-compact h2{ color:#fff; font-size: clamp(1.5rem,2.6vw,2rem); margin-bottom:.35em; }
.cta-compact p{ color: rgba(255,255,255,.75); max-width:560px; margin:0 auto 20px; }

/* -------- Contacto -------- */
.contact-grid{ display:grid; grid-template-columns: 1fr .9fr; gap:56px; align-items:start; margin-bottom:0; }
.contact-list{ display:flex; flex-direction:column; gap:20px; margin-top:28px; }
.contact-list > li{
  background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:16px 20px; font-size:.95rem;
}
.contact-label{ display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:1px; color: var(--text-muted); margin-bottom:4px; }
.contact-list a{ font-weight:600; }
.contact-list--split{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.whatsapp-pill{
  margin-left:auto; background: var(--maroon); color:#fff; padding:10px 18px; border-radius:999px; font-weight:600; font-size:.85rem;
  transition: background .2s var(--ease);
}
.whatsapp-pill:hover{ background: var(--maroon-dark); }

/* -- Lista de contacto vertical con icono: reemplaza .contact-list en la
   plantilla landing — misma tarjeta blanca, un patrón único para dirección,
   teléfono, móvil y WhatsApp en vez de mezclar filas sueltas y una píldora. -- */
.lp-contact-list{ display:flex; flex-direction:column; gap:14px; margin-top:28px; }
.lp-contact-item{
  display:flex; align-items:center; gap:14px;
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg); padding:14px 18px;
}
.lp-contact-icon{
  display:flex; align-items:center; justify-content:center; flex:none;
  width:42px; height:42px; border-radius:50%; background: var(--cream-alt); color: var(--maroon);
}
.lp-contact-icon svg{ width:20px; height:20px; }
.lp-contact-label{ display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:1px; color: var(--text-muted); margin-bottom:2px; }
.lp-contact-value{ display:block; font-size:.95rem; font-weight:700; color: var(--ink); }
a.lp-contact-value{ transition: color .2s var(--ease); }
a.lp-contact-value:hover{ color: var(--maroon); }

.map-wrap{ position:relative; margin-top:64px; }
.map-wrap iframe{ display:block; border-radius: var(--radius-lg); }
.map-link{
  position:absolute; top:14px; left: calc(var(--gutter) + 14px); z-index:5; background:#fff; padding:8px 14px;
  border-radius:8px; font-size:.85rem; font-weight:600; box-shadow: var(--shadow);
}

/* -------- Páginas de área de práctica -------- */
.area-hero{
  position:relative; background-size:cover; background-position:center 35%;
  background-color: var(--maroon-darker);
}
.area-hero-overlay{
  position:absolute; inset:0;
  background: linear-gradient(100deg, rgba(15,8,8,.86) 20%, rgba(55,17,17,.6) 100%);
}
.area-hero-inner{ position:relative; padding-top:148px; padding-bottom:60px; }
.breadcrumb{ font-size:.82rem; color: rgba(255,255,255,.65); margin-bottom:24px; }
.breadcrumb a{ font-weight:600; color: rgba(255,255,255,.9); }
.breadcrumb a:hover{ color:#fff; }
.breadcrumb span{ margin:0 6px; }
.area-hero h1{ color:#fff; font-size: clamp(2.1rem, 4.4vw, 3.2rem); margin-bottom:16px; }
.area-hero h1 span{ font-style: italic; font-weight:500; color:#f0d7c8; font-family: var(--serif); }
.area-hero-lead{ color: rgba(255,255,255,.92); font-size:1.08rem; max-width:640px; margin:0; }

.area-detail-grid{ display:grid; grid-template-columns: 1.2fr .8fr; gap:56px; align-items:start; }
.area-detail-text p{ font-size:1rem; }
.area-stat{
  display:inline-block; background: var(--cream-alt); border-radius: var(--radius);
  padding:14px 18px; border-top:0; margin: 8px 0 24px;
}
.area-detail-img{ border-radius: var(--radius-lg); box-shadow: var(--shadow); aspect-ratio: 800/500; object-fit:cover; width:100%; height:auto; }

/* Cuadrícula fija a 4 columnas: con 8 tarjetas siempre forma dos filas
   completas y simétricas, sin huecos sueltos como daba auto-fit. */
.related-grid{
  display:grid; grid-template-columns: repeat(4, 1fr); gap:16px;
  max-width: 1180px; margin: 0 auto;
}
.related-card{
  display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--border);
  border-radius: var(--radius-lg); padding:18px 20px; transition: all .25s var(--ease);
}
.related-card:hover{
  border-color: var(--maroon); background: var(--cream-alt);
  box-shadow: var(--shadow-soft); transform: translateY(-3px);
}
.related-num{
  display:flex; align-items:center; justify-content:center; flex:none;
  width:36px; height:36px; border-radius:50%; background: var(--cream-alt);
  font-family: var(--serif); font-weight:700; color: var(--maroon); font-size:.86rem;
  transition: background .25s var(--ease), color .25s var(--ease);
}
.related-card:hover .related-num{ background: var(--maroon); color:#fff; }
.related-name{ flex:1; font-weight:600; font-size:.95rem; color: var(--ink); }
.related-arrow{
  flex:none; width:16px; height:16px; color: var(--maroon);
  opacity:0; transform: translateX(-4px); transition: all .25s var(--ease);
}
.related-card:hover .related-arrow{ opacity:1; transform: translateX(0); }

@media (max-width:900px){
  .related-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width:520px){
  .related-grid{ grid-template-columns: 1fr; }
}

/* -------- Footer -------- */
.site-footer{ background: var(--maroon-darker); color: rgba(255,255,255,.82); padding: 64px 0 24px; }
.footer-inner{ display:grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap:40px; margin-bottom:40px; }
.footer-logo{ font-family: var(--serif); font-size:1.25rem; color:#fff; margin-bottom:6px; }
.footer-logo span{ display:block; font-family: var(--sans); font-size:.6rem; letter-spacing:2px; color: #e0b9b9; margin-top:4px; }
.footer-logo img{ height:auto; width:170px; background:#fff; padding:12px 16px; border-radius:12px; display:block; margin-bottom:14px; }
.footer-desc{ font-size:.88rem; color: rgba(255,255,255,.65); }
.footer-title{ color:#fff; font-weight:700; font-size:.82rem; text-transform:uppercase; letter-spacing:1px; margin-bottom:14px; }
.site-footer p{ color: inherit; font-size:.9rem; }
.site-footer a:hover{ color:#fff; }
.footer-bottom{
  text-align:center; font-size:.8rem; color: rgba(255,255,255,.5);
  border-top:1px solid rgba(255,255,255,.12); padding-top:22px;
}

/* -------- WhatsApp float -------- */
.whatsapp-float{
  position:fixed; bottom:24px; right:24px; z-index:150;
  background:#25d366; color:#fff; width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; box-shadow: 0 10px 24px -6px rgba(0,0,0,.4);
  transition: transform .2s var(--ease);
}
.whatsapp-float:hover{ transform: scale(1.06); }

/* -------- Responsive -------- */
@media (max-width: 1180px){
  .why-cards{ grid-template-columns: repeat(3, 1fr); gap:22px; }
}

@media (max-width: 900px){
  .hero{ min-height:0; }
  .hero-grid{ grid-template-columns: 1fr; padding-top:96px; padding-bottom:44px; }
  .hero-content{ max-width:none; }
  .hero-areas{ max-width:480px; }
  .hero-stats li{ padding:0 18px; }
  .hero-stats-panel{ padding: 18px 20px; }

  .team-grid, .contact-grid, .area-detail-grid{ grid-template-columns: 1fr; }
  .team-photo img.team-photo-small{ width:45%; right:16px; bottom:-24px; }
  .footer-inner{ grid-template-columns: 1fr 1fr; }
  .form-row{ grid-template-columns: 1fr; }

  .why-footer{ text-align:center; padding:30px 28px; }
  .why-footer-item{ flex-direction:column; align-items:center; text-align:center; min-width:200px; }
  .why-footer-divider{ display:none; }

  .services-grid{ grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px){
  .main-nav{
    position:absolute; top:80px; left:0; right:0; background: #fff;
    flex-direction:column; align-items:stretch; padding:20px 24px; gap:6px; border-bottom:1px solid var(--border);
    transform: translateY(-8px); opacity:0; pointer-events:none; transition: all .2s var(--ease);
    max-height: calc(100vh - 80px); overflow-y:auto;
  }
  .main-nav.is-open{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .main-nav > a{ padding:12px 4px; }
  .nav-dropdown summary{ padding:12px 4px; }
  .nav-dropdown-panel{
    position:static; transform:none; box-shadow:none; border:0; background:none;
    grid-template-columns:1fr; min-width:0; padding: 0 0 8px 12px; gap:0;
  }
  .nav-dropdown-panel a{ padding:9px 4px; font-weight:500; }
  .nav-toggle{ display:flex; }
  .phone-pill{ display:none; }
  .hero-grid{ padding-top:104px; }
  .hero-ctas{ flex-direction:column; align-items:stretch; }
  .hero-ctas .btn{ text-align:center; }
  .hero-stats{ flex-wrap:wrap; }
  .hero-stats li{ padding:0 14px 10px 0; }
  .hero-stats li + li{ border-left:0; }
  .hero-areas{ padding:6px 22px; }
  .team-photo img.team-photo-small{ position:static; width:100%; margin-top:16px; border:0; }
  .footer-inner{ grid-template-columns: 1fr; gap:28px; }

  .why-cards{ grid-template-columns: repeat(2, 1fr); gap:18px; }
  .why-footer{ flex-direction:column; align-items:stretch; text-align:center; padding:28px 24px; }
  .why-footer-cta{ width:100%; justify-content:center; }

  .services-grid{ grid-template-columns: 1fr; }
}

@media (max-width: 520px){
  .why-cards{ grid-template-columns: 1fr; }
  .why-card{ padding:36px 26px 30px; }
}

.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* ===================================================
   Plantilla maestra de landings Ads (Áreas de práctica)
   Namespace "lp-" para no afectar al resto del sitio.
   Se activa añadiendo class="landing-page" al <body>.
=================================================== */

/* -- Sistema tipográfico: Inter en toda la plantilla --
   Redefine --serif a Inter solo dentro de .landing-page, así
   h1/h2/h3 y el resto de usos de var(--serif) heredan Inter
   sin tocar la tipografía Playfair del resto del sitio. */
body.landing-page{
  --serif: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
body.landing-page .lp-hero-content h1{ font-weight:800; }

/* -- Ritmo vertical más compacto (solo en la plantilla landing) -- */
body.landing-page .section{ padding: clamp(48px,6vw,84px) 0; }
body.landing-page .section-head{ margin-bottom:36px; }

/* -- Cabecera de sección alineada a la izquierda (variante reutilizable) -- */
.section-head--left{ text-align:left; margin-left:0; margin-right:0; max-width:640px; }

/* -- Cabecera de sección con botón de llamada a la derecha, alineado con el título -- */
.section-head--split{ display:flex; align-items:center; justify-content:space-between; gap:16px 28px; flex-wrap:wrap; max-width:none; }
.section-head--split .section-head-text{ max-width:640px; margin:0; }

/* -- Botón de llamada compacto: icono + texto, color corporativo, reutilizable
   junto a cualquier título o en línea de texto. -- */
.btn-call{
  display:inline-flex; align-items:center; gap:8px; flex:none;
  padding:10px 20px; border-radius:999px; background: var(--maroon); color:#fff;
  font-weight:700; font-size:.9rem; white-space:nowrap;
  transition: background .2s var(--ease), transform .2s var(--ease);
}
.btn-call svg{ width:16px; height:16px; flex:none; }
.btn-call:hover{ background: var(--maroon-dark); transform: translateY(-2px); }

/* -- Sección oscura reutilizable: fondo --dark-section-bg + texto claro.
   Añadir junto a la clase del componente, ej: class="lp-trust section-dark" --*/
.section-dark{ background: var(--dark-section-bg); color: rgba(255,255,255,.82); }
.section-dark h1, .section-dark h2, .section-dark h3{ color:#fff; }
.section-dark p{ color: rgba(255,255,255,.75); }
.section-dark .eyebrow{ color: var(--accent-light); }
.section-dark .eyebrow::before{ background: var(--accent-light); }

/* -- Hero dividido -- */
.lp-hero{ background: var(--cream); }
.lp-hero-grid{
  display:grid; grid-template-columns: 1.05fr .95fr; align-items:center;
  gap: clamp(32px,5vw,72px);
  padding-top: clamp(36px,5.5vw,68px); padding-bottom: clamp(40px,6vw,72px);
}
.lp-hero-content{ max-width:560px; }
.lp-hero-content h1{ font-size: clamp(2.3rem, 4.6vw, 3.4rem); line-height:1.08; margin-bottom:16px; }
.lp-hero-subtitle{
  font-family: var(--sans); font-style:normal; font-weight:600;
  font-size:1.15rem; color: var(--maroon); margin:0 0 16px;
}
.lp-hero-lead{ font-size:1.05rem; max-width:500px; }
.lp-hero-visual{ position:relative; }
.lp-hero-visual img{
  width:100%; height:auto; aspect-ratio: 4/5; object-fit:cover; object-position: 68% 30%;
  border-radius: var(--radius-lg); box-shadow: var(--shadow-soft);
}
/* Modificadores de encuadre reutilizables: elegir según la composición de cada foto */
.lp-hero-visual img.lp-focus-portrait{ object-position: 50% 35%; }
.lp-hero-visual img.lp-focus-top{ object-position: 50% 15%; }
.lp-hero-badge{
  position:absolute; left:-18px; bottom:-22px; z-index:2;
  background:#fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft);
  padding:14px 22px; display:flex; flex-direction:column;
}
.lp-hero-badge strong{ font-family: var(--serif); font-weight:700; font-size:2rem; color: var(--maroon); line-height:1; }
.lp-hero-badge span{ font-size:.78rem; color: var(--text-muted); margin-top:4px; white-space:nowrap; }

/* -- Franja de confianza: siempre oscura (ver .section-dark en el HTML) -- */
.lp-trust{ border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.lp-trust.section-dark{ border-color: rgba(255,255,255,.12); }
.lp-trust-inner{ display:flex; flex-wrap:wrap; justify-content:center; padding: 22px var(--gutter); }
.lp-trust-item{ display:flex; flex-direction:column; align-items:center; text-align:center; padding: 6px 34px; }
.lp-trust-item + .lp-trust-item{ border-left:1px solid var(--border); }
.section-dark .lp-trust-item + .lp-trust-item{ border-left-color: rgba(255,255,255,.16); }
.lp-trust-item strong{ font-family: var(--serif); font-weight:700; font-size:1.7rem; color: var(--maroon); line-height:1.2; }
.lp-trust-item span{ font-size:.88rem; color: var(--text-muted); margin-top:6px; }
.section-dark .lp-trust-item strong{ color: var(--accent-light); }
.section-dark .lp-trust-item span{ color: rgba(255,255,255,.72); }

/* -- Barra de contacto rápido: reemplaza al antiguo .topbar, ahora como
   franja propia entre el header y el hero para máxima visibilidad. -- */
.lp-quickcontact{ border-bottom:1px solid var(--border); }
.lp-quickcontact.section-dark{ border-bottom-color: rgba(255,255,255,.12); }
.lp-trust-contact{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:10px 32px; padding: 16px var(--gutter); font-size:.92rem; font-weight:500;
}
.lp-trust-contact a, .lp-trust-contact span{
  display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
  color: var(--text-muted);
}
.section-dark .lp-trust-contact a, .section-dark .lp-trust-contact span{ color: rgba(255,255,255,.85); }
.lp-trust-contact svg{ width:17px; height:17px; opacity:.85; flex:none; }
.lp-trust-contact a{ font-weight:700; transition: color .2s var(--ease); }
.lp-trust-contact a:hover{ color: var(--maroon); }
.section-dark .lp-trust-contact a:hover{ color: var(--accent-light); }

/* -- Barra de contacto intermedia: variante clara del bloque anterior, con
   mensaje + accesos en píldora, para repetir el CTA de contacto a mitad de
   página sin que se perciba como una copia de .lp-quickcontact. -- */
.lp-midcontact{ background: var(--cream-alt); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.lp-midcontact-inner{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:14px 28px; padding: 18px var(--gutter);
}
.lp-midcontact-text{ margin:0; font-weight:600; font-size:.95rem; color: var(--ink); flex:1 1 260px; }
.lp-midcontact-actions{ display:flex; flex-wrap:wrap; gap:10px; }
.lp-midcontact-action{
  display:inline-flex; align-items:center; gap:8px; flex:none;
  padding:10px 18px; border-radius:999px; background:#fff; border:1px solid var(--border);
  font-weight:700; font-size:.86rem; color: var(--ink); white-space:nowrap;
  transition: background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.lp-midcontact-action svg{ width:16px; height:16px; flex:none; color: var(--maroon); transition: color .2s var(--ease); }
.lp-midcontact-action:hover{ background: var(--maroon); border-color: var(--maroon); color:#fff; }
.lp-midcontact-action:hover svg{ color:#fff; }
@media (max-width:720px){
  .lp-midcontact-inner{ flex-direction:column; align-items:flex-start; }
  .lp-midcontact-text{ flex-basis:auto; }
  .lp-midcontact-actions{ width:100%; }
  .lp-midcontact-action{ flex:1; justify-content:center; }
}

/* -- Icono de los micro-CTA (.btn-call) y accesos de contacto: debe reflejar
   la acción real del enlace, nunca por defecto el teléfono.
   - href="tel:..."                -> icono teléfono (ver .lp-quickcontact)
   - href="https://wa.me/..."      -> icono WhatsApp (ver .whatsapp-float)
   - href="#contacto" (scroll)     -> icono formulario/flecha (ver .lp-midcontact-action[href="#contacto"])
   Al copiar la plantilla a otra página de área, revisar el href de cada
   .btn-call y usar el icono que corresponda de esta lista. -- */

/* -- Servicios (cuadrícula alineada a la izquierda) -- */
.lp-services-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:18px; max-width:1180px; margin:0 auto; }
.lp-service-card{
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg);
  padding: 24px 22px; text-align:left;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.lp-service-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-soft); border-color: transparent; }
.lp-service-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:50%; background: var(--cream-alt); color: var(--maroon);
  margin-bottom:14px;
}
.lp-service-icon svg{ width:21px; height:21px; }
.lp-service-card h3{ font-size:1.05rem; margin-bottom:.4em; text-align:left; }
.lp-service-card p{ font-size:.9rem; margin:0; text-align:left; }

/* -- Diferencial: tarjetas compactas -- */
.lp-diff-cards{ display:grid; grid-template-columns: repeat(4,1fr); gap:16px; max-width:1180px; margin:0 auto; }
/* Variante para anidar dentro de .lp-media-block (columna más estrecha) */
.lp-diff-cards--2col{ grid-template-columns: repeat(2,1fr); max-width:none; }
.lp-diff-card{ background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); padding: 22px 20px; text-align:left; }
.lp-diff-card-icon{
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%; background: var(--cream-alt); color: var(--maroon);
  margin-bottom:12px;
}
.lp-diff-card-icon svg{ width:19px; height:19px; }
.lp-diff-card h3{ font-size:.98rem; margin-bottom:.4em; }
.lp-diff-card p{ font-size:.86rem; margin:0; }

/* -- Cómo trabajamos -- */
.lp-steps-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:28px; max-width:1100px; margin:0 auto; }
/* Variante apilada para anidar dentro de .lp-media-block junto a una foto */
.lp-steps-grid--1col{ grid-template-columns:1fr; gap:20px; max-width:none; }
.lp-step{
  border-top:2px solid var(--maroon); padding-top:18px; text-align:left;
  display:grid; grid-template-columns:auto 1fr; column-gap:14px; align-items:baseline;
}
.lp-step-num{ grid-column:1; grid-row:1; font-family: var(--serif); font-weight:700; font-size:2.1rem; color: var(--maroon); opacity:.55; line-height:1; }
.lp-step h3{ grid-column:2; grid-row:1; font-size:1.08rem; margin:0; }
.lp-step p{ grid-column:2; grid-row:2; font-size:.92rem; margin:6px 0 0; }

/* -- Bloque de foto humana (equipo, reunión, llamada) junto a contenido.
   Reutilizable: primer hijo = contenido, segundo hijo = foto/placeholder. -- */
.lp-media-block{ display:grid; grid-template-columns: 1.15fr .85fr; gap: clamp(28px,4vw,48px); align-items:center; }

/* -- Placeholder de fotografía: caja discreta con icono + leyenda del
   encargo pendiente, mismo lenguaje de icono lineal que el resto del sitio. -- */
.lp-photo-placeholder{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  width:100%; aspect-ratio: 4/3; text-align:center; padding:24px;
  border:1.5px dashed var(--border); border-radius: var(--radius-lg); background: var(--cream-alt);
}
.lp-photo-placeholder svg{ width:32px; height:32px; color: var(--text-muted); opacity:.65; }
.lp-photo-placeholder strong{ font-size:.86rem; font-weight:700; color: var(--ink-soft); }
.lp-photo-placeholder span{ font-size:.8rem; color: var(--text-muted); max-width:240px; }

/* -- Foto real dentro de .lp-media-block: mismas proporciones que el
   placeholder que sustituye, para que el ritmo de la retícula no cambie. -- */
.lp-media-photo{
  width:100%; height:auto; aspect-ratio: 4/3; object-fit:cover;
  border-radius: var(--radius-lg); box-shadow: var(--shadow-soft);
}

/* -- Cifra destacada: el número manda, el resto es secundario. Siempre oscura. -- */
.lp-stat-block{ padding: clamp(26px,3.2vw,42px) 0; text-align:center; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.lp-stat-block.section-dark{ border-color: rgba(255,255,255,.12); }
.lp-stat-number{ font-family: var(--serif); font-weight:800; color: var(--maroon); font-size: clamp(3.2rem,8vw,5.5rem); line-height:1; margin:0; }
.lp-stat-label{ font-size:1.05rem; font-weight:700; color: var(--ink); margin:6px 0 6px; }
.lp-stat-desc{ font-size:.85rem; color: var(--text-muted); opacity:.9; max-width:380px; margin:0 auto; }
.section-dark .lp-stat-number{ color: var(--accent-light); }
.section-dark .lp-stat-label{ color:#fff; }
.section-dark .lp-stat-desc{ color: rgba(255,255,255,.65); }
.lp-stat-cta{ margin-top:18px; }

/* -- CTA compacto en tarjeta: disponible para reutilizar en otras páginas -- */
.lp-cta-mid{
  max-width:760px; margin:0 auto; text-align:center;
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft); padding: clamp(28px,4vw,40px) clamp(22px,4vw,48px);
}
.lp-cta-mid h2{ font-size: clamp(1.5rem,2.8vw,1.9rem); margin-bottom:.4em; }
.lp-cta-mid p{ margin-bottom:0; }
.lp-cta-mid .hero-ctas{ justify-content:center; margin-top:20px; }

/* -- Footer reutilizable: marca, despacho, contacto, áreas + barra legal -- */
.lp-footer{ padding: 44px 0 0; }
.lp-footer-inner{
  display:grid; grid-template-columns: 1.2fr 1.1fr 1fr; gap:36px 40px;
  padding-bottom:36px; margin-bottom:0;
}
.lp-footer-brand-logo{ height:auto; width:150px; background:#fff; padding:10px 14px; border-radius:10px; display:block; margin-bottom:14px; }
.lp-footer-brand p{ font-size:.86rem; color: rgba(255,255,255,.62); max-width:280px; margin:0; }
.lp-footer-text{ font-size:.9rem; margin:0 0 12px; }
.lp-footer-link{ display:inline-flex; align-items:center; gap:6px; font-size:.85rem; font-weight:700; color:#fff; }
.lp-footer-link:hover{ color: #f0d7c8; }
.lp-footer-group + .lp-footer-group{ margin-top:16px; }
.lp-footer-areas{ display:grid; grid-template-columns:1fr 1fr; gap:2px 14px; }
.lp-footer-areas a{ display:block; padding:5px 0; font-size:.85rem; color: rgba(255,255,255,.72); }
.lp-footer-areas a:hover{ color:#fff; }
/* Barra legal: línea fina de separación arriba, enlaces legales centrados
   y el copyright debajo, en vez de una fila repartida a los lados. */
.lp-footer-bottom{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:12px; padding:24px 0 26px; border-top:1px solid rgba(255,255,255,.12);
}
.lp-footer-copy{ order:2; font-size:.78rem; color: rgba(255,255,255,.5); margin:0; }
.lp-footer-legal{ order:1; display:flex; flex-wrap:wrap; justify-content:center; gap:8px 20px; }
.lp-footer-legal a{ font-size:.78rem; color: rgba(255,255,255,.55); }
.lp-footer-legal a:hover{ color:#fff; }

/* -- Barra fija móvil -- */
.lp-mobile-bar{ display:none; }

@media (max-width:1180px){
  .lp-diff-cards{ max-width:960px; }
}

@media (max-width:900px){
  .lp-hero-grid{ grid-template-columns:1fr; padding-top:32px; }
  .lp-hero-content{ max-width:none; }
  .lp-hero-visual{ margin-top:12px; max-width:420px; margin-inline:auto; }
  .lp-hero-badge{ left:10px; bottom:-18px; padding:12px 16px; }
  .lp-hero-badge strong{ font-size:1.5rem; }

  .lp-services-grid{ grid-template-columns: repeat(2,1fr); }
  .lp-diff-cards{ grid-template-columns: repeat(2,1fr); }
  .lp-steps-grid{ grid-template-columns:1fr; gap:24px; max-width:520px; }

  .lp-media-block{ grid-template-columns:1fr; }
  .lp-photo-placeholder{ max-width:480px; margin:0 auto; aspect-ratio:3/2; }
  .lp-media-photo{ max-width:480px; margin:0 auto; aspect-ratio:3/2; display:block; }

  .lp-footer-inner{ grid-template-columns: 1fr 1fr; }
}

@media (max-width:720px){
  .lp-trust-inner{ gap:14px 0; padding:16px var(--gutter); }
  .lp-trust-item{ flex:1 1 45%; padding:6px 12px; }
  .lp-trust-item:nth-child(odd){ border-left:0; border-right:1px solid var(--border); }
  .lp-trust-item:nth-child(even){ border-left:0; }
  .lp-trust-contact{ gap:8px 20px; font-size:.82rem; padding:12px var(--gutter); }
  .lp-trust-contact .lp-trust-address{ display:none; }

  .lp-services-grid{ grid-template-columns:1fr; }
  .lp-diff-cards{ grid-template-columns:1fr; }

  .section-head--left{ max-width:none; }

  .lp-footer{ padding-top:36px; }
  .lp-footer-inner{ grid-template-columns: 1fr; gap:28px; padding-bottom:28px; }
  .lp-footer-bottom{ padding-bottom:16px; }

  .whatsapp-float{ display:none; }

  .lp-mobile-bar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:200;
    background:#fff; border-top:1px solid var(--border);
    box-shadow: 0 -10px 24px -14px rgba(40,20,10,.3);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .lp-mobile-bar a{
    flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
    padding:15px 10px; font-weight:700; font-size:.92rem;
  }
  .lp-mobile-bar a svg{ width:18px; height:18px; flex:none; }
  .lp-bar-call{ color: var(--ink); }
  .lp-bar-whatsapp{ background:#25d366; color:#fff; border-left:1px solid rgba(255,255,255,.3); }

  body.has-sticky-bar{ padding-bottom: calc(58px + env(safe-area-inset-bottom)); }
}

@media (max-width:520px){
  .lp-diff-card{ padding:20px 18px; }
}

/* -------- Aviso de cookies -------- */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:300;
  background: var(--maroon-darker); box-shadow: 0 -10px 30px -10px rgba(0,0,0,.35);
}
.cookie-banner-inner{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:14px 28px; padding: 16px var(--gutter);
}
.cookie-banner-inner p{ margin:0; font-size:.85rem; color: rgba(255,255,255,.82); max-width:640px; }
.cookie-banner-inner a{ color: var(--accent-light); text-decoration:underline; }
.cookie-banner-actions{ flex:none; }
.cookie-banner .btn{ padding:10px 22px; font-size:.85rem; }
@media (max-width:720px){
  body.has-sticky-bar .cookie-banner{ bottom: calc(58px + env(safe-area-inset-bottom)); }
}

/* -------- Páginas legales (Aviso legal, Privacidad, Cookies) -------- */
.legal-doc{ max-width: 780px; margin: 0 auto; }
.legal-doc h1{ font-size: clamp(1.9rem, 3.6vw, 2.6rem); margin-bottom:.6em; }
.legal-doc h2{ font-size:1.2rem; margin-top:1.8em; margin-bottom:.5em; }
.legal-doc p{ font-size:.98rem; }
.legal-doc ul{ margin:0 0 1em; padding-left:1.3em; list-style: disc; }
.legal-doc li{ font-size:.98rem; color: var(--ink-soft); margin-bottom:.4em; }
.legal-doc a{ color: var(--maroon); font-weight:600; text-decoration:underline; }
.legal-updated{ margin-top:2.5em; font-size:.85rem; color: var(--text-muted); }

/* -------- Accesibilidad: menos movimiento -------- */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
