/* main.css — Control Plagas Mallorca. Carga bloqueante (el preload trick disparaba CLS). */

/* 1 · Ritmo vertical y cabeceras de sección */
.section{padding:var(--p-section) 0}
.section--alt{background:var(--c-bg-alt)}
.section--soft{background:var(--c-brand-soft)}
.section--brand{position:relative;isolation:isolate;overflow:hidden;background:var(--c-brand);color:#fff}
.section--brand::after{content:"";position:absolute;z-index:-1;right:-10vw;top:-40%;
  width:52vw;height:52vw;max-width:680px;max-height:680px;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(58,143,158,.45),transparent 72%)}
.section--brand h2,.section--brand h3{color:#fff}
.section--brand p{color:rgba(255,255,255,.92)}
.section--sea{background:var(--c-sea-soft)}
.section--sea .callout,.section--sea .toc,.section--sea .author{background:#fff}
.section--brand a:not(.btn){color:#fff}
.section--tight{padding-block:clamp(1.5rem,1rem + 2vw,2.5rem)}
/* Franja bajo el hero con los párrafos que no caben en la banda */
.section--intro{padding-block:clamp(1.5rem,1rem + 2vw,2.5rem)}
.section--intro .narrow{max-width:var(--w-prose)}
.section--intro .narrow>:last-child{margin-bottom:0}
.section--intro .chips{margin-bottom:var(--s-4)}
/* Secciones consecutivas del mismo fondo se separan con un filo, no con aire extra */
.section:not([class*="section--"])+.section:not([class*="section--"]){border-top:1px solid var(--c-line)}

.section__head{max-width:76ch;margin:0 auto clamp(1.75rem,1.25rem + 2vw,2.75rem);text-align:center}
.section__head h2{color:var(--c-ink);margin-bottom:var(--s-3)}
.section--brand .section__head h2{color:#fff}
.section__head p{color:var(--c-muted);font-size:var(--fs-lg);line-height:1.5;margin-bottom:0}
.section--brand .section__head p{color:rgba(255,255,255,.9)}
/* Rótulo: mayúsculas pequeñas con un guion de color delante. Usa --c-sea (7,2:1);
   --c-brand-mid da 3,2:1 y NO vale para texto. */
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:var(--s-3);
  font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--ls-caps);text-transform:uppercase;
  color:var(--c-sea)}
.eyebrow::before{content:"";width:22px;height:2px;border-radius:2px;background:currentColor;opacity:.7}
.section--brand .eyebrow{color:#fff}
.section--soft .eyebrow{color:var(--c-brand-dark)}
/* Regla de sección: la franja de tres colores, corta y centrada */
.section__rule{width:56px;height:3px;border:0;border-radius:3px;background:var(--g-stripe);
  margin:var(--s-4) auto 0}
.section--brand .section__rule{background:rgba(255,255,255,.55)}

.prose{max-width:var(--w-prose);margin-inline:auto}
.prose>*+h2{margin-top:var(--s-8)}
.prose>*+h3{margin-top:var(--s-6)}
.lead{font-size:var(--fs-lg);color:var(--c-ink);line-height:1.55}
.muted{color:var(--c-muted)}
.center{text-align:center}
.stack>*+*{margin-top:var(--s-4)}
/* Bloque de texto destacado con barra de acento (clusters «por qué elegirnos») */
.feature{padding-left:var(--s-6);border-left:2px solid var(--c-line);position:relative}
.feature::before{content:"";position:absolute;left:-2px;top:0;width:2px;height:2.4rem;background:var(--c-sea)}
.feature h3{color:var(--c-ink);font-size:var(--fs-lg)}
.actions{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.actions--center{justify-content:center}
/* Utilidad de ritmo — evita el atributo style, prohibido en este proyecto */
.mt-8{margin-top:var(--s-8)}
.narrow{max-width:900px;margin-inline:auto}

.grid{display:grid;gap:var(--s-6)}
@media (min-width:640px){.grid--2,.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:960px){
  .grid--3{grid-template-columns:repeat(3,1fr)}
  .grid--4{grid-template-columns:repeat(4,1fr)}
}
@media (min-width:640px) and (max-width:959px){.grid--3>:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:50%}}
/* Cluster centrado, fila incompleta al centro; 5-6 hijos → 3+2 / 3+3, nunca 4+1 / 4+2 */
.grid--center{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-6)}
.grid--center>*{flex:1 1 280px;max-width:360px}
.grid--center>.card{height:auto}
.grid--center.grid--center--3>*,.grid--center:has(>:nth-child(5):last-child,>:nth-child(6):last-child)>*{flex-basis:320px;max-width:380px}
p.center,.table-wrap+.narrow{max-width:var(--w-prose);margin-inline:auto;text-align:center}

/* 2 · Tarjeta única (.card) — servicios, plagas, zonas, sectores, casos, blog */
.card{position:relative;display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--c-line);border-radius:var(--r-md);padding:var(--s-6);height:100%;
  transition:border-color .2s,box-shadow .2s,transform .2s}
/* Stretched link: un único enlace por tarjeta; «Ver…» es <span> */
.card__title a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.card:hover{border-color:transparent;box-shadow:var(--shadow-2)}
@media (prefers-reduced-motion:no-preference){.card:hover{transform:translateY(-3px)}}
.card__icon{width:52px;height:52px;display:grid;place-items:center;flex:0 0 auto;
  margin-bottom:var(--s-4);border-radius:var(--r-md);
  background:var(--c-sea-soft);color:var(--c-sea)}
.card__icon svg{width:26px;height:26px}
.card__title{font-size:var(--fs-h3);margin-bottom:var(--s-2);line-height:1.25}
.card__title a{color:var(--c-ink);text-decoration:none}
.card__title a:hover{color:var(--c-brand-dark)}
.card p{font-size:var(--fs-sm);color:var(--c-body);margin-bottom:var(--s-4)}
.card__perks{list-style:none;margin:0 0 var(--s-4);padding:0;display:grid;gap:var(--s-2)}
.card__perks li{position:relative;padding-left:1.4rem;font-size:var(--fs-sm);color:var(--c-body)}
.card__perks li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;
  border-left:2px solid var(--c-brand-mid);border-bottom:2px solid var(--c-brand-mid);
  transform:rotate(-45deg)}
