/* =====================================================================
   Rediseño 2026 · Páginas de contenido y servicios
   (servicios, hub vender, perfil del agente, calculadora, publicar propiedad, privacidad, links)
   Usa los tokens de site.css. Prefijo propio: .ct-
   ===================================================================== */

/* ---------- Utilidades de grupo ---------- */
.ct-title-md { font-size: clamp(28px, 3.2vw, 46px); font-weight: 300; letter-spacing: -.02em; line-height: 1.12; }
.ct-lead { font-size: 18px; color: var(--muted); margin: 22px 0 0; }
.ct-h3 { margin: 0 0 10px; font: 500 19px/1.3 var(--sans); }
.ct-section-tight { padding: clamp(56px, 7vw, 96px) 0; }
.ct-band-sand { background: var(--sand); }
.ct-sticky { position: sticky; top: 140px; }
.ct-actions-row { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 32px; }
.ct-updated { color: var(--muted); font-size: 14px; }

/* Hero de servicios: H1 largo (keyword + intención), tamaño contenido y padding moderado */
.ct-hero { padding: clamp(36px, 5vw, 72px) 0 clamp(36px, 5vw, 64px); }
.ct-hero .hv2-pagehero__title { font-size: clamp(32px, 3.4vw, 52px); line-height: 1.12; }
.ct-hero .hv2-pagehero__media { aspect-ratio: 5 / 4 !important; }

/* Hero con panel útil a la derecha (publicar propiedad, privacidad) */
.ct-hero-panel { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.ct-hero-panel .hv2-pagehero__title { font-size: clamp(32px, 3.6vw, 56px); line-height: 1.1; }

/* ---------- Intro (texto de apoyo bajo el hero) ---------- */
.ct-intro { padding: clamp(48px, 6vw, 88px) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.ct-intro__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 88px); align-items: start; }
.ct-intro__quote { margin: 0; font: 300 clamp(20px, 1.8vw, 26px)/1.5 var(--serif); color: var(--ink); }
.ct-intro__quote p { margin: 0; }
.ct-intro__quote p + p { margin-top: 18px; }
.ct-intro__text { margin: 0; color: var(--muted); font-size: 17px; }
.ct-intro__quote .ct-intro__text { font-family: var(--sans); }
.ct-intro a { color: var(--accent-dark); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Pasos / beneficios numerados ---------- */
.ct-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--ink); }
.ct-step { padding: 32px clamp(20px, 2.4vw, 36px) 36px 0; display: flex; flex-direction: column; gap: 12px; }
.ct-step + .ct-step { padding-left: clamp(20px, 2.4vw, 36px); border-left: 1px solid var(--line); }
.ct-step__num { font: 300 40px/1 var(--serif); color: var(--accent-dark); letter-spacing: -.02em; }
.ct-step__title { margin: 0; font: 500 21px/1.3 var(--sans); }
.ct-step p { margin: 0; color: var(--muted); }
.ct-step p a { color: var(--accent-dark); text-decoration: underline; text-underline-offset: 3px; }
.ct-step .hv2-link { margin-top: auto; align-self: flex-start; }
.ct-steps--cards { border-top: 0; gap: 18px; }
.ct-steps--cards .ct-step { background: var(--white); border: 1px solid var(--line); padding: 28px; }
.ct-steps--cards .ct-step + .ct-step { padding-left: 28px; }

/* ---------- Bloque editorial foto + texto ---------- */
.ct-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 100px); align-items: center; }
.ct-split--top { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; }
.ct-split--top .hv2-head { margin-bottom: 0; }
.ct-split__media { box-shadow: 0 30px 60px rgba(12, 26, 34, .14); }
.ct-split__text p:not(.hv2-eyebrow):not(.ct-lead) { color: var(--muted); }
.ct-split__text .hv2-btn { margin-top: 32px; }