.card__more{margin-top:auto;font-size:var(--fs-sm);font-weight:600;color:var(--c-brand-dark);
  display:inline-flex;align-items:center;gap:.4rem;pointer-events:none}
.card:hover .card__more{color:var(--c-sea)}
.card__more::after{content:"→";transition:transform .2s}
.card:hover .card__more::after{transform:translateX(4px)}
.card__meta{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;
  color:var(--c-muted);font-weight:600;margin-bottom:var(--s-2)}
.card--flat{background:var(--c-bg-alt);border-color:transparent}
/* Trabajo sin ficha: borde discontinuo + fondo, nunca opacity (tumbaba .card__meta a 4,0:1) */
.card--static{background:var(--c-bg-alt);border-style:dashed;border-color:var(--c-line)}
.card--static:hover{border-color:var(--c-line);box-shadow:none;transform:none}
.card--static .card__more{color:var(--c-muted);cursor:default}
.card--static .card__more::after{content:"";transform:none}
/* Tarjeta informativa sin enlace (por qué elegirnos, tipos de servicio):
   fondo suave y sin lift, porque no lleva a ninguna parte */
.card--info{background:var(--c-bg-alt);border-color:transparent}
.card--info:hover{border-color:transparent;box-shadow:none;transform:none}
.card--info .card__title{font-size:var(--fs-lg)}
.card--info .card__icon{background:#fff;border:1px solid var(--c-line)}
.card--info>:last-child{margin-bottom:0}
.card__thumb{margin:calc(var(--s-6) * -1) calc(var(--s-6) * -1) var(--s-6);
  border-radius:var(--r-md) var(--r-md) 0 0;overflow:hidden;background:var(--c-bg-alt)}
/* `aspect-ratio` fijo: todas las miniaturas recortan igual aunque la foto de
   origen no venga exactamente a 3:2, y la altura queda reservada antes de que
   cargue la imagen. */
.card__thumb img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .5s ease}
@media (prefers-reduced-motion:no-preference){.card:hover .card__thumb img{transform:scale(1.04)}}
/* Tarjeta con foto: el icono monta sobre la esquina inferior de la miniatura.
   Sigue siendo el mismo SVG que el tile de la home, que es lo que hace
   reconocible el destino. */
.card--photo .card__icon{position:relative;margin-top:-2.6rem;margin-left:0;
  background:#fff;box-shadow:var(--shadow-1);border:1px solid var(--c-line)}

/* 3 · Tiles (bloque «¿Qué plaga tienes?») */
.tiles{display:grid;gap:var(--s-4);grid-template-columns:repeat(2,1fr)}
@media (min-width:720px){.tiles{grid-template-columns:repeat(4,1fr)}}
.tile{display:flex;flex-direction:column;text-decoration:none;overflow:hidden;
  background:var(--c-brand-soft);color:var(--c-brand-dark);border-radius:var(--r-md);
  border:1px solid transparent;transition:background-color .2s,color .2s,transform .2s,box-shadow .2s}
.tile__media{display:block;background:var(--c-brand-dark)}
.tile__media img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .5s ease}
.tile__body{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4);flex:1}
.tile__label{font-family:var(--f-head);font-weight:600;font-size:var(--fs-sm);
  letter-spacing:.06em;text-transform:uppercase;line-height:1.25}
.tile__desc{font-size:var(--fs-xs);line-height:1.45;color:var(--c-body)}
.tile svg{width:46px;height:46px;margin:var(--s-6) auto 0}
.tile:hover{background:var(--c-brand);color:#fff;box-shadow:var(--shadow-2)}
.tile:hover .tile__desc{color:rgba(255,255,255,.9)}
@media (prefers-reduced-motion:no-preference){
  .tile:hover{transform:translateY(-3px)}
  .tile:hover .tile__media img{transform:scale(1.04)}
}
.tile--all{background:var(--c-sea-dark);color:#fff;text-align:center;justify-content:center}
.tile--all .tile__desc{color:rgba(255,255,255,.85)}
.tile--all:hover{background:var(--c-brand)}

/* 4 · Barra de confianza */
.trust{display:grid;gap:var(--s-6);grid-template-columns:1fr}
@media (min-width:760px){
  .trust{grid-template-columns:repeat(3,1fr);gap:var(--s-8)}
  .trust__item+.trust__item{padding-left:var(--s-8);border-left:1px solid var(--c-line)}
}
.trust__item{display:flex;gap:var(--s-4);align-items:flex-start}
.trust__item svg{width:44px;height:44px;flex:0 0 auto;padding:10px;border-radius:50%;
  color:var(--c-sea);background:var(--c-sea-soft)}
.trust__item p{font-size:var(--fs-sm);color:var(--c-body);margin:0}
/* Etiqueta, no encabezado: un <h3> antes del primer <h2> rompería H1→H2→H3.
   Especificidad 0-2-1 para ganar a «.trust__item p». */
.trust__item p.trust__label{font-family:var(--f-head);font-size:var(--fs-xs);
  letter-spacing:.12em;text-transform:uppercase;color:var(--c-ink);
  margin:0 0 var(--s-1);font-weight:700}

/* 5 · Split texto + imagen */
.split{display:grid;gap:var(--s-6);align-items:center}
@media (min-width:900px){
  .split{grid-template-columns:1fr 1fr;gap:var(--s-12)}
  .split--reverse>.split__media{order:2}
}
.split__media img{width:100%;border-radius:var(--r-lg)}
/* Split de 3 hijos (texto / bloque sin clase / foto): bloque bajo el texto, foto a toda altura */
@media (min-width:900px){
  .split:has(>div:not([class])+.split__media){grid-template-rows:auto 1fr;row-gap:var(--s-8);align-items:start}
  .split:has(>div:not([class])+.split__media)>.split__media{grid-column:2;grid-row:1/span 2;align-self:center}
  /* Split texto / formulario / foto (home #presupuesto): el formulario es alto,
     así que ocupa la columna derecha entera y la foto se apila bajo el texto. */
  .split:has(>.form-panel+.split__media){grid-template-rows:auto 1fr;row-gap:var(--s-8);align-items:start}
  .split:has(>.form-panel+.split__media)>.form-panel{grid-column:2;grid-row:1/span 2}
  .split:has(>.form-panel+.split__media)>.split__media{grid-column:1;align-self:end}
}
.split>div:not([class])>h3{margin-top:0}
.split>div:not([class])>:last-child{margin-bottom:0}
.split__body h2{color:var(--c-ink)}
.split__body>:last-child{margin-bottom:0}
.split--top{align-items:start}
/* /sectores/*: intro texto + foto; en split--top la foto acompaña al texto largo */
.section--intro:has(.split){padding-block:var(--p-section)}
@media (min-width:900px){
  .split--intro{grid-template-columns:1.15fr .85fr}
  .split--top>.split__media{position:sticky;top:calc(var(--h-header) + var(--s-6))}
}
/* Datos de contacto con icono (columna izquierda de /contacto/) */
.nap{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-4)}
.nap li{display:flex;gap:var(--s-4);align-items:flex-start;font-size:var(--fs-sm);color:var(--c-body)}
.nap svg{width:40px;height:40px;flex:0 0 auto;padding:9px;border-radius:50%;
  color:var(--c-sea);background:var(--c-sea-soft)}
.nap strong{display:block;color:var(--c-ink)}
/* Columna derecha con callout + foto apiladas (split de 3 hijos sin huecos) */
.split__aside{display:flex;flex-direction:column;gap:var(--s-6)}
.split__aside .callout{margin-bottom:0}
.split__aside .split__media{margin:0}

/* 6 · Pasos numerados */
.steps{counter-reset:step;display:grid;gap:var(--s-6)}
@media (min-width:640px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{position:relative;padding-top:var(--s-8);border-top:1px solid var(--c-line)}
.step::before{counter-increment:step;content:"0" counter(step);position:absolute;top:-1px;left:0;
  padding-top:var(--s-3);border-top:2px solid var(--c-sea);
  font-family:var(--f-head);font-size:var(--fs-xs);font-weight:700;letter-spacing:.12em;
  color:var(--c-sea);line-height:1}
.step h3{font-size:var(--fs-lg);margin-bottom:var(--s-2)}
.step p{font-size:var(--fs-sm);margin:0}
.section--brand .step{border-top-color:rgba(255,255,255,.28)}
.section--brand .step::before{color:#fff;border-top-color:#fff}
/* Variante para recuentos que no son múltiplo de 4 (p. ej. 5 pasos): centra
   en filas de 3, sin dejar un paso huérfano solo a la izquierda */
.steps.steps--tri{display:flex;flex-wrap:wrap;justify-content:center}
.steps.steps--tri .step{flex:1 1 300px;max-width:340px}
/* Variante con número en badge circular (método sobre banda) */
.steps.steps--badge .step{padding-top:0;text-align:center;border-top:0}
.steps.steps--badge .step::before{position:static;display:inline-flex;padding:0;border-top:0;
  align-items:center;justify-content:center;width:50px;height:50px;margin:0 auto var(--s-4);
  border:1.5px solid rgba(255,255,255,.6);border-radius:50%;font-size:var(--fs-sm);letter-spacing:0}
/* Variante con icono en vez de número: tarjetas translúcidas sobre la banda */
.steps.steps--icon{gap:var(--s-4)}
.steps.steps--icon .step{padding:var(--s-6);border:1px solid rgba(255,255,255,.22);
  border-radius:var(--r-md);background:rgba(255,255,255,.07)}
.steps.steps--icon .step::before{content:none}
.step__icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:var(--s-4);
  border-radius:50%;background:rgba(255,255,255,.14);color:#fff}
.step__icon svg{width:24px;height:24px}

/* 7 · FAQ (acordeón accesible) */
.faq{max-width:var(--w-prose);margin-inline:auto;border-top:1px solid var(--c-line)}
.faq__item{border-bottom:1px solid var(--c-line)}
.faq__q{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4);
  padding:var(--s-4) 0;background:none;border:0;cursor:pointer;text-align:left;
  font:600 var(--fs-md)/1.4 var(--f-head);color:var(--c-ink);transition:color .15s}
.faq__q:hover{color:var(--c-sea)}
.faq__q::after{content:"";flex:0 0 auto;width:28px;height:28px;margin-top:-.1em;
  border-radius:50%;background:var(--c-sea-soft);
  background-image:linear-gradient(var(--c-sea),var(--c-sea)),linear-gradient(var(--c-sea),var(--c-sea));
  background-repeat:no-repeat;background-size:12px 2px,2px 12px;background-position:center;
  transition:transform .2s,background-size .2s}
.faq__q[aria-expanded=true]::after{transform:rotate(180deg);background-size:12px 2px,2px 0}
.faq__a{padding:0 0 var(--s-4);max-width:64ch}
.faq__a>:last-child{margin-bottom:0}
.faq__a[hidden]{display:none}

/* 8 · Formulario (6 campos + consentimiento, todos obligatorios) */
.form{display:grid;gap:var(--s-4)}
.form__row{display:grid;gap:var(--s-4)}
@media (min-width:640px){.form__row--2{grid-template-columns:1fr 1fr}}
.field label{display:block;margin-bottom:var(--s-2);font-size:var(--fs-sm);font-weight:600;color:var(--c-ink)}
.field .req{color:var(--c-accent-dark)}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:.7rem 1rem;
  font:400 1rem/1.4 var(--f-body);color:var(--c-ink);background:var(--c-bg-alt);
  border:1px solid var(--c-line);border-radius:var(--r-sm);appearance:none;
  transition:border-color .15s,background-color .15s,box-shadow .15s}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--c-sea) 50%),
  linear-gradient(135deg,var(--c-sea) 50%,transparent 50%);
  background-position:calc(100% - 20px) 21px,calc(100% - 14px) 21px;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:2.6rem}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--c-sea);background:#fff;
  box-shadow:0 0 0 3px var(--c-sea-soft);outline-offset:0}