.ct-checks { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 14px; }
.ct-checks li { position: relative; padding-left: 30px; color: #24323a; }
.ct-checks li::before {
    content: ''; position: absolute; left: 0; top: .5em; width: 16px; height: 9px;
    border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: rotate(-45deg) translateY(-4px);
}
.ct-checks b { color: var(--ink); font-weight: 600; }
.ct-checks a { text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 3px; }
.ct-checks--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; margin-top: 0; }
.ct-checks--light li { color: rgba(255, 255, 255, .85); }

/* ---------- Aliados ---------- */
.ct-partners { background: var(--ink); color: var(--white); padding: 34px 0; }
.ct-partners__inner { display: flex; align-items: center; gap: 24px 48px; flex-wrap: wrap; }
.ct-partners__label { margin: 0; font: 600 11px/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
.ct-partners__logos { list-style: none; margin: 0; padding: 0; flex: 1; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; align-items: center; }
.ct-partners__logos img { width: 100%; max-width: 150px; height: auto; margin: 0 auto; opacity: .85; filter: brightness(0) invert(1); transition: opacity .2s; } /* logos en blanco sobre la franja tinta */
.ct-partners__logos img:hover { opacity: 1; }

/* ---------- Propiedades + formulario ---------- */
.ct-listings .hv2-head { margin-bottom: 32px; }
.ct-listings__head { align-items: end; }
.ct-listings__head > div:last-child { justify-self: end; }
.ct-form { color: var(--white); }
.ct-form__lead { margin: -6px 0 18px; font-size: 14px; color: rgba(255, 255, 255, .7); }
.ct-form .hv2-alert { color: var(--ink); margin-bottom: 14px; }
.ct-form__note { margin: 0; font-size: 13px; color: var(--muted); text-align: center; }
.hv2-panel--ink .hv2-field > span, .hv2-panel--ink .hv2-field > label { color: rgba(255, 255, 255, .6); }

/* Precio con historial (partial front.partials.listing-price) */
.listing-price-wrap { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.listing-price-old { font-size: .55em; color: var(--muted); text-decoration: line-through; }
.listing-price-badge { font: 600 10px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; padding: 6px 8px; align-self: center; }
.listing-price-badge .fa { display: none; }
.listing-price-badge--reduced { background: var(--accent); color: var(--ink); }
.listing-price-badge--increased { background: var(--sand); color: var(--ink); }

/* ---------- Reseñas ---------- */
.ct-reviews__rating { margin: 0; flex-wrap: wrap; }
.ct-reviews__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.ct-review { margin: 0; padding: 26px; background: var(--white); border: 1px solid var(--line); display: flex; flex-direction: column; gap: 14px; }
.ct-review__stars { color: var(--accent); letter-spacing: 3px; font-size: 14px; }
.ct-review blockquote { margin: 0; flex: 1; font-size: 16px; line-height: 1.6; color: #24323a; }
.ct-review figcaption { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--muted); }
.ct-review figcaption strong { display: block; color: var(--ink); font-size: 14px; }
.ct-review__avatar { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--accent); color: var(--ink); font-weight: 600; text-transform: uppercase; }
.ct-reviews__links { display: flex; flex-wrap: wrap; gap: 18px 36px; margin-top: 36px; }
.ct-reviews--ink { background: var(--ink); color: var(--white); }
.ct-reviews--ink .hv2-rating, .ct-reviews--ink .hv2-rating strong { color: var(--white); }
.ct-reviews--ink .ct-review { background: var(--ink-2); border-color: rgba(255, 255, 255, .1); }
.ct-reviews--ink .ct-review blockquote { color: rgba(255, 255, 255, .88); }
.ct-reviews--ink .ct-review figcaption { color: rgba(255, 255, 255, .6); }
.ct-reviews--ink .ct-review figcaption strong { color: var(--white); }
.ct-reviews--ink .hv2-link { color: #ffb36b; }

/* ---------- Qué hacemos: tarjetas de servicio ---------- */
.ct-service { display: flex; flex-direction: column; gap: 10px; }
.ct-service:hover img { transform: scale(1.05); }
.ct-service__title { margin: 14px 0 0; font: 500 21px/1.25 var(--sans); }
.ct-service p { margin: 0; color: var(--muted); font-size: 15px; }
.ct-service .hv2-link { align-self: flex-start; margin-top: 6px; }
.ct-services__more { margin: 40px 0 0; }

.ct-actions { background: var(--sand); }
.ct-action { border-top: 1px solid var(--ink); padding-top: 26px; display: flex; flex-direction: column; gap: 12px; }
.ct-action .hv2-eyebrow { margin: 0; }
.ct-action__title { margin: 0; font: 500 22px/1.25 var(--sans); }
.ct-action__title a:hover { color: var(--accent-dark); }
.ct-action p { margin: 0; color: var(--muted); }
.ct-action .hv2-link { align-self: flex-start; margin-top: auto; }

/* ---------- Hub vender ---------- */
.ct-figures { background: var(--ink); color: var(--white); }
.ct-figures__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ct-figures__grid > div { padding: 28px 24px 28px 0; display: flex; flex-direction: column; gap: 6px; }
.ct-figures__grid > div + div { padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, .14); }
.ct-figures strong { font: 300 clamp(30px, 3vw, 42px)/1 var(--serif); letter-spacing: -.02em; }
.ct-figures sup { font-size: .45em; color: var(--accent); }
.ct-figures span { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.ct-prose-intro { max-width: 80ch; }
.ct-prose-intro > p:first-child { font-size: 21px; color: var(--ink); }

.ct-timeline { list-style: none; margin: 0; padding: 0; counter-reset: none; }
.ct-timeline li { position: relative; padding: 0 0 34px 72px; }
.ct-timeline li::before { content: ''; position: absolute; left: 23px; top: 48px; bottom: 0; width: 1px; background: var(--line); }
.ct-timeline li:last-child { padding-bottom: 0; }
.ct-timeline li:last-child::before { display: none; }
.ct-timeline__num { position: absolute; left: 0; top: 0; width: 47px; height: 47px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--accent); color: var(--accent-dark); font: 400 18px/1 var(--sans); background: var(--paper); }
.ct-timeline h3 { margin: 10px 0 8px; font: 500 20px/1.3 var(--sans); }
.ct-timeline p { margin: 0; color: var(--muted); }

.ct-costs { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.ct-costs__caption { margin: 0 0 12px; font-weight: 600; }
.ct-costs .hv2-panel p { color: var(--muted); margin: 0 0 22px; }
.ct-costs .hv2-panel p:last-child { margin-bottom: 0; }
.ct-table-wrap { overflow-x: auto; background: var(--white); border: 1px solid var(--line); }
.ct-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.ct-table th, .ct-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.ct-table th { background: var(--ink); color: var(--white); font: 600 11px/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.ct-table tbody tr:last-child td { font-weight: 600; background: #fdf1e4; border-bottom: 0; }

.ct-notice { border: 1px solid var(--accent); border-left-width: 6px; background: #fdf5ec; padding: clamp(28px, 4vw, 56px); }
.ct-notice__badge { display: inline-block; margin: 0 0 18px; padding: 6px 12px; background: var(--accent); color: var(--ink); font: 600 12px/1 var(--sans); letter-spacing: .16em; }
.ct-notice .ct-lead { margin-bottom: 36px; }
.ct-notice .hv2-grid p { color: var(--muted); margin: 0; }

.ct-ink { background: var(--ink); color: var(--white); }
.ct-ink .hv2-head__lead, .ct-ink__lead { color: rgba(255, 255, 255, .75); }
.ct-ink__lead { font-size: 18px; margin: 22px 0 0; }
.ct-ink__block { padding: 26px; border: 1px solid rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .03); }
.ct-ink__block p { color: rgba(255, 255, 255, .78); margin: 0 0 12px; }
.ct-ink__block .ct-checks { margin-top: 6px; }
.ct-ink__alt { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.ct-ink .hv2-panel { color: var(--ink); }

.ct-zones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--ink); }
.ct-zone { padding: 28px 28px 32px 0; border-bottom: 1px solid var(--line); }
.ct-zone:not(:nth-child(3n + 1)) { padding-left: 28px; border-left: 1px solid var(--line); }
.ct-zone__title { margin: 0 0 10px; font: 400 26px/1.15 var(--serif); letter-spacing: -.01em; }
.ct-zone p, .ct-zones__close { margin: 0; color: var(--muted); }
.ct-zone a, .ct-zones__close a, .ct-prose-intro a, .ct-steps a { color: var(--accent-dark); text-decoration: underline; text-underline-offset: 3px; }
.ct-zones__close { margin-top: 32px; }

.ct-articles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 24px; }
.ct-article { border-top: 1px solid var(--line); padding: 20px 0 28px; }
.ct-article__date { margin: 0 0 8px; font: 600 11px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--sea); }
.ct-article__title { margin: 0; font: 400 18px/1.35 var(--sans); }
.ct-article__title a:hover { color: var(--accent-dark); }

/* ---------- FAQ ---------- */
.ct-faq { border-top: 1px solid var(--ink); }
.ct-faq details { border-bottom: 1px solid var(--line); }
.ct-faq summary {
    list-style: none; cursor: pointer; padding: 22px 48px 22px 0; position: relative;
    font: 500 18px/1.4 var(--sans); color: var(--ink);
}
.ct-faq summary::-webkit-details-marker { display: none; }
.ct-faq summary::after { content: '+'; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font: 300 28px/1 var(--sans); color: var(--accent-dark); transition: transform .3s var(--ease); }
.ct-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.ct-faq summary:hover { color: var(--accent-dark); }
.ct-faq__answer { padding: 0 0 24px; color: var(--muted); max-width: 70ch; }

/* ---------- Enlazado interno ---------- */
.ct-explore { padding: clamp(48px, 6vw, 80px) 0; border-top: 1px solid var(--line); }
.ct-explore__title { margin: 0 0 28px; font: 300 clamp(26px, 2.4vw, 34px)/1.15 var(--serif); letter-spacing: -.02em; }
.ct-explore__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.ct-explore__label { margin: 0 0 14px; font: 600 11px/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--sea); }