.field input[aria-invalid=true],.field select[aria-invalid=true]{border-color:var(--c-danger)}
.field .opt{font-weight:400;color:var(--c-muted)}
.field--file input[type=file]{min-height:0;padding:.55rem .7rem;font-size:var(--fs-sm);cursor:pointer;
  border-style:dashed;background:var(--c-bg-alt)}
.field--file input[type=file]::file-selector-button{margin-right:.7rem;padding:.4rem .8rem;
  font:inherit;font-size:var(--fs-xs);font-weight:600;color:var(--c-brand-dark);
  background:var(--c-brand-soft);border:0;border-radius:var(--r-sm);cursor:pointer}
.field--file input[aria-invalid=true]{border-color:var(--c-danger)}
.field__error{display:block;margin-top:var(--s-2);font-size:var(--fs-xs);
  color:var(--c-danger);font-weight:600;min-height:1.1em}
.form__hint,.form__note,.form__legal{font-size:var(--fs-xs);color:var(--c-muted);margin:0;line-height:1.5}
/* Consentimiento: el input genérico lleva appearance:none → el check se dibuja a mano */
.field--check{display:grid;grid-template-columns:auto 1fr;gap:var(--s-2) var(--s-3);align-items:start;
  padding:var(--s-4);background:var(--c-bg-alt);border:1px solid var(--c-line);border-radius:var(--r-sm)}
.field--check input{width:22px;height:22px;min-height:22px;padding:0;margin:2px 0 0;cursor:pointer;
  background:#fff center/14px no-repeat;border:2px solid var(--c-brand-mid);border-radius:6px}
.field--check input:checked,.field--check input:checked:focus{background-color:var(--c-brand);border-color:var(--c-brand);
  background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 12.5l4.5 4.5L19 7' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/></svg>")}
.field--check input[aria-invalid=true]{border-color:var(--c-danger)}
.field--check label{margin:0;font-weight:400;font-size:var(--fs-sm);color:var(--c-body);line-height:1.5;cursor:pointer}
.field--check label strong{font-weight:600;color:var(--c-ink)}
.field--check .field__error{grid-column:1/-1;margin-top:0;min-height:0}
.form__status{font-size:var(--fs-sm);font-weight:600;margin:0;min-height:1.4em}
.form__status[data-state=ok]{color:var(--c-brand-dark)}
.form__status[data-state=error]{color:var(--c-danger)}
.form-panel{position:relative;overflow:hidden;background:#fff;border:1px solid var(--c-line);
  border-radius:var(--r-lg);padding:clamp(1.5rem,1rem + 2vw,2.5rem);box-shadow:var(--shadow-2)}
.form-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--g-stripe)}