/* ---------- Perfil del agente ---------- */
.ct-profile { padding: clamp(36px, 5vw, 72px) 0; }
.ct-profile__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.ct-profile__photo { max-width: 520px; box-shadow: 0 30px 60px rgba(12, 26, 34, .18); }
.ct-facts { margin: 32px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.ct-facts > div { padding: 18px 16px 0 0; }
.ct-facts > div + div { padding-left: 16px; border-left: 1px solid var(--line); }
.ct-facts dt { font: 600 11px/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.ct-facts dd { margin: 8px 0 0; font: 400 18px/1.3 var(--sans); }
.ct-contact { margin: 0; display: grid; gap: 14px; }
.ct-contact dt { font: 600 11px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.ct-contact dd { margin: 6px 0 0; }
.ct-contact a:hover { color: var(--accent-dark); }
.ct-social { list-style: none; margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 14px; }
.ct-social a { text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 3px; }
.ct-map { display: block; width: 100%; height: 260px; border: 0; }
.hv2-layout .ct-checks--grid { margin-top: 32px; }

/* ---------- Calculadora de hipoteca ---------- */
.ct-calc-hero { padding: clamp(36px, 5vw, 72px) 0; }
.ct-calc { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.ct-calc .hv2-pagehero__title { font-size: clamp(32px, 3.6vw, 56px); line-height: 1.1; }
.ct-calc__note { margin: 18px 0 0; font-size: 13px; color: var(--muted); }
.ct-calc__panel { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 28px; box-shadow: 0 30px 60px rgba(12, 26, 34, .12); }
.ct-calc__hint { font-size: 12px; color: var(--muted); }
.ct-calc__advanced summary { cursor: pointer; font-size: 14px; font-weight: 600; color: var(--sea); padding: 6px 0; }
.ct-calc__advanced[open] summary { margin-bottom: 12px; }
.ct-calc__result { background: var(--ink); color: var(--white); padding: 28px; display: flex; flex-direction: column; justify-content: center; }
.ct-calc__label { margin: 0; font: 600 11px/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: rgba(255, 255, 255, .65); }
.ct-calc__total { margin: 14px 0 22px; font: 300 clamp(34px, 3.4vw, 48px)/1 var(--serif); letter-spacing: -.02em; color: #ffb36b; overflow-wrap: anywhere; }
.ct-calc__breakdown { margin: 0; border-top: 1px solid rgba(255, 255, 255, .15); }
.ct-calc__breakdown > div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); font-size: 14px; }
.ct-calc__breakdown > div[hidden] { display: none; }
.ct-calc__breakdown dt { color: rgba(255, 255, 255, .7); }
.ct-calc__breakdown dd { margin: 0; font-weight: 600; }

/* ---------- Publicar propiedad ---------- */
.ct-steps-panel .hv2-panel__title { margin-bottom: 20px; }
.ct-mini-steps { margin: 0; padding: 0; list-style: none; counter-reset: ms; display: grid; gap: 16px; }
.ct-mini-steps li { counter-increment: ms; position: relative; padding-left: 44px; color: rgba(255, 255, 255, .85); }
.ct-mini-steps li::before { content: counter(ms); position: absolute; left: 0; top: -2px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--accent); color: var(--ink); font-weight: 600; font-size: 14px; }
.ct-steps-panel__rating { margin: 24px 0 0; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .14); font-size: 14px; color: rgba(255, 255, 255, .7); }
.ct-steps-panel__rating strong { color: #ffb36b; }
.ct-submit { padding: clamp(24px, 3vw, 40px); }
.ct-fieldset { margin: 0 0 8px; padding: 0; border: 0; display: grid; gap: 14px; }
.ct-fieldset legend { padding: 0 0 14px; font: 500 18px/1.3 var(--sans); }
.ct-form-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.ct-check { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; }
.ct-check input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--accent); flex: none; }
.ct-check a { color: var(--accent-dark); text-decoration: underline; }
.ct-rating-sm { margin: 0 0 8px; }
.ct-rating-sm strong { font-size: 34px; }
.hv2-aside .hv2-review blockquote { font-size: 16px; }