/* 9 · (El breadcrumb vive en critical.css: es parte de la banda del hero.) */

/* 10 · Cobertura, tablas, avisos */
.chips{display:flex;flex-wrap:wrap;gap:var(--s-2);list-style:none;margin:0;padding:0}
.chips a,.chips span{display:inline-block;padding:.45rem .95rem;border-radius:var(--r-pill);
  border:1px solid var(--c-line);background:#fff;font-size:var(--fs-xs);font-weight:500;
  color:var(--c-body);text-decoration:none;transition:border-color .15s,background-color .15s,color .15s}
.chips a:hover{border-color:var(--c-sea);background:var(--c-sea-soft);color:var(--c-sea-dark)}

.zona-groups{display:grid;gap:var(--s-8)}
@media (min-width:760px){.zona-groups{grid-template-columns:repeat(2,1fr);gap:var(--s-8) var(--s-6)}}
.zona-group h3{font-size:var(--fs-md);color:var(--c-ink);margin-bottom:var(--s-2)}
.zona-group p{font-size:var(--fs-sm);margin-bottom:var(--s-4)}
.split__body .chips{margin-bottom:var(--s-6)}

.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:var(--s-6);
  border:1px solid var(--c-line);border-radius:var(--r-md);background:#fff}
table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);min-width:520px}
caption{text-align:left;font-size:var(--fs-xs);color:var(--c-muted);padding:var(--s-3) var(--s-4)}
th,td{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--c-line);text-align:left;vertical-align:top}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
tbody th{font-weight:600;color:var(--c-ink)}
thead th{background:var(--c-sea-soft);color:var(--c-sea-dark);font-family:var(--f-head);
  font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;border-bottom-color:transparent}

.callout{position:relative;background:var(--c-sea-soft);padding:var(--s-6) var(--s-6) var(--s-6) calc(var(--s-6) + 4px);
  border-radius:var(--r-md);margin-bottom:var(--s-6)}
.callout::before{content:"";position:absolute;left:0;top:var(--s-4);bottom:var(--s-4);width:4px;
  border-radius:4px;background:var(--c-sea)}
.callout--warn{background:var(--c-accent-soft)}
.callout--warn::before{background:var(--c-accent)}
.callout>:last-child{margin-bottom:0}
.callout h3{font-size:var(--fs-lg)}
.callout p{color:var(--c-body)}

.checklist{list-style:none;margin:0 0 var(--s-6);padding:0;display:grid;gap:var(--s-3)}
.checklist li{position:relative;padding-left:2rem}
.checklist li::before{content:"";position:absolute;left:0;top:.2em;width:18px;height:18px;
  border-radius:50%;background:var(--c-brand-soft)}
.checklist li::after{content:"";position:absolute;left:4.5px;top:.38em;width:9px;height:5px;
  border-left:2px solid var(--c-brand);border-bottom:2px solid var(--c-brand);transform:rotate(-45deg)}
/* Lista de situaciones bajo un titular centrado: cada punto encapsulado y a
   dos columnas, en vez de una lista corta pegada al margen izquierdo. */
.section__head+.narrow>.checklist:first-child{gap:var(--s-3)}
.section__head+.narrow>.checklist:first-child li{background:var(--c-bg);border:1px solid var(--c-line);
  border-radius:var(--r-md);padding:var(--s-4) var(--s-4) var(--s-4) 3rem;box-shadow:var(--shadow-1)}
.section:not([class*="section--"]) .section__head+.narrow>.checklist:first-child li{background:var(--c-bg-alt)}
.section__head+.narrow>.checklist:first-child li::before{left:var(--s-4);top:calc(var(--s-4) + .2em)}
.section__head+.narrow>.checklist:first-child li::after{left:calc(var(--s-4) + 4.5px);top:calc(var(--s-4) + .38em)}
@media (min-width:720px){.section__head+.narrow>.checklist:first-child{grid-template-columns:1fr 1fr}}
.crosslist{list-style:none;margin:0 0 var(--s-6);padding:0;display:grid;gap:var(--s-3)}
.crosslist li{position:relative;padding-left:2rem}
.crosslist li::before{content:"×";position:absolute;left:0;top:.15em;width:18px;height:18px;
  display:grid;place-items:center;border-radius:50%;background:var(--c-accent-soft);
  color:var(--c-danger);font-size:.95rem;font-weight:700;line-height:1}