/* ---------- Privacidad ---------- */
.ct-toc { margin: 0; padding-left: 1.2em; display: grid; gap: 8px; font-size: 15px; }
.ct-toc a:hover { color: var(--accent-dark); }
.ct-toc__contact { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--line); font-size: 14px; color: var(--muted); }
.hv2-prose h2[id] { scroll-margin-top: 140px; }

/* ---------- Links (link-in-bio) ---------- */
.ct-links { background: var(--ink); color: var(--white); padding: clamp(40px, 6vw, 88px) 0; }
.ct-links__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 96px); align-items: start; max-width: 1200px; margin: 0 auto; }
.ct-links__intro { position: sticky; top: 140px; }
.ct-links__logo { width: 200px; height: auto; }
.ct-links__title { margin: 28px 0 0; font: 300 clamp(30px, 3.4vw, 48px)/1.1 var(--serif); letter-spacing: -.02em; }
.ct-links__bio { margin: 16px 0 0; color: rgba(255, 255, 255, .75); font-size: 18px; }
.ct-links__social { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ct-links__social a { display: inline-block; padding: 8px 14px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 999px; font-size: 13px; transition: background .2s, color .2s; }
.ct-links__social a:hover { background: var(--white); color: var(--ink); }
.ct-links__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ct-links__list a {
    display: flex; justify-content: space-between; align-items: center; gap: 16px;
    padding: 16px 20px; border: 1px solid rgba(255, 255, 255, .16); background: rgba(255, 255, 255, .04);
    font-weight: 500; transition: background .2s, color .2s, border-color .2s;
}
.ct-links__list a::after { content: '→'; color: var(--accent); }
.ct-links__list a:hover { background: var(--accent); border-color: var(--accent); color: var(--ink); }
.ct-links__list a:hover::after { color: var(--ink); }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
    .ct-calc { grid-template-columns: 1fr; }
    .ct-reviews__grid, .ct-articles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
    .ct-intro__grid, .ct-split, .ct-split--top, .ct-costs, .ct-hero-panel, .ct-profile__grid, .ct-links__grid { grid-template-columns: 1fr; }
    .ct-sticky, .ct-links__intro { position: static; }
    .ct-steps, .ct-zones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ct-step + .ct-step { border-left: 0; padding-left: 0; }
    .ct-steps:not(.ct-steps--cards) .ct-step:nth-child(even) { padding-left: clamp(20px, 2.4vw, 36px); border-left: 1px solid var(--line); }
    .ct-zone:not(:nth-child(3n + 1)) { padding-left: 0; border-left: 0; }
    .ct-zone:nth-child(even) { padding-left: 28px; border-left: 1px solid var(--line); }
    .ct-partners__logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ct-explore__grid { grid-template-columns: 1fr; gap: 24px; }
    .ct-profile__photo { max-width: 420px; }
    .ct-figures__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ct-figures__grid > div:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 720px) {
    .ct-steps, .ct-zones, .ct-checks--grid, .ct-reviews__grid, .ct-articles, .ct-form-3, .ct-calc__panel { grid-template-columns: 1fr; }
    .ct-steps:not(.ct-steps--cards) .ct-step:nth-child(even), .ct-zone:nth-child(even) { padding-left: 0; border-left: 0; }
    .ct-step, .ct-zone { padding-right: 0; border-bottom: 1px solid var(--line); }
    .ct-steps--cards .ct-step { border: 1px solid var(--line); }
    .ct-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ct-facts > div:nth-child(3) { padding-left: 0; border-left: 0; }
    .ct-listings__head > div:last-child { justify-self: start; }
    .ct-timeline li { padding-left: 60px; }
    .ct-calc__panel { padding: 20px; }
    .ct-partners__logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ct-intro__quote { font-size: 19px; }
}

/* Tres pasos del proceso junto al formulario de contacto (fondo tinta) */
.ct-process { margin-top: clamp(28px, 4vw, 44px); }
.ct-process__label { margin: 0 0 18px; font: 600 11px/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--accent); }
.ct-process__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.ct-process__item { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 18px; padding: 16px 0; }
.ct-process__item:not(:last-child)::after { content: ''; position: absolute; left: 27px; top: 72px; bottom: -4px; width: 1px; background: rgba(255, 255, 255, .15); }
.ct-process__icon { position: relative; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: rgba(240, 138, 44, .12); border: 1px solid rgba(240, 138, 44, .35); }
.ct-process__icon svg { width: 24px; height: 24px; fill: none; stroke: var(--accent); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ct-process__icon b { position: absolute; top: -4px; right: -4px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--accent); color: var(--ink); font: 700 11px/1 var(--sans); }
.ct-process__body { display: grid; gap: 4px; align-content: center; }
.ct-process__body strong { font: 500 18px/1.3 var(--sans); color: var(--white); }
.ct-process__body span { font-size: 15px; line-height: 1.55; color: rgba(255, 255, 255, .7); }
.ct-process__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.ct-process__ctas .hv2-btn svg { width: 18px; height: 18px; }
.ct-process__wa { background: #25d366; color: #fff; }
.ct-process__wa:hover { background: #1fb457; transform: translateY(-1px); }
.ct-process__wa svg { fill: currentColor; }
.ct-process__tel { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 520px) { .ct-process__ctas .hv2-btn { width: 100%; } }