/* 11 · Banda CTA final */
.ctaband{position:relative;isolation:isolate;overflow:hidden;text-align:center;color:#fff;
  background:linear-gradient(115deg,var(--c-brand-dark) 0%,var(--c-sea-dark) 100%);
  padding:clamp(2.5rem,1.75rem + 2.5vw,4rem) 0}
.ctaband::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--g-stripe)}
.ctaband h2{color:#fff}
.ctaband p{color:rgba(255,255,255,.9);max-width:60ch;margin-inline:auto;font-size:var(--fs-lg);line-height:1.5}
.ctaband .actions{justify-content:center;margin-top:var(--s-6)}
.ctaband .btn--ghost{border-color:rgba(255,255,255,.6);color:#fff}
.ctaband .btn--ghost:hover{background:#fff;border-color:#fff;color:var(--c-brand-dark)}

/* 11b · CTA urgente a mitad de página (petróleo → oliva; el acento, solo en el botón) */
.cta-urgent{position:relative;isolation:isolate;overflow:hidden;color:#fff;
  background:linear-gradient(115deg,var(--c-sea-dark) 0%,var(--c-sea) 55%,var(--c-brand-dark) 100%);
  padding:clamp(2.25rem,1.5rem + 2.5vw,3.5rem) 0}
.cta-urgent::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--g-stripe)}
.cta-urgent__inner{display:grid;gap:var(--s-6);align-items:center}
.cta-urgent .eyebrow{color:#fff}
.cta-urgent h2{color:#fff;margin-bottom:var(--s-3);font-size:var(--fs-h3)}
.cta-urgent p{color:rgba(255,255,255,.9);margin:0;max-width:62ch}
.cta-urgent__actions{display:flex;flex-wrap:wrap;gap:var(--s-3)}
@media (min-width:900px){
  .cta-urgent__inner{grid-template-columns:1.5fr 1fr}
  .cta-urgent__actions{justify-content:flex-end}
}

/* 11c · Botones flotantes abajo a la derecha (los inyecta main.js; sustituyen a la
   barra CTA móvil, retirada en S2026-09-23-6): «Menú» + «Pedir presupuesto» */
.fabs{position:fixed;right:var(--s-4);bottom:var(--s-4);z-index:98;
  display:flex;flex-direction:column;align-items:flex-end;gap:var(--s-2)}
.fab{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.55rem .95rem .55rem .75rem;
  border:0;border-radius:var(--r-pill);background:var(--c-ink);color:#fff;text-decoration:none;
  font:600 var(--fs-xs)/1 var(--f-body);cursor:pointer;box-shadow:var(--shadow-2)}
.fab:hover{background:var(--c-sea-dark);color:#fff}
.fab svg{width:18px;height:18px}
.fab--cta{background:var(--c-accent)}
.fab--cta:hover{background:var(--c-accent-dark)}
@media (min-width:900px){.fabs{right:var(--s-6);bottom:var(--s-6)}
  .fab--cta{min-height:50px;padding:.8rem 1.3rem .8rem 1rem;font-size:var(--fs-sm)}}

/* 12 · Footer */
.footer{background:var(--c-ink);color:#D3DCDD;padding-block:clamp(2.5rem,1.75rem + 2.5vw,4rem) var(--s-8);
  font-size:var(--fs-sm)}
.footer p,.footer li{color:#D3DCDD}
.footer a{color:#D3DCDD;text-decoration:none}
.footer a:hover{color:#fff;text-decoration:underline}
.footer__grid{display:grid;gap:var(--s-8)}
@media (min-width:720px){.footer__grid{grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:var(--s-12) var(--s-8)}}
.footer h2,.footer h3{font-size:var(--fs-xs);letter-spacing:var(--ls-caps);text-transform:uppercase;
  color:#fff;margin-bottom:var(--s-4);font-weight:700}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}
.footer .logo__name{color:#fff}
.footer .logo__name em{color:#8FB3B9}
.footer .logo svg{color:#fff}
.footer__brand p{margin-top:var(--s-4);max-width:38ch;color:#A9B7B9}
.footer__bottom{margin-top:var(--s-12);padding-top:var(--s-6);border-top:1px solid #2B383B;
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-6);justify-content:space-between;
  font-size:var(--fs-xs);color:#93A3A6}
.footer__bottom p{margin:0}
/* `.footer ul` la pone en grid: hace falta la misma especificidad para que
   los enlaces legales vayan en fila y no apilados. */
.footer .footer__legal{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-6);list-style:none;margin:0;padding:0}
.footer address{font-style:normal;line-height:1.7}
.footer__pending{color:#93A3A6;font-size:var(--fs-xs)}

/* 13 · Menú móvil: en critical.css */

/* 14 · Imágenes y placeholders */
figure{margin:0 0 var(--s-6)}
figcaption{font-size:var(--fs-xs);color:var(--c-muted);margin-top:var(--s-3);line-height:1.5}
/* Imagen de sección: 3:2 fijo + width/height → CLS 0 */
.media{margin:0 auto var(--s-8);max-width:720px}
.media img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;
  border-radius:var(--r-lg);background:var(--c-brand-soft);box-shadow:var(--shadow-1)}
.media figcaption{max-width:68ch;padding-left:var(--s-3);border-left:2px solid var(--c-brand-mid)}
.media--split{margin:0;max-width:none}
.split__media figure{margin:0}
.section--brand .media figcaption{color:rgba(255,255,255,.88);border-left-color:rgba(255,255,255,.5)}


/* 16 · Mapa embebido (iframe lazy; el hueco lo reserva aspect-ratio → CLS 0) */
.map{position:relative;aspect-ratio:16/9;border-radius:var(--r-lg);overflow:hidden;
  background:var(--c-sea-soft);display:grid;place-items:center;text-align:center;padding:var(--s-6)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(min-width:760px){.map{aspect-ratio:21/9}}

/* 17 · Blog */
.toc{background:var(--c-bg-alt);border-radius:var(--r-md);padding:var(--s-6);margin-bottom:var(--s-6);
  border-left:3px solid var(--c-sea)}
.toc h2{font-size:var(--fs-xs);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--c-sea);
  font-family:var(--f-body);font-weight:700}
.toc ol{margin:0;padding-left:1.2rem;display:grid;gap:var(--s-2);font-size:var(--fs-sm)}
.toc a{text-decoration:none}
.toc a:hover{text-decoration:underline}
.postmeta{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);font-size:var(--fs-xs);
  color:var(--c-muted);margin-bottom:var(--s-6)}
.postmeta>*+*{position:relative;padding-left:var(--s-4)}
.postmeta>*+*::before{content:"";position:absolute;left:0;top:50%;width:4px;height:4px;
  border-radius:50%;background:var(--c-brand-mid);transform:translateY(-50%)}
.author{display:flex;gap:var(--s-4);align-items:center;background:var(--c-bg-alt);
  border-radius:var(--r-md);padding:var(--s-6);margin-block:var(--s-8) var(--s-6)}
.author p{margin:0;font-size:var(--fs-sm)}

/* 18 · Impresión */
@media print{
  .header,.ctaband,.cta-urgent,.fabs,.form-panel{display:none}
  body{padding-bottom:0;color:#000}
  a::after{content:" (" attr(href) ")";font-size:.8em;color:#555}
}
/* S2026-09-23-7 · /blog/ (guía destacada + meta) y /conocenos/ (cifras) */
.card .postmeta{margin-bottom:var(--s-2)}
.card--feature .card__title{font-size:var(--fs-h3)}
.kpis{list-style:none;margin:var(--s-12) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-6)}
.kpis li{border-top:2px solid var(--c-sea);padding-top:var(--s-3)}
.kpis strong{display:block;font-size:var(--fs-h2);line-height:var(--lh-head);color:var(--c-brand-dark)}
.kpis span{font-size:var(--fs-sm);color:var(--c-muted)}
@media (min-width:900px){.kpis{grid-template-columns:repeat(4,1fr)}
.card--feature{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;padding:0;overflow:hidden}
.card--feature .card__thumb{margin:0;border-radius:0;height:100%}
.card--feature .card__thumb img{height:100%}
.card--feature .card__body{padding:var(--s-8)}
.card--feature .card__title{font-size:var(--fs-h2)}}
